@charset "UTF-8";

/* ------------------------------------------------------------
   design tokens (Figma variables)
   ------------------------------------------------------------ */
:root {
  --main:            #457117; /* main */
  --sub-green:       #396d01;
  --base-green:      #ddf2c8; /* base_green */
  --base-gray:       #f5f2e5; /* base_gray */
  --type-normal:     #4d9402; /* type_normal */
  --type-normal-bg:  #f1fde5; /* type_normal2 */
  --type-kanwa:      #bc7f0f; /* type_relaxed1 */
  --tx-base:         #333333; /* #333333 */
  --tx-gray:         #808080;
  --tx-attention:    #ea0000; /* tx_attention */
  --border-gray:     #dddddd;
  --border-gray2:    #cccccc;
  --bg-off:          #f7f7f7;
  --base-gray2:      #f2f2f2;
  --type-kanwa-bg:   #fff6e4; /* type_relaxed2 */
  --type-check:      #10914a;
  --tx-link:         #1d3994;
  --tx-gray2:        #666666;
  --hl-th:           #f5f0cb;
  --hl-td:           #fdfae3;
  --th-band:         #666666;
  --male-bg:         #e6ecff;
  --male-bg-lt:      #f4f7ff; /* 保険料行の交互背景（男性） */
  --male-tx:         #4d5f99;
  --female-bg:       #ffe9df;
  --female-bg-lt:    #fff5f0; /* 保険料行の交互背景（女性） */
  --female-tx:       #b25730;
  --tx-red:          #e25103; /* tx_red */
  --tag-direct-bg:   #e9fae3;
  --tag-direct-bd:   #1a5508;
  --tag-senior-bg:   #fae8fe;
  --tag-senior-bd:   #6d297b;
  --table-type01-th: #e7e7e7;
  --faq-q-bg:        #def2c9;
  --matome-bd:       #d2e9b7;
  --type-none:       #d25131; /* 無告知型 */
  --family-father:   #157fc0;
  --family-mother:   #cc5040;

  --inner-w: 1070px;
}

/* ------------------------------------------------------------
   base / reset  
   ------------------------------------------------------------ */
html {
  font-size: 62.5%;
}

.js-anchor {
  display: block;
  position: relative;
  height: 0;
  top: -78px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 1070px;
  font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 1.6rem;
  line-height: 1.6;
  color: var(--tx-base);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

h1, h2, p, ul, li, dl, dt, dd { margin: 0; padding: 0; }
ul, li { list-style: none; }
img { border: 0; vertical-align: top; }
a { color: inherit; text-decoration: none; }
.u-sp-break { display: none; }

#content {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* ------------------------------------------------------------
   ボタン・リンクの hover（共通）
   ページ内リンク／CVボタン／操作ボタンをまとめて薄くする。
   セクションごとに散らさず、追加するときはここへ足す。
   ------------------------------------------------------------ */
.guide__nav-item > a:hover,        /* ガイドナビ（固定ヘッダー内も同じセレクタ） */
.btn01:hover,                      /* 簡易診断の結果ボタン */
.cv-btn-lg:hover,                  /* 詳細・お申込み */
.cv-btn:hover,                     /* 見積り・申込（保険料試算表内） */
.modal-price__cv-btn:hover,        /* 詳細・お申込み（保険料早見表モーダル内） */
.cond-btn:hover:not(:disabled),    /* この条件で試算する */
.more_btn:hover,                   /* もっと見る／閉じる */
.pagetop-btn:hover,                /* ページ上部へ戻る */
.anchor-btn:hover {                /* 各章へのアンカーボタン */
  opacity: 0.6;
}

/* ============================================================
   PC レイアウト（769px以上）
   ============================================================ */


  /* ============================================================
     2_hero   8:7   (1440 x 300)
     ============================================================ */
  .hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--base-green);
    height: 300px;
  }

  /* panくず 127:5827 */
  .hero__breadcrumb {
    width: var(--inner-w);
    padding-top: 8px;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 14px;
    color: var(--tx-gray);
  }

  /* mv_inner 87:4303 */
  .hero__inner {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: var(--inner-w);
    padding-top: 20px;
  }

  .hero__ttl-wrap { display: flex; justify-content: center; }

  /* ttl 77:3821 */
  .hero__ttl {
    width: 700px;
    padding: 20px 0 28px;
    border-radius: 15px;
    background: #fff;
    box-shadow: inset 0 0 0 2px var(--main);
  }

  /* ttl_inner 77:3822 */
  .hero__ttl-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 0 20px;
  }

  /* sub_ttl 29:67 : Figma上fillなし（枠のみ） */
  .hero__sub-ttl {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    padding: 0 20px;
    border-radius: 30px;
    font-weight: bold;
    font-size: 2.6rem;
    line-height: 38.4px;
    color: var(--sub-green);
    white-space: nowrap;
  }

  /* 14:315 */
  .hero__main-ttl {
    height: 108px;
    font-weight: bold;
    color: var(--main);
    text-align: center;
    line-height: 56px;
  }
  .hero__main-ttl-l1,
  .hero__main-ttl-l2 { display: block; }
  .hero__main-ttl-l1 { font-size: 5rem; }
  .hero__main-ttl-l2 { font-size: 3.8rem; }
  .hero__main-ttl-l2 .num { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-size: 4.4rem; }
  .hero__main-ttl-l2 .s38 { font-size: 3.8rem; }
  .hero__main-ttl-l2 .s28 { font-size: 2.8rem; }

  /* img_mv01 / img_mv02 : mv_inner基準の絶対配置 */
  .hero__img {
    position: absolute;
    top: 74px;
    width: 260px;
    height: 180px;
  }
  .hero__img--01 { left: 0; }
  .hero__img--02 { right: 0; }


  /* ============================================================
     3_guide   39:508   (1440 x 404)
     ============================================================ */
  .guide {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 10px 0 40px;
  }

  /* time_area 39:507 */
  .guide__time-area {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: var(--inner-w);
  }
  .guide__time {
    font-size: 1.2rem;
    color: var(--tx-gray);
    text-align: right;
    white-space: nowrap;
  }

  /* tx 50:1530 */
  .guide__tx {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: var(--inner-w);
    padding-top: 30px;
    text-align: center;
  }
  .guide__tx > p { width: 100%; }

  /* nav-wrap 29:125 */
  .guide__nav-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 17px;
    width: var(--inner-w);
    padding-top: 40px;
  }

  /* ttl 24:103 : 24:105 （＼／の装飾線） */
  .guide__nav-ttl {
    position: relative;
    width: 258px;
    height: 26px;
    padding: 0 17px;
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--main);
    text-align: center;
  }
  .guide__nav-ttl::before,
  .guide__nav-ttl::after {
    content: "";
    position: absolute;
    top: 0;
    height: 26px;
    border-left: 4px dotted var(--main);
  }
  .guide__nav-ttl::before { left: 4px;  transform: rotate(-25deg); }
  .guide__nav-ttl::after  { right: 4px; transform: rotate(25deg); }

  /* nav 24:7 */
  .guide__nav {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    padding: 19px 0;
    border-radius: 10px;
    background: #fff;
    box-shadow: inset 0 0 0 2px var(--border-gray);
    overflow: hidden;
  }
  .guide__nav-item {
    flex: 1 0 0;
    min-width: 0;
    padding-right: 1px;
    border-right: 1px solid var(--border-gray2);
  }
  .guide__nav-item:last-child {
    padding-right: 0;
    border-right: 0;
  }
  .guide__nav-item > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 40px;
    font-weight: bold;
    font-size: 1.6rem;
    color: var(--tx-base);
    text-align: center;
    white-space: nowrap;
  }
  /* SPのみ短縮文言に切り替える（PC版Figmaの文言が長すぎてSP幅に収まらないため） */
  .guide__nav-item__short { display: none; }

  /* nav-fixed 104:12936: guide__nav がビューポート外に出たら現れる固定ヘッダー */
  .nav-fixed {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    display: flex;
    justify-content: center;
    width: 100%;
    min-width: 1070px;
    background: #fff;
    box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
    transform: translateY(-90px);
    transition: transform 0.25s ease;
  }
  .nav-fixed.is-visible { transform: translateY(0); }

  .pagetop-btn {
    position: fixed;
    left: min(50% + 555px, 100% - 60px);
    right: auto;
    bottom: 20px;
    z-index: 99;   /* .nav-fixed(100) より下 */
    width: 50px;
    height: 50px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    transform: translateY(calc(100% + 20px));
    visibility: hidden;
    transition: transform 0.25s ease, visibility 0s 0.25s;
  }
  .pagetop-btn.is-visible {
    transform: translateY(0);
    visibility: visible;
    transition: transform 0.25s ease, visibility 0s 0s;
  }
  .pagetop-btn img {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
  }
  .guide__nav--fixed {
    width: var(--inner-w);
    border-radius: 0;
    box-shadow: none;
  }
  .ic-arrow,.ic-arrow2 {
    flex-shrink: 0;
    display: block;
    width: 17px;
    height: 17px;
  }
  .ic-arrow{
    transform: rotate(90deg);
  }


  /* ============================================================
     4_section-shindan   24:107   (1440 x 1898)
     ============================================================ */
  .shindan {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
    background: var(--base-gray);
  }

  /* inner 39:510 */
  .shindan__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: var(--inner-w);
  }

  /* section_type_inner 38:417 */
  .shindan__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
    width: var(--inner-w);
  }

  /* ---- 白カード共通 (29:1423 / 41:394) ---- */
  .shindan-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 40px;
    border-radius: 10px;
    background: #fff;
  }

  /* hukidasi 41:297 / 41:395 */
  .shindan-card__badge {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 180px;
    height: 40px;
    padding: 8px 15px;
    border-radius: 30px;
    background: var(--main);
    font-weight: bold;
    font-size: 1.8rem;
    letter-spacing: 0.36px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }

  /* ttl-dotline 41:290 / 41:397 */
  .ttl-dotline {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 990px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 2px dotted #ccc;
  }
  .ttl-dotline__ttl {
    width: 100%;
    font-weight: bold;
    font-size: 2.4rem;
    letter-spacing: 0.48px;
    text-align: center;
  }
  .ttl-dotline__ttl .c-normal { color: var(--type-normal); }
  .ttl-dotline__ttl .c-kanwa  { color: var(--type-kanwa); }

  .dotline {
    position: relative;
    width: 100%;
    height: 0;
  }
  .dotline::after {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    height: 2px;
    background-image: repeating-linear-gradient(to right,
      var(--border-gray2) 0 2px, transparent 2px 6px);
  }

  /* type_inner 38:246 */
  .shindan-card__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  /* ---- feature-block 41:309 ---- */
  .feature-block {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
    width: 100%;
  }
  .feature-block__li {
    flex: 1 0 0;
    min-width: 0;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding-top: 10px;
    border-radius: 10px;
  }
  .feature-block__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
  }
  .feature-block__head img { width: 120px; height: 100px; }
  .feature-block__ttl {
    width: 100%;
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--main);
    text-align: center;
  }
  .feature-block__tx {
    width: 100%;
  }

  /* ---- hukidasi-box01 50:1291 ---- */
  .hukidasi-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
  .hukidasi {
    position: relative;
    width: 680px;
  }
  .hukidasi--a { min-height: 80px; }

  .hukidasi__waku {
    position: relative;
    display: flex;
    align-items: center;
    width: 680px;
    min-height: 80px;
    padding: 20px 30px;
    border-radius: 10px;
    background: #fff;
    box-shadow: inset 0 0 0 2px var(--border-gray); /* Figma内側線 */
  }
  .hukidasi--a .hukidasi__waku { align-items: flex-start; }
  .hukidasi__waku > p {
    flex: 1 0 0;
    min-width: 0;
  }

  .hukidasi__waku::before,
  .hukidasi__waku::after {
    content: "";
    position: absolute;
    top: 30px;
    width: 0;
    height: 0;
    border-style: solid;
  }
  .hukidasi--q .hukidasi__waku::before {
    left: -12px;
    border-width: 10px 12px 10px 0;
    border-color: transparent var(--border-gray) transparent transparent;
  }
  .hukidasi--q .hukidasi__waku::after {
    left: -8px;
    top: 32px;
    border-width: 8px 10px 8px 0;
    border-color: transparent #fff transparent transparent;
  }
  .hukidasi--a .hukidasi__waku::before {
    right: -12px;
    border-width: 10px 0 10px 12px;
    border-color: transparent transparent transparent var(--border-gray);
  }
  .hukidasi--a .hukidasi__waku::after {
    right: -8px;
    top: 32px;
    border-width: 8px 0 8px 10px;
    border-color: transparent transparent transparent #fff;
  }

  .hukidasi__img {
    position: absolute;
    top: 0;
    width: 100px;
    height: 120px;
  }
  .hukidasi--q .hukidasi__img { left: -120px; }
  .hukidasi--a .hukidasi__img { right: -120px; }

  /* ---- tx 38:256 (チェック説明) ---- */
  .check-lead {
    width: 100%;
  }
  .check-lead > p {
    width: 990px;
    text-align: center;
  }
  .check-lead__box {
    display: inline-block;
    width: 20px;
    height: 20px;
    margin: 0 4px;
    vertical-align: middle;
    border: 2px solid var(--border-gray2);
    border-radius: 5px;
    background: var(--bg-off);
  }

  /* ---- checkBox_wrap 38:258 ---- */
  .checkbox-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 830px;
    padding-top: 20px;
  }
  .checkbox {
    width: 100%;
    box-shadow: inset 0 0 0 2px var(--border-gray);
  }
  .checkbox + .checkbox { margin-top: -2px; }
  .checkbox:first-child { border-radius: 10px 10px 0 0; }
  .checkbox:last-child  { border-radius: 0 0 10px 10px; }
  .checkbox__label {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 15px 20px;
    cursor: pointer;
  }
  .checkbox__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }

  .checkbox__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 2px solid;
    border-radius: 5px;
  }
  .checkbox__icon.is-checked { border-color: #10914a; background: #fff; }
  .checkbox__icon.is-blank   { border-color: var(--border-gray2); background: var(--bg-off); }
  .checkbox__icon img { width: 21px; height: 16px; }
  .checkbox__icon.is-blank img { display: none; }

  .checkbox__tx {
    flex: 1 0 0;
    min-width: 0;
  }
  .checkbox__note {
    display: block;
    font-size: 1.3rem;
  }

  /* ---- note-list 41:1966 / 41:1974 / 41:1982 ---- */
  .note-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
    font-size: 1.3rem;
  }
  .note-list--attention { color: var(--tx-attention); }
  .note-list--w830 { width: 830px; }
  .note-list--pt10 { padding-top: 10px; }
  .note-list--pt20 { padding-top: 20px; gap: 0; }

  .note-list > li {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
  }
  .note-list__mark {
    flex-shrink: 0;
    white-space: nowrap;
  }
  .note-list__tx {
    flex: 1 0 0;
    min-width: 0;
  }

  /* ---- result-block 38:273 ---- */
  .result-block-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 55px;
  }
  .result-block {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 830px;
    padding: 30px;
    border-radius: 10px;
  }
  .result-block[hidden] { display: none; }
  .result-block::before {
    content: "";
    position: absolute;
    top: -40px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 20px 25px 0 25px;
    border-color: transparent;
  }
  /* チェック0個: 通常告知型（緑） 38:273 */
  .result-block--normal {
    background: var(--type-normal-bg);
    box-shadow: inset 0 0 0 2px var(--type-normal);
  }
  .result-block--normal::before { border-top-color: var(--type-normal); }
  .result-block--normal .result-block__lead { color: var(--type-normal); }
  /* チェック1個以上: 引受基準緩和型・無告知型（アンバー） 67:6502 */
  .result-block--kanwa {
    background: var(--type-kanwa-bg);
    box-shadow: inset 0 0 0 2px var(--type-kanwa);
  }
  .result-block--kanwa::before { border-top-color: var(--type-kanwa); }
  .result-block--kanwa .result-block__lead { color: var(--type-kanwa); }

  .result-block__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
  }
  .result-block__count {
    width: 100%;
    text-align: center;
  }
  .result-block__count strong { font-weight: bold; }

  .result-block__lead {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
    text-align: center;
  }
  .result-block__ttl {
    width: 100%;
    font-weight: bold;
    font-size: 2.4rem;
  }
  .result-block__tx {
    width: 100%;
  }

  /* btn01 38:337 */
  .btn01 {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 480px;
    min-width: 480px;
    height: 54px;
    padding: 10px 20px;
    border-radius: 10px;
    background: var(--type-normal);
    box-shadow: 0 3px 0 var(--border-gray2);
  }
  .btn01__tx {
    width: 239px;
    font-weight: bold;
    font-size: 1.8rem;
    letter-spacing: 0.36px;
    color: #fff;
    text-align: center;
  }
  .btn01--kanwa { background: var(--type-kanwa); }
  .btn01--kanwa .btn01__tx { width: 380px; }
  .btn01__arrow {
    position: absolute;
    top: 19.5px;
    right: 20px;
    width: 17px;
    height: 17px;
    transform: rotate(90deg);
  }


  /* ============================================================
     共通: ttl-h2+テキスト  (Figmaコンポーネント 45:935 / 46:942)
     ============================================================ */
  .sec-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding-bottom: 40px;
  }
  .sec-head__ttl {
    width: 100%;
    padding-bottom: 20px;
    font-weight: bold;
    font-size: 3.2rem;
    letter-spacing: 0.64px;
    color: var(--main);
    text-align: center;
  }
  .sec-head__tx {
    width: 100%;
    text-align: center;
  }

  /* 本文中のテキストリンク */
  .tx-link {
    color: var(--tx-link);
    text-decoration: underline;
    text-underline-position: from-font;
  }


  /* ============================================================
     6_section-point   41:1631   (1440 x 818)
     ============================================================ */
  .point {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
    background: var(--base-gray2);
  }
  .point__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--inner-w);
  }

  /* point-block 39:550 */
  .point-block {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: var(--inner-w);
    padding-bottom: 40px;
  }
  .point-block__li {
    flex: 1 0 0;
    min-width: 0;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    border-radius: 10px;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--border-gray2);
  }
  /* point-ttl 39:552 */
  .point-ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
  }
  .point-ttl__sab {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    border-radius: 20px;
    background: var(--main);
    font-weight: bold;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }
  .point-ttl__sab .l { font-size: 1.5rem; }
  .point-ttl__sab .n { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-size: 1.7rem; }
  .point-ttl__ttl {
    width: 100%;
    font-weight: bold;
    font-size: 2rem;
    color: var(--main);
    text-align: center;
  }
  .point-block__img {
    width: 280px;
    height: 170px;
    margin-bottom: 10px;
  }
  .point-block__img--w270 { width: 270px; }

  .point-block__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
  }
  .point-block__tx {
    width: 100%;
  }

  .maru-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }
  .maru-list > li {
    display: flex;
    align-items: flex-start;
    width: 100%;
  }
  .maru-list .maru {
    position: relative;
    flex-shrink: 0;
    width: 8px;
    height: 22px;
  }
  .maru-list .maru::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 1px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--main);
  }
  .maru-list > li > p {
    flex: 1 0 0;
    min-width: 0;
  }

  .point__link-tx {
    width: 100%;
    text-align: center;
  }
  .point__link-tx > a {
    color: var(--tx-link);
    text-decoration: underline;
    text-underline-position: from-font;
  }


  /* ============================================================
     7_section-sim   41:1688   (1440 x 1414)
     ============================================================ */
  .sim {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
  }
  .sim__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--inner-w);
  }

  /* tab-wrap 41:1680 */
  .tab-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--inner-w);
    padding-bottom: 30px;
  }
  .tab-wrap::before { /* line I41:1680;39:418 */
    content: "";
    position: absolute;
    top: 58px;
    left: 0;
    width: var(--inner-w);
    height: 2px;
    background: var(--type-normal);
  }
  .tab {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 20px;
  }
  .tab__li {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 460px;
    height: 58px;
    padding: 15px 10px 10px;
    border-radius: 10px 10px 0 0;
    font-weight: bold;
    font-size: 2.4rem;
    text-align: center;
  }
  .tab__li--normal { background: var(--type-normal-bg); color: var(--type-normal); }
  .tab__li--kanwa {
    background: var(--type-kanwa-bg);
    color: var(--type-kanwa);
  }
  .tab__li.is-current {
    position: relative;
    z-index: 1;
    height: 60px;
    background: #fff;
    box-shadow: inset 2px 2px 0 var(--type-normal), inset -2px 0 0 var(--type-normal);
    color: var(--type-normal);
  }
  .tab__li--kanwa.is-current {
    box-shadow: inset 2px 2px 0 var(--type-kanwa), inset -2px 0 0 var(--type-kanwa);
    color: var(--type-kanwa);
  }
  .tab__li > span { flex: 1 0 0; min-width: 0; }

  .tab-wrap--switchable .tab__li { padding: 0; }
  .tab-wrap--switchable .tab__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 15px 10px 10px;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
  }
  .tab-wrap--switchable .tab__btn > span { flex: 1 0 0; min-width: 0; }
  .tab-wrap--switchable.is-kanwa::before { background: var(--type-kanwa); }

  /* タブパネル */
  .rank-panel,
  .sim-panel,
  .feature-panel { width: 100%; }
  .rank-panel[hidden],
  .sim-panel[hidden],
  .feature-panel[hidden] { display: none; }

  /* cond-block 41:1689 */
  .cond-block {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: var(--inner-w);
    padding: 10px 20px 15px;
    border-radius: 8px;
    box-shadow: inset 0 0 0 2px #d9d9d9;
    margin-bottom: 20px;
  }
  .cond-controls {
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .selectBox_wrap,
  .radioBtn_wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .radioBtn_wrap { justify-content: center; }
  .selectBox_wrap__label {
    font-size: 1.3rem;
    white-space: nowrap;
  }
  .selectBox {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 44px;
    border-radius: 5px;
    box-shadow: inset 0 0 0 1px var(--border-gray2);
    overflow: hidden;
  }
  .selectBox--w230 { width: 230px; }
  .selectBox--w100 { width: 100px; }
  .selectBox__inner {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 10px;
  }
  .selectBox__inner > p {
    flex: 1 0 0;
    min-width: 0;
    font-weight: bold;
    font-size: 1.6rem;
  }
  .selectBox__inner .num  { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }
  .selectBox__inner .unit { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

  .selectBox__select {
    flex: 1 0 0;
    min-width: 0;
    width: 100%;
    height: 100%;
    padding: 0 30px 0 10px;
    border: 0;
    background: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 1.6rem;
    color: var(--tx-base);
    cursor: pointer;
  }
  .selectBox__select:focus-visible { outline: none; outline-offset: 1px; }

  .icon-caret {
    position: absolute;
    top: 0;
    right: 0;
    flex-shrink: 0;
    width: 20px;
    height: 44px;
    background-color: #666;
    pointer-events: none;
  }
  .icon-caret::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -3px 0 0 -5px;
    border-style: solid;
    border-width: 8px 5px 0 5px;
    border-color: #fff transparent transparent transparent;
  }

  .radioBtn_group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 180px;
  }
  .radioBtn {
    display: flex;
    align-items: center;
    width: 90px;
    height: 44px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid var(--border-gray2);
    font-weight: bold;
  }
  .radioBtn:first-child  { border-radius: 5px 0 0 5px; border-right: none;}
  .radioBtn:last-child   { border-radius: 0 5px 5px 0; }
  .radioBtn.is-on        { background: var(--type-normal-bg); }
  .radioBtn { cursor: pointer; }
  .radioBtn__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .radioBtn__input:focus-visible ~ .radio-icon { outline: 2px solid var(--main); outline-offset: 2px; }
  .radioBtn__tx {
    font-weight: bold;
    font-size: 1.6rem;
    white-space: nowrap;
    width: 100%;
    text-align: center;
  }
  /* radioBtn */
  .radio-icon {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--border-gray2);
  }
  .radio-icon.is-on { box-shadow: inset 0 0 0 1px var(--type-normal); }
  .radio-icon.is-on::before {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    background: var(--type-normal);
  }

  /* cond-btn 39:523 */
  .cond-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 55px;
    padding: 10px 20px;
    border: 1px solid #119e51;
    border-radius: 8px;
    background: linear-gradient(to bottom, #30c774, #29ac63);
    box-shadow: 0 3px 0 #10914a;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 1.8rem;
    color: #fff;
    text-align: center;
    text-shadow: 0 0 4px #10914a;
    white-space: nowrap;
    cursor: pointer;
  }
  .cond-btn:disabled { opacity: 0.6; cursor: default; }

  .table-sim td.is-nodata .num,
  .table-sim td.is-pending .num {
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: normal;
    color: var(--tx-gray);
  }

  @keyframes simCellIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: none; }
  }
  .table-sim .cell-price.is-anim-in {
    animation: simCellIn 0.4s ease-out both;
  }
  @media (prefers-reduced-motion: reduce) {
    .table-sim .cell-price.is-anim-in { animation: none; }
  }

  /* ---- table-sim 41:1719 ---- */
  .table-sim { padding-top: 20px; }
  .js-sim-table { scroll-margin-top: 78px; }
  .table-sim table {
    width: var(--inner-w);
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border-top: 1px solid var(--border-gray2);
  }

  .table-sim th,
  .table-sim td {
    padding: 10px;
    border-bottom: 1px solid var(--border-gray2);
    font-size: 1.3rem;
    font-weight: normal;
    color: var(--tx-base);
    vertical-align: middle;
    text-align: left;
  }
  .table-sim th {
    background: var(--base-gray2);
    border-left: 1px solid var(--border-gray2);
    border-right: 1px solid var(--border-gray2);
  }
  .table-sim td {
    background: #fff;
    border-right: 1px solid var(--border-gray2);
  }
  .table-sim .ta-c { text-align: center; }
  /* 1行目のみ py5px (41:1720) */
  .table-sim tr:first-child th,
  .table-sim tr:first-child td { padding: 5px 10px; }
  /* 保険金額・月払保険料の強調行 */
  .table-sim .tr-hl th { background: var(--hl-th); }
  .table-sim .tr-hl td { background: var(--hl-td); }

  .rank-icon   { width: 30px; height: 21px; }

  .cell-amount { color: var(--type-check); }
  .cell-price  { color: var(--tx-attention); }
  .cell-amount .num,
  .cell-price  .num { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-weight: bold; }
  .cell-amount .num { font-size: 1.8rem; }
  .cell-price  .num { font-size: 2rem; }
  .cell-amount .unit,
  .cell-price  .unit { font-weight: bold; font-size: 1.3rem; }
  .cell-note { font-size: 1.2rem; }
  /* 保険料に添える「（※継続契約のみ）」。金額の下に改行して、強調色は引き継がない */
  .cell-price .cell-note {
    display: block;
    margin-top: 2px;
    color: var(--tx-base);
    font-weight: normal;
    line-height: 1.3;
  }

  /* cv-btn 39:528 */
  .cv-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 54px;
    border-radius: 8px;
    background: linear-gradient(to bottom, #fa0, #ff7f00);
    box-shadow: 0 3px 0 #ff6a00;
    color: #fff!important;
    text-align: center;
    text-shadow: 0 0 4px #ff6a00;
    margin-bottom: 3px;
    line-height: 1.4;
    padding-top: 4px;
  }
  .cv-btn .btn-tx-sub { font-size: 1.2rem;}
  .cv-btn .btn-tx-main { font-weight: bold; font-size: 1.6rem;}

  @media (max-width: 767px) {
    .cv-btn .btn-tx-sub { font-size: 1.1rem;}
    .cv-btn .btn-tx-main { font-size: 1.4rem;}
  }

  .table-sim .td-availability {
    text-align: center;
  }
  .table-sim .td-availability img {
    display: inline-block;
    width: auto;
  }
  .table-sim .td-availability .cell-note { margin-top: 5px; }

  .table-sim .td-list { vertical-align: top; }
  .dot-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    font-size: 1.2rem;
  }
  .dot-list--nogap { gap: 0; }
  .dot-list > li {
    display: flex;
    align-items: flex-start;
    width: 100%;
    text-align: left;
  }
  .dot-list .m { flex-shrink: 0; white-space: nowrap; }
  .dot-list .t { flex: 1 0 0; min-width: 0; }

  /* hukidasi-box02 50:1511 */
  .hukidasi-box02 {
    width: 100%;
    padding-top: 20px;
  }
  .hukidasi-box02[hidden] { display: none; }
  .hukidasi--a2 {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
  }
  .hukidasi--a2 .hukidasi__waku {
    align-items: flex-start;
    min-height: 0;
  }
  .hukidasi--a2 .hukidasi__waku::before {
    top: 50%;
    margin-top: -10px;
    right: -12px;
    border-width: 10px 0 10px 12px;
    border-color: transparent transparent transparent var(--border-gray);
  }
  .hukidasi--a2 .hukidasi__waku::after {
    top: 50%;
    margin-top: -9px;
    right: -9px;
    border-width: 9px 0 9px 12px;
    border-color: transparent transparent transparent #fff;
  }
  .hukidasi__img02 { flex-shrink: 0; width: 100px; height: 120px; }


  /* ============================================================
     13_writer-box_wrap   65:1910   (1440 x 557)
     ============================================================ */
  .writer {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 60px;
  }
  .writer-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    width: var(--inner-w);
    padding: 20px 30px;
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px var(--border-gray2);
  }
  .writer-box__ttl {
    font-weight: bold;
    white-space: nowrap;
  }
  .writer-dl {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
  }
  .writer-dl__dt {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    width: 90px;
    border-radius: 5px;
    font-weight: bold;
    font-size: 1.4rem;
    color: var(--tx-gray2);
    white-space: nowrap;
  }
  .writer-dl__dt--tag {
    justify-content: center;
    padding: 5px 10px;
    background: var(--base-gray2);
  }
  .writer-dl__dd {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    padding-top: 8px;
  }
  .writer-dl__dd--plain { gap: 0; padding-top: 0; align-self: stretch; }
  .writer-dl__dd--gap5  { gap: 5px; }
  .writer-dl__name { width: 100%; font-weight: bold; }
  .writer-dl__qual { width: 100%; font-size: 1.4rem; color: var(--tx-gray2); }
  .writer-dl__bio  { width: 100%; font-size: 1.4rem; }

  .ref-list {
    width: 100%;
    font-size: 1.4rem;
  }
  .icon-blank {
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-left: 4px;
    vertical-align: middle;
  }
  .icon-blank img { width: 13px; height: 13px; }


  /* ============================================================
     9_section-feature   62:2212   (1440 x 3282)
     ============================================================ */
  .feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
  }
  .feature__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: var(--inner-w);
  }

  /* accordion_wrap 67:8445 */
  .accordion_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin-bottom: 40px;
  }

  /* accordion-btn 62:2481 */
  .accordion-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 480px;
    height: 52px;
    padding: 8px 20px;
    border: 1px solid var(--border-gray2);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 3px 0 #d9d9d9;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    cursor: pointer;
  }
  .accordion-btn__tx {
    flex: 1 0 0;
    min-width: 0;
    font-weight: bold;
    font-size: 1.6rem;
    color: var(--tx-base);
    text-align: center;
  }
  .icon-accordion {
    position: relative;
    flex-shrink: 0;
    width: 20px;
    height: 4px;
    background: var(--main);
  }
  .icon-accordion::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
    width: 20px;
    height: 4px;
    background: var(--main);
    transition: transform 0.25s ease;
  }
  .accordion-btn[aria-expanded="true"] .icon-accordion::after {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  /* accordion_contents 67:8444 */
  .accordion_contents {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }
  /* ⑦スライドアニメーション対応: max-heightはJSが制御するため、[hidden]でdisplay:noneにしない */
  .accordion_contents[hidden] { display: flex; max-height: 0; }
  .accordion_contents[hidden],
  .accordion_contents.is-collapsed,
  .faq-list__contents[hidden],
  .faq-list__contents.is-collapsed {
    padding-top: 0;
    padding-bottom: 0;
    border-top-width: 0;
    border-bottom-width: 0;
    margin-top: 0;
    margin-bottom: 0;
  }

  /* maru-list_wrap 62:2484 */
  .maru-list_wrap {
    width: 100%;
    padding: 30px 0 0;
  }

  /* maru-list 62:2485 */
  .check-list {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: 30px;
    border-radius: 10px;
    background: var(--base-green);
  }
  .check-list::before {
    content: "";
    position: absolute;
    top: -15px;
    left: 50%;
    margin-left: -13px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 13px 15px 13px;
    border-color: transparent transparent var(--base-green) transparent;
  }
  .check-list > li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
    padding: 10px 0;
    border-bottom: 1px dotted var(--main);
  }
  .check-list > li:first-child { padding-top: 0; }
  .check-list > li:last-child  { padding-bottom: 0; border-bottom: 0; }

  .check-list__ttl {
    width: 100%;
    font-weight: bold;
  }
  .check-list__tx {
    display: flex;
    align-items: center;
    width: 100%;
    font-size: 1.6rem;
  }
  .check-list__tx img {
    flex-shrink: 0;
    width: 22px;
    height: 17px;
  }
  .check-list__tx > span { flex: 1 0 0; min-width: 0; }

  .caution-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    padding: 10px 15px;
    border: 1px dotted var(--border-gray2);
    font-size: 1.3rem;
  }
  .caution-box > li {
    display: flex;
    align-items: flex-start;
    width: 100%;
  }
  .caution-box .m {
    flex-shrink: 0;
    white-space: nowrap;
  }
  .caution-box .t {
    flex: 1 0 0;
    min-width: 0;
  }
  /* アイコン＋見出し＋本文パターン */
  .caution-box__set {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
  }
  .caution-box__set .icon-attention { flex-shrink: 0; width: 20px; }
  .caution-box__set .icon-attention img { display: block; width: 20px; height: 18px; }
  .caution-box__set p { font-weight: bold; font-size: 1.3rem;}
  .caution-box > p { width: 100%; font-size: 1.3rem;}
  .caution-box--mt15 { margin-top: 15px; }

@media (max-width: 767px) {
  .accordion_wrap {
    margin-bottom: 30px;
  }
}

  .table-feature {
    padding-bottom: 20px;
    margin-top: 20px;
  }
  .table-feature table {
    width: var(--inner-w);
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border-top: 1px solid var(--border-gray2);
  }
  .table-feature .c-gender { width: 32px; }
  .table-feature .c-age    { width: 114px; }

  .table-feature th{
    width: 100px;
    min-width: 100px;
    max-width: 100px;
  }
  .table-feature th.th-gender{
    width: 30px;
    min-width: 30px;
    max-width: 30px;
  }
  .table-feature th.th-age{
    width: 70px;
    min-width: 70px;
    max-width: 70px;
  }

  .table-feature th,
  .table-feature td {
    padding: 9px 10px 10px;
    border-right: 1px solid var(--border-gray2);
    border-bottom: 1px solid var(--border-gray2);
    font-weight: normal;
    font-size: 1.3rem;
    color: var(--tx-base);
    text-align: left;
    vertical-align: middle;
  }
  .table-feature td {
    background: #fff;
  }
  .table-feature .th-label,
  .table-feature .th-band,
  .table-feature .th-gender {
    border-left: 1px solid var(--border-gray2);
  }
  .table-feature .ta-c { text-align: center; }
  .table-feature .th-label {
    background: var(--base-gray2);
    vertical-align: middle;
  }
  .table-logo{
    max-height: 70px;
  }
  /* th 内の注記 (39:889) */
  .th-note {
    display: flex;
    align-items: flex-start;
    font-size: 1.2rem;
  }
  .th-note .m { flex-shrink: 0; width: 12px; }
  .th-note .t { flex: 1 0 0; min-width: 0; }

  .table-feature .th-band {
    padding: 6px 10px 7px;
    background: var(--th-band);
    font-weight: bold;
    color: #fff;
  }
  .table-feature .th-gender {
    font-weight: bold;
    text-align: left;
    vertical-align: middle;
  }
  .table-feature .th-gender--m { background: var(--male-bg);   color: var(--male-tx); }
  .table-feature .th-gender--f { background: var(--female-bg); color: var(--female-tx); }
  .table-feature .th-age { text-align: center; vertical-align: top; vertical-align: middle;}
  .table-feature .th-age--m { background: var(--male-bg); }
  .table-feature .th-age--f { background: var(--female-bg); }
  .table-feature tr.is-alt .th-age--m ~ td { background: var(--male-bg-lt); }
  .table-feature tr.is-alt .th-age--f ~ td { background: var(--female-bg-lt); }
  .table-feature .num-cell .n { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }

  .table-feature .cell-note {
    display: block;
    font-size: 1.2rem;
  }

  /* 「保険金額の選択肢」の金額。数字と「万円」の間で折り返させない */
  .table-feature .nw { white-space: nowrap; }

  .tx-link-blank {
    display: flex;
    align-items: center;
    gap: 5px;
    text-align: center;
    margin: 0 auto;
    justify-content: center;
    padding-left: 10px;
    font-size: 1.2rem;
    color: var(--tx-link);
    text-decoration: underline;
    text-underline-position: from-font;
  }
  .tx-link-blank img { flex-shrink: 0; width: 12px; height: 13px; }

  .table-feature .td-availability { text-align: center; }
  .table-feature .td-availability img { display: block; margin: 0 auto; width: auto;}
  .table-feature .td-availability .cell-note { margin-top: 5px; }

  /* 付帯サービス 39:1233 */
  .table-feature .td-svc { vertical-align: top; }
  /* サービスなし（「ー」）のセルだけは上下左右中央に置く */
  .table-feature .td-svc.ta-c { vertical-align: middle; }
  .svc-list,
  .svc-sublist {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 1.2rem;
    text-align: left;
  }
  .svc-list > li,
  .svc-sublist > li {
    display: flex;
    align-items: flex-start;
  }
  .svc-list__sub { display: block; }
  .svc-maru {
    position: relative;
    flex-shrink: 0;
    width: 6px;
    height: 12px;
    margin-right: 3px;
  }
  .svc-maru::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tx-base);
  }
  .svc-list .t,
  .svc-sublist .t { flex: 1 0 0; min-width: 0; }
  .svc-sublist .m { flex-shrink: 0; width: 12px; }

  @media (max-width: 767px) {
    .table-feature {
      margin-top: 10px;
    }
  }


  /* ============================================================
     5_section-ranking   41:471   (1440 x 6143)
     ============================================================ */
  .ranking {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
  }
  .ranking__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: var(--inner-w);
  }

  /* ttl-ranking 41:597 */
  .ttl-ranking {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-bottom: 25px;
  }
  .ttl-ranking > p {
    width: 100%;
    font-weight: bold;
    font-size: 2.4rem;
    color: var(--type-normal);
    text-align: center;
  }
  /* 67:2886 引受基準緩和型・無告知型の見出しはアンバー */
  .ttl-ranking--kanwa > p { color: var(--type-kanwa); }

  /* rank-box_wrap 41:1029 */
  .rank-box_wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    padding-bottom: 20px;
  }

  /* rank-box 93:14881 */
  .rank-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    padding: 25px 30px 30px;
    border-radius: 10px;
    background: #fff;
    border: 2px solid #ccc;
    overflow: hidden;
  }

  /* product-header_wrap 93:14882 */
  .product-header_wrap {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
    border-bottom: 2px dotted #ccc;
    padding-bottom: 20px;
  }
  .rank-icon-lg { flex-shrink: 0; width: 52px; height: auto;}
  .rank-box__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 140px;
    height: 80px;
    box-shadow: inset 0 0 0 1px var(--border-gray2);
    overflow: hidden;
  }
  .rank-box__logo img { width: 120px; height: 70px; }
  .product-header_tx {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .product-header_tx__company { width: 100%; font-size: 1.6rem; }
  .product-header_tx__name    { width: 100%; font-weight: bold; font-size: 2.2rem; }

  .tag_wrap { flex-shrink: 0; display: flex; align-items: flex-start; gap: 5px; }
  .tag-direct {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    border: 1px solid var(--tag-direct-bd);
    border-radius: 5px;
    background: var(--tag-direct-bg);
    font-size: 1.3rem;
    color: var(--tag-direct-bd);
    white-space: nowrap;
  }

  /* line 93:14895 : 高さ0の罫線 */
  .rank-box__line { position: relative; width: 100%; height: 0; }
  .rank-box__line::after {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--border-gray2);
  }
  .rank-box .maru-list .maru{
    margin-bottom: 5px;
  }

  /* rank-table 93:14896 */
  .rank-table {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
  }
  /* price_area 93:14897 */
  .price_area {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    width: 350px;
  }
  .price-table { width: 100%; }
  .price-table__th {
    padding: 8px 10px;
    background: var(--tx-red);
    font-weight: bold;
    font-size: 1.4rem;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }
  .price-table__td {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 94px;
    padding: 10px;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--tx-red);
    text-align: center;
    white-space: nowrap;
  }
  .price-table__price { font-weight: bold; color: var(--tx-red); }
  .price-table__price .n { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-size: 2.6rem; }
  .price-table__price .u { font-size: 1.6rem; }
  .price-table__cond { font-size: 1.4rem; }
  .price-table__cond .n { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-weight: bold; font-size: 1.6rem; }

  /* tx-link-blank 93:14903 / 93:14925 */
  .tx-link-modal {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 1.3rem;
    color: var(--tx-link);
    text-decoration: underline;
    text-underline-position: from-font;
    white-space: nowrap;
  }
  .tx-link-modal img { flex-shrink: 0; width: 12px; height: 13px; }

  /* detail_area 93:14906 */
  .detail_area {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
  }
  .detail-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  .detail-table th,
  .detail-table td {
    padding: 7px 15px 8px;
    border: 1px solid var(--border-gray2);
    font-weight: normal;
    font-size: 1.4rem;
    color: var(--tx-base);
    text-align: left;
    vertical-align: middle;
  }
  .detail-table th { width: 200px; background: var(--base-gray2); }
  .detail-table td { background: #fff; }

  /* disclosure-box 93:14923 */
  .disclosure-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 8px 15px;
    border-radius: 5px;
    background: var(--base-gray2);
    font-size: 1.3rem;
    white-space: nowrap;
  }
  .disclosure-box strong { font-weight: bold; }

  /* section 93:14928 */
  .rank-box__section {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }
  /* rank-box_ttl 93:14929 */
  .rank-box_ttl {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: bold;
    font-size: 1.8rem;
    padding-left: 15px;
  }
  .rank-box_ttl::before{
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
    width: 4px;
    height: 90%;
    background-color: var(--type-normal);;
  }
  .rank-box_ttl .bd {
    flex-shrink: 0;
    width: 4px;
    height: 24px;
    background: var(--type-normal);
  }
  .rank-box_ttl .rank-box_ttl_small{
    font-size: 1.4rem;
    font-weight: normal;
  }

  /* cv-btn_wrap 2019:6223 */
  .cv-btn_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-bottom: 3px;
  }
  .cv-btn-lg {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 560px;
    padding: 8px 10px 8px 0;
    border-radius: 10px;
    background: linear-gradient(to bottom, #fa0, #ff7f00);
    box-shadow: 0 3px 0 #ff6a00;
    color: #fff!important;
    text-align: center;
    white-space: nowrap;
  }
  .cv-btn-lg__tx > span { display: block; }
  .cv-btn-lg__tx .btn-tx-main { font-weight: bold; font-size: 2.2rem; }
  .cv-btn-lg__tx .btn-tx-sub { font-size: 1.4rem; }
  .cv-btn-lg__blank {
    position: absolute;
    top: 50%;
    right: 20px;
    width: 16px;
    height: 16px;
    margin-top: -8px;
  }

  /* tag-senior 93:15008 */
  .tag-senior {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    border: 1px solid var(--tag-senior-bd);
    border-radius: 5px;
    background: var(--tag-senior-bg);
    font-size: 1.3rem;
    color: var(--tag-senior-bd);
    white-space: nowrap;
  }

  /* ---- accordion_contents 89:13158 (ご加入者さまの声) ---- */
  .accordion_contents {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    overflow: hidden;
  }
  .rank-box > .accordion_contents.is-collapsed { margin-bottom: -20px; }
  .kutikomi-list { width: 100%; }
  .kutikomi-list > li {
    display: flex;
    /*align-items: center;*/
    gap: 20px;

    width: 100%;
    padding: 20px 0;
    border-bottom: 1px dotted #ccc;
  }
  .kutikomi-list > li:first-child { padding-top: 5px; }
  .kutikomi-list > li:last-child{
    padding-bottom: 0;
    border-bottom: none;
  }
  .kutikomi-list > li.is-nopb { padding-bottom: 0; }
  .hito_wrap {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
  }
  .hito { display: block; width: 74px; height: 74px; overflow: hidden; }
  .hito img { width: 74px; height: 74px; }
  .hito_wrap__who {
    font-size: 1.3rem;
    color: var(--tx-gray2);
    white-space: nowrap;
  }
  .tx_wrap {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    font-size: 1.5rem;
  }
  .tx_wrap > p { width: 100%;}
  .tx_wrap__ttl { font-weight: bold; }

  /* accordion_button 89:13191 */
  .accordion_button {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
  }
  .accordion_button > button {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    background: none;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-size: 1.4rem;
    color: var(--tx-link);
    white-space: nowrap;
    cursor: pointer;
  }
  /* icon-accordion 128:12066 */
  .icon-caret-sm {
    position: relative;
    flex-shrink: 0;
    width: 12px;
    height: 6px;
  }
  .icon-caret-sm::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    margin: -4px 0 0 -4px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.25s ease;
  }
  .accordion_button > button[aria-expanded="false"] .icon-caret-sm::before {
    transform: rotate(135deg);
  }
  .more_btn[aria-expanded="false"] .icon-caret-sm::before {
    transform: rotate(135deg);
  }
  .icon-kutikomi { flex-shrink: 0; width: 20px; height: 20px; }
  .accordion_button > button[aria-expanded="false"] .accordion_button__label--close,
  .accordion_button > button[aria-expanded="true"]  .accordion_button__label--open,
  .accordion_button > button[aria-expanded="true"]  .icon-kutikomi { display: none; }

@media (max-width: 767px) {
  .accordion_button > button{
    font-size: 1.3rem;
  }
}

  /* ============================================================
     10_section-about   62:2647   (1440 x 6952)
     ============================================================ */
  .about {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
    background: var(--base-gray2);
  }
  .about__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--inner-w);
  }
  .about__section {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-bottom: 20px;
  }
  .about__lead {
    width: 100%;
  }

  /* ttl-h2 62:3228 / 64:4619 (10章・11章共通) */
  .ttl-h2 {
    width: 100%;
    padding-bottom: 40px;
    font-weight: bold;
    font-size: 3.2rem;
    letter-spacing: 0.64px;
    color: var(--main);
    text-align: center;
  }

  /* ttl-border 50:1556 系 (10章・11章で計10本使用) */
  .ttl-border {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 20px;
    width: 100%;
    padding: 40px 0 25px;
  }
  .ttl-border__ttl {
    position: relative;
    width: 100%;
    font-weight: bold;
    font-size: 2.4rem;
    border-bottom: 3px solid #ccc;
    padding-bottom: 10px;
  }
  .ttl-border__ttl .c-main { color: var(--main); }

  .ttl-border__ttl::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 110px;
    height: 3px;
    background: var(--main);
  }

  /* hukidasi-box01 の上パディング違い (88:8758) */
  .hukidasi-box--pt20 { padding-top: 20px; }

  /* about__section の items 違い（63:4080 は items-start） */
  .about__section--start { align-items: flex-start; }

  /* ---- table-type01 63:4109 ---- */
  .table-type01 { width: 100%; }
  .table-type01 table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
  }
  .table-type01 .c-th { width: 240px; }
  .table-type01 th,
  .table-type01 td {
    padding: 14px 20px 15px;
    border: 1px solid var(--border-gray2);
    text-align: center;
    vertical-align: middle;
  }
  .table-type01 thead th {
    height: 46px;
    padding: 0 20px;
    background: var(--th-band);
    font-weight: bold;
    color: #fff;
  }
  .table-type01 tbody th {
    background: var(--table-type01-th);
    font-weight: bold;
    color: var(--tx-base);
  }
  .table-type01 tbody td {
    background: #fff;
    font-weight: normal;
    color: var(--tx-base);
  }
  .table-type01 .s13 { font-size: 1.3rem; }

  .about__section--nopb { padding-bottom: 0; }

  /* ---- col2 / box-type01  63:4245 ---- */
  .col2 {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    width: 100%;
  }
  .box-type01 {
    flex-shrink: 0;
    align-self: stretch;
    width: 520px;
    border-radius: 10px;
    background: #fff;
  }
  .box-type01__tx { padding: 25px 30px; }
  .box-type01__ttl {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    padding: 10px;
    border-radius: 5px;
    background: var(--base-green);
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--main);
    text-align: center;
  }
  /* check-list（破線区切り） 66:2168 */
  .check-list-dashed {
    padding-top: 10px;
    width: 100%;
  }
  .check-list-dashed > li {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
    padding: 10px 0;
    border-bottom: 1px dotted var(--border-gray2);
  }
  .check-list-dashed li:last-child{
    padding-bottom: 0;
    border-bottom: none;
  }
  .check-list-dashed .icon-check {
    flex-shrink: 0;
    width: 22px;
    padding-top: 3px;
  }
  .check-list-dashed .icon-check img { display: block; width: 22px; height: 17px; }
  .check-list-dashed .icon-attention {
    flex-shrink: 0;
    width: 22px;
    padding-top: 3px;
    display: flex;
    justify-content: center;
  }
  .check-list-dashed .icon-attention img { display: block; width: 20px; height: 18px; }
  .check-list-dashed > li > p {
    flex: 1 0 0;
    min-width: 0;
  }

  /* ---- anchor-btn_wrap 63:4307（10章・11章共通） ---- */
  .anchor-btn_wrap,.anchor-btn_wrap2 {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: var(--inner-w);
    padding: 40px 30px 30px;
    margin-top: 40px;
    border: 1px solid var(--border-gray2);
    border-radius: 10px;
  }
  .anchor-btn_wrap2 {
    padding: 30px;
    margin-top: 30px;
  }
  /* 枠線を抜く見出し */
  .anchor-btn_wrap__legend {
    position: absolute;
    top: -11px;
    left: auto;
    padding: 0 15px;
    background: var(--base-gray2);
    font-weight: bold;
    font-size: 2rem;
    text-align: center;
    white-space: nowrap;
  }
  .anchor-btn_wrap__tx {
    width: 100%;
    font-size: 1.6rem;
    text-align: center;
  }
  /* ＼／装飾つき見出し 133:18199 */
  .slash-ttl {
    position: relative;
    padding: 0 22px;
    font-weight: bold;
    font-size: 1.6rem;
    color: var(--main);
    text-align: center;
    white-space: nowrap;
  }
  .slash-ttl::before,
  .slash-ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    height: 26px;
    border-left: 4px dotted var(--main);
  }
  .slash-ttl::before { left: -4px;  transform: rotate(-30deg); }
  .slash-ttl::after  { right: -4px; transform: rotate(30deg); }

  /* anchor-btn 63:4315 */
  .anchor-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 460px;
    height: 52px;
    padding: 8px 10px;
    border: 1px solid var(--border-gray2);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 3px 0 #d9d9d9;
    font-weight: bold;
    font-size: 1.6rem;
    color: #333!important;
    text-align: center;
  }

  /* ---- feature-list_wrap 63:3835 (10章で3箇所) ---- */
  .feature-list_wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    padding-top: 20px;
  }
  .feature-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    padding: 20px;
    border-radius: 10px;
    background: #fff;
  }
  /* accordion_button*/
  .accordion_button--box {
    display: block;
    width: 100%;
  }
  .accordion_button--box > button {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    text-align: left;
    white-space: normal;
    cursor: pointer;
  }
  .feature-list__ttl {
    flex: 1 0 0;
    min-width: 0;
    padding-right: 20px;
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--tx-base);
  }
  /* icon-accordion 61:1002 */
  .icon-accordion-box {
    position: relative;
    flex-shrink: 0;
    width: 25px;
    height: 27px;
    border: 1px solid var(--border-gray2);
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 2px 0 #d9d9d9;
    box-sizing: border-box;
  }
  .icon-accordion-box::before,
  .icon-accordion-box::after {
    content: "";
    position: absolute;
    top: 11px;
    left: 3px;
    width: 17px;
    height: 3px;
    background: var(--main);
    transition: transform 0.25s ease;
  }
  .icon-accordion-box::after {
    transform: rotate(90deg);
  }
  [aria-expanded="true"] .icon-accordion-box::after {
    transform: rotate(0deg);
  }

  .feature-list__contents {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
    padding-top: 15px;
    border-top: 2px dotted #ccc;
    margin-top: 15px;
  }
  .feature-list__contents > p {
    width: 100%;
  }

  /* ttl-square02 61:963 (10章・11章共通) */
  .ttl-square02 {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 15px 0 10px;
    box-sizing: border-box;
    font-weight: bold;
  }
  .ttl-square02 .sq {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    margin-top: 6px;
    background: var(--main);
  }

  .maru-list--pb15 { padding-bottom: 15px; }

  .table-type01--pt20 { padding-top: 20px; }

  @media (max-width: 767px) {
    .slash-ttl::before,
    .slash-ttl::after {
      bottom: 5px;
      border-left: 2px solid var(--main);
    }
    .anchor-btn_wrap2{
      padding: 15px;
    }
  }

  /* ============================================================
     11_section-faq   64:4617   (1440 x 7064)
     ============================================================ */
  .faq {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
  }
  .faq__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: var(--inner-w);
  }
  .faq__section { width: 100%; }

  /* anchor-btn_wrap の横並び版 (64:5242) */
  .anchor-btn_wrap--row {
    display: flex;
    flex-direction: row;
    gap: 10px;
    width: 100%;
    padding: 0!important;
    border: 0;
    border-radius: 0;
    margin-top: 0;
  }
  .anchor-btn--flex { flex: 1 0 0; min-width: 0; }

  /* ---- faq-list 64:5382 ---- */
  .faq-list_wrap { width: 100%; }
  .faq-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 15px 0 5px;
    border-bottom: 2px dotted var(--border-gray2);
    background: #fff;
  }
  .faq-list:first-child{
    padding-top: 0;
  }
  .faq-list__button { display: block; width: 100%; }
  .faq-list__button > button {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    text-align: left;
    white-space: normal;
    cursor: pointer;
  }
  .faq-list__q,
  .faq-list__a {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 30px;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 2.5rem;
    text-align: center;
  }
  .faq-list__q { background: var(--faq-q-bg); color: var(--main); }
  .faq-list__a { background: #fff; color: var(--tx-red); }
  .faq-list__qtx {
    flex: 1 0 0;
    min-width: 0;
    padding-right: 20px;
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--tx-base);
  }
  .faq-list__contents {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding-bottom: 20px;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }
  .faq-list__contents[hidden] { display: flex; max-height: 0; }
  .faq-list__atx {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 10px;
    color: var(--tx-base);
  }
  .faq-list__atx > p { width: 100%; }
  .faq-list__atx > p.b { font-weight: bold; }


  /* ============================================================
     8_section-select   43:868   (1440 x 8778)
     ============================================================ */
  .select {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 0;
    background: var(--base-gray2);
  }
  .select__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--inner-w);
  }
  .select__section { width: 100%; }

  /* anchor-btn_wrap の縦積み版 (62:1063) */
  .anchor-btn_wrap--select {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 20px;
    border: 1px solid var(--border-gray2);
    border-radius: 10px;
    margin-top: 0;
  }
  .anchor-btn_wrap__note {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    font-size: 1.3rem;
  }

  /* 吹き出し内のステップ表記 */
  .hukidasi__tx {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 1.6rem;
  }
  .hukidasi__tx > p { width: 100%; }

  /* hukidasi のステップ枠 88:8270 / 88:8271 / 88:8286 */
  .hukidasi__steps {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }
  .hukidasi-step {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 100%;
    padding: 10px 20px;
    border-radius: 10px;
    background: var(--base-green);
    box-sizing: border-box;
  }
  .hukidasi-step__ttl {
    width: 100%;
    font-weight: bold;
    font-size: 1.6rem;
  }
  .hukidasi-step__list {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
  }
  .hukidasi-step__list > li {
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .hukidasi-step__list .t { font-size: 1.6rem;white-space: nowrap; }
  /* number 88:8275: 20x20の角丸バッジ */
  .num-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    background: var(--main);
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 1.6rem;
    color: #fff;
  }

  /* ---- more_contents_wrap 64:4500 ---- */
  .more_contents_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
  .more_contents {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }
  .more_contents[hidden],
  .more_contents.is-collapsed {
    display: flex;
    position: relative;
    max-height: 450px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 60px), rgba(0, 0, 0, 1) calc(100% - 60px), transparent 100%);
            mask-image: linear-gradient(to bottom, #000 0, #000 calc(100% - 60px), rgba(0, 0, 0, 1) calc(100% - 60px), transparent 100%);
  }
  .more_contents__lead {
    width: 100%;
  }
  /* section 51:2149 等: 単純なグルーピング用ラッパー */
  .more_contents > .section { width: 100%; }

  /* ttl-number 50:1575 */
  .ttl-number {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 30px 0 15px;
    font-weight: bold;
    font-size: 2.2rem;
    color: var(--tx-base);
  }
  .ttl-number .num {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 5px;
    background: var(--main);
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-size: 2.2rem;
    color: #fff;
  }

  /* col3 / box-type04 62:2192 */
  .col3 {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    padding-top: 20px;
  }
  .box-type04 {
    flex: 1 0 0;
    min-width: 0;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 30px;
    border-radius: 10px;
    background: #fff;
  }
  .box-type04__ttl {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    padding-bottom: 10px;
    font-weight: bold;
    font-size: 1.8rem;
  }
  .box-type04__ttl .n {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 20px;
    background: var(--main);
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-size: 1.8rem;
    color: #fff;
  }
  .box-type04__tx { width: 100%;}

  /* more_button_wrap 64:4494 / more_btn 63:4378 */
  .more_button_wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 30px;
  }
  .more_btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 240px;
    height: 42px;
    padding: 8px 20px;
    border: 0;
    border-radius: 40px;
    background: var(--th-band);
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 1.5rem;
    color: #fff;
    white-space: nowrap;
    cursor: pointer;
  }
  .more_btn .icon-caret-sm { position: absolute; right: 20px; top: 50%; margin-top: -3px; }
  .more_btn[aria-expanded="false"] .more_btn__close,
  .more_btn[aria-expanded="true"]  .more_btn__open { display: none; }

  /* --pc-static: PCではアコーディオンにせず常時展開（中身が .col3 の3カラムで高さが出ないため）。
     SP（〜767px）は縦積みで高さが出るので従来どおり「続きを読む」で開閉する。
     開閉状態は script.js が max-height / overflow をインラインstyleで書くため !important で打ち消す。 */
  @media (min-width: 768px) {
    .more_contents_wrap--pc-static > .more_contents,
    .more_contents_wrap--pc-static > .more_contents.is-collapsed {
      max-height: none !important;
      overflow: visible !important;
      -webkit-mask-image: none;
              mask-image: none;
    }
    /* 「続きを読む」ボタンを消したぶんの下余白を補う */
    .more_contents_wrap--pc-static { padding-bottom: 20px; }
    .more_contents_wrap--pc-static > .more_button_wrap { display: none; }
  }

  /* feature-list の accordion_button に point-ttl_sab バッジが入る版 (62:3472) */
  .feature-list__set {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding-right: 20px;
  }
  .feature-list__set .feature-list__ttl { padding-right: 0; }
  .point-ttl_sab {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    border-radius: 20px;
    background: var(--main);
    font-weight: bold;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }
  .point-ttl_sab .l    { font-size: 1.5rem; }
  .point-ttl_sab .l16  { font-size: 1.6rem; }
  .point-ttl_sab .n    { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-size: 1.7rem; }

  /* tx サブラッパー（gap10・pt15） */
  .feature-list__contents--nopt { padding-top: 0; }
  .feature-list__tx {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    padding-top: 15px;
  }
  .feature-list__tx > p { width: 100%; }
  .feature-list__tx strong,
  .feature-list__contents strong { font-weight: bold; }

  .note-list--pt15 { padding-top: 15px; }
  .table-type01--pb20 { padding-bottom: 20px; }

  /* 表セル内の ○/× ＋ ラベル (62:3633) */
  .table-type01 .av {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    white-space: nowrap;
  }

  /* ---- tx-box01 64:4512（枠線＋白地の凡例ラベル） ---- */
  .tx-box01_wrap { width: 100%; padding-top: 20px; }
  .tx-box01 {
    position: relative;
    width: 100%;
    padding: 20px 20px 15px;
    border: 2px solid var(--border-gray);
    border-radius: 10px;
  }
  .tx-box01__ttl {
    position: absolute;
    top: -13px;
    left: 18px;
    padding: 0 12px;
    background: #fff;   /* 白カード上に乗るため白 */
    font-weight: bold;
    color: var(--main);
    white-space: nowrap;
  }
  .tx-box01__tx { width: 100%; font-size: 1.5rem;}

  /* ---- col5 62:3377（イラスト5枚並び） ---- */
  .col5 {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    width: 100%;
    padding-bottom: 15px;
  }
  .col5 > li {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }
  .col5 img { width: 194px; height: 120px; }
  .col5 > li > p {
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
  }

  /* ---- ttl-square01 51:1926（18px・10pxの四角） ---- */
  .ttl-square01 {
    position: relative;
    width: 100%;
    padding: 20px 0 15px;
    margin-left: 20px;
    font-weight: bold;
    font-size: 1.8rem;
  }
  .ttl-square01 .sq {
    position: absolute;
    width: 10px;
    height: 10px;
    margin-top: 7px;
    margin-right: 10px;
    background: var(--main);
    left: -20px;
  }
  .ttl-square01 .ttl-square01_small{
    font-size: 1.4rem;
    font-weight: normal;
  }
  @media (max-width: 767px) {
    .ttl-square01 {
      margin-left: 18px;
    }
    .ttl-square01 .sq {
      left: -18px;
    }
  }

  /* ---- box-type01 費用表版 63:4410 ---- */
  .box-type01--cost { width: 520px; padding: 0; }
  .cost-list { width: 100%; padding: 25px 30px; }
  .cost-list > li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px dotted var(--border-gray2);
  }
  .cost-list > li:first-child { padding-top: 0; }
  .cost-list > li:last-child  { padding-bottom: 0; border-bottom: 0; }
  .cost-list__l {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: bold;
    white-space: nowrap;
  }
  .cost-list__l img { flex-shrink: 0; width: 70px; height: 70px; }
  .cost-list__p { color: var(--tx-red); text-align: center; white-space: nowrap; }
  .cost-list__p .n { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-weight: bold; font-size: 2.2rem; }
  .cost-list__p .u { font-weight: bold; font-size: 1.5rem; }

  .note-list--py20 { padding: 20px 0; }
  .more_contents_wrap--pb20 { padding-bottom: 20px; }

  /* ---- matome-box 61:970 ---- */
  .matome-box_wrap,
  .matome-box_wrap2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 50px 40px 0;
    box-sizing: border-box;
  }
  .matome-box {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 200px;
    width: 100%;
    padding: 30px 180px 30px 40px;
    border-top: 3px solid var(--matome-bd);
    border-bottom: 3px solid var(--matome-bd);
    background: #fff;
    box-sizing: border-box;
  }
  .matome-box__ttl {
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
    padding: 12px 20px;
    border: 2px solid var(--matome-bd);
    border-radius: 10px;
    background: var(--matome-bd);
    font-weight: bold;
    font-size: 1.8rem;
    color: var(--main);
    white-space: nowrap;
  }
  .matome-box__list {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 100%;
    padding-bottom: 20px;
  }
  .matome-box__list > li {
    display: flex;
    align-items: flex-start;
    width: 100%;
    padding: 10px 0;
    border-bottom: 1px dotted var(--border-gray2);
  }
  .matome-box__list > li > p { flex: 1 0 0; min-width: 0;}
  .matome-box__tx { width: 100%;}
  .matome-box__img { position: absolute; right: 0; bottom: -3px; width: 170px; height: 240px; }

  .matome-box__list .maru:before{
    color: var(--main);
  }

  /* ---- box-type02（3チェック診断フロー） 51:2097 ---- */
  .box-type02-row {
    display: flex;
    align-items: stretch;
    gap: 40px;
    width: 100%;
  }
  .box-type02 {
    position: relative;
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-radius: 10px;
    background: #fff;
  }
  .box-type02__ttl {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: 15px 20px 10px;
    border-radius: 10px 10px 0 0;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    color: #fff;
  }
  .box-type02--normal .box-type02__ttl { background: var(--type-normal); }
  .box-type02--kanwa  .box-type02__ttl { background: var(--type-kanwa); }
  .box-type02--none   .box-type02__ttl { background: var(--type-none); }
  .box-type02__ttl-l1 { padding-bottom: 0; font-weight: bold; font-size: 1.5rem; }
  .box-type02__ttl-l1 .num { font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; }
  .box-type02__ttl-l2 { font-weight: bold; font-size: 1.8rem; }
  .box-type02__kanyu {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding-top: 10px;
    margin-top: 10px;
    border-top: 1px dotted #fff;
    font-weight: bold;
    font-size: 1.5rem;
  }
  .box-type02__stars { display: flex; gap: 5px; padding-bottom: 2px; }
  .box-type02__stars img { display: block; width: 17px; height: 16px; }
  .box-type02__tx {
    width: 100%;
    padding: 15px 30px;
    color: var(--tx-base);
  }
  .box-type02__arrow {
    position: absolute;
    top: 50%;
    right: -26px;
    z-index: 1;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    transform: translateY(-50%);
  }
  .box-type02__arrow::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 26px;
    height: 26px;
    border-top: 6px solid #ccc;
    border-right: 6px solid #ccc;
    transform: rotate(45deg);
  }

  /* ---- family-badge（契約者・被保険者・受取人 早見表の子/父/母アイコン） 62:1389 ---- */
  .family-badge {
    position: relative;
    display: inline-block;
    width: 138px;
    height: 50px;
    vertical-align: middle;
  }
  .family-badge img { display: block; width: 50px; height: 50px; margin: 0 auto; }
  .family-badge__label {
    position: absolute;
    left: 79px;
    top: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding-top: 2px;
    border-radius: 20px;
    font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
    font-weight: bold;
    font-size: 1.6rem;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
  }
  .family-badge__label--child  { background: var(--main); }
  .family-badge__label--father { background: var(--family-father); }
  .family-badge__label--mother { background: var(--family-mother); }

  /* ---- box-type04--app（申込方法 ネット/郵送） 66:2168 ---- */
  .app-box__ttl_wrap { display: flex; align-items: flex-start; width: 100%; }
  .app-box__ttl {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
  }
  .app-box__ttl-main { font-weight: bold; font-size: 2rem; color: var(--main); }
  .app-box__ttl-main__mail{color: #bc850f;}
  .app-box__ttl-sub__mail{
    color: #bc850f!important;
    border-color: #bc850f!important;
  }
  .app-box__ttl-sub {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 15px;
    border: 1px solid var(--main);
    border-radius: 20px;
    background: #fff;
    font-weight: bold;
    font-size: 1.5rem;
    color: var(--main);
    white-space: nowrap;
  }
  .app-box__img { flex-shrink: 0; width: 100px; height: 70px; }

  /* table-type01 の列幅バリエーション */
  .table-type01 .c-family { width: 178px; }
  .cell-check { display: inline-flex; align-items: center; gap: 5px; }
  .cell-check img { display: block; width: 22px; height: 17px; }
  .cell-check span{
    color: var(--type-check);
    font-weight: bold;
  }

  /* maru-list--desc（見出し＋説明文の2段構成） 62:1266 */
  .maru-list--desc > li {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    padding-bottom: 20px;
    padding: 20px 0;
    border-bottom: 2px dotted #ccc;
  }
  .maru-list--desc > li:first-child{
    padding-top: 0;
  }
  /* ①見出し行: .maru はflexコンテナの中でないと width/height が無視されて文字と被るため専用ラッパーで包む */
  .maru-list--desc__head {
    display: flex;
    align-items: flex-start;
    width: 100%;
    font-weight: bold;
  }
  .maru-list--desc__head > p { flex: 1 0 0; min-width: 0; font-size: 1.6rem;}
  .maru-list--desc__tx { width: 100%; padding-left: 18px;}

  /* maru-list--check（チェックポイント形式） 62:1980 */
  .maru-list--check{
    margin-bottom: 30px;
  }
  .maru-list--check > li {
    flex-direction: column;
    gap: 5px;
    padding: 20px 0;
    border-bottom:
    2px dotted #ccc;
  }
  .maru-list--check__head { display: flex; align-items: flex-start; width: 100%; }
  .maru-list--check__head p { font-weight: bold; font-size: 1.6rem;}
  .maru-list--check__head .hl { color: var(--main); }
  .maru-list--check__tx { width: 100%; padding-left: 18px;}

  /* box-type01（更新タイプ比較） 66:2391 見出し中央揺 */
  .box-type01__ttl-center {
    width: 100%;
    padding-bottom: 0;
    font-weight: bold;
    font-size: 2rem;
    color: var(--main);
    text-align: center;
  }
  .box-type01__graph { width: 100%; padding-top: 20px; }
  .box-type01__graph img { display: block; width: 460px; height: 226px; }
  .box-type01--updatetype { padding: 25px 30px; }

  @media (max-width: 767px) {
    .maru-list--check{
      margin-bottom: 20px;
    }
    .maru-list--check > li {
      padding: 10px 0;
    }
    .box-type04:not(:last-child){
      margin-bottom: 10px;
    }
    .maru-list--desc > li{
      padding: 10px 0;
    }
  }

/* ============================================================
   モーダル（保険料早見表）  node-id 29:576 / modal-price 101:6266
   Magnific Popup（inline）で表示する。
   ============================================================ */

.modal-frame {
  position: relative;
  max-height: calc(100vh - 100px);
  overflow: hidden;
}
.modal-frame__scroll {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.modal-frame::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
  opacity: 0;
  pointer-events: none;   /* 下に重なるボタン等の操作を邪魔しない */
}
.modal-frame.is-scrollable::after { opacity: 1; }


/* モーダル本体 960px / rounded 15px */
.mfp-container{
  padding: 0 10px;
}
.modal-price {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 960px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 15px;
  background: #fff;
}
.modal-price__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 30px 40px;
}

/* ttl-bgline 101:6268 */
.modal-price__head { width: 100%; padding-bottom: 20px; }
.modal-price__head-inner {
  width: 100%;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--main);
}
.modal-price__company {
  font-size: 1.6rem;
  color: var(--tx-base);
  white-space: nowrap;
}
.modal-price__name-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-top: 2px;
}
.modal-price__name {
  font-weight: bold;
  font-size: 2.2rem;
  color: var(--tx-base);
  white-space: nowrap;
}
/* type 101:6274 */
.type-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 15px;
  border-radius: 20px;
  font-weight: bold;
  font-size: 1.4rem;
  color: var(--base-gray2);
  white-space: nowrap;
}
.type-badge--kanwa  { background: var(--type-kanwa); }
.type-badge--normal { background: var(--type-normal); }
.type-badge--none   { background: var(--type-none); }

/* txt 101:6276 */
.modal-price__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

/* detail-table 101:6278 : 年齢176px + 4列×176px = 880px */
.price-table-detail {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
.price-table-detail__col { width: 176px; }
.price-table-detail th,
.price-table-detail td {
  padding: 8px 15px;
  border: 1px solid var(--border-gray2);
  color: var(--tx-base);
  text-align: center;
  vertical-align: middle;
}
/* 年齢列（左端）: 見出しは2行分をまとめる */
.price-table-detail__age,
.price-table-detail tbody th {
  font-weight: bold;
  background: var(--base-gray2);
}
.price-table-detail__age { height: 80px; }
/* 男性=青系 / 女性=赤系 */
.price-table-detail__gender { font-weight: bold; }
.price-table-detail__gender--male   { background: var(--male-bg);   color: var(--male-tx); }
.price-table-detail__gender--female { background: var(--female-bg); color: var(--female-tx); }
.price-table-detail thead .is-male   { background: var(--male-bg);   font-weight: normal; }
.price-table-detail thead .is-female { background: var(--female-bg); font-weight: normal; }
.price-table-detail tbody td { background: #fff; }

/* cv-btn_wrap 101:8265 / cv-btn 101:8266 (560x70) */
.modal-price__cv-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding-top: 20px;
}
.modal-price__cv-btn {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 560px;
  max-width: 100%;
  padding: 8px 10px 8px 0;
  border-radius: 10px;
  background: linear-gradient(to bottom, #fa0, #ff7f00);
  box-shadow: 0 3px 0 #ff6a00;
  color: #fff!important;
  text-align: center;
}
.modal-price__cv-tx > span { display: block; }
.modal-price__cv-tx .btn-tx-main { font-weight: bold; font-size: 2.2rem; }
.modal-price__cv-tx .btn-tx-sub { font-size: 1.4rem; }
.modal-price__cv-blank {
  position: absolute;
  top: 50%;
  right: 20px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
}

/* ---- Magnific Popup の外観調整（close 101:6367 は約20px角・右上20px） ---- */
.mfp-wrap.mfp-modal-price .mfp-content {
  max-width: 960px;
  padding: 0;
  border-radius: 0;
}
.mfp-modal-price .mfp-close {
  top: 20px;
  right: 20px;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: none;
  font-family: "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 0;
  color: transparent;
  opacity: 1;
  cursor: pointer;
}
.mfp-modal-price .mfp-close::before,
.mfp-modal-price .mfp-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--tx-base);
}
.mfp-modal-price .mfp-close::before { transform: rotate(45deg); }
.mfp-modal-price .mfp-close::after  { transform: rotate(-45deg); }
.mfp-modal-price .mfp-close:hover::before,
.mfp-modal-price .mfp-close:hover::after { background: var(--main); }


/* ============================================================
   モーダル（告知項目の詳細）  node-id 2120:10077 / modal-kokuchi
   見出し部分は modal-price と共通のスタイルを流用する。
   ============================================================ */
.modal-kokuchi {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 960px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 15px;
  background: #fff;
}
.modal-kokuchi__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 30px 40px;
}
.modal-kokuchi__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.modal-kokuchi__lead {
  width: 100%;
  color: var(--tx-base);
}
.modal-kokuchi__sub {
  display: block;
  padding-top: 5px;
  font-size: 1.4rem;
  color: var(--tx-gray2);
}

/* ttl-bg-green : 緑帯の見出し */
.ttl-bg-green {
  width: 100%;
  padding: 6px 10px;
  background: var(--base-green);
  margin: 20px 0;
  border-radius: 5px;
}

/* num-list : ①②③ のリスト */
.num-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}
.num-list > li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px 0;
}
.num-list__num {
  flex-shrink: 0;
  width: 16px;
}
.num-list__tx { flex: 1 0 0; min-width: 0; }
.maru-list__tx { flex: 1 0 0; min-width: 0; }
.modal-kokuchi .maru-list > li,
.modal-kokuchi .num-list > li {
  padding: 10px 0;
  border-bottom: 1px dashed var(--border-gray2);
}
.modal-kokuchi .maru::before {
  top: 7px;
  left: 0;
  width: 8px;
  height: 8px;
}

/* kokuchi-table : 分類/病名・質問番号/質問文 の2列テーブル */
.kokuchi-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 20px 0 10px;
  font-size: 1.4rem;
}
.kokuchi-table th,
.kokuchi-table td {
  padding: 8px 15px;
  border: 1px solid var(--border-gray2);
  color: var(--tx-base);
  text-align: left;
  vertical-align: middle;
}
.kokuchi-table th {
  text-align: center;
  font-weight: normal;
  background: var(--base-gray2);
}
.kokuchi-table td { background: #fff; }
.kokuchi-table .note-list { padding-top: 4px; }

/* tx-box : 枠付きの補足ブロック */
.tx-box {
  width: 100%;
  padding: 15px 20px;
  border: 1px solid var(--border-gray2);
  border-radius: 10px;
  margin: 10px 0;
}
.tx-box__ttl {
  font-size: 1.4rem;
  color: var(--tx-base);
}
.tx-box__tx {
  padding-top: 10px;
  font-size: 1.4rem;
  color: var(--tx-base);
}


/* ============================================================
   SP レイアウト（767px以下）
   ============================================================ */
@media (max-width: 767px) {

  :root {
    --inner-w: 100%;
  }
  body {
    min-width: 320px;
    font-size: 1.4rem;
  }
  .js-anchor { top: -56px; }

  /* ============================================================
     2_hero  Figma SP実測（104:13140 / 375x340）
     ============================================================ */
  .hero {
    padding: 0 0 72px;
    overflow: hidden;
    min-width: 375px;
    height: auto;
  }
  /* pan 104:13326 : 高さ24px（pt4px + 行16px） */
  .hero__breadcrumb {
    width: 100%;
    padding: 4px 10px;
    font-size: 1.1rem;
    line-height: 16px;
  }
  /* mv_inner 104:13142 */
  .hero__inner {
    flex-wrap: nowrap;
    width: 100%;
    padding: 0;
  }
  /* ttl_wrap 104:13143 */
  .hero__ttl-wrap {
    flex: 1 0 0;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    padding: 10px 20px 0;
  }
  /* ttl 104:13144 */
  .hero__ttl {
    width: 100%;
    padding: 20px 0 40px;
  }
  /* ttl_inner 104:13145 */
  .hero__ttl-inner { padding: 0; gap: 0; }
  /* sub_ttl 104:13147 */
  .hero__sub-ttl {
    height: auto;
    padding: 0 20px;
    font-size: 2rem;
    line-height: 38px;
  }
  /* 104:13148 */
  .hero__main-ttl { height: auto; line-height: normal; }
  .hero__main-ttl-l1 { font-size: 3.6rem; line-height: 1.3; }
  .hero__main-ttl-l2 { font-size: 2.8rem; line-height: 1.4; }
  .hero__main-ttl-l2 .num { font-size: 3rem; }
  .hero__main-ttl-l2 .s38 { font-size: 2.8rem; }
  .hero__main-ttl-l2 .s28 { font-size: 2.2rem; }
  .hero__img {
    position: absolute;
    top: 211px;
    width: 160px;
    height: 111px;
    margin: 0;
  }
  .hero__img--01 { left: 20px; }
  .hero__img--02 { right: 20px; }


  /* ============================================================
     3_guide
     ============================================================ */
  .guide { padding: 10px 10px 20px; }
  .guide__time-area { width: 100%; }
  .guide__tx {
    width: 100%;
    padding-top: 15px;
    gap: 10px;
    text-align: left;
  }
  .guide__nav-wrap {
    width: 100%;
    padding-top: 20px;
    gap: 8px;
  }
  .guide__nav-ttl {
    width: auto;
    padding: 0 16px;
    font-size: 1.4rem;
    white-space: nowrap;
  }
  .guide__nav-ttl::before { left: 0; }
  .guide__nav-ttl::after  { right: 0; }
  .guide__nav-ttl::before,
  .guide__nav-ttl::after {
    border-left: 2px solid var(--main);
  }

  .guide__nav-item__full  { display: none; }
  .guide__nav-item__short { display: inline; }

  .guide__nav { flex-direction: row; padding: 12px 0; }
  .guide__nav-item {
    width: auto;
    padding: 0 9px 0 8px;
    border-right: 1px solid var(--border-gray2);
    border-bottom: 0;
  }
  .guide__nav-item:last-child { padding-right: 8px; border-right: 0; }
  .guide__nav-item > a {
    flex-direction: column;
    height: auto;
    padding: 0;
    gap: 0;
    font-size: 1.3rem;
    white-space: nowrap;
  }
  .ic-arrow,ic-arrow2 { width: 17px; height: 17px; }
  .nav-fixed { min-width: 0; }
  .pagetop-btn {
    left: auto;
    right: 10px;
    bottom: 15px;
    width: 40px;
    height: 40px;
  }
  .guide__nav--fixed {
    width: 100%;
    height: 56px;
    flex-direction: row;
    flex-wrap: nowrap;
  }
  .guide__nav--fixed .guide__nav-item {
    flex: 1 0 0;
    width: auto;
    border-bottom: 0;
  }
  .guide__nav--fixed .guide__nav-item > a { font-size: 1.2rem; }


  /* ============================================================
     4_section-shindan
     ============================================================ */
  .shindan {
    padding: 20px 10px;
  }
  .shindan__inner { width: 100%; }
  .shindan__body { width: 100%; gap: 30px; }
  .shindan-card { padding: 30px 15px 15px; }
  .shindan-card__badge {
    top: -18px;
    width: 140px;
    height: 36px;
    font-size: 1.4rem;
  }
  .ttl-dotline {
    width: 100%;
    gap: 10px;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
  .ttl-dotline__ttl { font-size: 1.8rem; }
  .feature-block {
    margin-top: 10px;
    flex-direction: column;
    gap: 10px;
  }
  .feature-block__li { flex: none; width: 100%; padding-top: 0; }
  .feature-block__head img { width: 90px; height: 75px; }
  .feature-block__ttl { font-size: 1.6rem; }

  .hukidasi-box { gap: 10px; }
  .hukidasi {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
  }
  .hukidasi--q .hukidasi__img { order: -1; }
  .hukidasi__waku {
    flex: 1 0 0;
    min-width: 0;
    width: auto;
    padding: 15px;
  }
  .hukidasi__img {
    position: static;
    flex-shrink: 0;
    width: 70px;
    height: 84px;
  }

  .check-lead > p { width: 100%; }

  .checkbox-wrap { width: 100%; padding-top: 10px; }
  .checkbox__label { padding: 10px 15px; gap: 10px; }
  .checkbox__icon { width: 26px; height: 26px; }
  .checkbox__icon img { width: 18px; height: 14px; }
  .checkbox__note { font-size: 1.2rem; }

  .note-list { font-size: 1.2rem; }
  .note-list--w830 { width: 100%; }

  .result-block-wrap { width: 100%; padding-top: 40px; }
  .result-block { width: 100%; padding: 20px 15px; }
  .result-block::before {
    left: 50%;
    margin-left: -30px;
    top: -35px;
  }
  .result-block__ttl { font-size: 1.8rem;}

  .btn01 { width: 100%; min-width: 0; padding: 10px 20px; }
  .btn01__tx { width: auto; font-size: 1.6rem; line-height: 1.4;}


  /* ============================================================
     5_section-ranking
     ============================================================ */
  .ranking { padding: 20px 10px; }
  .ranking__inner { width: 100%; }
  .sec-head { padding-bottom: 20px; }
  .sec-head__ttl {
    padding-bottom: 15px;
    font-size: 2.6rem;
    letter-spacing: 0.3px;
    line-height: 1.4;
  }
  .sec-head__ttl span{
    font-size: 2rem;
  }

  .tab-wrap { width: 100%; padding-bottom: 20px; }
  .tab-wrap::before { width: 100%; }
  .tab { gap: 10px; padding: 0 10px; width: 100%;}
  .tab__li {
    width: auto;
    flex: 1 0 0;
    min-width: 0;
    height: 58px;
    padding: 15px 10px 10px;
    font-size: 1.6rem;
  }
  .tab__li.is-current {
    height: 60px;
    border: 2px solid var(--type-normal);
    border-bottom: 0;
    box-shadow: none;
    background: #fff;
  }
  .tab__li--kanwa.is-current { border-color: var(--type-kanwa); }

  .ttl-ranking {
    font-size: 1.6rem;
    padding-bottom: 20px;
  }
  .ttl-ranking > p{
    font-size: 2rem;
  }

  .rank-box_wrap { gap: 15px; padding-bottom: 15px; }
  .rank-box {
    padding: 15px;
    gap: 15px;
  }

  .product-header_wrap {
    position: relative;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding-left: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .rank-icon-lg {
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
  }
  .rank-box__logo { width: 120px; height: 68px; }
  .rank-box__logo img { width: 104px; height: 61px; }
  .rank-box__logo-img--fill { width: 120px !important; height: 68px !important; }
  .product-header_tx { align-items: center; text-align: center; }
  .product-header_tx__company {
    font-size: 1.3rem;
    margin-bottom: 4px;
  }
  .product-header_tx__name { font-size: 1.5rem; }
  .tag_wrap { flex-wrap: wrap; justify-content: center; }
  .tag-senior,
  .tag-direct {
    font-size: 1.2rem;
    padding: 2px 10px;
  }

  .rank-table { flex-direction: column; gap: 15px; }
  .price_area {
    width: 100%;
    align-items: center;
    gap: 13px;
  }
  .price-table__td { height: auto; padding: 10px; }
  .price-table__price .n { font-size: 2.2rem; }
  .price-table__cond { font-size: 1.3rem; }

  .detail_area { width: 100%; }
  .detail-table th { width: 90px; }
  .detail-table th, .detail-table td { padding: 6px 8px; font-size: 1.3rem; }
  .disclosure-box { flex-wrap: wrap; padding: 8px 10px; }

  .rank-box_ttl {
    display: block;
    font-size: 1.5rem;
    white-space: normal;
  }
  .rank-box_ttl .rank-box_ttl_small { display: inline; }
  .rank-box_ttl .bd { margin-top: 2px; }

  .hito { width: 56px; height: 56px; }
  .hito img { width: 56px; height: 56px; }
  .kutikomi-list > li {
    gap: 10px;
    padding: 15px 0;
  }
  .tx_wrap { font-size: 1.4rem; }

  @supports (display: contents) {
    .kutikomi-list > li {
      display: grid;
      grid-template-columns: 56px 1fr;
      gap: 0 10px;
    }
    .kutikomi-list > li > .hito_wrap,
    .kutikomi-list > li > .tx_wrap { display: contents; }
    .kutikomi-list .hito { grid-column: 1; grid-row: 1 / 3; align-self: center; }
    .kutikomi-list .hito_wrap__who { grid-column: 2; grid-row: 1; align-self: end; }
    .kutikomi-list .tx_wrap__ttl {
      grid-column: 2;
      grid-row: 2;
      align-self: start;
      margin-top: 3px;
    }
    .kutikomi-list .tx_wrap > p:not(.tx_wrap__ttl) {
      grid-column: 1 / -1;
      margin-top: 8px;
    }
    .kutikomi-list .tx_wrap > p.tx_wrap__ttl + p { margin-top: 10px; }
    .kutikomi-list > li.is-nottl .hito { grid-row: 1; }
    .kutikomi-list > li.is-nottl .hito_wrap__who { align-self: center; }
    .kutikomi-list > li.is-nottl .tx_wrap > p { margin-top: 10px; }
  }

  .cv-btn_wrap { padding-bottom: 0; }
  .cv-btn-lg { width: 100%; padding: 8px 15px; }
  .cv-btn-lg__tx .btn-tx-main { font-size: 1.6rem; }
  .cv-btn-lg__tx .btn-tx-sub { font-size: 1.1rem; }
  .cv-btn-lg__blank { right: 10px; }

  .caution-box { font-size: 1.1rem; padding: 10px; }


  /* ============================================================
     6_section-point
     ============================================================ */
  .point { padding: 30px 10px; }
  .point__inner { width: 100%; }
  .point-block { flex-direction: column; gap: 10px; padding-bottom: 20px; }
  .point-block__li {
    flex: none;
    width: 100%;
    align-self: auto;
    padding: 20px 15px;
  }
  .point-ttl { gap: 10px; }
  .point-ttl__sab .l { font-size: 1.4rem; }
  .point-ttl__sab .n { font-size: 1.6rem; }
  .point-ttl__ttl { font-size: 1.8rem; }
  .point-block__img,
  .point-block__img--w270 { width: 200px; height: 121px; max-width: none; }


  /* ============================================================
     7_section-sim
     ============================================================ */
  .sim { padding: 30px 10px; }
  .sim__inner { width: 100%; }

  .cond-block {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 15px;
    padding: 15px 15px 20px;
    margin-bottom: 10px;
  }
  .cond-controls {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
  }
  .cond-controls > .selectBox_wrap:first-child { flex: 1 0 100%; }
  .selectBox--w230 { width: 100%; }
  .selectBox--w100 { width: 100px; }
  .radioBtn_wrap { flex: 1 0 0; min-width: 0; }
  .radioBtn_group { width: 100%; }
  .radioBtn { flex: 1 0 0; min-width: 0; width: auto; }
  .cond-btn { width: 285px; max-width: 100%; margin: 0 auto; }

  .table-sim{
    padding-top: 10px;
  }
  .js-sim-table { scroll-margin-top: 56px; }
  .table-sim,.table-feature {
    width: calc(100% + 20px);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    margin-inline: -10px;
  }
  .table-sim table { width: auto; }
  .table-sim th, .table-sim td { padding: 8px; font-size: 1.3rem; }
  .table-sim th {
    width: 100px;
    min-width: 100px;
    max-width: 100px;
  }

  .table-feature .c-gender {
    width: 30px;
    min-width: 30px;
    max-width: 30px;
  }
  .table-feature .c-age    {
    width: 70px;
    min-width: 70px;
    max-width: 70px;
  }
  .tr-hl{
    height: 40px;
  }


  /* ------------------------------------------------------------
     横スクロール時に左の見出し列を固定する（table-sim / table-feature 共通）
     ------------------------------------------------------------ */
  .table-sim th,
  .table-feature .th-label,
  .table-feature .th-gender,
  .table-feature .th-age {
    position: sticky;
    left: 0;
    z-index: 1;   /* スクロールしてくる td より前面に置く */
  }
  .table-feature .th-age { left: 30px; }

  .table-feature .th-band__tx {
    position: sticky;
    left: 10px;
    display: inline-block;
  }

  .table-sim th::before {
    content: "";
    position: absolute;
    top: -1px;
    bottom: -1px;
    left: 100%;
    width: 1px;
    background: var(--border-gray2);
    pointer-events: none;
  }

 .table-sim th::after,
  .table-feature .th-label::after,
  .table-feature .th-age::after {
    content: "";
    position: absolute;
    top: -1px;
    bottom: -1px;
    left: calc(100% + 1px);
    width: 8px;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.075), rgba(0, 0, 0, 0));
    pointer-events: none;
  }

  /* ============================================================
     8_section-select
     ============================================================ */
  .select { padding: 30px 10px; }
  .select__inner { width: 100%; }

  .anchor-btn_wrap,
  .anchor-btn_wrap--select { width: 100%; padding: 15px; gap: 10px; }
  .anchor-btn_wrap:has(> .anchor-btn_wrap__legend) { padding-top: 30px; }
  .anchor-btn_wrap__note { font-size: 1.1rem; }
  .anchor-btn_wrap__tx { font-size: 1.4rem; }
  .anchor-btn_wrap__legend {
    font-size: 1.6rem;
    padding: 0;
    top: -26px;
  }
  .slash-ttl{ padding: 0 15px; font-size: 1.3rem; white-space: normal; }
  .anchor-btn {
    width: 100%;
    min-width: 0;
    height: auto;
    padding: 10px 15px;
    font-size: 1.3rem;
    white-space: normal;
  }

  .hukidasi__tx { font-size: 1.3rem; gap: 8px; }
  .hukidasi-step { padding: 10px 15px; }
  .hukidasi-step__ttl { font-size: 1.3rem; }
  .hukidasi-step__list { flex-direction: column; gap: 6px; }
  .hukidasi-step__list .t { font-size: 1.2rem; white-space: normal; }
  .num-badge { width: 18px; height: 18px; font-size: 1.2rem; }

  .ttl-border { gap: 10px; padding: 20px 0 15px; }
  .ttl-border__ttl { font-size: 2rem; }
  .ttl-border::after { width: 90px; }
  .u-sp-break { display: block; }
  .ttl-number { gap: 10px; padding: 15px 0 10px; font-size: 1.8rem; }
  .ttl-number .num { width: 24px; height: 24px; font-size: 2rem; }

  .ttl-square01 { gap: 10px; padding: 15px 0 10px; font-size: 1.6rem; white-space: normal; }
  .ttl-square01 .sq { width: 8px; height: 8px; margin-top: 7px; }

  .col2 { flex-direction: column; align-items: stretch; gap: 0; }
  .box-type01 {
    width: 100%;
    align-self: auto;
  }
  .box-type01:not(:last-child){
    margin-bottom: 10px;
  }
  .box-type01--cost { width: 100%; padding: 0; }
  .box-type01__tx { padding: 15px; }
  .box-type01__ttl,
  .box-type01__ttl-center { height: auto; font-size: 1.5rem; }
  .box-type01__graph { padding-top: 15px; }
  .box-type01__graph img { width: 100%; height: auto; }
  .box-type01--updatetype { padding: 15px; }

  .cost-list { padding: 16px 15px; }
  .cost-list > li { padding: 15px 0; }
  .cost-list__l img { width: 60px; height: 60px; }
  .cost-list__p .n { font-size: 2rem; }
  .cost-list__p .u { font-size: 1.4rem; }

  .table-type01 { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-type01 table { width: 100%; }
  .table-type01 .c-th { width: 80px; }
  .table-type01 .c-family { width: 70px; }
  .table-type01 th,
  .table-type01 td {
    padding: 7px 10px 8px;
  }
  .table-type01 thead th { height: auto; padding: 7px 10px 8px; }
  .table-type01 .s13 { font-size: 1.2rem; }
  .table-type01 .av {
    display: block;
    white-space: normal;
  }
  .table-type01 .av img { display: block; margin: 0 auto 5px; width: auto;}

  .maru-list--desc__tx { padding-left: 16px; }


  .family-badge { width: 50px; height: 50px; }
  .family-badge img { width: 50px; height: 50px; }
  .family-badge__label {
    left: auto;
    top: auto;
    right: -3px;
    bottom: -3px;
    width: 20px;
    height: 20px;
    font-size: 1.2rem;
  }

  .matome-box_wrap { padding: 40px 0 15px; }
  .matome-box_wrap2 { padding: 50px 0 15px; }
  .matome-box { padding: 40px 15px 0; min-height: 0; }
  .matome-box__ttl {
    top: 0;
    transform: translate(-50%, -50%);
    width: max-content;
    max-width: calc(100% - 40px);
    padding: 8px 15px;
    font-size: 1.6rem;
    white-space: normal;
    text-align: center;
  }
  .matome-box__list{
    padding-bottom: 15px;
  }
  .matome-box__img {
    position: static;
    display: block;
    width: 100px;
    height: 141px;
    margin: 0 auto;
  }

  .box-type02-row { flex-direction: column; gap: 40px;}
  .box-type02 { flex: none; width: 100%; }
  .box-type02__arrow {
    top: auto;
    right: auto;
    bottom: -26px;
    left: 50%;
    transform: translateX(-50%);
  }
  .box-type02__arrow::after { transform: rotate(135deg); }
  .box-type02__ttl { padding: 12px 15px 8px; }
  .box-type02__ttl-l1 { font-size: 1.3rem; }
  .box-type02__ttl-l2 { font-size: 1.6rem; }
  .box-type02__kanyu { font-size: 1.3rem; }
  .box-type02__tx { padding: 12px 15px; }

  .col3 { flex-direction: column; gap: 0; padding-top: 15px; }
  .box-type04 { flex: none; width: 100%; align-self: auto; padding: 15px; }
  .box-type04__ttl { font-size: 1.6rem; }

  .app-box__ttl-main { font-size: 1.6rem; }
  .app-box__ttl-sub { font-size: 1.3rem; }
  .app-box__img { width: 100px; height: 70px; }

  .more_button_wrap {
    padding-top: 0;
    margin-bottom: 10px;
  }
  .more_btn {
    width: 200px;
    padding: 8px 15px;
    font-size: 1.3rem;
    height: 38px;
  }

  /* ============================================================
     9_section-feature
     ============================================================ */
  .feature { padding: 30px 10px; }
  .feature__inner { width: 100%; }

  .accordion-btn {
    width: 100%;
    height: auto;
    padding: 10px 15px;
  }
  .accordion-btn__tx { font-size: 1.4rem; }

  .maru-list_wrap { padding: 20px 0 0; }
  .check-list { padding: 20px 15px; }
  .check-list__tx { font-size: 1.3rem; }

  .note-list--pt40 { padding-top: 20px; }

  .table-feature {
    overflow-x: auto;
    padding-bottom: 0;
    margin-bottom: 15px;
  }
  .table-feature table { width: auto; }
  .table-feature th, .table-feature td { padding: 6px 8px; font-size: 1.2rem; }
  .tx-link-blank { width: auto; margin: 0; padding-left: 0; }
  .svc-list, .svc-sublist { font-size: 1.1rem; }

  .table-feature td,.table-sim td{
    width: 130px;
    min-width: 130px;
    max-width: 130px;
  }


  /* ============================================================
     10_section-about
     ============================================================ */
  .about { padding: 30px 10px; }
  .about__inner { width: 100%; }
  .about__section { padding-bottom: 15px; }

  .ttl-h2 { padding-bottom: 20px; font-size: 2rem; letter-spacing: 0.3px; }

  .hukidasi-box02 { padding-top: 15px; }
  .hukidasi--a2 { gap: 10px; align-items: center; }
  .hukidasi--a2 .hukidasi__waku { flex: 1 0 0; min-width: 0; padding: 15px; }
  .hukidasi__img02 { width: 70px; height: 84px; }

  .feature-list_wrap { gap: 15px; padding-top: 15px; }
  .feature-list { padding: 15px; }
  .feature-list__ttl { font-size: 1.5rem; }
  .feature-list__set {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    padding-right: 0;
  }
  .feature-list__set .feature-list__ttl { width: 100%; font-size: 1.6rem; }
  .feature-list__set + .icon-accordion-box { align-self: center; }
  .feature-list__contents {
    padding-top: 12px;
    margin-top: 10px;
  }
  .feature-list__tx { gap: 8px; padding-top: 0; }

  .point-ttl_sab .l,
  .point-ttl_sab .l16 { font-size: 1.4rem; }
  .point-ttl_sab .n { font-size: 1.4rem; }

  .ttl-square02 { height: auto; padding: 12px 0 8px; }

  .tx-box01_wrap { padding-top: 15px; }
  .tx-box01 { padding: 15px; }
  .tx-box01__tx { font-size: 1.3rem; }

  .col5 {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 15px;
    padding-bottom: 10px;
  }
  .col5 > li {
    flex: none;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    width: 100%;
  }
  .col5 img {
    flex-shrink: 0;
    width: 130px;
    height: 81px;
    max-width: none;
  }
  .col5 > li > p {
    flex: 1 0 0;
    min-width: 0;
    font-size: 1.4rem;
    text-align: left;
    white-space: normal;
  }
  .col5 > li > p br { display: none; }

  /* ============================================================
     11_section-faq
     ============================================================ */
  .faq { padding: 30px 10px; }
  .faq__inner { width: 100%; align-items: center; }

  .anchor-btn_wrap--row { flex-direction: column; gap: 10px; }

  .faq-list { padding: 12px 0; gap: 0; }
  .faq-list__a{
    padding-top: 5px;
  }
  .faq-list__q, .faq-list__a { width: 32px; height: 32px; font-size: 1.8rem; }
  .faq-list__qtx { padding-right: 10px; font-size: 1.4rem;}
  .faq-list__contents {
    gap: 8px;
    padding-bottom: 8px;
  }
  .faq-list__atx { gap: 8px; padding-top: 8px;}


  /* ============================================================
     13_writer-box_wrap  Figma SP実測（124:10656 / 375x786）
     ============================================================ */
  .writer { padding: 30px 10px 0; }
  .writer-box { width: 100%; padding: 15px; }
  .writer-dl { flex-direction: row; gap: 20px; }
  .writer-dl__dt { width: 70px; font-size: 1.3rem; }
  .writer-dl__dt--tag { padding: 4px 10px; }
  .writer-dl__qual { font-size: 1.2rem; }
  .writer-dl__bio  { font-size: 1.3rem; }
  .ref-list { font-size: 1.2rem; }
  .icon-blank { width: 12px; height: 12px; }
  .icon-blank img { width: 12px; height: 12px; }

  /* ============================================================
     モーダル（保険料早見表）SP調整
     ============================================================ */
  .modal-frame {
    max-height: calc(100vh - 100px);
  }
  .modal-price { width: 100%; border-radius: 10px; }
  .modal-price__inner { padding: 20px 15px; }
  .modal-price__head { padding-bottom: 15px; }
  .modal-price__head-inner { padding-bottom: 10px; }
  .modal-price__company { font-size: 1.3rem; white-space: normal; }
  .modal-price__name-row { flex-wrap: wrap; gap: 8px; }
  .modal-price__name { font-size: 1.8rem; white-space: normal; }
  .type-badge { padding: 4px 12px; font-size: 1.2rem; }

  .price-table-detail-wrap,
  .modal-price__body { width: 100%; }
  .price-table-detail__col { width: auto; }
  .price-table-detail__col:first-child { width: 50px; }
  .price-table-detail th,
  .price-table-detail td { padding: 5px; font-size: 1.2rem; }
  .price-table-detail__age { height: auto; }
  .price-table-detail td { word-break: break-all; }

  .modal-price__cv-wrap { padding-top: 15px; }
  .modal-price__cv-btn { width: 100%; padding: 12px 10px 8px 0; }
  .modal-price__cv-tx .btn-tx-main { font-size: 1.8rem; }
  .modal-price__cv-tx .btn-tx-sub { font-size: 1.2rem;}
  .modal-price__cv-blank { right: 10px; }

  .mfp-modal-price .mfp-close { top: 12px; right: 12px; }

  /* ============================================================
     モーダル（告知項目の詳細）SP調整
     ============================================================ */
  .modal-kokuchi { width: 100%; border-radius: 10px; }
  .modal-kokuchi__inner { padding: 20px 15px; }
  .modal-kokuchi__sub { font-size: 1.3rem; }
  .kokuchi-table th,
  .kokuchi-table td { padding: 8px 10px; font-size: 1.3rem;}
  .kokuchi-table colgroup col:first-child { width: 90px !important; }
  .tx-box { padding: 12px 15px; }
  .tx-box__ttl,
  .tx-box__tx { font-size: 1.3rem; }

}

.application_banner{
  margin: 0 auto;
  width: 800px;
}

.mfp-inline-holder .mfp-close{
  top: 10px;
  right: 15px;
  color: #aaa!important;
  background-color: transparent;
  font-size: 60px;
}
@media (max-width: 767px) {
  .mfp-inline-holder .mfp-close{
    top: 0;
    right: 0;
    font-size: 44px;
  }
}

.tx-color-attention{
  color: var(--tx-attention);
}