/* プライバシーポリシー・利用規約ページ共通。長い規約文を読みやすくするための指定。 */

/* ── 見出しブロック ───────────────────────────── */
.policy-head{position:relative;isolation:isolate;overflow:hidden;margin:0 24px;padding:88px 7% 78px;background:var(--navy);color:#fff}
.policy-field{position:absolute;inset:0;width:100%;height:100%;color:#ffffff1f;z-index:-1}
.policy-head-inner{max-width:820px}
.policy-head h1{font-size:clamp(31px,3.4vw,48px);line-height:1.55;letter-spacing:.03em}
.policy-lead{max-width:660px;margin-top:26px;font-size:14px;line-height:2.2;color:#e3eaee}
.policy-meta{display:flex;flex-wrap:wrap;gap:14px 46px;margin:38px 0 0;padding-top:26px;border-top:1px solid #ffffff33}
.policy-meta div{display:flex;align-items:baseline;gap:14px}
.policy-meta dt{font:10px Arial,sans-serif;letter-spacing:.13em;color:#a9bfcb;white-space:nowrap;flex-shrink:0}
.policy-meta dd{margin:0;font-size:13px;font-weight:600}

/* ── 目次と本文の2カラム ──────────────────────── */
.policy-layout{display:grid;grid-template-columns:236px 1fr;gap:7%;padding:96px 0 105px;align-items:start}
/* 目次を置かないページ（特商法・お問い合わせ）は1カラムで中央に置く */
.policy-layout.no-toc{grid-template-columns:1fr;gap:0}
.no-toc .policy-body{max-width:900px;margin:0 auto}
.no-toc .policy-article:first-of-type{padding-top:0;border-top:0}
.no-toc .policy-no:empty{display:none}
.no-toc .policy-article:has(.policy-no:empty){grid-template-columns:1fr;gap:0}

.policy-toc{position:sticky;top:120px}
.policy-toc-title{font:10px Arial,sans-serif;letter-spacing:.13em;color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--line)}
.policy-toc ol{list-style:none;margin:0;padding:0}
.policy-toc a{display:flex;gap:13px;padding:11px 0 11px 11px;font-size:12px;line-height:1.7;border-left:2px solid transparent;color:var(--muted);transition:color .2s,border-color .2s}
.policy-toc a span{font:10px Arial,sans-serif;color:#adbcb4;padding-top:2px}
.policy-toc a:hover{color:var(--navy)}
.policy-toc a[aria-current]{color:var(--navy);font-weight:700;border-left-color:var(--green)}
.policy-toc a[aria-current] span{color:var(--green-dark)}

/* ── 本文 ────────────────────────────────── */
/* min-width:0 がないと、折り返せない長いURLがグリッドの幅を押し広げてしまう */
.policy-body{max-width:760px;min-width:0}
.policy-table dd,.policy-list li,.policy-ol li,.contact-cats li{overflow-wrap:anywhere}
.policy-inline-link{overflow-wrap:anywhere}
.policy-article{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:34px 0;border-top:1px solid var(--line)}
.policy-article:first-child{padding-top:0;border-top:0}
.policy-no{font:16px Arial,sans-serif;color:var(--green-dark);padding-top:6px}
.policy-body h2{font-size:21px;line-height:1.7;margin-bottom:18px;letter-spacing:.02em}
.policy-body p{font-size:14px;line-height:2.2;margin-top:16px}
.policy-body h2+p{margin-top:0}

.policy-note{background:var(--paper);border-left:2px solid var(--green);padding:17px 20px;font-size:13px!important;line-height:2.05!important}

/* 個人情報に関する問い合わせ窓口 */
.policy-contact{background:var(--paper);border-left:2px solid var(--green);padding:20px 24px;margin-top:22px}
.policy-contact p{margin:0}
.policy-contact-label{font-size:11px!important;letter-spacing:.06em;color:var(--muted);line-height:1.8!important}
.policy-contact-name{margin-top:10px!important;font-size:14px!important;font-weight:700;line-height:1.8!important}
.policy-contact-mail{margin-top:6px!important;line-height:1.8!important}
.policy-contact-mail a{font:16px/1.7 Arial,sans-serif;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:2px;word-break:break-all}
.policy-contact-mail a:hover{color:var(--green-dark);border-bottom-color:var(--green)}

/* お問い合わせページ：相談カテゴリーの一覧 */
.contact-cats{list-style:none;padding:0;margin:22px 0 0}
.contact-cats li{padding:16px 0;border-top:1px solid var(--line)}
.contact-cats li:last-child{border-bottom:1px solid var(--line)}
.contact-cats strong{display:block;font-size:15px;line-height:1.8}
.contact-cats span{display:block;margin-top:5px;font-size:13px;line-height:1.9;color:var(--muted)}

.policy-list{margin:18px 0 0;padding-left:20px}
.policy-list li{font-size:14px;line-height:2.15;padding:5px 0}

/* 定義リスト（事業者情報・取得する情報） */
.policy-table{margin:20px 0 0}
.policy-table div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:15px 0;border-top:1px solid var(--line)}
.policy-table div:last-child{border-bottom:1px solid var(--line)}
.policy-table dt{font-size:12px;color:var(--muted);padding-top:3px}
.policy-table dd{margin:0;font-size:14px;line-height:1.95}
.policy-table.wide div{grid-template-columns:210px 1fr}
.policy-table dd span{display:block;margin-top:9px;font-size:13px;line-height:2.05;color:var(--muted)}

.policy-contact-address{margin-top:6px!important;font-size:13px!important;line-height:1.9!important;color:var(--muted)}
.policy-contact-tel{margin-top:4px!important;line-height:1.8!important}
.policy-contact-tel a{font:14px/1.7 Arial,sans-serif;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:2px}
.policy-contact-tel a:hover{color:var(--green-dark);border-bottom-color:var(--green)}

.policy-sign{margin-top:44px;padding-top:26px;border-top:1px solid var(--line);font-size:13px;font-weight:700;letter-spacing:.05em}

/* ── 利用規約：部の区切り・条文リスト・小見出し ───────── */
.policy-part{margin:0 0 34px;padding:15px 20px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;letter-spacing:.1em}
.policy-article+.policy-part{margin-top:56px}

.policy-inline-link{border-bottom:1px solid var(--green);padding-bottom:1px;font-weight:600}
.policy-inline-link:hover{color:var(--green-dark)}

.policy-ol{counter-reset:item;list-style:none;padding:0;margin:16px 0 0}
.policy-ol>li{counter-increment:item;position:relative;padding-left:30px;margin-top:13px;font-size:14px;line-height:2.15}
.policy-ol>li:first-child{margin-top:0}
.policy-ol>li::before{content:counter(item) ".";position:absolute;left:0;top:0;font:13px/2.3 Arial,sans-serif;color:var(--green-dark)}
.policy-ol ol{counter-reset:sub;list-style:none;padding:0;margin:9px 0 4px}
.policy-ol ol>li{counter-increment:sub;position:relative;padding-left:34px;margin-top:7px;font-size:13px;line-height:2.05;color:var(--muted)}
.policy-ol ol>li::before{content:"(" counter(sub) ")";position:absolute;left:0;top:0;font:12px/2.2 Arial,sans-serif;color:#8fa39a}

.policy-sub{display:flex;align-items:baseline;gap:12px;margin:32px 0 0;font-size:15px;letter-spacing:.02em}
.policy-sub>span{font:11px Arial,sans-serif;color:var(--green-dark);border:1px solid var(--line);width:22px;height:22px;display:inline-grid;place-items:center;flex-shrink:0}
.policy-sub+p,.policy-sub+.policy-ol{margin-top:14px}
.policy-body h2+.policy-sub{margin-top:6px}

.policy-pending{color:var(--muted);font-size:13px!important;background:var(--paper);padding:16px 20px;line-height:2.05!important}

/* 条数が多いので、目次は行を詰めて、収まらない分はスクロールさせる */
.terms-toc{max-height:calc(100vh - 150px);overflow-y:auto}
.terms-toc a{padding:7px 0 7px 11px;font-size:11.5px}
.terms-toc ol+.policy-toc-group{margin-top:20px}
.policy-toc-group{font-size:11px;font-weight:700;color:var(--navy);padding:12px 0 8px;letter-spacing:.04em}

/* ── タブレット ──────────────────────────── */
@media(max-width:1023px){
  .policy-head{padding:72px 7% 64px}
  .policy-layout{grid-template-columns:1fr;gap:0;padding:64px 0 80px}
  .policy-toc{position:static;margin-bottom:52px;padding:24px 26px 12px;background:var(--paper)}
  .policy-toc-title{border-bottom-color:#d3ddd3}
  .policy-toc ol{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-top:6px}
  .policy-toc a{padding-left:0;border-left:0;border-bottom:1px solid #dde5dd}
  .policy-toc a[aria-current]{border-left:0}
  .policy-body{max-width:100%}
  .terms-toc{max-height:none;overflow:visible}
  .policy-toc-group{grid-column:1/-1;padding:14px 0 4px}
}

/* ── モバイル ───────────────────────────── */
@media(max-width:680px){
  .policy-head{margin:0 14px;padding:56px 8% 50px}
  .policy-head h1{font-size:clamp(22px,6.2vw,31px)}
  .policy-lead{font-size:13px;margin-top:22px}
  .policy-meta{gap:12px 30px;margin-top:30px;padding-top:22px}
  .policy-layout{padding:52px 0 65px}
  .policy-toc{padding:20px 20px 10px;margin-bottom:42px}
  .policy-toc ol{grid-template-columns:1fr}
  .policy-article{grid-template-columns:1fr;gap:0;padding:30px 0}
  .policy-no{padding:0 0 10px}
  .policy-body h2{font-size:19px;margin-bottom:14px}
  .policy-body p,.policy-list li{font-size:13px;line-height:2.1}
  .policy-table div,.policy-table.wide div{grid-template-columns:1fr;gap:7px;padding:14px 0}
  .policy-table dd{font-size:13px}
  .policy-part{padding:13px 16px;font-size:12px;margin-bottom:28px}
  .policy-article+.policy-part{margin-top:40px}
  .policy-ol>li{font-size:13px;line-height:2.1;padding-left:26px;margin-top:11px}
  .policy-ol ol>li{font-size:12px;padding-left:30px}
  .policy-sub{font-size:14px;margin-top:26px;gap:10px}
  .policy-sign{margin-top:36px;padding-top:22px;font-size:12px}
}

/* パートナー制度：料金表の下に置く特典の案内 */
.partner-benefit{margin-top:22px;padding:15px 20px;background:var(--paper);border-left:2px solid var(--green);font-size:14px;line-height:2}
@media(max-width:680px){.partner-benefit{font-size:13px;padding:14px 16px;line-height:1.95}}

/* パートナー制度：金額の列は右揃えにして、桁を見比べやすくする */
.partner-table thead th:not(:first-child),
.partner-table tbody td{text-align:right;font-variant-numeric:tabular-nums}
