/* ================================================================
   style.css — マダム久露杜の通信鑑定 v1 (全ページ共通)
   ================================================================ */

:root{
  --bg-0:#0a0612;
  --bg-1:#15102a;
  --bg-2:#1e1740;
  --ink:#f3ecd9;
  --ink-soft:#d2c5a8;
  --ink-mute:#8a7fa4;
  --gold:#d4af6f;
  --gold-soft:#e8c98a;
  --gold-deep:#9b7a3f;
  --plum:#3a1d52;
  --line:rgba(212,175,111,.25);
  --serif-en:"Cormorant Garamond","Times New Roman",serif;
  --serif-jp:"Shippori Mincho","Yu Mincho","游明朝",serif;
  --cinzel:"Cinzel",serif;
  --err:#e89a8a;
  --ok:#a8d4a8;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--bg-0);color:var(--ink);font-family:var(--serif-jp);-webkit-font-smoothing:antialiased;line-height:1.75;}
body{background:var(--bg-0);min-height:100vh;overflow-x:hidden;}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    radial-gradient(1px 1px at 20% 15%,rgba(255,250,230,.8),transparent 50%),
    radial-gradient(1px 1px at 70% 25%,rgba(255,250,230,.6),transparent 50%),
    radial-gradient(1px 1px at 40% 60%,rgba(255,250,230,.5),transparent 50%),
    radial-gradient(1px 1px at 85% 70%,rgba(255,250,230,.7),transparent 50%),
    radial-gradient(1px 1px at 15% 85%,rgba(255,250,230,.4),transparent 50%),
    radial-gradient(2px 2px at 60% 40%,rgba(255,250,230,.9),transparent 50%),
    radial-gradient(1px 1px at 30% 35%,rgba(255,250,230,.5),transparent 50%),
    radial-gradient(1px 1px at 90% 50%,rgba(255,250,230,.6),transparent 50%);
  background-size:100% 100%;
  opacity:.7;
}

/* ---- ステージ共通 ---- */
.stage{max-width:480px;margin:0 auto;position:relative;z-index:1;}

/* TOP: ステージ背景 */
[data-screen-label="V1 / Top"].stage{
  background:
    radial-gradient(ellipse 90% 22% at 50% 0%,rgba(155,122,63,.18),transparent 60%),
    radial-gradient(ellipse 80% 18% at 90% 8%,rgba(74,30,120,.45),transparent 60%),
    radial-gradient(ellipse 80% 16% at 10% 18%,rgba(58,29,82,.5),transparent 60%),
    linear-gradient(180deg,#0a0612 0%,#150f28 45%,#0a0612 100%);
}
/* TERMS / PRIVACY: ステージ幅 */
[data-screen-label="V1 / TERMS"].stage,
[data-screen-label="V1 / PRIVACY"].stage{max-width:760px;}

/* ---- ヘッダー ---- */
header.top{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg,rgba(10,6,18,.95) 0%,rgba(10,6,18,.7) 80%,rgba(10,6,18,0) 100%);
  backdrop-filter:blur(8px);
}
[data-screen-label="V1 / School"] header.top,
[data-screen-label="V1 / Apply"] header.top,
[data-screen-label="V1 / Confirm"] header.top,
[data-screen-label="V1 / Thanks"] header.top,
[data-screen-label="V1 / TERMS"] header.top,
[data-screen-label="V1 / PRIVACY"] header.top{
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(10,6,18,.95),rgba(10,6,18,.7));
}
.brand{display:flex;align-items:center;}
.brand img{height:30px;width:auto;display:block;}
.back{color:var(--gold);text-decoration:none;font-family:var(--cinzel);font-size:11px;letter-spacing:.2em;}
header.top .sp{width:48px;}
.menu-btn{background:none;border:none;color:var(--gold);font-family:var(--cinzel);font-size:11px;letter-spacing:.2em;cursor:pointer;display:flex;align-items:center;gap:6px;}
.menu-btn .bars{display:inline-flex;flex-direction:column;gap:3px;}
.menu-btn .bars span{display:block;width:18px;height:1px;background:var(--gold);}
.desk-nav{display:none;}
.header-cta{display:none;}
.ig-head{display:none;}

/* ---- CTA ---- */
.cta{
  display:block;text-align:center;padding:18px 24px;margin:32px 24px 0;
  background:linear-gradient(180deg,#d4af6f 0%,#9b7a3f 100%);
  color:#1a1230;font-family:var(--serif-jp);font-weight:600;
  font-size:16px;letter-spacing:.18em;text-decoration:none;
  border:1px solid var(--gold-soft);
  box-shadow:0 12px 32px rgba(212,175,111,.25),inset 0 1px 0 rgba(255,255,255,.4);
  position:relative;
}
.cta::before,.cta::after{content:"✦";position:absolute;top:50%;transform:translateY(-50%);color:#1a1230;font-size:10px;opacity:.7;}
.cta::before{left:24px;}
.cta::after{right:24px;}
.cta-ghost{
  display:block;text-align:center;padding:14px 24px;margin:12px 24px 0;
  color:#3a1d52;font-size:13px;letter-spacing:.2em;text-decoration:none;font-weight:600;
  border:1px solid #6e2a4e;background:rgba(255,255,255,.55);
}

/* ---- セクション共通 ---- */
section{padding:80px 24px;position:relative;}
[data-screen-label="V1 / School"] section{padding:60px 24px;}
.eyebrow{
  font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);
  text-align:center;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;
}
.eyebrow::before,.eyebrow::after{content:"";display:block;width:30px;height:1px;background:var(--gold);opacity:.5;}
.section-title{font-family:var(--serif-jp);font-weight:500;font-size:26px;line-height:1.5;text-align:center;margin-bottom:8px;letter-spacing:.05em;}
.section-lede{text-align:center;color:var(--ink-soft);font-size:13px;line-height:1.9;max-width:32em;margin:14px auto 0;}

/* ================================================================
   TOP (index) ページ固有
   ================================================================ */
[data-screen-label="V1 / Top"] .hero{
  padding:30px 24px 70px;text-align:center;position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,.05) 30%,rgba(255,255,255,0) 55%),url('assets/bg-watercolor.jpg');
  background-size:cover;background-position:center 30%;
}
[data-screen-label="V1 / Top"] .hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:160px;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,6,18,0) 0%,var(--bg-0) 100%);
}
[data-screen-label="V1 / Top"] .hero > *{position:relative;z-index:2;}
[data-screen-label="V1 / Top"] .hero .tag{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:#6b4d20;display:inline-flex;align-items:center;gap:14px;text-transform:uppercase;}
[data-screen-label="V1 / Top"] .hero .tag::before,
[data-screen-label="V1 / Top"] .hero .tag::after{content:"";display:block;width:24px;height:1px;background:#6b4d20;opacity:.5;}
[data-screen-label="V1 / Top"] .hero-mark{margin:30px auto 30px;width:290px;height:250px;position:relative;}
[data-screen-label="V1 / Top"] .hero-mark .glow{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55) 0%,rgba(255,255,255,.15) 45%,transparent 72%);filter:blur(12px);z-index:0;}
[data-screen-label="V1 / Top"] .hero-mark img{position:absolute;width:auto;display:block;}
[data-screen-label="V1 / Top"] .hero-mark .sc-moon{height:150px;left:18px;top:26px;z-index:1;opacity:.96;filter:drop-shadow(0 6px 14px rgba(60,40,90,.25));animation:floatA 7s ease-in-out infinite;}
[data-screen-label="V1 / Top"] .hero-mark .sc-card{height:150px;left:50%;top:52%;transform:translate(-50%,-50%);z-index:3;filter:drop-shadow(0 12px 22px rgba(60,40,90,.3));animation:floatB 6s ease-in-out infinite;}
[data-screen-label="V1 / Top"] .hero-mark .sc-cat{height:84px;right:20px;bottom:8px;z-index:4;filter:drop-shadow(0 6px 12px rgba(60,40,90,.28));}
[data-screen-label="V1 / Top"] .hero-mark .sc-star{z-index:2;animation:tw 3.6s ease-in-out infinite;}
[data-screen-label="V1 / Top"] .hero-mark .sc-star.s1{height:24px;top:6px;left:120px;}
[data-screen-label="V1 / Top"] .hero-mark .sc-star.s2{height:16px;top:78px;right:30px;animation-delay:.9s;}
[data-screen-label="V1 / Top"] .hero-mark .sc-star.s3{height:13px;bottom:54px;left:30px;animation-delay:1.7s;}
@keyframes tw{0%,100%{opacity:.4;transform:scale(1);}50%{opacity:1;transform:scale(1.2);}}
@keyframes floatA{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@keyframes floatB{0%,100%{transform:translate(-50%,-50%);}50%{transform:translate(-50%,-54%);}}
[data-screen-label="V1 / Top"] .hero h1{font-family:var(--serif-jp);font-weight:600;font-size:30px;line-height:1.5;letter-spacing:.04em;color:#2a1a48;margin-bottom:14px;text-shadow:0 1px 12px rgba(255,255,255,.5);}
[data-screen-label="V1 / Top"] .hero h1 .em{color:#6e2a4e;background:linear-gradient(180deg,#7d2f56 0%,#5a2370 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
[data-screen-label="V1 / Top"] .hero .sub{font-size:13px;color:#4a3d6a;letter-spacing:.12em;margin-top:8px;font-weight:500;}
[data-screen-label="V1 / Top"] .hero .credentials{margin-top:34px;display:flex;justify-content:center;gap:18px;font-family:var(--cinzel);font-size:10px;letter-spacing:.2em;color:var(--gold-soft);}
[data-screen-label="V1 / Top"] .hero .credentials > div{display:flex;flex-direction:column;align-items:center;gap:4px;}
[data-screen-label="V1 / Top"] .hero .credentials .num{font-size:28px;color:var(--gold);font-weight:500;letter-spacing:0;}
[data-screen-label="V1 / Top"] .hero .credentials .lbl{opacity:.8;}
[data-screen-label="V1 / Top"] .hero .credentials .sep{width:1px;height:34px;background:var(--line);align-self:center;}
[data-screen-label="V1 / Top"] .hero-actions .cta{margin-left:0;margin-right:0;}
[data-screen-label="V1 / Top"] .hero-actions .cta-ghost{margin-left:0;margin-right:0;}

.service-card{margin-top:40px;padding:36px 28px;background:linear-gradient(180deg,rgba(58,29,82,.4) 0%,rgba(21,15,42,.6) 100%);border:1px solid var(--line);position:relative;}
.service-card::before,.service-card::after{content:"";position:absolute;width:24px;height:24px;border:1px solid var(--gold);}
.service-card::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.service-card::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.service-card h3{font-family:var(--serif-jp);font-size:18px;font-weight:500;color:var(--gold-soft);text-align:center;letter-spacing:.12em;margin-bottom:18px;}
.service-card .price{text-align:center;margin:24px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.service-card .price .num{font-family:var(--serif-en);font-size:42px;color:var(--gold);font-weight:500;letter-spacing:.04em;}
.service-card .price .tax{font-size:12px;color:var(--ink-mute);letter-spacing:.15em;display:block;margin-top:4px;}
.service-card .price .lbl{display:block;font-size:11px;color:var(--gold);letter-spacing:.3em;margin-bottom:8px;font-family:var(--cinzel);}
.service-card p{font-size:13px;color:var(--ink-soft);line-height:1.9;}

.reasons{display:flex;flex-direction:column;gap:18px;margin-top:36px;}
.reason{display:flex;gap:18px;padding:24px 20px;background:linear-gradient(180deg,rgba(21,15,42,.6) 0%,rgba(10,6,18,.4) 100%);border:1px solid var(--line);position:relative;}
.reason .num{flex-shrink:0;width:46px;text-align:center;font-family:var(--serif-en);font-style:italic;font-size:32px;color:var(--gold);line-height:1;border-right:1px solid var(--line);padding-right:18px;}
.reason .num small{display:block;font-style:normal;font-family:var(--cinzel);font-size:9px;color:var(--gold-soft);letter-spacing:.3em;margin-bottom:4px;}
.reason .body h4{font-family:var(--serif-jp);font-size:15px;font-weight:600;color:var(--gold-soft);margin-bottom:6px;letter-spacing:.05em;}
.reason .body p{font-size:12.5px;color:var(--ink-soft);line-height:1.85;}

.process{margin-top:36px;position:relative;}
.process::before{content:"";position:absolute;left:23px;top:30px;bottom:30px;width:1px;background:linear-gradient(180deg,var(--gold) 0%,var(--line) 50%,var(--gold) 100%);opacity:.5;}
.step{display:flex;gap:20px;margin-bottom:32px;position:relative;}
.step:last-child{margin-bottom:0;}
.step .dot{flex-shrink:0;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d4af6f 0%,#6b4d20 100%);display:flex;align-items:center;justify-content:center;font-family:var(--cinzel);font-size:13px;color:#1a1230;font-weight:600;box-shadow:0 0 0 4px var(--bg-0),0 0 20px rgba(212,175,111,.4);position:relative;z-index:2;}
.step .content{padding-top:4px;flex:1;}
.step .content .step-lbl{font-family:var(--cinzel);font-size:9px;letter-spacing:.3em;color:var(--gold-soft);}
.step .content h4{font-size:16px;color:var(--ink);margin:4px 0 8px;font-weight:500;letter-spacing:.05em;}
.step .content p{font-size:12.5px;color:var(--ink-soft);line-height:1.85;}
.step .content .meta{font-size:11px;color:var(--gold-soft);margin-top:6px;font-family:var(--cinzel);letter-spacing:.2em;}
/* thank ページの .step 内 .c 要素 */
.step .c h4{font-size:15px;color:var(--ink);margin-bottom:5px;font-weight:500;letter-spacing:.04em;}
.step .c p{font-size:12.5px;color:var(--ink-soft);line-height:1.85;}
.step .c .amt{font-family:var(--serif-en);font-style:italic;font-size:20px;color:var(--gold);margin-top:4px;}

.voices{margin-top:40px;display:flex;flex-direction:column;gap:24px;}
.voice{padding:30px 24px;background:rgba(21,15,42,.5);border:1px solid var(--line);position:relative;}
.voice::before{content:"\201C";position:absolute;top:-4px;left:16px;font-family:var(--serif-en);font-size:80px;color:var(--gold);opacity:.4;line-height:1;}
.voice .stars{color:var(--gold);font-size:15px;letter-spacing:.15em;margin-bottom:14px;}
.voice p{font-size:13.5px;color:var(--ink-soft);line-height:1.95;}
.voice .who{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-family:var(--cinzel);font-size:10px;color:var(--gold-soft);letter-spacing:.2em;}

.faq{margin-top:36px;}
details.faq-item{border-bottom:1px solid var(--line);padding:0;}
details.faq-item summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;align-items:flex-start;gap:16px;}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item .q-mark{flex-shrink:0;width:28px;height:28px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif-en);font-style:italic;font-size:15px;color:var(--gold);}
details.faq-item .q-text{flex:1;font-size:14.5px;color:var(--ink);line-height:1.6;font-weight:500;}
details.faq-item .toggle{flex-shrink:0;color:var(--gold);font-size:18px;line-height:1;transition:transform .25s;align-self:center;}
details.faq-item[open] .toggle{transform:rotate(45deg);}
details.faq-item .answer{padding:0 0 26px 44px;font-size:13px;color:var(--ink-soft);line-height:1.95;}

.profile{margin-top:40px;padding:40px 28px;background:linear-gradient(180deg,rgba(58,29,82,.5) 0%,rgba(10,6,18,.7) 100%);border:1px solid var(--line);text-align:center;position:relative;}
.profile .frame{width:180px;height:180px;margin:0 auto 28px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 3px var(--gold-deep), 0 0 0 5px rgba(212,175,111,.15), 0 0 36px rgba(212,175,111,.35);}
.profile .frame::before,.profile .frame::after,.profile .frame .c1,.profile .frame .c2{display:none;}
.profile .frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;filter:brightness(1.04) saturate(1.04);}
.profile h3{font-family:var(--serif-jp);font-size:22px;font-weight:500;color:var(--gold-soft);margin-bottom:6px;letter-spacing:.1em;}
.profile .romaji{font-family:var(--cinzel);font-size:11px;letter-spacing:.4em;color:var(--gold);}
.profile-bio{margin-top:24px;font-size:13px;color:var(--ink-soft);line-height:2;text-align:left;}
.profile-bio p{margin-bottom:14px;}
.profile-creed{margin-top:20px;padding:20px 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;}
.profile-creed .q{color:var(--gold-soft);font-family:var(--serif-jp);font-weight:600;font-size:15px;line-height:1.7;margin-bottom:12px;}
.profile-creed p{font-size:12.5px;color:var(--ink-soft);line-height:1.95;margin-bottom:0;text-align:left;}
.profile-stats{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:24px;border-top:1px solid var(--line);}
.profile-stats div{text-align:center;}
.profile-stats .n{font-family:var(--serif-en);font-size:32px;color:var(--gold);font-weight:500;}
.profile-stats .l{font-size:10px;color:var(--ink-soft);letter-spacing:.2em;font-family:var(--cinzel);margin-top:2px;}

.insta{margin:8px 24px 0;padding:34px 26px;text-align:center;border:1px solid var(--line);position:relative;overflow:hidden;background:radial-gradient(circle at 80% 10%,rgba(212,175,111,.12),transparent 55%),linear-gradient(180deg,rgba(58,29,82,.45) 0%,rgba(21,15,42,.6) 100%);}
.insta .ig-eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:12px;text-transform:uppercase;margin-bottom:16px;}
.insta .ig-eyebrow::before,.insta .ig-eyebrow::after{content:"";width:24px;height:1px;background:var(--gold);opacity:.5;}
.insta .ig-glyph{width:62px;height:62px;margin:0 auto 18px;border-radius:16px;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(212,175,111,.18),rgba(58,29,82,.4));box-shadow:0 0 24px rgba(212,175,111,.2);}
.insta .ig-glyph svg{width:30px;height:30px;}
.insta h3{font-family:var(--serif-jp);font-size:20px;font-weight:500;color:var(--ink);letter-spacing:.06em;margin-bottom:8px;}
.insta p{font-size:13px;color:var(--ink-soft);line-height:1.9;max-width:30em;margin:0 auto 8px;}
.insta .handle{font-family:var(--cinzel);font-size:13px;letter-spacing:.18em;color:var(--gold-soft);margin:14px 0 22px;}
.insta .ig-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 30px;text-decoration:none;background:linear-gradient(180deg,#d4af6f,#9b7a3f);color:#1a1230;font-family:var(--serif-jp);font-weight:600;font-size:14px;letter-spacing:.14em;border:1px solid var(--gold-soft);box-shadow:0 10px 26px rgba(212,175,111,.22);}
.insta .ig-btn svg{width:18px;height:18px;}

.announce{margin:48px 24px;padding:30px 24px;border:1px dashed var(--gold);background:rgba(212,175,111,.04);text-align:center;}
.announce .pill{display:inline-block;font-family:var(--cinzel);font-size:10px;letter-spacing:.3em;color:var(--gold);padding:5px 14px;border:1px solid var(--gold);margin-bottom:14px;}
.announce h4{font-family:var(--serif-jp);font-size:18px;color:var(--ink);font-weight:500;margin-bottom:10px;letter-spacing:.06em;}
.announce p{font-size:12.5px;color:var(--ink-soft);line-height:1.9;margin-bottom:14px;}
.announce a{color:var(--gold);font-family:var(--cinzel);font-size:11px;letter-spacing:.25em;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;}

.secret{margin:0 24px 60px;padding:28px 24px;background:linear-gradient(180deg,rgba(10,6,18,.6) 0%,rgba(58,29,82,.3) 100%);border:1px solid var(--line);display:flex;gap:18px;align-items:flex-start;}
.secret .icon{flex-shrink:0;width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:18px;}
.secret h4{font-family:var(--serif-jp);font-size:15px;color:var(--gold-soft);margin-bottom:8px;letter-spacing:.06em;}
.secret p{font-size:12px;color:var(--ink-soft);line-height:1.9;}

.time-feature{margin:60px 24px 0;padding:48px 28px;text-align:center;border:1px solid var(--gold);position:relative;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(212,175,111,.15),transparent 70%),linear-gradient(180deg,rgba(58,29,82,.5) 0%,rgba(10,6,18,.7) 100%);}
.time-feature::before,.time-feature::after,.time-feature .tc-tr,.time-feature .tc-bl{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--gold);}
.time-feature::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.time-feature::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.tf-eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;}
.tf-num{font-family:var(--serif-en);font-style:italic;font-weight:500;font-size:96px;line-height:1;color:var(--gold);background:linear-gradient(180deg,#f3dca6 0%,#d4af6f 60%,#9b7a3f 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block;}
.tf-num small{font-family:var(--cinzel);font-style:normal;font-size:12px;letter-spacing:.35em;display:block;margin-top:8px;-webkit-text-fill-color:var(--gold);color:var(--gold);}
.tf-line{width:48px;height:1px;background:var(--gold);margin:24px auto;opacity:.6;}
.tf-title{font-family:var(--serif-jp);font-size:18px;font-weight:500;color:var(--ink);line-height:1.7;letter-spacing:.06em;margin-bottom:18px;}
.tf-body{font-size:13px;color:var(--ink-soft);line-height:1.95;max-width:30em;margin:0 auto;}
.time-feature .tf-list{list-style:none;padding:0;display:inline-block;text-align:left;margin-top:18px;}
.time-feature .tf-list li{display:flex;align-items:baseline;gap:2px;font-size:13px;color:var(--ink-soft);line-height:1.9;margin-bottom:8px;}
.time-feature .tf-list li::before{content:"・";flex-shrink:0;color:var(--gold-soft);font-size:16px;}

.phases{display:flex;justify-content:center;gap:24px;padding:36px 24px 0;}
.phases .phase{width:14px;height:14px;border-radius:50%;background:var(--gold);opacity:.4;}
.phases .phase.f{opacity:1;box-shadow:0 0 12px var(--gold);}
.phases .phase.h{background:linear-gradient(90deg,var(--gold) 50%,transparent 50%);opacity:.7;}
.phases .phase.q{background:linear-gradient(90deg,var(--gold) 25%,transparent 25%);opacity:.5;}
.phases .phase.n{background:transparent;border:1px solid var(--gold);opacity:.4;}

.ornament{text-align:center;margin:0;padding:48px 0 0;color:var(--gold);font-size:14px;letter-spacing:1em;opacity:.7;}

.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:60;background:linear-gradient(180deg,rgba(10,6,18,0) 0%,rgba(10,6,18,.95) 30%);padding:16px 20px 18px;display:flex;justify-content:center;pointer-events:none;}
.sticky-cta a{pointer-events:auto;max-width:440px;width:100%;background:linear-gradient(180deg,#d4af6f 0%,#9b7a3f 100%);color:#1a1230;font-family:var(--serif-jp);font-weight:600;padding:15px 24px;text-align:center;text-decoration:none;font-size:14px;letter-spacing:.18em;border:1px solid var(--gold-soft);box-shadow:0 12px 30px rgba(0,0,0,.5),0 6px 20px rgba(212,175,111,.25);}

/* ================================================================
   SCHOOL ページ固有
   ================================================================ */
[data-screen-label="V1 / School"] .hero{padding:50px 24px 40px;text-align:center;position:relative;}
[data-screen-label="V1 / School"] .hero .eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;text-transform:uppercase;}
[data-screen-label="V1 / School"] .hero .eyebrow::before,
[data-screen-label="V1 / School"] .hero .eyebrow::after{content:"";display:block;width:24px;height:1px;background:var(--gold);opacity:.5;}
[data-screen-label="V1 / School"] .hero h1{font-family:var(--serif-jp);font-weight:500;font-size:30px;letter-spacing:.05em;margin:16px 0 14px;line-height:1.5;}
[data-screen-label="V1 / School"] .hero h1 .em{color:var(--gold-soft);}
[data-screen-label="V1 / School"] .hero .lead{font-size:14px;color:var(--ink-soft);line-height:1.95;max-width:30em;margin:14px auto 0;}

.hero-card{margin:36px auto 0;width:120px;height:170px;position:relative;border:1px solid var(--gold);padding:8px;background:linear-gradient(135deg,rgba(212,175,111,.1),rgba(74,30,120,.2));}
.hero-card::before{content:"";position:absolute;inset:8px;border:1px solid var(--gold);opacity:.5;}
.hero-card .glyph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gold);}
.hero-card .glyph .pen{font-size:34px;}
.hero-card .glyph .lbl{font-family:var(--cinzel);font-size:10px;letter-spacing:.3em;margin-top:8px;}

.who-list{margin-top:36px;display:flex;flex-direction:column;gap:14px;}
.who-list .item{display:flex;gap:14px;padding:18px;background:rgba(255,255,255,.03);border:1px solid var(--line);align-items:flex-start;}
.who-list .item .check{flex-shrink:0;width:28px;height:28px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:14px;}
.who-list .item p{font-size:13.5px;color:var(--ink-soft);line-height:1.85;}

.detail-card{margin-top:36px;padding:32px 24px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(58,29,82,.3) 0%,rgba(21,15,42,.4) 100%);position:relative;}
.detail-card::before,.detail-card::after{content:"";position:absolute;width:20px;height:20px;border:1px solid var(--gold);}
.detail-card::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.detail-card::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.detail-row{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 0;border-bottom:1px dashed var(--line);gap:14px;}
.detail-row:last-child{border-bottom:none;}
.detail-row .lbl{font-family:var(--cinzel);font-size:10px;letter-spacing:.25em;color:var(--gold);min-width:90px;padding-top:3px;}
.detail-row .val{flex:1;font-size:13.5px;color:var(--ink-soft);line-height:1.8;}
.detail-row .val strong{color:var(--ink);font-weight:600;}

.flow-steps{margin-top:36px;position:relative;}
.flow-steps::before{content:"";position:absolute;left:24px;top:30px;bottom:30px;width:1px;background:linear-gradient(180deg,var(--gold),var(--line),var(--gold));opacity:.5;}
.flow-step{display:flex;gap:18px;margin-bottom:24px;}
.flow-step:last-child{margin-bottom:0;}
.flow-step .dot{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--gold),#6b4d20);color:#1a1230;font-family:var(--cinzel);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--bg-0);position:relative;z-index:2;}
.flow-step h4{font-size:14.5px;color:var(--ink);margin-bottom:6px;letter-spacing:.05em;font-weight:500;}
.flow-step p{font-size:12.5px;color:var(--ink-soft);line-height:1.85;}

.cta-box{margin:48px 24px;padding:36px 24px;border:1px solid var(--gold);text-align:center;background:linear-gradient(180deg,rgba(212,175,111,.06),rgba(58,29,82,.3));}
.cta-box h3{font-family:var(--serif-jp);font-size:18px;color:var(--gold-soft);margin-bottom:12px;letter-spacing:.06em;}
.cta-box p{font-size:13px;color:var(--ink-soft);margin-bottom:20px;line-height:1.9;}
.cta-box a{display:block;padding:18px;background:linear-gradient(180deg,#d4af6f,#9b7a3f);color:#1a1230;text-decoration:none;font-weight:600;letter-spacing:.2em;font-size:15px;border:1px solid var(--gold-soft);box-shadow:0 12px 28px rgba(212,175,111,.25);}
.cta-box .note{margin-top:14px;font-family:var(--cinzel);font-size:9.5px;color:var(--ink-mute);letter-spacing:.25em;}

[data-screen-label="V1 / School"] footer .links,
[data-screen-label="V1 / Apply"] footer .links{margin-top:20px;display:flex;flex-direction:column;gap:10px;}
[data-screen-label="V1 / School"] footer .links a,
[data-screen-label="V1 / Apply"] footer .links a{color:var(--ink-soft);text-decoration:none;font-size:11px;letter-spacing:.18em;}

/* ================================================================
   APPLY ページ固有
   ================================================================ */
[data-screen-label="V1 / Apply"] .hero{padding:40px 24px 30px;text-align:center;}
[data-screen-label="V1 / Apply"] .hero .eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;text-transform:uppercase;}
[data-screen-label="V1 / Apply"] .hero .eyebrow::before,
[data-screen-label="V1 / Apply"] .hero .eyebrow::after{content:"";display:block;width:24px;height:1px;background:var(--gold);opacity:.5;}
[data-screen-label="V1 / Apply"] .hero h1{font-family:var(--serif-jp);font-weight:500;font-size:30px;letter-spacing:.05em;margin:14px 0 10px;line-height:1.4;}
[data-screen-label="V1 / Apply"] .hero .sub{color:var(--ink-soft);font-size:13px;letter-spacing:.1em;}

.summary{margin:32px 24px;padding:24px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(58,29,82,.4),rgba(21,15,42,.5));position:relative;}
.summary::before,.summary::after{content:"";position:absolute;width:16px;height:16px;border:1px solid var(--gold);}
.summary::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.summary::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.summary .row{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;}
.summary .row + .row{border-top:1px dashed var(--line);}
.summary .row .l{color:var(--ink-soft);letter-spacing:.1em;}
.summary .row .r{color:var(--gold-soft);font-family:var(--cinzel);letter-spacing:.1em;}
.summary .total{margin-top:14px;padding-top:14px;border-top:1px solid var(--gold);display:flex;justify-content:space-between;align-items:baseline;}
.summary .total .l{color:var(--gold);font-family:var(--cinzel);font-size:11px;letter-spacing:.3em;}
.summary .total .r{font-family:var(--serif-en);color:var(--gold);font-size:32px;font-weight:500;}
[data-screen-label="V1 / Confirm"] .summary{margin-top:24px;padding:22px 24px;}

.progress{display:flex;gap:8px;padding:0 24px;margin-bottom:32px;}
.progress .pip{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;}
.progress .pip .dot{width:24px;height:24px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--cinzel);font-size:10px;color:var(--ink-mute);background:var(--bg-0);}
.progress .pip.act .dot{background:radial-gradient(circle at 35% 30%,var(--gold) 0%,var(--gold-deep) 100%);color:#1a1230;border-color:var(--gold);box-shadow:0 0 0 3px var(--bg-0),0 0 16px rgba(212,175,111,.4);}
.progress .pip.done .dot{border-color:var(--gold);color:var(--gold);}
.progress .pip .l{font-family:var(--cinzel);font-size:8.5px;letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;}
.progress .pip.act .l,.progress .pip.done .l{color:var(--gold);}
[data-screen-label="V1 / Confirm"] .progress{margin-bottom:30px;}
[data-screen-label="V1 / Thanks"] .progress{padding-top:30px;margin-bottom:0;}

form{padding:0 24px 32px;}
.field{margin-bottom:24px;}
.field label{display:block;font-size:13px;color:var(--gold-soft);margin-bottom:8px;letter-spacing:.08em;font-weight:500;}
.field label .req{color:var(--gold);font-family:var(--cinzel);font-size:9px;margin-left:8px;letter-spacing:.2em;padding:2px 6px;border:1px solid var(--gold);}
.field label .opt{color:var(--ink-mute);font-family:var(--cinzel);font-size:9px;margin-left:8px;letter-spacing:.2em;}
.field .hint{font-size:11.5px;color:var(--ink-mute);margin-top:6px;letter-spacing:.05em;line-height:1.7;}
.field input,.field textarea,.field select{width:100%;padding:14px 16px;font-family:var(--serif-jp);font-size:15px;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--ink);line-height:1.5;outline:none;transition:.2s;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);background:rgba(212,175,111,.05);box-shadow:0 0 0 1px var(--gold),0 0 12px rgba(212,175,111,.15);}
.field textarea{min-height:160px;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-mute);}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.opt-grid{display:flex;flex-direction:column;gap:10px;}
.opt-card{display:flex;gap:14px;padding:16px;border:1px solid var(--line);background:rgba(255,255,255,.02);cursor:pointer;transition:.2s;align-items:flex-start;}
.opt-card:hover{border-color:var(--gold-soft);}
.opt-card input{display:none;}
.opt-card .check{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;margin-top:2px;}
.opt-card .check::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold);opacity:0;}
.opt-card input:checked + .check::after{opacity:1;box-shadow:0 0 12px var(--gold);}
.opt-card:has(input:checked){border-color:var(--gold);background:rgba(212,175,111,.06);}
.opt-card .body .t{font-size:14px;color:var(--ink);font-weight:500;margin-bottom:4px;letter-spacing:.05em;}
.opt-card .body .d{font-size:11.5px;color:var(--ink-soft);line-height:1.7;}
.chip-grid{display:flex;flex-wrap:wrap;gap:8px;}
.chip-grid label{cursor:pointer;font-size:12.5px;padding:9px 14px;border:1px solid var(--line);color:var(--ink-soft);letter-spacing:.05em;transition:.2s;}
.chip-grid label:hover{border-color:var(--gold-soft);color:var(--ink);}
.chip-grid input{display:none;}
.chip-grid label:has(input:checked){border-color:var(--gold);color:var(--gold-soft);background:rgba(212,175,111,.08);}
.chip-grid.radio label{padding:10px 22px;}
.terms{margin-top:8px;padding:18px;border:1px solid var(--line);background:rgba(0,0,0,.2);font-size:11.5px;color:var(--ink-soft);line-height:1.85;}
.terms a{color:var(--gold);}
.terms .nt{display:block;color:var(--gold-soft);font-size:13px;font-weight:600;letter-spacing:.08em;margin-bottom:8px;}
.terms strong{color:var(--gold-soft);}
.agree{display:flex;gap:12px;align-items:flex-start;margin-top:18px;cursor:pointer;}
.agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--gold);flex-shrink:0;}
.agree .t{font-size:12.5px;color:var(--ink);letter-spacing:.05em;line-height:1.7;}
.submit{display:block;width:100%;padding:20px;margin-top:32px;background:linear-gradient(180deg,#d4af6f 0%,#9b7a3f 100%);color:#1a1230;font-family:var(--serif-jp);font-weight:600;font-size:16px;letter-spacing:.2em;border:1px solid var(--gold-soft);cursor:pointer;box-shadow:0 12px 32px rgba(212,175,111,.25),inset 0 1px 0 rgba(255,255,255,.4);position:relative;}
.submit::before,.submit::after{content:"✦";color:#1a1230;opacity:.7;font-size:11px;position:absolute;top:50%;transform:translateY(-50%);}
.submit::before{left:24px;}.submit::after{right:24px;}
.footnote{text-align:center;margin-top:18px;font-size:11px;color:var(--ink-mute);letter-spacing:.1em;line-height:1.8;}
.sectionsep{margin:36px 0 18px;display:flex;align-items:center;gap:12px;font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;}
.sectionsep::before,.sectionsep::after{content:"";flex:1;height:1px;background:var(--line);}
.reading-menu{padding:30px 24px 8px;border-top:1px solid var(--line);margin-top:8px;}
.reading-menu .rm-eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);text-align:center;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px;}
.reading-menu .rm-eyebrow::before,.reading-menu .rm-eyebrow::after{content:"";width:24px;height:1px;background:var(--gold);opacity:.5;}
.reading-menu h2{font-family:var(--serif-jp);font-weight:600;font-size:24px;text-align:center;letter-spacing:.05em;color:var(--ink);margin-bottom:10px;}
.reading-menu .rm-lede{text-align:center;color:var(--ink-soft);font-size:12.5px;line-height:1.9;margin-bottom:4px;}
.menu-cats{display:flex;flex-direction:column;gap:24px;margin-top:30px;}
.menu-cat .cat-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.menu-cat .cat-head .ja{font-family:var(--serif-jp);font-size:16px;font-weight:600;color:var(--gold-soft);letter-spacing:.1em;white-space:nowrap;}
.menu-cat .cat-head .en{font-family:var(--cinzel);font-size:9px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;white-space:nowrap;}
.menu-cat .cat-head .ln{flex:1;height:1px;background:var(--line);}
.menu-items{display:flex;flex-direction:column;gap:8px;}
.menu-item{display:flex;gap:14px;padding:13px 16px;background:rgba(255,255,255,.02);border:1px solid var(--line);align-items:flex-start;cursor:pointer;transition:.15s;position:relative;}
.menu-item input{position:absolute;opacity:0;pointer-events:none;}
.menu-item .no{flex-shrink:0;font-family:var(--serif-en);font-style:italic;font-size:19px;color:var(--gold);line-height:1.3;min-width:24px;text-align:center;}
.menu-item .txt{font-size:12.5px;color:var(--ink-soft);line-height:1.7;}
.menu-item .txt small{display:block;color:var(--ink-mute);font-size:11px;margin-top:3px;}
.menu-item:hover{border-color:var(--gold-soft);}
.menu-item:has(input:checked){border-color:var(--gold);background:rgba(212,175,111,.12);box-shadow:0 0 0 1px var(--gold);}
.menu-item:has(input:checked) .no{text-shadow:0 0 10px var(--gold);}
.menu-note{margin:30px 0 8px;padding:18px 20px;border:1px dashed var(--gold);background:rgba(212,175,111,.04);text-align:center;font-size:12.5px;color:var(--ink-soft);line-height:2;}
.menu-note .star{color:var(--gold-soft);font-weight:600;}
.menu-note .caution{display:block;margin-top:8px;color:var(--gold);}
.menu-pricing{margin-top:22px;padding:16px 18px;border:1px solid var(--gold);background:linear-gradient(180deg,rgba(212,175,111,.1),rgba(58,29,82,.25));text-align:center;}
.menu-pricing .pp{display:block;font-family:var(--serif-jp);font-weight:600;color:var(--gold-soft);font-size:15px;letter-spacing:.06em;margin-bottom:6px;}
.menu-pricing .pd{display:block;font-size:12px;color:var(--ink-soft);line-height:1.85;}
.menu-pricing strong{color:var(--gold-soft);}
.menu-readout{margin-top:26px;padding:14px 18px;border:1px solid var(--line);background:rgba(255,255,255,.03);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--ink);letter-spacing:.04em;}
.menu-readout #selItem{color:var(--gold-soft);font-weight:600;}
.menu-readout .rprice{color:var(--ink-soft);font-size:12px;}
.menu-readout .rprice b{font-family:var(--serif-en);font-style:italic;font-size:18px;color:var(--gold);margin-left:4px;}
.partner-note{margin:0 0 16px;padding:15px 18px;border:1px dashed var(--gold);background:rgba(212,175,111,.04);font-size:12.5px;color:var(--ink-soft);line-height:1.9;}
.partner-note strong{color:var(--gold-soft);}
.partner-note .req-inline{color:var(--gold);font-weight:700;}
.partner-block{border:1px solid var(--line);margin-bottom:12px;background:rgba(255,255,255,.02);}
.partner-block summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;align-items:center;gap:12px;color:var(--gold-soft);font-size:14px;font-weight:500;letter-spacing:.05em;}
.partner-block summary::-webkit-details-marker{display:none;}
.partner-block summary::before{content:"+";color:var(--gold);font-size:18px;line-height:1;width:16px;text-align:center;}
.partner-block[open] summary::before{content:"\2013";}
.partner-block[open] summary{border-bottom:1px solid var(--line);}
.pb-inner{padding:20px 18px 6px;}
.dob{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.dob select{flex:1;min-width:78px;color:var(--ink);background:#160f2c;}
.dob select option{color:#f3ecd9;background:#160f2c;}
.dob .u{color:var(--ink-soft);font-size:13px;}

/* ================================================================
   CONFIRM ページ固有
   ================================================================ */
[data-screen-label="V1 / Confirm"] .hero{padding:40px 24px 26px;text-align:center;}
[data-screen-label="V1 / Confirm"] .hero .eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;text-transform:uppercase;}
[data-screen-label="V1 / Confirm"] .hero .eyebrow::before,
[data-screen-label="V1 / Confirm"] .hero .eyebrow::after{content:"";display:block;width:24px;height:1px;background:var(--gold);opacity:.5;}
[data-screen-label="V1 / Confirm"] .hero h1{font-family:var(--serif-jp);font-weight:500;font-size:28px;letter-spacing:.05em;margin:14px 0 10px;line-height:1.4;}
[data-screen-label="V1 / Confirm"] .hero .sub{color:var(--ink-soft);font-size:13px;letter-spacing:.1em;}

.review{padding:4px 24px 8px;}
.rv-block{margin-bottom:20px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(58,29,82,.3),rgba(21,15,42,.4));}
.rv-block h3{font-family:var(--cinzel);font-size:10px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;padding:14px 18px;border-bottom:1px solid var(--line);}
.rv-row{display:flex;gap:14px;padding:12px 18px;font-size:13.5px;border-bottom:1px dashed var(--line);}
.rv-row:last-child{border-bottom:none;}
.rv-row .k{flex-shrink:0;width:96px;color:var(--ink-mute);font-size:12px;letter-spacing:.06em;padding-top:1px;}
.rv-row .v{flex:1;color:var(--ink);line-height:1.7;white-space:pre-wrap;word-break:break-word;}
.rv-row .v.empty{color:var(--ink-mute);font-style:italic;}
.rv-item{padding:16px 18px;display:flex;align-items:center;gap:14px;}
.rv-item .no{font-family:var(--serif-en);font-style:italic;font-size:26px;color:var(--gold);line-height:1;}
.rv-item .tx{font-size:14px;color:var(--ink);line-height:1.5;}
.actions{padding:8px 24px 16px;display:flex;flex-direction:column;gap:12px;}
.btn-primary{display:block;width:100%;padding:20px;background:linear-gradient(180deg,#d4af6f,#9b7a3f);color:#1a1230;font-family:var(--serif-jp);font-weight:600;font-size:16px;letter-spacing:.2em;border:1px solid var(--gold-soft);cursor:pointer;text-align:center;text-decoration:none;box-shadow:0 12px 32px rgba(212,175,111,.25),inset 0 1px 0 rgba(255,255,255,.4);position:relative;}
.btn-primary::before,.btn-primary::after{content:"✦";color:#1a1230;opacity:.7;font-size:11px;position:absolute;top:50%;transform:translateY(-50%);}
.btn-primary::before{left:24px;}.btn-primary::after{right:24px;}
.btn-ghost{display:block;width:100%;padding:15px;text-align:center;color:var(--gold);font-size:13px;letter-spacing:.2em;text-decoration:none;border:1px solid var(--line);background:rgba(255,255,255,.02);cursor:pointer;}
.empty-state{margin:40px 24px;padding:30px 24px;border:1px dashed var(--gold);text-align:center;color:var(--ink-soft);font-size:13px;line-height:1.9;}
.empty-state a{color:var(--gold);}

/* ================================================================
   THANK / THANKS ページ固有
   ================================================================ */
[data-screen-label="V1 / Thanks"] .hero{padding:48px 24px 20px;text-align:center;}
[data-screen-label="V1 / Thanks"] .hero .eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;text-transform:uppercase;margin-bottom:14px;}
[data-screen-label="V1 / Thanks"] .hero .eyebrow::before,
[data-screen-label="V1 / Thanks"] .hero .eyebrow::after{content:"";display:block;width:24px;height:1px;background:var(--gold);opacity:.5;}
[data-screen-label="V1 / Thanks"] .hero h1{font-family:var(--serif-jp);font-weight:500;font-size:28px;letter-spacing:.05em;line-height:1.5;margin-bottom:14px;}
[data-screen-label="V1 / Thanks"] .hero h1 .em{color:var(--gold-soft);}
[data-screen-label="V1 / Thanks"] .hero .lead{color:var(--ink-soft);font-size:13.5px;line-height:2;max-width:30em;margin:0 auto;}

.seal{width:96px;height:96px;margin:0 auto 26px;border-radius:50%;border:1px solid var(--gold);background:radial-gradient(circle at 35% 30%,rgba(212,175,111,.25),rgba(58,29,82,.4));display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 30px rgba(212,175,111,.3);}
.seal::before{content:"";position:absolute;inset:7px;border:1px dashed var(--gold);border-radius:50%;opacity:.5;}
.seal svg{width:46px;height:46px;color:var(--gold);}
.ticket{margin:30px 24px;padding:18px 22px;border:1px solid var(--gold);background:rgba(212,175,111,.05);display:flex;align-items:center;justify-content:space-between;}
.ticket .l{font-family:var(--cinzel);font-size:10px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;}
.ticket .n{font-family:var(--serif-en);font-size:22px;color:var(--gold-soft);letter-spacing:.08em;}
.next{margin:30px 24px;}
.next h2{font-family:var(--cinzel);font-size:11px;letter-spacing:.35em;color:var(--gold);text-align:center;text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:12px;}
.next h2::before,.next h2::after{content:"";width:24px;height:1px;background:var(--gold);opacity:.5;}
.steps{position:relative;}
.steps::before{content:"";position:absolute;left:21px;top:24px;bottom:24px;width:1px;background:linear-gradient(180deg,var(--gold),var(--line),var(--gold));opacity:.5;}
.bank-box{margin:28px 24px;padding:24px;border:1px solid var(--gold-deep);background:rgba(212,175,111,.04);}
.bank-heading{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.2em;color:var(--gold);margin-bottom:16px;text-align:center;}
.bank-amt{font-size:28px;font-weight:600;color:var(--gold-soft);text-align:center;letter-spacing:.04em;line-height:1;}
.bank-amt span{font-size:14px;font-weight:400;color:var(--ink-soft);margin-left:4px;}
.bank-note{font-size:11px;color:var(--ink-soft);text-align:center;margin:8px 0 20px;}
.bank-dl{border-top:1px solid var(--line);}
.bank-row{display:flex;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);gap:12px;}
.bank-row dt{font-size:11px;color:var(--ink-soft);flex-shrink:0;width:6em;}
.bank-row dd{font-size:14px;color:var(--text);margin:0;}
.mailnote{margin:24px 24px;padding:18px;border:1px dashed var(--gold);background:rgba(212,175,111,.04);font-size:12px;color:var(--ink-soft);line-height:1.9;}
.mailnote strong{color:var(--gold-soft);}
.home{display:block;margin:8px 24px 0;padding:18px;text-align:center;text-decoration:none;color:var(--gold);border:1px solid var(--gold);letter-spacing:.2em;font-size:14px;background:rgba(255,255,255,.02);}

/* ================================================================
   TERMS / PRIVACY ページ固有
   ================================================================ */
[data-screen-label="V1 / TERMS"] .hero,
[data-screen-label="V1 / PRIVACY"] .hero{padding:54px 24px 30px;text-align:center;}
[data-screen-label="V1 / TERMS"] .hero .eyebrow,
[data-screen-label="V1 / PRIVACY"] .hero .eyebrow{font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);display:flex;align-items:center;justify-content:center;gap:14px;text-transform:uppercase;}
[data-screen-label="V1 / TERMS"] .hero .eyebrow::before,[data-screen-label="V1 / TERMS"] .hero .eyebrow::after,
[data-screen-label="V1 / PRIVACY"] .hero .eyebrow::before,[data-screen-label="V1 / PRIVACY"] .hero .eyebrow::after{content:"";width:24px;height:1px;background:var(--gold);opacity:.5;}
[data-screen-label="V1 / TERMS"] .hero h1,
[data-screen-label="V1 / PRIVACY"] .hero h1{font-family:var(--serif-jp);font-weight:500;font-size:28px;letter-spacing:.06em;margin-top:14px;}
.legal{padding:20px 24px 60px;}
.lg-updated{font-family:var(--cinzel);font-size:10px;letter-spacing:.2em;color:var(--ink-mute);text-align:center;margin-bottom:32px;}
.lg-sec{margin-bottom:30px;}
.lg-sec h2{font-family:var(--serif-jp);font-size:16px;font-weight:600;color:var(--gold-soft);letter-spacing:.05em;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.lg-sec p{font-size:13.5px;color:var(--ink-soft);line-height:2;}
[data-screen-label="V1 / TERMS"] footer .links,
[data-screen-label="V1 / PRIVACY"] footer .links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;}
[data-screen-label="V1 / TERMS"] footer .links a,
[data-screen-label="V1 / PRIVACY"] footer .links a{color:var(--ink-soft);text-decoration:none;font-size:11px;letter-spacing:.15em;}

/* ================================================================
   ナビドロワー（共通）
   ================================================================ */
.nav-drawer{position:fixed;inset:0;z-index:200;pointer-events:none;}
.nav-drawer.open{pointer-events:auto;}
.nav-drawer .scrim{position:absolute;inset:0;background:rgba(10,6,18,.7);opacity:0;transition:opacity .3s ease;backdrop-filter:blur(4px);}
.nav-drawer.open .scrim{opacity:1;}
.nav-drawer .panel{position:absolute;top:0;right:0;bottom:0;width:86%;max-width:380px;background:linear-gradient(180deg,#15102a 0%,#0a0612 100%);border-left:1px solid var(--gold);transform:translate3d(100%,0,0);overflow-y:auto;display:flex;flex-direction:column;}
.nav-drawer .panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);}
.nav-drawer .panel-head .bd{font-family:var(--cinzel);font-size:11px;letter-spacing:.32em;color:var(--gold);}
.nav-drawer .panel-head button{background:none;border:1px solid var(--line);color:var(--gold);width:34px;height:34px;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;}
.nav-drawer nav{padding:18px 0;}
.nav-drawer nav a{display:flex;align-items:center;gap:14px;padding:16px 24px;color:var(--ink);text-decoration:none;font-size:15px;letter-spacing:.08em;border-bottom:1px solid rgba(212,175,111,.1);transition:.2s;}
.nav-drawer nav a:hover{background:rgba(212,175,111,.08);color:var(--gold-soft);}
.nav-drawer nav a .num{font-family:var(--cinzel);font-size:10px;letter-spacing:.25em;color:var(--gold);min-width:32px;}
.nav-drawer nav a .lbl{flex:1;font-family:var(--serif-jp);font-weight:500;}
.nav-drawer nav a .en{font-family:var(--cinzel);font-size:9px;color:var(--ink-mute);letter-spacing:.2em;}
.nav-drawer .panel-foot{margin-top:auto;padding:24px;border-top:1px solid var(--line);text-align:center;}
.nav-drawer .panel-foot .cta{display:block;padding:16px;background:linear-gradient(180deg,#d4af6f 0%,#9b7a3f 100%);color:#1a1230;text-align:center;text-decoration:none;font-weight:600;letter-spacing:.18em;font-size:14px;border:1px solid var(--gold-soft);}
.nav-drawer .panel-foot .sub{font-family:var(--cinzel);font-size:9px;color:var(--ink-mute);letter-spacing:.25em;margin-top:14px;}
.panel-head .bd img{height:24px;width:auto;display:block;}

/* ================================================================
   フッター
   ================================================================ */
footer{padding:48px 24px 40px;border-top:1px solid var(--line);text-align:center;background:rgba(10,6,18,.9);}
footer .brand-lg{font-family:var(--cinzel);font-size:14px;letter-spacing:.4em;color:var(--gold);margin-bottom:8px;}
footer .sub{font-size:11px;color:var(--ink-mute);letter-spacing:.15em;margin-bottom:24px;}
.social{display:flex;justify-content:center;gap:12px;margin:18px 0 28px;flex-wrap:wrap;}
.social a{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border:1px solid var(--gold);border-radius:999px;color:var(--gold);text-decoration:none;font-size:12.5px;letter-spacing:.06em;font-weight:500;background:rgba(212,175,111,.05);}
.social a svg{width:18px;height:18px;flex-shrink:0;}
.social a .s-sub{color:var(--ink-mute);font-size:10px;letter-spacing:.04em;}
.footer-links{display:flex;flex-direction:column;gap:10px;font-size:11px;letter-spacing:.18em;}
.footer-links a{color:var(--ink-soft);text-decoration:none;}
.copy{margin-top:28px;font-size:10px;color:var(--ink-mute);letter-spacing:.15em;font-family:var(--cinzel);}
[data-screen-label="V1 / School"] footer,
[data-screen-label="V1 / Apply"] footer,
[data-screen-label="V1 / TERMS"] footer,
[data-screen-label="V1 / PRIVACY"] footer{padding:32px 24px;margin-top:40px;}
[data-screen-label="V1 / School"] footer .brand-lg,
[data-screen-label="V1 / Apply"] footer .brand-lg,
[data-screen-label="V1 / TERMS"] footer .brand-lg,
[data-screen-label="V1 / PRIVACY"] footer .brand-lg{font-size:12px;}

/* ================================================================
   レスポンシブ
   ================================================================ */
@media (max-width:380px){
  [data-screen-label="V1 / Top"] .hero h1{font-size:26px;}
  .section-title{font-size:22px;}
}
@media (min-width:760px){
  [data-screen-label="V1 / Confirm"].stage,
  [data-screen-label="V1 / Thanks"].stage{max-width:680px;}
  [data-screen-label="V1 / Confirm"] .progress,
  [data-screen-label="V1 / Thanks"] .progress{padding-left:40px;padding-right:40px;}
}
@media (min-width:900px){
  [data-screen-label="V1 / Top"].stage{max-width:1180px;box-shadow:0 0 0 1px rgba(212,175,111,.25),0 30px 80px rgba(0,0,0,.55);}
  [data-screen-label="V1 / School"].stage{max-width:980px;}
  [data-screen-label="V1 / Apply"].stage{max-width:700px;}
  header.top{padding:18px 48px;}
  .brand img{height:34px;}
  .menu-btn{display:none;}
  .desk-nav{display:flex;gap:26px;margin-left:auto;align-items:center;}
  .desk-nav a{color:var(--ink-soft);text-decoration:none;font-family:var(--serif-jp);font-size:14px;letter-spacing:.06em;position:relative;padding:4px 0;transition:color .2s;}
  .desk-nav a:hover{color:var(--gold-soft);}
  .desk-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .25s;}
  .desk-nav a:hover::after{transform:scaleX(1);}
  .header-cta{display:inline-block;margin-left:30px;padding:11px 26px;background:linear-gradient(180deg,#d4af6f,#9b7a3f);color:#1a1230;text-decoration:none;font-family:var(--serif-jp);font-weight:600;font-size:13px;letter-spacing:.12em;border:1px solid var(--gold-soft);box-shadow:0 8px 20px rgba(212,175,111,.2);}
  .sticky-cta{display:none;}
  .ig-head{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:22px;border:1px solid var(--line);border-radius:50%;color:var(--gold);transition:.2s;}
  .ig-head:hover{border-color:var(--gold);background:rgba(212,175,111,.1);}
  .ig-head svg{width:19px;height:19px;}
  /* TOP デスクトップ */
  [data-screen-label="V1 / Top"] .hero{display:grid;grid-template-columns:1.02fr .98fr;grid-template-areas:"tag mark" "copy mark";align-items:center;column-gap:48px;max-width:1080px;margin:0 auto;padding:54px 48px 64px;text-align:left;}
  [data-screen-label="V1 / Top"] .hero .tag{grid-area:tag;align-self:end;justify-self:start;}
  [data-screen-label="V1 / Top"] .hero-copy{grid-area:copy;}
  [data-screen-label="V1 / Top"] .hero-mark{grid-area:mark;margin:0;width:430px;height:440px;justify-self:center;}
  [data-screen-label="V1 / Top"] .hero-mark .glow{width:360px;height:360px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-moon{height:228px;left:30px;top:48px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-card{height:228px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-cat{height:122px;right:34px;bottom:22px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-star.s1{height:34px;top:14px;left:188px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-star.s2{height:22px;top:124px;right:48px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-star.s3{height:18px;bottom:92px;left:48px;}
  [data-screen-label="V1 / Top"] .hero h1{font-size:52px;line-height:1.38;margin-bottom:6px;}
  [data-screen-label="V1 / Top"] .hero .sub{font-size:15px;margin-top:14px;}
  [data-screen-label="V1 / Top"] .hero .credentials{justify-content:flex-start;margin-top:30px;gap:26px;}
  [data-screen-label="V1 / Top"] .hero .credentials .num{font-size:36px;}
  [data-screen-label="V1 / Top"] .hero-actions{display:flex;gap:16px;margin-top:38px;align-items:stretch;}
  [data-screen-label="V1 / Top"] .hero-actions .cta{margin:0;padding:17px 44px;}
  [data-screen-label="V1 / Top"] .hero-actions .cta::before{left:18px;}
  [data-screen-label="V1 / Top"] .hero-actions .cta::after{right:18px;}
  [data-screen-label="V1 / Top"] .hero-actions .cta-ghost{margin:0;padding:17px 30px;display:flex;align-items:center;}
  .phases{padding-top:8px;}
  section{padding:96px 48px;}
  .section-lede{font-size:14px;}
  .service-card{max-width:680px;margin-left:auto;margin-right:auto;}
  .reasons{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1000px;margin-left:auto;margin-right:auto;}
  .reason{align-items:flex-start;}
  .process{max-width:760px;margin-left:auto;margin-right:auto;}
  .secret{max-width:760px;margin-left:auto;margin-right:auto;}
  .voices{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1000px;margin-left:auto;margin-right:auto;align-items:start;}
  .faq{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;max-width:1040px;margin-left:auto;margin-right:auto;}
  details.faq-item{align-self:start;}
  .announce{max-width:820px;margin-left:auto;margin-right:auto;}
  .insta{max-width:760px;margin-left:auto;margin-right:auto;padding:48px 40px;}
  .profile{display:grid;grid-template-columns:200px 1fr;gap:14px 48px;align-items:start;max-width:880px;margin-left:auto;margin-right:auto;text-align:left;padding:52px 48px;}
  .profile .frame{grid-column:1;grid-row:1 / span 5;margin:0 auto;}
  .profile h3,.profile .romaji{grid-column:2;}
  .profile h3{text-align:left;}
  .profile .romaji{text-align:left;}
  .profile-bio{grid-column:2;margin-top:10px;}
  .profile-stats{grid-column:1 / -1;margin-top:18px;}
  footer{padding:64px 48px 48px;}
  [data-screen-label="V1 / School"] footer,
  [data-screen-label="V1 / Apply"] footer,
  [data-screen-label="V1 / TERMS"] footer,
  [data-screen-label="V1 / PRIVACY"] footer{padding:32px 40px;margin-top:40px;}
  .footer-links{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px 28px;max-width:680px;margin-left:auto;margin-right:auto;}
  /* SCHOOL デスクトップ */
  [data-screen-label="V1 / School"] header.top,[data-screen-label="V1 / Apply"] header.top{padding:18px 40px;}
  [data-screen-label="V1 / School"] section{padding:72px 48px;}
  [data-screen-label="V1 / School"] .hero{padding:64px 48px 44px;}
  [data-screen-label="V1 / School"] .who-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  [data-screen-label="V1 / School"] .detail-card{max-width:760px;margin-left:auto;margin-right:auto;}
  [data-screen-label="V1 / School"] .flow-steps{max-width:720px;margin-left:auto;margin-right:auto;}
  [data-screen-label="V1 / School"] .cta-box{max-width:700px;margin-left:auto;margin-right:auto;}
  [data-screen-label="V1 / School"] footer .links{flex-direction:row;justify-content:center;gap:28px;}
  /* APPLY デスクトップ */
  [data-screen-label="V1 / Apply"] .hero{padding:56px 24px 30px;}
  [data-screen-label="V1 / Apply"] form{padding-left:40px;padding-right:40px;}
  [data-screen-label="V1 / Apply"] .summary{margin-left:40px;margin-right:40px;}
  [data-screen-label="V1 / Apply"] .progress{padding-left:40px;padding-right:40px;}
  [data-screen-label="V1 / Apply"] .row-2{gap:18px;}
  .menu-cats{gap:18px;}
  /* TERMS / PRIVACY デスクトップ */
  [data-screen-label="V1 / TERMS"] .hero h1,[data-screen-label="V1 / PRIVACY"] .hero h1{font-size:34px;}
  [data-screen-label="V1 / TERMS"] .legal,[data-screen-label="V1 / PRIVACY"] .legal{padding:20px 0 70px;}
}
@media (min-width:1280px){
  [data-screen-label="V1 / Top"] .hero{max-width:1140px;column-gap:60px;}
  [data-screen-label="V1 / Top"] .hero h1{font-size:58px;}
  [data-screen-label="V1 / Top"] .hero-mark{width:470px;height:470px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-moon{height:250px;}
  [data-screen-label="V1 / Top"] .hero-mark .sc-card{height:250px;}
}

/* ================================================================
   私の手セクション
   ================================================================ */
.hands-intro{
  text-align:center;color:var(--ink-soft);font-size:14px;line-height:2.2;letter-spacing:.1em;
  max-width:26em;margin:20px auto 40px;
}
.hands-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 4px;
}
.hand-item{
  cursor:pointer;position:relative;margin:0;
  border:1px solid var(--line);background:var(--bg-1);overflow:hidden;
  transition:box-shadow .25s,border-color .25s;
}
.hand-item:hover,.hand-item:focus-visible{
  box-shadow:0 0 28px rgba(212,175,111,.3);
  border-color:rgba(212,175,111,.45);
  outline:none;
}
.hand-item img{
  display:block;width:100%;aspect-ratio:3/4;object-fit:cover;
  transition:transform .4s ease;
}
.hand-item:hover img,.hand-item:focus-visible img{transform:scale(1.05);}
.hand-item figcaption{
  padding:12px 8px 16px;text-align:center;
  background:linear-gradient(180deg,rgba(21,16,42,0) 0%,var(--bg-1) 100%);
}
.hand-lr{
  display:block;font-family:var(--serif-jp);font-size:15px;color:var(--gold);
  letter-spacing:.2em;margin-bottom:5px;
}
.hand-sub{
  display:block;font-size:11px;color:var(--ink-mute);letter-spacing:.12em;line-height:1.7;
}
.hand-tap{
  display:block;font-size:10px;color:var(--gold-deep);letter-spacing:.15em;margin-top:6px;opacity:.8;
}
.hand-item .hand-zoom{
  position:absolute;top:10px;right:10px;
  width:28px;height:28px;border-radius:50%;
  background:rgba(10,6,18,.55);border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s;pointer-events:none;
}
.hand-item .hand-zoom svg{width:14px;height:14px;stroke:var(--gold);fill:none;stroke-width:1.8;}
.hand-item:hover .hand-zoom,.hand-item:focus-visible .hand-zoom{opacity:1;}

/* ---- ライトボックス ---- */
.lightbox{
  display:none;position:fixed;inset:0;z-index:300;
  background:rgba(10,6,18,.93);backdrop-filter:blur(8px);
  align-items:center;justify-content:center;
}
.lightbox.open{display:flex;}
.lightbox-wrap{
  max-width:min(88vw,500px);max-height:90vh;
  display:flex;flex-direction:column;align-items:center;gap:16px;
  animation:lb-fadein .22s ease;
}
@keyframes lb-fadein{from{opacity:0;transform:scale(.93);}to{opacity:1;transform:scale(1);}}
.lightbox-wrap img{
  max-width:100%;max-height:76vh;object-fit:contain;
  border:1px solid var(--line);display:block;
}
.lightbox-caption{
  font-family:var(--serif-jp);color:var(--gold-soft);
  font-size:13px;letter-spacing:.18em;text-align:center;
}
.lightbox-close{
  position:fixed;top:18px;right:20px;
  background:none;border:1px solid var(--gold);color:var(--gold);
  width:40px;height:40px;font-size:24px;line-height:1;
  cursor:pointer;font-family:sans-serif;display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.lightbox-close:hover{background:rgba(212,175,111,.15);}

@media(min-width:860px){
  .hands-grid{max-width:600px;margin-left:auto;margin-right:auto;}
}
