/* 鬼の発音キャンプ LP｜2026-10-24 rich rebuild */
:root{
  --ink:#0f0b0a;--ink-2:#1a1210;--ink-3:#2a1d18;
  --paper:#f7f1e8;--cream:#efe5d6;--card:#fffaf3;
  --text:#1f1712;--muted:#6f6158;--line:rgba(51,35,25,.14);
  --red:#c3281b;--red-2:#e0402f;--red-deep:#7d140d;
  --gold:#d9a842;--gold-2:#f3d48a;--gold-deep:#a37722;
  --pumpkin:#f26b1d;--pumpkin-2:#ff8a3d;--pumpkin-deep:#b5470a;
  --navy:#141b2e;--navy-2:#1b2a4a;
  --light:#f5ece0;--light-muted:#c9b9a8;
  --radius:22px;--wrap:1120px;
  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
  --ribbon-h:0px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--sans);line-height:1.8;font-size:15px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sp{display:inline}@media(min-width:760px){.sp{display:none}}
.wrap{width:min(100% - 32px,var(--wrap));margin-inline:auto}
.wrap--narrow{max-width:820px}
.center{text-align:center}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}

/* ---------- type ---------- */
.eyebrow{margin:0 0 10px;font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--red)}
.eyebrow--gold{color:var(--gold)}
.title{margin:0 0 14px;font-family:var(--serif);font-weight:900;font-size:clamp(28px,6.6vw,46px);line-height:1.35;letter-spacing:.02em;color:var(--text)}
.title--light{color:var(--light)}
.lead{margin:0 0 28px;color:var(--muted);font-size:15px;line-height:1.95}
.lead--light{color:var(--light-muted)}
.lead strong{color:var(--text)}
.lead--light strong{color:var(--light)}
.fineprint{margin:22px 0 0;color:var(--muted);font-size:12px;line-height:1.75}
.fineprint--light{color:#9b8b7d}
mark{background:linear-gradient(transparent 58%,rgba(243,212,138,.55) 0);color:inherit;padding:0 2px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border-radius:999px;font-weight:900;font-size:15px;text-decoration:none;letter-spacing:.03em;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;cursor:pointer;border:0}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(1px)}
.btn--primary{background:linear-gradient(135deg,var(--red-2),var(--red) 55%,var(--red-deep));color:#fff;box-shadow:0 6px 0 #5c0e08,0 14px 32px rgba(195,40,27,.35)}
.btn--primary:active{box-shadow:0 2px 0 #5c0e08}
.btn--pumpkin{background:linear-gradient(135deg,var(--pumpkin-2),var(--pumpkin));color:#fff;box-shadow:0 6px 0 var(--pumpkin-deep),0 16px 36px rgba(242,107,29,.4)}
.btn--light{background:var(--light);color:var(--ink);box-shadow:0 6px 0 #b9a68f}
.btn--ghost{background:transparent;color:var(--light);border:1.5px solid rgba(245,236,224,.4)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold-2)}
.btn--block{display:flex;width:100%}
.btn--xl{min-height:64px;font-size:17px;padding:0 34px;width:100%;max-width:520px}
.play{width:22px;height:22px;border-radius:50%;background:var(--gold);position:relative;flex:0 0 auto}
.play:after{content:"";position:absolute;left:8px;top:6px;border-left:8px solid var(--ink);border-top:5px solid transparent;border-bottom:5px solid transparent}

/* ---------- ribbon & topbar ---------- */
.offer-ribbon{position:relative;z-index:60;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;padding:8px 14px;background:linear-gradient(90deg,#2b1206,#5a2207 40%,#2b1206);color:#fff;text-decoration:none;font-size:12px;line-height:1.5;border-bottom:1px solid rgba(255,138,61,.35)}
.offer-ribbon__tag{padding:2px 8px;border-radius:99px;background:var(--pumpkin);font-weight:900;font-size:11px}
.offer-ribbon__text b{color:var(--gold-2);font-size:14px}
.offer-ribbon__time{color:#ffd6b8}
.offer-ribbon__time b{font-variant-numeric:tabular-nums;color:#fff}
.topbar{position:relative;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(16px,calc((100% - var(--wrap))/2));background:rgba(15,11,10,.82);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(217,168,66,.18);color:var(--light)}
.topbar__brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.topbar__brand strong{display:block;font-family:var(--serif);font-size:15px;letter-spacing:.06em;line-height:1.3}
.topbar__brand small{display:block;font-size:11px;color:var(--light-muted);line-height:1.3;white-space:nowrap}
.seal{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,var(--red-2),var(--red-deep));color:#fff;font-family:var(--serif);font-weight:900;font-size:20px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 6px 16px rgba(125,20,13,.4)}
.topbar__cta{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border-radius:99px;background:var(--gold);color:var(--ink);font-weight:900;font-size:13px;text-decoration:none}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:34px 0 30px;background:radial-gradient(120% 70% at 85% 0,rgba(195,40,27,.35),transparent 60%),radial-gradient(80% 60% at 0 100%,rgba(217,168,66,.12),transparent 60%),var(--ink);color:var(--light)}
.hero__glow{position:absolute;inset:auto -20% -40% -20%;height:60%;background:radial-gradient(closest-side,rgba(195,40,27,.25),transparent);filter:blur(30px);pointer-events:none}
.hero__grid{position:relative;display:grid;gap:28px;align-items:center}
.hero__visual{order:-1;margin:0;position:relative;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(217,168,66,.25)}
.hero__visual img{width:100%;aspect-ratio:1672/941;object-fit:cover}
.hero__visual figcaption{display:flex;gap:8px;align-items:center;padding:10px 14px;background:linear-gradient(90deg,rgba(26,18,16,.96),rgba(42,29,24,.96));font-size:11px;color:var(--light-muted);line-height:1.5}
.hero__visual figcaption span{padding:1px 7px;border:1px solid var(--gold);border-radius:4px;color:var(--gold);font-weight:900;font-size:10px;letter-spacing:.1em}
.hero__title{margin:0 0 16px;font-family:var(--serif);font-weight:900;font-size:clamp(34px,9.6vw,56px);line-height:1.22;letter-spacing:.03em}
.hero__title .ln{display:block;white-space:nowrap}
.hero__title .grad{background:linear-gradient(100deg,var(--gold-2),var(--gold) 45%,#f6e3b5 70%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero__lead{margin:0 0 22px;color:var(--light-muted);font-size:15px}
.hero__dates{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-bottom:18px}
.hero__dates time{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:92px;padding:8px 14px;border-radius:14px;background:linear-gradient(160deg,rgba(195,40,27,.28),rgba(125,20,13,.18));border:1px solid rgba(224,64,47,.45)}
.hero__dates time b{font-family:var(--serif);font-size:28px;line-height:1.1;color:#fff}
.hero__dates time small{font-size:11px;color:#f2c6bd}
.hero__dates p{margin:0;align-self:center;font-weight:700;font-size:14px;line-height:1.6}
.hero__dates p small{font-weight:400;color:var(--light-muted);font-size:11px}
.hero__chips{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 24px;list-style:none}
.hero__chips li{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;background:rgba(245,236,224,.07);border:1px solid rgba(245,236,224,.16);font-size:12px;font-weight:700}
.hero__chips svg{width:16px;height:16px;color:var(--gold)}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.hero__actions .btn{flex:1 1 220px}
.hero__price{margin:0;color:var(--light-muted);font-size:13px}
.hero__price b{color:var(--light);font-size:15px}
.hero__credit{position:relative;display:flex;align-items:center;gap:12px;margin-top:28px;padding:14px 16px;border-radius:16px;background:linear-gradient(110deg,rgba(27,42,74,.9),rgba(20,27,46,.9));border:1px solid rgba(217,168,66,.3);text-decoration:none;font-size:13px;line-height:1.6;color:var(--light-muted)}
.hero__credit b{color:var(--gold-2)}
.hero__credit-tag{flex:0 0 auto;padding:4px 9px;border-radius:8px;background:var(--gold);color:var(--ink);font-weight:900;font-size:11px}
.test-preview-note{display:inline-block;margin:0 0 14px;padding:6px 12px;border-radius:99px;background:#fff0c8;color:#654800;font-weight:900;font-size:12px}
.test-preview-note[hidden]{display:none}
@media(min-width:960px){
  .hero{padding:72px 0 56px}
  .hero__grid{grid-template-columns:1fr 1.05fr;gap:56px}
  .hero__visual{order:0;transform:rotate(1.2deg)}
}

/* ---------- halloween ---------- */
.halloween{position:relative;overflow:hidden;padding:64px 0 56px;text-align:center;color:#fff;background:radial-gradient(90% 60% at 50% 0,rgba(242,107,29,.32),transparent 65%),linear-gradient(180deg,#1f0d05,#120806)}
.halloween:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,138,61,.05) 0 2px,transparent 2px 14px);pointer-events:none}
.halloween__bats{position:absolute;inset:0;pointer-events:none;opacity:.5;background:
  radial-gradient(circle at 12% 18%,rgba(255,200,120,.5) 0 1.5px,transparent 2px),
  radial-gradient(circle at 82% 26%,rgba(255,200,120,.45) 0 1.5px,transparent 2px),
  radial-gradient(circle at 70% 78%,rgba(255,200,120,.4) 0 1.5px,transparent 2px),
  radial-gradient(circle at 25% 70%,rgba(255,200,120,.35) 0 1.5px,transparent 2px)}
.halloween .wrap{position:relative;max-width:860px}
.pill{display:inline-flex;align-items:center;gap:7px;margin:0 0 18px;padding:7px 14px;border-radius:99px;font-weight:900;font-size:12px}
.pill svg{width:15px;height:15px}
.pill--pumpkin{background:var(--pumpkin);color:#fff;box-shadow:0 8px 24px rgba(242,107,29,.4)}
.halloween__title{margin:0 0 14px;font-family:var(--serif);font-weight:900;font-size:clamp(28px,7vw,46px);line-height:1.35}
.halloween__lead{margin:0 0 30px;color:#f1d5c2}
.halloween__cards{display:grid;gap:14px;margin-bottom:24px}
.offer-card{position:relative;padding:22px 20px 20px;border-radius:var(--radius);background:linear-gradient(170deg,#fffaf3,#fbead8);color:var(--text);box-shadow:0 22px 50px rgba(0,0,0,.4);overflow:hidden}
.offer-card:after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(242,107,29,.18),transparent 70%)}
.offer-card__who{margin:0 0 4px;font-weight:900;font-size:14px}
.offer-card__who b{color:var(--pumpkin-deep)}
.offer-card__what{margin:0;color:var(--muted);font-size:12px}
.offer-card__regular{margin:6px 0 0;color:var(--muted);font-size:13px}
.offer-card__price{margin:0;font-family:var(--serif);font-weight:900;font-size:52px;line-height:1.1;color:var(--pumpkin-deep);font-variant-numeric:tabular-nums}
.offer-card__price span{font-size:26px;margin-right:2px}
.halloween__zero{margin:0 0 22px;font-weight:900;font-size:17px}
.halloween__zero mark{background:linear-gradient(transparent 55%,rgba(242,107,29,.6) 0)}
.countdown{display:inline-flex;align-items:baseline;gap:10px;margin:18px 0 26px;padding:8px 18px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid rgba(255,138,61,.35)}
.countdown span{font-size:12px;color:#ffd6b8}
.countdown b{font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--pumpkin-2)}
.halloween__how{display:grid;gap:8px;max-width:520px;margin:0 auto 18px;padding:0;list-style:none;text-align:left}
.halloween__how li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.06);font-size:13px}
.halloween__how b{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:var(--pumpkin);font-size:13px}
.halloween__how strong{color:var(--gold-2)}
.halloween__note{margin:0;color:#c9a993;font-size:12px}
@media(min-width:760px){.halloween__cards{grid-template-columns:1fr 1fr}.halloween__how{grid-template-columns:repeat(3,1fr);max-width:none}}
.halloween .btn--xl{display:flex;margin:0 auto}

/* ---------- sections ---------- */
.section{padding:72px 0}
.section--dark{background:radial-gradient(80% 50% at 50% 0,rgba(195,40,27,.14),transparent 70%),var(--ink-2);color:var(--light)}
.section--paper{background:var(--paper)}
.section--cream{background:var(--cream)}
.section--navy{background:radial-gradient(70% 40% at 50% 0,rgba(217,168,66,.12),transparent 70%),linear-gradient(180deg,var(--navy),#0f1424);color:var(--light)}
@media(min-width:960px){.section{padding:104px 0}}

.video{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 24px 60px rgba(0,0,0,.45),0 0 0 1px rgba(217,168,66,.22)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.film{margin:0}
.film figcaption{margin-top:12px;color:var(--light-muted);font-size:12px;text-align:center}

/* benefits */
.benefits{display:grid;grid-auto-flow:column;grid-auto-columns:82%;gap:14px;margin:0 -16px;padding:4px 16px 18px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.benefits::-webkit-scrollbar{display:none}
.benefit{scroll-snap-align:start;padding:26px 22px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:0 14px 40px rgba(45,29,19,.07)}
.benefit__no{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:900;font-size:26px;color:var(--red)}
.benefit__no i{font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.14em;padding:3px 9px;border-radius:99px;background:rgba(195,40,27,.08)}
.benefit__icon{width:52px;height:52px;margin:14px 0 6px;color:var(--gold-deep);stroke-width:2.3}
.benefit h3{margin:0 0 8px;font-size:18px;line-height:1.5}
.benefit p{margin:0;color:var(--muted);font-size:14px}
@media(min-width:960px){.benefits{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);margin:0;padding:0;overflow:visible}}

/* lesson */
.lesson{display:grid;gap:28px;align-items:center}
.lesson__try{display:flex;gap:12px;margin:0 0 18px;padding:14px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-size:14px}
.lesson__try span{flex:0 0 auto;align-self:flex-start;padding:2px 8px;border-radius:6px;background:var(--ink);color:var(--gold);font-weight:900;font-size:11px;letter-spacing:.1em}
@media(min-width:960px){.lesson{grid-template-columns:1fr 1.15fr;gap:56px}.lesson .title{font-size:36px}}

/* quotes */
.quote{margin:0;padding:20px 20px 18px;border-radius:18px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 30px rgba(45,29,19,.06)}
.quote p{margin:0;font-size:14px;line-height:1.9}
.quote__head{display:flex;align-items:center;gap:12px;margin:0 0 10px!important}
.quote__head i{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;font-style:normal;font-family:var(--serif);font-weight:900;color:#fff}
.quote__head span{font-weight:900;font-size:15px;line-height:1.4}
.quote__head small{display:block;font-weight:500;font-size:11px;color:var(--muted)}
.quote--observer .quote__head i{background:linear-gradient(145deg,#3b2b22,#1a1210)}
.quote--coached .quote__head i{background:linear-gradient(145deg,var(--red-2),var(--red-deep))}
.quotes{display:grid;gap:14px}
@media(min-width:760px){.quotes{grid-template-columns:1fr 1fr}}

/* units */
.units{display:grid;gap:14px;margin:0 0 26px;padding:0;list-style:none}
.unit{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center;padding:10px;border-radius:18px;background:rgba(245,236,224,.05);border:1px solid rgba(245,236,224,.1)}
.unit img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px}
.unit h3{display:flex;align-items:baseline;gap:8px;margin:0 0 4px;font-size:16px;line-height:1.4;color:var(--light)}
.unit h3 span{font-family:var(--serif);color:var(--gold);font-size:14px}
.unit p{margin:0;color:var(--light-muted);font-size:12.5px;line-height:1.7}
@media(min-width:760px){.units{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.units{grid-template-columns:repeat(3,1fr)}.unit{grid-template-columns:1fr;padding:12px 12px 18px}.unit div{padding:0 6px}}
.day-notes{display:grid;gap:10px}
.day-notes p{display:flex;gap:12px;align-items:flex-start;margin:0;padding:14px 16px;border-radius:14px;background:rgba(217,168,66,.08);border:1px solid rgba(217,168,66,.22);font-size:13px;color:var(--light-muted)}
.day-notes svg{flex:0 0 22px;height:22px;color:var(--gold)}
.day-notes strong{color:var(--light)}
@media(min-width:760px){.day-notes{grid-template-columns:1fr 1fr}}

/* instructor */
.instructor{display:grid;gap:0;border-radius:28px;overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:0 24px 60px rgba(45,29,19,.1)}
.instructor img{width:100%;aspect-ratio:1400/788;object-fit:cover}
.instructor__copy{padding:26px 22px 28px}
.instructor__copy p{margin:0 0 12px;color:var(--muted);font-size:14px}
.instructor__catch{font-family:var(--serif);font-size:20px!important;color:var(--text)!important;line-height:1.6}
.instructor__catch strong{color:var(--red)}
.instructor__social{font-weight:700;color:var(--text)!important}
.socials{display:flex;flex-wrap:wrap;gap:10px}
.socials a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:99px;border:1.5px solid var(--line);background:#fff;font-weight:900;font-size:13px;text-decoration:none}
.socials svg{width:18px;height:18px}
@media(min-width:960px){.instructor{grid-template-columns:1.1fr 1fr;align-items:center}.instructor img{height:100%;aspect-ratio:auto}.instructor__copy{padding:40px}}

/* attendance */
.attend{display:grid;gap:14px;text-align:left}
.attend article{padding:22px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}
.attend svg{width:34px;height:34px;color:var(--red)}
.attend h3{margin:8px 0 6px;font-size:17px;line-height:1.5}
.attend p{margin:0;color:var(--muted);font-size:14px}
@media(min-width:760px){.attend{grid-template-columns:1fr 1fr}}

/* plans */
.picker{max-width:960px;margin:0 auto}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px;padding:0;border:0;min-width:0}
.dates legend,.picker__step{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:0;font-weight:900;font-size:15px;color:var(--light)}
.dates legend span,.picker__step span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);font-size:13px}
.dates label{position:relative;cursor:pointer}
.dates input{position:absolute;opacity:0;pointer-events:none}
.dates label>span{display:flex;flex-direction:column;align-items:center;padding:14px 8px;border-radius:16px;border:1.5px solid rgba(245,236,224,.2);background:rgba(245,236,224,.04);transition:.18s}
.dates b{font-family:var(--serif);font-size:24px;line-height:1.3;color:var(--light)}
.dates b small{font-family:var(--sans);font-size:12px;font-weight:700}
.dates label>span>small{color:var(--light-muted);font-size:12px}
.dates input:checked+span{border-color:var(--gold);background:linear-gradient(160deg,rgba(217,168,66,.2),rgba(217,168,66,.06));box-shadow:0 0 0 3px rgba(217,168,66,.18)}
.dates input:focus-visible+span{outline:3px solid var(--gold);outline-offset:3px}
.picker__note{margin:0 0 32px;color:var(--light-muted);font-size:12px}
.seats{display:grid;gap:16px}
.seat{position:relative;padding:26px 22px 22px;border-radius:24px;background:var(--card);color:var(--text);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.seat--coached{background:linear-gradient(170deg,#fff6ee,#fde6dc);box-shadow:0 0 0 2px var(--red),0 24px 60px rgba(195,40,27,.35)}
.seat__badge{position:absolute;top:-13px;right:18px;margin:0}
.seat__badge span{display:inline-block;padding:5px 12px;border-radius:99px;background:var(--red);color:#fff;font-weight:900;font-size:12px;box-shadow:0 6px 16px rgba(195,40,27,.4)}
.seat__kicker{margin:0;color:var(--muted);font-size:12px;font-weight:700}
.seat__name{margin:2px 0 4px;font-family:var(--serif);font-size:28px;line-height:1.3}
.seat__price{margin:0 0 10px;font-family:var(--serif);font-weight:900;font-size:40px;line-height:1.2;color:var(--red);font-variant-numeric:tabular-nums}
.seat__price small{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--muted)}
.seat__desc{margin:0 0 12px;font-size:14px;color:var(--muted)}
.checks{margin:0 0 12px;padding:0;list-style:none}
.checks li{position:relative;padding:5px 0 5px 26px;font-size:14px;font-weight:700;border-bottom:1px dashed var(--line)}
.checks li:before{content:"";position:absolute;left:2px;top:10px;width:14px;height:8px;border-left:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(-45deg)}
.seat__cond{margin:0 0 16px;font-size:12px;color:var(--muted)}
.seat .btn--light{background:var(--ink);color:var(--light);box-shadow:0 6px 0 #000}
.seat__offer{display:block;margin-top:14px;padding:10px 12px;border-radius:12px;background:#fff1e6;border:1px dashed var(--pumpkin);color:var(--pumpkin-deep);font-size:13px;font-weight:700;text-decoration:none;text-align:center}
.picker__pay{display:flex;justify-content:center;align-items:center;gap:8px;margin:22px 0 6px;color:var(--light-muted);font-size:12px;text-align:center}
.picker__pay svg{width:16px;height:16px;flex:0 0 auto;color:var(--gold)}
.picker__credit{margin:0;text-align:center;font-size:13px;color:var(--light-muted)}
.picker__credit a{color:var(--gold-2);font-weight:900}
@media(min-width:760px){.seats{grid-template-columns:1fr 1fr}.dates{max-width:520px}}

/* credit + lab */
.credit-flow{display:grid;gap:10px;align-items:center;margin:0 0 14px}
.credit-step{padding:18px;border-radius:18px;background:rgba(245,236,224,.06);border:1px solid rgba(245,236,224,.14);text-align:center}
.credit-step small{display:block;color:var(--gold);font-weight:900;font-size:11px;letter-spacing:.14em}
.credit-step b{display:block;font-size:18px;color:var(--light)}
.credit-step span{font-size:13px;color:var(--light-muted)}
.credit-step--goal{background:linear-gradient(160deg,var(--gold-2),var(--gold));border:0;color:var(--ink)}
.credit-step--goal small{color:var(--red-deep)}
.credit-step--goal b,.credit-step--goal span{color:var(--ink)}
.credit-step--goal mark{background:#fff;padding:0 6px;border-radius:4px;font-weight:900}
.credit-op{text-align:center;font-size:24px;font-weight:900;color:var(--gold);line-height:1}
.credit-valid{margin:0 0 18px;text-align:center;color:var(--light-muted);font-size:12px}
.pass{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin:0 0 56px;border-radius:14px;background:rgba(217,168,66,.1);border:1px solid rgba(217,168,66,.3);font-size:14px}
.pass p{margin:0;color:var(--light-muted)}
.pass b{color:var(--gold-2)}
.pass__tag{flex:0 0 auto;padding:3px 9px;border-radius:6px;background:var(--light);color:var(--navy-2);font-weight:900;font-size:11px}
@media(min-width:860px){.credit-flow{grid-template-columns:1fr auto 1fr auto 1.2fr}}
.lab{padding:28px 18px;border-radius:28px;background:var(--light);color:var(--navy-2);box-shadow:0 30px 80px rgba(0,0,0,.4);margin-bottom:28px}
.lab__head{text-align:center;margin-bottom:22px}
.lab__brand{display:inline-block;margin:0 0 10px;padding:5px 12px;border-radius:99px;background:var(--navy-2);color:#fff;font-weight:900;font-size:12px}
.lab__title{margin:0 0 12px;font-family:var(--serif);font-size:clamp(22px,5.4vw,32px);line-height:1.45}
.lab__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0}
.lab__meta span{padding:4px 10px;border-radius:8px;background:#fff;border:1px solid #e3d8c8;font-size:12px;font-weight:700}
.courses{display:grid;gap:12px}
.course{position:relative;padding:20px 18px;border-radius:18px;background:#fff;border:1px solid #e3d8c8}
.course--best{border:2px solid var(--pumpkin);box-shadow:0 14px 34px rgba(242,107,29,.18)}
.course__ribbon{position:absolute;top:-12px;right:14px;margin:0;padding:3px 12px;border-radius:99px;background:var(--pumpkin);color:#fff;font-weight:900;font-size:12px}
.course__grade{margin:0;color:#6b7180;font-weight:700;font-size:12px}
.course h4{margin:2px 0 4px;font-size:20px}
.course__price{margin:0 0 10px;font-weight:900;font-size:22px;font-variant-numeric:tabular-nums}
.course__price small{margin-right:6px;font-size:11px;color:#6b7180;font-weight:700}
.course ul{margin:0;padding:0 0 0 18px;font-size:13px;color:#3e4658}
.lab__note{margin:16px 0 0;text-align:center;font-size:12px;color:#6b7180}
@media(min-width:860px){.lab{padding:40px}.courses{grid-template-columns:repeat(3,1fr)}}
.session{padding:26px 20px;border-radius:24px;border:1px solid rgba(245,236,224,.18);background:rgba(245,236,224,.04)}
.session__head h3{margin:0 0 6px;font-family:var(--serif);font-size:24px;color:var(--light)}
.session__head p:last-child{margin:0 0 18px;color:var(--light-muted);font-size:14px}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.slots li{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:rgba(245,236,224,.06);font-size:13px;font-weight:700;line-height:1.4}
.slots b{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:8px;background:var(--gold);color:var(--ink);font-size:13px}
.session__actions{display:flex;flex-wrap:wrap;gap:10px}
.session__actions .btn{flex:1 1 240px}
.session__small{margin:12px 0 0;color:var(--light-muted);font-size:12px}
@media(max-width:420px){.slots{grid-template-columns:1fr}}
@media(min-width:860px){.session{display:grid;grid-template-columns:1fr 1.1fr;gap:10px 32px;padding:34px}.session__head{grid-row:span 2}.slots{margin:0}.session__actions,.session__small{grid-column:2}}

/* proof */
.proof{margin-top:34px}
.proof__head{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px;font-size:14px}
.proof__head small{color:var(--muted);font-size:12px}
.proof__rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(72%,300px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
.proof__rail figure{margin:0;scroll-snap-align:start;border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.proof__rail img{width:100%;height:100%;object-fit:cover;aspect-ratio:9/14}

/* faq */
.faq{display:grid;gap:10px;margin-top:24px}
.faq details{border-radius:16px;background:var(--card);border:1px solid var(--line);overflow:hidden}
.faq summary{position:relative;display:flex;gap:12px;align-items:flex-start;padding:16px 46px 16px 16px;font-weight:900;font-size:15px;line-height:1.6;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:before{content:"Q";display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:rgba(195,40,27,.1);color:var(--red);font-size:12px;font-family:var(--serif)}
.faq summary:after{content:"";position:absolute;right:20px;top:24px;width:10px;height:10px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary:after{transform:rotate(-135deg);top:28px}
.faq details>p,.faq details>ol{margin:0;padding:0 18px 18px 54px;color:var(--muted);font-size:14px}
.faq details>p+p{padding-top:0}
.faq a{color:var(--red);font-weight:700}
.steps{list-style:none}
.steps li{margin-bottom:10px}
.steps strong{display:block;color:var(--text)}
.contact{margin-top:40px;padding:26px 22px;border-radius:24px;background:var(--ink);color:var(--light);text-align:center}
.contact h3{margin:0 0 18px;font-family:var(--serif);font-size:22px}
.contact__links{display:grid;gap:10px}
.contact__links a{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 18px;border-radius:16px;text-decoration:none;font-weight:900;font-size:14px}
.contact__links a span{margin-left:auto}
.contact__links svg{width:22px;height:22px}
.contact__line{background:#06c755;color:#fff}
.contact__mail{background:rgba(245,236,224,.08);border:1px solid rgba(245,236,224,.2)}
@media(min-width:760px){.contact__links{grid-template-columns:1fr 1fr}}

/* final */
.final{position:relative;overflow:hidden;padding:88px 0 110px;background:radial-gradient(70% 60% at 50% 100%,rgba(195,40,27,.4),transparent 70%),var(--ink);color:var(--light)}
.final__title{margin:0 0 16px;font-family:var(--serif);font-weight:900;font-size:clamp(30px,7.6vw,52px);line-height:1.35}
.final__offer{display:block;margin-top:18px;color:#ffc79f;font-size:13px;font-weight:700}
.final__offer b{font-variant-numeric:tabular-nums}
.footer{padding:28px 16px 100px;background:#080605;color:#8a7a6d;font-size:12px;text-align:center}
.footer p{margin:4px 0}

/* sticky */
.sticky{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:640px;margin:0 auto;padding:8px 8px 8px 16px;border-radius:999px;background:rgba(15,11,10,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(217,168,66,.3);box-shadow:0 18px 40px rgba(0,0,0,.45);color:var(--light);transform:translateY(140%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.sticky.show{transform:none}
.sticky__text{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.sticky__text b{font-size:13px}
.sticky__text small{font-size:11px;color:var(--light-muted)}
.sticky__text--offer b{color:var(--pumpkin-2)}
.sticky__text--offer small span{font-variant-numeric:tabular-nums;color:#fff}
.offer-open .sticky__text:not(.sticky__text--offer){display:none}
.sticky .btn{min-height:46px;padding:0 20px;font-size:14px;flex:0 0 auto;box-shadow:0 4px 0 #5c0e08}

/* reveal */
.rv{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.js .rv.is-hidden{opacity:0;transform:translateY(22px)}
@media(prefers-reduced-motion:reduce){.rv{transition:none}.js .rv.is-hidden{opacity:1;transform:none}.btn:hover{transform:none}}

[data-offer-only][hidden]{display:none!important}
.nw{white-space:nowrap}
.offer-card__cta{margin-top:14px;min-height:52px;font-size:15px;box-shadow:0 5px 0 var(--pumpkin-deep)}
.halloween .countdown{display:flex;width:max-content;margin:4px auto 26px}
.offer-card__alt{display:block;margin-top:12px;padding:10px 12px;border-radius:12px;border:1.5px dashed var(--pumpkin);color:var(--pumpkin-deep);font-size:13px;font-weight:700;text-decoration:none}
.offer-card__alt s{color:var(--muted);font-weight:500}
.offer-card__seat{font-size:20px;color:var(--text);margin-left:2px}
.offer-card--coached{box-shadow:0 0 0 2px var(--pumpkin),0 22px 50px rgba(0,0,0,.4)}
.offer-card__badge{position:absolute;top:14px;right:14px;margin:0;padding:3px 10px;border-radius:99px;background:var(--pumpkin);color:#fff;font-weight:900;font-size:11px;z-index:1}
.offer-card__list{margin:10px 0 0;padding:0;list-style:none;text-align:left;font-size:13px;color:var(--muted)}
.offer-card__list li{padding:4px 0 4px 20px;position:relative;border-top:1px dashed var(--line)}
.offer-card__list li:before{content:"";position:absolute;left:3px;top:11px;width:10px;height:6px;border-left:2px solid var(--pumpkin);border-bottom:2px solid var(--pumpkin);transform:rotate(-45deg)}
.hero__price s,.seat__was{color:var(--light-muted);font-weight:400}
.seat__was{display:block;font-size:14px;font-family:var(--sans);color:var(--muted)}
.hero__price .hot{color:var(--pumpkin-2)}
.offer-closed{padding:20px 0}
.dates--offer{max-width:520px;margin:0 auto 18px}
.dates--offer legend,.picker__step--offer{justify-content:center;width:100%}
.picker__step--offer{display:flex;align-items:center;gap:10px;margin:8px 0 14px;font-weight:900;font-size:15px;color:var(--light)}
.picker__step--offer span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);font-size:13px}
/* thanks page */
.thanks-page .topbar{justify-content:center}
.thanks-hero{padding:56px 0 48px;background:radial-gradient(90% 60% at 50% 0,rgba(217,168,66,.18),transparent 65%),var(--ink);color:var(--light)}
.thanks-check{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(145deg,var(--gold-2),var(--gold));color:var(--ink);font-size:32px;font-weight:900}
.thanks-title{margin:0 0 24px;font-family:var(--serif);font-weight:900;font-size:clamp(28px,7vw,44px);line-height:1.4}
.thanks-ticket{position:relative;max-width:440px;margin:0 auto;padding:20px 22px;border-radius:18px;background:var(--card);color:var(--text);text-align:left;box-shadow:0 22px 50px rgba(0,0,0,.45)}
.thanks-ticket:before,.thanks-ticket:after{content:"";position:absolute;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:var(--ink)}
.thanks-ticket:before{left:-9px}.thanks-ticket:after{right:-9px}
.thanks-ticket__label{margin:0;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.14em}
.thanks-ticket__date{margin:4px 0 10px;font-family:var(--serif);font-weight:900;font-size:22px;line-height:1.4}
.thanks-ticket__date small{display:block;font-family:var(--sans);font-weight:500;font-size:12px;color:var(--muted)}
.thanks-ticket__seat{margin:0;padding-top:10px;border-top:1px dashed var(--line);font-weight:900;color:var(--red)}
.thanks-note{margin:18px 0 0;color:var(--light-muted);font-size:12px}
.tsteps{display:grid;gap:14px;margin:8px 0 0;padding:0;list-style:none}
.tstep{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:20px 18px;border-radius:20px;background:var(--card);border:1px solid var(--line)}
.tstep--line{border:2px solid #06c755;box-shadow:0 14px 34px rgba(6,199,85,.15)}
.tstep__no{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--gold);font-family:var(--serif);font-weight:900}
.tstep--line .tstep__no{background:#06c755;color:#fff}
.tstep h3{margin:4px 0 6px;font-size:17px;line-height:1.5}
.tstep h3 small{margin-left:8px;padding:2px 8px;border-radius:99px;background:#e7f9ee;color:#047a35;font-size:11px;vertical-align:2px}
.tstep p{margin:0 0 12px;color:var(--muted);font-size:14px}
.tstep p strong{color:var(--text)}
.tstep__small{font-size:12px!important}
.tstep__row{display:flex;flex-wrap:wrap;gap:10px}
.tstep__row .btn{flex:1 1 180px;min-height:48px;font-size:14px}
.tstep .btn--light{background:var(--ink);color:var(--light);box-shadow:0 5px 0 #000}
.btn--line{background:#06c755;color:#fff;box-shadow:0 6px 0 #04913e}
.btn--ghost-dark{background:transparent;color:var(--text);border:1.5px solid var(--line)}
.thanks-more .slots{margin:0 0 18px}
[hidden]{display:none!important}
/* 3-step offer flow */
.flow{display:grid;gap:26px;max-width:860px;margin:0 auto 26px;text-align:left}
.flow__step{margin:0;padding:0;border:0;min-width:0}
.flow__head{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:0;font-weight:900;font-size:16px;color:#fff}
.flow__head span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--pumpkin);color:#fff;font-size:14px;flex:0 0 auto}
.flow .dates--offer{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:none;margin:0}
.flow .halloween__cards{margin:0}
.offer-card--pick{display:block;cursor:pointer;text-align:center;transition:transform .15s,box-shadow .15s;outline:3px solid transparent}
.offer-card--pick>span{display:block}
.offer-card--pick input{position:absolute;opacity:0;pointer-events:none}
.offer-card__radio{position:absolute;top:16px;left:16px;width:24px;height:24px;border-radius:50%;border:2px solid #d8c6b4;background:#fff}
.offer-card--pick:has(input:checked){box-shadow:0 0 0 3px var(--pumpkin),0 22px 50px rgba(0,0,0,.4);transform:translateY(-2px)}
.offer-card--pick:has(input:checked) .offer-card__radio{border-color:var(--pumpkin);background:radial-gradient(circle,var(--pumpkin) 0 6px,#fff 7px)}
.offer-card--pick:has(input:focus-visible){outline-color:var(--gold-2)}
.offer-card--pick .offer-card__list{display:block;margin:10px 0 0;text-align:left;font-size:13px;color:var(--muted)}
.offer-card--pick .offer-card__list span{display:block;position:relative;padding:4px 0 4px 20px;border-top:1px dashed var(--line)}
.offer-card--pick .offer-card__list span:before{content:"";position:absolute;left:3px;top:11px;width:10px;height:6px;border-left:2px solid var(--pumpkin);border-bottom:2px solid var(--pumpkin);transform:rotate(-45deg)}
.offer-card--pick .offer-card__price span{display:inline}
.flow__summary{padding:20px;border-radius:20px;background:rgba(0,0,0,.35);border:1px solid rgba(255,138,61,.4)}
.flow__line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:0 0 6px;color:#f1d5c2;font-size:14px}
.flow__line b{color:#fff;font-size:16px}
.flow__total{margin:0 0 14px;color:#f1d5c2;font-size:14px}
.flow__total b{font-family:var(--serif);font-size:30px;color:var(--pumpkin-2);margin:0 4px}
.flow__total small{font-size:12px}
.flow__summary .btn--xl{max-width:none}
.flow__small{margin:10px 0 0;color:#c9a993;font-size:12px;text-align:center}
.flow__step.is-entering{opacity:0;transform:translateY(12px)}
.flow__step[data-flow-step]{transition:opacity .35s ease,transform .35s ease}
@media(prefers-reduced-motion:reduce){.flow__step[data-flow-step]{transition:none}}
.flow__hint{margin:10px 0 0;color:#c9a993;font-size:12px}
.offer-card--pick{color:var(--text);text-decoration:none}
.offer-card--pick:hover{transform:translateY(-3px);box-shadow:0 0 0 3px var(--pumpkin),0 26px 56px rgba(0,0,0,.45)}
.offer-card--pick:focus-visible{outline:3px solid var(--gold-2);outline-offset:3px}
.offer-card__go{display:flex!important;align-items:center;justify-content:center;gap:6px;min-height:52px;margin-top:14px;border-radius:999px;background:linear-gradient(135deg,var(--pumpkin-2),var(--pumpkin));color:#fff;font-weight:900;font-size:15px;box-shadow:0 5px 0 var(--pumpkin-deep)}
/* readability pass for the top offer (2026-10-24 night) */
.halloween--top{padding:36px 0 48px;background:#1a0f0a}
.halloween--top:before,.halloween--top .halloween__bats{display:none}
.halloween--top .halloween__title{font-size:clamp(26px,6.6vw,40px)}
.halloween--top .halloween__lead{color:#f6e9de;font-size:15px;line-height:1.9;margin-bottom:18px}
.offer-facts{display:grid;gap:6px;max-width:520px;margin:0 auto 30px;padding:14px 16px;list-style:none;border-radius:14px;background:rgba(255,255,255,.06);text-align:left;font-size:14px;color:#fff}
.offer-facts b{display:inline-block;min-width:3.5em;margin-right:8px;color:var(--pumpkin-2);font-size:12px}
.halloween--top .flow__head{font-size:18px}
.halloween--top .flow__head span{width:30px;height:30px}
.halloween--top .flow__hint{color:#f0dccd;font-size:13px}
.halloween--top .dates label>span{background:#fff;border:2px solid #fff;padding:16px 8px}
.halloween--top .dates b{color:var(--text)}
.halloween--top .dates label>span>small{color:var(--muted)}
.halloween--top .dates input:checked+span{background:var(--pumpkin);border-color:var(--pumpkin);box-shadow:0 0 0 4px rgba(255,138,61,.35)}
.halloween--top .dates input:checked+span b,.halloween--top .dates input:checked+span small{color:#fff}
.halloween--top .offer-card__who{color:var(--muted);font-weight:700}
.halloween--top .halloween__zero{margin-top:8px}
.halloween--top .countdown{background:rgba(255,255,255,.06)}
.halloween--top .halloween__note{color:#e2c8b6}

/* =========================================================
   WORLD THEME（キービジュアルの世界観：漆黒・金箔・朱の筆）
   halloween-kanran.html / thanks.html の body.world に適用
   ========================================================= */
.world{
  --paper:#0d0907;--cream:#120c09;--card:#1a120e;--ink:#070504;--ink-2:#0d0907;
  --text:#f4e8d4;--muted:#bba78f;--line:rgba(214,170,92,.22);
  --gold-a:#fff1c4;--gold-b:#e8c178;--gold-c:#b9852f;--gold-d:#7a5419;
  --foil:linear-gradient(115deg,var(--gold-d) 0%,var(--gold-c) 18%,var(--gold-a) 38%,var(--gold-b) 52%,var(--gold-c) 70%,var(--gold-a) 86%,var(--gold-c) 100%);
  --crimson:#b3171c;--crimson-2:#e0352c;
  background:#070504;
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.world .gold{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:foil 9s ease-in-out infinite}
@keyframes foil{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(prefers-reduced-motion:reduce){.world .gold{animation:none}}

/* sections go dark */
.world .section--paper,.world .section--cream{background:radial-gradient(70% 50% at 50% 0,rgba(179,23,28,.10),transparent 70%),linear-gradient(180deg,#0d0907,#0a0705);color:var(--text)}
.world .section--dark{background:radial-gradient(80% 50% at 50% 0,rgba(214,170,92,.08),transparent 70%),#0a0705}
.world .section--navy{background:radial-gradient(70% 40% at 50% 0,rgba(214,170,92,.10),transparent 70%),linear-gradient(180deg,#0c0907,#060403)}
.world .section+.section{border-top:1px solid rgba(214,170,92,.12)}
.world .title,.world .title--light,.world .final__title{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.world .eyebrow{color:var(--crimson-2);letter-spacing:.24em}
.world .eyebrow--gold{color:var(--gold-b)}
.world .lead,.world .lead--light{color:var(--muted)}
.world .lead strong,.world .lead--light strong{color:var(--text)}

/* ribbon + topbar */
.world .offer-ribbon{background:linear-gradient(90deg,#0a0605,#2a0d0b 50%,#0a0605);border-bottom:1px solid rgba(214,170,92,.35)}
.world .offer-ribbon__tag{background:var(--crimson);border:1px solid rgba(255,220,160,.35)}
.world .offer-ribbon__text b{color:var(--gold-a)}
.world .offer-ribbon__time{color:var(--gold-b)}
.world .topbar{background:rgba(7,5,4,.92);border-bottom:1px solid rgba(214,170,92,.25)}
.world .seal{background:radial-gradient(circle at 30% 25%,#e6402f,#7d0d0d 70%);box-shadow:inset 0 0 0 1px rgba(255,214,150,.45),0 6px 16px rgba(125,13,13,.5)}

/* key visual */
.kv{position:relative;background:#050302}
.kv img{width:100%;max-width:1200px;margin:0 auto;aspect-ratio:1672/941;object-fit:cover}
.kv:after{content:"";position:absolute;left:0;right:0;bottom:0;height:28%;background:linear-gradient(transparent,#070504);pointer-events:none}

/* offer */
.world .halloween--top{position:relative;padding:8px 0 56px;background:radial-gradient(60% 30% at 15% 20%,rgba(179,23,28,.18),transparent 70%),radial-gradient(50% 30% at 90% 60%,rgba(214,170,92,.10),transparent 70%),#070504}
.world .halloween--top:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(rgba(255,214,150,.55) .6px,transparent 1px),radial-gradient(rgba(255,214,150,.35) .6px,transparent 1px);background-size:120px 140px,190px 170px;background-position:10px 20px,70px 90px}
.world .halloween--top .wrap{z-index:1}
.world-tag{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--gold-b);font-family:var(--serif);font-weight:700;letter-spacing:.12em;font-size:14px}
.world-tag span{padding:3px 10px;border:1px solid rgba(255,214,150,.4);background:var(--crimson);color:#fff;font-family:var(--sans);font-weight:900;font-size:11px;letter-spacing:.14em}
.world .halloween__title{font-size:clamp(34px,9vw,58px);line-height:1.25;letter-spacing:.04em;margin-bottom:20px}
.brushed{position:relative;display:inline-block;padding:0 .2em}
.brushed:before{content:"";position:absolute;left:-6%;right:-6%;top:52%;height:.62em;transform:translateY(-10%) rotate(-2deg);z-index:-1;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 60' preserveAspectRatio='none'><filter id='r'><feTurbulence type='fractalNoise' baseFrequency='0.9 0.05' numOctaves='3' seed='4'/><feDisplacementMap in='SourceGraphic' scale='14'/></filter><path filter='url(%23r)' d='M6 34 C 80 18, 200 14, 394 22 L 390 40 C 260 44, 120 50, 10 52 Z' fill='%23a8121a'/></svg>") center/100% 100% no-repeat;opacity:.9}
.world .halloween__lead{color:#eadcc6}
.world .offer-facts{background:linear-gradient(180deg,rgba(26,18,14,.9),rgba(14,10,8,.9));border:1px solid rgba(214,170,92,.35);box-shadow:inset 0 0 0 4px rgba(7,5,4,.9),inset 0 0 0 5px rgba(214,170,92,.18)}
.world .offer-facts b{color:var(--gold-b);font-family:var(--serif)}

/* six themes */
.themes{max-width:860px;margin:0 auto 34px}
.themes__title{margin:0 0 14px;font-family:var(--serif);font-weight:900;font-size:18px;letter-spacing:.08em}
.themes__list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;margin:0;padding:0;list-style:none}
.themes__list li{display:flex;flex-direction:column;align-items:center;gap:6px;font-family:var(--serif);font-weight:700;font-size:13px;color:#f1e1c3;line-height:1.35}
.themes__list img{width:64px;height:64px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.6))}
.themes__list small{display:block;font-size:11px;color:var(--muted)}
@media(min-width:760px){.themes__list{grid-template-columns:repeat(6,1fr)}.themes__list img{width:76px;height:76px}}

/* steps */
.world .flow__head{font-family:var(--serif);font-size:19px;color:#f6e7c8}
.world .flow__head span{background:#0b0807;color:var(--gold-a);border:1.5px solid var(--gold-b);box-shadow:0 0 0 3px rgba(214,170,92,.15);font-family:var(--serif)}
.world .flow__hint{color:#d8c4a8}
.world .halloween--top .dates label>span{background:linear-gradient(180deg,#1d1410,#120c09);border:1.5px solid rgba(214,170,92,.45)}
.world .halloween--top .dates b{color:#f6e7c8}
.world .halloween--top .dates label>span>small{color:var(--muted)}
.world .halloween--top .dates input:checked+span{background:var(--foil);border-color:var(--gold-a);box-shadow:0 0 0 3px rgba(214,170,92,.3),0 10px 30px rgba(214,170,92,.25)}
.world .halloween--top .dates input:checked+span b,.world .halloween--top .dates input:checked+span small{color:#1a0f06}

/* course cards: lacquer + gold */
.world .offer-card{background:linear-gradient(180deg,#1c130f,#0f0a08);color:var(--text);border:1px solid rgba(214,170,92,.5);box-shadow:inset 0 0 0 5px #0f0a08,inset 0 0 0 6px rgba(214,170,92,.22),0 24px 50px rgba(0,0,0,.55)}
.world .offer-card:after{background:radial-gradient(circle,rgba(179,23,28,.25),transparent 70%)}
.world .offer-card--coached{border-color:var(--gold-b)}
.world .offer-card__who{color:var(--muted)}
.world .offer-card__what{color:#e9d8bb}
.world .offer-card__seat{color:#fff6e0;font-family:var(--serif)}
.world .offer-card__regular{color:var(--muted)}
.world .offer-card__price{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;font-size:58px}
.world .offer-card__badge{background:var(--crimson);border:1px solid rgba(255,214,150,.4)}
.world .offer-card--pick .offer-card__list{color:#cdb99d}
.world .offer-card--pick .offer-card__list span{border-top-color:rgba(214,170,92,.18)}
.world .offer-card--pick .offer-card__list span:before{border-color:var(--gold-b)}
.world .offer-card__go{background:var(--foil);color:#1a0f06;box-shadow:0 5px 0 var(--gold-d),0 12px 26px rgba(214,170,92,.25);letter-spacing:.04em}
.world .offer-card--pick:hover{box-shadow:inset 0 0 0 5px #0f0a08,inset 0 0 0 6px rgba(214,170,92,.35),0 0 0 2px var(--gold-b),0 28px 60px rgba(0,0,0,.6)}
.world .halloween__zero mark{background:linear-gradient(transparent 55%,rgba(179,23,28,.75) 0)}
.world .countdown{border-color:rgba(214,170,92,.4);background:rgba(0,0,0,.4)}
.world .countdown b{color:var(--gold-a)}
.world .countdown span{color:var(--gold-b)}

/* rest of page */
.world .benefit,.world .attend article,.world .quote,.world .faq details,.world .lesson__try,.world .instructor{background:linear-gradient(180deg,#1a120e,#120c09);border-color:rgba(214,170,92,.22);box-shadow:0 16px 40px rgba(0,0,0,.4)}
.world .benefit__no{color:var(--gold-b)}
.world .benefit__no i{background:rgba(179,23,28,.25);color:#f3c9b9}
.world .benefit__icon,.world .attend svg{color:var(--gold-b)}
.world .lesson__try span{background:var(--crimson);color:#fff}
.world .quote__head small{color:var(--muted)}
.world .quote--observer .quote__head i{background:linear-gradient(145deg,#3a2a1b,#140d09);border:1px solid rgba(214,170,92,.4)}
.world .instructor__catch strong{color:var(--crimson-2)}
.world .socials a{background:#120c09;color:var(--text);border-color:rgba(214,170,92,.35)}
.world .unit{background:linear-gradient(180deg,#1a120e,#100b08);border-color:rgba(214,170,92,.2)}
.world .unit h3{align-items:center}
.unit__icon{width:34px;height:34px;flex:0 0 auto}
.world .unit h3 span{color:var(--gold-b)}
.world .day-notes p{background:rgba(214,170,92,.06)}
.world .faq summary:before{background:rgba(179,23,28,.25);color:#f3c9b9}
.world .faq summary:after{border-color:var(--gold-b)}
.world .faq details>p{color:var(--muted)}
.world .faq a{color:var(--gold-b)}
.world .contact{background:linear-gradient(180deg,#1a120e,#0d0907);border:1px solid rgba(214,170,92,.3)}
.world .proof__rail figure{border-color:rgba(214,170,92,.25);background:#120c09}
.world .lab{background:linear-gradient(180deg,#1a120e,#0f0a08);color:var(--text);border:1px solid rgba(214,170,92,.35)}
.world .lab__brand{background:var(--crimson)}
.world .lab__title{color:#f6e7c8}
.world .lab__meta span{background:#120c09;border-color:rgba(214,170,92,.3);color:var(--text)}
.world .course{background:#120c09;border-color:rgba(214,170,92,.25);color:var(--text)}
.world .course--best{border-color:var(--gold-b);box-shadow:0 14px 34px rgba(214,170,92,.15)}
.world .course__ribbon{background:var(--crimson)}
.world .course__grade,.world .course__price small,.world .lab__note{color:var(--muted)}
.world .course ul{color:#d6c3a6}
.world .credit-step--goal{background:var(--foil)}
.world .pass__tag{background:var(--gold-b);color:#1a0f06}
.world .btn--pumpkin,.world .btn--primary{background:var(--foil);color:#1a0f06;box-shadow:0 6px 0 var(--gold-d),0 14px 32px rgba(214,170,92,.25)}
.world .btn--light{background:#f4e8d4;color:#1a0f06;box-shadow:0 6px 0 #8f7a5c}
.world .final{background:radial-gradient(70% 60% at 50% 100%,rgba(179,23,28,.35),transparent 70%),#070504}
.world .final__offer{color:var(--gold-b)}
.world .footer{background:#040302;border-top:1px solid rgba(214,170,92,.15)}
.world .video{box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 0 1px rgba(214,170,92,.35)}
/* thanks page in world theme */
.world .thanks-hero{background:radial-gradient(90% 60% at 50% 0,rgba(214,170,92,.16),transparent 65%),#070504}
.world .thanks-check{background:var(--foil)}
.world .thanks-ticket{background:linear-gradient(180deg,#1c130f,#0f0a08);border:1px solid rgba(214,170,92,.5);color:var(--text)}
.world .thanks-ticket:before,.world .thanks-ticket:after{background:#070504;border:1px solid rgba(214,170,92,.5)}
.world .thanks-ticket__seat{color:var(--gold-b);border-top-color:rgba(214,170,92,.3)}
.world .tstep{background:linear-gradient(180deg,#1a120e,#120c09);border-color:rgba(214,170,92,.22)}
.world .tstep--line{border-color:#06c755}
.world .tstep h3{color:#f6e7c8}
.world .tstep p strong{color:#fff}
.world .tstep__no{border:1.5px solid var(--gold-b)}
.world .tstep .btn--light{background:#f4e8d4;color:#1a0f06;box-shadow:0 5px 0 #8f7a5c}
.world .btn--ghost-dark{color:var(--text);border-color:rgba(214,170,92,.4)}
.unit>div{min-width:0}
.world .unit h3{flex-wrap:wrap;gap:6px 8px}
.unit__icon{width:30px;height:30px}
.world{--foil:linear-gradient(115deg,#9a6b22 0%,#d9a74e 16%,#fff3cc 34%,#f0cf86 50%,#d9a74e 66%,#fff3cc 84%,#c99640 100%)}
.brushed:before{height:.78em;top:46%;opacity:.95}
.unit .unit__icon{width:30px;height:30px;aspect-ratio:auto;object-fit:contain;border-radius:50%}

/* =========================================================
   PHONE-FIXED LAYOUT + PC SIDE PANELS（world page）
   ========================================================= */
.world .phone{position:relative;max-width:440px;margin:0 auto;background:#070504;box-shadow:0 0 0 1px rgba(214,170,92,.18),0 0 80px rgba(0,0,0,.8)}
.world .phone .wrap{width:calc(100% - 32px)}
.world .phone .sp{display:inline}
.world .phone .section{padding:64px 0}
.world .phone .title{font-size:30px}
.world .phone .halloween__title{font-size:40px}
.world .phone .final__title{font-size:32px}
.world .phone .topbar{padding:10px 16px}
/* stack everything vertically inside the phone */
.world .phone .halloween__cards,.world .phone .quotes,.world .phone .units,.world .phone .day-notes,.world .phone .attend,.world .phone .seats,.world .phone .credit-flow,.world .phone .courses,.world .phone .contact__links,.world .phone .lesson{grid-template-columns:1fr}
.world .phone .lesson{gap:24px}
.world .phone .lesson .title{font-size:30px}
.world .phone .unit{grid-template-columns:112px 1fr;padding:10px}
.world .phone .unit div{padding:0}
.world .phone .instructor{grid-template-columns:1fr}
.world .phone .instructor img{height:auto;aspect-ratio:1400/788}
.world .phone .instructor__copy{padding:24px 20px 26px}
.world .phone .session{display:block;padding:24px 18px}
.world .phone .session__actions,.world .phone .session__small{grid-column:auto}
.world .phone .slots{grid-template-columns:1fr;margin:0 0 16px}
.world .phone .lab{padding:24px 16px}
.world .phone .credit-op{transform:rotate(90deg)}
.world .phone .halloween__how{grid-template-columns:1fr}
/* benefits: vertical rows with icon */
.world .phone .benefits{grid-auto-flow:row;grid-template-columns:1fr;gap:12px;margin:0;padding:0;overflow:visible}
.world .phone .benefit{display:grid;grid-template-columns:56px 1fr;column-gap:14px;align-items:start;padding:18px 16px}
.world .phone .benefit__icon{grid-row:1/span 3;width:56px;height:56px;margin:0;padding:10px;border-radius:50%;border:1.5px solid var(--gold-b);background:radial-gradient(circle,#2a1c12,#0d0907);stroke-width:2.6}
.world .phone .benefit__no{font-size:16px;gap:8px}
.world .phone .benefit h3{margin:2px 0 4px;font-size:16px}
.world .phone .benefit p{font-size:13px}
/* offer facts with icons */
.world .offer-facts li{display:flex;gap:12px;align-items:flex-start}
.world .offer-facts svg{flex:0 0 22px;width:22px;height:22px;margin-top:2px;color:var(--gold-b)}
.world .offer-facts b{display:block;min-width:0;margin:0 0 1px;font-size:11px;letter-spacing:.12em}
/* themes: vertical rows */
.world .themes__list{display:grid;grid-template-columns:1fr!important;gap:8px}
.world .themes__list li{display:block}
.world .themes__list a{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;padding:8px 12px 8px 8px;border-radius:999px;background:linear-gradient(90deg,rgba(214,170,92,.10),rgba(214,170,92,.02));border:1px solid rgba(214,170,92,.2);text-decoration:none;color:#d9c7aa;font-family:var(--sans);font-weight:500;font-size:12.5px;text-align:left}
.world .themes__list a:hover{border-color:var(--gold-b)}
.world .themes__list img{width:58px!important;height:58px!important}
.world .themes__list b{display:flex;align-items:baseline;gap:6px;font-family:var(--serif);font-size:16px;color:#fbefd6}
.world .themes__list b small{display:inline;font-family:var(--sans);font-size:11px;font-weight:500;color:var(--gold-b)}

/* PC: key visual behind + side panels */
.side{display:none}
@media(min-width:1080px){
  body.world{background:linear-gradient(rgba(5,3,2,.86),rgba(5,3,2,.92)),url("./assets/onicamp-learning-hero-soft-20260908.png") center/cover fixed #050302}
  .side{display:flex;position:fixed;top:0;bottom:0;width:calc((100vw - 440px)/2);align-items:center;justify-content:center;padding:32px;z-index:5;overflow:hidden}
  .side--left{left:0}
  .side--right{right:0}
  .side:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 50% at 50% 50%,rgba(179,23,28,.16),transparent 70%)}
  .side__inner{position:relative;width:100%;max-width:300px;max-height:100%;overflow:auto;scrollbar-width:none}
  .side--left .side__inner{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto 1fr;column-gap:22px;align-items:start}
  .side__en{grid-column:1/-1;margin:0 0 14px;color:var(--gold-b);font-family:var(--serif);font-size:11px;letter-spacing:.42em;line-height:1.8}
  .side__title{grid-row:2/span 2;writing-mode:vertical-rl;font-family:var(--serif);font-weight:900;font-size:clamp(40px,4.2vw,64px);line-height:1;letter-spacing:.12em;text-decoration:none;filter:drop-shadow(0 6px 18px rgba(0,0,0,.7))}
  .side__lead{margin:0 0 18px;color:#e9d8bb;font-family:var(--serif);font-size:14px;line-height:1.8}
  .side__nav{display:grid;gap:8px}
  .side__nav a{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid rgba(214,170,92,.2);background:rgba(10,7,5,.55);color:#f6e7c8;text-decoration:none;font-family:var(--serif);font-weight:700;font-size:14px;line-height:1.3;transition:border-color .2s,transform .2s,background .2s}
  .side__nav a:hover{border-color:var(--gold-b);transform:translateX(4px);background:rgba(26,18,14,.85)}
  .side__nav img{width:44px;height:44px}
  .side__nav small{display:block;font-family:var(--sans);font-weight:500;font-size:10.5px;color:var(--gold-b)}
  .side--right .side__inner{display:flex;flex-direction:column;gap:14px;padding:26px 22px;border-radius:22px;background:linear-gradient(180deg,rgba(26,18,14,.92),rgba(10,7,5,.92));border:1px solid rgba(214,170,92,.4);box-shadow:inset 0 0 0 5px rgba(10,7,5,.9),inset 0 0 0 6px rgba(214,170,92,.18),0 30px 70px rgba(0,0,0,.6)}
  .side--right .world-tag{margin:0}
  .side__offer{margin:0;font-family:var(--serif);font-weight:900;font-size:34px;line-height:1.2}
  .side__prices{display:grid;gap:8px;margin:0}
  .side__prices div{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px dashed rgba(214,170,92,.25)}
  .side__prices dt{color:#f6e7c8;font-family:var(--serif);font-weight:700}
  .side__prices dd{margin:0;display:flex;gap:8px;align-items:baseline}
  .side__prices s{color:var(--muted);font-size:12px}
  .side__prices b{font-family:var(--serif);font-size:26px}
  .side__dates{margin:0;color:#d9c7aa;font-size:13px;line-height:1.7}
  .side__count{display:flex;justify-content:space-between;align-items:baseline;padding:8px 12px;border-radius:10px;border:1px solid rgba(214,170,92,.35);background:rgba(0,0,0,.35)}
  .side__count span{color:var(--gold-b);font-size:12px}
  .side__count b{color:var(--gold-a);font-size:20px;font-variant-numeric:tabular-nums}
  .side--right .btn{min-height:52px}
  .side__links{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:6px;border-top:1px solid rgba(214,170,92,.18)}
  .side__links a{color:var(--muted);font-size:12px;text-decoration:none}
  .side__links a:hover{color:var(--gold-a)}
}
@media(min-width:1080px) and (max-height:720px){.side__lead{display:none}.side__nav{gap:4px}.side__nav img{width:36px;height:36px}}
@media(min-width:1080px){
  body.world{background:linear-gradient(90deg,rgba(5,3,2,.94),rgba(5,3,2,.88) 50%,rgba(5,3,2,.94)),url("./assets/onicamp-learning-hero-soft-20260908.png") 70% center/cover fixed #050302}
  .side__title{display:block;font-size:clamp(44px,3.8vw,58px);line-height:1.12;letter-spacing:.06em;text-orientation:upright}
  .side__title .gold{display:block;animation:none;background-size:100% 100%;background-image:linear-gradient(180deg,#fff3cc 0%,#e8c178 35%,#b9852f 60%,#f6dd9c 85%,#c99640 100%)}
  .side__lead{font-size:13px;letter-spacing:.02em}
}
@media(min-width:1080px){
  .side__title{writing-mode:horizontal-tb;display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.08}
  .side__title .gold{display:block}
  .side__title .gold:nth-child(2),.side__title .gold:nth-child(6){font-size:.72em}
}
.world .phone .attend article{display:grid;grid-template-columns:48px 1fr;column-gap:14px;align-items:start;padding:18px 16px}
.world .phone .attend svg{grid-row:1/span 2;width:48px;height:48px;padding:10px;border-radius:50%;border:1.5px solid var(--gold-b);background:radial-gradient(circle,#2a1c12,#0d0907)}
.world .phone .attend h3{margin:2px 0 4px;font-size:16px}
@media(min-width:1080px){div.world{background:linear-gradient(90deg,rgba(5,3,2,.94),rgba(5,3,2,.88) 50%,rgba(5,3,2,.94)),url("./assets/onicamp-learning-hero-soft-20260908.png") 70% center/cover fixed #050302}}

/* =========================================================
   SELL VERSION（短く・読みやすく。金は価格とボタンだけ）
   ========================================================= */
.sell{--text:#f6eee1;--muted:#d2c3ad;font-size:16px}
.sell .phone{background:#0b0807}
.s-ribbon{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 12px;padding:10px 14px;background:#7d0d0d;color:#fff;text-decoration:none;font-size:13px;line-height:1.5}
.s-ribbon span{font-weight:700}
.s-ribbon b{font-size:15px}
.s-ribbon em{font-style:normal;color:#ffe3b0}
.s-ribbon em span{font-variant-numeric:tabular-nums;font-weight:900}
.sell .kv:after{height:22%;background:linear-gradient(transparent,#0b0807)}
.s-offer{padding:8px 18px 44px;text-align:center}
.s-title{margin:0 0 16px;font-family:var(--serif);font-weight:900;font-size:30px;line-height:1.45;color:#fff}
.s-hl{background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent}
.s-lead{margin:0 0 22px;color:var(--text);font-size:16px;line-height:1.9}
.s-lead b{color:#fff}
.s-facts{display:grid;gap:12px;margin:0 0 30px;padding:16px;list-style:none;border-radius:16px;background:#15100d;border:1px solid rgba(214,170,92,.25);text-align:left}
.s-facts li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.6;color:var(--text)}
.s-facts li b{color:#fff}
.s-facts svg{flex:0 0 24px;width:24px;height:24px;color:var(--gold-b)}
.sell .flow{gap:28px;margin:0}
.sell .flow__head{font-family:var(--sans);font-weight:900;font-size:19px;color:#fff}
.sell .flow__head span{background:#fff;color:#0b0807;border:0;box-shadow:none;font-family:var(--sans)}
.sell .flow__hint{color:var(--muted);font-size:14px}
.sell .dates--offer label>span{background:#fff;border:2px solid #fff;padding:16px 8px}
.sell .dates--offer b{color:#1a1310;font-size:26px}
.sell .dates--offer label>span>small{color:#6f6158;font-size:13px}
.sell .dates--offer input:checked+span{background:#1a1310;border-color:var(--gold-b);box-shadow:0 0 0 3px rgba(214,170,92,.45)}
.sell .dates--offer input:checked+span b{color:#fff}
.sell .dates--offer input:checked+span small{color:var(--gold-b)}
.s-courses{display:grid;gap:14px}
.s-course{position:relative;display:grid;gap:12px;padding:20px 18px 18px;border-radius:18px;background:#fbf6ee;color:#1a1310;text-decoration:none;text-align:left;box-shadow:0 18px 40px rgba(0,0,0,.45);transition:transform .15s}
.s-course:hover{transform:translateY(-2px)}
.s-course:focus-visible{outline:3px solid var(--gold-b);outline-offset:3px}
.s-course--coached{box-shadow:0 0 0 2px var(--gold-b),0 18px 40px rgba(0,0,0,.45)}
.s-course__badge{position:absolute;top:-11px;right:16px;padding:3px 12px;border-radius:99px;background:#7d0d0d;color:#fff;font-size:12px;font-weight:900}
.s-course__top{display:grid;gap:2px}
.s-course__name{font-family:var(--serif);font-weight:900;font-size:24px;line-height:1.3}
.s-course__desc{font-size:14px;color:#5e5047}
.s-course__price{display:flex;align-items:baseline;gap:10px}
.s-course__price s{color:#8a7a6d;font-size:14px}
.s-course__price b{font-family:var(--serif);font-weight:900;font-size:40px;line-height:1;color:#7d0d0d;font-variant-numeric:tabular-nums}
.s-course__price small{color:#8a7a6d;font-size:12px}
.s-course__go{display:flex;align-items:center;justify-content:center;gap:6px;min-height:54px;border-radius:999px;background:var(--foil);color:#1a0f06;font-weight:900;font-size:16px;box-shadow:0 5px 0 var(--gold-d)}
.s-section{padding:48px 18px;border-top:1px solid rgba(214,170,92,.15)}
.s-h2{margin:0 0 22px;font-family:var(--serif);font-weight:900;font-size:24px;line-height:1.45;color:#fff;text-align:center}
.s-reasons{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.s-reasons li{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:18px 16px;border-radius:16px;background:#15100d;border:1px solid rgba(214,170,92,.2)}
.s-reasons__no{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--gold-b);color:var(--gold-a);font-family:var(--serif);font-weight:900;font-size:18px}
.s-reasons h3{margin:6px 0 6px;font-size:18px;line-height:1.5;color:#fff}
.s-reasons p{margin:0;color:var(--text);font-size:15px;line-height:1.85}
.s-reasons p b{color:#fff;background:linear-gradient(transparent 60%,rgba(179,23,28,.7) 0)}
.s-icons{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px!important}
.s-icons img{width:44px;height:44px}
.s-voice{margin:0 0 12px;padding:18px 16px;border-left:3px solid var(--gold-b);border-radius:0 14px 14px 0;background:#15100d}
.s-voice p{margin:0 0 8px;color:var(--text);font-size:15px;line-height:1.9}
.s-voice cite{color:var(--gold-b);font-style:normal;font-size:12px;font-weight:700}
.s-faq{display:grid;gap:10px}
.s-faq details{border-radius:14px;background:#15100d;border:1px solid rgba(214,170,92,.2)}
.s-faq summary{padding:16px 40px 16px 16px;position:relative;cursor:pointer;list-style:none;font-weight:700;font-size:15px;color:#fff;line-height:1.6}
.s-faq summary::-webkit-details-marker{display:none}
.s-faq summary:after{content:"＋";position:absolute;right:16px;top:15px;color:var(--gold-b)}
.s-faq details[open] summary:after{content:"－"}
.s-faq p{margin:0;padding:0 16px 16px;color:var(--text);font-size:14.5px;line-height:1.85}
.s-final{padding:40px 18px 48px;text-align:center;border-top:1px solid rgba(214,170,92,.15);background:radial-gradient(80% 60% at 50% 100%,rgba(179,23,28,.3),transparent 70%)}
.s-final__count{margin:0 0 14px;color:var(--text);font-size:15px}
.s-final__count b{color:#fff;font-size:22px;font-variant-numeric:tabular-nums}
.s-final__note{margin:12px 0 0;color:var(--muted);font-size:13px}
.sell .btn--primary{background:var(--foil);color:#1a0f06;box-shadow:0 6px 0 var(--gold-d)}
.sell .footer{padding:28px 18px 40px;color:#a8977f}
.sell .world-tag{color:#fff}
.s-icons{gap:4px}.s-icons img{width:36px;height:36px}

/* =========================================================
   CALM（2026-10-25）目にやさしい版：キービジュアル以外は生成りの紙。
   暗い背景×明るいカードの明暗差、金のグラデ、秒の点滅をなくす。
   ========================================================= */
.sell{--text:#3b2f28;--muted:#6b5d52;--c-ink:#1f1712;--c-paper:#f7f2ea;--c-line:#e6dccd;--c-red:#a3201b;--c-red-d:#6e1512;--c-gold:#8a6224;background:var(--c-paper)}
.sell .gold{animation:none}
.sell .phone{background:var(--c-paper);color:var(--text);box-shadow:0 0 60px rgba(0,0,0,.35)}
.sell .s-ribbon{background:#2a1d18;color:#f2e9dc;font-weight:500}
.sell .s-ribbon b{color:#f1d9a6}
.sell .s-ribbon em{color:#e2d5c3}
.sell .kv:after{background:linear-gradient(transparent,var(--c-paper))}
.sell .world-tag{color:var(--text)}
.sell .world-tag span{border:0}
.sell .s-title{color:var(--c-ink)}
.sell .s-hl{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--c-red)}
.sell .s-lead{color:var(--text)}
.sell .s-lead b{color:var(--c-ink)}
.sell .s-facts{background:#fff;border:1px solid var(--c-line)}
.sell .s-facts li{color:var(--text)}
.sell .s-facts li b{color:var(--c-ink)}
.sell .s-facts svg{color:var(--c-gold)}
.sell .flow__head{color:var(--c-ink)}
.sell .flow__head span{background:#2a1d18;color:#fff}
.sell .flow__hint{color:var(--muted)}
.sell .dates--offer label>span{background:#fff;border:2px solid var(--c-line);box-shadow:none}
.sell .dates--offer b{color:var(--c-ink)}
.sell .dates--offer label>span>small{color:var(--muted)}
.sell .dates--offer input:checked+span{background:#2a1d18;border-color:#2a1d18;box-shadow:0 0 0 3px rgba(138,98,36,.25)}
.sell .dates--offer input:checked+span b{color:#fff}
.sell .dates--offer input:checked+span small{color:#e9d3a6}
.sell .s-course{background:#fff;border:1px solid var(--c-line);box-shadow:0 6px 18px rgba(60,40,20,.08)}
.sell .s-course--coached{border:2px solid #b98a3c;box-shadow:0 6px 18px rgba(60,40,20,.08)}
.sell .s-course__badge{background:var(--c-red)}
.sell .s-course__desc{color:var(--muted)}
.sell .s-course__price b{color:var(--c-red)}
.sell .s-course__go{background:var(--c-red);color:#fff;box-shadow:0 4px 0 var(--c-red-d)}
.sell .s-section{border-top:1px solid var(--c-line)}
.sell .s-h2{color:var(--c-ink)}
.sell .s-reasons li{background:#fff;border:1px solid var(--c-line)}
.sell .s-reasons__no{border-color:#b98a3c;color:var(--c-gold)}
.sell .s-reasons h3{color:var(--c-ink)}
.sell .s-reasons p{color:var(--text)}
.sell .s-reasons p b{color:var(--c-ink);background:linear-gradient(transparent 62%,rgba(163,32,27,.16) 0)}
.sell .s-icons img{padding:3px;border-radius:10px;background:#2a1d18}
.sell .s-voice{background:#fff;border-left-color:#b98a3c}
.sell .s-voice p{color:var(--text)}
.sell .s-voice cite{color:var(--c-gold)}
.sell .s-faq details{background:#fff;border:1px solid var(--c-line)}
.sell .s-faq summary{color:var(--c-ink)}
.sell .s-faq summary:after{color:var(--c-gold)}
.sell .s-faq p{color:var(--text)}
.sell .s-final{background:#efe6d8;border-top:1px solid var(--c-line)}
.sell .s-final__count{color:var(--text)}
.sell .s-final__count b{color:var(--c-ink)}
.sell .s-final__note{color:var(--muted)}
.sell .btn--primary{background:var(--c-red);color:#fff;box-shadow:0 5px 0 var(--c-red-d)}
.sell .footer{background:transparent;color:var(--muted);border-top:1px solid var(--c-line)}
.sell .offer-closed .s-title{color:var(--c-ink)}
@media(min-width:1080px){
  body.world.sell{background:linear-gradient(90deg,rgba(20,14,11,.92),rgba(20,14,11,.86) 50%,rgba(20,14,11,.92)),url("./assets/onicamp-learning-hero-soft-20260908.png") 70% center/cover fixed #1a120e}
  .sell .side--right .btn--primary{background:var(--c-red);color:#fff}
}
.sell .side .world-tag{color:#e9dcc6}

/* =========================================================
   WHITE（2026-10-25）申込ページの定番型：白×薄グレー交互、黒文字、
   赤は「締切・価格・ボタン」だけ、黄マーカーは1か所
   ========================================================= */
.sell{--text:#333;--muted:#666;--c-ink:#111;--c-paper:#fff;--c-line:#dcdcdc;--c-red:#d0121b;--c-red-d:#8e0c12;--c-gold:#d0121b;--c-gray:#f4f4f4}
.sell .phone{background:#fff}
.sell .s-ribbon{background:var(--c-red);color:#fff;font-weight:700}
.sell .s-ribbon b{color:#ffef5a}
.sell .s-ribbon em{color:#fff}
.sell .kv:after{background:linear-gradient(transparent,#fff)}
.sell .s-facts{background:var(--c-gray);border:0}
.sell .s-facts svg{color:var(--c-red)}
.sell .flow__head span{background:var(--c-red)}
.sell .dates--offer label>span{border:2px solid var(--c-line)}
.sell .dates--offer input:checked+span{background:#fff5f5;border-color:var(--c-red);box-shadow:0 0 0 3px rgba(208,18,27,.15)}
.sell .dates--offer input:checked+span b{color:var(--c-red)}
.sell .dates--offer input:checked+span small{color:var(--c-red)}
.sell .s-course{border:2px solid var(--c-line);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.sell .s-course--coached{border-color:var(--c-red)}
.sell .s-course__go{font-size:17px;box-shadow:0 4px 0 var(--c-red-d)}
.sell .s-section{border-top:0}
.sell #reasons,.sell #faq{background:var(--c-gray)}
.sell .s-h2{position:relative;padding-bottom:12px}
.sell .s-h2:after{content:"";position:absolute;left:50%;bottom:0;width:40px;height:3px;margin-left:-20px;background:var(--c-red)}
.sell .s-reasons li{border:0;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.sell .s-reasons__no{background:var(--c-red);border-color:var(--c-red);color:#fff}
.sell .s-reasons p b{background:linear-gradient(transparent 55%,#fff27a 0)}
.sell .s-icons img{background:#222}
.sell .s-voice{background:var(--c-gray);border-left-color:var(--c-red)}
.sell .s-voice cite{color:var(--muted)}
.sell .s-faq details{border:0}
.sell .s-faq summary:after{color:var(--c-red)}
.sell .s-final{background:#fff;border-top:4px solid var(--c-red)}
.sell .s-final__count b{color:var(--c-red)}
.sell .footer{background:var(--c-gray);border-top:0}

/* =========================================================
   SOFT（2026-10-25 2回目）明暗差をさらに減らす：PCも明るく、赤は価格とボタンだけ
   ========================================================= */
.sell{--c-red:#c62828;--c-red-d:#8e1c1c;--text:#3a3a3a;--c-ink:#222}
.sell .s-ribbon{background:#fff4f2;color:#7a2a24;border-bottom:1px solid #f1d4cf;font-weight:500}
.sell .s-ribbon b{color:var(--c-red)}
.sell .s-ribbon em{color:#7a2a24}
.sell .flow__head span{background:#333}
.sell .s-reasons__no{background:#333;border-color:#333}
.sell .s-h2:after{background:#ccc}
.sell .s-voice{border-left-color:#bbb}
.sell .s-faq summary:after{color:#888}
.sell .s-final{border-top:1px solid var(--c-line)}
.sell .s-facts svg{color:#666}
.sell .world-tag span{background:#333}
.sell .s-course--coached{border-color:#e3b4b0}
.sell .s-course__badge{background:#333}
.sell .s-reasons p b{background:linear-gradient(transparent 60%,#fff3a8 0)}
@media(min-width:1080px){
  body.world.sell,div.world.sell{background:#efedea}
  .sell .side:before{display:none}
  .sell .phone{box-shadow:0 0 0 1px #e2dfda,0 10px 40px rgba(0,0,0,.06)}
  .sell .side__en{color:#999}
  .sell .side__title{filter:none}
  .sell .side__title .gold{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#2a2a2a}
  .sell .side__lead{color:#555}
  .sell .side__nav a{background:#fff;border:1px solid #e2dfda;color:#333}
  .sell .side__nav a:hover{background:#fff;border-color:#bbb}
  .sell .side__nav img{border-radius:50%;background:#2a2a2a}
  .sell .side__nav small{color:#888}
  .sell .side--right .side__inner{background:#fff;border:1px solid #e2dfda;box-shadow:0 10px 30px rgba(0,0,0,.06)}
  .sell .side .world-tag{color:#555}
  .sell .side__offer .gold{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#222}
  .sell .side__prices div{border-bottom:1px solid #eee}
  .sell .side__prices dt{color:#333}
  .sell .side__prices s{color:#999}
  .sell .side__prices b.gold{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--c-red)}
  .sell .side__dates{color:#666}
  .sell .side__count{background:#f7f7f7;border:0}
  .sell .side__count span{color:#777}
  .sell .side__count b{color:#222}
  .sell .side__links{border-top-color:#eee}
  .sell .side__links a{color:#888}
}
/* spacing（2026-10-25）見出しまわりに余白 */
.sell .s-offer{padding-top:32px}
.sell .s-offer .world-tag{margin-bottom:22px}
.sell .s-title{margin-bottom:32px;line-height:1.5}
.sell .s-lead{margin-bottom:20px}
.sell .s-lead+.s-lead{margin-bottom:32px}
.sell .s-facts{margin-bottom:40px}
/* PR動画 */
.s-video{margin:0 -18px 32px}
.s-video__frame{position:relative;aspect-ratio:16/9;background:#111}
.s-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.s-video figcaption{margin-top:10px;color:var(--muted);font-size:13px}
/* 当日やること 6ステップ */
.sell .s-h2 small{display:block;margin-top:4px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted)}
.s-steps{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:none}
.s-steps li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--c-line,#e5e5e5)}
.s-steps li:last-child{border-bottom:0}
.s-steps img{width:48px;height:48px;border-radius:50%;background:#2a2a2a;padding:3px}
.s-steps__no{margin:0;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--c-red,#c62828)}
.s-steps h3{margin:0 0 2px;font-size:17px;line-height:1.5;color:var(--c-ink,#222)}
.s-steps p:not(.s-steps__no){margin:0;font-size:14.5px;line-height:1.75;color:var(--text)}
.s-steps__note{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--c-gray,#f4f4f4);font-size:13.5px;line-height:1.7;color:var(--muted)}
.sell #reasons{background:#fff}.sell #voices{background:var(--c-gray)}.sell #faq{background:#fff}
.sell #voices .s-voice{background:#fff}
.sell #faq .s-faq details{background:var(--c-gray)}
/* 授業の切り抜き（押すまでYouTubeを読み込まない） */
.s-clips{margin-top:28px;text-align:center}
.s-clips__head{margin:0 0 12px;font-weight:700;font-size:16px;color:var(--c-ink,#222)}
.s-clips__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.s-clip{position:relative;display:block;width:100%;aspect-ratio:9/16;padding:0;border:0;border-radius:14px;overflow:hidden;background:#111;cursor:pointer}
.s-clip img{width:100%;height:100%;object-fit:cover;display:block}
.s-clip iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.s-clip__play{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:rgba(0,0,0,.6)}
.s-clip__play:after{content:"";position:absolute;left:22px;top:17px;border-left:16px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent}
.s-clip:focus-visible{outline:3px solid var(--c-red,#c62828);outline-offset:3px}
.s-clips__note{margin:12px 0 0;font-size:14px;font-weight:700;color:var(--c-ink,#222)}
.s-clip__label{position:absolute;left:0;right:0;bottom:0;padding:22px 8px 10px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:12px;font-weight:700}
/* 特別価格のご案内コールアウト */
.s-callout{margin:0 0 32px;padding:18px 18px 18px 20px;border-left:4px solid var(--c-red,#c62828);border-radius:0 14px 14px 0;background:#fff4f2;color:var(--c-ink,#222);font-size:16px;font-weight:500;line-height:1.85;text-align:left}
.s-callout b{font-weight:900}
.s-callout em{font-style:normal;font-weight:900;color:var(--c-red,#c62828)}
.sell .s-lead+.s-callout{margin-top:-8px}
/* 日付：段ごとのチェック式 */
.s-dates{display:grid;gap:10px}
.s-date{position:relative;display:grid;grid-template-columns:28px 1fr auto;gap:14px;align-items:center;padding:16px 18px;border:2px solid #e3e3e3;border-radius:14px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.s-date input{position:absolute;opacity:0;pointer-events:none}
.s-date__check{width:26px;height:26px;border:2px solid #c8c8c8;border-radius:50%;background:#fff;position:relative;transition:all .15s}
.s-date__day{display:flex;align-items:baseline;gap:8px}
.s-date__day b{font-family:var(--serif);font-size:28px;font-weight:900;line-height:1;color:#222;font-variant-numeric:tabular-nums}
.s-date__day small{font-size:14px;font-weight:700;color:#555}
.s-date__time{display:grid;text-align:right;font-size:14px;font-weight:700;color:#444;line-height:1.4}
.s-date__time small{font-size:12px;font-weight:500;color:#888}
.s-date:hover{border-color:#bdbdbd}
.s-date input:focus-visible~.s-date__check{outline:3px solid rgba(198,40,40,.35);outline-offset:2px}
.s-date:has(input:checked){border-color:#c62828;background:#fff8f7}
.s-date input:checked~.s-date__check{border-color:#c62828;background:#c62828}
.s-date input:checked~.s-date__check:after{content:"";position:absolute;left:7px;top:3px;width:6px;height:12px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.s-date input:checked~.s-date__day b{color:#c62828}

/* 当日やること：数字タイル＋詳細モーダル */
.sell #program{background:#fff}
.s-day{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 8px;border:1px solid #e6e6e6;border-radius:14px;overflow:hidden}
.s-day div{padding:14px 6px;text-align:center}
.s-day div+div{border-left:1px solid #e6e6e6}
.s-day dt{font-size:12px;color:#888}
.s-day dd{margin:2px 0 0;font-family:var(--serif);font-size:26px;font-weight:900;line-height:1.2;color:#222;font-variant-numeric:tabular-nums}
.s-day dd small{margin-left:2px;font-family:var(--sans);font-size:12px;font-weight:700}
.s-day__note{margin:0 0 26px;font-size:13px;line-height:1.7;color:#777;text-align:center}
.s-units{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none}
.s-units li{display:flex}
.s-unit{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:16px 14px 14px;border:1px solid #e6e6e6;border-radius:14px;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,transform .15s}
.s-unit:hover{border-color:#c62828;transform:translateY(-1px)}
.s-unit:focus-visible{outline:3px solid rgba(198,40,40,.4);outline-offset:2px}
.s-unit__no{font-family:var(--serif);font-size:30px;font-weight:900;line-height:1;color:#c62828}
.s-unit__title{margin:10px 0 4px;font-size:16px;font-weight:900;line-height:1.4;color:#222}
.s-unit__line{flex:1;font-size:12.5px;line-height:1.65;color:#777}
.s-unit__more{margin-top:12px;font-size:12px;font-weight:700;color:#c62828}
.s-unit__more:after{content:" →"}
.s-steps__note{margin:16px 0 0;padding:0;background:none;font-size:13px;line-height:1.7;color:#777;text-align:center}
.s-modal{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:20px;background:#fff;color:#333;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.s-modal::backdrop{background:rgba(0,0,0,.45)}
.s-modal[open]{animation:modal-in .18s ease-out}
@keyframes modal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.s-modal[open]{animation:none}}
.s-modal__body{position:relative;max-height:calc(100dvh - 48px);overflow:auto;padding:26px 22px 20px}
.s-modal__close{position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;border-radius:50%;background:#f2f2f2;color:#444;font-size:20px;line-height:1;cursor:pointer}
.s-modal__head{display:flex;gap:14px;align-items:center;margin:0 44px 18px 0;padding-bottom:16px;border-bottom:1px solid #eee}
.s-modal__num{font-family:var(--serif);font-size:44px;font-weight:900;line-height:1;color:#c62828}
.s-modal__no{margin:0;font-size:11px;font-weight:700;letter-spacing:.12em;color:#999}
.s-modal h3{margin:2px 0 0;font-size:21px;line-height:1.4;color:#222}
.s-modal__aim{margin:0 0 20px;font-size:15px;line-height:1.85}
.s-modal__label{margin:0 0 8px;font-size:12px;font-weight:700;color:#999}
.s-modal__todo{display:grid;gap:8px;margin:0 0 20px;padding:0;list-style:none}
.s-modal__todo li{position:relative;padding-left:24px;font-size:15px;line-height:1.7}
.s-modal__todo li:before{content:"";position:absolute;left:3px;top:6px;width:6px;height:11px;border:solid #c62828;border-width:0 2px 2px 0;transform:rotate(45deg)}
.s-modal__ex{margin:0 0 22px;padding:14px 16px;border-radius:12px;background:#f6f6f6;font-size:15px;line-height:1.7;color:#222;font-weight:500}
.s-modal__nav{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px;font-size:13px;color:#999}
.s-modal__step{min-width:84px;min-height:40px;border:1px solid #ddd;border-radius:99px;background:#fff;font:inherit;font-size:14px;font-weight:700;color:#333;cursor:pointer}
.s-modal__step:disabled{opacity:.3;cursor:default}
.s-modal__cta{display:flex;justify-content:center;align-items:center;min-height:52px;border-radius:99px;background:#c62828;color:#fff;font-weight:900;text-decoration:none;box-shadow:0 4px 0 #8e1c1c}
body:has(dialog[open]){overflow:hidden}
/* 当日やること：アイコン付きステップ（縦） */
.s-stepper{position:relative;margin:0;padding:0;list-style:none}
.s-stepper li{position:relative}
.s-stepper li:not(:last-child):after{content:"";position:absolute;left:31px;top:58px;bottom:-6px;width:2px;background:#e3d6c2}
.s-step{display:grid;grid-template-columns:44px 1fr 16px;gap:14px;align-items:center;width:100%;padding:12px 10px;border:0;border-radius:14px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background .15s}
.s-step:hover{background:#faf6f0}
.s-step:focus-visible{outline:3px solid rgba(198,40,40,.4);outline-offset:0}
.s-step__icon{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#2a211b;box-shadow:0 0 0 4px #fff}
.s-step__icon img{width:38px;height:38px}
.s-step__txt{display:grid;gap:1px;min-width:0}
.s-step__no{font-size:11px;font-weight:700;letter-spacing:.14em;color:#c62828}
.s-step__title{font-size:17px;font-weight:900;line-height:1.4;color:#222}
.s-step__line{font-size:13px;line-height:1.6;color:#777}
.s-step__more{font-size:22px;line-height:1;color:#bbb}
.s-modal__icon{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:#2a211b}
.s-modal__icon img{width:48px;height:48px}
.s-modal__no{color:#c62828}
.s-step{grid-template-columns:44px 1fr;cursor:default}
.s-step:hover{background:none}
/* 「日付を選んで申し込む」→ 日程の枠から表示（日付選択とコースが見える位置） */
html:has(.sell){scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html:has(.sell){scroll-behavior:auto}}
.sell #apply{scroll-margin-top:16px}
/* ステップごとの当日スライド（タイトル→問いかけ→ぼかし「続きは当日」） */
.s-slides{display:flex;gap:8px;margin:10px -10px 4px 0;padding:0 10px 6px 0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.s-slides::-webkit-scrollbar{display:none}
.s-slides>img,.s-slides__lock{flex:0 0 78%;aspect-ratio:16/9;border-radius:8px;scroll-snap-align:start;box-shadow:0 2px 8px rgba(0,0,0,.12);background:#1a1310}
.s-slides>img{width:78%;height:auto;object-fit:cover}
.s-slides__lock{position:relative;overflow:hidden;display:block}
.s-slides__lock img{width:100%;height:100%;object-fit:cover;transform:scale(1.1)}
.s-slides__lock span{position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,14,10,.45);color:#fff;font-size:14px;font-weight:900;letter-spacing:.08em}
.s-slides__lock span:before{content:"🔒 "}
.s-stepper li:not(:last-child):after{top:58px}
.s-step{align-items:start}
.s-step__icon{margin-top:4px}
.s-slides__lock span{display:flex;align-items:center;justify-content:center;gap:6px}
/* 規約リンク・受講案内／特商法ページ */
.s-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:0 0 12px}
.s-legal a{color:#555;font-size:12.5px}
.sell .flow__hint a{color:#c62828;font-weight:700}
.sell .s-faq p a{color:#c62828}
.doc-head{padding:14px 18px;border-bottom:1px solid #eee}
.doc-head a{color:#555;font-size:14px;text-decoration:none}
.doc{padding:28px 20px 48px;color:#333;font-size:15px;line-height:1.85}
.doc h1{margin:0 0 16px;font-size:24px;line-height:1.4;color:#222}
.doc h2{margin:0 0 10px;padding-left:10px;border-left:4px solid #c62828;font-size:17px;line-height:1.5;color:#222}
.doc section{margin:0 0 28px}
.doc ul{margin:0;padding-left:1.2em}
.doc li{margin:0 0 6px}
.doc p{margin:0 0 10px}
.doc a{color:#c62828}
.doc-lead{padding:14px 16px;border-radius:12px;background:#f6f6f6;font-size:14px}
.doc-table{width:100%;margin:4px 0 8px;border-collapse:collapse;font-size:14px}
.doc-table th,.doc-table td{padding:8px 6px;border-bottom:1px solid #e6e6e6;text-align:left;vertical-align:top}
.doc-table thead th{font-size:12px;color:#888;font-weight:700}
.doc-table td{white-space:nowrap;font-weight:700;color:#222}
.doc-note{font-size:13px;color:#666}
.doc-dl{margin:0}
.doc-dl div{padding:14px 0;border-bottom:1px solid #eee}
.doc-dl dt{margin:0 0 4px;font-size:13px;font-weight:700;color:#888}
.doc-dl dd{margin:0}
.s-step__icon--qa{color:#e9c47e;font-family:var(--serif);font-size:12px;font-weight:900;letter-spacing:-.02em}
.s-slides--one{overflow:visible}
.s-slides--one>img{flex-basis:100%;width:100%}
/* Thank youページ（白ベース） */
.ty-hero{padding:44px 20px 36px;text-align:center;background:linear-gradient(#fff8f7,#fff)}
.ty-check{position:relative;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:#c62828}
.ty-check:after{content:"";position:absolute;left:23px;top:14px;width:14px;height:26px;border:solid #fff;border-width:0 4px 4px 0;transform:rotate(45deg)}
.ty-eyebrow{margin:0 0 6px;font-size:13px;font-weight:700;color:#c62828;letter-spacing:.08em}
.ty-title{margin:0 0 24px;font-family:var(--serif);font-size:26px;font-weight:900;line-height:1.5;color:#222}
.ty-ticket{margin:0 0 16px;padding:18px 16px;border:2px dashed #e3b4b0;border-radius:16px;background:#fff}
.ty-ticket__label{margin:0 0 6px;font-size:12px;color:#888}
.ty-ticket__seat{margin:0;font-family:var(--serif);font-size:22px;font-weight:900;color:#c62828}
.ty-ticket__date{margin:4px 0 0;font-size:17px;font-weight:900;color:#222}
.ty-ticket__time{margin:2px 0 0;font-size:13px;color:#666}
.ty-note{margin:0;font-size:13px;line-height:1.7;color:#777}
.ty-section{padding:40px 20px}
.ty-section--gray{background:#f6f6f6}
.ty-steps{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.ty-step{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:18px 16px;border:1px solid #e6e6e6;border-radius:16px;background:#fff}
.ty-step--line{border:2px solid #06c755}
.ty-step__no{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#333;color:#fff;font-weight:900}
.ty-step--line .ty-step__no{background:#06c755}
.ty-step h3{display:flex;align-items:center;gap:8px;margin:5px 0 6px;font-size:17px;color:#222}
.ty-step h3 em{padding:2px 8px;border-radius:99px;background:#06c755;color:#fff;font-size:11px;font-style:normal}
.ty-step p{margin:0 0 10px;font-size:14.5px;line-height:1.8;color:#3a3a3a}
.ty-small{font-size:13px!important;color:#777!important}
.ty-text{margin:0 0 16px;font-size:15px;line-height:1.85;color:#3a3a3a}
.ty-center{text-align:center}
.ty-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ty-row--stack{grid-template-columns:1fr}
.ty-btn{display:flex;align-items:center;justify-content:center;min-height:50px;padding:0 12px;border-radius:99px;font-size:15px;font-weight:900;text-decoration:none;text-align:center}
.ty-btn--line{background:#06c755;color:#fff;box-shadow:0 4px 0 #04913e}
.ty-btn--red{background:#c62828;color:#fff;box-shadow:0 4px 0 #8e1c1c}
.ty-btn--ghost{border:1.5px solid #ccc;background:#fff;color:#333;font-size:14px}
.ty-slots{display:grid;gap:6px;margin:0 0 16px;padding:0;list-style:none}
.ty-slots li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fff;font-size:14.5px;font-weight:700;color:#222}
.ty-slots b{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#333;color:#fff;font-size:13px}
.ty-row .ty-btn--ghost{font-size:13px;white-space:nowrap;padding:0 8px}
.ty-choice{display:grid;gap:12px}
.ty-choice__item{padding:18px 16px;border-radius:16px;background:#fff}
.ty-choice__name{display:flex;align-items:baseline;gap:8px;margin:0 0 4px;font-size:18px;font-weight:900;color:#222}
.ty-choice__name small{font-size:12px;font-weight:700;color:#888}
.ty-choice__desc{margin:0 0 12px;font-size:14px;color:#555}
.ty-choice .ty-slots li{background:#f6f6f6}
/* 席の違い・締切・実質0円 */
.s-course__specs{display:grid;gap:4px;margin:2px 0 0}
.s-course__specs span{position:relative;padding-left:20px;font-size:13.5px;line-height:1.6;color:#444}
.s-course__specs span:before{content:"";position:absolute;left:3px;top:5px;width:5px;height:10px;border:solid #c62828;border-width:0 2px 2px 0;transform:rotate(45deg)}
.s-course__deadline{font-size:12px;font-weight:700;color:#c62828}
.s-zero{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#fffbe6;border:1px solid #f1e3a0;font-size:14px;line-height:1.7;color:#333;text-align:left}
.s-zero b{background:linear-gradient(transparent 55%,#fff27a 0);font-size:16px}
.s-closed-note{margin:16px 0 0;padding:12px 14px;border-radius:12px;background:#f6f6f6;font-size:14px;color:#555}
.s-course__credit{margin-top:-6px;font-size:12px;font-weight:700;color:#666}
/* お知らせモーダル（EIMARIのLPに合わせた紺×黄） */
.nt{width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:20px;background:#fff;color:#1b2a4a;box-shadow:0 30px 80px rgba(10,20,40,.35)}
.nt::backdrop{background:rgba(15,25,45,.6)}
.nt[open]{animation:modal-in .2s ease-out}
.nt__body{position:relative;max-height:calc(100dvh - 32px);overflow:auto;padding:26px 20px 18px;font-family:var(--sans)}
.nt__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:#eef1f6;color:#1b2a4a;font-size:20px;line-height:1;cursor:pointer}
.nt__eyebrow{display:inline-block;margin:0 0 8px;padding:4px 12px;border-radius:99px;background:#1b2a4a;color:#fff;font-size:11.5px;font-weight:700}
.nt__title{margin:0 0 18px;font-size:22px;font-weight:900;line-height:1.4;color:#1b2a4a}
.nt__title span{background:linear-gradient(transparent 58%,#ffe066 0)}
.nt__item{margin:0 0 12px;padding:16px;border:1px solid #e3e8f0;border-radius:16px;background:#f7f9fc}
.nt__no{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 8px;font-size:16px;font-weight:900;color:#1b2a4a}
.nt__no b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#1b2a4a;color:#fff;font-size:13px}
.nt__no em{padding:2px 8px;border-radius:6px;background:#fff1e6;color:#e8590c;font-size:11px;font-style:normal}
.nt__text{margin:0 0 10px;font-size:14.5px;line-height:1.85;color:#2c3a55}
.nt__text b{color:#e8590c}
.nt__text mark{background:linear-gradient(transparent 58%,#ffe066 0);color:#1b2a4a;font-weight:700}
.nt__small{margin:-4px 0 10px;font-size:12.5px;line-height:1.7;color:#6b7891}
.nt__btn{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:99px;font-size:15px;font-weight:900;text-decoration:none}
.nt__btn--navy{background:#1b2a4a;color:#fff}
.nt__btn--line{background:#06c755;color:#fff;box-shadow:0 4px 0 #04913e}
.nt__skip{display:block;width:100%;margin-top:6px;padding:10px;border:0;background:none;color:#6b7891;font:inherit;font-size:13.5px;text-decoration:underline;cursor:pointer}
.nt-chip{display:block;width:100%;padding:10px 14px;border:0;border-bottom:1px solid #e3e8f0;background:#f2f5fa;color:#1b2a4a;font:inherit;font-size:13.5px;font-weight:700;text-align:center;cursor:pointer}
.nt__soft{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#fff;border:1px dashed #cdd6e4;font-size:13.5px;line-height:1.8;color:#2c3a55}
/* 12/20を選んだときは青（11/23は赤のまま） */
.sell [data-flow][data-date="1220"] .s-course__go{background:#1f5fbf;box-shadow:0 4px 0 #143f80}
.sell .s-date:has(input[value="1220"]:checked){border-color:#1f5fbf;background:#f3f7fd}
.sell .s-date input[value="1220"]:checked~.s-date__check{border-color:#1f5fbf;background:#1f5fbf}
.sell .s-date input[value="1220"]:checked~.s-date__day b{color:#1f5fbf}
/* Thank you：狭い画面ではみ出さないように */
.ty-step>div{min-width:0}
.ty-step h3{flex-wrap:wrap;row-gap:4px}
.ty-step{grid-template-columns:32px minmax(0,1fr);gap:10px;padding:16px 14px}
.ty-step__no{width:32px;height:32px}
.ty-btn{min-width:0;white-space:normal;line-height:1.4}
.ty-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:360px){.ty-row{grid-template-columns:1fr}.ty-section{padding:36px 14px}.ty-hero{padding:40px 14px 32px}.ty-title{font-size:23px}}
