/* ━━━ Serendipity DJ School — Design System ━━━ */

:root{
  --bg:#fff;--bg2:#f7f6f3;--bg3:#efeee9;
  --dark:#222;--dark2:#333;
  --cta:#e8650a;--cta-h:#d05a08;
  --tx:#222;--tx2:#666;--tx-light:#999;
  --border:#e0ddd6;
  --ff:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",system-ui,sans-serif;
  --mw:720px;--ease:cubic-bezier(.22,.61,.36,1);
  --line-green:#06c755;
}

/* ━━━ SITE HEADER ━━━ */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--bg);border-bottom:1px solid var(--border)}
.site-header a{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--tx);text-decoration:none}
.site-logo{white-space:nowrap}
.site-nav{display:flex;gap:16px}
.site-nav a{font-size:11px;letter-spacing:.04em;color:var(--tx2);transition:color .2s}
.site-nav a:hover{color:var(--cta)}

/* ━━━ TBD MARKER ━━━ */
.tbd{padding:10px 14px;background:rgba(232,101,10,.06);border:1px solid rgba(232,101,10,.2);border-radius:6px;font-size:12px;color:var(--cta);margin:12px 0;line-height:1.7;font-weight:600}

/* ━━━ RESET ━━━ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--ff);color:var(--tx);background:var(--bg);font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased;padding-bottom:64px}
img{max-width:100%;height:auto;display:block}
.w{max-width:var(--mw);margin:0 auto;padding:0 20px}

/* ━━━ ANIMATIONS ━━━ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:translateY(0)}
@keyframes heroFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ━━━ BUTTONS ━━━ */
.btn{display:inline-block;padding:18px 40px;background:var(--cta);color:#fff;font:700 16px/1 var(--ff);text-decoration:none;border-radius:8px;transition:all .15s var(--ease);text-align:center;min-height:52px;position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.1);opacity:0;transition:opacity .2s}
.btn:hover{background:var(--cta-h);transform:translateY(-1px)}
.btn:hover::after{opacity:1}
.btn:active{transform:translateY(0) scale(.98)}
.btn-line{background:var(--line-green)}
.btn-line:hover{background:#05b04c}
.btn-ghost{background:transparent;border:2px solid var(--border);color:var(--tx);box-shadow:none}
.btn-ghost:hover{border-color:var(--tx);background:var(--bg2)}
.btn-note{display:block;text-align:center;margin-top:8px;font-size:12px;color:var(--tx-light)}

/* ━━━ STICKY CTA ━━━ */
.sticky{position:fixed;bottom:0;left:0;right:0;background:var(--bg);padding:10px 16px;z-index:99;border-top:1px solid var(--border)}
.sticky .btn{width:100%;padding:16px;font-size:15px;border-radius:8px}

/* ━━━ HERO ━━━ */
.hero{padding:40px 0 48px;background:var(--bg)}
.hero-school{font-size:11px;letter-spacing:.12em;color:var(--tx-light);margin-bottom:20px}
.hero h1{font-size:clamp(24px,6vw,38px);font-weight:900;line-height:1.4;margin-bottom:20px}
.hero h1 mark{background:linear-gradient(transparent 55%,rgba(232,101,10,.15) 55%);padding:0 2px}
.hero-body{font-size:14px;color:var(--tx2);line-height:2;margin-bottom:24px;max-width:500px}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.hero-tag{padding:6px 14px;background:var(--bg2);border-radius:4px;font-size:12px;font-weight:600;color:var(--tx2)}
.hero-tag.em{background:var(--cta);color:#fff}
.hero .btn{margin-bottom:8px}
.hero-price{font-size:13px;color:var(--tx-light);margin-top:12px}
.hero-price b{color:var(--tx);font-weight:800}
.hero-price s{text-decoration:line-through}
.hero-note{font-size:12px;color:var(--tx-light);margin-top:8px}

.hero-img{overflow:hidden}
.hero-img img{width:100%;height:280px;object-fit:cover}

/* ━━━ HERO SPLIT (mobile: bg overlay, desktop: side-by-side) ━━━ */
.hero-split{position:relative;min-height:0;display:flex;align-items:flex-end;justify-content:center}
.hero-split .hero-visual{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-split .hero-visual img{width:100%;height:100%;object-fit:cover}
.hero-split .hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.25) 0%,rgba(0,0,0,.65) 50%,rgba(0,0,0,.75) 100%)}
.hero-split .hero-text{position:relative;z-index:1;text-align:center;padding:200px 20px 40px;color:#fff;animation:heroFadeIn .8s var(--ease) forwards}
.hero-split .hero-school{color:rgba(255,255,255,.7)}
.hero-split h1{color:#fff}
.hero-split h1 mark{background:linear-gradient(transparent 55%,rgba(232,101,10,.5) 55%);color:#fff}
.hero-split .hero-body{max-width:480px;margin-inline:auto;margin-bottom:24px;color:rgba(255,255,255,.85)}
.hero-split .hero-tag{background:rgba(255,255,255,.15);color:#fff;border:none}
.hero-split .hero-tag.em{background:var(--cta);color:#fff;border:none}
.hero-tags{justify-content:center}

/* ━━━ PAIN ━━━ */
.pain{padding:64px 0 56px;background:var(--bg)}
.pain h2{font-size:clamp(20px,4.5vw,26px);font-weight:800;line-height:1.5;margin-bottom:28px}
.pain h2 mark{background:linear-gradient(transparent 55%,rgba(232,101,10,.15) 55%);padding:0 2px}
.pain-item{padding:14px 16px 14px 40px;margin-bottom:8px;background:var(--bg2);border-radius:6px;font-size:14px;color:var(--tx2);position:relative;line-height:1.7}
.pain-item::before{content:"";position:absolute;left:14px;top:20px;width:8px;height:8px;border:2px solid var(--cta);border-radius:50%}
.pain-answer{margin-top:28px;padding:20px;background:var(--bg2);border-radius:8px;border-left:4px solid var(--cta)}
.pain-answer p{font-size:15px;font-weight:700;line-height:1.7}
.pain-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pain-tags span{padding:6px 12px;background:var(--bg);border-radius:4px;font-size:12px;font-weight:700;color:var(--cta)}

/* ━━━ PHOTO UTILITIES ━━━ */
.photo-full{overflow:hidden}
.photo-full img{width:100%;height:240px;object-fit:cover}
.photo-strip{display:grid;grid-template-columns:1fr 1fr;gap:2px;overflow:hidden}
.photo-strip img{width:100%;aspect-ratio:1;object-fit:cover}

/* ━━━ NUMBERS ━━━ */
.nums{padding:48px 0;background:var(--dark);color:#fff}
.nums-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}
.nums-val{font-size:clamp(24px,5vw,36px);font-weight:900;color:var(--cta);line-height:1.2}
.nums-val small{font-size:.45em;font-weight:700}
.nums-label{font-size:11px;color:rgba(255,255,255,.5);margin-top:4px}

/* ━━━ CTA BREAK ━━━ */
.ctab{padding:56px 0;text-align:center;background:var(--bg2)}
.ctab p{font-size:14px;color:var(--tx2);margin-bottom:20px}

/* ━━━ INSTRUCTOR ━━━ */
.inst{padding:64px 0;background:var(--bg2)}
.inst h2{font-size:clamp(18px,4vw,22px);font-weight:800;margin-bottom:24px}
.inst-card{display:flex;gap:16px;align-items:start}
.inst-photo{width:80px;height:80px;border-radius:50%;overflow:hidden;flex-shrink:0}
.inst-photo img{width:100%;height:100%;object-fit:cover}
.inst-name{font-size:18px;font-weight:900;margin-bottom:2px}
.inst-role{font-size:12px;color:var(--tx-light);margin-bottom:10px}
.inst-bio{font-size:13px;color:var(--tx2);line-height:2}
.inst-quote{margin-top:20px;padding:16px 18px;background:var(--bg);border-radius:8px;border-left:4px solid var(--cta);font-size:14px;line-height:1.9;font-style:italic;color:var(--tx2)}

/* ━━━ FLOW ━━━ */
.flow{padding:64px 0;background:var(--bg2)}
.flow h2{font-size:clamp(20px,4vw,26px);font-weight:800;margin-bottom:8px}
.flow-lead{color:var(--tx2);margin-bottom:24px;font-size:14px}
.flow-row{display:flex;flex-direction:column;gap:10px}
.flow-step{display:flex;align-items:start;gap:12px}
.flow-num{width:32px;height:32px;border-radius:50%;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.flow-step:nth-child(n+4) .flow-num{background:var(--cta)}
.flow-step b{display:block;font-size:14px;margin-bottom:2px}
.flow-step span{font-size:12px;color:var(--tx2);display:block}

/* ━━━ FAQ ━━━ */
.faq{padding:64px 0 80px;background:var(--bg)}
.faq h2{font-size:clamp(20px,4vw,26px);font-weight:800;margin-bottom:28px}
.faq-list{max-width:600px}
.faq-item{border-bottom:1px solid var(--border);padding:18px 0}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-q{font-weight:700;font-size:15px;margin-bottom:8px;padding-left:28px;position:relative}
.faq-q::before{content:"Q";position:absolute;left:0;font-weight:900;color:var(--cta);font-size:14px}
.faq-a{font-size:14px;color:var(--tx2);line-height:2;padding-left:28px;position:relative}
.faq-a::before{content:"A";position:absolute;left:0;font-weight:900;color:var(--dark);font-size:14px}

/* ━━━ FINAL CTA ━━━ */
.final{padding:72px 0;text-align:center;background:var(--bg2)}
.final h2{font-size:clamp(22px,4.5vw,30px);font-weight:900;line-height:1.5;margin-bottom:12px}
.final-sub{font-size:14px;color:var(--tx2);margin-bottom:28px;max-width:400px;margin-inline:auto}
.final-ctas{display:flex;flex-direction:column;gap:10px;max-width:320px;margin:0 auto 16px}
.final-ctas .btn{width:100%}
.final-urgency{margin-top:16px;font-size:13px;color:#c05746;font-weight:700}
.final-safe{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px}
.final-safe span{font-size:12px;color:var(--tx-light)}

/* ━━━ FOOTER ━━━ */
.footer{padding:28px 0;border-top:1px solid var(--border)}
.footer p{font-size:11px;color:var(--tx-light);text-align:center}

/* ━━━ SCROLL MARGIN ━━━ */
section[id]{scroll-margin-top:64px}

/* ━━━ DESKTOP ━━━ */
@media(min-width:700px){
  .hero{padding:64px 0 48px}
  .hero-img img{height:400px}
  .hero-split{position:static;min-height:auto;flex-direction:row;align-items:stretch;max-width:1100px;margin:0 auto}
  .hero-split .hero-visual{position:static;flex:1}
  .hero-split .hero-visual img{min-height:480px}
  .hero-split .hero-visual::after{display:none}
  .hero-split .hero-text{position:static;flex:1.2;text-align:left;padding:64px 40px;display:flex;flex-direction:column;justify-content:center;color:var(--tx)}
  .hero-split .hero-school{color:var(--tx-light)}
  .hero-split h1{color:var(--tx)}
  .hero-split h1 mark{background:linear-gradient(transparent 55%,rgba(232,101,10,.15) 55%);color:var(--tx)}
  .hero-split .hero-body{color:var(--tx2);margin-inline:0}
  .hero-split .hero-tag{background:var(--bg2);color:var(--tx2)}
  .hero-split .hero-tag.em{background:var(--cta);color:#fff;border:none}
  .hero-split .hero-note{color:var(--tx-light)}
  .hero-tags{justify-content:flex-start}
  .photo-full img{height:360px}
  .photo-strip{grid-template-columns:repeat(4,1fr)}
  .pain-item{display:inline-block;width:calc(50% - 4px);vertical-align:top;margin-right:4px}
  .inst{padding:80px 0}
  .inst-card{gap:20px}
  .inst-photo{width:100px;height:100px}
  .flow{padding:80px 0}
  .flow-row{flex-direction:row;gap:0}
  .flow-step{flex:1;display:block;text-align:center}
  .flow-num{margin:0 auto 8px}
  .faq{padding:80px 0 96px}
  .final{padding:88px 0}
  .final-ctas{flex-direction:row;justify-content:center;max-width:none}
  .final-ctas .btn{width:auto}
  .sticky{display:none}
  body{padding-bottom:0}
}
