/* =========================================================
   愛知エリア 立ち上げインターン 募集LP
   設計判断メモ：
   - 学生向け_地方版のトークンを流用（色の役割固定：青=構造/信頼, 黄=CTAのみ, 生成り=地の文）
   - 背景は 白 / 生成り / 紺ベタ / 青ベタ を隣接同色なしで交互
   - セクション型を反復させない（帯→ダーク面→引用→番号縦積み→時間軸→表→2カラム対比→ステップ→FAQ→CTA）
   - 見出しは H1 のみ丸ゴシック。H2以降は Noto Sans JP（採用LPで丸ゴシックが続くと軽く見える）
   ========================================================= */
:root{
  --c-primary:#1B4CE0;
  --c-primary-deep:#12309C;
  --c-primary-tint:#EEF2FE;
  --c-primary-hl:#D9E2FE;

  --c-accent:#FFC53D;          /* CTA専用 */
  --c-accent-deep:#E5A700;

  --c-warm-base:#F7F4EE;       /* 生成り */
  --c-warm-line:#E4DDD0;

  --c-ink:#101B36;
  --c-ink-sub:#5A6478;
  --c-placeholder:#DFE4EE;
  --c-line:#E3EBF7;

  --radius:1.15rem;
  --shadow-sm:0 6px 18px rgba(16,27,54,.06);
  --shadow-md:0 16px 40px rgba(16,27,54,.10);

  /* ダーク面のサーフェス（他のダークセクションでも再利用する前提でトークン化）
     塗りは背景 --c-ink(#101B36) に対して明度比1.5:1以上を確保する値。
     枠は必ず 1px 実数指定（サブピクセル指定は非Retinaで消えるため使わない） */
  --surface-1:rgba(255,255,255,.14);
  --surface-border:rgba(255,255,255,.18);
  --surface-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(0,0,0,.35);
  /* ダーク面のテキスト色は単色で持つ（半透明はハレーション・背景変更時の破綻の原因） */
  --on-dark:#E8EDF7;
  --on-dark-mute:#B6C1D6;

  /* タイプスケール（4段階に間隔を空ける：見出し / リード18 / 本文16 / 注釈13） */
  --fs-lead:1.125rem;   /* 18px */
  --fs-body:1rem;       /* 16px */
  --fs-note:.8125rem;   /* 13px */

  --font:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;
  --round:'Zen Maru Gothic','Noto Sans JP',sans-serif;

  --contour:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.09' stroke-width='1.5'%3E%3Cpath d='M-20,50 C60,10 200,90 280,50'/%3E%3Cpath d='M-20,105 C60,65 200,145 280,105'/%3E%3Cpath d='M-20,160 C60,120 200,200 280,160'/%3E%3Cpath d='M-20,215 C60,175 200,255 280,215'/%3E%3C/g%3E%3C/svg%3E");
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--font);color:var(--c-ink-sub);background:#fff;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}
img,svg{max-width:100%;height:auto;display:block;}
section[id]{scroll-margin-top:78px;}
.container{width:100%;max-width:1120px;margin:0 auto;padding:0 1.5rem;}
.section{padding:4.5rem 0;position:relative;}
@media(min-width:860px){.section{padding:6.5rem 0;}}
/* 一行だけの宣言セクション用（リズムの区切り） */
.section-sm{padding:3rem 0;}
@media(min-width:860px){.section-sm{padding:4rem 0;}}
.statement{text-align:center;}
.statement .turn{margin-top:0;}

/* 背景の役割 */
.bg-white{background:#fff;}
.bg-warm{background:var(--c-warm-base);}
.bg-tint{background:var(--c-primary-tint);}
.bg-dark{background:var(--c-ink);color:rgba(255,255,255,.76);}
.bg-blue{background:var(--c-primary);color:#fff;position:relative;overflow:hidden;}
.bg-blue::before{content:"";position:absolute;inset:0;background-image:var(--contour);background-size:260px 260px;pointer-events:none;}
.bg-blue > .container{position:relative;z-index:1;}

/* ---------- タイポグラフィ ---------- */
.h-display{
  font-family:var(--round);font-weight:900;color:var(--c-ink);
  font-size:clamp(2.15rem,5vw,3.75rem);
  line-height:1.34;letter-spacing:.01em;
  text-wrap:balance;word-break:auto-phrase;
}
.h2{
  font-weight:700;color:var(--c-ink);
  font-size:clamp(1.6rem,3.1vw,2.4rem);
  line-height:1.5;letter-spacing:.01em;
  text-wrap:balance;word-break:auto-phrase;
}
.bg-dark .h2,.bg-blue .h2,.bg-dark .h-display,.bg-blue .h-display{color:#fff;}
.lead{font-size:clamp(1rem,1.3vw,1.1875rem);line-height:1.95;color:var(--c-ink);}
.body{font-size:clamp(.9375rem,1.1vw,1rem);line-height:1.95;color:var(--c-ink-sub);}
/* 日本語の改行制御：文節で折り返し、1文字孤立を減らす */
.lead,.body,.quote p,.role p,.qa p,.req dd,.fit-item,.step small,.closing{
  word-break:auto-phrase;text-wrap:pretty;
}
.sec-head.center .sub{text-wrap:balance;}
/* ダーク面の本文：単色＋16px/1.8（15px/1.95は和文の暗背景で細く広すぎる） */
.bg-dark .body,.bg-dark .lead{color:var(--on-dark);font-size:var(--fs-body);line-height:1.8;}
.bg-dark .caption{color:var(--on-dark-mute);font-size:var(--fs-note);}
.caption{font-size:.8125rem;line-height:1.7;color:var(--c-ink-sub);}
.nowrap{white-space:nowrap;}
.tblue{color:var(--c-primary);}
.mark{background:linear-gradient(transparent 58%,var(--c-primary-hl) 58%);padding:0 .12em;}
.sec-head{max-width:780px;}
.sec-head.center{margin:0 auto;text-align:center;}
.sec-head .sub{margin-top:1.1rem;}
.sec-head .h2{margin-top:1rem;}

/* 章ラベル（切替の合図としてのみ使用） */
.chapter{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--round);font-weight:900;
  font-size:.78rem;letter-spacing:.18em;color:var(--c-primary);
  padding:.4rem .95rem;border:1.5px solid var(--c-primary);border-radius:999px;}
.bg-dark .chapter,.bg-blue .chapter{color:#fff;border-color:rgba(255,255,255,.55);}
.chapter .bar{width:20px;height:2px;background:currentColor;border-radius:2px;}

/* ---------- ボタン（黄=CTA専用） ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--round);font-weight:900;font-size:1.02rem;border-radius:999px;
  padding:.95rem 1.8rem;cursor:pointer;border:none;transition:transform .2s,box-shadow .2s,background .2s;}
.btn:hover{transform:translateY(-2px);}
.btn-cta{background:var(--c-accent);color:var(--c-ink);box-shadow:0 12px 26px rgba(255,197,61,.4);}
.btn-cta:hover{background:var(--c-accent-deep);}
.btn-outline{background:transparent;color:var(--c-primary);border:2px solid var(--c-primary);}
.bg-blue .btn-outline{color:#fff;border-color:rgba(255,255,255,.65);}
.btn-lg{font-size:1.1rem;padding:1.1rem 2.3rem;}
.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;}
.btn[aria-disabled="true"]:hover{transform:none;}
.cta-row{display:flex;flex-wrap:wrap;gap:1rem;}

/* ---------- プロダクト画面（実写写真の枠は廃止し、これに置き換え） ---------- */
.shot{background:#fff;border-radius:var(--radius);padding:.5rem;box-shadow:var(--shadow-md);overflow:hidden;}
.shot img{width:100%;height:auto;border-radius:calc(var(--radius) - .3rem);display:block;}
.shot-note{margin-top:.7rem;text-align:right;}
@media(max-width:859px){.shot-note{text-align:left;}}
/* SPでは横長スクショを全体表示すると縮小してUIが読めないため、左上を等倍でクロップして見せる */
@media(max-width:639px){
  .shot img{height:290px;object-fit:cover;object-position:top left;}
}

/* ---------- 告知バー ---------- */
.announce{background:var(--c-ink);color:#fff;text-align:center;font-size:.9rem;padding:.62rem 1rem;font-weight:500;}
.announce b{color:var(--c-accent);}

/* ---------- ナビ ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-line);}
.nav .inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.nav .logo{display:flex;align-items:center;gap:.5rem;font-family:var(--round);font-weight:900;font-size:1.08rem;color:var(--c-ink);}
.nav .logo img{width:32px;}
.nav .links{display:none;gap:1.5rem;font-weight:700;font-size:.9rem;color:var(--c-ink-sub);}
@media(min-width:900px){.nav .links{display:flex;}}
.nav .navcta{font-size:.9rem;padding:.55rem 1.2rem;}

/* ---------- Hero ---------- */
.hero{padding:3.2rem 0 4rem;background:#fff;}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2.4rem;align-items:center;}
@media(min-width:860px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:3.2rem;}}
.hero .eyeline{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--c-primary);
  background:var(--c-primary-tint);padding:.45rem 1rem;border-radius:999px;font-size:.9rem;}
.hero .h-display{margin:1.3rem 0;}
.hero .h-display em{color:var(--c-primary);font-style:normal;}
.hero .chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.6rem 0;}
.chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--c-line);
  color:var(--c-ink-sub);font-weight:700;font-size:.9rem;padding:.45rem .95rem;border-radius:999px;box-shadow:var(--shadow-sm);}
.chip svg{width:16px;height:16px;color:var(--c-primary);}
.hero .note{margin-top:1.1rem;}

/* ---------- 事実の帯（3項目） ---------- */
.facts{padding:1.6rem 0;background:var(--c-primary-tint);border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);}
.facts-inner{display:grid;grid-template-columns:1fr;gap:.9rem;}
@media(min-width:760px){.facts-inner{grid-template-columns:repeat(3,1fr);gap:1.4rem;}}
.fact{display:flex;align-items:center;gap:.7rem;font-weight:700;color:var(--c-ink);font-size:.98rem;line-height:1.55;}
.fact svg{width:22px;height:22px;color:var(--c-primary);flex-shrink:0;}

/* ---------- コンセプト面（紺ベタ） ---------- */
.concept-body{max-width:820px;margin-top:1.8rem;}
.concept-body p + p{margin-top:1.1rem;}
.closing{margin-top:2.2rem;padding:1.5rem 1.7rem;border-radius:var(--radius);
  background:var(--surface-1);border:1px solid var(--surface-border);box-shadow:var(--surface-shadow);
  font-family:var(--round);font-weight:700;color:#fff;font-size:var(--fs-lead);line-height:1.85;}

/* ---------- #about スコープの調整（他セクションに影響させない） ---------- */
/* 章ラベル：白枠＋角丸ピルはボタンと誤認されるため、#about では横線＋テキストのみにする */
#about .chapter{border:none;border-radius:0;padding:0;background:none;
  color:var(--on-dark);font-size:var(--fs-note);letter-spacing:.1em;}
#about .chapter .bar{width:24px;}


/* サービス定義（紺面：何のサービスかを言い切る）
   視認性の判断：暗背景に小さい黄色文字＋広い字間は読みづらいため、
   ラベルは「白ベタのピル＋濃紺文字」に変更。黄はCTA専用のまま左罫線だけに残す。 */
.svc-def{margin-top:2.8rem;padding:1.8rem 2rem;border-radius:var(--radius);
  background:var(--surface-1);border:1px solid var(--surface-border);
  border-left:5px solid var(--c-accent);box-shadow:var(--surface-shadow);}
.svc-def .svc-label{display:inline-block;font-weight:700;font-size:var(--fs-note);letter-spacing:.04em;
  color:var(--c-ink);background:rgba(255,255,255,.95);
  padding:.34rem .95rem;border-radius:999px;margin-bottom:1.1rem;}
.svc-def p{color:#fff;font-size:var(--fs-lead);line-height:1.85;word-break:auto-phrase;text-wrap:pretty;}
.svc-def b{font-weight:700;color:#fff;}
/* 強調は2箇所のみ。片方をアクセント（左端の黄色バーと同色）で色分けする */
.svc-def b.hl{color:var(--c-accent);}

/* サービスのしくみ3ステップ（紺面）
   視認性の判断：番号は文字色だけでは沈むため、白ベタの角丸バッジにして拾える大きさに。
   カードの背景・境界も一段上げて、暗背景でも枠が見えるようにしている。 */
.flow3{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:1.8rem;}
@media(min-width:860px){.flow3{grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:1rem;}}
.f3{background:var(--surface-1);border:1px solid var(--surface-border);border-radius:var(--radius);
  padding:1.5rem 1.5rem 1.6rem;box-shadow:var(--surface-shadow);}
.f3 .fn{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;
  border-radius:.65rem;background:rgba(255,255,255,.95);color:var(--c-ink);
  font-family:var(--round);font-weight:900;font-size:var(--fs-body);letter-spacing:0;}
.f3 b{display:block;font-weight:700;color:#fff;font-size:var(--fs-lead);margin-top:.75rem;line-height:1.5;
  word-break:auto-phrase;text-wrap:balance;}
.f3 small{display:block;color:var(--on-dark);font-size:var(--fs-body);line-height:1.8;margin-top:.5rem;
  word-break:auto-phrase;text-wrap:pretty;}
.f3-arrow{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);}
.f3-arrow svg{width:24px;height:24px;}
@media(max-width:859px){.f3-arrow{transform:rotate(90deg);}}

/* ---------- 立ち上げ決定（引用型ブロック） ---------- */
.quote{max-width:780px;margin-top:2rem;padding-left:1.4rem;border-left:4px solid var(--c-primary);}
.quote p{font-size:clamp(1rem,1.25vw,1.12rem);line-height:2;color:var(--c-ink);}
.quote p + p{margin-top:1rem;}
.turn{margin-top:2.4rem;font-family:var(--round);font-weight:900;
  font-size:clamp(1.45rem,3vw,2.15rem);line-height:1.6;color:var(--c-ink);text-wrap:balance;}
.turn .tblue{display:inline-block;}

/* ---------- 3つの役割（番号付き縦積み） ---------- */
.roles{margin-top:2.6rem;display:flex;flex-direction:column;gap:1.1rem;}
.role{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;
  background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.6rem 1.7rem;box-shadow:var(--shadow-sm);}
@media(min-width:860px){.role{grid-template-columns:auto 1fr auto;align-items:center;gap:1.8rem;}}
.role .rn{font-family:var(--round);font-weight:900;font-size:1.5rem;color:var(--c-primary);line-height:1;}
.role h3{font-weight:700;font-size:clamp(1.15rem,2vw,1.5rem);color:var(--c-ink);line-height:1.5;
  word-break:auto-phrase;text-wrap:balance;}
.role p{margin-top:.45rem;color:var(--c-ink-sub);font-size:1rem;line-height:1.85;}

/* ---------- 募集要項（表） ---------- */
.req{max-width:860px;margin:2.4rem auto 0;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.req dl{display:grid;grid-template-columns:1fr;}
@media(min-width:700px){.req dl{grid-template-columns:11rem 1fr;}}
.req dt,.req dd{padding:1.05rem 1.4rem;border-top:1px solid var(--c-line);}
.req dl > dt:first-of-type,.req dl > dt:first-of-type + dd{border-top:none;}
@media(max-width:699px){.req dl > dt:first-of-type + dd{border-top:1px solid var(--c-line);}}
.req dt{font-weight:700;color:var(--c-ink);background:var(--c-primary-tint);font-size:.95rem;}
.req dd{color:var(--c-ink-sub);font-size:1rem;line-height:1.85;}
.req dd b{color:var(--c-ink);}
.req dd ul{margin:.35rem 0 0;padding-left:1.1rem;}
.req dd li{margin-top:.2rem;}
.req-note{max-width:860px;margin:1.1rem auto 0;font-family:var(--round);font-weight:900;color:var(--c-ink);text-align:center;}
.tbd{color:var(--c-primary);font-weight:700;}

/* ---------- 来てほしい人（アイコン付きタイル：素っ気なさの解消） ---------- */
.fit-grid{list-style:none;display:grid;grid-template-columns:1fr;gap:1rem;margin:2.6rem auto 0;max-width:900px;}
@media(min-width:760px){.fit-grid{grid-template-columns:1fr 1fr;gap:1.1rem;}}
.fit-item{display:flex;align-items:center;gap:1rem;
  background:var(--c-primary-tint);border:1px solid var(--c-primary-hl);border-radius:var(--radius);
  padding:1.35rem 1.5rem;color:var(--c-ink);font-weight:700;font-size:1.05rem;line-height:1.7;
  word-break:auto-phrase;text-wrap:pretty;}
.fit-item .fi-ico{flex-shrink:0;width:2.6rem;height:2.6rem;border-radius:.85rem;
  background:var(--c-primary);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 14px rgba(27,76,224,.28);}
.fit-item .fi-ico svg{width:20px;height:20px;}

/* ---------- 選考の流れ（ステップ） ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:2.4rem;}
@media(min-width:860px){.steps{grid-template-columns:repeat(4,1fr);gap:.8rem;}}
.step{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1.4rem 1.3rem;position:relative;box-shadow:var(--shadow-sm);}
.step .sn{font-family:var(--round);font-weight:900;color:var(--c-primary);font-size:.85rem;letter-spacing:.1em;}
.step b{display:block;font-weight:700;color:var(--c-ink);font-size:1.05rem;margin-top:.3rem;line-height:1.5;}
.step small{display:block;color:var(--c-ink-sub);font-size:.88rem;line-height:1.7;margin-top:.35rem;}
.steps-note{margin-top:1.4rem;text-align:center;}

/* ---------- FAQ ---------- */
.faq-list{max-width:840px;margin:2.4rem auto 0;display:flex;flex-direction:column;gap:1.25rem;}
.qa{border-bottom:1px solid var(--c-line);padding-bottom:1.25rem;}
.qa h3{font-weight:700;font-size:1.08rem;color:var(--c-ink);display:flex;gap:.6rem;line-height:1.6;}
.qa h3::before{content:"Q";color:var(--c-primary);font-weight:900;font-family:var(--round);}
.qa p{margin-top:.5rem;padding-left:1.4rem;color:var(--c-ink-sub);font-size:1rem;line-height:1.9;}

/* ---------- CTA ---------- */
.cta-sec{text-align:center;}
.cta-sec .lead2{margin-top:1.1rem;color:#dbe6fb;font-size:1.1rem;line-height:1.9;}
.cta-sec .cta-row{justify-content:center;margin-top:2.1rem;}
.cta-sec .guarantees{display:flex;flex-wrap:wrap;justify-content:center;gap:1.3rem;margin-top:2rem;font-size:.92rem;color:#eaf1ff;}
.cta-sec .guarantees span{display:inline-flex;align-items:center;gap:.4rem;}
.cta-sec .guarantees svg{width:17px;height:17px;color:var(--c-accent);}

/* ---------- Footer ---------- */
.footer{background:var(--c-ink);color:rgba(255,255,255,.68);padding:3.2rem 0 2.4rem;text-align:center;}
.footer img{width:42px;margin:0 auto .8rem;}
.footer .fname{font-family:var(--round);font-weight:900;color:#fff;font-size:1.2rem;}
.footer .fdesc{font-size:.9rem;margin:.6rem 0 1.6rem;color:rgba(255,255,255,.55);}
.footer .flinks{display:flex;justify-content:center;flex-wrap:wrap;gap:1.4rem;font-size:.9rem;margin-bottom:1.1rem;}
.footer .flinks a{color:rgba(255,255,255,.6);}
.footer .fcopy{font-size:.82rem;color:rgba(255,255,255,.4);}

/* ---------- fade-in ---------- */
.reveal-up{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal-up.on{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal-up{opacity:1!important;transform:none!important;}}

/* =========================================================
   法務ページ（利用規約・プライバシーポリシー等）
   - LPと同じトークンを使う。装飾は足さず、可読性（行長・行間・階層）だけを整える
   - 条=h2 / 項=ol.legal-list / 号=ol.legal-sub の3階層に固定する
   ========================================================= */
.legal-head{background:var(--c-warm-base);border-bottom:1px solid var(--c-warm-line);padding:3rem 0 2.6rem;}
@media(min-width:860px){.legal-head{padding:4.2rem 0 3.4rem;}}
.legal-head h1{
  font-family:var(--round);font-weight:900;color:var(--c-ink);
  font-size:clamp(1.65rem,3.4vw,2.5rem);line-height:1.45;letter-spacing:.01em;
  text-wrap:balance;word-break:auto-phrase;
}
.legal-head .legal-lead{
  max-width:780px;margin-top:1.4rem;
  font-size:var(--fs-body);line-height:1.95;color:var(--c-ink-sub);
  word-break:auto-phrase;text-wrap:pretty;
}
.legal-head .legal-date{margin-top:1.4rem;}

/* 目次 */
.legal-toc{
  max-width:820px;margin:0 auto;padding:1.5rem 1.6rem;
  background:var(--c-primary-tint);border:1px solid var(--c-primary-hl);border-radius:var(--radius);
}
.legal-toc h2{font-weight:700;font-size:1rem;color:var(--c-ink);letter-spacing:.02em;}
.legal-toc ol{list-style:none;margin-top:.9rem;display:grid;gap:.45rem .9rem;font-size:.92rem;}
@media(min-width:700px){.legal-toc ol{grid-template-columns:1fr 1fr;}}
.legal-toc a{color:var(--c-primary-deep);font-weight:500;}
.legal-toc a:hover{text-decoration:underline;}

/* 本文 */
.legal{max-width:820px;margin:0 auto;}
.legal .article{margin-top:2.8rem;scroll-margin-top:80px;}
.legal .article:first-child{margin-top:0;}
.legal .article h2{
  font-weight:700;font-size:clamp(1.12rem,1.8vw,1.3rem);line-height:1.6;color:var(--c-ink);
  padding-bottom:.6rem;border-bottom:2px solid var(--c-primary-hl);
}
.legal p,.legal li{font-size:var(--fs-body);line-height:1.95;color:var(--c-ink-sub);
  word-break:auto-phrase;text-wrap:pretty;}
.legal .article > p{margin-top:1rem;}
.legal a:not(.btn){color:var(--c-primary-deep);text-decoration:underline;text-underline-offset:.18em;}

/* 項（1. 2. 3.） */
.legal ol.legal-list{list-style:none;counter-reset:item;margin-top:1rem;}
.legal ol.legal-list > li{counter-increment:item;position:relative;padding-left:2rem;margin-top:.9rem;}
.legal ol.legal-list > li::before{
  content:counter(item) ".";position:absolute;left:0;top:0;
  font-family:var(--round);font-weight:700;color:var(--c-primary);font-variant-numeric:tabular-nums;
}
/* 1項しかない条は番号を出さない（形式だけの「1.」は読み手のノイズになる） */
.legal ol.legal-list.no-marker > li{padding-left:0;}
.legal ol.legal-list.no-marker > li::before{content:none;}

/* 号（(1) (2) (3)） */
.legal ol.legal-sub{list-style:none;counter-reset:sub;margin-top:.7rem;}
.legal ol.legal-sub > li{counter-increment:sub;position:relative;padding-left:2.3rem;margin-top:.5rem;}
.legal ol.legal-sub > li::before{
  content:"(" counter(sub) ")";position:absolute;left:0;top:0;
  font-weight:700;color:var(--c-ink-sub);font-variant-numeric:tabular-nums;
}

/* 見出し付きの号（禁止事項・免責事項など、太字ラベル＋本文） */
.legal .term{font-weight:700;color:var(--c-ink);}
.legal .term-block{display:block;font-weight:700;color:var(--c-ink);margin-bottom:.15rem;}

/* 2種のクエストのように、まとまりを枠で分ける場合 */
.legal .legal-card{
  margin-top:1.1rem;padding:1.3rem 1.4rem;
  background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:var(--shadow-sm);
}
.legal .legal-card > b{display:block;font-size:1.02rem;color:var(--c-ink);}
.legal .legal-card dl{margin-top:.7rem;display:grid;gap:.55rem;}
.legal .legal-card dt{font-weight:700;color:var(--c-primary-deep);font-size:.9rem;}
.legal .legal-card dd{font-size:var(--fs-body);line-height:1.9;color:var(--c-ink-sub);
  word-break:auto-phrase;text-wrap:pretty;}

/* ページ下部の戻り導線 */
.legal-back{max-width:820px;margin:3.4rem auto 0;padding-top:2rem;border-top:1px solid var(--c-line);text-align:center;}
.legal-back a:not(.btn){color:var(--c-primary-deep);text-decoration:underline;text-underline-offset:.18em;}
