@charset "UTF-8";
/*
  Dojo ウェブマニュアル — ユーティリティ / 共通パーツ
  ==============================================================
  統合元:
    utility.css     (全デバイス共通)
    utility_pc.css  → @media (min-width: 768px) に統合
    utility_sp.css  → @media (max-width: 767px) に統合

  依存: vars.css を先に読み込むこと
  ==============================================================

  目次:
    1. 表示切替（.u-pc / .u-sp）
    2. 画像（.c-picture）
    3. マーカー（.c-marker）
    4. セクションタイトル（.ttl_style）
    5. 汎用ボタン（.btn_style）
    6. CTAバナー（.cont_bnr）
    7. テーブル（.table_style / .table_style02 / .table_style03）
    8. パンくず（.breadcrumb）
    9. アンカーリスト（.anchor）
   10. カテゴリー（.category）
   11. ページフィード（.pagefeed）
   12. 画像拡大（.luminous）
   13. ダウンロードページ画像（.page_download）
   14. メディアクエリ: PC (min-width: 768px)
   15. メディアクエリ: SP (max-width: 767px)
  ==============================================================
*/

/* ================================================================
   1. 表示切替（.u-pc / .u-sp）
   ================================================================ */

/* PC時: 両方表示。SP時はclassで制御 */
.u-pc { display: block; }
.u-sp { display: none; }

/* ================================================================
   2. 画像（.c-picture）
   ================================================================ */

.c-picture { display: block; }

/* ================================================================
   3. マーカー（.c-marker）
   ================================================================ */

/* 黄色マーカー下線 */
.c-marker {
  background: linear-gradient(transparent 50%, var(--color-marker) 50%);  /* #f9e137 */
}

/* ================================================================
   4. セクションタイトル（.ttl_style）
   ================================================================ */

/*
  構造:
    ::before  - data-en属性をイタリックパープルで表示
    ::after   - 傾いた紫の縦線を装飾
*/
.ttl_style {
  position: relative;
  font-size: 3.2rem;
  margin-bottom: 50px;
  text-align: center;
  padding-bottom: 50px;
}

/* 英語サブラベル（data-en属性） */
.ttl_style::before {
  content: attr(data-en);
  display: block;
  color: var(--color-accent);        /* #60398a */
  font-size: 1.6rem;
  font-style: italic;
  text-transform: uppercase;
}

/* 傾いた装飾ライン */
.ttl_style::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translate(-50%) rotate(30deg);
  transform: translate(-50%) rotate(30deg);
  width: 1px;
  height: 40px;
  background-color: var(--color-accent-bright);  /* #9721b8 */
}

/* ================================================================
   5. 汎用ボタン（.btn_style）
   ================================================================ */

/* パープル塗りボタン */
.btn_style { margin: 50px auto 0; }

.btn_style a {
  display: block;
  position: relative;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 50px;
  background: var(--color-accent);      /* #60398a */
  text-align: center;
  color: var(--color-text-white) !important;
  padding: 18px;
  font-weight: bold;
}
.btn_style a::before {
  content: '';
  background: url(../images/common/ico_btn_wh.png) no-repeat;
  width: 22px;
  height: 22px;
  background-size: cover;
  position: absolute;
  right: 15px;
  top: calc(50% - 11px);
}

/* 戻るボタン */
.btn_style.btn_style_back a::before {
  background: url(../images/common/ico_btn_back_wh.png) no-repeat;
  background-size: cover;
  left: 15px;
}

/* ================================================================
   6. CTAバナー（.cont_bnr）
   ================================================================ */

/* パープル背景のCTAセクション */
.cont_bnr {
  background: var(--color-bg-purple);  /* #60398a */
  padding: 50px 0;
}

.cont_bnr h2 {
  text-align: center;
  color: var(--color-text-white);
  font-weight: normal;
  font-size: 2.6rem;
  margin-bottom: 30px;
}
.cont_bnr h2 span { font-weight: bold; }
.cont_bnr h2 span.small { font-weight: bold; font-size: 75%; }

.cont_bnr .btn_wrap + .btn_wrap { margin-top: 20px; }

/* 電話番号 */
.cont_bnr .tel {
  text-align: center;
  line-height: 1.2;
  color: var(--color-text-white);
}
.cont_bnr .tel p { font-size: 1.2rem; }
.cont_bnr .tel a { font-size: 4.0rem; }
.cont_bnr .tel a::before {
  content: '';
  background: url(../images/common/ico_free_gr.png) left no-repeat;
  width: 45px; height: 26px;
  background-size: cover;
  display: inline-block;
  margin-right: 8px;
}

/* CTAボタン（白背景・パープル文字） */
.cont_bnr .btn a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 340px;
  padding: 20px;
  font-size: 1.8rem;
  background: var(--color-bg-white);
  border-radius: 50px;
  color: var(--color-accent);          /* #60398a */
  font-weight: bold;
}

/* お問い合わせ */
.cont_bnr .btn.cont a::before {
  content: '';
  background: url(../images/common/ico_mail_pu.png) no-repeat;
  width: 28px; height: 23px;
  background-size: cover;
  margin-right: 10px;
}

/* 無料トライアル */
.cont_bnr .btn.trial a::before {
  content: '';
  background: url(../images/common/ico_check_pu.png) no-repeat;
  width: 23px; height: 17px;
  background-size: cover;
  margin-right: 10px;
}

/* ダウンロード */
.cont_bnr .btn.download a {
  background: var(--color-download);  /* #ffcb2d */
  color: var(--color-download-text);
}
.cont_bnr .btn.download a::before {
  content: '';
  background: url(../images/common/ico_down_bl.png) no-repeat;
  width: 29px; height: 29px;
  background-size: cover;
  margin-right: 10px;
}

/* ================================================================
   7. テーブル（.table_style / .table_style02 / .table_style03）
   ================================================================ */

/* 基本テーブル */
.table_style {
  border-collapse: collapse;
  width: 100%;
}
.table_style th,
.table_style td {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-top: solid 1px var(--color-border-light);    /* #e3e3e3 */
  border-bottom: solid 1px var(--color-border-light);
}
/* メールアドレス強調表示 */
.table_style .group-mailaddress .mail_address {
  font-weight: bold;
  font-size: 150%;
}
.table_style th { font-weight: normal; }

/* ヘッダー付きテーブル */
.table_style02 {
  border-collapse: collapse;
  width: 100%;
}
.table_style02 th,
.table_style02 td {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-top: solid 1px var(--color-border-light);
  border-bottom: solid 1px var(--color-border-light);
}
.table_style02 th {
  font-weight: normal;
  background: #f1edf5;  /* 薄パープル */
  width: 30%;
}
.table_style02 td { background: var(--color-bg-white); width: 70%; }
.table_style02 .ttl th {
  color: var(--color-text-white);
  background: var(--color-accent);  /* #60398a */
}
.table_style02 .ttl th:first-child {
  border-right: solid 1px var(--color-text-white);
}

/* 3カラムテーブル */
.table_style03 { border-collapse: collapse; width: 100%; }
.table_style03 th,
.table_style03 td {
  box-sizing: border-box;
  padding: 0.8em 0;
  border-bottom: solid 1px var(--color-border-light);
  vertical-align: top;
}
.table_style03 tr:first-child th,
.table_style03 tr:first-child td {
  border-top: solid 1px var(--color-border-light);
}
.table_style03 th { font-weight: normal; }
.table_style03 td { background: var(--color-bg-white); }

/* ================================================================
   8. パンくず（.breadcrumb）
   ================================================================ */

.breadcrumb { padding: 20px 0; }

.breadcrumb ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.breadcrumb li { font-size: 1.4rem; }
.breadcrumb li a:hover { opacity: 0.7; }

/* セパレータ › */
.breadcrumb li + li {
  margin-left: 13px;
  padding-left: 15px;
  position: relative;
}
.breadcrumb li + li::before {
  content: '›';
  font-size: 2.0rem;
  position: absolute;
  left: 0;
  top: -7px;
}

/* ================================================================
   9. アンカーリスト（.anchor）
   ================================================================ */

.anchor ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.anchor li { font-size: 1.4rem; }
.anchor a {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 50px;
  border: 1px solid var(--color-border-light);
  text-align: center;
  padding: 15px 35px 20px 35px;
}
.anchor a::before {
  content: '›';
  font-size: 2.0rem;
  position: absolute;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}

/* ================================================================
   10. カテゴリー（.category）
   ================================================================ */

.category { max-width: 1000px; margin: 0 auto; }
.category ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.category ul li { width: calc(100% / 3 - 20px); }
.category a {
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 50px;
  border: 1px solid var(--color-border-light);
  background: var(--color-bg-gray);
  text-align: center;
  padding: 15px;
}
/* アクティブ */
.category a.current {
  font-weight: bold;
  border: 1px solid var(--color-accent);
  background: var(--color-accent-bright);  /* #9721b8 */
  color: var(--color-text-white);
}

/* ================================================================
   11. ページフィード（.pagefeed）
   ================================================================ */

.pagefeed {
  margin-bottom: 100px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.pagefeed a {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border-radius: 50px;
  background: var(--color-accent);  /* #60398a */
  text-align: center;
  padding: 15px 100px;
  color: var(--color-text-white);
  font-size: 1.4rem;
}
.pagefeed a::before {
  content: '';
  background: url(../images/common/ico_arrow_wh.png) no-repeat;
  background-size: cover;
  width: 7px; height: 12px;
  display: block;
  position: absolute;
  right: 15px;
  top: calc(50% - 6px);
}
.pagefeed .next  { margin-left: auto; }
.pagefeed .prev a::before {
  -webkit-transform: rotate(-180deg);
  transform: rotate(-180deg);
  left: 15px;
}
.pagefeed .back  { margin-right: auto; margin-left: auto; }
.pagefeed .back a::before { content: none; }

/* ================================================================
   12. 画像拡大（.luminous）
   ================================================================ */

.luminous {
  display: block;
  position: relative;
}
.luminous::before {
  content: '';
  position: absolute;
  bottom: 10px; right: 10px;
  display: block;
  background: var(--color-accent) url(../images/common/ico_zoom_wh.png) center no-repeat;
  width: 40px; height: 40px;
  border-radius: 50%;
  background-size: 20px auto;
}

/* ================================================================
   13. ダウンロードページ画像（.page_download）
   ================================================================ */

.page_download .c-picture img {
  border-radius: 5px;
  box-shadow: 1px 1px 5px #999;
}
.page_download .c-picture.img { position: relative; }
.page_download .c-picture.img.new:after {
  content: '';
  display: block;
  background: url(../images/common/ico_new.png);
  width: 60px;
  height: 60px;
  position: absolute;
  top: -10px;
  right: 5px;
  background-size: 60px 60px;
}

/* ================================================================
   14. メディアクエリ: PC (min-width: 768px)
   ================================================================
   統合元: utility_pc.css
   ================================================================ */

@media (min-width: 768px) {

  /* セクションタイトル */
  .ttl_style br { display: none; }

  /* 汎用ボタン */
  .btn_style { width: 320px; }
  .btn_style a:hover { background: var(--color-accent-hover); }  /* #7c52a9 */

  /* CTAバナー */
  .cont_bnr .btn_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .cont_bnr .tel { margin-left: 10px; margin-right: 45px; }
  .cont_bnr .tel p { text-align: right; }
  .cont_bnr .btn + .btn { margin-left: 30px; }
  .cont_bnr .btn.download a:hover { background: var(--color-download-hover); }
  .cont_bnr .btn a:hover { background: var(--color-hover-gray); }
  .btn_wrap .btn a::before { margin-right: 10px; }

  /* テーブル */
  .table_style th, .table_style td { padding: 20px 30px; }
  .table_style th { width: 30%; }
  .table_style02 th, .table_style02 td { padding: 20px; }

  /* アンカー */
  .anchor li + li { margin-left: 15px; }
  .anchor a::before { left: 48%; bottom: -3px; }
  .anchor a:hover { color: var(--color-accent); background: var(--color-bg-gray); }

  /* カテゴリー */
  .category ul li:nth-child(n + 4) { margin-top: 20px; }

} /* end @media (min-width: 768px) */


/* ================================================================
   15. メディアクエリ: SP (max-width: 767px)
   ================================================================
   統合元: utility_sp.css
   ================================================================ */

@media (max-width: 767px) {

  /* 表示切替 */
  .u-pc { display: none; }
  .u-sp { display: block; }

  /* セクションタイトル */
  .ttl_style {
    font-size: 7.4648vw;
    line-height: 1.5;
    padding-bottom: 9.331vw;
    margin-bottom: 10.664vw;
  }
  .ttl_style::before { font-size: 3.1992vw; }
  .ttl_style::after  { height: 7.998vw; }

  /* 汎用ボタン */
  .btn_style { margin-top: 10.664vw; }
  .btn_style a { padding: 3.999vw 13.33vw 3.999vw 13.33vw; }

  /* CTAバナー */
  .cont_bnr { padding-top: 10.664vw; padding-bottom: 10.664vw; }
  .cont_bnr h2 { font-size: 5.8652vw; margin-bottom: 7.998vw; }
  .cont_bnr .btn_wrap + .btn_wrap { margin-top: 3.999vw; }
  .cont_bnr .tel { margin-bottom: 5.332vw; }
  .cont_bnr .tel a { font-size: 9.5976vw; }
  .cont_bnr .btn + .btn { margin-top: 5.332vw; }
  .cont_bnr .btn a { width: 100%; font-size: 4.2656vw; padding: 3.999vw; }

  /* テーブル */
  .table_style th, .table_style td {
    display: block; width: 100%;
    border-bottom: none;
    padding: 3.999vw 0vw 3.999vw 0vw;
  }
  .table_style tr:last-child { border-bottom: solid 1px var(--color-border-light); }
  .table_style th { background: var(--color-bg-gray); padding-right: 2.666vw; padding-left: 2.666vw; }
  .table_style02 th, .table_style02 td { border-top: none; padding: 2.666vw; }

  /* パンくず */
  .breadcrumb { margin: 0 15px; }
  .breadcrumb ul { justify-content: flex-start; flex-wrap: wrap; }

  /* アンカー */
  .anchor ul { justify-content: space-between; }
  .anchor li { font-size: 3.7324vw; box-sizing: border-box; width: 100%; }
  .anchor li + li { margin-top: 2.666vw; }
  .anchor a { padding: 3.1992vw; }
  .anchor a::before { right: 20px; bottom: 10px; }

  /* カテゴリー */
  .category ul li { width: 48.5%; }
  .category ul li:nth-child(n + 3) { margin-top: 3.999vw; }
  .category a { padding: 3.1992vw; }

  /* ページフィード */
  .pagefeed { margin-bottom: 18.662vw; }
  .pagefeed > div { width: 45%; }
  .pagefeed a { font-size: 3.7324vw; padding: 2.666vw; }

} /* end @media (max-width: 767px) */
