/* =====================================================================
   SAULNA — saulna.com brand site
   Implements SAULNA_DESIGN_SYSTEM.md (Obsidian / cream didone / one gold thread)
   ===================================================================== */

/* ----------  TOKENS (§14.1)  ---------- */
:root{
  /* obsidian */
  --ink-900:#09090B; --ink-850:#0E0E11; --ink-800:#131317; --ink-700:#1B1B20;
  --ink-600:#26262C; --ink-line:#2E2E36; --ink-line-2:#3A3A44;
  /* parchment */
  --parchment:#F4F1E8; --parchment-raised:#FAF8F1; --parchment-sunken:#ECE7DA; --parchment-line:#DED7C6;
  /* bone (text on dark) */
  --bone-50:#F7F4EC; --bone-100:#ECE7DA; --bone-300:#C9C2B2; --bone-500:#968F7E;
  /* ink text (on light) */
  --ink-text-strong:#0B0B0C; --ink-text:#1A1812; --ink-text-muted:#6B6457;
  /* gold */
  --gold-300:#E4CB91; --gold-500:#C9A86A; --gold-600:#B08F50; --gold-700:#8A6E3B;
  --gold-rule:linear-gradient(90deg,#8A6E3B 0%,#E4CB91 50%,#8A6E3B 100%);
  --gold-edge:linear-gradient(180deg,#E9D29B 0%,#C9A86A 45%,#9A7B3F 100%);
  --gold-foil:linear-gradient(92deg,#9A7B3F 0%,#E9D29B 35%,#C9A86A 70%,#8A6E3B 100%);
  /* semantic */
  --emerald-500:#3E7E5E; --emerald-300:#6FB294;
  --amber-500:#B7842F;   --amber-300:#D6A95A;
  --garnet-500:#9B3F3F;  --garnet-300:#C56B6B;
  --slate-500:#5C7288;   --slate-300:#8AA0B4;
  /* type */
  --font-serif:"Bodoni Moda","Playfair Display",Didot,Georgia,serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
  /* radius */
  --radius-sm:2px; --radius-md:4px; --radius-lg:8px;
  /* elevation */
  --shadow-sm:0 1px 2px rgba(0,0,0,.40);
  --shadow-md:0 8px 24px rgba(0,0,0,.45);
  --shadow-lg:0 24px 60px rgba(0,0,0,.50);
  --edge-light:inset 0 1px 0 rgba(247,244,236,.05);
  --focus-gold:0 0 0 2px rgba(201,168,106,.55);
  /* motion */
  --ease-brand:cubic-bezier(0.2,0.7,0.2,1);
  --dur-fast:150ms; --dur:220ms; --dur-slow:320ms;
  /* layout */
  --maxw:1200px; --gutter:24px;
}

/* ----------  RESET / BASE  ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{
  margin:0; background:var(--ink-900); color:var(--bone-100);
  font-family:var(--font-sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:var(--gold-500); text-decoration:none; transition:color var(--dur-fast) var(--ease-brand);}
a:hover{color:var(--gold-300);}
h1,h2,h3,h4{margin:0; font-family:var(--font-serif); color:var(--bone-50); letter-spacing:-0.01em; font-weight:600;}
p{margin:0;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit;}
:focus-visible{outline:none; box-shadow:var(--focus-gold); border-radius:var(--radius-sm);}
::selection{background:rgba(201,168,106,.30); color:var(--bone-50);}

/* ----------  UTILITIES  ---------- */
.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter);}
.eyebrow{
  font:600 12px/1.4 var(--font-sans); letter-spacing:.18em;
  text-transform:uppercase; color:var(--bone-500); margin:0;
}
.eyebrow--gold{color:var(--gold-500);}
.s-rule{height:1px; width:64px; background:var(--gold-rule); border:0; margin:18px 0;}
.s-rule.center{margin-inline:auto;}
.s-rule--full{width:100%; height:1px; background:var(--ink-line); border:0;}
.s-num{font-variant-numeric:tabular-nums lining-nums;}
.s-foil{
  background:var(--gold-foil); -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
.lede{font-size:18px; line-height:1.6; color:var(--bone-300);}
.muted{color:var(--bone-500);}
section{position:relative;}
.section{padding-block:104px;}
@media (max-width:768px){ .section{padding-block:72px;} }
.section-head{max-width:720px;}
.section-head h2{font-size:clamp(28px,4.4vw,44px); line-height:1.1;}
.center{text-align:center;}
.center .s-rule{margin-inline:auto;}

/* divider band between sections */
.band-line{height:1px; background:var(--ink-line); max-width:var(--maxw); margin-inline:auto;}

/* ----------  BUTTONS (§9.1)  ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:48px; padding-inline:24px; border-radius:var(--radius-md);
  font:600 15px/1 var(--font-sans); letter-spacing:.01em; cursor:pointer;
  border:1px solid transparent; background:transparent; color:var(--bone-100);
  transition:background var(--dur-fast) var(--ease-brand),
             color var(--dur-fast) var(--ease-brand),
             border-color var(--dur-fast) var(--ease-brand),
             transform var(--dur-fast) var(--ease-brand);
  text-align:center; white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);}
.btn--gold{ border-color:var(--gold-500); color:var(--gold-500); background:transparent; }
.btn--gold:hover{ background:rgba(201,168,106,.10); color:var(--gold-300); }
.btn--solid{ background:var(--bone-50); color:var(--ink-900); }
.btn--solid:hover{ background:#fff; color:var(--ink-900); }
.btn--secondary{ border-color:var(--ink-line); color:var(--bone-100); }
.btn--secondary:hover{ background:var(--ink-600); color:var(--bone-50); }
.btn--sm{height:40px; padding-inline:18px; font-size:14px;}
.btn--block{width:100%;}

/* ----------  NAV (§9.8)  ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:60;
  background:rgba(9,9,11,.72); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid transparent; transition:border-color var(--dur) var(--ease-brand),
    background var(--dur) var(--ease-brand);
}
.nav.scrolled{ background:rgba(9,9,11,.92); border-bottom-color:var(--ink-line); }
.nav__inner{ display:flex; align-items:center; justify-content:space-between;
  height:68px; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.brand{ display:inline-flex; align-items:center; gap:12px; color:var(--bone-50); }
.brand .mono{ width:30px; height:30px; }
.brand .word{
  font-family:var(--font-serif); font-weight:600; font-size:19px; letter-spacing:.22em;
  color:var(--bone-50); text-transform:uppercase; padding-left:2px;
}
.nav__links{ display:flex; align-items:center; gap:32px; }
.nav__links a{
  position:relative; color:var(--bone-300); font-size:14px; font-weight:500;
  padding-block:6px; letter-spacing:.01em;
}
.nav__links a:hover{ color:var(--bone-50); }
.nav__links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--gold-rule); transform:scaleX(0); transform-origin:left;
  transition:transform var(--dur) var(--ease-brand);
}
.nav__links a.active{ color:var(--bone-50); }
.nav__links a.active::after{ transform:scaleX(1); }
.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__toggle{
  display:none; width:44px; height:44px; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--ink-line); border-radius:var(--radius-md);
  cursor:pointer;
}
.nav__toggle span{ display:block; width:18px; height:1.5px; background:var(--bone-100); position:relative; }
.nav__toggle span::before,.nav__toggle span::after{
  content:""; position:absolute; left:0; width:18px; height:1.5px; background:var(--bone-100);
  transition:transform var(--dur) var(--ease-brand), top var(--dur) var(--ease-brand);
}
.nav__toggle span::before{ top:-6px; } .nav__toggle span::after{ top:6px; }
.nav.open .nav__toggle span{ background:transparent; }
.nav.open .nav__toggle span::before{ top:0; transform:rotate(45deg); }
.nav.open .nav__toggle span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:920px){
  .nav__links, .nav__cta .btn--gold{ display:none; }
  .nav__toggle{ display:inline-flex; }
  .nav__menu{
    position:fixed; inset:68px 0 auto 0; background:var(--ink-850);
    border-bottom:1px solid var(--ink-line); padding:8px var(--gutter) 24px;
    display:none; flex-direction:column; gap:4px; z-index:55;
  }
  .nav.open .nav__menu{ display:flex; }
  .nav__menu a{ color:var(--bone-100); font-size:16px; padding:14px 4px;
    border-bottom:1px solid var(--ink-line); }
  .nav__menu a:last-of-type{border-bottom:0;}
  .nav__menu .btn{ margin-top:14px; }
}
@media (min-width:921px){ .nav__menu{ display:contents; } .nav__menu .btn--gold{ display:none; } }

/* ----------  HERO  ---------- */
.hero{
  position:relative; padding:148px 0 96px; overflow:hidden;
  border-bottom:1px solid var(--ink-line);
}
.hero__bg{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1200px 520px at 50% -10%, rgba(201,168,106,.10), transparent 60%),
    radial-gradient(900px 600px at 85% 20%, rgba(43,43,54,.55), transparent 60%),
    var(--ink-900);
}
.hero__bg::after{ /* faint engraved grid */
  content:""; position:absolute; inset:0; opacity:.35;
  background-image:linear-gradient(var(--ink-line) 1px, transparent 1px),
                   linear-gradient(90deg, var(--ink-line) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%);
          mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%);
}
.hero__inner{ position:relative; z-index:1; max-width:880px; margin-inline:auto; text-align:center; }
.hero h1{
  font-size:clamp(40px,7vw,72px); line-height:1.04; margin-top:6px;
  color:var(--bone-50);
}
.hero .lede{ max-width:640px; margin:22px auto 0; font-size:clamp(16px,2.2vw,19px); }
.hero__cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:34px; }
.hero__micro{ margin-top:22px; font-size:13px; color:var(--bone-500); letter-spacing:.02em; }

/* ----------  TRUST STAT BAR  ---------- */
.stats{ border-bottom:1px solid var(--ink-line); background:var(--ink-850); }
.stats__grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  max-width:var(--maxw); margin-inline:auto;
}
.stat{ padding:34px 28px; border-left:1px solid var(--ink-line); }
.stat:first-child{ border-left:0; }
.stat__num{ font-family:var(--font-serif); font-weight:600; color:var(--bone-50);
  font-size:clamp(30px,3.6vw,42px); line-height:1; letter-spacing:-.01em; }
.stat__num .unit{ color:var(--gold-500); }
.stat__label{ margin-top:10px; font-size:13px; color:var(--bone-300); line-height:1.45; }
@media (max-width:820px){
  .stats__grid{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(3){ border-left:0; }
  .stat:nth-child(n+3){ border-top:1px solid var(--ink-line); }
}
@media (max-width:460px){
  .stats__grid{ grid-template-columns:1fr; }
  .stat{ border-left:0; border-top:1px solid var(--ink-line); }
  .stat:first-child{ border-top:0; }
}

/* ----------  VSL (reserved, embed-ready §11.5)  ---------- */
.vsl{ text-align:center; }
.vsl__frame{
  position:relative; max-width:920px; margin:30px auto 0; aspect-ratio:16/9;
  border:1px solid var(--ink-line); border-radius:var(--radius-lg);
  background:
    radial-gradient(60% 80% at 50% 40%, rgba(201,168,106,.06), transparent 70%),
    var(--ink-800);
  box-shadow:var(--shadow-md), var(--edge-light); overflow:hidden;
  display:grid; place-items:center;
}
.vsl__frame::before{ /* top gold hairline accent */
  content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--gold-rule);
}
.vsl__placeholder{ display:grid; place-items:center; gap:16px; padding:24px; }
.vsl__play{
  width:76px; height:76px; border-radius:50%; border:1px solid var(--gold-500);
  display:grid; place-items:center; color:var(--gold-500); background:rgba(201,168,106,.06);
  transition:background var(--dur) var(--ease-brand), transform var(--dur) var(--ease-brand);
}
.vsl__frame:hover .vsl__play{ background:rgba(201,168,106,.14); transform:scale(1.04); }
.vsl__cap{ font-size:14px; color:var(--bone-500); letter-spacing:.04em; }
.vsl__cap strong{ color:var(--bone-300); font-weight:600; }
/* when an <iframe> is dropped in, hide placeholder automatically */
.vsl__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.vsl__frame.has-video .vsl__placeholder{ display:none; }

/* ----------  PROBLEM  ---------- */
.problem-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:48px;
  background:var(--ink-line); border:1px solid var(--ink-line); border-radius:var(--radius-lg);
  overflow:hidden; }
.problem-cell{ background:var(--ink-850); padding:30px 30px 32px; }
.problem-cell h3{ font-family:var(--font-sans); font-weight:600; font-size:16px; color:var(--bone-50);
  letter-spacing:0; }
.problem-cell .n{ font-family:var(--font-serif); color:var(--gold-500); font-size:14px;
  letter-spacing:.1em; display:block; margin-bottom:14px; }
.problem-cell p{ margin-top:8px; color:var(--bone-300); font-size:14.5px; line-height:1.6; }
@media (max-width:720px){ .problem-grid{ grid-template-columns:1fr; } }

/* ----------  METHOD / SYSTEMS  ---------- */
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:48px; }
@media (max-width:980px){ .cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cards{ grid-template-columns:1fr; } }
.card{
  position:relative; background:var(--ink-800); border:1px solid var(--ink-line);
  border-radius:var(--radius-lg); padding:26px 24px 28px; box-shadow:var(--shadow-sm),var(--edge-light);
  transition:transform var(--dur) var(--ease-brand), border-color var(--dur) var(--ease-brand);
}
.card::before{ content:""; position:absolute; top:0; left:24px; right:24px; height:1px;
  background:var(--gold-rule); opacity:0; transition:opacity var(--dur) var(--ease-brand); }
.card:hover{ transform:translateY(-4px); border-color:var(--ink-line-2); }
.card:hover::before{ opacity:1; }
.card__icon{ width:40px; height:40px; color:var(--gold-500); margin-bottom:18px; }
.card__icon svg{ width:100%; height:100%; }
.card h3{ font-family:var(--font-sans); font-weight:600; font-size:16px; color:var(--bone-50); }
.card p{ margin-top:10px; color:var(--bone-300); font-size:14px; line-height:1.6; }

/* phases strip */
.phases{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:40px;
  border:1px solid var(--ink-line); border-radius:var(--radius-lg); overflow:hidden; }
.phase{ padding:24px 24px 26px; border-left:1px solid var(--ink-line); background:var(--ink-850);
  position:relative; }
.phase:first-child{ border-left:0; }
.phase .step{ font-family:var(--font-serif); color:var(--gold-500); font-size:13px; letter-spacing:.14em; }
.phase h4{ font-family:var(--font-sans); font-weight:600; font-size:15px; color:var(--bone-50); margin-top:10px; }
.phase p{ margin-top:8px; font-size:13px; color:var(--bone-500); line-height:1.55; }
@media (max-width:860px){ .phases{ grid-template-columns:repeat(2,1fr); }
  .phase:nth-child(3){ border-left:0; } .phase:nth-child(n+3){ border-top:1px solid var(--ink-line); } }
@media (max-width:480px){ .phases{ grid-template-columns:1fr; }
  .phase{ border-left:0; border-top:1px solid var(--ink-line); } .phase:first-child{ border-top:0; } }

/* ----------  COMPARE (differentiator)  ---------- */
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:48px; }
@media (max-width:760px){ .compare{ grid-template-columns:1fr; } }
.compare__col{ border:1px solid var(--ink-line); border-radius:var(--radius-lg); padding:28px 26px 30px;
  background:var(--ink-850); }
.compare__col--us{ background:var(--ink-800); border-color:var(--ink-line-2); position:relative; }
.compare__col--us::before{ content:""; position:absolute; top:0; left:26px; right:26px; height:1px;
  background:var(--gold-rule); }
.compare__h{ display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.compare__h .tag{ font:600 11px/1 var(--font-sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--bone-500); }
.compare__col--us .compare__h .tag{ color:var(--gold-500); }
.compare__h h3{ font-family:var(--font-serif); font-size:22px; color:var(--bone-50); }
.compare li{ display:flex; gap:12px; padding:12px 0; border-top:1px solid var(--ink-line);
  font-size:14.5px; color:var(--bone-300); line-height:1.5; }
.compare li:first-of-type{ border-top:0; }
.compare .ic{ flex:0 0 auto; width:18px; height:18px; margin-top:1px; }
.ic--x{ color:var(--garnet-300); } .ic--check{ color:var(--emerald-300); }
.compare__col--us li{ color:var(--bone-100); }

/* ----------  PROOF (results)  ---------- */
.proof-note{ font-size:13px; color:var(--bone-500); margin-top:14px; }
.proof-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
@media (max-width:920px){ .proof-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .proof-grid{ grid-template-columns:1fr; } }
.proof{
  border:1px solid var(--ink-line); border-radius:var(--radius-lg); overflow:hidden;
  background:var(--ink-800); box-shadow:var(--shadow-sm),var(--edge-light);
  transition:transform var(--dur) var(--ease-brand), border-color var(--dur) var(--ease-brand);
}
.proof:hover{ transform:translateY(-3px); border-color:var(--ink-line-2); }
.proof__imgwrap{ position:relative; cursor:zoom-in; }
.proof__imgwrap img{ width:100%; aspect-ratio:16/9; object-fit:cover; object-position:top left;
  background:var(--ink-700); }
.proof__imgwrap::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(9,9,11,.55) 100%); }
.proof__redact{ position:absolute; top:10px; left:10px; z-index:2;
  font:600 10px/1 var(--font-sans); letter-spacing:.12em; text-transform:uppercase;
  color:var(--bone-300); background:rgba(9,9,11,.66); border:1px solid var(--ink-line);
  padding:5px 8px; border-radius:var(--radius-sm); }
.proof__body{ padding:18px 20px 22px; }
.proof__metric{ font-family:var(--font-serif); font-weight:600; color:var(--bone-50);
  font-size:26px; line-height:1.1; letter-spacing:-.01em; }
.proof__metric .unit{ color:var(--gold-500); }
.proof__cap{ margin-top:8px; font-size:13.5px; color:var(--bone-300); line-height:1.5; }
.proof__src{ margin-top:12px; font-size:11px; color:var(--bone-500); letter-spacing:.08em;
  text-transform:uppercase; }

/* ----------  TESTIMONIALS  ---------- */
.testi-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:44px; }
@media (max-width:720px){ .testi-grid{ grid-template-columns:1fr; } }
.testi{
  display:flex; gap:18px; align-items:flex-start;
  border:1px solid var(--ink-line); border-radius:var(--radius-lg); padding:24px 24px 26px;
  background:var(--ink-850); transition:border-color var(--dur) var(--ease-brand),
    transform var(--dur) var(--ease-brand);
}
.testi:hover{ border-color:var(--ink-line-2); transform:translateY(-3px); }
.testi__avatar{ flex:0 0 auto; width:52px; height:52px; border-radius:var(--radius-md);
  display:grid; place-items:center; font-family:var(--font-serif); font-weight:600; font-size:22px;
  color:var(--bone-50); background:var(--ink-700); border:1px solid var(--ink-line-2); }
.testi__name{ font-family:var(--font-sans); font-weight:600; color:var(--bone-50); font-size:16px; }
.testi__niche{ font-size:12px; color:var(--gold-500); letter-spacing:.08em; text-transform:uppercase;
  margin-top:3px; }
.testi p{ margin-top:12px; color:var(--bone-300); font-size:14px; line-height:1.6; }
.testi__watch{ display:inline-flex; align-items:center; gap:7px; margin-top:14px;
  font-size:13px; font-weight:600; color:var(--gold-500); }
.testi__watch:hover{ color:var(--gold-300); }
.testi__watch svg{ width:15px; height:15px; }
.yt-cta{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-top:32px; padding:22px 26px; border:1px solid var(--ink-line); border-radius:var(--radius-lg);
  background:var(--ink-800); }
.yt-cta p{ color:var(--bone-300); font-size:14.5px; }
.yt-cta strong{ color:var(--bone-50); }

/* ----------  ABOUT / FOUNDERS  ---------- */
.about{ display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
@media (max-width:880px){ .about{ grid-template-columns:1fr; gap:36px; } }
.about__quote{ font-family:var(--font-serif); font-size:clamp(22px,3.2vw,30px); line-height:1.3;
  color:var(--bone-50); }
.about__quote .s-foil{ font-style:italic; }
.about p{ margin-top:18px; color:var(--bone-300); font-size:15.5px; line-height:1.7; }
.founders{ display:grid; gap:16px; }
.founder{ display:flex; align-items:center; gap:18px; border:1px solid var(--ink-line);
  border-radius:var(--radius-lg); padding:20px 22px; background:var(--ink-850); }
.founder__av{ flex:0 0 auto; width:58px; height:58px; border-radius:var(--radius-md);
  display:grid; place-items:center; font-family:var(--font-serif); font-weight:600; font-size:22px;
  color:var(--bone-50); background:var(--ink-800); border:1px solid var(--ink-line-2); position:relative; }
.founder__av::after{ content:""; position:absolute; left:14px; right:14px; bottom:-1px; height:1px;
  background:var(--gold-rule); opacity:.8; }
.founder__name{ font-family:var(--font-sans); font-weight:600; color:var(--bone-50); font-size:16px; }
.founder__role{ font-size:12px; color:var(--gold-500); letter-spacing:.08em; text-transform:uppercase;
  margin-top:3px; }
.founder__bio{ font-size:13px; color:var(--bone-500); margin-top:6px; line-height:1.5; }

/* ----------  FAQ  ---------- */
.faq{ max-width:820px; margin:44px auto 0; border-top:1px solid var(--ink-line); }
.faq__item{ border-bottom:1px solid var(--ink-line); }
.faq__q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:transparent; border:0; cursor:pointer; text-align:left; color:var(--bone-50);
  font:600 17px/1.4 var(--font-sans); padding:22px 4px; }
.faq__q:hover{ color:var(--gold-300); }
.faq__sign{ flex:0 0 auto; width:20px; height:20px; position:relative; }
.faq__sign::before,.faq__sign::after{ content:""; position:absolute; background:var(--gold-500);
  transition:transform var(--dur) var(--ease-brand), opacity var(--dur) var(--ease-brand); }
.faq__sign::before{ top:9px; left:2px; width:16px; height:1.5px; }
.faq__sign::after{ left:9px; top:2px; width:1.5px; height:16px; }
.faq__item.open .faq__sign::after{ transform:scaleY(0); opacity:0; }
.faq__a{ overflow:hidden; max-height:0; transition:max-height var(--dur-slow) var(--ease-brand); }
.faq__a-inner{ padding:0 4px 24px; color:var(--bone-300); font-size:15px; line-height:1.7; max-width:680px; }

/* ----------  BOOKING  ---------- */
.book{ background:var(--ink-850); border-top:1px solid var(--ink-line);
  border-bottom:1px solid var(--ink-line); }
.book__inner{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:start; }
@media (max-width:900px){ .book__inner{ grid-template-columns:1fr; gap:32px; } }
.book__copy h2{ font-size:clamp(28px,4vw,40px); line-height:1.1; }
.book__copy p{ margin-top:18px; color:var(--bone-300); font-size:15.5px; line-height:1.7; }
.book__list{ margin-top:22px; display:grid; gap:12px; }
.book__list li{ display:flex; gap:12px; font-size:14.5px; color:var(--bone-100); }
.book__list .ic{ width:18px; height:18px; color:var(--gold-500); flex:0 0 auto; margin-top:1px; }
.book__disclaimer{ margin-top:24px; font-size:12px; color:var(--bone-500); line-height:1.6; }
.cal-shell{ border:1px solid var(--ink-line); border-radius:var(--radius-lg); overflow:hidden;
  background:var(--ink-900); position:relative; }
.cal-shell::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; z-index:2;
  background:var(--gold-rule); }
.calendly-inline-widget{ min-width:300px; height:680px; }
.cal-fallback{ padding:34px 28px; text-align:center; }
.cal-fallback p{ color:var(--bone-300); font-size:14px; margin-bottom:18px; }

/* ----------  FOOTER  ---------- */
.footer{ padding:64px 0 40px; }
.footer__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:40px;
  flex-wrap:wrap; }
.footer__brand{ max-width:340px; }
.footer__brand .brand{ margin-bottom:16px; }
.footer__brand p{ color:var(--bone-500); font-size:13.5px; line-height:1.6; }
.footer__cols{ display:flex; gap:64px; flex-wrap:wrap; }
.footer__col h5{ font:600 11px/1 var(--font-sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--bone-500); margin-bottom:16px; }
.footer__col a{ display:block; color:var(--bone-300); font-size:14px; padding:6px 0; }
.footer__col a:hover{ color:var(--bone-50); }
.socials{ display:flex; gap:12px; margin-top:18px; }
.socials a{ width:40px; height:40px; border:1px solid var(--ink-line); border-radius:var(--radius-md);
  display:grid; place-items:center; color:var(--bone-300); transition:all var(--dur-fast) var(--ease-brand); }
.socials a:hover{ color:var(--gold-500); border-color:var(--gold-500); }
.socials svg{ width:18px; height:18px; }
.footer__bottom{ margin-top:48px; padding-top:24px; border-top:1px solid var(--ink-line);
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.footer__bottom p{ color:var(--bone-500); font-size:12px; line-height:1.6; }
.footer__legal{ max-width:680px; }

/* ----------  LIGHTBOX  ---------- */
.lightbox{ position:fixed; inset:0; z-index:100; background:rgba(9,9,11,.86);
  display:none; place-items:center; padding:32px; backdrop-filter:blur(2px); }
.lightbox.open{ display:grid; }
.lightbox__img{ max-width:min(1100px,94vw); max-height:86vh; border:1px solid var(--ink-line-2);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.lightbox__close{ position:absolute; top:22px; right:26px; width:44px; height:44px; cursor:pointer;
  background:transparent; border:1px solid var(--ink-line); border-radius:var(--radius-md);
  color:var(--bone-100); display:grid; place-items:center; }
.lightbox__close:hover{ border-color:var(--gold-500); color:var(--gold-500); }
.lightbox__cap{ position:absolute; bottom:26px; left:0; right:0; text-align:center;
  color:var(--bone-500); font-size:12px; letter-spacing:.08em; }

/* ----------  SCROLL REVEAL (progressive enhancement: only hide when JS is on) ---------- */
.js .reveal{ opacity:0; transform:translateY(16px); transition:opacity var(--dur-slow) var(--ease-brand),
  transform var(--dur-slow) var(--ease-brand); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.06s; } .reveal.d2{ transition-delay:.12s; }
.reveal.d3{ transition-delay:.18s; } .reveal.d4{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .btn:hover,.card:hover,.proof:hover,.testi:hover{ transform:none; }
}

/* skip link */
.skip{ position:absolute; left:-9999px; top:0; background:var(--bone-50); color:var(--ink-900);
  padding:10px 16px; border-radius:var(--radius-md); z-index:200; font-weight:600; }
.skip:focus{ left:16px; top:12px; }
