/* ─────────────────────────────────────────────────────────────
   VISION ESPRESSO — site design system  ·  v2 (dark ground)
   Niko 2026-09-04: more turquoise, bolder type, logo everywhere,
   and it must NOT feel like the Blueprint page.
   So: Blueprint = paper ground. Site = BLACK ground, like the logo.
   TURQUOISE leads (structure, headings, primary action).
   GOLD accents (achievement, the ESPRESSO half of the mark).
   Light sections still appear, for rhythm — never monotone.
   ───────────────────────────────────────────────────────────── */
:root{
  --teal:#2DD4BF;--teal-deep:#14B8A6;--teal-dim:#0E5F58;
  --gold:#FFE34D;--gold-deep:#E0A82E;--gold-ink:#8A6A12;
  --black:#07070A;--black-lift:#101015;--black-card:#16161C;
  --line-dk:#26262E;
  --body-dk:#C9C7D0;--body-mute:#8A8794;
  --paper:#F7F5F0;--ink:#111114;--line-lt:#E3DFD6;--muted:#5F5C66;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;background:var(--black);overflow-x:hidden;}
body{font-family:'Inter',-apple-system,sans-serif;font-size:19px;line-height:1.65;
  color:var(--body-dk);background:var(--black);-webkit-font-smoothing:antialiased;}
.wrap{max-width:1120px;margin:0 auto;padding:0 26px;}
.wrap.narrow{max-width:880px;}
.mono,.eyebrow{font-family:'DM Mono',ui-monospace,monospace;}
.eyebrow{font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--teal);font-weight:500;}

/* ── TYPE: heavier, tighter. Echoes the condensed weight of the mark. ── */
h1{font-family:'Archivo',sans-serif;font-size:76px;line-height:.98;font-weight:900;
  letter-spacing:-.035em;text-transform:uppercase;}
h2{font-family:'Archivo',sans-serif;font-size:44px;line-height:1.04;font-weight:900;
  letter-spacing:-.028em;text-transform:uppercase;margin:14px 0 20px;}
h3{font-family:'Archivo',sans-serif;font-weight:800;letter-spacing:-.015em;}
p{margin-bottom:16px;}
a{color:inherit;}
section{padding:96px 0 62px;}

/* grounds */
.dark{background:var(--black);color:var(--body-dk);}
.dark2{background:var(--black-lift);color:var(--body-dk);}
.dark h1,.dark h2,.dark h3,.dark2 h1,.dark2 h2,.dark2 h3{color:#FFF;}
.dark em,.dark2 em{color:var(--teal);font-style:italic;}
.dark strong,.dark2 strong{color:var(--gold);font-weight:800;}
.light{background:var(--paper);color:var(--muted);}
.light h1,.light h2,.light h3{color:var(--ink);}
.light .eyebrow{color:var(--teal-deep);}
.light em{color:var(--teal-deep);font-style:italic;}
.light strong{color:var(--ink);font-weight:800;}

/* ── LOGO LOCKUP ── */
.lockup{display:inline-flex;align-items:baseline;gap:9px;text-decoration:none;line-height:1;}
.lockup .v{font-family:'Archivo',sans-serif;font-weight:900;letter-spacing:-.02em;
  text-transform:uppercase;color:var(--teal);}
.lockup .e{font-family:'Archivo',sans-serif;font-weight:800;font-style:italic;
  letter-spacing:.01em;text-transform:uppercase;color:var(--gold);}
.nav .lockup img{height:40px;width:auto;display:block;}

/* ── NAV: black banner ── */
.nav{position:sticky;top:0;z-index:50;background:rgba(7,7,10,.93);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line-dk);}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px;}
.nav ul{display:flex;gap:28px;list-style:none;align-items:center;}
.nav ul a{font-family:'DM Mono',monospace;font-size:12.5px;letter-spacing:.13em;
  text-transform:uppercase;text-decoration:none;color:#EDEBF2;font-weight:500;transition:color .15s;}
.nav ul a:hover,.nav ul a.on{color:var(--teal);}
.nav .navcta{background:var(--teal);color:#04120F;padding:13px 22px;border-radius:8px;
  font-family:'DM Mono',monospace;font-size:11.5px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s;}
.nav .navcta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(45,212,191,.28);}
.navtoggle{display:none;background:none;border:0;padding:10px 4px;cursor:pointer;}
.navtoggle span{display:block;width:26px;height:2.5px;border-radius:2px;background:var(--teal);
  margin:5px 0;transition:transform .22s ease,opacity .18s ease;}
.nav .navcta-in{display:none;}

/* ── HERO ── */
.hero{padding:112px 0 84px;text-align:center;position:relative;}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 55% at 50% 0%,rgba(45,212,191,.13),transparent 70%);}
.hero .wrap{position:relative;z-index:1;}
.hero .eyebrow{font-size:15.5px;letter-spacing:.3em;}
.hero .sub{max-width:720px;margin:28px auto 0;font-size:21px;color:var(--body-dk);font-weight:500;}
.light .hero .sub{color:var(--muted);}
/* Headlines are authored with explicit <br>. Measured 2026-09-04: the longest
   hero line needs ~960px at 68px, so the hero container is widened past
   .wrap.narrow (828px) or the breaks orphan a word onto its own line. */
.hero .wrap.narrow{max-width:1120px;}
.hero h1{font-size:68px;max-width:1040px;margin-left:auto;margin-right:auto;}
.hero h1.tight{font-size:60px;}
.hero h1 .accent{color:var(--teal);}
.hero h1 .accent-g{color:var(--gold);}

/* ── BUTTONS: teal is primary (interaction). Gold is achievement. ── */
.cta-btn{display:inline-block;background:var(--teal);color:#04120F;font-family:'DM Mono',monospace;
  font-size:15px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  padding:19px 38px;border-radius:10px;margin-top:28px;transition:transform .15s,box-shadow .15s;}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(45,212,191,.3);}
.cta-btn.gold{background:var(--gold);color:#171204;}
.cta-btn.gold:hover{box-shadow:0 14px 34px rgba(255,227,77,.26);}
.cta-btn.ghost{background:transparent;color:var(--teal);border:1.5px solid var(--teal);}
/* Neon variant — borrows the glowing yellow from the ESPRESSO half of the mark.
   Reserved for the quiz CTA so it reads as the softer, curious way in. */
.cta-btn.neon{background:transparent;color:var(--gold);border:1.5px solid var(--gold);
  text-shadow:0 0 14px rgba(255,227,77,.6);
  box-shadow:0 0 0 1px rgba(255,227,77,.16),0 0 26px rgba(255,227,77,.24),inset 0 0 20px rgba(255,227,77,.07);}
.cta-btn.neon:hover{background:rgba(255,227,77,.08);transform:translateY(-2px);
  box-shadow:0 0 0 1px rgba(255,227,77,.3),0 0 44px rgba(255,227,77,.4),inset 0 0 24px rgba(255,227,77,.12);}
.light .cta-btn.neon{color:var(--gold-ink);border-color:var(--gold-deep);text-shadow:none;
  box-shadow:0 0 0 1px rgba(224,168,46,.25),0 0 20px rgba(224,168,46,.18);}
.cta-btn.ghost:hover{background:rgba(45,212,191,.1);box-shadow:none;}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-note{font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;margin-top:16px;color:var(--body-mute);}

/* ── STAT BAND ── */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px;}
.stat{border-radius:14px;padding:26px 26px;display:flex;align-items:baseline;gap:18px;}
.stat .n{font-family:'Archivo',sans-serif;font-size:52px;font-weight:900;line-height:.9;letter-spacing:-.045em;}
.stat .l{font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;line-height:1.55;}
.stat.teal{background:var(--teal);color:#04120F;}
.stat.gold{background:var(--gold);color:#171204;}
.stat.ink{background:var(--black-card);color:#FFF;border:1.5px solid var(--teal);}
.stat.ink .n{color:var(--teal);}
.stat.ink .l{color:var(--body-mute);}

/* ── CARDS ── */
.pillars,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;}
.cards.two{grid-template-columns:1fr 1fr;}
.pillar,.card{background:var(--black-card);border:1px solid var(--line-dk);border-radius:16px;
  padding:30px 28px;text-decoration:none;color:inherit;display:block;
  transition:transform .16s,border-color .16s;}
.light .pillar,.light .card{background:#FFF;border-color:var(--line-lt);}
a.card:hover,.pillar:hover{transform:translateY(-4px);border-color:var(--teal);}
.pillar h3{font-size:23px;margin-bottom:9px;color:var(--teal);text-transform:uppercase;letter-spacing:-.01em;}
.light .pillar h3{color:var(--teal-deep);}
.pillar p,.card p{font-size:16.5px;color:var(--body-mute);margin:0;}
.light .pillar p,.light .card p{color:var(--muted);}
.card .sn{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:11px;}
.card h3{font-size:23px;margin-bottom:8px;text-transform:uppercase;letter-spacing:-.018em;}
.card .more{font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--teal);margin-top:16px;display:block;}

/* ── ADVISOR GRID ── */
.advisors{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:14px;margin-top:30px;}
.adv{background:var(--black-card);border:1px solid var(--line-dk);border-radius:16px;
  padding:26px 16px 22px;text-align:center;transition:transform .16s,border-color .16s;}
.adv:hover{transform:translateY(-4px);border-color:var(--teal);}
.light .adv{background:#FFF;border-color:var(--line-lt);}
.adv .ph-av,.adv img{width:100px;height:100px;border-radius:50%;object-fit:cover;
  margin:0 auto 15px;display:block;}
.adv .ph-av{background:#1B1B22;border:2px dashed #33333D;}
.adv .nm{font-family:'Archivo',sans-serif;font-weight:900;font-size:17.5px;line-height:1.2;
  text-transform:uppercase;letter-spacing:-.015em;color:#FFF;}
.light .adv .nm{color:var(--ink);}
.adv .ttl{font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.06em;
  color:var(--teal);margin-top:7px;line-height:1.45;}
.adv .unlock{font-size:14px;color:var(--body-mute);margin-top:11px;line-height:1.45;}
.adv.open{border-style:dashed;background:transparent;}
.adv.open .nm{color:#4A4A56;}
.adv.open .ttl{color:#5C5C68;}

/* ── NOTES / BANDS ── */
.note{border-left:4px solid var(--teal);padding:8px 0 8px 28px;margin:36px 0;}
.note .q{font-family:'Archivo',sans-serif;font-size:34px;line-height:1.18;font-weight:900;
  letter-spacing:-.028em;color:#FFF;text-transform:uppercase;}
.light .note .q{color:var(--ink);}
.note .a{font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--body-mute);margin-top:14px;}
.band{background:linear-gradient(90deg,rgba(45,212,191,.14),rgba(255,227,77,.07));
  border:1px solid var(--teal-dim);border-radius:14px;padding:24px 28px;margin-top:28px;
  font-family:'Archivo',sans-serif;font-weight:800;font-size:19px;line-height:1.4;color:#FFF;}
.band em{color:var(--teal);font-style:italic;}

/* ── VIDEO TESTIMONIALS ──
   Click-to-play facade. The YouTube player is NOT loaded until someone presses
   play, so the page stays fast and shows zero YouTube chrome until then.
   Embeds use youtube-nocookie.com so no tracking cookie is set on arrival. */
.vidcard{background:var(--black-card);border:1px solid var(--line-dk);border-radius:16px;
  overflow:hidden;margin:0;transition:transform .16s,border-color .16s;}
.vidcard:hover{transform:translateY(-4px);border-color:var(--teal);}
.light .vidcard{background:#FFF;border-color:var(--line-lt);}
.vidcard-play{display:block;width:100%;aspect-ratio:16/9;position:relative;
  border:0;padding:0;margin:0;background:#000;cursor:pointer;overflow:hidden;}
.vidcard-play img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .35s ease,opacity .2s ease;}
.vidcard:hover .vidcard-play img{transform:scale(1.045);opacity:.8;}
.vidcard-btn{position:absolute;inset:0;display:grid;place-items:center;}
.vidcard-btn svg{width:62px;height:62px;filter:drop-shadow(0 8px 22px rgba(0,0,0,.55));
  transition:transform .18s ease;}
.vidcard:hover .vidcard-btn svg{transform:scale(1.09);}
.vidcard iframe{width:100%;aspect-ratio:16/9;display:block;border:0;}
.vidcard figcaption{padding:18px 20px 20px;}
.vc-name{font-family:'Archivo',sans-serif;font-weight:900;font-size:18px;
  text-transform:uppercase;letter-spacing:-.015em;color:#FFF;display:block;}
.light .vc-name{color:var(--ink);}
.vc-role{font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.05em;
  color:var(--teal);display:block;margin-top:6px;line-height:1.45;}
.ph.slot{min-height:0;aspect-ratio:16/9;}

/* Portrait (phone-shot) testimonials. Vertical is the right texture here —
   it reads as something filmed on the floor, not staged. */
.vidgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;}
.vidcard.tall .vidcard-play{aspect-ratio:9/16;}
.vidcard video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#000;}
.vidwide{max-width:920px;margin:0 auto;}
.vidwide .vidcard-btn svg{width:78px;height:78px;}

.vidcard.tall .vidcard-play img{width:100%;height:100%;object-fit:cover;display:block;}
/* The <video> poster attribute would not paint here at all, so the thumbnail is a
   real <img> and the player is only created on click — same facade as the YouTube
   cards, which is the pattern already proven on this site. */
.vidcard.tall video{width:100%;aspect-ratio:9/16;object-fit:cover;display:block;background:#000;}
.vidnarrow{max-width:300px;margin:0 auto;}
.ve{font-weight:900;color:var(--teal);letter-spacing:.01em;white-space:nowrap;}
.light .ve{color:var(--teal-deep);}
.ve sup{font-size:.56em;font-weight:800;letter-spacing:.04em;top:-.55em;position:relative;
  margin-left:2px;color:var(--gold);}
.light .ve sup{color:var(--gold-ink);}
/* where the wordmark is white (inside a heading) the ™ stays white with it */
h1 .ve sup,h2 .ve sup,h3 .ve sup{color:inherit;}
h1 .ve,h2 .ve,h3 .ve{color:inherit;font-weight:inherit;}

.shot{margin:0;background:#fff;border:1px solid var(--line-dk);border-radius:16px;overflow:hidden;}
.shot img{display:block;width:100%;height:auto;}
.shot figcaption{background:var(--black-card);color:var(--body-dk);padding:16px 20px;
  font-size:16.5px;border-top:1px solid var(--line-dk);}
.shotnum{font-family:'Archivo',sans-serif;font-weight:900;font-size:22px;color:var(--gold);
  margin-right:8px;letter-spacing:-.02em;}

.repgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px;}
.repcard{background:var(--black-card);border:1px solid var(--line-dk);border-radius:16px;padding:28px 26px;}
.light .repcard{background:#fff;border-color:var(--line-lt);}
.repbadge{display:inline-block;background:var(--gold);color:#171204;font-family:'DM Mono',monospace;
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;border-radius:20px;}
.repname{font-family:'Archivo',sans-serif;font-weight:900;font-size:27px;text-transform:uppercase;
  letter-spacing:-.02em;color:#fff;margin-top:16px;}
.light .repname{color:var(--ink);}
.repsub{font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.1em;color:var(--body-mute);margin-top:6px;}
.repstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px;
  border-top:1px solid var(--line-dk);padding-top:20px;}
.light .repstats{border-color:var(--line-lt);}
.repstats .rn{display:block;font-family:'Archivo',sans-serif;font-weight:900;font-size:30px;
  line-height:1;letter-spacing:-.03em;color:var(--teal);}
.repstats .rl{display:block;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--body-mute);margin-top:8px;line-height:1.4;}
@media(max-width:720px){.repgrid{grid-template-columns:1fr;}}

.clientmark{display:flex;align-items:center;gap:16px;margin-bottom:6px;}
.claims{margin-top:30px;}
.claimrow{display:flex;gap:22px;padding:26px 0;border-bottom:1px solid var(--line-dk);}
.light .claimrow{border-color:var(--line-lt);}
.claimrow:last-child{border-bottom:none;}
.claimno{font-family:'Archivo',sans-serif;font-weight:900;font-size:30px;line-height:1;
  color:var(--teal);opacity:.5;flex-shrink:0;width:42px;}
.claimbody h3{font-size:21px;text-transform:uppercase;letter-spacing:-.015em;margin-bottom:10px;}
.claimsays{font-size:17px;color:var(--body-dk);margin-bottom:12px;}
.claimev{font-size:16px;color:var(--body-mute);margin:0;}
.evlabel{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;padding:4px 10px;border-radius:20px;margin-right:10px;
  display:inline-block;vertical-align:2px;}
.evlabel.est{background:var(--teal);color:#04120F;}
.evlabel.ours{background:var(--gold);color:#171204;}
.evlabel.open{background:transparent;color:var(--body-mute);border:1px solid var(--line-dk);}
@media(max-width:640px){.claimrow{flex-direction:column;gap:10px;}.claimno{font-size:22px;}}
.clientmark img{width:62px;height:62px;border-radius:12px;background:#fff;object-fit:contain;padding:6px;flex-shrink:0;}
.vidcard.tall .vidcard-btn svg{width:52px;height:52px;}
.vidcard.tall figcaption{padding:14px 16px 16px;}
.vidcard.tall .vc-name{font-size:15px;}
.vidcard.tall .vc-role{font-size:11px;margin-top:4px;}
.vidcard.playing .vidcard-btn{display:none;}
.vidcard.playing .vidcard-play{cursor:default;}
@media(max-width:900px){.vidgrid{grid-template-columns:repeat(2,1fr);gap:12px;}}
@media(max-width:460px){.vidgrid{grid-template-columns:1fr;}}

/* ── CARD ICONS: one figure / a floor / a roster. The count is the message. ── */
.cardicon{width:54px;height:50px;display:block;margin-bottom:16px;overflow:visible;}
a.card:hover .cardicon{transform:translateY(-1px);}

/* ── DIAGRAM: the call → the report ── */
.viz-wrap{margin:34px 0 8px;}
.viz{display:block;width:100%;height:auto;max-width:920px;margin:0 auto;}
.viz-cap{font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--body-mute);text-align:center;margin-top:16px;}
.light .viz-cap{color:var(--muted);}
@media(max-width:720px){.viz-cap{font-size:10.5px;letter-spacing:.06em;}}

/* ── MEDIA / PLACEHOLDERS ── */
.photo{border-radius:16px;overflow:hidden;background:#16161C;}
.photo img{display:block;width:100%;height:auto;}
/* height:100% inside an auto-height parent resolves to 0 and the image vanishes.
   Let the image's own ratio set the height; add .photo.fixed for a cropped box. */
.photo.fixed{aspect-ratio:4/3;}
.photo.fixed img{height:100%;object-fit:cover;}
.ph{border:2px dashed #33333D;border-radius:16px;display:flex;align-items:center;
  justify-content:center;min-height:240px;text-align:center;padding:20px;background:#0E0E13;}
.ph span{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.14em;
  color:#55535F;line-height:2;text-transform:uppercase;}
.light .ph{background:#EFEDE6;border-color:#C9C3B4;}
.light .ph span{color:#A39C8B;}
.ph.video{min-height:400px;}
.split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;margin:36px 0;}
.split.flip .txt{order:2;}.split.flip .vis{order:1;}
/* a tall portrait photo beside short copy left ~330px of dead space; cap it so
   the two columns land near the same height */
.split .vis .photo img{max-height:420px;object-fit:cover;}
/* A tall portrait shot must not be cover-cropped — it takes his head and feet off.
   Constrain it by width instead so the whole frame survives at a sane height. */
.split .vis .photo.portrait{max-width:334px;margin:0 auto;}
.split .vis .photo.portrait img{max-height:none;object-fit:fill;height:auto;}
.chip{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:10px;}
.light .chip{color:var(--gold-ink);}
.light .checks.gold li::before{background:var(--gold-ink);}
.light .card .sn{color:var(--gold-ink);}

/* ── CHECKLIST ── */
.checks{list-style:none;margin-top:20px;}
.checks li{padding:14px 0 14px 34px;position:relative;font-size:18px;font-weight:500;
  color:var(--body-dk);border-bottom:1px solid var(--line-dk);}
.light .checks li{color:var(--muted);border-color:var(--line-lt);}
.checks li:last-child{border-bottom:none;}
.checks li::before{content:"";position:absolute;left:0;top:21px;width:14px;height:14px;
  background:var(--teal);clip-path:polygon(14% 44%,0 60%,40% 100%,100% 16%,84% 4%,38% 72%);}
.checks.gold li::before{background:var(--gold);}

/* ── FOOTER: the logo lives here, big ── */
.foot{background:var(--black);border-top:1px solid var(--line-dk);text-align:center;padding:70px 0 56px;}
.foot .logo{width:132px;height:auto;margin:0 auto 18px;display:block;}
.foot .b2{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--teal);margin-top:4px;}
.foot nav{margin-top:28px;display:flex;gap:24px;justify-content:center;flex-wrap:wrap;}
.foot nav a{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--body-mute);text-decoration:none;}
.foot nav a:hover{color:var(--teal);}

.buildnote{background:#0E2A26;border-bottom:1px solid var(--teal-dim);color:var(--teal);
  font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.11em;
  padding:12px 26px;text-align:center;line-height:1.7;text-transform:uppercase;}

/* intermediate range: 76px headlines are too big below ~1000px and start
   orphaning single words onto their own line. Step the type down first. */
@media(max-width:1000px){
  h1,.hero h1,.hero h1.tight{font-size:46px;letter-spacing:-.03em;}
  h2{font-size:36px;}
  .note .q{font-size:28px;}
}
@media(max-width:900px){
  .stats,.pillars,.cards,.cards.two{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;}
  .split.flip .txt{order:1;}.split.flip .vis{order:2;}
  /* Mobile gets a hamburger. The bar keeps only the mark and the toggle; every
     link plus the Blueprint action lives in the panel it opens. */
  .nav .wrap{height:68px;}
  .nav .lockup img{height:44px;}
  .nav .navcta{display:none;}
  .navtoggle{display:block;}
  .nav ul{position:absolute;left:0;right:0;top:68px;display:block;background:#0B0B10;
    border-top:1px solid var(--line-dk);border-bottom:1px solid var(--teal-dim);
    padding:6px 0 12px;transform-origin:top;
    max-height:0;overflow:hidden;opacity:0;visibility:hidden;
    transition:max-height .26s ease,opacity .2s ease,visibility .26s;}
  .nav.open ul{max-height:70vh;overflow-y:auto;opacity:1;visibility:visible;}
  .nav ul li{list-style:none;}
  .nav ul a{display:block;padding:15px 26px;font-size:13px;letter-spacing:.14em;
    border-bottom:1px solid rgba(255,255,255,.05);}
  .nav .navcta-in{display:block;padding:14px 26px 4px;}
  .nav .navcta-in a{background:var(--teal);color:#04120F;text-align:center;
    border-radius:9px;padding:16px;border:0;font-weight:500;}
  .nav.open .navtoggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .nav.open .navtoggle span:nth-child(2){opacity:0;}
  .nav.open .navtoggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
}
@media(max-width:720px){
  body{font-size:17.5px;}
  h1,.hero h1,.hero h1.tight{font-size:38px;letter-spacing:-.03em;}
  h2{font-size:31px;}
  .note .q{font-size:25px;}
  section{padding:62px 0 38px;}
  .hero{padding:52px 0 50px;}
  .hero .sub{font-size:17.5px;}
  .cta-btn{font-size:13px;padding:17px 26px;}
  .advisors{grid-template-columns:1fr 1fr;gap:11px;}
  .adv .ph-av,.adv img{width:78px;height:78px;}
  .stat .n{font-size:42px;}
}

/* Below ~420px the longest word in a headline ("SUBCONSCIOUS", 330px at 38px)
   no longer fits the 323px column and the browser breaks it mid-word. Size down. */
@media(max-width:420px){
  h1,.hero h1,.hero h1.tight{font-size:33px;letter-spacing:-.028em;}
  h2{font-size:26px;}
  .hero .eyebrow{font-size:11.5px;letter-spacing:.16em;}
  .eyebrow{font-size:11px;letter-spacing:.16em;}
  .wrap{padding:0 18px;}
  .note .q{font-size:22px;}
}

/* ── GHL wrapper reset ──
   GHL nests our block in section > row > column and each adds its own padding
   (20 + 10 + 10 = 40px above the nav, same below the footer). :has() lets us zero
   it only on the wrappers that actually contain our shell, leaving the rest of
   the page builder alone. Browsers without :has() simply keep the old spacing. */
.c-section:has(.ve-shell),
.c-row:has(.ve-shell),
.c-column:has(.ve-shell),
.custom-code-container:has(.ve-shell){padding-top:0!important;padding-bottom:0!important;}
