/* ============================================================
   天命堂 — warm editorial
   画像1点（女性とカードの絵）から採った配色：
   cream #FBF6F0 / ink #2A2118 / peach #EFDCCA / terracotta #C4794A
   / gold #C59A4F / sage #AEBDBB
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Shippori+Mincho:wght@400;500;600;700&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap');

/* 本文用の和文サブセット（同梱）。
   Google Fonts の分割配信では一部の漢字（回・毎 など）が
   環境によって豆腐になるため、必要な文字だけを同梱して先に読ませる。 */
@font-face{
  font-family:'Tenmei Kaku';
  font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/zk400.woff2') format('woff2');
}
@font-face{
  font-family:'Tenmei Kaku';
  font-style:normal;font-weight:500;font-display:swap;
  src:url('assets/fonts/zk500.woff2') format('woff2');
}
@font-face{
  font-family:'Tenmei Kaku';
  font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/zk700.woff2') format('woff2');
}

:root{
  --paper:#FBF6F0;
  --paper-2:#F5EDE4;
  --ink:#2A2118;
  --body:#41382D;
  --peach:#EFDCCA;
  --peach-2:#E4C6AE;
  --terra:#C4794A;
  --terra2:#8E4F23;
  --gold:#C59A4F;
  --gold-soft:#E3C99A;
  --sage:#AEBDBB;
  --sage-pale:#E4E9E7;
  --hair:rgba(42,33,24,.16);
  --hair-soft:rgba(42,33,24,.09);

  /* 旧トークン名（JS側のインライン指定を壊さないため） */
  --coral:var(--terra);
  --teal:#3B443A;
  --yellow:var(--gold-soft);
  --pink:var(--peach);
  --gold-text:#A87B36;
  --on-dark:#FBF6F0;
  --on-gold:#3A2E20;

  --font-body:'Tenmei Kaku','Zen Kaku Gothic New','Hiragino Sans',sans-serif;
  --font-hero:'Shippori Mincho','Hiragino Mincho ProN',serif;
  --font-accent:'Cormorant Garamond','Shippori Mincho',serif;
  --font-num:'Shippori Mincho','Hiragino Mincho ProN',serif;

  --lift:4px;
  --rot:1;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:var(--font-body);font-weight:400;
  line-height:1.95;letter-spacing:.02em;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;text-wrap:pretty;
  line-break:strict;overflow-wrap:break-word;
  /* 日本語を「文節」で折る（Chrome 119+）。非対応でも通常の折り返しに戻るだけ */
  word-break:auto-phrase;
}
h1,h2,h3,h4,.hero-type,h2.section,.lede,.small{word-break:auto-phrase;line-break:strict}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--peach);color:var(--ink)}

.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4.6vw,72px)}
.wrap-narrow{max-width:860px;margin:0 auto;padding:0 clamp(20px,4.6vw,72px)}

/* ---------------- type ---------------- */
h1,h2,h3,h4{margin:0;font-weight:500;line-height:1.3;letter-spacing:.02em;color:var(--ink)}
.eyebrow{
  font-family:var(--font-accent);font-size:12px;font-weight:400;
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-text);
  display:inline-flex;align-items:center;gap:12px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.55}
.jp-label{font-size:11.5px;letter-spacing:.2em;color:var(--gold-text)}

.hero-type{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(34px,5.4vw,66px);line-height:1.42;letter-spacing:.06em;
}
h2.section{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(24px,3.2vw,40px);line-height:1.6;letter-spacing:.06em;
}
h3.sub{font-family:var(--font-hero);font-weight:500;font-size:clamp(18px,1.9vw,24px);line-height:1.7;letter-spacing:.04em}
.accent{font-family:var(--font-accent);font-size:1.15em;letter-spacing:.02em;font-weight:400}
.hero-type em{font-style:normal;color:var(--terra)}

/* 改行位置を固定した見出し（語の途中で折らない） */
.hero-type--fixed{font-size:clamp(24px,3.6vw,46px);line-height:1.5;letter-spacing:.04em}
.hero-type--fixed .ht-line{display:block;white-space:nowrap}
.hero-type--fixed .ht-line + .ht-line{margin-top:.06em}
.hero-type--fixed .ht-sub{font-size:.56em;letter-spacing:.06em;margin-top:.5em !important;color:var(--body)}

/* ヒーローのリード（2段落・改行位置を指定） */
.hero-lede p{margin:0;max-width:520px}
.hero-lede p + p{margin-top:12px}
.br-desk{display:inline}
@media (max-width:880px){.br-desk{display:none}}
.lede{font-size:clamp(14px,1.15vw,15.5px);line-height:2.15;letter-spacing:.03em;color:var(--body)}
.small{font-size:11.5px;line-height:1.9;letter-spacing:.03em;color:var(--body)}
.num{font-variant-numeric:tabular-nums}

/* ---------------- 天命のはじまり（一節の注記） ---------------- */
.origin-note{padding:clamp(34px,4.6vw,60px) 0 clamp(30px,3.6vw,44px)}
.origin-inner{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(22px,3.4vw,52px);align-items:start;
  border-top:1px solid var(--hair);padding-top:clamp(24px,3vw,36px);
  max-width:1000px;
}
.origin-label{
  display:flex;align-items:center;gap:11px;
  font-family:var(--font-hero);font-size:15px;letter-spacing:.26em;
  color:var(--terra);white-space:nowrap;padding-top:3px;
}
.origin-label::after{content:"";display:block;width:34px;height:1px;background:var(--terra);opacity:.45}
.origin-text{
  margin:0;font-size:clamp(15px,1.4vw,17px);line-height:2.05;letter-spacing:.03em;
  color:var(--ink);text-indent:1em;
}
.origin-text b{
  font-family:var(--font-hero);font-weight:500;color:var(--terra);
  border-bottom:1px solid var(--terra);padding-bottom:1px;
  white-space:nowrap;
}
@media (max-width:640px){
  .origin-inner{grid-template-columns:1fr;gap:10px}
  .origin-text{text-indent:0}
  .origin-text b{white-space:normal}
}

/* ---------------- header ---------------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(12px) saturate(115%);
}
.header-inner{display:flex;align-items:center;gap:clamp(12px,3vw,40px);height:86px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;text-decoration:none}
.logo-img{width:52px;height:52px;object-fit:contain;display:block}
.logo-mark{font-family:var(--font-hero);font-size:21px;font-weight:500;letter-spacing:.22em;color:var(--ink);line-height:1}
.logo-sub{font-family:var(--font-accent);font-size:11px;font-style:italic;letter-spacing:.22em;color:var(--gold-text)}
.nav{display:flex;align-items:center;gap:clamp(2px,1vw,10px);margin-left:auto}
.nav a{
  font-size:12.5px;letter-spacing:.1em;padding:8px 2px;position:relative;color:var(--body);
  transition:color .2s ease;
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .28s ease;
}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav-cta{
  margin-left:clamp(8px,1.6vw,22px);padding:11px 22px !important;border:1px solid var(--gold);
  color:var(--gold-text) !important;border-radius:999px;font-size:11.5px;letter-spacing:.14em;
  transition:background .22s ease,color .22s ease;
}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--gold);color:#fff !important}
.nav-cta[aria-current="page"]{background:var(--gold);color:#fff !important}

.bars{display:flex;height:2px;width:100%;background:var(--hair-soft)}
.bars i{display:block}
.bars .b1{flex:1;background:var(--peach-2)}
.bars .b2{flex:1;background:var(--terra);opacity:.5}
.bars .b3{flex:1;background:var(--gold)}
.bars .b4{flex:1;background:var(--sage);opacity:.6}
.bars .b5{flex:1;background:transparent}

@media (max-width:900px){
  .header-inner{height:auto;padding-top:14px;flex-wrap:wrap;row-gap:0}
  .nav{margin-left:0;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:12px;gap:16px}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;font-size:12px;padding:6px 0}
  .nav-cta{margin-left:auto;padding:7px 15px !important}
  .logo-mark{font-size:20px}
}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 30px;border-radius:999px;font-weight:500;font-size:13px;letter-spacing:.12em;
  border:1px solid var(--ink);transition:background .24s ease,color .24s ease,border-color .24s ease;
}
.btn .arrow{font-size:13px;transition:transform .24s ease}
.btn:hover .arrow{transform:translateX(4px)}
.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-primary:hover{background:#41382D}
.btn-coral{background:var(--terra);color:#fff;border-color:var(--terra)}
.btn-coral:hover{background:#B26A3E;border-color:#B26A3E}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--hair)}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ヒーローの副ボタン（別ページへ誘導するので、主ボタンと同じ大きさで面を持たせる） */
.btn-page{
  background:var(--peach);color:var(--ink);
  border-color:color-mix(in srgb, var(--ink) 20%, transparent);
  padding:9px 24px 9px 26px;gap:18px;border-radius:999px;
}
.btn-page:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-page .bp-in{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left}
.btn-page .bp-kicker{
  font-size:10.5px;letter-spacing:.09em;
  opacity:.7;line-height:1.5;
}
.btn-page .bp-main{font-family:var(--font-hero);font-size:16.5px;letter-spacing:.08em;line-height:1.4}
.btn-page .arrow{font-size:15px;align-self:center}
@media (max-width:520px){
  .btn-page{width:100%;justify-content:space-between;padding:12px 22px}
}

/* ---------------- chips ---------------- */
.chip{
  display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:400;
  letter-spacing:.1em;padding:5px 13px;border:1px solid var(--hair);border-radius:999px;
  background:transparent;color:var(--body);
}
.chip.solid{background:var(--peach);border-color:var(--peach-2);color:var(--ink)}
.chip.teal{background:var(--teal);color:var(--paper);border-color:var(--teal)}

/* ---------------- hero ---------------- */
.hero{padding:clamp(30px,4.4vw,58px) 0 clamp(34px,4.6vw,64px)}
.hero-grid{display:grid;grid-template-columns:minmax(min-content,1fr) minmax(0,.95fr);gap:clamp(24px,3.4vw,52px);align-items:center}
.hero-kicker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(18px,2.4vw,28px)}
.hero-type{margin:0}
.hero-note-line{letter-spacing:.06em;opacity:.92;line-height:1.95;font-weight:500}
.hero-note{margin-top:clamp(22px,3vw,34px);padding-top:18px;border-top:1px solid var(--hair-soft);max-width:34ch}
.hero-note div{font-size:12.5px;letter-spacing:.03em}
.hero-note b{font-family:var(--font-num);font-size:16px;font-weight:500;letter-spacing:.01em}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(22px,2.8vw,32px);align-items:stretch}
.hero-actions .btn{min-height:58px}

.hero-art{position:relative;margin:0;margin-right:calc(-1 * clamp(0px, (100vw - 1200px) / 2, 150px))}
.hero-art .mat{background:var(--peach);padding:clamp(14px,1.7vw,24px) clamp(14px,1.7vw,24px) clamp(28px,3.2vw,48px)}
.hero-art .art{
  position:relative;z-index:2;width:100%;display:block;
  border:1px solid rgba(42,33,24,.1);background:var(--paper);
}
.hero-art .block-a,.hero-art .block-b{display:none}
.hero-art .vert{
  position:absolute;z-index:3;right:-26px;top:0;writing-mode:vertical-rl;
  font-family:var(--font-accent);font-size:10.5px;letter-spacing:.36em;color:var(--gold-text);
}
.hero-art figcaption{
  margin-top:16px;display:flex;justify-content:space-between;gap:12px;
  font-family:var(--font-accent);font-size:11px;letter-spacing:.22em;color:var(--gold-text);
  position:relative;z-index:3;
}
.hero-badge{display:none}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-art{max-width:520px;margin:0 auto;margin-right:auto}
  .hero-art .vert{display:none}
}
[data-hero="frame"] .hero-grid{grid-template-columns:1fr;gap:40px}
[data-hero="frame"] .hero-copy{max-width:720px}
[data-hero="frame"] .hero-art{max-width:600px;margin:0 auto}
[data-hero="poster"] .hero-grid{grid-template-columns:1fr;gap:34px}
[data-hero="poster"] .hero-art{order:-1;max-width:min(430px,72vw);margin:0 auto}
[data-hero="poster"] .hero-copy{max-width:640px;margin:0 auto;text-align:center}
[data-hero="poster"] .hero-kicker,[data-hero="poster"] .hero-actions{justify-content:center}
[data-hero="poster"] .hero-note{margin-left:auto;margin-right:auto}

/* ---------------- index strip ---------------- */
.index-strip{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);overflow:hidden;background:var(--paper-2)}
.index-strip .inner{display:flex;white-space:nowrap}
.index-strip span{
  padding:13px clamp(14px,2.6vw,32px);font-family:var(--font-accent);font-size:11.5px;
  letter-spacing:.26em;color:var(--gold-text);border-right:1px solid var(--hair-soft);
}
.index-strip span:last-child{border-right:0}

/* ---------------- entrances ---------------- */
.entrances{padding:clamp(46px,6vw,86px) 0 clamp(30px,4vw,50px)}
.entrance-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,26px);align-items:stretch}
.entrance{
  position:relative;padding:clamp(24px,3vw,40px);border:1px solid var(--hair);
  display:flex;flex-direction:column;gap:0;
  transition:background .3s ease,transform .3s ease;
}
.entrance.reading{background:#fff;color:var(--body)}
.entrance.school{background:var(--peach);color:var(--body)}
.entrance:hover{transform:translateY(-3px)}
.entrance.reading:hover{background:#FFFDFB}
.entrance.school:hover{background:#F2E2D3}
.entrance .ent-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.entrance .idx{
  font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.1em;
  color:var(--paper);background:var(--ink);border-radius:999px;
  width:24px;height:24px;display:grid;place-items:center;line-height:1;
}
.entrance .kind{font-size:11.5px;letter-spacing:.14em;color:var(--gold-text)}
.entrance h3{font-family:var(--font-hero);font-weight:500;font-size:clamp(21px,2.4vw,28px);line-height:1.55;letter-spacing:.05em;margin:0 0 12px}
.entrance p{margin:0;font-size:12.5px;line-height:1.95;max-width:34ch;color:var(--body);min-height:calc(1.95em * 3)}
.entrance .spec{
  margin:20px 0 0;padding:14px 0 0;border-top:1px solid var(--hair);
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
}
.entrance .spec>div{display:flex;flex-direction:column;gap:3px}
.entrance .spec dt{font-size:10px;letter-spacing:.12em;color:var(--gold-text)}
.entrance .spec dd{margin:0;font-size:13.5px;font-weight:500;color:var(--ink);letter-spacing:.02em;line-height:1.5}
.entrance .price-tag{
  margin-top:auto;padding-top:22px;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.entrance .price-tag .pl{font-size:11px;letter-spacing:.1em;color:var(--gold-text);min-width:2.6em}
.entrance .price-tag strong{
  font-family:var(--font-body);font-weight:700;
  font-size:clamp(26px,2.7vw,34px);line-height:1.1;letter-spacing:.02em;color:var(--ink);white-space:nowrap;
}
.entrance .price-tag strong .unit{font-family:var(--font-body);font-size:12px;font-weight:500;margin-left:3px;color:var(--gold-text)}
.entrance .price-tag .ps{font-size:11.5px;letter-spacing:.03em;color:var(--gold-text)}
.entrance .go{
  display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.1em;
  color:var(--ink);margin-top:18px;padding-top:16px;border-top:1px solid var(--hair);
}
.entrance .go .arrow{transition:transform .24s ease}
.entrance:hover .go .arrow{transform:translateX(5px)}
@media (max-width:880px){
  .entrance-grid{grid-template-columns:1fr}
  .entrance p{min-height:0}
}

/* ---------------- section ---------------- */
.section{padding:clamp(46px,6vw,92px) 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-bottom:clamp(26px,3.4vw,48px)}
.section-head .lead{max-width:44ch}
.section-head p{margin:0;font-size:12.5px;line-height:2.1}
/* 「入口は、ふたつ。」のリードは、見出しに負けない大きさで */
.section-head .entrance-lead{
  font-family:var(--font-hero);
  font-size:clamp(17px,1.95vw,25px)!important;
  line-height:1.9!important;
  letter-spacing:.06em;
  font-weight:500;
  max-width:620px;
  color:var(--ink);
  opacity:1;
  border-left:3px solid var(--terra);
  padding-left:22px;
}
.section-head .entrance-lead b{font-weight:700;color:var(--terra);letter-spacing:.08em}
@media (max-width:760px){
  .section-head .entrance-lead{
    font-size:16px!important;line-height:1.95!important;letter-spacing:.03em;
    padding-left:14px;border-left-width:2px;max-width:none;
  }
  .section-head .entrance-lead br{display:none}
}
.section-head .entrance-lead br{display:block}
.bg-teal{background:var(--teal);color:rgba(251,246,240,.92)}
.bg-teal h2.section,.bg-teal h3,.bg-teal .hero-type{color:var(--paper)}
.bg-teal .eyebrow{color:var(--gold-soft)}
.bg-teal .lede,.bg-teal .small,.bg-teal .feature-row p{color:rgba(251,246,240,.82)}
.bg-coral{background:var(--peach);color:var(--body)}
.bg-yellow{background:var(--gold-soft);color:var(--ink)}
.bg-pink{background:var(--peach);color:var(--body)}
.bg-peach{background:var(--peach);color:var(--body)}
.bg-ink{background:#241C14;color:rgba(251,246,240,.9)}
.bg-ink h2.section,.bg-ink h3{color:var(--paper)}
.bg-ink .eyebrow{color:var(--gold-soft)}
.bg-sage{background:var(--sage-pale);color:var(--body)}

/* ---------------- スクール：特徴（左右の役割分離） ---------------- */
.fs-grid{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(30px,4.4vw,64px);align-items:stretch;
}
.fs-left{
  display:grid;grid-template-rows:auto 1fr;align-content:start;
  gap:clamp(20px,2.6vw,34px);
}
.fs-body{align-self:start;padding-bottom:clamp(4px,1vw,12px)}
.fs-head{display:block}
.fs-eyebrow{
  display:block;font-family:var(--font-accent);font-size:11px;letter-spacing:.24em;
  color:var(--gold-text);margin:0 0 clamp(12px,1.4vw,16px);
}
.fs-title{
  font-size:clamp(23px,2.7vw,34px);line-height:1.62;letter-spacing:.05em;
  margin:0;padding:0 !important;
}
.fs-title::after{
  content:"";display:block;width:44px;height:1px;background:var(--gold-soft);
  margin-top:clamp(14px,1.8vw,20px);
}
.fs-body{margin:0;max-width:35em}
.fs-body p{
  margin:0 0 1.05em;font-size:clamp(13px,1.05vw,13.5px);line-height:2.15;
  letter-spacing:.02em;color:var(--body);
}
.fs-body p:last-child{margin-bottom:0}
.fs-body .fs-em{color:var(--ink)}
.fs-body b{font-weight:700;color:var(--ink)}
.fs-body .fs-em{
  padding-left:14px;border-left:2px solid var(--gold-soft);color:var(--ink);
  font-size:clamp(13.5px,1.15vw,14.5px) !important;line-height:2.05;
}

.fs-panel{
  border:1px solid var(--hair);background:#fff;
  padding:clamp(4px,.8vw,10px) clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;justify-content:space-between;
  align-self:stretch;position:relative;z-index:0;
}
.fs-item{
  display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;
  padding:clamp(14px,1.6vw,18px) 0;
  border-top:1px solid var(--hair-soft);
}
.fs-item:first-child{border-top:1px solid var(--hair-soft)}
.fs-item:last-child{border-bottom:0}
.fs-no{
  font-family:var(--font-accent);font-size:10.5px;letter-spacing:.1em;
  color:var(--gold-text);padding-top:2px;
}
.fs-t{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(14px,1.25vw,16px);letter-spacing:.05em;color:var(--ink);line-height:1.6;
}
.fs-d{
  margin:4px 0 0;font-size:clamp(11.5px,1vw,12.5px);line-height:1.95;
  letter-spacing:.02em;color:var(--body);
}
@media (max-width:900px){
  .fs-grid{grid-template-columns:1fr;gap:26px}
  .fs-left{gap:22px}
  .fs-body{max-width:none}
  .fs-panel{padding:0 20px}
}

/* ---------------- 個人鑑定：結びの予約 ---------------- */
.reading-close{
  display:grid;grid-template-columns:1fr 1.02fr;
  gap:clamp(28px,4.6vw,68px);align-items:center;
}
.rc-title{font-size:clamp(24px,3vw,36px);line-height:1.7;letter-spacing:.05em;margin-bottom:0}
.rc-title::after{
  content:"";display:block;width:44px;height:1px;background:var(--gold-soft);
  margin-top:clamp(18px,2.2vw,26px);
}
.rc-body{margin-top:clamp(20px,2.4vw,26px);max-width:430px}
.rc-body p{margin:0 0 1.15em;font-size:13px;line-height:2.15;letter-spacing:.02em;color:var(--body)}
.rc-body p:last-child{margin-bottom:0;color:var(--ink)}
.rc-btn{margin-top:26px}
.rc-note{display:block;margin-top:14px;opacity:.62;line-height:1.95;max-width:420px}

.rc-card{background:#fff}
.rc-themes{padding:clamp(20px,2.4vw,28px) clamp(18px,2.2vw,24px) clamp(16px,2vw,20px);border-top:1px solid var(--hair-soft)}
.rc-themes-title{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(16px,1.7vw,20px);letter-spacing:.04em;color:var(--ink);margin:0;
}
.rc-themes-lead{margin:10px 0 0;font-size:11.5px;line-height:2;color:var(--body);opacity:.85}
.rp-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:11px}
.rp-list li{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:baseline}
.rp-no{
  font-family:var(--font-accent);font-size:11px;letter-spacing:.08em;
  color:var(--gold-text);padding-top:2px;
}
.rp-txt{display:flex;flex-direction:column;gap:2px}
.rp-txt b{font-weight:500;font-size:12.5px;letter-spacing:.03em;color:var(--ink);line-height:1.65}
.rp-txt span{font-size:11px;line-height:1.8;color:var(--body);opacity:.78}

@media (max-width:900px){
  .reading-close{grid-template-columns:1fr;gap:30px;align-items:start}
  .rc-body{max-width:none}
}

.price-stamp{
  width:clamp(124px,12vw,148px);height:clamp(124px,12vw,148px);
  margin:clamp(26px,3.2vw,38px) 0 8px;border-radius:50%;
  background:var(--terra);color:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;transform:rotate(-8deg);position:relative;text-align:center;
  box-shadow:0 8px 20px -10px color-mix(in srgb, var(--terra) 70%, transparent);
}
.price-stamp::before{
  content:"";position:absolute;inset:7px;border-radius:50%;
  border:1px dashed color-mix(in srgb, var(--paper) 60%, transparent);
}
.price-stamp span{position:relative;z-index:1;display:block}
.price-stamp .ps-year{
  font-size:10px;letter-spacing:.22em;opacity:.9;line-height:1;
  padding-left:.22em;
}
.price-stamp .ps-num{
  font-family:var(--font-body);font-size:clamp(32px,3.6vw,42px);font-weight:700;
  letter-spacing:.01em;line-height:1.05;font-variant-numeric:lining-nums;
  margin-top:5px;
}
.price-stamp .ps-txt{
  font-family:var(--font-hero);font-size:12.5px;letter-spacing:.1em;
  line-height:1;margin-top:3px;
}
.price-stamp .ps-deadline{
  font-size:10px;letter-spacing:.16em;opacity:.82;margin-top:7px;line-height:1;
}
@media (max-width:800px){
  .price-stamp{margin-top:20px}
}

/* ---------------- 3つの柱 ---------------- */
.pill-head{
  padding-bottom:clamp(22px,2.6vw,32px);
  border-bottom:1px solid var(--hair);
}
.pill-head .section{padding:0;margin:0}
.pill-lead{
  margin:clamp(16px,2vw,22px) 0 0;
  max-width:640px;
  font-size:clamp(13px,1.15vw,14.5px);line-height:2.1;letter-spacing:.02em;
  color:var(--body);
  padding-left:clamp(14px,1.6vw,20px);
  border-left:2px solid var(--gold-soft);
}
@media (max-width:980px){
  .pill-lead{font-size:13px;max-width:none}
  .pill-lead br{display:none}
}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px);margin-top:clamp(30px,4vw,48px)}
.pillar{
  border:1px solid var(--hair);background:#fff;
  padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;
}
.pl-no{font-family:var(--font-accent);font-size:11.5px;letter-spacing:.22em;color:var(--gold-text)}
.pl-fig{
  height:clamp(118px,12.6vw,138px);margin:18px 0 0;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}

/* 01 ベン図 */
.venn-svg{display:block;width:100%;max-width:306px;height:auto;overflow:visible}
.venn-svg text{font-family:var(--font-hero);fill:var(--ink)}

/* 02 22枚（テーブルに広げた並び） */
.tablet{position:relative;width:clamp(156px,16.2vw,178px);height:118px;flex:none}
.tc{
  position:absolute;width:30px;height:40px;
  border-radius:1.5px;
  border:1px solid rgba(42,33,24,.28);
  box-shadow:0 1px 1.5px rgba(42,33,24,.12);
}
.tc::after{
  content:'';position:absolute;inset:3px;border:1px solid rgba(42,33,24,.16);border-radius:1px;
}
.tc-t{background:#EFDDC9}
.tc-s{background:#DEE5D8}
.tc-g{background:#F4E8D4}
.tc-b{background:#E9DFEA}
.pc-count{
  font-family:var(--font-body);font-weight:700;align-self:flex-end;
  font-size:clamp(26px,3.2vw,38px);line-height:.9;color:var(--ink);flex:none;
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;
}
.pc-count span{font-size:.36em;font-weight:500;margin-left:3px;letter-spacing:.06em}

/* 03 8つの質問 */
.qgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:100%;max-width:250px}
.qgrid span{
  border:1px solid rgba(42,33,24,.22);border-radius:2px;background:#fff;
  display:grid;place-items:center;height:34px;
  font-family:var(--font-body);font-size:9.5px;letter-spacing:.1em;color:var(--gold-text);
  font-variant-numeric:tabular-nums;
}
.qgrid span:nth-child(4n+1){background:#FCF8F2}
.qgrid span:nth-child(8){background:var(--ink);color:var(--gold-soft);border-color:var(--ink)}

.pl-title{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(16px,1.9vw,21px);line-height:1.6;letter-spacing:.03em;
  margin:18px 0 10px;color:var(--ink);min-height:3.2em;
}
.pl-body{margin:0;font-size:12px;line-height:2;color:var(--body);opacity:.85}
@media (max-width:820px){
  .pillars{grid-template-columns:1fr}
  .pl-title{min-height:0}
}

/* ---------------- decks（旧・未使用） ---------------- */
.deck-head{
  font-family:var(--font-hero);font-weight:400;
  font-size:clamp(24px,3.6vw,46px);line-height:1.62;letter-spacing:.03em;
  margin:16px 0 0;color:var(--ink);text-wrap:balance;
}
.deck-head b{font-weight:500;color:var(--terra);border-bottom:1px solid rgba(196,121,74,.32);padding-bottom:2px}
.deck-sub{
  font-size:clamp(13px,1.3vw,15.5px);letter-spacing:.06em;color:var(--body);
  margin:22px 0 0;opacity:.82;
}
.deck-cols{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--hair-soft);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  margin-top:clamp(36px,5vw,64px);
}
.deck-col{background:var(--paper);padding:clamp(22px,2.6vw,34px) clamp(16px,2vw,28px) clamp(24px,2.8vw,36px)}
.deck-no{font-family:var(--font-accent);font-size:12px;letter-spacing:.2em;color:var(--gold-text)}
.deck-name{font-family:var(--font-hero);font-size:clamp(14px,1.35vw,16.5px);letter-spacing:.1em;margin-top:10px;color:var(--ink)}
.deck-role{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(22px,2.6vw,34px);line-height:1.42;letter-spacing:.02em;
  margin:clamp(16px,2vw,26px) 0 clamp(14px,1.8vw,22px);color:var(--ink);
}
.deck-col p{margin:0;font-size:12.5px;line-height:2;color:var(--body);opacity:.8}
@media (max-width:760px){
  .deck-cols{grid-template-columns:1fr}
  .deck-col{display:grid;grid-template-columns:1fr auto;column-gap:14px;align-items:baseline}
  .deck-col p{grid-column:1 / -1;margin-top:8px}
  .deck-role{text-align:right;margin:0;font-size:22px}
  .deck-name{margin-top:6px}
}

.deck-note{
  margin-top:clamp(26px,3.4vw,44px);padding-left:clamp(16px,2vw,24px);
  border-left:2px solid var(--terra);
}
.deck-note .dn{
  display:block;font-family:var(--font-accent);font-size:clamp(10px,1vw,11.5px);
  letter-spacing:.2em;color:var(--gold-text);margin-bottom:10px;
}
.deck-note p{
  margin:0;font-family:var(--font-hero);font-weight:400;
  font-size:clamp(15px,1.75vw,21px);line-height:1.95;letter-spacing:.04em;
  color:var(--ink);max-width:840px;text-wrap:pretty;
}
@media (max-width:760px){
  .deck-note p{font-size:15px;line-height:1.9}
  .deck-note .pc-br{display:none}
}

/* ---------------- rows ---------------- */
.readings-list{border-top:1px solid var(--hair)}
.reading-row{
  display:grid;grid-template-columns:52px 1fr 1.15fr;gap:clamp(16px,3vw,48px);
  padding:clamp(20px,2.6vw,32px) 0;border-bottom:1px solid var(--hair-soft);align-items:baseline;
}
.reading-row .no{font-family:var(--font-accent);font-size:13px;letter-spacing:.16em;color:var(--gold-text)}
.reading-row h3{font-family:var(--font-hero);font-size:clamp(17px,1.9vw,23px);letter-spacing:.08em}
.reading-row p{margin:0;font-size:12.5px;line-height:2.05;max-width:48ch}
.swatch-line{display:flex;gap:4px;margin-top:12px}
.swatch-line i{display:block;width:22px;height:3px}
@media (max-width:720px){
  .reading-row{grid-template-columns:1fr;gap:8px;padding:20px 0}
}

/* ---------------- full-bleed image band ---------------- */
.band{position:relative;overflow:hidden}
.band img{width:100%;height:clamp(220px,34vw,440px);object-fit:cover;object-position:center 44%}
.band .band-cap{
  position:absolute;left:0;right:0;bottom:0;padding:clamp(16px,3vw,32px) 0;
  background:linear-gradient(to top, rgba(36,28,20,.5), rgba(36,28,20,0));
  color:#FBF6F0;
}
.band .band-cap .inner{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.band .band-cap .t{font-family:var(--font-hero);font-size:clamp(17px,2.1vw,26px);letter-spacing:.1em;line-height:1.7}
.band .band-cap .s{font-family:var(--font-accent);font-size:11px;letter-spacing:.24em;opacity:.85}

/* ---------------- statement ---------------- */
.statement{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(20px,4vw,64px);align-items:start}
.statement .big{
  font-family:var(--font-hero);font-size:clamp(20px,2.3vw,30px);line-height:2;letter-spacing:.05em;margin:0;
  text-wrap:balance;
}
.statement .big b{font-weight:600;color:var(--gold-soft)}
@media (max-width:820px){.statement{grid-template-columns:1fr}}

/* ---------------- gallery (1点のみ) ---------------- */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,3vw,40px);align-items:center}
.work{position:relative;margin:0}
.work img{width:100%;border:1px solid var(--hair);background:var(--paper-2)}
.work figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:10.5px;letter-spacing:.12em;color:var(--gold-text)}
.work-1{grid-column:1/8}
.work-2{grid-column:8/13;margin-top:0}
.work-3,.work-4{display:none}
.frame-shadow,.frame-shadow-teal,.frame-shadow-yellow{box-shadow:none}
.gallery-note{
  display:flex;gap:12px;margin-top:clamp(26px,4vw,48px);padding-top:16px;
  border-top:1px solid var(--hair-soft);font-size:11px;line-height:1.9;max-width:74ch;color:var(--gold-text);
}
@media (max-width:760px){
  .gallery{display:block}
  .work-2{margin-top:28px}
}

/* ---------------- price ---------------- */
.price-columns{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(26px,4.4vw,64px);align-items:center}
.price-block{border:1px solid var(--hair);background:#fff;color:var(--body)}
.price-block .price-head{color:var(--paper)}
.price-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:14px 22px;background:var(--ink);color:var(--paper);flex-wrap:wrap;
}
.price-head .lbl{font-family:var(--font-hero);font-size:13px;letter-spacing:.1em;color:var(--paper)}
.price-head .small{color:var(--gold-soft) !important;opacity:1 !important}
.price-head .lbl{font-family:var(--font-accent);font-size:11px;letter-spacing:.26em;text-transform:uppercase}
.price-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:17px 22px;border-top:1px solid var(--hair-soft)}
.price-row:first-child{border-top:0}
.price-row .name{font-size:14.5px;font-weight:500;letter-spacing:.04em}
.price-row .name small{display:block;font-size:11.5px;letter-spacing:.04em;color:var(--gold-text);margin-top:3px}
.price-row .val{font-family:var(--font-body);font-size:clamp(24px,2.6vw,30px);font-weight:700;letter-spacing:.02em;white-space:nowrap;color:var(--ink);line-height:1.35}
.price-row .val .unit{font-family:var(--font-body);font-size:.46em;font-weight:500;margin-left:4px;color:var(--gold-text);vertical-align:.14em}
/* 「2027年4月以降の価格」は、主価格の一つ下の段に揃える */
.price-row .val.was{font-size:clamp(20px,2.05vw,24px);font-weight:500;color:rgba(42,33,24,.62);letter-spacing:.01em}
.price-row .val.was .unit{color:rgba(168,123,54,.85)}
.price-row.hi{background:var(--peach)}
.price-foot{padding:14px 22px;border-top:1px solid var(--hair-soft);font-size:12px;line-height:1.9;letter-spacing:.03em;color:var(--gold-text)}@media (max-width:800px){.price-columns{grid-template-columns:1fr}}

/* ---------------- facts ---------------- */
.fact-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.fact{padding:20px 26px 22px;border-right:1px solid var(--hair-soft)}
.fact:last-child{border-right:0}
.fact .k{font-family:var(--font-accent);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-text)}
.fact .v{font-family:var(--font-hero);font-size:clamp(17px,1.9vw,23px);margin-top:8px;letter-spacing:.06em;color:var(--ink)}
.fact .s{font-size:10.5px;color:var(--gold-text);margin-top:3px;letter-spacing:.04em}
@media (max-width:720px){
  .fact-list{grid-template-columns:1fr !important}
  .fact{border-right:0;border-top:1px solid var(--hair-soft);padding:16px 18px}
  .fact:first-child{border-top:0}
}

/* ---------------- steps ---------------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}
.step{padding:clamp(22px,2.6vw,30px);border:1px solid var(--hair);background:#fff}
.step:nth-child(2){background:var(--peach);transform:none}
.step:nth-child(3){background:var(--sage-pale);transform:none}
.step .n{font-family:var(--font-accent);font-size:26px;font-weight:400;line-height:1;color:var(--gold-text)}
.step h4{font-family:var(--font-hero);font-size:16px;margin:14px 0 7px;letter-spacing:.06em}
.step p{margin:0;font-size:12px;line-height:1.95}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* ---------------- features (school) ---------------- */
.feature-row{
  display:grid;grid-template-columns:92px 1fr;gap:clamp(14px,2.6vw,34px);
  padding:clamp(18px,2.4vw,28px) 0;border-bottom:1px solid color-mix(in srgb, currentColor 20%, transparent);align-items:baseline;
}
.feature-row .no{font-family:var(--font-accent);font-size:clamp(22px,2.6vw,32px);line-height:1;opacity:.75;white-space:nowrap}
.feature-row h3{font-family:var(--font-hero);font-size:clamp(17px,2vw,24px);letter-spacing:.07em}
.feature-row p{margin:6px 0 0;font-size:12.5px;line-height:2;max-width:54ch}

/* ---------------- outcomes（受講後） ---------------- */
.outcomes{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2vw,26px)}
.oc{
  border:1px solid var(--hair);background:#fff;padding:clamp(22px,2.8vw,34px);
  display:grid;grid-template-columns:auto 1fr;column-gap:clamp(14px,1.8vw,22px);row-gap:8px;align-items:baseline;
}
.oc-n{
  font-family:var(--font-accent);font-size:clamp(22px,2.4vw,30px);line-height:1;
  color:var(--terra);letter-spacing:.04em;
}
.oc h3{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(16px,1.8vw,20px);line-height:1.7;letter-spacing:.05em;color:var(--ink);
}
.oc p{
  margin:0;grid-column:2;font-size:12.5px;line-height:2.05;color:var(--body);max-width:46ch;
}
@media (max-width:820px){.outcomes{grid-template-columns:1fr}}

/* ---------------- recover（費用の考え方） ---------------- */
.recover{display:grid;grid-template-columns:minmax(0,.92fr) 1.12fr;gap:clamp(24px,3.6vw,52px);align-items:start}
.recover h3{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(19px,2.3vw,27px);letter-spacing:.05em;line-height:1.75;
  margin:0;text-wrap:balance;
}
.recover-calc{display:flex;flex-direction:column;margin-top:22px;border-top:1px solid var(--hair)}
.recover-calc>div{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--hair-soft);flex-wrap:wrap;
}
.recover-calc .k{font-size:12px;letter-spacing:.02em;color:var(--gold-text)}
.recover-calc .v{font-family:var(--font-hero);font-size:clamp(14px,1.7vw,17px);letter-spacing:.06em;color:var(--ink);white-space:nowrap}
.recover-calc .v b{font-weight:600;color:var(--terra)}
@media (max-width:820px){.recover{grid-template-columns:1fr}}

/* ---------------- 10の問い ---------------- */
.ten-q{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,80px);align-items:center}
.ten-q-num{
  font-family:var(--font-hero);font-size:clamp(140px,20vw,280px);line-height:.85;
  color:var(--gold-soft);letter-spacing:-.02em;
}
.ten-q-dots{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.ten-q-note{
  margin-top:22px;max-width:560px;padding-top:14px;
  border-top:1px solid rgba(251,246,240,.28);
  font-size:12.5px;letter-spacing:.04em;
  color:rgba(251,246,240,.9);
}
.ten-q-dots span{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(227,201,154,.45);
  display:grid;place-items:center;font-family:var(--font-body);font-size:11px;color:var(--gold-soft);
}
@media (max-width:760px){
  .ten-q{grid-template-columns:1fr;gap:8px}
  .ten-q-num{font-size:120px}
}

/* ---------------- 受講条件 ---------------- */
.terms{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(251,246,240,.2)}
.term{padding:clamp(20px,2.6vw,30px) clamp(16px,2vw,26px);border-bottom:1px solid rgba(251,246,240,.2);border-right:1px solid rgba(251,246,240,.2)}
.term:nth-child(3n){border-right:0}
.term .k{font-family:var(--font-accent);font-size:11px;letter-spacing:.24em;color:var(--gold-soft)}
.term h4{margin:10px 0 6px;font-family:var(--font-hero);font-weight:500;font-size:clamp(16px,1.8vw,20px);letter-spacing:.06em;color:var(--paper)}
.term p{margin:0;font-size:12px;line-height:1.95;color:rgba(251,246,240,.78)}
.term.tbd h4{color:rgba(251,246,240,.55)}
.term.tbd p{color:rgba(251,246,240,.5)}
.term-wide{
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  background:rgba(227,201,154,.14);border-bottom:1px solid rgba(251,246,240,.2);
  padding:clamp(18px,2.2vw,24px) clamp(16px,2vw,26px);
}
.term-wide .k{font-family:var(--font-accent);font-size:11px;letter-spacing:.24em;color:var(--gold-soft)}
.term-wide .t{font-family:var(--font-hero);font-size:clamp(15px,1.7vw,19px);letter-spacing:.05em;color:var(--paper)}
.term-wide .d{font-size:11.5px;color:rgba(251,246,240,.72)}
@media (max-width:820px){
  .terms{grid-template-columns:1fr 1fr}
  .term:nth-child(3n){border-right:1px solid rgba(251,246,240,.2)}
  .term:nth-child(2n){border-right:0}
}
@media (max-width:520px){.terms{grid-template-columns:1fr}.term{border-right:0 !important}}

/* ---------------- 受講生の声 ---------------- */
.voices{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.8vw,20px)}
.voice{
  border:1px dashed var(--peach-2);background:rgba(255,255,255,.6);padding:clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;gap:12px;min-height:230px;
}
.voice .who{display:flex;align-items:center;gap:12px}
.voice .av{width:40px;height:40px;border-radius:50%;background:var(--peach)}
.voice .nm{font-size:12px;color:var(--gold-text);letter-spacing:.06em}
.voice .tag{align-self:flex-start;font-size:10.5px;padding:3px 10px;border-radius:999px;background:var(--peach);color:var(--body)}
.voice .ln{height:9px;background:var(--paper-2);border-radius:2px}
.voice .ln.s{width:62%}
.voice .nm{display:flex;flex-direction:column;gap:1px}
.voice .nm-name{font-size:12.5px;letter-spacing:.06em;color:var(--body)}
.voice .nm-age{font-size:10.5px;color:var(--gold-text);letter-spacing:.04em}
.voice .res{margin-top:auto;padding-top:12px;border-top:1px solid var(--hair-soft);font-size:11px;color:var(--gold-text)}

/* ---------------- FAQ ---------------- */
.faq{border-top:1px solid var(--hair)}
.faq-item{border-bottom:1px solid var(--hair-soft)}
.faq-q{
  width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  background:none;border:0;text-align:left;cursor:pointer;padding:22px 4px;
  font-family:var(--font-body);font-size:14px;line-height:1.7;color:var(--ink);
}
.faq-q .mark{font-family:var(--font-accent);font-size:15px;color:var(--terra);line-height:1}
.faq-q .sign{
  width:26px;height:26px;border:1px solid var(--hair);border-radius:50%;
  display:grid;place-items:center;font-size:12px;color:var(--gold-text);flex:0 0 auto;
  transition:background .2s ease,color .2s ease;
}
.faq-q[aria-expanded="true"] .sign{background:var(--peach);color:var(--ink)}
.faq-a{
  display:grid;grid-template-columns:auto 1fr;gap:14px;
  padding:0 4px 24px;font-size:13px;line-height:2.05;color:var(--body);
}
.faq-a .mark{font-family:var(--font-accent);font-size:15px;color:var(--gold-text);line-height:1.5}
.faq-a p{margin:0;max-width:880px}
.faq-a .tbd{color:var(--gold-text)}
.faq-foot{text-align:center;margin-top:clamp(26px,3.4vw,40px)}
.faq-foot p{margin:0 0 18px;font-size:12.5px;color:var(--body)}
@media (max-width:560px){
  .faq-q{font-size:13px;padding:18px 2px;gap:10px}
  .faq-a{font-size:12.5px;padding-bottom:20px}
}
.voice .q{display:flex;flex-direction:column;gap:7px;margin-top:2px}
.voice .vbody{margin:0;font-size:12px;line-height:2.05;color:var(--body);text-wrap:pretty}
.voice .nm{display:flex;flex-direction:column;line-height:1.5}
.voice .nm-name{font-size:12.5px;letter-spacing:.04em;color:var(--ink)}
.voice .nm-age{font-size:10.5px;letter-spacing:.08em;color:var(--body);opacity:.8}
.voice .qk{font-size:10.5px;letter-spacing:.08em;color:var(--gold-text)}
.voice .ql{display:block;height:8px;border-radius:2px;background:rgba(42,33,24,.07)}
.voice .ql.s{width:58%}
@media (max-width:820px){.voices{grid-template-columns:1fr}}

/* ---------------- 実績の数字 ---------------- */
.media-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.media-stats>div{padding:16px 10px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--hair-soft)}
.media-stats>div:last-child{border-right:0}
.media-stats .n,.media-band .n{font-family:var(--font-body);font-weight:700;font-size:clamp(24px,2.6vw,30px);line-height:1.1;color:var(--ink);white-space:nowrap}
.media-stats .n small,.media-band .n small{font-size:11px;font-weight:500;margin-left:3px;color:var(--gold-text)}
.media-stats .l,.media-band .l{font-size:11px;letter-spacing:.06em;color:var(--body)}
@media (max-width:560px){.media-stats{grid-template-columns:1fr 1fr}.media-stats>div:nth-child(2){border-right:0}.media-stats>div:nth-child(-n+2){border-bottom:1px solid var(--hair-soft)}}

/* ---------------- 著書 ---------------- */
.books{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}
.book{margin:0;border:1px solid var(--hair);background:#fff}
.book-img{aspect-ratio:16/10;overflow:hidden;background:var(--paper-2)}
.book-img img{width:100%;height:100%;object-fit:cover;display:block}
.book figcaption{padding:18px 20px 22px}
.book .tag{display:inline-block;font-size:10.5px;padding:3px 10px;border-radius:999px;background:var(--peach);color:var(--body)}
.book h3{margin:12px 0 4px;font-family:var(--font-hero);font-weight:500;font-size:clamp(16px,1.7vw,19px);letter-spacing:.05em;color:var(--ink)}
.book p{margin:0;font-size:11.5px;color:var(--gold-text)}
.media-band{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(24px,3vw,36px);background:var(--peach)}
.media-band>div{padding:clamp(18px,2.4vw,26px);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border-right:1px solid rgba(42,33,24,.1)}
.media-band>div:last-child{border-right:0}

/* メディア出演の一覧 */
.media-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(26px,3vw,40px);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ml-col{padding:22px 24px 22px 0}
.ml-col+.ml-col{border-left:1px solid var(--hair-soft);padding-left:28px;padding-right:0}
.ml-col h3{margin:0 0 10px;font-family:var(--font-hero);font-weight:600;font-size:15px;letter-spacing:.14em;color:var(--ink)}
.ml-col h3.mt{margin-top:24px}
.ml-col ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.ml-col li{font-size:13px;letter-spacing:.02em;color:var(--body);border:1px solid var(--hair);background:#fff;padding:5px 11px;line-height:1.6}
.ml-col li span{font-size:11.5px;color:var(--gold-text);margin-left:7px;letter-spacing:.04em}
@media (max-width:700px){
  .media-list{grid-template-columns:1fr}
  .ml-col{padding:18px 0}
  .ml-col+.ml-col{border-left:0;border-top:1px solid var(--hair-soft);padding-left:0}
  .ml-col li{font-size:13.5px;padding:7px 12px}
}
@media (max-width:820px){.books{grid-template-columns:1fr}.media-band{grid-template-columns:1fr}.media-band>div{border-right:0;border-bottom:1px solid rgba(42,33,24,.1)}}

/* ---------------- 無料カウンセリング ---------------- */
.counsel{background:var(--terra);color:#fff;text-align:center}
.counsel .eyebrow{color:rgba(255,255,255,.8)}
.counsel h2{margin:16px 0 0;font-family:var(--font-hero);font-weight:500;font-size:clamp(24px,3.4vw,42px);letter-spacing:.06em;line-height:1.6;color:#fff}
.counsel p{margin:18px auto 0;max-width:560px;font-size:13px;line-height:2.1;color:rgba(255,255,255,.92)}
.counsel .only{display:inline-block;margin-top:20px;font-size:11px;letter-spacing:.08em;padding:5px 14px;border:1px solid rgba(255,255,255,.5);border-radius:999px}
.counsel .acts{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}
.counsel .btn-w{background:#fff;color:var(--ink);border-color:#fff}
.counsel .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.counsel .btn-o:hover{background:#fff;color:var(--ink)}

/* ---------------- プロフィールの引用 ---------------- */
.profile-quote{
  margin:clamp(30px,3.4vw,42px) 0 0;padding:clamp(20px,2.2vw,26px) 0 clamp(20px,2.2vw,26px) clamp(18px,2vw,24px);
  border-left:2px solid var(--terra);background:color-mix(in srgb, var(--peach) 46%, transparent);
  font-family:var(--font-hero);font-weight:500;font-size:clamp(15px,1.7vw,19px);line-height:2.15;
  letter-spacing:.05em;color:var(--ink);max-width:640px;margin-left:auto;margin-right:0;
  text-wrap:balance;
}

/* ---------------- about（トップの主宰） ---------------- */.about-grid{display:grid;grid-template-columns:.62fr 1fr;gap:clamp(22px,4vw,60px);align-items:center}
.about-photo{margin:0;border:1px solid var(--hair);overflow:hidden;background:var(--paper-2)}
.about-photo img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover;object-position:center 22%}
.about-facts{display:grid;grid-template-columns:repeat(4,1fr);margin:24px 0 0;border-top:1px solid rgba(42,33,24,.16);border-bottom:1px solid rgba(42,33,24,.16)}
.about-facts>div{padding:14px 8px;border-right:1px solid rgba(42,33,24,.09)}
.about-facts>div:last-child{border-right:0}
.about-facts dt{font-size:10px;letter-spacing:.14em;color:var(--gold-text)}
.about-facts dd{margin:5px 0 0;font-family:var(--font-body);font-weight:700;font-size:clamp(13px,1.5vw,16px);color:var(--ink);letter-spacing:.01em}
@media (max-width:820px){
  .about-grid{grid-template-columns:1fr;gap:24px}
  .about-photo{max-width:280px}
  .about-facts{grid-template-columns:1fr 1fr}
  .about-facts>div:nth-child(2){border-right:0}
  .about-facts>div:nth-child(-n+2){border-bottom:1px solid rgba(42,33,24,.09)}
}

/* ---------------- 鑑定書（22P）---------------- */
.bonus-bar{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--paper-2)}
/* ---------------- bonus band（22P鑑定書） ---------------- */
.bonus-band{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--paper-2)}
.bonus-inner{
  display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,3.4vw,52px);
  align-items:center;padding-top:clamp(24px,3.2vw,40px);padding-bottom:clamp(24px,3.2vw,40px);
}
.bonus-figure{display:flex;align-items:baseline;gap:6px;flex:none}
.bf-num{
  font-family:var(--font-body);font-weight:900;font-size:clamp(58px,7.4vw,104px);
  line-height:.82;letter-spacing:-.04em;color:var(--terra);
}
.bf-unit{font-family:var(--font-hero);font-size:clamp(12px,1.3vw,15px);letter-spacing:.14em;color:var(--terra)}
.bf-tag{
  display:inline-block;font-size:10px;letter-spacing:.18em;padding:4px 10px;
  border:1px solid var(--gold);color:var(--gold-text);margin-bottom:12px;
}
.bf-title{
  font-family:var(--font-hero);font-weight:500;font-size:clamp(20px,2.5vw,31px);
  line-height:1.5;letter-spacing:.04em;margin:0 0 10px;color:var(--ink);
}
.bf-desc{font-size:12.5px;line-height:2.05;margin:0;color:var(--body);max-width:620px}
.bf-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px}
.bf-meta span{font-size:10.5px;letter-spacing:.08em;color:var(--gold-text);position:relative;padding-left:12px}
.bf-meta span::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;border-radius:50%;background:var(--terra);opacity:.6}
.bonus-side{display:flex;flex-direction:column;align-items:center;gap:12px;flex:none}
.bonus-side img{
  width:clamp(72px,8.5vw,112px);display:block;border:1px solid var(--hair);
  box-shadow:0 10px 24px rgba(42,33,24,.16);transform:rotate(-2deg);
}
.bf-link{
  font-size:12.5px;letter-spacing:.1em;color:var(--terra);text-decoration:none;
  border-bottom:1px solid rgba(196,121,74,.4);padding:10px 0;white-space:nowrap;display:inline-block;
}
.bf-link:hover{border-color:var(--terra)}
@media (max-width:820px){
  .bonus-inner{grid-template-columns:auto 1fr;gap:16px 18px}
  .bonus-side{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center;border-top:1px solid var(--hair-soft);padding-top:14px}
  .bf-desc{font-size:12px}
}

.hero-bonus{display:flex;align-items:center;gap:14px;margin-top:22px;border:1px solid var(--gold);background:rgba(255,255,255,.5);padding:12px 18px;max-width:510px}
.hero-bonus .num{font-family:var(--font-body);font-weight:900;font-size:30px;line-height:1;color:var(--terra);letter-spacing:-.02em}
.hero-bonus .num span{font-size:13px;margin-left:1px}
.hero-bonus>span:last-child{font-size:11.5px;line-height:1.85;letter-spacing:.02em}
.hero-bonus b{font-weight:700}

.report{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(22px,3.6vw,54px);align-items:center;margin-top:clamp(26px,3.4vw,44px);margin-bottom:clamp(30px,4vw,56px)}
.report-copy h3{font-family:var(--font-hero);font-size:clamp(24px,3vw,36px);line-height:1.55;margin:10px 0 16px;letter-spacing:.04em}
.rp-num{font-family:var(--font-body);font-weight:900;font-size:1.45em;color:var(--terra);letter-spacing:-.02em;margin:0 2px}
.report-toc{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--hair)}
.report-toc li{display:flex;gap:14px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--hair-soft);font-size:11.5px;letter-spacing:.02em}
.report-toc li span{font-family:var(--font-body);font-weight:700;font-size:10px;color:var(--gold-text);min-width:44px;letter-spacing:.08em}

.report-shots{position:relative;padding-bottom:14px;max-width:520px;justify-self:end;width:100%}
.rp-cover{margin:0;position:relative}
.rp-cover img{width:100%;display:block;border:1px solid var(--hair);box-shadow:0 14px 34px rgba(42,33,24,.14)}
.rp-cover figcaption{
  position:absolute;top:12px;left:12px;margin:0;font-size:9.5px;letter-spacing:.16em;
  color:var(--ink);background:rgba(244,237,224,.94);padding:4px 9px;border:1px solid var(--hair);
}
.rp-spread{margin:0;position:absolute;right:-7%;bottom:-20%;width:56%;background:#fff;padding:8px;border:1px solid var(--hair);box-shadow:0 18px 40px rgba(42,33,24,.18);transform:rotate(-1.2deg)}
.rp-spread img{width:100%;display:block}
.rp-spread figcaption{font-size:9.5px;letter-spacing:.12em;color:var(--gold-text);margin-top:6px}
@media (max-width:860px){
  .report{grid-template-columns:1fr;gap:34px}
  .rp-spread{position:static;width:auto;transform:none;margin-top:14px}
  .hero-bonus{max-width:none}
}

/* ---------------- ご予約フォーム ---------------- */
.booking-head{padding-bottom:clamp(18px,2.4vw,30px)}
.booking-top{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(24px,4vw,64px);align-items:end}
.bk-chip{
  display:inline-block;font-size:11px;letter-spacing:.1em;padding:5px 14px;
  border:1px solid var(--gold);color:var(--gold-text);border-radius:999px;
}
.bk-title{
  font-family:var(--font-hero);font-weight:500;font-size:clamp(30px,4.2vw,52px);
  line-height:1.42;letter-spacing:.03em;margin:20px 0 0;color:var(--ink);
}
.bk-lede{font-size:13px;line-height:2.15;margin:22px 0 0;max-width:560px;color:var(--body)}
.bk-aside{border-top:1px solid var(--hair);padding-top:16px}
.bk-aside-row{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--hair-soft)}
.bk-aside-row span{font-size:11px;letter-spacing:.1em;color:var(--gold-text)}
.bk-aside-row b{font-family:var(--font-hero);font-weight:500;font-size:14px;line-height:1.6;color:var(--ink);letter-spacing:.03em}
.bk-aside-row .u{font-family:var(--font-body);font-size:10.5px;color:var(--body);opacity:.8;margin-left:2px}
.bk-aside-note{font-size:11px;line-height:1.95;color:var(--body);opacity:.78;margin:14px 0 0}

.booking-body{padding-top:0}
.bf{max-width:820px}
.bf-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,30px)}
.bf-field{margin-bottom:clamp(20px,2.4vw,28px);min-width:0}
.bf-field>label,.bf-field>label:first-child{
  display:block;font-size:12.5px;letter-spacing:.06em;color:var(--ink);
  margin-bottom:9px;font-weight:500;
}
.bf-field .req,.bf-field .opt{
  font-size:9.5px;letter-spacing:.08em;margin-left:8px;padding:2px 7px;
  border-radius:2px;vertical-align:1px;
}
.bf-field .req{background:rgba(196,121,74,.12);color:#9A5222;border:1px solid rgba(196,121,74,.35)}
.bf-field .opt{background:transparent;color:var(--gold-text);border:1px solid var(--hair)}
.bf-field input[type="text"],.bf-field input[type="tel"],.bf-field input[type="email"],
.bf-field input[type="date"],.bf-field input[type="time"],.bf-field textarea,.bf-field select{
  width:100%;font-family:var(--font-body);font-size:14px;color:var(--ink);
  background:#fff;border:1px solid var(--hair);border-radius:0;
  padding:13px 14px;line-height:1.5;appearance:none;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.bf-field input::placeholder,.bf-field textarea::placeholder{color:#A99A88}
.bf-field input:focus,.bf-field textarea:focus,.bf-field select:focus{
  outline:none;border-color:var(--terra);box-shadow:0 0 0 3px rgba(196,121,74,.13);
}
.bf-field input:disabled{background:var(--paper-2);color:#A99A88}
.bf-field textarea{resize:vertical;min-height:104px;line-height:1.9}
.bf-select{position:relative}
.bf-select::after{
  content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;
  border-right:1px solid var(--body);border-bottom:1px solid var(--body);
  transform:translateY(-70%) rotate(45deg);pointer-events:none;
}
.bf-hint{font-size:10.5px;line-height:1.8;color:var(--body);opacity:.62;margin:7px 0 0}
.bf-err{font-size:11px;line-height:1.7;color:#B03A1A;margin:7px 0 0}
.bf-field.has-err input,.bf-field.has-err textarea,.bf-field.has-err select{border-color:#C4532A;background:rgba(196,83,42,.03)}
.bf-check{display:flex;align-items:flex-start;gap:9px;margin-top:10px;cursor:pointer;font-size:11.5px;line-height:1.75;color:var(--body)}
.bf-check input[type="checkbox"]{
  width:16px;height:16px;flex:none;margin:2px 0 0;accent-color:var(--terra);cursor:pointer;
}
.bf-consent{margin-top:6px;padding:18px 20px;border:1px solid var(--hair);background:var(--paper-2)}
.bf-consent .bf-check{margin-top:0;font-size:12px}
.bf-consent.has-err{border-color:#C4532A;background:rgba(196,83,42,.04)}
.bf-actions{margin-top:clamp(24px,3vw,34px);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.bf-submit{padding-top:15px !important;padding-bottom:15px !important;min-width:280px;justify-content:center}
.bf-alt{margin-top:12px;padding-top:12px;border-top:1px dashed var(--hair)}
.bf-alt a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:10px 0;min-height:44px;line-height:24px}
.bf-foot{font-size:11px;line-height:1.9;color:var(--body);opacity:.7;margin:0}

.bf-confirm{max-width:760px}
.bfc-title{font-family:var(--font-hero);font-weight:500;font-size:clamp(22px,2.8vw,30px);letter-spacing:.04em;margin:0 0 26px;color:var(--ink)}
.bfc-list{margin:0;border-top:1px solid var(--hair)}
.bfc-list>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--hair-soft);align-items:baseline}
.bfc-list dt{font-size:11.5px;letter-spacing:.06em;color:var(--gold-text)}
.bfc-list dd{margin:0;font-size:13.5px;line-height:1.85;color:var(--ink);word-break:break-word}
.bfc-list dd.pre{white-space:pre-wrap;font-size:13px;line-height:1.95}
.bfc-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 14px}

.bf-done{max-width:680px}
.bfd-mark{
  width:52px;height:52px;border-radius:50%;border:1px solid var(--terra);
  display:grid;place-items:center;color:var(--terra);font-size:20px;margin-bottom:24px;
}
.bfd-title{font-family:var(--font-hero);font-weight:500;font-size:clamp(24px,3.2vw,36px);line-height:1.55;letter-spacing:.03em;margin:0 0 20px;color:var(--ink)}
.bfd-text{font-size:13px;line-height:2.1;color:var(--body);margin:0 0 28px}
.bfd-box{border:1px solid var(--hair);background:var(--paper-2);padding:24px 26px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.bfd-box-t{font-size:11.5px;line-height:1.9;color:var(--body);margin:0;opacity:.82}
.bfd-mail{font-size:12px;letter-spacing:.02em;color:var(--gold-text);margin:0}
.bf-back{margin-top:22px;background:none;border:0;border-bottom:1px solid var(--hair);padding:0 0 3px;font-family:var(--font-body);font-size:11.5px;color:var(--body);cursor:pointer}
.bf-back:hover{border-color:var(--terra);color:var(--terra)}

@media (max-width:860px){
  .booking-top{grid-template-columns:1fr;align-items:start;gap:30px}
  .bf-row{grid-template-columns:1fr;gap:0}
  .bfc-list>div{grid-template-columns:110px 1fr;gap:12px}
  .bf-submit{min-width:0;width:100%}
}
@media (max-width:520px){
  .bfc-list>div{grid-template-columns:1fr;gap:4px}
}

/* ---------------- Zoomのイラスト ---------------- */
.zoom-shot{
  margin:clamp(30px,4vw,52px) 0 0;overflow:hidden;
  border:1px solid var(--hair);background:var(--paper-2);
}
.zoom-shot img{
  display:block;width:100%;height:auto;aspect-ratio:16/9;
  object-fit:cover;object-position:center 32%;
}
.zoom-shot.school{margin:0 0 clamp(30px,4vw,52px)}
.zoom-shot.school img{aspect-ratio:16/9;object-position:center 30%}
/* スクール：本文と図を分ける独立ブロック */
.school-figure{
  display:block;clear:both;position:relative;z-index:0;
  margin:clamp(56px,6vw,80px) 0 0;
  overflow:hidden;border:1px solid var(--hair);background:var(--paper-2);
}
.school-figure img{
  display:block;width:100%;height:auto;aspect-ratio:16/9;
  object-fit:cover;object-position:center 42%;
}
@media (max-width:760px){
  .zoom-shot img{aspect-ratio:4/3;object-position:center 40%}
  .zoom-shot.school img{aspect-ratio:16/10}
}

/* 長文の声 */
.voices-long{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--hair)}
.voice-long{
  display:grid;grid-template-columns:230px 1fr;gap:clamp(20px,4vw,56px);
  margin:0;padding:clamp(26px,3.4vw,44px) 0;border-bottom:1px solid var(--hair);
}
.vl-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.vl-meta .av{width:44px;height:44px;border-radius:50%;background:var(--peach);margin-bottom:4px}
.vl-meta .nm{font-size:13px;color:var(--ink);letter-spacing:.04em}
.vl-tag{
  font-size:10.5px;letter-spacing:.08em;padding:3px 12px;border-radius:999px;
  background:var(--peach);color:var(--body);
}
.vl-date{font-size:10.5px;letter-spacing:.1em;color:var(--gold-text);opacity:.85}
.vl-sub{font-size:10.5px;letter-spacing:.08em;color:var(--body);opacity:.75;margin-top:-4px}
.vl-res{
  margin-top:18px;padding-top:14px;border-top:1px solid var(--hair-soft);
  font-size:12px;letter-spacing:.03em;color:var(--gold-text);
}
.vl-res::before{content:"受講後の変化　";font-size:10px;letter-spacing:.12em;opacity:.8}
.vl-body{margin:0;max-width:760px}
.vl-body p{margin:0 0 1.05em;font-size:13px;line-height:2.15;color:var(--body);text-wrap:pretty}
.vl-body p:last-child{margin-bottom:0}
.vl-body p:first-child::first-letter{
  font-family:var(--font-hero);font-size:1.7em;line-height:1;color:var(--terra);
  margin-right:.06em;
}
@media (max-width:820px){
  .voice-long{grid-template-columns:1fr;gap:16px}
  .vl-meta{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px}
  .vl-meta .av{width:34px;height:34px;margin:0}
}

/* ---------------- キャンペーン ---------------- */
.campaign{
  background:var(--coral);color:var(--paper);
  padding:clamp(34px,4.6vw,64px) 0 clamp(34px,4.6vw,60px);
  border-bottom:1px solid rgba(42,33,24,.2);
}
.camp-head{display:block}
.camp-period{
  display:inline-block;font-size:11px;letter-spacing:.14em;
  border:1px solid rgba(251,246,240,.5);padding:4px 12px;border-radius:999px;
  opacity:.92;
}
.camp-title{
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(26px,3.6vw,40px);line-height:1.45;letter-spacing:.03em;
  margin:18px 0 0;color:var(--paper);max-width:22ch;
}
.camp-title em{
  font-style:normal;color:var(--paper);font-weight:700;
  letter-spacing:.01em;
}
.camp-sub{
  font-family:var(--font-body);font-size:clamp(12.5px,1.15vw,14px);
  margin:20px 0 0;letter-spacing:.03em;line-height:2.1;font-weight:400;
  color:rgba(251,246,240,.9);max-width:none;
  padding-top:18px;border-top:1px solid rgba(251,246,240,.28);
}
.camp-seal{display:none}

.camp-table{margin-top:clamp(24px,3.4vw,40px);border-top:1px solid rgba(251,246,240,.4)}
.ct-row{
  display:grid;grid-template-columns:1.05fr 1.9fr .7fr .9fr;gap:14px;align-items:baseline;
  padding:18px 2px;border-bottom:1px solid rgba(251,246,240,.28);
  font-size:clamp(14px,1.55vw,17px);
}
.ct-form{font-size:.92em;letter-spacing:.02em;line-height:1.75;font-weight:500}
.ct-unit{
  text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.02em;
  font-size:clamp(16px,1.8vw,20px);font-weight:700;
}
.ct-unit i{font-style:normal;font-size:.66em;font-weight:500;margin-left:2px}
.ct-was{
  display:block;font-size:11.5px;letter-spacing:.06em;font-weight:400;
  opacity:.7;text-decoration:line-through;margin-top:4px;
}
.ct-head{font-size:12px;letter-spacing:.14em;opacity:.85;padding-bottom:10px;font-weight:700}
.ct-head .ct-new,.ct-head .ct-unit{text-align:right}
.ct-head span{font-weight:400}
.ct-name{letter-spacing:.04em;font-weight:700;font-family:var(--font-hero);font-size:1.06em}
.ct-old{
  text-align:right;text-decoration:line-through;opacity:.6;
  font-variant-numeric:tabular-nums;letter-spacing:.03em;
}
.ct-old i{font-style:normal;font-size:.82em;margin-left:1px}
.ct-new{
  text-align:right;font-weight:700;font-family:var(--font-body);
  font-size:clamp(17px,2.3vw,26px);letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
}
.ct-new i{font-style:normal;font-size:.62em;font-weight:500;margin-left:2px}
.ct-new{white-space:nowrap}
.ct-fee .ct-new{color:var(--ink);background:var(--paper);padding:2px 8px;justify-self:end}
.camp-foot{
  margin-top:22px;display:flex;justify-content:space-between;align-items:flex-start;
  gap:20px 32px;flex-wrap:wrap;
}
.camp-foot p{
  margin:0;flex:1 1 420px;max-width:660px;font-size:12.5px;line-height:2.05;
  color:rgba(251,246,240,.92);
}
.camp-foot .btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.campaign + .section{border-top:0}
@media (max-width:820px){
  .ct-row{grid-template-columns:1fr auto;gap:4px 10px;row-gap:6px;padding:14px 2px}
  .ct-name{font-size:14px;font-weight:700}
  .ct-form{grid-column:1;grid-row:2;opacity:.8;font-size:11.5px}
  .ct-unit{grid-column:2;grid-row:2;font-size:12px;font-weight:400;opacity:.8}
  .ct-new{grid-column:2;grid-row:1;font-size:19px}
  .ct-was{margin-top:2px}
  .ct-head{display:none}
}
@media (max-width:760px){
  .camp-seal{width:84px;height:84px}
  .camp-foot .btn-primary{width:100%;justify-content:center}
}

/* ---------------- 料金バンド（1行料金でも間延びしない） ---------------- */
.price-band{
  border:1px solid rgba(251,246,240,.28);background:rgba(251,246,240,.045);
}
.pb-main{
  display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;
  padding:clamp(20px,2.6vw,30px) clamp(20px,3vw,34px);
}
.pb-left{display:flex;flex-direction:column;gap:7px;padding-bottom:6px}
.pb-l{
  font-family:var(--font-accent);font-size:12px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold-soft);
}
.pb-v{
  font-family:var(--font-body);font-weight:700;
  font-size:clamp(44px,7vw,80px);line-height:.94;letter-spacing:.01em;color:var(--paper);
  font-variant-numeric:tabular-nums;
}
.pb-u{font-size:.3em;font-weight:500;margin-left:6px;color:var(--gold-soft);letter-spacing:.04em}
.pb-s{font-size:11.5px;letter-spacing:.06em;color:rgba(251,246,240,.72);align-self:start}
.pb-items{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(251,246,240,.22);
}
.pb-items>div{
  padding:16px clamp(16px,2.4vw,26px);border-right:1px solid rgba(251,246,240,.14);
  display:flex;flex-direction:column;gap:5px;
}
.pb-items>div:last-child{border-right:0}
.pb-k{font-size:10px;letter-spacing:.18em;color:var(--gold-soft)}
.pb-d{font-size:12.5px;line-height:1.8;color:rgba(251,246,240,.94);letter-spacing:.03em}
.pb-foot{
  border-top:1px solid rgba(251,246,240,.22);
  padding:12px clamp(20px,3vw,34px);font-size:10.5px;letter-spacing:.05em;
  color:rgba(251,246,240,.6);
}
@media (max-width:720px){
  .pb-main{flex-direction:column;align-items:flex-start;gap:10px}
  .pb-v{order:-1;margin-bottom:4px}
  .pb-items{grid-template-columns:1fr}
  .pb-items>div{border-right:0;border-bottom:1px solid rgba(251,246,240,.14);flex-direction:row;gap:14px;align-items:baseline}
  .pb-items>div:last-child{border-bottom:0}
}

/* ヒーローの料金 */
.hero-price{
  display:flex;align-items:baseline;gap:10px 14px;flex-wrap:wrap;
  margin-top:26px;padding:14px 0 14px 18px;border-left:2px solid var(--terra);
}
.hp-name{font-size:11.5px;letter-spacing:.14em;color:var(--gold-text);width:100%}
.bk-camp{
  display:inline-block;margin-left:8px;padding:2px 8px;
  background:var(--terra);color:var(--paper);
  font-size:9.5px;font-weight:700;letter-spacing:.1em;vertical-align:2px;
}
.hp-badge{
  display:inline-block;align-self:center;
  margin-top:2px;padding:3px 10px;
  background:var(--terra);color:var(--paper);
  font-size:10px;font-weight:700;letter-spacing:.14em;line-height:1.6;
  white-space:nowrap;
}
.hp-sub b{font-weight:700;color:var(--terra)}
.hero-lede-strong{margin-top:16px}
.hero-lede-strong b{font-weight:700;color:var(--ink)}
.hp-main{
  font-family:var(--font-body);font-weight:700;font-size:clamp(30px,3.8vw,42px);
  line-height:1;letter-spacing:.01em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.hp-u{font-size:.36em;font-weight:500;margin-left:4px;letter-spacing:.04em}
.hp-sub{font-size:12.5px;letter-spacing:.04em;color:var(--body);opacity:.85}
.hp-sub s{opacity:.6}
@media (max-width:760px){
  .hero-price{padding-left:14px;margin-top:20px}
  .hp-main{font-size:30px}
}

/* ---------------- 読み方の3点（術・カード・問い） ---------------- */
.method{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin-top:clamp(24px,3.4vw,40px);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.method-item{padding:clamp(18px,2.4vw,26px) clamp(14px,2vw,24px);border-right:1px solid var(--hair)}
.method-item:last-child{border-right:0}
.mi-k{font-size:10px;letter-spacing:.2em;color:var(--gold-text);display:block;margin-bottom:12px}
.mi-num{
  font-family:var(--font-body);font-weight:700;font-size:clamp(30px,4vw,44px);
  line-height:1;color:var(--ink);letter-spacing:.01em;font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;height:clamp(46px,5.4vw,58px);
}
.mi-num span{font-size:.4em;font-weight:500;margin-left:4px;letter-spacing:.06em}
.mi-d{margin:12px 0 0;font-size:11.5px;line-height:1.95;color:var(--body);opacity:.86}
.mi-hybrid{position:relative;height:clamp(46px,5.4vw,58px);margin:2px 0 0}
.hy-a,.hy-b{
  position:absolute;top:0;font-family:var(--font-hero);font-size:clamp(12px,1.5vw,15px);
  letter-spacing:.08em;padding:8px 16px;border-radius:999px;white-space:nowrap;line-height:1.2;
}
.hy-a{left:0;background:var(--ink);color:var(--paper);z-index:1}
.hy-b{left:clamp(58px,7.5vw,86px);top:clamp(20px,2.4vw,26px);background:transparent;color:var(--terra);
      border:1px solid var(--terra);z-index:2}
@media (max-width:760px){
  .method{grid-template-columns:1fr}
  .method-item{border-right:0;border-bottom:1px solid var(--hair)}
  .method-item:last-child{border-bottom:0}
  .mi-hybrid{height:52px}
}

/* ---------------- 個人セッション ---------------- */
.session{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4.5vw,72px);align-items:center}
.ss-tag{
  display:inline-block;font-size:10.5px;letter-spacing:.16em;
  padding:4px 14px;border:1px solid rgba(42,33,24,.3);border-radius:999px;color:var(--gold-text);
}
.session-title{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(26px,4.2vw,48px);line-height:1.45;letter-spacing:.02em;
  margin:20px 0 0;color:var(--ink);
}
.ss-lead{
  font-family:var(--font-hero);font-size:clamp(15px,2vw,21px);line-height:2;
  letter-spacing:.03em;color:var(--ink);margin:0 0 20px;
}
.ss-body{
  font-size:13px;line-height:2.15;color:var(--body);margin:0;max-width:620px;
}
@media (max-width:820px){
  .session{grid-template-columns:1fr;gap:22px}
  .pc-br{display:none}
}

/* ---------------- fee note ---------------- */
.fee-note{margin:16px 0 0;font-size:11.5px;line-height:2;color:var(--body);opacity:.8}

/* ---------------- courses ---------------- */
.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.8vw,20px);align-items:stretch}
.course{
  border:1px solid var(--hair);padding:clamp(22px,2.6vw,30px);background:#fff;color:var(--body);
  display:flex;flex-direction:column;gap:9px;
  transition:transform .3s ease,background .3s ease;
}
.course:hover{transform:translateY(-3px)}
.course:nth-child(2){background:var(--ink);color:rgba(251,246,240,.9)}
.course:nth-child(2) h4,.course:nth-child(2) .cval{color:var(--paper)}
.course:nth-child(2) .small{color:rgba(251,246,240,.75)}
.course:nth-child(2) .course-rule{border-top-color:rgba(251,246,240,.28)}
.course:nth-child(2) .cname,.course:nth-child(2) .sess{color:var(--gold-soft)}
.course .cname{font-family:var(--font-accent);font-size:10.5px;letter-spacing:.3em;color:var(--gold-text)}
.course h4{
  font-family:var(--font-hero);font-size:clamp(18px,2vw,23px);letter-spacing:.08em;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.course-count{font-family:var(--font-body);font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--gold-text)}
.course .sess{font-size:12.5px;font-weight:500;letter-spacing:.05em;color:var(--gold-text);line-height:1.7}
.course .course-rule{margin-top:auto;border-top:1px solid color-mix(in srgb, currentColor 22%, transparent);padding-top:14px}
.cprice{
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
}
.cprice .cwas{
  font-size:12.5px;letter-spacing:.04em;opacity:.68;text-decoration:line-through;
  font-variant-numeric:tabular-nums;
}
.cprice .carw{font-size:12px;opacity:.5;line-height:1}
.cnote{margin-top:4px;font-size:11.5px !important;letter-spacing:.02em;line-height:1.9}
.course .cval{font-family:var(--font-num);display:inline-block;font-size:clamp(23px,2.4vw,30px);font-weight:500;letter-spacing:.01em;line-height:1.15;color:var(--ink);white-space:nowrap}
.course .cval .unit{font-family:var(--font-body);font-size:11px;margin-left:4px;opacity:.75}

/* 1回あたり・向いている方・学ぶこと・到達点 */
.course .per{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  border-top:1px solid color-mix(in srgb, currentColor 20%, transparent);
  border-bottom:1px solid color-mix(in srgb, currentColor 12%, transparent);
  padding:10px 0;margin:4px 0 2px;
}
.course .per-l{font-size:9.5px;letter-spacing:.08em;color:var(--gold-text);line-height:1.5}
.course .per-v{font-family:var(--font-num);font-size:20px;font-weight:600;letter-spacing:.02em;line-height:1.2;white-space:nowrap}
.course .per-v span{font-family:var(--font-body);font-size:10.5px;font-weight:500;margin-left:2px}
.course:nth-child(2) .per-l{color:var(--gold-soft)}
.course:nth-child(2) .per-v{color:var(--paper)}

.course .cblk{margin-top:2px}
.course .cblk-l{font-size:10.5px;font-weight:700;letter-spacing:.14em;color:var(--gold-text);display:block;margin-bottom:5px}
.course .cblk p{margin:0;font-size:13px;line-height:1.9;letter-spacing:.01em}
.course:nth-child(2) .cblk-l{color:var(--gold-soft)}
.course .clearn{list-style:none;margin:0;padding:0}
.course .clearn li{
  position:relative;padding-left:15px;font-size:13px;line-height:1.9;letter-spacing:.01em;
}
.course .clearn li::before{
  content:"○";position:absolute;left:0;top:0;width:auto;height:auto;border-radius:0;
  background:none;opacity:.55;font-size:.72em;line-height:2.5;color:var(--terra);
}
.course:nth-child(2) .clearn li::before{background:var(--gold-soft);opacity:.7}
.course .cgoal{
  margin-top:8px;padding:10px 12px;background:rgba(196,121,74,.07);border-left:2px solid var(--terra);
}
.course:nth-child(2) .cgoal{background:rgba(227,201,154,.12);border-left-color:var(--gold-soft)}
.course .cgoal p{margin:0;font-size:13px;line-height:1.9}
.course .cgoal .cblk-l{margin-bottom:3px}
@media (max-width:820px){.courses{grid-template-columns:1fr}}

/* 4コース（2×2） */
.courses.c4{grid-template-columns:repeat(2,1fr)}
.courses.c4 .course:nth-child(2){background:var(--ink);color:rgba(251,246,240,.9)}

/* セルフ（横長・全幅） */
.course-self{
  margin-top:clamp(12px,1.8vw,20px);
  display:grid;grid-template-columns:.9fr 2fr .7fr;gap:clamp(20px,3vw,44px);
  align-items:start;
  border:1px solid var(--hair);background:#fff;color:var(--body);
  padding:clamp(22px,2.6vw,30px);
}
.course-self .cname{font-family:var(--font-accent);font-size:10.5px;letter-spacing:.3em;color:var(--gold-text)}
.course-self h4{
  font-family:var(--font-hero);font-size:clamp(18px,2vw,23px);letter-spacing:.08em;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 0;
}
.course-self .sess{font-size:12.5px;font-weight:500;letter-spacing:.05em;color:var(--gold-text);margin-top:4px;line-height:1.7}
.course-self .cs-body{display:grid;gap:14px}
.course-self .cs-price{
  border-left:1px solid var(--hair-soft);padding-left:clamp(16px,2vw,26px);
  align-self:start;padding-top:2px;
}
.course-self .cs-was{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:11.5px;letter-spacing:.04em;color:var(--body);opacity:.85;
  margin-bottom:6px;
}
.course-self .cs-was span{text-decoration:none}
.course-self .cs-was{text-decoration:none}
.course-self .cs-was .cs-off{
  display:inline-block;padding:2px 7px;
  background:var(--terra);color:var(--paper);
  font-size:9.5px;font-weight:700;letter-spacing:.1em;line-height:1.5;
}
.course-self .cs-was s{text-decoration:line-through;opacity:.7}
.course-self .cs-price .cval{line-height:1.1}
.course-self .cval{font-family:var(--font-num);font-size:clamp(24px,2.5vw,31px);font-weight:500;letter-spacing:.01em;line-height:1.15;color:var(--ink);white-space:nowrap}
.course-self .cval .unit{font-family:var(--font-body);font-size:11px;margin-left:4px;opacity:.75}
.course-self .cblk-l{font-size:10.5px;font-weight:700;letter-spacing:.14em;color:var(--gold-text);display:block;margin-bottom:5px}
@media (max-width:980px){
  .course-self{grid-template-columns:1fr;gap:16px}
  .course-self .cs-price{border-left:0;border-top:1px solid var(--hair-soft);padding-left:0;padding-top:14px}
}
@media (max-width:720px){.courses.c4{grid-template-columns:1fr}}

/* ---------------- なぜ、この価格なのか ---------------- */
.reason{background:var(--paper);border-bottom:1px solid var(--hair)}
.reason-inner{display:block}
.reason-quote{
  margin:clamp(12px,1.6vw,18px) 0 0;
  font-size:clamp(28px,4.2vw,50px);line-height:1.5;letter-spacing:.06em;
  color:var(--ink);
}
.reason-quote::after{
  content:"";display:block;width:64px;height:1px;background:var(--gold-soft);
  margin-top:clamp(18px,2.4vw,26px);
}
.reason .wrap{padding-top:clamp(34px,4.4vw,58px)}
.reason-body{
  margin-top:clamp(26px,3.4vw,40px);
  max-width:720px;
}
.reason-label{
  display:block;font-family:var(--font-accent);
  font-size:clamp(17px,1.8vw,21px);line-height:1.7;letter-spacing:.16em;
  color:var(--gold-text);margin:0;
}
.reason-quote{font-family:var(--font-hero);font-weight:500;}
.reason-body p{margin:0 0 1.1em;font-size:clamp(14px,1.2vw,15.5px);line-height:2.2;letter-spacing:.02em;color:var(--body)}
.reason-lead{
  font-family:var(--font-hero);font-size:clamp(14px,1.25vw,16px)!important;
  color:var(--ink)!important;letter-spacing:.06em!important;margin-bottom:1.2em!important;
}
.reason-close{
  margin-top:clamp(22px,2.8vw,32px);padding-top:clamp(18px,2.2vw,26px);
  border-top:1px solid color-mix(in srgb, var(--ink) 18%, transparent);
}
.reason-close p{margin:0;color:var(--ink);font-size:clamp(14px,1.2vw,15.5px);line-height:2.15}
.reason-sign{
  display:block;margin-top:14px;font-family:var(--font-hero);font-size:12px;
  letter-spacing:.14em;color:var(--gold-text);text-align:right;
}
@media (max-width:860px){
  .reason-quote br{display:none}
  .reason-sign{text-align:left}
}

/* ---------------- bonus ---------------- */
.bonus{
  background:var(--peach);border:1px solid var(--hair);padding:clamp(24px,3.2vw,42px);
  display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(20px,3.2vw,44px);align-items:center;
}
.bonus .seal{
  width:66px;height:66px;border-radius:50%;border:1px solid var(--gold);
  display:grid;place-items:center;font-family:var(--font-hero);font-size:12.5px;
  letter-spacing:.08em;text-align:center;line-height:1.4;background:var(--paper);color:var(--gold-text);
}
.bonus h3{font-family:var(--font-hero);font-size:clamp(18px,2.2vw,27px);line-height:1.8;letter-spacing:.06em}
.bonus p{margin:10px 0 0;font-size:12.5px;line-height:2.05;max-width:46ch}
@media (max-width:760px){.bonus{grid-template-columns:1fr}}

/* ---------------- profile ---------------- */
.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(26px,4.4vw,68px);align-items:start}
.portrait-wrap{position:relative}
.portrait{
  width:100%;aspect-ratio:4/5;border:1px solid var(--hair);background:
  repeating-linear-gradient(-45deg, rgba(42,33,24,.05) 0 1px, transparent 1px 10px), var(--paper-2);
  overflow:hidden;
}
.portrait image-slot{width:100%;height:100%;display:block}
.portrait image-slot::part(ring){border:1px dashed rgba(42,33,24,.35)}
.portrait image-slot::part(empty){color:var(--gold-text);font-family:var(--font-body);font-size:12px}
.portrait-cap{display:flex;justify-content:space-between;margin-top:12px;font-size:10px;letter-spacing:.14em;color:var(--gold-text);gap:8px}
.name-block{font-family:var(--font-hero);font-size:clamp(32px,4.2vw,54px);letter-spacing:.14em;line-height:1.3;color:var(--ink)}
.name-kana{font-family:var(--font-accent);font-size:11.5px;letter-spacing:.34em;color:var(--gold-text);margin-bottom:12px}
.role-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(18px,2vw,24px)}
.role-chips .chip{padding:6px 16px;font-size:11.5px;letter-spacing:.14em}
.profile-text{margin-top:clamp(24px,3vw,34px)}
.profile-text p{
  font-family:var(--font-body);font-size:clamp(13px,1.15vw,14.5px);
  line-height:2.25;margin:0 0 1.5em;max-width:56ch;letter-spacing:.015em;color:var(--body);
}
.profile-text p:last-child{margin-bottom:0;color:var(--ink)}
.temp-mark{
  display:inline-flex;align-items:center;font-size:10px;font-weight:500;letter-spacing:.1em;
  background:var(--peach);color:var(--gold-text);padding:2px 8px;border-radius:2px;vertical-align:middle;margin-left:6px;
}
@media (max-width:820px){.profile-grid{grid-template-columns:1fr}}

/* ---------------- cta band ---------------- */
.cta-band{padding:clamp(46px,6vw,86px) 0;background:#241C14;color:rgba(251,246,240,.9)}
.cta-band .inner{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;flex-wrap:wrap}
.cta-band h2{font-family:var(--font-hero);font-weight:500;font-size:clamp(24px,3.4vw,44px);line-height:1.7;letter-spacing:.08em;color:var(--paper)}
.cta-band .btn{border-color:rgba(251,246,240,.4);color:var(--paper)}
.cta-band .btn:hover{background:var(--paper);color:var(--ink)}
.cta-band .btn-coral{border-color:var(--terra);color:#fff}
.cta-band .btn-coral:hover{background:var(--terra);color:#fff}
.placeholder-note{font-size:10.5px;letter-spacing:.05em;opacity:.55;margin-top:14px;display:block}

/* ---------------- footer ---------------- */
footer{background:var(--paper);border-top:1px solid var(--hair);padding:clamp(40px,5vw,68px) 0 30px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(20px,4vw,52px)}
.foot-mark{display:flex;align-items:center;gap:10px;font-family:var(--font-hero);font-size:23px;letter-spacing:.22em;color:var(--ink)}
.foot-logo{width:38px;height:38px;object-fit:contain;display:block}
.foot-tag{font-size:11.5px;line-height:2.05;color:var(--body);margin-top:12px;max-width:34ch}
.foot-col h5{margin:0 0 14px;font-family:var(--font-body);font-size:11px;letter-spacing:.14em;color:var(--gold-text);font-weight:500}
.foot-col a{display:block;font-size:12px;padding:5px 0;color:var(--body);transition:color .2s ease}
.foot-col a:hover{color:var(--ink)}
.foot-bottom{
  margin-top:clamp(30px,4vw,52px);padding-top:18px;border-top:1px solid var(--hair-soft);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:10px;letter-spacing:.06em;color:var(--gold-text);
}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}}

/* ---------------- notes drawer ---------------- */
.drawer-scrim{
  position:fixed;inset:0;background:rgba(36,28,20,.32);z-index:90;
  opacity:0;pointer-events:none;transition:opacity .26s ease;
}
.drawer-scrim.on{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);z-index:91;
  background:var(--paper);border-left:1px solid var(--hair);
  transform:translateX(101%);transition:transform .34s cubic-bezier(.2,.7,.2,1);
  overflow-y:auto;padding:28px clamp(20px,3vw,38px) 64px;
}
.drawer.on{transform:none}
.drawer h3{font-family:var(--font-hero);font-size:21px;letter-spacing:.1em;margin-bottom:6px}
.drawer h4{
  font-family:var(--font-hero);font-size:13.5px;letter-spacing:.1em;margin:26px 0 8px;
  display:flex;align-items:center;gap:9px;color:var(--ink);padding-bottom:6px;border-bottom:1px solid var(--hair-soft);
}
.drawer h4::before{content:"";width:4px;height:4px;background:var(--gold);border-radius:50%;display:block}
.drawer p,.drawer li{font-size:12px;line-height:2;margin:0 0 8px}
.drawer ul{padding-left:18px;margin:0}
.drawer .close{
  position:sticky;top:0;margin-left:auto;display:block;font-size:11px;letter-spacing:.12em;
  border:1px solid var(--hair);padding:6px 14px;border-radius:999px;background:var(--paper);
  z-index:2;margin-bottom:16px;color:var(--gold-text);
}
.drawer .tag{display:inline-block;font-size:9.5px;letter-spacing:.14em;padding:2px 8px;border:1px solid var(--hair);border-radius:2px;margin-right:6px;color:var(--gold-text)}

/* 見出しの書体切替：ゴシック */
[data-heading="gothic"] .hero-type,
[data-heading="gothic"] h2.section,
[data-heading="gothic"] h3.sub,
[data-heading="gothic"] .entrance h3,
[data-heading="gothic"] .reading-row h3,
[data-heading="gothic"] .course h4,
[data-heading="gothic"] .feature-row h3,
[data-heading="gothic"] .step h4,
[data-heading="gothic"] .name-block,
[data-heading="gothic"] .foot-mark,
[data-heading="gothic"] .band .band-cap .t,
[data-heading="gothic"] .statement .big,
[data-heading="gothic"] .bonus h3,
[data-heading="gothic"] .cta-band h2{
  font-family:var(--font-body);font-weight:500;letter-spacing:.02em;
}
[data-heading="gothic"] .accent{font-family:var(--font-body)}

/* ---------------- misc ---------------- */ */
.page{animation:none}
.hr{height:1px;background:var(--hair);border:0;margin:0}
.center{text-align:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms !important;animation-duration:.01ms !important}}

@media (max-width:900px){
  .reading-hero,.school-intro,.school-cta,.school-hero{grid-template-columns:1fr !important;gap:28px !important}
  .school-hero figure{order:-1}
  .price-three{grid-template-columns:1fr !important}
  .price-three>div{transform:none !important}
}

@media (max-width:560px){
  body{line-height:1.9}
  .wrap,.wrap-narrow{padding-left:18px;padding-right:18px}
  .hero-type{font-size:clamp(27px,8.4vw,38px);letter-spacing:.04em}
  h2.section{font-size:clamp(21px,6.4vw,28px)}
  .chip{font-size:10px;padding:4px 10px}
  .btn{padding:13px 22px;font-size:12px}
  .entrance{padding:24px}
  .price-row{padding:14px 16px}
  .price-head{padding:12px 16px}
  .price-foot{padding:11px 16px}
  .course{padding:20px}
  .bonus{padding:22px}
  .step{padding:20px}
  .fact{padding:14px 16px}
  .feature-row{grid-template-columns:60px 1fr;gap:12px}
  .feature-row .no{font-size:17px}
  .cta-band .inner{gap:24px}
}

/* ================= モバイル（〜560px）の読みやすさと押しやすさ ================= */
@media (max-width:560px){
  /* ヘッダー：1段目にロゴと予約、2段目に4つのメニューを等分に */
  .header-inner{padding-top:16px;row-gap:0;column-gap:0}
  .nav{order:2;width:100%;margin:0;display:flex;gap:0;overflow:visible}
  .nav a{
    flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;
    min-height:44px;font-size:12.5px;letter-spacing:.04em;padding:0 0 8px;
  }
  .nav a::after{left:18%;right:18%;bottom:6px}
  .nav-cta{
    order:1;margin-left:auto;
    display:inline-flex;align-items:center;justify-content:center;min-height:44px;
    padding:0 20px !important;font-size:12.5px;
  }
  .logo-img{width:44px;height:44px}
  .logo-mark{font-size:19px;letter-spacing:.18em}
  .logo-sub{font-size:10.5px}

  /* 12px未満の文字を底上げ（装飾ラベルは除く） */
  .chip{font-size:11.5px;padding:5px 12px}
  .hero-kicker .chip{font-size:11.5px}
  .bf-field .req,.bf-field .opt{font-size:11px;padding:3px 8px}
  .qgrid span{font-size:11px}
  .course .per-l{font-size:11px}
  .course-self .cs-was .cs-off{font-size:11px;padding:3px 8px}
  .bk-camp{font-size:11px;padding:3px 9px}
  .rp-cover figcaption,.rp-spread figcaption{font-size:11px}
  .pc-count span{font-size:.46em}
  .foot-col a{min-height:44px;display:flex;align-items:center;font-size:13px}
  .foot-bottom{font-size:11px;line-height:1.9}

  /* 本文・リードの下限 */
  .lede{font-size:14.5px;line-height:2.05}
  .small{font-size:12px;line-height:1.95}

  /* 押しやすいボタン */
  .btn{min-height:52px;padding:14px 24px;font-size:12.5px}
  .hero-actions .btn{min-height:56px;width:100%}
  .hero-actions{gap:10px}
  .entrance .go{font-size:12.5px;min-height:36px}
  .btn-page{padding:14px 20px}

  /* 余白を詰めず、まとまりを作る */
  .section{padding:clamp(38px,9vw,52px) 0}
  h2.section{line-height:1.55}
  .wrap{padding-left:20px;padding-right:20px}

  /* 価格の数字ははっきり大きく */
  .cval,.course .cval,.course-self .cval{font-size:26px}
  .hp-main{font-size:32px}
  .ct-new{font-size:20px}

  /* カードの内側を窮屈にしない */
  .entrance{padding:26px 22px}
  .course{padding:22px 20px}
  .fs-panel{padding:2px 18px}
  .fs-item{padding:15px 0}
  .fs-d{font-size:12.5px;line-height:1.95}

  /* 小さなラベル（※「枚」は数字に添える単位なので例外） */
  .entrance .spec dt,.spec dt{font-size:11.5px}
  .fact .k,.about-facts dt,.mi-k,.ss-tag,.hp-badge{font-size:11.5px}
  .pc-count span,.hp-u,.pb-u{font-size:11px !important;letter-spacing:.04em}
  .entrance .spec dt{font-size:11.5px}
  .entrance .price-tag .ps{font-size:11.5px}
  .sec-label,.eyebrow{font-size:10.5px}
  /* 入会特典の帯と入口カードの小さなラベル */
  .hb-tags span,.hb-tag,.band-cap .s,.entrance .kind,.entrance .idx,
  .badge-22 .l,.b22-label,.b22-sub{font-size:11.5px !important;letter-spacing:.08em}
  .band-cap .l{font-size:11.5px !important}
  .bp-kicker,.bf-tag,.bf-meta span{font-size:11.5px !important;letter-spacing:.06em}
  .pb-k,.pb-foot,.bk-aside-note{font-size:11.5px}
  .price-stamp .ps-year,.price-stamp .ps-deadline{font-size:11px;letter-spacing:.06em}
  .price-stamp .ps-day{font-size:44px}
  .ss-tag,.pb-k{letter-spacing:.1em}
  .course .cname,.course-self .cname{font-size:11.5px}
  .price-head .lbl,.price-foot{font-size:11.5px}
  .vl-tag,.vl-date,.vl-sub{font-size:11.5px}
  .camp-period{font-size:12px}
  .eyebrow{font-size:10.5px;letter-spacing:.2em}

  /* 表・グリッドの折り返し */
  .bk-aside-row{font-size:12px}
  .price-row{padding:15px 16px}
  .vl-body p{font-size:13.5px;line-height:2.1}
  .reason-body p{font-size:14px;line-height:2.15}
}


/* ============================================================
   個人鑑定「天命コンパスリーディング」
   和モダン／静かな画廊・上質な雑誌
   ============================================================ */
.rd-hero{padding:clamp(34px,5vw,68px) 0 clamp(30px,4vw,52px)}
.rd-hero-grid{
  display:grid;grid-template-columns:1.06fr .94fr;
  gap:clamp(26px,4.6vw,68px);align-items:center;
}
.rd-label{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-accent);font-size:11px;letter-spacing:.18em;
  color:var(--body);border:1px solid var(--hair);border-radius:999px;
  padding:6px 15px;background:rgba(255,255,255,.55);
}
.rd-label b{font-weight:500;color:var(--gold-text);letter-spacing:.1em}
.rd-title{
  margin:clamp(18px,2.4vw,26px) 0 0;
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(30px,4.5vw,54px);line-height:1.38;letter-spacing:.05em;
  color:#241C14;
}
.rd-lead{
  margin:clamp(20px,2.4vw,26px) 0 0;max-width:34em;
  font-size:clamp(13.5px,1.15vw,15px);line-height:2.15;letter-spacing:.02em;color:#41382D;
}
.rd-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(26px,3vw,36px)}
.rd-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:56px;padding:0 32px;border-radius:999px;
  font-size:13px;letter-spacing:.1em;font-weight:500;
  transition:background .24s ease,color .24s ease,border-color .24s ease;
}
.rd-btn .arw{transition:transform .24s ease}
.rd-btn:hover .arw{transform:translateX(4px)}
.rd-btn-ink{background:#241C14;color:var(--paper);border:1px solid #241C14}
.rd-btn-ink:hover{background:#3A2E22}
.rd-btn-line{background:transparent;color:#241C14;border:1px solid var(--hair)}
.rd-btn-line:hover{background:#241C14;color:var(--paper);border-color:#241C14}
.rd-btn.wide{width:100%;max-width:420px}

.rd-hero-fig{margin:0;position:relative}
.rd-hero-fig img{
  display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center center;
  border:1px solid var(--hair);
}
/* 個人鑑定ヒーロー：顔写真の代わりに鑑定書の表紙 */
.rd-hero-doc img{
  aspect-ratio:1/1;object-fit:cover;object-position:center center;
  border:1px solid var(--hair);
  box-shadow:0 18px 40px rgba(42,33,24,.14);
}
.rd-hero-doc figcaption{color:var(--body);opacity:.72}
.rd-hero-fig figcaption{
  margin-top:12px;font-family:var(--font-accent);
  font-size:11px;letter-spacing:.14em;color:var(--gold-text);
}

/* ヒーロー直下：3項目 */
.rd-spec{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin:clamp(32px,4vw,52px) 0 0;padding:0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.rd-spec>div{padding:clamp(18px,2.2vw,24px) clamp(14px,2vw,26px);border-right:1px solid var(--hair-soft)}
.rd-spec>div:last-child{border-right:0}
.rd-spec dt{
  font-family:var(--font-accent);font-size:10.5px;letter-spacing:.26em;
  color:var(--gold-text);margin-bottom:9px;
}
.rd-spec dd{margin:0;display:flex;flex-direction:column;gap:3px}
.rd-spec dd b{
  font-family:var(--font-body);font-weight:700;font-size:clamp(19px,2vw,23px);
  letter-spacing:.02em;color:#241C14;line-height:1.3;
}
.rd-spec dd span{font-size:11.5px;letter-spacing:.03em;color:#41382D;opacity:.85;line-height:1.75}

/* 3列（共通） */
.rd-method{padding:clamp(6px,1.4vw,14px) 0 clamp(38px,5vw,66px)}
.rd-3col{display:grid;grid-template-columns:repeat(3,1fr)}
.rd-3col .rd-col{
  padding:clamp(20px,2.6vw,32px) clamp(16px,2.4vw,32px);
  border-right:1px solid var(--hair-soft);
  display:flex;flex-direction:column;
}
.rd-3col .rd-col:first-child{padding-left:0}
.rd-3col .rd-col:last-child{border-right:0;padding-right:0}
.rd-3col.ruled{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.rd-col-k{
  font-family:var(--font-accent);font-size:10.5px;letter-spacing:.28em;
  color:var(--gold-text);display:block;
}
.rd-col-no{
  font-family:var(--font-accent);font-size:11px;letter-spacing:.2em;
  color:var(--gold-text);display:block;
}
.rd-col-t{
  margin:10px 0 0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(16px,1.7vw,19px);letter-spacing:.05em;line-height:1.6;color:#241C14;
}
.rd-min{font-family:var(--font-body);font-size:12px;font-weight:400;letter-spacing:.02em;color:#41382D;opacity:.75}
.rd-col-d{
  margin:12px 0 0;font-size:clamp(12px,1.05vw,13px);line-height:2;letter-spacing:.02em;
  color:#41382D;max-width:32em;
}

/* 数字（太字ゴシック） */
.rd-num{
  margin:14px 0 2px;font-family:var(--font-body);font-weight:700;
  font-size:clamp(36px,4vw,44px);line-height:1;letter-spacing:-.01em;color:#241C14;
}
.rd-num .unit{font-size:14px;font-weight:600;margin-left:4px;letter-spacing:.06em;color:var(--gold-text)}

/* 四柱推命・九星気学の丸ラベル */
.rd-pills{position:relative;height:clamp(56px,6vw,66px);margin-top:12px}
.rd-pill{
  position:absolute;display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;font-size:11.5px;letter-spacing:.1em;white-space:nowrap;
  padding:8px 16px;line-height:1;
}
.rd-pill.solid{background:#241C14;color:var(--paper);left:0;top:0;z-index:2}
.rd-pill.line{border:1px solid var(--gold);color:#241C14;background:#FBF6F0;left:52px;top:34px;z-index:1}

/* セクション見出し */
.rd-h2{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(24px,3.2vw,40px);line-height:1.6;letter-spacing:.05em;color:#241C14;
}
.rd-h2.light{color:var(--paper)}
.rd-p{margin:18px 0 0;font-size:clamp(13px,1.1vw,14.5px);line-height:2.15;letter-spacing:.02em}
.rd-p.light{color:rgba(251,246,240,.86)}
.rd-note{
  margin:clamp(26px,3vw,34px) 0 0;font-size:11.5px;line-height:2;letter-spacing:.02em;
  color:#41382D;opacity:.8;max-width:74em;
}
.rd-note.light{color:rgba(251,246,240,.7);opacity:1}

/* セクション2：この60分で、見ていくこと */
.rd-scope{background:var(--sage-pale);padding:clamp(42px,6vw,84px) 0}
.rd-scope-head{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,64px);
  align-items:end;margin-bottom:clamp(28px,3.4vw,44px);
}
.rd-scope-lead{
  margin:0;font-size:clamp(12.5px,1.05vw,13.5px);line-height:2.1;
  letter-spacing:.02em;color:#41382D;
}
.rd-scope .rd-3col.ruled{border-color:rgba(42,33,24,.22)}
.rd-scope .rd-3col .rd-col{border-color:rgba(42,33,24,.14)}

/* セクション3：8つの質問 */
.rd-eight{background:#241C14;color:var(--paper);padding:clamp(48px,6.4vw,90px) 0}
.rd-eight-top{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,72px);align-items:center;
}
.rd-eight-num{
  font-family:var(--font-accent);font-size:clamp(150px,19vw,260px);line-height:.82;
  color:#A87B36;letter-spacing:-.03em;font-weight:400;
}
.rd-eight-copy{max-width:40em}
.rd-eight .rd-h2{color:var(--paper)}
.rd-eight-mid{
  margin-top:clamp(30px,3.6vw,46px);padding-top:clamp(18px,2.2vw,24px);
  border-top:1px solid rgba(168,123,54,.55);
}
.rd-eight-note{
  margin:0;font-size:clamp(12px,1.05vw,13px);line-height:2;letter-spacing:.04em;
  color:rgba(251,246,240,.82);
}
.rd-dots{display:grid;grid-template-columns:repeat(8,1fr);gap:clamp(6px,1vw,10px);margin-top:clamp(22px,2.6vw,30px)}
.rd-dots span{
  aspect-ratio:1;border:1px solid rgba(168,123,54,.5);border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-body);font-size:11.5px;letter-spacing:.06em;color:#E3C99A;
}

.rd-pre{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid rgba(168,123,54,.35)}
.rd-pre li{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:13px 16px 13px 0;border-bottom:1px solid rgba(168,123,54,.22);align-items:baseline}
.rd-pre li:nth-child(odd){border-right:1px solid rgba(168,123,54,.22);padding-right:20px}
.rd-pre li:nth-child(even){padding-left:20px}
.rd-pre .pno{font-family:var(--font-accent);font-size:11px;letter-spacing:.12em;color:#C59A4F;grid-row:1 / span 2}
.rd-pre b{font-family:var(--font-hero);font-weight:500;font-size:14.5px;color:var(--paper);letter-spacing:.04em;line-height:1.6}
.rd-pre span:last-child{grid-column:2;font-size:11.5px;line-height:1.85;color:rgba(251,246,240,.72)}
@media (max-width:700px){
  .rd-pre{grid-template-columns:1fr;margin-top:14px}
  .rd-pre li:nth-child(odd){border-right:0;padding-right:0}
  .rd-pre li:nth-child(even){padding-left:0}
  .rd-pre li{padding:14px 0;gap:5px 12px}
  .rd-pre b{font-size:16px}
  .rd-pre span:last-child{font-size:13px;line-height:1.95}
  .rd-pre .pno{font-size:12px}
  .rd-eight-note{font-size:13px !important;line-height:2 !important}
}

/* セクション4：当日の3ステップ */
.rd-flow{padding:clamp(46px,6vw,84px) 0}
.rd-flow .rd-3col{margin-top:clamp(24px,3vw,36px)}
.rd-boxes{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,16px);
  margin-top:clamp(26px,3.2vw,38px);
}
.rd-box{border:1px solid var(--hair);background:#fff;padding:clamp(18px,2.2vw,24px)}
.rd-box.peach{background:var(--peach);border-color:var(--peach-2)}
.rd-box-k{
  font-family:var(--font-accent);font-size:10.5px;letter-spacing:.22em;color:var(--gold-text);
  display:block;margin-bottom:9px;
}
.rd-box-t{margin:0;font-size:13.5px;font-weight:700;letter-spacing:.03em;color:#241C14;line-height:1.7}
.rd-box-d{margin:6px 0 0;font-size:11.5px;line-height:1.95;color:#41382D;opacity:.88}

/* セクション5：ビジュアル帯 */
.rd-visual{padding:0 clamp(18px,4.4vw,72px) clamp(30px,3.6vw,54px)}
.rd-figure{
  margin:0 auto;max-width:860px;position:relative;
  border:1px solid var(--hair);background:var(--paper-2);
}
.rd-figure img{
  display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 42%;
}
.rd-figure figcaption{
  position:absolute;right:clamp(12px,2vw,20px);bottom:clamp(10px,1.6vw,16px);
  font-family:var(--font-accent);font-size:11px;letter-spacing:.16em;
  color:#241C14;background:rgba(251,246,240,.9);
  padding:5px 12px;border:1px solid rgba(42,33,24,.14);border-radius:2px;
}

/* セクション6：料金 */
.rd-price{background:#241C14;color:var(--paper);padding:clamp(46px,6vw,84px) 0}
.rd-price-card{border:1px solid rgba(251,246,240,.28);background:rgba(251,246,240,.04)}
.rd-price-top{
  display:grid;grid-template-columns:1fr auto;gap:clamp(20px,3vw,44px);
  align-items:end;padding:clamp(24px,3.2vw,38px) clamp(22px,3vw,36px);
}
.rd-price-l{
  display:block;font-family:var(--font-hero);font-size:13.5px;letter-spacing:.12em;color:var(--paper);
}
.rd-price-was{display:block;margin-top:8px;font-size:12px;letter-spacing:.04em;color:rgba(251,246,240,.7)}
.rd-price-was s{opacity:.85}
.rd-price-right{text-align:right}
.rd-price-v .unit,.rd-num .unit,.rd-cp-row b .unit{display:inline-block}
.rd-price-v{
  display:block;font-family:var(--font-body);font-weight:700;
  font-size:clamp(40px,5vw,62px);line-height:1;letter-spacing:-.01em;color:var(--paper);
}
.rd-price-v .unit{font-size:.32em;font-weight:600;margin-left:6px;letter-spacing:.04em;color:#E3C99A}
.rd-price-note{display:block;margin-top:10px;font-size:11.5px;letter-spacing:.08em;color:#E3C99A;opacity:.9}
.rd-price-3{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(251,246,240,.22);
}
.rd-price-3>div{padding:clamp(16px,2vw,22px) clamp(16px,2.4vw,28px);border-right:1px solid rgba(251,246,240,.16)}
.rd-price-3>div:last-child{border-right:0}
.rd-price-3 span{display:block;font-size:10.5px;letter-spacing:.2em;color:#E3C99A;margin-bottom:6px}
.rd-price-3 b{font-size:13px;font-weight:500;letter-spacing:.03em;color:rgba(251,246,240,.94);line-height:1.7}

/* セクション7：声（横長の帯） */
.rd-voices{padding:clamp(46px,6vw,84px) 0}
.rd-voice-list{margin-top:clamp(28px,3.4vw,42px);border-top:1px solid var(--hair)}
.rd-voice{
  display:grid;grid-template-columns:25% 1fr;gap:clamp(20px,4vw,56px);
  margin:0;padding:clamp(26px,3.4vw,42px) 0;border-bottom:1px solid var(--hair);
}
.rd-voice-meta{display:flex;flex-direction:column;gap:7px}
.rd-voice-who{font-size:13.5px;font-weight:700;letter-spacing:.04em;color:#241C14}
.rd-voice-course{font-size:11.5px;letter-spacing:.05em;color:#41382D;opacity:.85}
.rd-voice-date{font-family:var(--font-accent);font-size:11px;letter-spacing:.14em;color:var(--gold-text)}
.rd-voice-body{margin:0;max-width:760px}
.rd-voice-body p{
  margin:0 0 1.05em;font-size:clamp(12.5px,1.05vw,13.5px);line-height:2.15;
  letter-spacing:.02em;color:#41382D;
}
.rd-voice-body p:last-child{margin-bottom:0}

/* セクション8：ご予約 */
.rd-book{padding:clamp(46px,6vw,84px) 0 clamp(56px,7vw,96px)}
.rd-book-grid{
  display:grid;grid-template-columns:1fr 1.02fr;
  gap:clamp(28px,4.4vw,64px);align-items:center;
}
.rd-book-title{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(26px,3.4vw,38px);line-height:1.6;letter-spacing:.05em;color:#241C14;
}
.rd-book-body{margin:clamp(20px,2.4vw,26px) 0 0;max-width:32em}
.rd-book-body p{margin:0 0 1.1em;font-size:clamp(13px,1.1vw,14px);line-height:2.1;letter-spacing:.02em;color:#41382D}
.rd-book-body p:last-child{margin-bottom:0;color:#241C14}
.rd-book .rd-btn{margin-top:clamp(24px,3vw,32px)}
.rd-book-note{margin:14px 0 0;font-size:11.5px;line-height:1.95;letter-spacing:.02em;color:#41382D;opacity:.72}

.rd-card{border:1px solid var(--hair);background:#fff}
.rd-card-head{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  background:#241C14;color:var(--paper);
  padding:13px clamp(18px,2.2vw,24px);
  font-family:var(--font-hero);font-size:12.5px;letter-spacing:.1em;
}
.rd-card-head .nm{font-family:var(--font-hero);font-size:12.5px;letter-spacing:.1em}
.rd-card-head .sess{font-family:var(--font-body);font-size:11px;letter-spacing:.1em;color:#E3C99A}
.rd-card-in{padding:clamp(20px,2.6vw,30px)}
.rd-card-title{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(18px,2vw,22px);line-height:1.6;letter-spacing:.05em;color:#241C14;
}
.rd-card-lead{margin:10px 0 0;font-size:11.5px;line-height:2;color:#41382D;opacity:.9}
.rd-theme-list{
  list-style:none;margin:clamp(18px,2.2vw,24px) 0 0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;
}
.rd-theme-list li{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:baseline}
.rd-theme-no{font-family:var(--font-accent);font-size:11px;letter-spacing:.1em;color:var(--gold-text)}
.rd-theme-txt{display:flex;flex-direction:column;gap:2px}
.rd-theme-txt b{font-weight:500;font-size:12.5px;letter-spacing:.02em;color:#241C14;line-height:1.6}
.rd-theme-txt span{font-size:11px;line-height:1.75;color:#41382D;opacity:.8}
.rd-card-spec{
  margin-top:clamp(18px,2.2vw,24px);padding-top:16px;border-top:1px solid var(--hair-soft);
}
.rd-card-spec>span{display:block;font-size:10.5px;letter-spacing:.2em;color:var(--gold-text);margin-bottom:5px}
.rd-card-spec p{margin:0;font-size:12.5px;line-height:1.85;color:#241C14;letter-spacing:.02em}
.rd-card-spec p .cnt{display:inline-block;margin-left:8px;font-size:10.5px;letter-spacing:.08em;color:var(--gold-text)}
.rd-card-price{margin-top:clamp(18px,2.2vw,24px);border:1px solid var(--peach-2);background:var(--peach)}
.rd-cp-row{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;
  padding:14px 16px;border-bottom:1px solid rgba(42,33,24,.12);
}
.rd-cp-row>span{font-size:12.5px;letter-spacing:.04em;color:#41382D}
.rd-cp-row>span small{display:block;font-size:10.5px;letter-spacing:.06em;color:var(--gold-text);margin-top:2px}
.rd-cp-row b{font-family:var(--font-body);font-weight:700;font-size:20px;letter-spacing:.01em;color:#241C14;white-space:nowrap}
.rd-cp-row b .unit{font-size:10.5px;font-weight:500;margin-left:3px;color:var(--gold-text)}
.rd-cp-row b.was{font-weight:500;font-size:16px;opacity:.6}
.rd-cp-row.hi{background:rgba(255,255,255,.55);border-bottom:0}
.rd-cp-row.hi b.now{font-size:clamp(26px,2.8vw,32px)}
.rd-cp-note{
  margin:0;padding:12px 16px 14px;font-size:11px;line-height:1.9;letter-spacing:.02em;
  color:#41382D;opacity:.85;border-top:1px solid rgba(42,33,24,.12);
}

/* レスポンシブ（このページ内） */
@media (max-width:900px){
  .rd-hero-grid{grid-template-columns:1fr;gap:34px}
  .rd-hero-fig{order:-1;max-width:520px}
  .rd-hero-fig img{aspect-ratio:4/3;object-position:center 26%}
  .rd-hero-doc img{aspect-ratio:1/1;object-position:center center}
  .rd-scope-head{grid-template-columns:1fr;gap:16px;align-items:start}
  .rd-eight-top{grid-template-columns:1fr;gap:10px}
  .rd-eight-num{font-size:120px;line-height:.9}
  .rd-book-grid{grid-template-columns:1fr;gap:34px}
  .rd-price-top{grid-template-columns:1fr;gap:18px}
  .rd-price-right{text-align:left}
  .rd-voice{grid-template-columns:1fr;gap:14px}
  .rd-voice-meta{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:10px}
  .rd-theme-list{grid-template-columns:1fr}
}
@media (max-width:700px){
  .rd-spec{grid-template-columns:1fr}
  .rd-spec>div{border-right:0;border-bottom:1px solid var(--hair-soft);padding:16px 0}
  .rd-spec>div:last-child{border-bottom:0}
  .rd-spec dd{flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap}
  .rd-3col,.rd-boxes,.rd-price-3{grid-template-columns:1fr}
  .rd-3col .rd-col{border-right:0;border-bottom:1px solid var(--hair-soft);padding:20px 0}
  .rd-3col .rd-col:last-child{border-bottom:0}
  .rd-boxes{gap:12px}
  .rd-price-3>div{border-right:0;border-bottom:1px solid rgba(251,246,240,.14);padding:14px 18px}
  .rd-price-3>div:last-child{border-bottom:0}
  .rd-dots{grid-template-columns:repeat(4,1fr);gap:10px;max-width:280px}
  .rd-figure figcaption{display:none}
  .rd-btn.wide{max-width:none}
  .rd-num{font-size:38px}
  .rd-pills{height:60px}
}


/* ============================================================
   占いスクール天命堂（前半：ヒーロー／キャンペーン／授業のかたち／コース）
   和モダン：クリーム #FBF6F0、墨 #241C14、こげ茶 #41382D、金 #A87B36
   ============================================================ */
.sc-hero{padding:clamp(34px,5vw,66px) 0 clamp(30px,4vw,52px);border-bottom:1px solid var(--hair)}
.sc-hero-grid{
  display:grid;grid-template-columns:1fr 1.04fr;
  gap:clamp(26px,4.6vw,64px);align-items:center;
}
.sc-label{
  display:inline-block;font-family:var(--font-accent);font-size:11px;letter-spacing:.2em;
  color:var(--body);border:1px solid var(--hair);border-radius:999px;
  padding:6px 16px;background:rgba(255,255,255,.55);
}
.sc-title{
  margin:clamp(18px,2.4vw,26px) 0 0;
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(32px,4.8vw,58px);line-height:1.4;letter-spacing:.05em;color:#241C14;
}
.sc-lead{
  margin:clamp(20px,2.4vw,26px) 0 0;max-width:32em;
  font-size:clamp(13.5px,1.15vw,15px);line-height:2.15;letter-spacing:.02em;color:#41382D;
}
.sc-badge{
  display:inline-flex;align-items:center;gap:clamp(14px,2vw,18px);
  margin:clamp(24px,3vw,32px) 0 0;padding:clamp(12px,1.6vw,16px) clamp(16px,2vw,20px);
  border:1px solid var(--hair);background:rgba(255,255,255,.62);
  max-width:100%;text-align:left;
}
.sc-badge-n{
  flex:none;display:flex;align-items:baseline;gap:2px;
  font-family:var(--font-body);font-weight:700;font-size:30px;line-height:1;
  letter-spacing:-.01em;color:#241C14;white-space:nowrap;
  padding-right:clamp(14px,2vw,20px);border-right:1px solid var(--hair);
}
.sc-badge-n .sc-badge-unit{font-size:10.5px;font-weight:500;letter-spacing:.12em;color:var(--gold-text);margin-left:4px}
.sc-badge-t{font-size:11.5px;line-height:1.95;letter-spacing:.02em;color:#41382D;text-align:left}
.sc-hero-fig{margin:0}
.sc-hero-fig img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 40%;
  border:1px solid var(--hair);
}

/* キャンペーン（テラコッタ全面） */
.sc-camp{
  background:#C4794A;color:#FBF6F0;
  padding:clamp(40px,5.6vw,76px) 0 clamp(40px,5.4vw,72px);
}
.sc-camp-period{
  display:inline-block;font-family:var(--font-accent);font-size:11px;letter-spacing:.18em;
  border:1px solid rgba(251,246,240,.55);border-radius:999px;padding:5px 15px;
  color:rgba(251,246,240,.95);
}
.sc-camp-title{
  margin:clamp(16px,2.2vw,24px) 0 0;
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(28px,3.6vw,42px);line-height:1.5;letter-spacing:.04em;color:#FBF6F0;
}
.sc-camp-sub{
  margin-top:clamp(20px,2.6vw,28px);padding-top:clamp(16px,2vw,20px);
  border-top:1px solid rgba(251,246,240,.4);
  display:flex;flex-wrap:wrap;gap:6px clamp(20px,3vw,40px);
}
.sc-camp-sub p{margin:0;font-size:12.5px;line-height:1.95;letter-spacing:.03em;color:rgba(251,246,240,.92)}
.sc-camp-sub p:last-child{color:#FBF6F0;font-weight:500}

.sc-table-wrap{margin-top:clamp(24px,3vw,34px);overflow-x:auto;-webkit-overflow-scrolling:touch}
.sc-table{
  width:100%;border-collapse:collapse;min-width:640px;
  background:rgba(251,246,240,.1);border:1px solid rgba(251,246,240,.42);
}
.sc-table th{
  text-align:left;font-family:var(--font-accent);font-size:10px;letter-spacing:.2em;
  font-weight:400;color:rgba(251,246,240,.8);
  padding:12px 16px;border-bottom:1px solid rgba(251,246,240,.3);white-space:nowrap;
}
.sc-table td{
  padding:14px 16px;border-bottom:1px solid rgba(251,246,240,.18);
  font-size:12.5px;letter-spacing:.02em;color:#FBF6F0;vertical-align:middle;
}
.sc-table tr:last-child td{border-bottom:0}
.sc-table td.nm{font-family:var(--font-hero);font-size:14px;letter-spacing:.06em;white-space:nowrap}
.sc-table td.form{color:rgba(251,246,240,.86);font-size:12px}
.sc-table td.once{white-space:nowrap;font-family:var(--font-body);font-weight:500}
.sc-table td.once i{font-style:normal;font-size:10px;margin-left:2px;opacity:.8}
.sc-table td.once .dash{opacity:.55}
.sc-table td.tot{text-align:right;white-space:nowrap}
.sc-table td.tot b{
  display:block;font-family:var(--font-body);font-weight:700;font-size:clamp(17px,1.8vw,21px);
  letter-spacing:.01em;line-height:1.3;
}
.sc-table td.tot b i{font-style:normal;font-size:11px;font-weight:500;margin-left:2px}
.sc-table td.tot s{
  display:block;font-size:10.5px;letter-spacing:.02em;
  color:rgba(251,246,240,.62);margin-top:2px;text-decoration-thickness:1px;
}
.sc-table td.tot .was-none{display:block;font-size:12px;color:rgba(251,246,240,.78);margin-top:3px;line-height:1.6}
.sc-table-hint{display:none;margin:8px 0 0;font-size:10.5px;letter-spacing:.06em;color:rgba(251,246,240,.6)}
.sc-camp-note{margin:14px 0 0;font-size:11.5px;letter-spacing:.03em;color:rgba(251,246,240,.78)}
.sc-camp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  margin-top:clamp(22px,2.8vw,30px);min-height:54px;padding:0 30px;
  border:1px solid var(--paper);background:var(--paper);color:#241C14;
  border-radius:999px;font-size:13px;letter-spacing:.08em;font-weight:500;
  transition:background .22s ease,color .22s ease;
}
.sc-camp-btn:hover{background:transparent;color:var(--paper)}
.sc-camp-btn .arw{transition:transform .22s ease}
.sc-camp-btn:hover .arw{transform:translateX(4px)}

/* 授業のかたち */
.sc-shape{padding:clamp(46px,6.2vw,88px) 0 clamp(40px,5vw,64px)}
.sc-h2{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(25px,3.4vw,42px);line-height:1.58;letter-spacing:.05em;color:#241C14;
}
.sc-shape-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(26px,3.6vw,56px);align-items:stretch;
  margin-top:clamp(26px,3.4vw,42px);
}
.sc-shape-body{display:flex;flex-direction:column;justify-content:flex-start;max-width:34em;padding-top:2px}
.sc-shape-body p{
  margin:0 0 .95em;font-size:clamp(13px,1.1vw,14.5px);line-height:2.15;
  letter-spacing:.02em;color:#41382D;
}
.sc-shape-body p:last-child{margin-bottom:0}
.sc-shape-body p.hl{color:#241C14;border-left:2px solid var(--gold);padding-left:14px}

.sc-features{
  border:1px solid var(--hair);background:#fff;
  display:flex;flex-direction:column;justify-content:space-between;
}
.sc-feature{
  display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:baseline;
  padding:clamp(13px,1.7vw,18px) clamp(16px,2.2vw,24px);
  border-bottom:1px solid var(--hair-soft);
}
.sc-feature:last-child{border-bottom:0}
.sc-f-no{
  font-family:var(--font-accent);font-size:11px;letter-spacing:.12em;color:var(--gold-text);
}
.sc-f-t{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(14px,1.4vw,16px);letter-spacing:.04em;line-height:1.6;color:#241C14;
}
.sc-f-d{margin:3px 0 0;font-size:11.5px;line-height:1.85;letter-spacing:.01em;color:#41382D}

.sc-zoom{
  margin:clamp(64px,7vw,88px) 0 0;
  border-top:1px solid var(--hair);
}
.sc-zoom img{
  display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 42%;
  border:1px solid var(--hair);
}

/* コースと料金 */
.sc-courses{background:var(--peach);padding:clamp(44px,5.8vw,80px) 0 clamp(46px,6vw,84px)}
.sc-courses-lead{
  margin:clamp(16px,2vw,22px) 0 0;max-width:64em;
  font-size:clamp(12.5px,1.05vw,13.5px);line-height:2.05;letter-spacing:.02em;color:#41382D;
}
.sc-course-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(14px,1.8vw,22px);margin-top:clamp(28px,3.4vw,40px);
}
.sc-course{
  border:1px solid rgba(42,33,24,.2);background:#fff;
  display:flex;flex-direction:column;
  padding:clamp(18px,2.2vw,26px);
}
.sc-course.dark{background:#241C14;color:#FBF6F0;border-color:#241C14}
.sc-course.wide{
  grid-column:1 / -1;
  display:grid;grid-template-columns:minmax(260px,.82fr) 1.18fr;
  column-gap:clamp(22px,3.4vw,48px);align-content:start;
}
.sc-course.wide .sc-course-head{grid-column:1;align-self:start}
.sc-course.wide .sc-course-price{grid-column:1;align-self:start}
.sc-course.wide .sc-course-note{grid-column:1;align-self:start}
.sc-course.wide .sc-course-body{grid-column:2;grid-row:1;align-self:start;padding-top:0;border-top:0;margin-top:0}
.sc-course.wide .sc-course-text{grid-column:2;grid-row:3;align-self:start;margin-bottom:0}
.sc-course.wide .sc-course-goal{grid-column:2;grid-row:2;align-self:start;margin-top:10px;padding-top:12px}

.sc-course-head{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;
  padding-bottom:12px;border-bottom:1px solid rgba(42,33,24,.16);
}
.sc-course.dark .sc-course-head{border-color:rgba(251,246,240,.24)}
.sc-course-no{font-family:var(--font-accent);font-size:12px;letter-spacing:.18em;color:var(--gold-text);width:100%}
.sc-course-name{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(19px,2.1vw,25px);letter-spacing:.06em;line-height:1.4;color:inherit;
  display:flex;align-items:center;gap:8px;
}
.sc-course-kind{
  font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.1em;
  border:1px solid var(--gold);color:var(--gold-text);border-radius:999px;padding:2px 9px;
}
.sc-course-times{font-size:11.5px;letter-spacing:.03em;opacity:.8;margin-left:auto}

.sc-course-price{
  display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:baseline;
  padding:14px 0 12px;
}
.sc-cp-1{grid-column:1;font-size:11.5px;letter-spacing:.03em;opacity:.8}
.sc-cp-1 b{font-family:var(--font-body);font-weight:700;font-size:13px}
.sc-cp-total{
  grid-column:1;grid-row:2;
  font-family:var(--font-body);font-weight:700;
  font-size:clamp(27px,3vw,36px);line-height:1.1;letter-spacing:-.01em;color:inherit;
}
.sc-cp-total .unit{font-size:12px;font-weight:600;margin-left:4px;letter-spacing:.04em}
.sc-cp-was{grid-column:2;grid-row:2;font-size:11px;line-height:1.6;opacity:.72;align-self:end}
.sc-cp-was s{text-decoration-thickness:1px}

.sc-course-note{
  border-left:2px solid var(--gold);padding:2px 0 2px 12px;margin-bottom:12px;
}
.sc-course-note span{
  display:block;font-size:10px;letter-spacing:.16em;color:var(--gold-text);margin-bottom:3px;
}
.sc-course-note p{margin:0;font-size:11.5px;line-height:1.9;letter-spacing:.01em;opacity:.9}
.sc-course-body{margin:4px 0 12px;padding-top:10px;border-top:1px solid rgba(42,33,24,.1);font-size:12.5px;line-height:2.05;letter-spacing:.02em;opacity:.94}
.sc-course.dark .sc-course-body{border-color:rgba(251,246,240,.16)}
.sc-course-list{
  list-style:none;margin:0 0 14px;padding:0;
  display:grid;gap:6px;
}
.sc-course-list li{
  position:relative;padding-left:14px;font-size:11.5px;line-height:1.85;letter-spacing:.01em;opacity:.9;
}
.sc-course-list li::before{
  content:"";position:absolute;left:0;top:.72em;width:6px;height:1px;background:var(--gold);
}
.sc-course.dark .sc-course-list li::before{background:var(--gold-soft)}
.sc-course-text{
  margin:0 0 14px;font-size:11.5px;line-height:1.9;opacity:.9;
  border:1px dashed rgba(42,33,24,.22);padding:10px 12px;
}
.sc-course-text span{display:block;font-size:10px;letter-spacing:.16em;color:var(--gold-text);margin-bottom:3px}

.sc-course-goal{
  margin-top:auto;padding-top:12px;border-top:1px solid rgba(42,33,24,.16);
}
.sc-course-body{flex:1 0 auto}
.sc-course.dark .sc-course-goal{border-color:rgba(251,246,240,.24)}
.sc-course-goal span{
  display:block;font-family:var(--font-accent);font-size:10px;letter-spacing:.18em;
  color:var(--gold-text);margin-bottom:4px;
}
.sc-course.dark .sc-course-goal span{color:var(--gold-soft)}
.sc-course-goal p{margin:0;font-size:12px;line-height:1.95;letter-spacing:.02em;color:inherit;font-weight:500}

.sc-courses-foot{
  margin:clamp(24px,3vw,32px) 0 0;font-size:11.5px;line-height:2;letter-spacing:.02em;color:#41382D;opacity:.85;
}

@media (max-width:960px){
  .sc-course.wide{grid-template-columns:1fr}
  .sc-course.wide .sc-course-head,
  .sc-course.wide .sc-course-price,
  .sc-course.wide .sc-course-note,
  .sc-course.wide .sc-course-body,
  .sc-course.wide .sc-course-text,
  .sc-course.wide .sc-course-goal{grid-column:1;grid-row:auto}
  .sc-course.wide .sc-course-body{padding-top:10px;border-top:1px solid rgba(42,33,24,.1);margin-top:4px}
  .sc-hero-grid{grid-template-columns:1fr;gap:32px}
  .sc-hero-fig{order:-1}
  .sc-hero-fig img{aspect-ratio:16/10}
  .sc-shape-grid{grid-template-columns:1fr;gap:28px}
  .sc-shape-body{max-width:none}
  .sc-course-grid{grid-template-columns:1fr}
  .sc-course.wide{grid-column:auto}
}
@media (max-width:700px){
  .sc-table-hint{display:block}
  .sc-badge{flex-direction:row;align-items:center;gap:12px}
  .sc-badge-n{font-size:22px}
  .sc-table{min-width:560px}
  .sc-table th,.sc-table td{padding:11px 12px}
  .sc-table td.nm{font-size:13px}
  .sc-camp-sub{flex-direction:column;gap:4px}
  .sc-zoom{margin-top:44px}
  .sc-course-head{gap:4px 8px}
  .sc-course-times{margin-left:0;width:100%;margin-top:2px}
  .sc-course-price{grid-template-columns:1fr}
  .sc-cp-was{grid-column:1;grid-row:3;align-self:start;margin-top:2px}
}


/* ============================================================
   占いスクール天命堂（後半：受講条件／入会特典／カリキュラム／想い／声／FAQ／CTA）
   ============================================================ */
.sc-h2.light{color:#FBF6F0}

/* 5. 受講条件 */
.sc-terms{background:#241C14;color:#FBF6F0;padding:clamp(48px,6.4vw,90px) 0}
.sc-terms-lead{margin:clamp(16px,2vw,22px) 0 0;max-width:46em;font-size:clamp(12.5px,1.05vw,13.5px);line-height:2.05;color:rgba(251,246,240,.82)}
.sc-terms-grid{
  display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(28px,3.4vw,40px);
  border-top:1px solid rgba(251,246,240,.22);border-left:1px solid rgba(251,246,240,.22);
}
.sc-term{padding:clamp(20px,2.4vw,28px) clamp(18px,2.2vw,26px);border-right:1px solid rgba(251,246,240,.22);border-bottom:1px solid rgba(251,246,240,.22)}
.sc-term-no{font-family:var(--font-accent);font-size:11px;letter-spacing:.18em;color:#E3C99A}
.sc-term-t{margin:10px 0 6px;font-family:var(--font-hero);font-weight:500;font-size:clamp(16px,1.6vw,19px);letter-spacing:.05em;line-height:1.55;color:#FBF6F0}
.sc-term-d{margin:0;font-size:12px;line-height:1.95;color:rgba(251,246,240,.78)}
.sc-terms-pay{
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  margin-top:clamp(18px,2.2vw,24px);padding:16px clamp(18px,2.2vw,26px);
  border:1px solid rgba(227,201,154,.45);background:rgba(251,246,240,.05);
}
.sc-terms-pay .k{font-family:var(--font-accent);font-size:10.5px;letter-spacing:.2em;color:#E3C99A;flex:none}
.sc-terms-pay p{margin:0;font-size:13px;line-height:1.9;color:#FBF6F0}

/* 6. 入会特典 */
.sc-bonus{padding:clamp(48px,6.4vw,90px) 0}
.sc-bonus-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4.6vw,68px);align-items:center}
.sc-bonus-p{margin:clamp(18px,2.2vw,24px) 0 0;max-width:32em;font-size:clamp(13px,1.1vw,14.5px);line-height:2.15;color:#41382D}
.sc-bonus-p b{color:#241C14;font-weight:700}
.sc-bonus-note{margin:10px 0 0;font-size:11.5px;line-height:1.9;color:var(--gold-text)}
.sc-report{margin-top:clamp(26px,3.2vw,36px);padding-top:clamp(20px,2.4vw,26px);border-top:1px solid var(--hair)}
.sc-report-t{margin:0;font-family:var(--font-hero);font-weight:500;font-size:clamp(20px,2.2vw,26px);letter-spacing:.05em;color:#241C14}
.sc-report-t .num{font-family:var(--font-body);font-weight:700;font-size:1.5em;margin:0 3px;letter-spacing:-.01em}
.sc-toc{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hair-soft)}
.sc-toc li{display:grid;grid-template-columns:52px 1fr;gap:8px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--hair-soft)}
.sc-toc li:nth-child(odd){padding-right:16px}
.sc-toc .no{font-family:var(--font-accent);font-size:11px;letter-spacing:.08em;color:var(--gold-text)}
.sc-toc .tt{font-size:13px;letter-spacing:.03em;color:#241C14}
.sc-bonus-figs{position:relative;padding:0 6% 14% 0}
.sc-fig-cover{margin:0;width:72%}
.sc-fig-cover img{display:block;width:100%;border:1px solid var(--hair);box-shadow:0 14px 34px rgba(42,33,24,.14)}
.sc-fig-spread{
  margin:0;position:absolute;right:0;bottom:0;width:62%;
  background:#fff;padding:8px;border:1px solid var(--hair);box-shadow:0 18px 40px rgba(42,33,24,.16);
}
.sc-fig-spread img{display:block;width:100%}
.sc-bonus-figs figcaption{margin-top:7px;font-size:10.5px;letter-spacing:.1em;color:var(--gold-text)}

/* 7. カリキュラム（濃い緑の面） */
.sc-curri{background:#2F3A33;color:#FBF6F0;padding:clamp(48px,6.4vw,90px) 0}
.sc-steps{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(28px,3.4vw,40px);border-top:1px solid rgba(251,246,240,.24);border-bottom:1px solid rgba(251,246,240,.24)}
.sc-step{padding:clamp(20px,2.6vw,30px) clamp(16px,2.4vw,30px);border-right:1px solid rgba(251,246,240,.16)}
.sc-step:first-child{padding-left:0}
.sc-step:last-child{border-right:0;padding-right:0}
.sc-step-no{font-family:var(--font-accent);font-size:11px;letter-spacing:.2em;color:#E3C99A}
.sc-step-t{margin:10px 0 4px;font-family:var(--font-hero);font-weight:500;font-size:clamp(17px,1.8vw,21px);letter-spacing:.05em;color:#FBF6F0}
.sc-step-d{margin:0;font-size:12.5px;line-height:1.9;color:rgba(251,246,240,.78)}
.sc-after-h{margin:clamp(40px,5vw,60px) 0 0;font-family:var(--font-hero);font-weight:500;font-size:clamp(19px,2.2vw,25px);letter-spacing:.05em;color:#FBF6F0}
.sc-after{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:clamp(18px,2.2vw,24px);background:rgba(251,246,240,.18);border:1px solid rgba(251,246,240,.18)}
.sc-after-item{display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:baseline;padding:clamp(18px,2.2vw,24px);background:#2F3A33}
.sc-after-no{font-family:var(--font-accent);font-size:12px;letter-spacing:.12em;color:#E3C99A}
.sc-after-t{margin:0;font-family:var(--font-hero);font-weight:500;font-size:clamp(15px,1.5vw,17px);letter-spacing:.04em;line-height:1.6;color:#FBF6F0}
.sc-after-d{margin:6px 0 0;font-size:12px;line-height:1.95;color:rgba(251,246,240,.76)}

/* 8. なぜ、この価格なのか */
.sc-why{background:#FBF6F0;padding:clamp(56px,7vw,100px) 0}
.sc-why-inner{max-width:720px}
.sc-why-label{display:block;font-family:var(--font-accent);font-size:12px;letter-spacing:.3em;color:var(--gold-text)}
.sc-why-title{margin:clamp(14px,1.8vw,20px) 0 0;font-family:var(--font-hero);font-weight:500;font-size:clamp(28px,3.4vw,40px);line-height:1.55;letter-spacing:.06em;color:#241C14}
.sc-why-rule{display:block;width:64px;height:1px;background:var(--gold);margin:clamp(20px,2.6vw,28px) 0}
.sc-why-body p{margin:0 0 1.15em;font-size:clamp(14px,1.2vw,15px);line-height:2.2;letter-spacing:.02em;color:#41382D}
.sc-why-body p.lead{font-family:var(--font-hero);font-size:clamp(16px,1.6vw,19px);color:#241C14;letter-spacing:.06em;margin-bottom:1em}
.sc-why-body p.close{padding-top:1.1em;border-top:1px solid var(--hair);color:#241C14}
.sc-why-sign{margin:clamp(18px,2.2vw,24px) 0 0;text-align:right;font-family:var(--font-hero);font-size:13px;letter-spacing:.14em;color:var(--gold-text)}

/* 声 */
.sc-voices{background:var(--peach);padding:clamp(48px,6.4vw,90px) 0}
.sc-voices-lead{margin:14px 0 0;font-size:12.5px;line-height:2;color:#41382D}
.sc-voice-list{margin-top:clamp(26px,3.2vw,38px);border-top:1px solid rgba(42,33,24,.2)}
.sc-voice{display:grid;grid-template-columns:25% 1fr;gap:clamp(20px,4vw,56px);margin:0;padding:clamp(24px,3.2vw,40px) 0;border-bottom:1px solid rgba(42,33,24,.2)}
.sc-voice-meta{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.sc-voice-meta .who{font-family:var(--font-hero);font-size:16px;letter-spacing:.08em;color:#241C14}
.sc-voice-meta .age{font-size:11.5px;color:#41382D}
.sc-voice-meta .tag{font-size:10.5px;letter-spacing:.06em;padding:3px 11px;border-radius:999px;background:#FBF6F0;color:#41382D}
.sc-voice-meta .date{font-family:var(--font-accent);font-size:11px;letter-spacing:.12em;color:var(--gold-text)}
.sc-voice-body{margin:0;max-width:760px}
.sc-voice-body p{margin:0 0 1em;font-size:13px;line-height:2.15;color:#41382D}
.sc-voice-body p.res{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(42,33,24,.14);color:#241C14;font-weight:500}
.sc-voice-body p.res span{display:inline-block;margin-right:12px;font-size:10px;letter-spacing:.16em;color:var(--gold-text);font-weight:400}
.sc-note{margin:20px 0 0;font-size:11.5px;line-height:1.9;color:#41382D;opacity:.8}

/* 9. FAQ */
.sc-faq-sec{padding:clamp(48px,6.4vw,90px) 0}
.sc-faq-grid{display:grid;grid-template-columns:.42fr 1fr;gap:clamp(24px,4vw,60px);align-items:start}
.sc-faq{border-top:1px solid var(--hair)}
.sc-faq-item{border-bottom:1px solid var(--hair)}
.sc-faq-q{
  width:100%;display:grid;grid-template-columns:40px 1fr 24px;gap:8px;align-items:baseline;
  padding:18px 0;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--font-body);color:#241C14;
}
.sc-faq-no{font-family:var(--font-accent);font-size:12px;letter-spacing:.08em;color:var(--gold-text)}
.sc-faq-qt{font-size:14px;font-weight:500;letter-spacing:.03em;line-height:1.7}
.sc-faq-sign{font-size:15px;color:var(--gold-text);text-align:right}
.sc-faq-q:hover .sc-faq-qt{color:var(--terra)}
.sc-faq-a{display:grid;grid-template-columns:40px 1fr 24px;gap:8px;align-items:baseline;padding:0 0 20px}
.sc-faq-a p{margin:0;font-size:13px;line-height:2.05;color:#41382D}
.sc-faq-item.open{background:linear-gradient(transparent,transparent)}

/* CTA（テラコッタ） */
.sc-cta{background:#C4794A;color:#FBF6F0;padding:clamp(52px,6.8vw,96px) 0;text-align:center}
.sc-cta-title{margin:0;font-family:var(--font-hero);font-weight:500;font-size:clamp(25px,3.2vw,38px);line-height:1.6;letter-spacing:.05em;color:#FBF6F0}
.sc-cta-lead{margin:clamp(16px,2vw,22px) auto 0;max-width:38em;font-size:clamp(13px,1.1vw,14px);line-height:2.05;color:rgba(251,246,240,.92)}
.sc-cta-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(26px,3.2vw,36px)}
.sc-cta-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:56px;padding:0 30px;border-radius:999px;font-size:13px;letter-spacing:.08em;font-weight:500;
  transition:background .22s ease,color .22s ease;
}
.sc-cta-btn.solid{background:#FBF6F0;color:#241C14;border:1px solid #FBF6F0}
.sc-cta-btn.solid:hover{background:#241C14;color:#FBF6F0;border-color:#241C14}
.sc-cta-btn.line{background:transparent;color:#FBF6F0;border:1px solid rgba(251,246,240,.75)}
.sc-cta-btn.line:hover{background:#FBF6F0;color:#241C14}

@media (max-width:960px){
  .sc-bonus-grid{grid-template-columns:1fr;gap:40px}
  .sc-bonus-figs{max-width:520px}
  .sc-faq-grid{grid-template-columns:1fr;gap:18px}
}
@media (max-width:700px){
  .sc-terms-grid{grid-template-columns:1fr}
  .sc-steps{grid-template-columns:1fr}
  .sc-step{border-right:0;border-bottom:1px solid rgba(251,246,240,.16);padding:18px 0}
  .sc-step:last-child{border-bottom:0}
  .sc-after{grid-template-columns:1fr}
  .sc-toc{grid-template-columns:1fr}
  .sc-toc li:nth-child(odd){padding-right:0}
  .sc-voice{grid-template-columns:1fr;gap:12px}
  .sc-voice-meta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px}
  .sc-terms-pay{flex-direction:column;gap:4px}
  .sc-cta-btn{width:100%}
  .sc-faq-q,.sc-faq-a{grid-template-columns:34px 1fr 20px}
}


/* 声：見出し＋本文の形式 */
.rd-voice-no,.sc-voice-meta .no{font-family:var(--font-accent);font-size:13px;letter-spacing:.14em;color:var(--gold-text)}
.rd-voice-title,.sc-voice-title{
  margin:0 0 12px;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(16px,1.6vw,19px);line-height:1.7;letter-spacing:.04em;color:#241C14;text-wrap:pretty;
}
.rd-voice-body p,.sc-voice-body p{margin:0}
.sc-voice-meta .tag{background:none;padding:0;border-radius:0;font-size:12px;color:#241C14;letter-spacing:.04em}
@media (max-width:700px){
  .rd-voice-title,.sc-voice-title{font-size:16px}
}


/* 予約フォーム：個人鑑定／無料カウンセリングの切り替え */
.bk-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border:1px solid var(--hair);border-radius:999px;padding:4px;background:#fff;margin-bottom:22px;width:100%;max-width:760px}
.bk-switch button{
  appearance:none;border:0;background:none;cursor:pointer;border-radius:999px;
  padding:9px 18px;font-family:var(--font-body);font-size:12.5px;letter-spacing:.04em;color:#41382D;
  display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.5;transition:background .2s,color .2s;
}
.bk-switch button small{font-size:10.5px;color:var(--gold-text);letter-spacing:.06em}
.bk-switch button.on{background:#241C14;color:#FBF6F0}
.bk-switch button.on small{color:#E3C99A}
@media (max-width:700px){
  .bk-switch{display:grid;grid-template-columns:1fr;gap:2px;width:100%;border-radius:16px;padding:3px}
  .bk-switch button{flex-direction:row;gap:7px;padding:9px 10px;font-size:12px;border-radius:13px;justify-content:center}
  .bk-switch button small{font-size:10px}
}
.rd-voice-note{margin:-6px 0 10px !important;font-size:11px !important;letter-spacing:.04em;color:var(--gold-text) !important}


/* 特商法・プライバシーポリシー（受け皿） */
.legal{padding:clamp(56px,7vw,100px) 0 clamp(72px,9vw,130px);min-height:60vh}
.legal-inner{max-width:760px}
.legal-label{display:block;font-family:var(--font-accent);font-size:11px;letter-spacing:.3em;color:var(--gold-text)}
.legal-title{margin:14px 0 0;padding-bottom:clamp(20px,2.6vw,28px);border-bottom:1px solid var(--hair);font-family:var(--font-hero);font-weight:500;font-size:clamp(24px,3vw,34px);letter-spacing:.06em;color:#241C14}
.legal-body{margin-top:clamp(26px,3.2vw,36px);font-size:13.5px;line-height:2.1;color:#41382D}
.sc-camp-first{margin:16px 0 0;font-size:13px;letter-spacing:.04em;color:#FBF6F0;font-weight:500}


/* 特商法・プライバシー本文 */
.legal-table{margin:0;border-top:1px solid var(--hair)}
.legal-row{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--hair)}
.legal-row dt{font-size:12.5px;font-weight:700;letter-spacing:.04em;color:#241C14;line-height:1.9}
.legal-row dd{margin:0;font-size:13.5px;line-height:1.95;color:#41382D}
.legal-row dd a{color:#241C14;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:10px 0;min-height:44px;line-height:24px}
.legal-row dd p{margin:0 0 .8em}
.legal-row dd p:last-child{margin-bottom:0}
.legal-sub{font-weight:700;color:#241C14;margin-bottom:.2em !important}
.legal-lead{margin:0 0 26px;font-size:14px;line-height:2.05;color:#41382D}
.legal-list{list-style:none;margin:0;padding:0;counter-reset:lg;border-top:1px solid var(--hair)}
.legal-list li{counter-increment:lg;padding:20px 0;border-bottom:1px solid var(--hair)}
.legal-list h2{margin:0 0 8px;font-family:var(--font-hero);font-weight:500;font-size:17px;letter-spacing:.05em;color:#241C14}
.legal-list h2::before{content:counter(lg) ".";margin-right:10px;font-family:var(--font-accent);color:var(--gold-text)}
.legal-list p{margin:0;font-size:13.5px;line-height:2.05;color:#41382D}
@media (max-width:700px){
  .legal-row{grid-template-columns:1fr;gap:4px;padding:14px 0}
}


/* ============================================================
   最終監査対応
   ============================================================ */
/* お金・規約に関わる注記は13px以上 */
.rd-box-d,.rd-note,.rd-note.light,.rd-cp-note,
.sc-terms-pay p,.sc-course-note p,.sc-bonus-note,.sc-courses-foot,.sc-camp-note,
.bk-aside-note,.sc-faq-a p,.legal-row dd,.legal-list p{font-size:13px !important;line-height:2 !important}
.sc-faq-a p{font-size:13.5px !important}
.sc-camp-first{font-size:14px !important}

/* 声の注記 */
.voice-disclaimer{margin:18px 0 0;font-size:12px;letter-spacing:.03em;color:#41382D;opacity:.8}
.sc-voices .voice-disclaimer{color:#41382D}

/* お申し込みの流れ */
.sc-flow{padding:clamp(48px,6.4vw,90px) 0;background:#FBF6F0;border-top:1px solid var(--hair)}
.sc-flow-lead{margin:16px 0 0;max-width:40em;font-size:clamp(13px,1.1vw,14px);line-height:2.05;color:#41382D}
.sc-flow-list{
  list-style:none;margin:clamp(26px,3.2vw,38px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.sc-flow-item{position:relative;padding:clamp(20px,2.4vw,28px) clamp(14px,1.8vw,22px);border-right:1px solid var(--hair-soft)}
.sc-flow-item:first-child{padding-left:0}
.sc-flow-item:last-child{border-right:0;padding-right:0}
.sc-flow-no{font-family:var(--font-accent);font-size:12px;letter-spacing:.16em;color:var(--gold-text)}
.sc-flow-t{margin:10px 0 6px;font-family:var(--font-hero);font-weight:500;font-size:clamp(15px,1.5vw,18px);letter-spacing:.04em;line-height:1.6;color:#241C14}
.sc-flow-d{margin:0;font-size:13px;line-height:1.95;color:#41382D}
.sc-flow-cta{margin-top:clamp(24px,3vw,32px)}
.sc-camp-btn.dark{background:#241C14;color:#FBF6F0;border-color:#241C14}
.sc-camp-btn.dark:hover{background:transparent;color:#241C14}
@media (max-width:860px){
  .sc-flow-list{grid-template-columns:1fr 1fr}
  .sc-flow-item:nth-child(2){border-right:0;padding-right:0}
  .sc-flow-item:nth-child(3){padding-left:0}
  .sc-flow-item:nth-child(-n+2){border-bottom:1px solid var(--hair-soft)}
}
@media (max-width:560px){
  .sc-flow-list{grid-template-columns:1fr}
  .sc-flow-item{border-right:0 !important;padding:18px 0 !important;border-bottom:1px solid var(--hair-soft)}
  .sc-flow-item:last-child{border-bottom:0}
  .sc-flow-cta .sc-camp-btn{width:100%}
}
.legal-contact{margin-top:10px !important;padding:14px 16px;background:var(--paper-2,#F5EDE4);border:1px solid var(--hair);line-height:2 !important}
.legal-contact a{color:#241C14;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:10px 0;min-height:44px;line-height:24px}


/* 最終：40〜50代向けに補足文の下限を12.5pxへ */
.bf-hint,.bf-foot,.rd-voice-note,.rd-book-note,.rd-card-lead,.sc-f-d,.sc-course-text,.price-section .small,
.rd-theme-txt span,.sc-course-list li,.sc-term-d,.sc-step-d,.sc-after-d{font-size:12.5px !important;line-height:1.9 !important}
.rd-voice-note{font-size:12px !important}

.bf-consent a{color:#241C14;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:10px 0;min-height:44px;line-height:24px}
/* =================================================================
   モバイル最適化（総仕上げ）
   40〜50代がスマホで読む前提。1カラム化・余白44〜56px・端20〜24px
   ================================================================= */
@media (max-width:820px){
  /* ── 1. 左右2カラムはすべて上下1カラムへ ── */
  .hero-grid,
  .entrance-grid,
  .fs-grid,
  .reading-close,
  .price-columns,
  .statement,
  .steps,
  .outcomes,
  .recover,
  .ten-q,
  .report,
  .bonus,
  .bonus-inner,
  .session,
  .courses,
  .courses.c4,
  .course-self,
  .profile-grid,
  .about-grid,
  .booking-top,
  .reading-hero,
  .school-hero,
  .school-cta,
  .school-intro,
  .bf-row,
  .feature-row,
  .method,
  .pillars,
  .deck-cols{
    grid-template-columns:1fr !important;
    gap:46px !important;
  }

  /* 文章→ボックス→画像 の順序を保証（左が上、右が下） */
  .fs-head,.reading-hero>div:first-child,.school-hero>div:first-child{order:0}
  .fs-panel,.reading-hero>figure,.school-hero>figure{order:1}

  /* ── 2. ブロック間の余白（44〜56px） ── */
  .section{padding:clamp(46px,11vw,58px) 0}
  .wrap{padding-left:22px;padding-right:22px}
  .wrap-narrow{padding-left:22px;padding-right:22px}

  /* ── 3. 見出し28〜32px／本文14〜15px・行間1.9〜2.0 ── */
  h2.section{font-size:clamp(27px,7.4vw,32px);line-height:1.55;letter-spacing:.04em}
  .hero-type,.hero-type--fixed{font-size:clamp(28px,8.6vw,32px) !important;line-height:1.5 !important}
  .hero-type--fixed .ht-line{white-space:normal}
  h3.sub{font-size:clamp(19px,5.4vw,23px);line-height:1.65}
  .fs-title{font-size:clamp(26px,7vw,31px);line-height:1.55}
  .reason-quote{font-size:clamp(27px,7.6vw,33px);line-height:1.5}
  body{font-size:15px;line-height:1.95}
  p,.lede,.fs-body p,.fs-d,.vl-body p,.reason-body p{
    font-size:15px !important;line-height:1.95 !important;letter-spacing:.01em;
  }
  .small{font-size:12.5px;line-height:1.9}
  .fs-body p{margin-bottom:1.05em}

  /* ── 4. 枠線ブロックは画面幅いっぱい・窮屈にしない ── */
  .fs-panel,.course,.course-self,.bonus,.price-block,.bk-aside,
  .entrance,.step,.oc,.book,.voice-long,.counsel .acts{
    width:100%;max-width:none;
  }
  .fs-panel{padding:6px 20px 10px}
  .fs-item{padding:16px 0;gap:14px;grid-template-columns:32px 1fr}
  .fs-no{font-size:11.5px;padding-top:2px}
  .fs-t{font-size:16px;letter-spacing:.04em}
  .fs-d{margin-top:6px}

  /* 画像は必ず独立ブロック。文字に重ねない */
  .school-figure,.zoom-shot,.hero-art,.portrait-wrap,.bonus-figure,.report figcaption{
    margin-top:clamp(44px,8vw,56px) !important;
  }
  .school-figure{margin-left:0;margin-right:0}
  .school-figure img{aspect-ratio:16/10;object-position:center 40%}
  .zoom-shot img{aspect-ratio:16/10;object-position:center 32%}
  .hero-art{margin-left:auto;margin-right:auto}

  /* 押しやすさ */
  .btn{min-height:54px}
  .hero-actions .btn,.counsel .acts .btn{width:100%}

  /* 数字・料金は読める大きさで */
  .cval,.course .cval,.course-self .cval{font-size:27px}
  .price-row{padding:16px 2px}
  .ct-new{font-size:21px}
  .ct-name{font-size:14.5px}
}

/* ============================================================
   デザインモードはテキストノードを <span class="__om-t"> で包む。
   そのため「親 span」の指定が数字側の包みにも当たり、
   単位用の小さい文字色・サイズが本文側へ漏れる。
   包みは常に素通しにして、意図した要素だけが装飾を受けるようにする。
   ============================================================ */
.__om-t{
  font-size:inherit !important;
  font-weight:inherit !important;
  font-style:inherit !important;
  letter-spacing:inherit !important;
  line-height:inherit !important;
  color:inherit !important;
  background:none !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  display:inline !important;
}

/* 最終監査：11px台の注記を12.5px以上に底上げ */
.hero-price .ps,
.entrance .price-tag .ps,
.sc-cp-was,
.sc-cp-was span,
.sc-badge-t,
.sc-badge-t span,
.sc-course-was,
.rd-price-was,
.rd-price-was span,
.sc-badge-note,
.sc-hero small{font-size:12.5px !important;line-height:1.75 !important}

/* コースカード：申し込みボタン */
.sc-course-cta{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:18px 0 0;min-height:52px;padding:0 20px;
  border:1px solid #241C14;border-radius:999px;
  background:transparent;color:#241C14;
  font-size:13px;letter-spacing:.08em;font-weight:500;text-decoration:none;
  transition:background .24s ease,color .24s ease;
}
.sc-course-cta .arw{transition:transform .24s ease}
.sc-course-cta:hover{background:#241C14;color:var(--paper)}
.sc-course-cta:hover .arw{transform:translateX(4px)}
.sc-course.dark .sc-course-cta{border-color:rgba(251,246,240,.6);color:var(--paper)}
.sc-course.dark .sc-course-cta:hover{background:var(--paper);color:#241C14}

/* ============================================================
   スクール：料金表の読みやすさ改善（テラコッタ地の上にクリームの表）
   - 表をクリームのカードに載せ、文字を墨にする
   - 数字を大きく、補足は小さくしすぎない
   ============================================================ */
.sc-camp .sc-table-wrap{
  background:#FBF6F0;
  border-radius:3px;
  padding:clamp(14px,1.8vw,22px);
  box-shadow:0 14px 34px rgba(72,34,12,.18);
  overflow-x:auto;
}
.sc-camp .sc-table{
  min-width:600px;
  background:transparent;
  border:0;
  border-collapse:collapse;
}
.sc-camp .sc-table th{
  font-family:var(--font-body);
  font-size:11px;
  letter-spacing:.1em;
  font-weight:700;
  color:#A87B36;
  padding:0 14px 10px;
  border-bottom:1px solid rgba(42,33,24,.16);
  white-space:nowrap;
}
.sc-camp .sc-table td{
  padding:15px 14px;
  border-bottom:1px solid rgba(42,33,24,.1);
  color:#41382D;
  font-size:13.5px;
  letter-spacing:.02em;
}
.sc-camp .sc-table tr:last-child td{border-bottom:0}
.sc-camp .sc-table td.nm{
  font-family:var(--font-hero);
  font-size:15.5px;
  letter-spacing:.08em;
  color:#241C14;
  font-weight:600;
}
.sc-camp .sc-table td.form{
  color:#41382D;
  font-size:12.5px;
  letter-spacing:.02em;
}
.sc-camp .sc-table td.once{
  font-family:var(--font-body);
  font-weight:700;
  color:#241C14;
  font-size:13.5px;
}
.sc-camp .sc-table td.once i{font-size:10.5px;opacity:.75;color:#41382D}
.sc-camp .sc-table td.once .dash{opacity:.4}
.sc-camp .sc-table td.tot{text-align:right;white-space:nowrap}
.sc-camp .sc-table td.tot b{
  font-family:var(--font-body);
  font-weight:700;
  font-size:clamp(19px,2.1vw,24px);
  color:#241C14;
  letter-spacing:0;
  line-height:1.25;
}
.sc-camp .sc-table td.tot b i{font-size:11.5px;font-weight:500;margin-left:3px;color:#41382D}
.sc-camp .sc-table td.tot .was-none{
  display:block;
  font-size:11.5px;
  color:#7A6852;
  margin-top:3px;
  letter-spacing:.02em;
}
/* キャンペーン強調行（マンツーマン4コース）に薄い色を敷く */
.sc-camp .sc-table tbody tr:nth-child(-n+4) td{background:rgba(239,220,202,.34)}
.sc-camp .sc-table tbody tr:nth-child(-n+4) td.nm{background:rgba(239,220,202,.5)}
/* 地の見出し・注記は読める濃さに */
.sc-camp .sc-camp-sub p{font-size:13px;color:#FFF6EC}
.sc-camp .sc-camp-sub p:last-child{color:#FFF9F2}
.sc-camp .sc-camp-first{
  margin-top:18px;
  font-size:12.5px !important;
  letter-spacing:.04em;
  color:#FFF6EC;
  font-weight:400;
}
.sc-camp .sc-camp-note{
  margin-top:6px;
  font-size:12px;
  color:rgba(251,246,240,.9);
  line-height:1.8;
}
.sc-camp .sc-camp-period{
  border-color:rgba(251,246,240,.7);
  color:#FFF9F2;
  font-size:11.5px;
}
@media (max-width:700px){
  .sc-camp .sc-table{min-width:520px}
  .sc-camp .sc-table th{padding:0 10px 8px;font-size:10px}
  .sc-camp .sc-table td{padding:12px 10px;font-size:12.5px}
  .sc-camp .sc-table td.nm{font-size:14px}
  .sc-camp .sc-table td.form{font-size:11.5px}
  .sc-camp .sc-table td.tot b{font-size:18px}
  .sc-camp .sc-table-hint{display:block;color:rgba(251,246,240,.9)}
}

/* スクール料金表：スマホはカード形式（横スクロールをやめる） */
@media (max-width:700px){
  .sc-camp .sc-table-wrap{overflow-x:visible;padding:0;background:transparent;box-shadow:none;border-radius:0}
  .sc-camp .sc-table{min-width:0;display:block;background:transparent;border:0}
  .sc-camp .sc-table thead{display:none}
  .sc-camp .sc-table tbody{display:grid;gap:8px}
  .sc-camp .sc-table tr{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:"nm tot" "form once";
    gap:2px 12px;
    background:#FBF6F0;
    border-radius:3px;
    padding:13px 14px 12px;
    box-shadow:0 6px 16px rgba(72,34,12,.14);
  }
  .sc-camp .sc-table tbody tr:nth-child(-n+4) td,
  .sc-camp .sc-table tbody tr:nth-child(-n+4) td.nm{background:transparent}
  .sc-camp .sc-table td{padding:0;border:0;background:transparent !important}
  .sc-camp .sc-table td.nm{
    grid-area:nm;font-family:var(--font-hero);font-size:16px;font-weight:600;
    color:#241C14;letter-spacing:.08em;align-self:center;
  }
  .sc-camp .sc-table td.form{
    grid-area:form;font-size:11.5px;color:#6B5B48;letter-spacing:.02em;line-height:1.55;
    margin-top:2px;
  }
  .sc-camp .sc-table td.once{
    grid-area:once;justify-self:end;align-self:end;
    font-size:11px;font-weight:500;color:#8A7861;
  }
  .sc-camp .sc-table td.once i{font-size:10px}
  .sc-camp .sc-table td.tot{grid-area:tot;justify-self:end;text-align:right}
  .sc-camp .sc-table td.tot b{font-size:21px;line-height:1.2}
  .sc-camp .sc-table td.tot b i{font-size:10.5px}
  .sc-camp .sc-table td.tot .was-none{font-size:10.5px;margin-top:1px}
  .sc-camp .sc-table-hint{display:none}
  /* マンツーマン4コースは、価格に薄い帯を敷いて目立たせる */
  .sc-camp .sc-table tbody tr:nth-child(-n+4){border-left:3px solid #C4794A}
  .sc-camp .sc-table tbody tr:nth-child(5){border-left:3px solid rgba(42,33,24,.18)}
  .sc-camp .sc-table tbody tr:nth-child(6){border-left:3px solid rgba(42,33,24,.18)}
}

/* 個人鑑定ヒーロー：2コマの絵（横長）を切らずに見せる */
.rd-hero-fig.rd-hero-doc{max-width:560px}
.rd-hero-doc img{
  aspect-ratio:1024/477;
  object-fit:cover;
  object-position:center center;
  box-shadow:0 14px 32px rgba(42,33,24,.12);
}
@media (max-width:900px){
  .rd-hero-fig.rd-hero-doc{max-width:100%}
  .rd-hero-doc img{aspect-ratio:1024/477;object-position:center center}
}

/* 個人鑑定ヒーロー：鑑定書の表紙（A4 1:1.414の上半分を正方形で見せる） */
.rd-hero-fig.rd-hero-doc{max-width:470px;margin-left:auto}
.rd-hero-doc img{
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center top;
  border:1px solid var(--hair);
  box-shadow:0 18px 40px rgba(42,33,24,.16);
}
.rd-hero-doc figcaption{color:var(--body);opacity:.72}
@media (max-width:900px){
  .rd-hero-fig.rd-hero-doc{max-width:100%;margin-left:auto;margin-right:auto}
  .rd-hero-doc img{aspect-ratio:1/1;object-position:center top}
}

/* スクール中ほど：2コマの絵（横長）。16:9で切らずに全体を見せる */
.sc-zoom img{
  aspect-ratio:1024/477;
  object-fit:cover;
  object-position:center center;
}
@media (max-width:900px){
  .sc-zoom img{aspect-ratio:1024/477;object-position:center center}
}

/* スクール中ほど：絵の下に1行の説明（1対1であることを補強） */
.sc-zoom-cap{
  margin:12px 0 0;
  font-family:var(--font-body);
  font-size:12.5px;
  line-height:1.8;
  letter-spacing:.04em;
  color:#7A6852;
}
@media (max-width:700px){
  .sc-zoom-cap{font-size:12px;margin-top:10px}
}

/* ============================================================
   最終点検での修正（2026-11-05）
   1) スマホのご予約タブが 36px → 48px（指で押しやすい高さ）
   2) フッターのリンクが 33px → 44px
   3) スマホで意味を持つ小さい文字を 11〜12px に底上げ
   ============================================================ */
@media (max-width:700px){
  /* 1) ご予約・講座のタブ */
  .bk-switch button{
    min-height:52px;
    padding:12px 12px !important;
    line-height:1.35;
  }
  .bk-switch button small{font-size:11px;line-height:1.4}

  /* 2) フッターのリンク */
  .foot-col a, .foot-links a, .foot-nav a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
  /* フッター内の縦の間隔を詰めて、高さだけ確保する */
  .foot-col li, .foot-links li{margin:0}

  /* 3) 小さい文字（意味のあるもの） */
  .rd-spec dt, .rd-spec dd span{font-size:12px}
  .sc-camp-period{font-size:12px}
  .sc-course-no, .sc-course-text span{font-size:11.5px}
  .price-row .name small{font-size:12px}
  .bf-field label, .bf-field .hint{font-size:12.5px}
}

/* 実績4項目が5項目に増えたので、列数と区切り線を調整 */
.about-facts{grid-template-columns:repeat(4,1fr)}
.about-facts>div{padding:16px 10px}
.about-facts>div:nth-child(4){border-right:0}
.about-facts dd{font-size:clamp(14px,1.6vw,18px)}
.about-facts dd small{font-size:.62em;font-weight:500;letter-spacing:.02em;margin-left:2px}
@media (max-width:820px){
  .about-facts{grid-template-columns:1fr 1fr}
  .about-facts>div:nth-child(2n){border-right:0}
  .about-facts>div:nth-child(-n+2){border-bottom:1px solid rgba(42,33,24,.09)}
}
/* 個人鑑定ヒーロー下：4項目（時間・料金・カード・これまで） */
.rd-spec{grid-template-columns:repeat(4,1fr) !important}
@media (max-width:820px){
  .rd-spec{grid-template-columns:1fr 1fr !important}
}

/* ============================================================
   個人鑑定：お受けできる時間
   ============================================================ */
.rd-hours{
  padding:clamp(44px,5.6vw,76px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper-2);
}
.rd-hours-t{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(21px,2.6vw,29px);letter-spacing:.06em;color:var(--ink);
}
.rd-hours-lead{
  margin:14px 0 0;max-width:62em;
  font-size:clamp(12.5px,1.05vw,13.5px);line-height:2.05;letter-spacing:.02em;color:var(--body);
}
.rd-hours-list{
  margin:clamp(22px,2.6vw,30px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.rd-hours-list>div{padding:clamp(16px,1.8vw,22px) clamp(12px,1.4vw,18px);border-right:1px solid var(--hair-soft)}
.rd-hours-list>div:last-child{border-right:0}
.rd-hours-list dt{
  font-size:11.5px;letter-spacing:.14em;color:var(--gold-text);font-weight:500;
}
.rd-hours-list dd{margin:6px 0 0}
.rd-hours-list dd b{
  display:block;font-family:var(--font-body);font-weight:700;
  font-size:clamp(16px,1.8vw,21px);letter-spacing:.01em;color:var(--ink);line-height:1.35;
}
.rd-hours-list dd span{
  display:block;margin-top:5px;font-size:11.5px;line-height:1.75;letter-spacing:.02em;color:var(--body);opacity:.86;
}
.rd-hours-list>div.is-main dt{color:var(--ink);font-weight:700}
.rd-hours-list>div.is-main dd b{color:var(--terra2)}
.rd-hours-note{
  margin:16px 0 0;font-size:11.5px;line-height:2;letter-spacing:.02em;color:var(--body);opacity:.8;
}
.rd-hours-btn{margin-top:clamp(18px,2.2vw,24px)}
@media (max-width:820px){
  .rd-hours-list{grid-template-columns:1fr}
  .rd-hours-list>div{border-right:0;border-bottom:1px solid var(--hair-soft);padding:14px 4px}
  .rd-hours-list>div:last-child{border-bottom:0}
  .rd-hours-list dd b{font-size:17px}
  .rd-hours-list dd span{font-size:12px}
  .rd-hours-note{font-size:12px}
}


@media (max-width:700px){
  .photo-grid{grid-template-columns:1fr;gap:22px}
  .photo-grid img{aspect-ratio:4/3;object-position:center 22%}
  .photo-grid figcaption p{font-size:12px}
}

/* ============================================================
   「22」の帯：何が22なのかを、数字より先に伝える
   ============================================================ */
.bonus-figure{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:none;
}
.bonus-figure .bf-what{
  font-family:var(--font-hero);
  font-size:clamp(11px,1.1vw,12.5px);
  letter-spacing:.2em;
  color:var(--terra2);
  font-weight:600;
  margin-bottom:-2px;
}
.bonus-figure .bf-numrow{display:flex;align-items:baseline;gap:6px}
.bonus-figure .bf-num{line-height:.82}
.bonus-figure .bf-unit{white-space:nowrap}

@media (max-width:700px){
  .bonus-inner{grid-template-columns:1fr !important;gap:14px}
  .bonus-figure{
    flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap;
    padding-bottom:2px;
  }
  .bonus-figure .bf-what{
    font-size:11.5px;letter-spacing:.16em;
    border:1px solid var(--gold);padding:3px 9px;margin:0;
  }
  .bonus-figure .bf-numrow{gap:4px}
  .bonus-figure .bf-num{font-size:44px !important;line-height:.9}
  .bonus-figure .bf-unit{font-size:13px}
  .bonus-side{grid-column:1 !important;flex-direction:row;justify-content:space-between;align-items:center;border-top:1px solid var(--hair-soft);padding-top:14px}
}

/* 「22」を主役にしない：見出しは言葉、ページ数は末尾に小さく */
.bonus-figure{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:none;
  padding-right:clamp(4px,1vw,14px);
}
.bonus-figure .bf-what{
  font-family:var(--font-hero);
  font-size:clamp(19px,2.3vw,27px);
  line-height:1.5;
  letter-spacing:.06em;
  color:var(--ink);
  font-weight:500;
  border-bottom:1px solid var(--terra);
  padding-bottom:6px;
}
.bonus-figure .bf-sub{
  font-size:clamp(11px,1.05vw,12px);
  letter-spacing:.06em;
  color:var(--terra2);
}
.bf-meta{flex-wrap:wrap}
.bf-meta .bf-meta-n{
  font-size:10.5px;letter-spacing:.06em;color:var(--gold-text);opacity:.85;
}

@media (max-width:700px){
  .bonus-inner{grid-template-columns:1fr !important;gap:12px}
  .bonus-figure{padding-right:0}
  .bonus-figure .bf-what{font-size:21px;line-height:1.45;border-bottom:1px solid var(--terra);padding-bottom:5px}
  .bonus-figure .bf-sub{font-size:11.5px}
  .bf-meta .bf-meta-n{font-size:11px}
}

/* 鑑定書の中身を3枚見せる（表紙＋2026年の章＋今日からやること） */
.bonus-side{flex-direction:column;align-items:flex-end;gap:14px}
.bf-pages{
  display:flex;align-items:flex-end;gap:0;justify-content:flex-end;
}
.bf-pages img{
  display:block;width:clamp(78px,8.4vw,116px);height:auto;
  border:1px solid rgba(42,33,24,.14);
  box-shadow:0 6px 18px rgba(42,33,24,.14);
  background:#fff;
}
.bf-pages img+img{margin-left:-14px}
.bf-pages img.is-cover{
  width:clamp(92px,10vw,138px);
  position:relative;z-index:2;
  margin-right:6px;
}
.bf-pages img:nth-child(2){transform:rotate(-1.2deg);z-index:1}
.bf-pages img:nth-child(3){transform:rotate(1.4deg)}

@media (max-width:700px){
  .bonus-side{flex-direction:row;justify-content:space-between;align-items:center}
  .bf-pages{flex:1;justify-content:flex-start}
  .bf-pages img{width:64px;box-shadow:0 3px 10px rgba(42,33,24,.12)}
  .bf-pages img+img{margin-left:-8px}
  .bf-pages img.is-cover{width:76px;margin-right:4px}
}

/* ============================================================
   スクール：オーダーメイドのカリキュラム
   ============================================================ */
.sc-curriculum{
  padding:clamp(46px,6vw,84px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper);
}
.sc-cur-grid{
  display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(24px,4vw,64px);align-items:center;
}
.sc-cur-k{
  display:inline-block;font-size:10px;letter-spacing:.2em;
  color:var(--gold-text);font-weight:700;
  border:1px solid var(--gold);padding:4px 10px;
}
.sc-cur-lead{
  margin:18px 0 0;font-size:clamp(12.5px,1.05vw,13.5px);
  line-height:2.1;letter-spacing:.02em;color:var(--body);
}
.sc-cur-list{
  list-style:none;margin:clamp(20px,2.4vw,26px) 0 0;padding:0;
  border-top:1px solid var(--hair);
}
.sc-cur-list li{
  padding:12px 0 12px 18px;position:relative;
  border-bottom:1px solid var(--hair-soft);
  font-size:12.5px;line-height:1.85;color:var(--body);
}
.sc-cur-list li::before{
  content:'';position:absolute;left:0;top:19px;
  width:6px;height:6px;background:var(--terra);border-radius:50%;
}
.sc-cur-list li b{display:block;color:var(--ink);font-weight:700;font-size:13px;margin-bottom:1px}
.sc-cur-fig{margin:0}
.sc-cur-fig img{
  display:block;width:100%;height:auto;
  border:1px solid var(--hair);
  box-shadow:0 16px 36px rgba(42,33,24,.16);
}
.sc-cur-fig figcaption{
  margin-top:10px;font-size:10.5px;letter-spacing:.04em;
  color:var(--gold-text);line-height:1.7;
}
@media (max-width:820px){
  .sc-cur-grid{grid-template-columns:1fr;gap:26px}
  .sc-cur-fig{max-width:330px;margin:0 auto;order:-1}
  .sc-cur-list li{font-size:12px}
}

/* ============================================================
   トップ：実際の仕事（実写2枚）
   ============================================================ */
.real-band{
  padding:clamp(38px,4.6vw,62px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper-2);
}
.real-inner{
  display:grid;grid-template-columns:1fr auto;gap:clamp(24px,3.6vw,56px);
  align-items:center;
}
.real-k{
  display:inline-block;
  font-family:var(--font-hero);
  font-size:clamp(14px,1.5vw,17px);
  letter-spacing:.1em;
  color:var(--terra2);
  border-bottom:1px solid var(--terra);
  padding-bottom:5px;
}
.real-body{
  margin:14px 0 0;
  font-size:clamp(12px,1.02vw,13px);
  line-height:2.05;letter-spacing:.02em;color:var(--body);
}
.real-photos{
  display:flex;gap:10px;align-items:flex-end;
}
.real-photos img{
  display:block;width:clamp(104px,11vw,152px);height:auto;
  aspect-ratio:4/5;object-fit:cover;object-position:center 24%;
  border:1px solid var(--hair);
  box-shadow:0 8px 22px rgba(42,33,24,.13);
}
.real-photos img:nth-child(2){
  aspect-ratio:1/1;object-position:center center;
  width:clamp(92px,9.6vw,132px);
}
@media (max-width:820px){
  .real-inner{grid-template-columns:1fr;gap:18px}
  .real-photos{justify-content:flex-start;gap:8px}
  .real-photos img{width:46vw;max-width:150px;aspect-ratio:4/5}
  .real-photos img:nth-child(2){width:38vw;max-width:128px;aspect-ratio:1/1}
  .real-body{font-size:12px;line-height:1.95}
}

/* ============================================================
   プロフィール：実写3枚（大きい1枚＋小さい2枚）
   ============================================================ */
.photo-band{
  padding:clamp(44px,5.6vw,76px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper);
}
.photo-band .section-head{margin-bottom:clamp(22px,2.8vw,34px)}
.photo-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:clamp(12px,1.8vw,22px);
  align-items:end;
}
.photo-grid figure{margin:0}
.photo-grid img{
  display:block;width:100%;height:auto;
  border:1px solid var(--hair);
  box-shadow:0 10px 26px rgba(42,33,24,.12);
}
.photo-grid .is-main img{
  aspect-ratio:4/3;object-fit:cover;object-position:center 45%;
}
.photo-sub{
  display:grid;grid-template-rows:1fr 1fr;gap:clamp(12px,1.8vw,22px);
}
.photo-sub img{
  aspect-ratio:16/10;object-fit:cover;object-position:center 26%;
  box-shadow:0 6px 18px rgba(42,33,24,.1);
}
.photo-grid figcaption{margin-top:10px}
.photo-grid .pb-k{
  display:inline-block;font-size:10px;letter-spacing:.18em;color:var(--gold-text);
  font-weight:700;margin-bottom:3px;
}
.photo-grid figcaption p{
  margin:0;font-size:11.5px;line-height:1.75;letter-spacing:.02em;color:var(--body);opacity:.86;
}
.photo-grid .is-main figcaption p{font-size:12.5px;opacity:.9}

@media (max-width:820px){
  .photo-grid{grid-template-columns:1fr;gap:18px}
  .photo-sub{grid-template-rows:none;grid-template-columns:1fr 1fr;gap:10px}
  .photo-grid .is-main img{aspect-ratio:4/3;object-position:center 42%}
  .photo-sub img{aspect-ratio:4/5;object-position:center 22%}
  .photo-grid figcaption p{font-size:11px;line-height:1.65}
  .photo-grid .is-main figcaption p{font-size:12px}
}

/* 写真帯の見出し（.section を使うと余白が巨大になるため専用クラス） */
.photo-band .photo-h2{
  margin:0;
  font-family:var(--font-hero);
  font-weight:500;
  font-size:clamp(22px,2.8vw,32px);
  line-height:1.55;
  letter-spacing:.06em;
  color:var(--ink);
}
.photo-band .section-head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px,3vw,48px);
  align-items:end;
  margin:0 0 clamp(22px,2.8vw,34px);
}
.photo-band .section-head .lead{margin:0;max-width:none}
@media (max-width:820px){
  .photo-band .section-head{grid-template-columns:1fr;gap:12px;align-items:start}
  .photo-band .photo-h2{font-size:23px}
}

/* 写真帯：左右の高さをぴったり揃える */
.photo-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:clamp(12px,1.8vw,22px);
  align-items:stretch;
}
.photo-grid > figure,
.photo-grid .photo-sub figure{
  display:flex;flex-direction:column;
}
.photo-grid .is-main img{
  flex:1 1 auto;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center 45%;
}
.photo-sub{min-height:0}
.photo-sub figure{min-height:0}
.photo-sub img{
  flex:1 1 auto;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center 26%;
}
.photo-grid figcaption{flex:0 0 auto}

@media (max-width:820px){
  .photo-grid{grid-template-columns:1fr}
  .photo-grid .is-main img{height:auto;aspect-ratio:4/3}
  .photo-sub{grid-template-rows:none;grid-template-columns:1fr 1fr}
  .photo-sub img{height:auto;aspect-ratio:4/5}
}

/* 写真帯：右の2枚が高さを決め、左の大判はその高さに合わせて切り抜く */
.photo-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:clamp(12px,1.8vw,22px);
  align-items:stretch;
}
.photo-grid > .is-main{
  position:relative;
  display:block;
  min-height:0;
}
.photo-grid .is-main img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center 45%;
  aspect-ratio:auto;
}
.photo-grid .is-main figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  margin:0;
  padding:14px 16px 12px;
  background:linear-gradient(rgba(20,14,8,0),rgba(20,14,8,.62));
}
.photo-grid .is-main figcaption .pb-k{color:#F2E4CE}
.photo-grid .is-main figcaption p{color:#FBF6F0;opacity:.95}

.photo-sub{
  display:grid;grid-template-rows:1fr 1fr;gap:clamp(12px,1.8vw,22px);
  min-height:0;
}
.photo-sub figure{
  display:flex;flex-direction:column;min-height:0;
}
.photo-sub img{
  flex:1 1 auto;width:100%;min-height:0;
  object-fit:cover;object-position:center 26%;
  aspect-ratio:auto;
}
.photo-sub figcaption{flex:0 0 auto}

@media (max-width:820px){
  .photo-grid{grid-template-columns:1fr;gap:18px}
  .photo-grid > .is-main{position:static;display:flex;flex-direction:column}
  .photo-grid .is-main img{position:static;width:100%;height:auto;aspect-ratio:4/3}
  .photo-grid .is-main figcaption{position:static;background:none;padding:0;margin-top:10px}
  .photo-grid .is-main figcaption .pb-k{color:var(--gold-text)}
  .photo-grid .is-main figcaption p{color:var(--body);opacity:.86}
  .photo-sub{grid-template-rows:none;grid-template-columns:1fr 1fr;gap:10px}
  .photo-sub img{height:auto;aspect-ratio:4/5}
}

/* 写真帯：右2枚の合計高さに、左の大判をぴったり合わせる */
.photo-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:clamp(12px,1.8vw,22px);
  align-items:stretch;
}
.photo-grid > .is-main{
  position:relative;
  display:block;
  min-height:0;
}
.photo-grid .is-main img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 45%;
  aspect-ratio:auto;
  flex:none;
}
.photo-grid .is-main figcaption{
  position:absolute;
  left:0;right:0;bottom:0;
  margin:0;
  padding:16px 18px 14px;
  background:linear-gradient(rgba(20,14,8,0),rgba(20,14,8,.66));
}
.photo-grid .is-main figcaption .pb-k{color:#F2E4CE}
.photo-grid .is-main figcaption p{color:#FBF6F0;opacity:.95;font-size:12.5px}

.photo-sub{
  display:grid;
  grid-template-rows:auto auto;
  gap:clamp(12px,1.8vw,22px);
  align-content:start;
  min-height:0;
}
.photo-sub figure{display:block;min-height:0;margin:0}
.photo-sub img{
  display:block;width:100%;height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center 26%;
  flex:none;
}
.photo-sub figcaption{margin-top:9px}

@media (max-width:820px){
  .photo-grid{grid-template-columns:1fr;gap:18px}
  .photo-grid > .is-main{position:static;display:flex;flex-direction:column}
  .photo-grid .is-main img{position:static;width:100%;height:auto;aspect-ratio:4/3}
  .photo-grid .is-main figcaption{position:static;background:none;padding:0;margin-top:10px}
  .photo-grid .is-main figcaption .pb-k{color:var(--gold-text)}
  .photo-grid .is-main figcaption p{color:var(--body);opacity:.86;font-size:12px}
  .photo-sub{grid-template-columns:1fr 1fr;gap:10px;grid-template-rows:none}
  .photo-sub img{aspect-ratio:4/5}
}

/* 「1日 2名まで」の小さなバッジ */
.rd-hours-list dd .rd-hours-cap{
  display:inline-block;
  margin-top:8px;
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--terra2);
  border:1px solid rgba(142,79,35,.42);
  background:rgba(239,220,202,.5);
  padding:2px 9px;
  border-radius:2px;
  line-height:1.7;
  opacity:1;
}
.rd-hours-list>div.is-main dd .rd-hours-cap{font-weight:700}
@media (max-width:820px){
  .rd-hours-list dd .rd-hours-cap{font-size:11px;margin-top:7px}
}

/* 8つの質問（実物）を見せる */
.rd-q-head{margin:clamp(26px,3.4vw,40px) 0 clamp(16px,2vw,22px)}
.rd-q-head h3{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(17px,1.9vw,21px);line-height:1.7;letter-spacing:.05em;
  color:var(--paper);
}
.rd-q-head p{
  margin:10px 0 0;font-size:12px;line-height:1.9;letter-spacing:.02em;
  color:rgba(251,246,240,.74);
}
.rd-q-list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(10px,1.4vw,16px);
  counter-reset:none;
}
.rd-q-list li{
  position:relative;
  background:rgba(251,246,240,.055);
  border:1px solid rgba(251,246,240,.16);
  border-left:2px solid var(--gold-soft);
  padding:clamp(14px,1.6vw,20px) clamp(14px,1.6vw,20px) clamp(13px,1.5vw,18px);
}
.rd-q-no{
  display:block;
  font-family:var(--font-num,var(--font-body));font-weight:700;
  font-size:11px;letter-spacing:.16em;
  color:var(--gold-soft);
  margin-bottom:7px;
}
.rd-q-text{
  margin:0;
  font-family:var(--font-hero);
  font-size:clamp(13.5px,1.32vw,16px);
  line-height:1.78;letter-spacing:.04em;
  color:var(--paper);
}
.rd-q-note{
  margin:9px 0 0;
  font-size:11.5px;line-height:1.9;letter-spacing:.01em;
  color:rgba(251,246,240,.66);
}
@media (max-width:820px){
  .rd-q-list{grid-template-columns:1fr;gap:9px}
  .rd-q-list li{padding:13px 14px}
  .rd-q-text{font-size:14px;line-height:1.72}
  .rd-q-note{font-size:11px;line-height:1.8;margin-top:8px}
}

/* ============================================================
   5分野の8つの質問（アコーディオン）
   ============================================================ */
.rd-q-cats{margin-top:clamp(14px,1.8vw,20px)}
.rd-q-cat{
  border:1px solid rgba(251,246,240,.18);
  border-left:2px solid var(--gold-soft);
  background:rgba(251,246,240,.04);
  margin-bottom:8px;
}
.rd-q-cat summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:baseline;
  gap:10px 14px;
  padding:13px clamp(13px,1.6vw,18px);
  transition:background .18s ease;
}
.rd-q-cat summary::-webkit-details-marker{display:none}
.rd-q-cat summary:hover{background:rgba(251,246,240,.07)}
.rd-q-cat-no{
  font-family:var(--font-body);font-weight:700;font-size:11px;
  letter-spacing:.14em;color:var(--gold-soft);
}
.rd-q-cat-t{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(14.5px,1.5vw,17px);letter-spacing:.06em;color:var(--paper);
}
.rd-q-cat-s{
  font-size:11px;letter-spacing:.02em;color:rgba(251,246,240,.6);
}
.rd-q-cat-arw{
  font-size:13px;color:var(--gold-soft);
  transition:transform .24s ease;
  line-height:1;
}
.rd-q-cat[open] .rd-q-cat-arw{transform:rotate(45deg)}
.rd-q-cat[open]{background:rgba(251,246,240,.06)}
.rd-q-cat .rd-q-list{
  padding:0 clamp(13px,1.6vw,18px) clamp(14px,1.8vw,18px);
  margin:0;
}
.rd-q-cat .rd-q-list li{
  border-left:0;
  border-top:1px solid rgba(251,246,240,.12);
  background:transparent;
  padding:13px 0 12px;
}
.rd-q-cat .rd-q-list li:first-child{border-top:0}
.rd-q-cat .rd-q-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(18px,2.4vw,34px)}
.rd-q-cat .rd-q-list li{border-top:0}
.rd-q-cat .rd-q-list li:nth-child(n+3){border-top:1px solid rgba(251,246,240,.12)}
.rd-q-cat .rd-q-list li:nth-child(2){border-top:0}

@media (max-width:820px){
  .rd-q-cat summary{grid-template-columns:auto 1fr auto;gap:6px 10px;padding:12px 13px}
  .rd-q-cat-s{grid-column:2 / -1;font-size:10.5px;margin-top:-2px}
  .rd-q-cat .rd-q-list{grid-template-columns:1fr;gap:0}
  .rd-q-cat .rd-q-list li{border-top:1px solid rgba(251,246,240,.12);padding:12px 0 11px}
  .rd-q-cat .rd-q-list li:first-child{border-top:0}
}

/* ============================================================
   「術」の欄：四柱（4本の柱）＋九星（9つの点）を図で見せる
   ============================================================ */
.rd-arts{
  display:flex;align-items:center;gap:clamp(6px,1vw,10px);
  margin:14px 0 0;
}
.rd-art{display:flex;align-items:center;gap:8px}
.rd-art b{
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(12px,1.15vw,13.5px);letter-spacing:.06em;color:var(--ink);
}
.rd-arts-plus{font-size:11px;color:var(--gold-text);margin:0 2px;line-height:1}

/* 四柱：4本の柱 */
.rd-art-mk{
  display:inline-block;flex:none;position:relative;
  width:26px;height:26px;
}
.mk-pillar{
  background:
    linear-gradient(var(--terra),var(--terra)) 0 6px/3px 20px no-repeat,
    linear-gradient(var(--terra),var(--terra)) 7.5px 0/3px 26px no-repeat,
    linear-gradient(var(--terra),var(--terra)) 15px 4px/3px 22px no-repeat,
    linear-gradient(var(--terra),var(--terra)) 22.5px 9px/3px 15px no-repeat;
  opacity:.92;
}
/* 九星：3×3の点 */
.mk-star{
  background:
    radial-gradient(circle at 2.6px 2.6px, var(--gold-text) 1.6px, transparent 1.7px) 0 0/13px 13px,
    radial-gradient(circle at 2.6px 2.6px, var(--gold-text) 1.6px, transparent 1.7px) 0 0/13px 13px;
  background-repeat:no-repeat;
  background-image:
    radial-gradient(circle at 2.6px 2.6px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 11px 2.6px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 19.4px 2.6px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 2.6px 11px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 11px 11px, var(--gold-text) 2.3px, transparent 2.6px),
    radial-gradient(circle at 19.4px 11px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 2.6px 19.4px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 11px 19.4px, var(--gold-text) 1.7px, transparent 2px),
    radial-gradient(circle at 19.4px 19.4px, var(--gold-text) 1.7px, transparent 2px);
  background-size:22px 22px;
  background-position:2px 2px;
  background-repeat:no-repeat;
}
.rd-col .rd-col-d{margin-top:14px}

@media (max-width:820px){
  .rd-arts{gap:6px}
  .rd-art{gap:6px}
  .rd-art b{font-size:12px}
  .rd-art-mk{width:22px;height:22px}
  .mk-pillar{
    background:
      linear-gradient(var(--terra),var(--terra)) 0 5px/2.5px 17px no-repeat,
      linear-gradient(var(--terra),var(--terra)) 6.4px 0/2.5px 22px no-repeat,
      linear-gradient(var(--terra),var(--terra)) 12.8px 3.4px/2.5px 18.6px no-repeat,
      linear-gradient(var(--terra),var(--terra)) 19.2px 7.6px/2.5px 12.8px no-repeat;
  }
}

/* ============================================================
   個人鑑定：ご予約からの流れ（縦のフローチャート）
   ============================================================ */
.rd-map{
  padding:clamp(46px,6vw,84px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper);
}
.rd-map-k{
  margin:0 0 10px;font-size:10px;letter-spacing:.28em;
  color:var(--gold-text);font-weight:700;
}
.rd-map-h{margin:0}
.rd-map-lead{
  margin:16px 0 0;font-size:clamp(12.5px,1.05vw,13.5px);
  line-height:2.05;letter-spacing:.02em;color:var(--body);
}

.rd-map-list{
  list-style:none;margin:clamp(26px,3.2vw,38px) 0 0;padding:0;
  position:relative;
}
/* 縦の線 */
.rd-map-list::before{
  content:"";position:absolute;left:19px;top:14px;bottom:26px;
  width:1px;background:linear-gradient(var(--gold-soft),var(--hair-soft));
}
.rd-map-i{
  position:relative;display:grid;
  grid-template-columns:40px 1fr auto;
  gap:clamp(10px,1.6vw,20px);
  align-items:start;
  padding:0 0 clamp(18px,2.2vw,26px);
}
.rd-map-i .n{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  width:39px;height:39px;border-radius:50%;
  background:var(--paper);border:1px solid var(--gold-soft);
  font-family:var(--font-body);font-weight:700;font-size:11.5px;
  color:var(--terra2);letter-spacing:.02em;
}
.rd-map-i .b b{
  display:block;font-family:var(--font-hero);font-weight:600;
  font-size:clamp(14.5px,1.4vw,17px);letter-spacing:.04em;
  color:var(--ink);line-height:1.5;padding-top:5px;
}
.rd-map-i .b p{
  margin:5px 0 0;font-size:12.5px;line-height:1.95;
  letter-spacing:.02em;color:var(--body);opacity:.9;
  max-width:46em;
}
.rd-map-i .tag{
  flex:none;white-space:nowrap;margin-top:8px;
  font-size:10px;letter-spacing:.06em;color:var(--gold-text);
  border:1px solid var(--hair);border-radius:999px;
  padding:3px 10px;line-height:1.5;background:var(--paper-2);
}

/* 当日へ、の区切り */
.rd-map-go{
  position:relative;display:flex;align-items:center;gap:10px;
  margin:clamp(6px,1vw,10px) 0 clamp(20px,2.4vw,28px) 0;
  padding:10px 16px 10px 60px;
  background:var(--ink);color:var(--paper);
  border-radius:2px;
  font-family:var(--font-hero);font-size:clamp(12px,1.15vw,13.5px);
  letter-spacing:.14em;font-weight:500;
  width:fit-content;
}
.rd-map-go .arw{margin-left:2px;font-size:13px;opacity:.8}

@media (max-width:820px){
  .rd-map-list::before{left:16px}
  .rd-map-i{grid-template-columns:34px 1fr;gap:10px}
  .rd-map-i .n{width:33px;height:33px;font-size:10.5px}
  .rd-map-i .b b{font-size:15px;padding-top:4px}
  .rd-map-i .b p{font-size:12.5px;line-height:1.9}
  .rd-map-i .tag{grid-column:2;justify-self:start;margin-top:-4px}
  .rd-map-go{padding:10px 14px;font-size:11.5px;letter-spacing:.08em;width:100%;justify-content:space-between}
}

/* 霊感は使いません（フローチャートの上） */
.rd-assure{
  margin:clamp(20px,2.6vw,28px) 0 0;
  padding:clamp(16px,1.9vw,22px) clamp(16px,2vw,24px);
  border-left:2px solid var(--terra);
  background:var(--paper-2);
}
.rd-assure p{margin:0}
.rd-assure-main{
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(14px,1.45vw,17px);line-height:1.9;letter-spacing:.04em;
  color:var(--ink);
}
.rd-assure-sub{
  margin-top:8px !important;
  font-size:12.5px;line-height:1.95;letter-spacing:.02em;
  color:var(--body);opacity:.88;
}

/* 5つのやりとりが重い人への逃げ道 */
.rd-map-alt{
  margin:clamp(16px,2vw,22px) 0 0;
  font-size:12px;line-height:1.95;letter-spacing:.02em;
  color:var(--body);opacity:.82;
}
.rd-map-alt a{
  color:var(--terra2);text-decoration:underline;
  text-underline-offset:3px;font-weight:600;
}
.rd-map-alt a:hover{color:var(--terra)}

@media (max-width:820px){
  .rd-assure{padding:14px 15px}
  .rd-assure-main{font-size:14px;line-height:1.85}
  .rd-assure-sub{font-size:12px}
  .rd-map-alt{font-size:12px}
}

/* ============================================================
   スクール：約束しないこと／約束すること／向かない方
   ============================================================ */
.sc-promise{
  padding:clamp(46px,6vw,84px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper-2);
}
.sp-k{
  margin:0 0 10px;font-size:10px;letter-spacing:.28em;
  color:var(--gold-text);font-weight:700;
}
.sp-h{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(20px,2.4vw,27px);letter-spacing:.06em;
  color:var(--ink);line-height:1.6;
}
.sp-h2{margin-top:clamp(30px,3.6vw,44px)}
.sp-h2::before{
  content:"";display:block;width:34px;height:1px;
  background:var(--hair);margin-bottom:18px;
}

.sp-no,.sp-yes,.sp-who{
  list-style:none;margin:16px 0 0;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--hair);
}
.sp-no li,.sp-yes li,.sp-who li{
  position:relative;
  padding:13px 10px 13px 26px;
  font-size:clamp(12.5px,1.1vw,13.5px);line-height:1.85;
  letter-spacing:.02em;color:var(--body);
  border-bottom:1px solid var(--hair-soft);
}
.sp-no li:nth-child(odd),
.sp-yes li:nth-child(odd),
.sp-who li:nth-child(odd){border-right:1px solid var(--hair-soft)}

/* 約束しないこと：× と抑えた色 */
.sp-no li{color:#6E6156}
.sp-no li::before{
  content:"—";position:absolute;left:6px;top:13px;
  color:var(--gold-text);opacity:.7;font-weight:700;
}

/* 約束すること：・ と濃い文字 */
.sp-yes li{color:var(--ink)}
.sp-yes li::before{
  content:"";position:absolute;left:8px;top:22px;
  width:6px;height:6px;border-radius:50%;
  background:var(--terra);
}

/* 向かない方：かっこよく、小さめ */
.sp-who li{color:#5C5147;font-size:clamp(12px,1.05vw,13px)}

.sp-foot{
  margin:clamp(24px,3vw,34px) 0 0;
  font-size:clamp(12.5px,1.1vw,13.5px);line-height:2.05;
  letter-spacing:.02em;color:var(--ink);
}
.sp-note{
  margin:14px 0 0;font-size:11.5px;line-height:1.95;
  letter-spacing:.02em;color:var(--body);opacity:.72;
}

@media (max-width:700px){
  .sp-no,.sp-yes,.sp-who{grid-template-columns:1fr}
  .sp-no li:nth-child(odd),
  .sp-yes li:nth-child(odd),
  .sp-who li:nth-child(odd){border-right:0}
  .sp-no li,.sp-yes li,.sp-who li{font-size:12.5px;padding:12px 8px 12px 24px}
  .sp-h{font-size:20px}
}

/* ============================================================
   スクール：理念と約束（書き直し版）
   ============================================================ */
.sc-promise .sp-k{
  margin:0 0 12px;font-size:10px;letter-spacing:.28em;
  color:var(--gold-text);font-weight:700;
}
.sp-lead{
  margin:0;font-family:var(--font-hero);font-weight:500;
  font-size:clamp(21px,2.7vw,31px);line-height:1.65;letter-spacing:.05em;
  color:var(--ink);
}
.sp-lead2{
  margin:16px 0 0;font-size:clamp(12.5px,1.1vw,13.5px);
  line-height:2.05;letter-spacing:.02em;color:var(--body);
}
.sp-idea{
  margin:clamp(22px,2.8vw,32px) 0 0;
  padding:clamp(16px,2vw,22px) clamp(16px,2vw,24px);
  border-left:2px solid var(--terra);
  background:#fff;
}
.sp-idea p{
  margin:0;font-size:clamp(12.5px,1.1vw,13.5px);
  line-height:2.05;letter-spacing:.02em;color:var(--body);
}
.sp-idea p+p{margin-top:10px}
.sp-idea p:last-child{color:var(--ink)}

.sp-h{
  margin:clamp(32px,4vw,48px) 0 0;
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(16px,1.7vw,19px);letter-spacing:.05em;color:var(--ink);
  padding-bottom:10px;border-bottom:1px solid var(--hair);
}
.sp-h2{margin-top:clamp(30px,3.6vw,42px)}

.sp-list{
  list-style:none;margin:0;padding:0;
  counter-reset:none;
}
.sp-list li{
  display:grid;grid-template-columns:34px 1fr;
  gap:clamp(10px,1.4vw,16px);
  padding:clamp(16px,2vw,22px) 0;
  border-bottom:1px solid var(--hair-soft);
}
.sp-list .n{
  font-family:var(--font-num);font-weight:700;
  font-size:12px;letter-spacing:.06em;color:var(--terra2);
  padding-top:4px;
}
.sp-list b{
  display:block;font-family:var(--font-hero);font-weight:600;
  font-size:clamp(14px,1.35vw,16px);line-height:1.75;
  letter-spacing:.03em;color:var(--ink);
}
.sp-list p{
  margin:7px 0 0;font-size:12.5px;line-height:2;
  letter-spacing:.02em;color:var(--body);opacity:.9;
}

.sp-who2{
  list-style:none;margin:14px 0 0;padding:0;
}
.sp-who2 li{
  position:relative;padding:10px 0 10px 22px;
  font-size:clamp(12.5px,1.1vw,13.5px);line-height:1.95;
  letter-spacing:.02em;color:var(--ink);
  border-bottom:1px solid var(--hair-soft);
}
.sp-who2 li::before{
  content:"";position:absolute;left:4px;top:19px;
  width:5px;height:5px;border-radius:50%;background:var(--terra);
}
.sp-who3{
  margin:14px 0 0;font-size:11.5px;line-height:1.9;
  letter-spacing:.02em;color:var(--body);opacity:.75;
}

.sp-cta{
  margin:clamp(28px,3.4vw,40px) 0 0;
  padding:clamp(20px,2.4vw,28px);
  background:var(--paper);border:1px solid var(--hair);
}
.sp-cta-t{
  margin:0;font-family:var(--font-hero);font-weight:600;
  font-size:clamp(13.5px,1.3vw,15.5px);line-height:1.95;
  letter-spacing:.03em;color:var(--ink);
}
.sp-cta-s{
  margin:10px 0 0;font-size:12px;line-height:1.95;
  letter-spacing:.02em;color:var(--body);opacity:.88;
}
.sp-cta-btn{margin-top:clamp(16px,2vw,22px)}

.sp-note{
  margin:clamp(20px,2.4vw,28px) 0 0;
  font-size:11.5px;line-height:1.95;letter-spacing:.02em;
  color:var(--body);opacity:.72;
}

@media (max-width:700px){
  .sp-lead{font-size:21px;line-height:1.7}
  .sp-idea{padding:14px 15px}
  .sp-list li{grid-template-columns:26px 1fr;gap:8px;padding:14px 0}
  .sp-list b{font-size:14px;line-height:1.7}
  .sp-list p{font-size:12.5px;line-height:1.95}
  .sp-cta{padding:16px 15px}
  .sp-cta-btn{width:100%;text-align:center;justify-content:center}
}

/* ============================================================
   鑑定書の中身を見る：モーダル
   ============================================================ */
.bf-link.bf-open{
  appearance:none;border:1px solid var(--hair);background:transparent;
  font-family:var(--font-body);cursor:pointer;
}
.bf-link.bf-open:hover{border-color:var(--terra);color:var(--terra2)}

.rep-modal{
  position:fixed;inset:0;z-index:200;display:none;
}
.rep-modal.on{display:block}
.rep-back{
  position:absolute;inset:0;background:rgba(28,22,16,.72);
  backdrop-filter:blur(2px);
}
.rep-panel{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(760px, calc(100vw - 32px));
  max-height:calc(100vh - 48px);
  overflow-y:auto;
  background:var(--paper);
  border:1px solid var(--hair);
  padding:clamp(20px,3vw,34px);
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.rep-x{
  position:absolute;right:12px;top:10px;
  appearance:none;border:0;background:transparent;cursor:pointer;
  font-size:22px;line-height:1;color:var(--body);padding:6px 8px;
}
.rep-x:hover{color:var(--terra2)}
.rep-k{
  margin:0 0 8px;font-size:10px;letter-spacing:.24em;
  color:var(--gold-text);font-weight:700;
}
.rep-h{
  margin:0 0 clamp(14px,2vw,20px);
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(17px,2vw,21px);letter-spacing:.04em;color:var(--ink);
}
.rep-view{
  position:relative;background:var(--paper-2);
  border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;
  padding:clamp(10px,1.4vw,16px);
  min-height:220px;
}
.rep-img{
  display:block;width:auto;max-width:100%;
  max-height:56vh;object-fit:contain;
  box-shadow:0 6px 18px rgba(42,33,24,.18);
}
.rep-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  appearance:none;border:1px solid var(--hair);background:rgba(251,246,240,.92);
  width:38px;height:38px;border-radius:50%;cursor:pointer;
  font-size:20px;line-height:1;color:var(--ink);
  display:flex;align-items:center;justify-content:center;
}
.rep-nav:hover{background:var(--paper);border-color:var(--terra)}
.rep-nav.prev{left:8px}
.rep-nav.next{right:8px}
.rep-cap{
  margin:12px 0 0;font-size:12.5px;line-height:1.85;
  letter-spacing:.02em;color:var(--body);text-align:center;
}
.rep-dots{
  display:flex;gap:6px;justify-content:center;margin-top:12px;
}
.rep-dots button{
  appearance:none;border:0;cursor:pointer;padding:0;
  width:7px;height:7px;border-radius:50%;
  background:var(--hair);transition:background .15s;
}
.rep-dots button.on{background:var(--terra)}
.rep-note{
  margin:14px 0 0;font-size:11px;line-height:1.8;
  letter-spacing:.02em;color:var(--body);opacity:.72;
}
.rep-link{
  display:inline-block;margin-top:14px;
  font-size:12.5px;color:var(--terra2);
  text-decoration:underline;text-underline-offset:3px;font-weight:600;
}

@media (max-width:700px){
  .rep-panel{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:18px 14px 22px}
  .rep-img{max-height:48vh}
  .rep-nav{width:34px;height:34px;font-size:18px}
  .rep-cap{font-size:12px}
}

/* ============================================================
   スクール：OUR STANCE / WHY / WISH / PROMISE / FIT / CLOSE
   ============================================================ */
.sc-vow{
  padding:clamp(48px,6.4vw,88px) 0;
  border-top:1px solid var(--hair);
  background:var(--paper-2);
}
.sc-vow .vow-k{
  margin:0 0 14px;font-size:10px;letter-spacing:.28em;
  color:var(--gold-text);font-weight:700;
}
.vow-k2{
  margin:0 0 14px;font-size:10px;letter-spacing:.28em;
  color:var(--gold-text);font-weight:700;
}
.vow-mt{margin-top:clamp(40px,5vw,64px)}

.sc-vow .vow-h{
  margin:0 0 clamp(18px,2.4vw,26px);
  font-family:var(--font-hero);font-weight:500;
  font-size:clamp(21px,2.8vw,32px);line-height:1.7;letter-spacing:.05em;
  color:var(--ink);
}
.vow-h3{
  margin:0 0 clamp(14px,1.8vw,18px);
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(17px,1.9vw,22px);line-height:1.75;letter-spacing:.05em;
  color:var(--ink);
}

.vow-body p{
  margin:0 0 1em;font-size:clamp(12.5px,1.1vw,13.5px);
  line-height:2.1;letter-spacing:.02em;color:var(--body);
}
.vow-body p:first-child{color:var(--ink)}
.vow-body p:last-child{margin-bottom:0}

/* なぜここに */
.vow-why{
  margin:clamp(36px,4.6vw,58px) 0 0;
  padding:clamp(20px,2.6vw,30px);
  background:#fff;border:1px solid var(--hair);
}
/* 込めた想い */
.vow-wish{
  margin:clamp(30px,3.8vw,46px) 0 0;
  padding:clamp(20px,2.6vw,30px);
  background:linear-gradient(var(--paper),var(--paper-2));
  border-left:2px solid var(--terra);
}

/* PROMISE */
.vow-sub{
  margin:0 0 8px;font-size:11.5px;letter-spacing:.12em;
  color:#7A6A58;font-weight:700;
}
.vow-sub2{margin-top:clamp(22px,2.8vw,30px)}
.vow-no,.vow-yes{
  list-style:none;margin:0;padding:0;
}
.vow-no li,.vow-yes li{
  position:relative;
  padding:14px 4px 14px 26px;
  font-size:clamp(12.5px,1.1vw,13.5px);line-height:1.95;
  letter-spacing:.02em;
  border-bottom:1px solid var(--hair-soft);
}
.vow-no li{color:#6E6156}
.vow-no li::before{
  content:"\2014";position:absolute;left:4px;top:14px;
  color:var(--gold-text);opacity:.75;font-weight:700;
}
.vow-yes li{color:var(--ink)}
.vow-yes li::before{
  content:"";position:absolute;left:7px;top:22px;
  width:6px;height:6px;border-radius:50%;background:var(--terra);
}

/* 向かない／来てほしい */
.vow-fit{
  margin:clamp(34px,4.2vw,52px) 0 0;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--hair);
}
.vow-fit-col{padding:clamp(18px,2.2vw,26px) clamp(12px,1.6vw,20px)}
.vow-fit-col+.vow-fit-col{border-left:1px solid var(--hair)}
.vow-fit-col h4{
  margin:0 0 12px;font-family:var(--font-hero);font-weight:600;
  font-size:clamp(13.5px,1.4vw,15.5px);letter-spacing:.06em;
}
.vow-fit-col.no h4{color:#6E6156}
.vow-fit-col.yes h4{color:var(--terra2)}
.vow-fit-col ul{
  list-style:none;margin:0;padding:0;
}
.vow-fit-col li{
  position:relative;padding:8px 0 8px 18px;
  font-size:12.5px;line-height:1.9;letter-spacing:.02em;color:var(--body);
}
.vow-fit-col li::before{
  content:"";position:absolute;left:2px;top:17px;
  width:4px;height:4px;border-radius:50%;background:var(--hair);
}
.vow-fit-col.yes li::before{background:var(--terra)}

/* 締め */
.vow-close{
  margin:clamp(36px,4.6vw,56px) 0 0;
  padding:clamp(22px,2.8vw,32px);
  background:var(--ink);
}
.vow-close .vow-h3{color:var(--paper)}
.vow-close .vow-body p{color:rgba(251,246,240,.86)}
.vow-close .vow-body p:first-child{color:var(--paper)}
.vow-btn{
  margin-top:clamp(16px,2vw,22px);
  background:var(--paper);color:var(--ink);border-color:var(--paper);
}
.vow-btn:hover{background:var(--paper-2);color:var(--ink)}

.vow-note{
  margin:clamp(18px,2.2vw,26px) 0 0;
  font-size:11.5px;line-height:1.95;letter-spacing:.02em;
  color:var(--body);opacity:.72;
}

@media (max-width:700px){
  .sc-vow .vow-h{font-size:21px;line-height:1.7}
  .vow-h3{font-size:17px}
  .vow-why,.vow-wish,.vow-close{padding:17px 15px}
  .vow-fit{grid-template-columns:1fr}
  .vow-fit-col+.vow-fit-col{border-left:0;border-top:1px solid var(--hair)}
  .vow-no li,.vow-yes li{font-size:12.5px;line-height:1.95}
  .vow-btn{width:100%;text-align:center;justify-content:center}
}

/* スクール：ヒーローのサブタイトル */
.sc-sub{
  margin:0 0 14px;
  font-family:var(--font-hero);font-weight:600;
  font-size:clamp(13.5px,1.4vw,16px);line-height:1.85;letter-spacing:.04em;
  color:var(--ink);
}

/* トップ：何をやっているかの1行 */
.hero-what{
  margin:0 0 20px;
  font-size:clamp(12px,1.05vw,13.5px);line-height:1.9;letter-spacing:.02em;
  color:var(--body);
  padding-left:12px;border-left:2px solid var(--gold-soft);
}

@media (max-width:700px){
  .sc-sub{font-size:13.5px;line-height:1.8}
  .hero-what{font-size:12px;line-height:1.85;padding-left:10px}
}

/* ============================================================
   プロフィール：写真は控えめに（4枚を小さく横並び）
   ============================================================ */
.photo-strip{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(8px,1.2vw,14px);
  margin-top:clamp(18px,2.4vw,26px);
}
.photo-strip figure{margin:0}
.photo-strip img{
  display:block;width:100%;height:auto;
  aspect-ratio:1/1;object-fit:cover;object-position:center 30%;
  border:1px solid var(--hair);
  filter:saturate(.94);
}
.photo-strip figcaption{margin-top:8px}
.photo-strip .pb-k{
  display:block;font-size:9.5px;letter-spacing:.14em;
  color:var(--gold-text);font-weight:700;margin-bottom:2px;
}
.photo-strip p{
  margin:0;font-size:10.5px;line-height:1.7;
  letter-spacing:.01em;color:var(--body);opacity:.78;
}

@media (max-width:900px){
  .photo-strip{grid-template-columns:repeat(2, 1fr);gap:10px}
  .photo-strip p{font-size:11px}
}
