:root{
  --navy:#1E3A8A;--abyss:#132A6E;--slate:#2A4FC9;--royal:#3B63E8;
  --gold:#B88A2D;--champagne:#D7B351;
  /* gold is decorative; --gold-text is the AA-compliant gold for small text on light */
  --gold-text:#845F14;
  --ivory:#F5F1E6;--paper:#FBF9F2;
  --ink:#0E2135;--body:#33475A;--faint:#55636F;
  --ring:rgba(215,179,81,.32);
  --stick:84px;
  --foil-grad:linear-gradient(135deg,#E6C875 0%,#D7B351 28%,#B88A2D 60%,#D7B351 88%,#E6C875 100%);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Karla,Arial,Helvetica,sans-serif;font-size:18.5px;line-height:1.72;color:var(--body);background:var(--paper)}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.wrap{width:min(1160px,92vw);margin:auto}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.1;margin:0 0 20px;color:var(--ink);letter-spacing:-.015em}
h1{font-size:clamp(40px,5.8vw,72px)}
h2{font-size:clamp(30px,3.8vw,48px)}
h3{font-size:clamp(22px,2.2vw,28px);line-height:1.25}
p{margin:0 0 18px}
.lede{font-size:20.5px;max-width:56ch;line-height:1.6}
.kicker{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:20px;color:var(--gold-text);margin:0 0 14px;display:block}
.dark .kicker,.hero .kicker,.cta-strip .kicker,.mini-consult .kicker{color:var(--champagne);text-shadow:0 1px 2px rgba(0,0,0,.6)}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--champagne);color:var(--abyss);padding:14px 22px;font-weight:700;border-radius:0 0 4px 0}
.skip:focus{left:0}

.btn{display:inline-block;border:0;cursor:pointer;background:var(--foil-grad);background-size:220% auto;color:#0B1520;padding:18px 34px;font-weight:700;font-size:16.5px;border-radius:4px;text-decoration:none;font-family:Karla,Arial,sans-serif;min-height:48px;transition:background-position .5s ease,transform .15s ease,box-shadow .2s ease;text-align:center;box-shadow:0 4px 14px rgba(184,138,45,.18)}
.btn:hover{background-position:right center;transform:translateY(-1px);box-shadow:0 6px 18px rgba(184,138,45,.28)}
.btn.line{background:transparent;border:2px solid var(--gold-text);color:var(--gold-text);box-shadow:none}
.btn.line:hover{background:rgba(184,138,45,.06);transform:none;box-shadow:none}
.btn.line-dark{background:transparent;border:2px solid var(--champagne);color:var(--champagne);box-shadow:none}
.btn.line-dark:hover{background:rgba(215,179,81,.1);transform:none;box-shadow:none}
.btn.full{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
.btn-row.center{justify-content:center}
:focus-visible{outline:3px solid var(--champagne);outline-offset:3px}
.band :focus-visible,.form-card :focus-visible,.faq :focus-visible{outline-color:var(--gold-text)}

[id]{scroll-margin-top:calc(var(--stick) + 20px)}

/* ---------- NAV ---------- */
header{position:sticky;top:0;z-index:80;background:rgba(19,42,110,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(215,179,81,.24)}
.nav{min-height:var(--stick);display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:10px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;min-width:0}
.brand img{width:46px;height:44px;object-fit:contain;flex:0 0 auto}
.brand span{font-family:Fraunces,serif;font-size:22px;color:var(--champagne);white-space:nowrap}
.tabs{display:flex;gap:26px;flex-wrap:wrap}
.tabs a{color:#E3EAF1;text-decoration:none;font-size:16.5px;font-weight:500;padding:8px 2px;border-bottom:2px solid transparent;transition:color .2s}
.tabs a:hover{color:var(--champagne)}
.tabs a[aria-current=page]{color:var(--champagne);border-bottom-color:var(--gold)}
.nav-phone{color:#fff;text-decoration:none;font-weight:700;font-size:18px;white-space:nowrap;padding:6px 0}
.nav-phone em{display:block;font-style:normal;font-size:12px;color:var(--champagne);font-weight:700;letter-spacing:.02em}
.nav .btn{padding:13px 22px;font-size:15px;min-height:44px}

/* ---------- HERO ---------- */
.hero{position:relative;background:radial-gradient(120% 130% at 78% 8%,var(--slate) 0%,var(--navy) 46%,var(--abyss) 100%);color:#E9EEF4;overflow:hidden;padding:100px 0 120px}
.hero h1,.hero h2,.hero h3{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.hero p,.hero .lede{color:rgba(233,238,244,.95);text-shadow:0 1px 3px rgba(0,0,0,.5)}
.rings{position:absolute;inset:auto -12% -34% auto;width:min(820px,86vw);aspect-ratio:1;pointer-events:none}
.rings svg{width:100%;height:100%;animation:spin 90s linear infinite;transform-origin:50% 50%}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}
.hero-cta{margin:34px 0 18px}
.soft-link{display:inline-block;color:var(--champagne);font-size:18.5px;margin-top:6px;padding:6px 0;border-bottom:1px solid rgba(215,179,81,.3);text-decoration:none;transition:border-color .2s}
.soft-link:hover{border-bottom-color:var(--champagne)}
.cred-line{font-size:18px;color:rgba(233,238,244,.8);margin-top:16px}
.cred-line b{color:var(--champagne)}
.portrait-orbit{position:relative;justify-self:center;width:min(380px,80vw)}
.portrait-orbit::before{content:"";position:absolute;inset:-9%;border:1px solid var(--ring);border-radius:50%}
.portrait-orbit::after{content:"";position:absolute;inset:-17%;border:1px dashed rgba(215,179,81,.18);border-radius:50%}
.portrait{width:100%;border-radius:50%;border:4px solid var(--champagne);box-shadow:0 24px 60px rgba(0,0,0,.6);display:block;position:relative;z-index:2}
.portrait-cap{text-align:center;margin-top:28px;position:relative;z-index:2}
.portrait-cap b{display:block;font-family:Fraunces,serif;font-size:24px;color:var(--champagne)}
.portrait-cap span{font-size:15px;color:rgba(233,238,244,.8)}
.in{opacity:0;transform:translateY(18px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.in.d1{animation-delay:.12s}.in.d2{animation-delay:.24s}.in.d3{animation-delay:.36s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--abyss);border-block:1px solid rgba(215,179,81,.18);overflow:hidden;padding:22px 0;position:relative;z-index:10}
.marquee-track{display:flex;gap:68px;width:max-content;animation:slide 45s linear infinite}
.marquee span{font-family:Fraunces,serif;font-style:italic;font-size:22px;color:var(--champagne);white-space:nowrap;opacity:.9}
.marquee i{color:rgba(215,179,81,.4);font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- BANDS ---------- */
.band{padding:100px 0;position:relative;z-index:2}
.band + .band{border-top:1px solid rgba(14,33,53,.06)}
.band.dark{background:linear-gradient(180deg,var(--navy),var(--abyss));color:#E9EEF4;border-top:1px solid rgba(215,179,81,.18)}
.band.dark h2,.band.dark h3{color:#fff}
.band.dark .lede,.band.dark p{color:rgba(233,238,244,.88)}
.band.ivory{background:var(--ivory)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}

/* ---------- INSTRUMENT ---------- */
.instrument{background:linear-gradient(145deg,#050E18,#02070D);border:1px solid rgba(215,179,81,.2);border-radius:12px;padding:50px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;box-shadow:inset 0 2px 4px rgba(255,255,255,.03),0 26px 70px rgba(0,0,0,.5);position:relative;overflow:hidden}
.instrument fieldset{border:0;margin:0;padding:0;position:relative;z-index:2}
.instrument legend{font-family:Fraunces,serif;font-size:22px;color:#fff;margin-bottom:22px;padding:0}
.ctrl{margin-bottom:26px}
.ctrl label{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:18px;color:#E3EAF1;margin-bottom:8px}
.ctrl output{font-family:Fraunces,serif;font-size:26px;color:var(--champagne);font-weight:600}
input[type=range]{width:100%;height:48px;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:pan-y;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--champagne) var(--fill,50%),rgba(233,238,244,.12) var(--fill,50%));box-shadow:inset 0 1px 3px rgba(0,0,0,.7)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#F5F1E6,#D7B351 45%,#845F14 90%);box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.4);border:none;margin-top:-12px}
input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:rgba(233,238,244,.12);box-shadow:inset 0 1px 3px rgba(0,0,0,.7)}
input[type=range]::-moz-range-progress{height:8px;border-radius:4px;background:var(--champagne)}
input[type=range]::-moz-range-thumb{width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#F5F1E6,#D7B351 45%,#845F14 90%);box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.4);border:none}
input[type=range]:focus-visible{outline:3px solid var(--champagne);outline-offset:6px;border-radius:4px}
.gauge{display:flex;flex-direction:column;justify-content:flex-end;position:relative;z-index:2}
.bars{display:flex;gap:40px;align-items:flex-end;height:250px;padding:0 10px;border-bottom:2px solid rgba(215,179,81,.25)}
.bar-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.bar{width:100%;max-width:110px;border-radius:6px 6px 0 0;transition:height .45s cubic-bezier(.2,.8,.2,1)}
.bar.spend{background:linear-gradient(180deg,rgba(233,238,244,.26),rgba(233,238,244,.12))}
.bar.guar{background:linear-gradient(180deg,var(--champagne),var(--gold))}
.bar-lab{margin-top:14px;font-size:15px;color:rgba(233,238,244,.85);text-align:center;font-weight:500}
.bar-val{font-family:Fraunces,serif;font-size:21px;color:#fff;margin-bottom:8px}
.gap-read{margin-top:28px;text-align:center;padding-top:20px;border-top:1px dashed rgba(215,179,81,.2)}
.gap-read .num{font-family:Fraunces,serif;font-size:clamp(30px,4.2vw,48px);color:var(--champagne);line-height:1.12}
.gap-read .sub{font-size:16.5px;color:rgba(233,238,244,.86);margin:10px 0 0}
.gap-read.covered .num{color:#A9DFBD}
.fine{font-size:15.5px;line-height:1.6;color:rgba(233,238,244,.7);margin-top:22px}

/* ---------- CHAPTERS ---------- */
.chapters{counter-reset:chapter;display:flex;flex-direction:column;gap:20px}
.chapter{position:relative;display:grid;grid-template-columns:230px 1fr auto;gap:40px;align-items:center;padding:48px 56px;text-decoration:none;background:#fff;border:1px solid rgba(14,33,53,.09);border-radius:10px;box-shadow:0 6px 20px rgba(14,33,53,.03);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;overflow:hidden;counter-increment:chapter}
.chapter::before{content:"0" counter(chapter);position:absolute;top:-24px;left:18px;font-size:160px;font-family:Fraunces,serif;font-weight:600;color:var(--champagne);opacity:.08;z-index:0;line-height:1;pointer-events:none}
.chapter:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(14,33,53,.07)}
.chapter .mark{font-family:Fraunces,serif;font-style:italic;font-size:23px;color:var(--gold-text);position:relative;z-index:1}
.chapter>div{position:relative;z-index:1}
.chapter h3{margin:0 0 8px}
.chapter p{margin:0;font-size:18.5px;max-width:60ch}
.chapter .go{font-size:28px;color:var(--gold-text);position:relative;z-index:1}
.chapter-full{padding:80px 0;border-bottom:1px solid rgba(14,33,53,.08)}
.chapter-full .split{align-items:start}
.plain{background:#fff;border-left:3px solid var(--champagne);padding:30px 34px;border-radius:0 8px 8px 0;box-shadow:0 6px 18px rgba(14,33,53,.02)}
.plain ul{margin:0;padding-left:20px}
.plain li{margin-bottom:12px;font-size:18.5px}

/* ---------- QUOTES ---------- */
.quote-xl{max-width:900px;margin:auto;text-align:center}
.quote-xl blockquote{font-family:Fraunces,serif;font-size:clamp(25px,3.4vw,38px);line-height:1.35;color:var(--ink);margin:0 0 22px;font-weight:500}
.band.dark .quote-xl blockquote{color:#fff}
.quote-xl cite{font-style:normal;font-size:16.5px;color:var(--faint)}
.band.dark .quote-xl cite{color:rgba(233,238,244,.82)}
.q-grid{columns:2;column-gap:28px;margin-top:20px}
.q-card{break-inside:avoid;background:#fff;border:1px solid rgba(14,33,53,.09);border-top:4px solid var(--champagne);border-radius:8px;padding:32px 30px;margin-bottom:28px;box-shadow:0 6px 18px rgba(14,33,53,.02)}
.q-card p{font-family:Fraunces,serif;font-size:19.5px;line-height:1.55;color:var(--ink)}
.q-card cite{font-style:normal;font-size:15.5px;color:var(--faint);display:block;margin-top:14px}
.stars{color:var(--gold-text);letter-spacing:4px;font-size:15px;margin-bottom:14px}
.dark .stars,.hero .stars{color:var(--champagne)}

.creds{display:flex;flex-wrap:wrap;gap:14px 34px;margin:26px 0 30px;font-size:18.5px;font-weight:700;color:var(--ink)}
.band.dark .creds{color:#E9EEF4}
.creds span::before{content:"\2713  ";color:var(--gold-text)}
.band.dark .creds span::before{color:var(--champagne)}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto}
.faq details{background:#fff;border:1px solid rgba(14,33,53,.1);border-radius:8px;margin-bottom:14px;box-shadow:0 4px 12px rgba(14,33,53,.02)}
.faq summary{cursor:pointer;font-family:Fraunces,serif;font-size:21px;color:var(--ink);padding:24px 58px 24px 28px;list-style:none;position:relative;min-height:48px;border-radius:8px;transition:background .18s}
.faq summary:hover{background:var(--paper)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:26px;top:22px;color:var(--gold-text);font-size:28px;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 28px 24px;margin:0;font-size:18.5px}

/* ---------- CONSULT ---------- */
.consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.phone-xl{display:inline-block;font-family:Fraunces,serif;font-size:clamp(30px,4vw,44px);color:var(--champagne);text-decoration:none;margin:8px 0 6px;padding:4px 0}
.phone-note{font-size:16px;color:rgba(233,238,244,.78)}
.side-quote{margin-top:32px;padding:24px 28px;border-left:3px solid var(--champagne);background:rgba(255,255,255,.06);font-family:Fraunces,serif;font-style:italic;font-size:18.5px;color:rgba(233,238,244,.96);border-radius:0 8px 8px 0}
.side-quote cite{display:block;font-style:normal;font-family:Karla,sans-serif;font-size:14.5px;color:var(--champagne);margin-top:12px}
.form-card{background:var(--paper);border-radius:10px;padding:36px 32px;border-top:4px solid var(--champagne);color:var(--body);box-shadow:0 16px 40px rgba(0,0,0,.3)}
.form-card h3{margin-bottom:8px}
.form-sub{font-size:16.5px;color:var(--faint);margin-bottom:24px}
.form-card fieldset{border:0;margin:0 0 6px;padding:0}
.form-card legend{font-size:18.5px;font-weight:700;color:var(--ink);margin-bottom:14px;padding:0}
.field{display:block;margin-bottom:18px}
.field>span{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px}
.field input{width:100%;font-family:Karla,Arial,sans-serif;font-size:18px;padding:15px;border:1px solid #ADA48D;background:#fff;color:var(--ink);border-radius:5px;min-height:48px}
.field input:focus{outline:none;border-color:var(--gold-text);box-shadow:0 0 0 3px rgba(132,95,20,.28)}
.choice{display:flex;align-items:center;gap:12px;border:2px solid #ADA48D;border-radius:7px;background:#fff;padding:16px 18px;margin-bottom:12px;cursor:pointer;font-size:18.5px;color:var(--ink);min-height:48px}
.choice:hover{border-color:var(--gold-text)}
.choice input{transform:scale(1.3);accent-color:var(--gold-text);flex:0 0 auto}
.choice.picked{border-color:var(--gold-text);background:#FBF4E5}
.choice:focus-within{outline:3px solid var(--gold-text);outline-offset:2px}
.err{color:#8C2A16;font-size:16px;font-weight:700;margin:0 0 14px;display:none}
.err.show{display:block}
.consent{font-size:15px;line-height:1.55;color:var(--faint);margin:16px 0 18px}
.consent a{color:var(--gold-text)}
.hp{position:absolute;left:-9999px}
.step2{display:none}
.form-card.step-2 .step1{display:none}
.form-card.step-2 .step2{display:block}
.back-link{background:none;border:none;color:var(--faint);font-size:16px;cursor:pointer;padding:8px 0;margin-bottom:10px;text-decoration:underline;min-height:44px}

.mini-consult{background:linear-gradient(180deg,var(--navy),var(--abyss));color:#E9EEF4;padding:76px 0}
.mini-consult h2{color:#fff}
.mini-consult p,.mini-consult .lede{color:rgba(233,238,244,.9)}
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}

.cta-strip{background:linear-gradient(120deg,var(--navy),var(--slate));color:#fff;padding:68px 0;text-align:center}
.cta-strip h2{color:#fff}
.cta-strip .lede{margin:0 auto 28px;color:rgba(233,238,244,.9)}

/* ---------- LEGAL ---------- */
.legal{max-width:76ch;margin:0 auto}
.legal h2{font-size:clamp(24px,3vw,32px);margin-top:44px}
.legal h3{font-size:21px;margin-top:28px}
.legal ul{padding-left:22px}
.legal li{margin-bottom:10px}
.notice{background:#FBF4E5;border-left:4px solid var(--gold);padding:20px 24px;border-radius:0 6px 6px 0;margin-bottom:32px;font-size:18.5px}

/* ---------- FOOTER ---------- */
footer{background:var(--abyss);color:#C4CFD9;padding:56px 0 0;font-size:16px;border-top:1px solid rgba(215,179,81,.22)}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.f-brand{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.f-brand img{width:42px;height:40px}
.f-brand span{font-family:Fraunces,serif;font-size:21px;color:var(--champagne)}
footer h4{font-family:Fraunces,serif;font-size:19px;color:#fff;margin:0 0 16px}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:12px}
footer a{color:#C4CFD9;text-decoration:none}
footer a:hover{color:var(--champagne)}
.f-disc{margin-top:36px;padding-top:26px;border-top:1px solid rgba(215,179,81,.18);font-size:15px;color:#98A5B0;line-height:1.65}
.f-bar{padding:18px 0 28px;font-size:14px;color:#98A5B0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .hero-grid,.split,.consult-grid,.instrument,.mini-grid{grid-template-columns:1fr;gap:44px}
  .portrait-orbit{order:-1;width:min(300px,70vw)}
  .rings{inset:auto -30% -14% auto;width:130vw;opacity:.55}
  .chapter{grid-template-columns:1fr;gap:14px;padding:36px 28px}
  .chapter .go{display:none}
  .q-grid{columns:1}
  .f-grid{grid-template-columns:1fr}
  header{position:static}
  [id]{scroll-margin-top:16px}
  .nav{min-height:0;padding:12px 0;gap:14px 20px}
  .tabs{order:3;width:100%;gap:20px;padding-top:8px;border-top:1px solid rgba(215,179,81,.18)}
}
@media(max-width:640px){
  .brand img{width:40px;height:38px}
  .brand span{font-size:17px}
  .nav .btn{display:none}
  .nav-phone{font-size:18px}
  .band,.mini-consult{padding:60px 0}
  .hero{padding:64px 0 74px}
  .hero-cta .btn{width:100%}
  .instrument{padding:28px 20px}
  .bars{gap:20px;height:200px}
  .chapter{padding:30px 22px}
  .form-card{padding:28px 22px}
}
@media(max-width:390px){
  .brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .tabs{gap:14px}
  .tabs a{font-size:15.5px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rings svg,.marquee-track{animation:none}
  .in{animation:none;opacity:1;transform:none}
  .bar{transition:none}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ---------- SLIM REVIEW RIBBON ---------- */
.review-ribbon{
  position:relative;
  z-index:70;
  color:var(--navy);
  background:linear-gradient(100deg,#E4C45F 0%,#D7B351 46%,#C99531 100%);
  border-top:1px solid rgba(255,245,205,.72);
  border-bottom:1px solid rgba(121,82,13,.42);
  box-shadow:0 3px 10px rgba(3,11,20,.18);
}
.review-ribbon-inner{
  min-height:70px;
  display:grid;
  grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);
  align-items:center;
  gap:24px;
  padding-top:9px;
  padding-bottom:9px;
}
.review-ribbon-lead,
.review-ribbon-note{
  font-family:Karla,Arial,sans-serif;
  font-size:16.5px;
  line-height:1.3;
  font-weight:600;
  color:#102332;
}
.review-ribbon-lead{text-align:right}
.review-ribbon-note{text-align:left}
.review-ribbon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:11px 28px;
  border:1px solid rgba(232,198,95,.9);
  border-radius:5px;
  background:var(--abyss);
  color:#E8C65F;
  text-decoration:none;
  font-family:Karla,Arial,sans-serif;
  font-size:17px;
  line-height:1;
  font-weight:700;
  letter-spacing:.01em;
  box-shadow:0 3px 8px rgba(3,11,20,.23);
  transition:background-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.review-ribbon-btn:hover{
  background:#0B2136;
  color:#F0D477;
  transform:translateY(-1px);
  box-shadow:0 5px 12px rgba(3,11,20,.28);
}
.review-ribbon-btn:active{transform:translateY(0)}

/* Keep the opening page message visually connected to the slim ribbon. */
.review-ribbon + main > .hero{padding-top:36px !important}

@media(max-width:980px){
  .review-ribbon-inner{
    grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);
    gap:16px;
    min-height:66px;
    padding-top:8px;
    padding-bottom:8px;
  }
  .review-ribbon-lead,.review-ribbon-note{font-size:15.5px}
  .review-ribbon-btn{padding:11px 22px;font-size:16.5px}
  .review-ribbon + main > .hero{padding-top:30px !important}
}

@media(max-width:700px){
  .review-ribbon-inner{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:7px 12px;
    min-height:auto;
    padding-top:9px;
    padding-bottom:10px;
    text-align:center;
  }
  .review-ribbon-lead,
  .review-ribbon-note{
    flex:1 1 100%;
    text-align:center;
    font-size:14.5px;
  }
  .review-ribbon-btn{
    min-height:46px;
    padding:10px 24px;
    font-size:16px;
  }
  .review-ribbon + main > .hero{padding-top:24px !important}
}

@media(max-width:390px){
  .review-ribbon-lead,.review-ribbon-note{font-size:14px}
  .review-ribbon-btn{width:min(100%,300px)}
}

/* ============================================================
   v4 — family hero, diamond flash, page loader, chapter reveal
   ============================================================ */

/* ---------- page loader ---------- */
.loader{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(180deg,var(--navy),var(--abyss));
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;
  opacity:1;transition:opacity .5s ease,visibility .5s ease;
}
.loader.done{opacity:0;visibility:hidden}
.loader-mark{position:relative;width:92px;height:88px;overflow:hidden;border-radius:8px}
.loader-mark img{width:100%;height:100%;object-fit:contain}
.loader-mark::after{
  content:"";position:absolute;top:-60%;left:-150%;width:62%;height:220%;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 42%,rgba(255,255,255,.95) 50%,rgba(255,255,255,.4) 58%,rgba(255,255,255,0) 100%);
  transform:rotate(14deg);animation:loaderFacet 1.5s ease-in-out infinite;
}
@keyframes loaderFacet{0%{left:-150%}60%,100%{left:160%}}
.loader-bar{width:132px;height:2px;background:rgba(215,179,81,.22);border-radius:2px;overflow:hidden}
.loader-bar i{display:block;height:100%;width:40%;background:var(--foil-grad);border-radius:2px;animation:loaderRun 1.2s ease-in-out infinite}
@keyframes loaderRun{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}
.loader-word{font-family:Fraunces,serif;font-style:italic;font-size:17px;color:rgba(215,179,81,.85);letter-spacing:.02em}

/* ---------- diamond flash: logo mark ---------- */
.brand .mark{position:relative;width:46px;height:44px;flex:0 0 auto;overflow:hidden;border-radius:6px}
.brand .mark img{width:100%;height:100%;object-fit:contain}
.brand .mark::after{
  content:"";position:absolute;top:-60%;left:-140%;width:58%;height:220%;
  background:linear-gradient(100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.35) 42%,
    rgba(255,255,255,.95) 50%,
    rgba(255,255,255,.35) 58%,
    rgba(255,255,255,0) 100%);
  transform:rotate(14deg);
  animation:sweep 7s ease-in-out infinite;
  pointer-events:none;z-index:3;
}
@keyframes sweep{
  0%,84%   {left:-140%; opacity:0}
  86%      {opacity:1}
  94%      {left:150%;  opacity:1}
  95%,100% {left:150%;  opacity:0}
}

/* ---------- sweep: gold buttons ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn:not(.line):not(.line-dark)::after{
  content:"";position:absolute;top:-50%;left:-130%;width:45%;height:200%;
  background:linear-gradient(100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.5) 48%,
    rgba(255,255,255,.9) 52%,
    rgba(255,255,255,.5) 56%,
    rgba(255,255,255,0) 100%);
  transform:rotate(16deg);
  animation:sweep 6s ease-in-out infinite;
  z-index:2;pointer-events:none;
}
.nav .btn::after{animation-delay:2.4s}
.review-ribbon-btn{position:relative;overflow:hidden;isolation:isolate}
.review-ribbon-btn::after{
  content:"";position:absolute;top:-50%;left:-130%;width:45%;height:200%;
  background:linear-gradient(100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.5) 48%,
    rgba(255,255,255,.9) 52%,
    rgba(255,255,255,.5) 56%,
    rgba(255,255,255,0) 100%);
  transform:rotate(16deg);
  animation:sweep 6s ease-in-out infinite;animation-delay:3.6s;
  z-index:2;pointer-events:none;
}

/* ---------- family photo hero ---------- */
.hero.hero-photo{isolation:isolate;background:var(--abyss)}
.hero-bg{position:absolute;inset:0;z-index:-3}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 62%}
.hero-veil{
  position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    linear-gradient(100deg,rgba(19,42,110,.96) 0%,rgba(30,58,138,.93) 26%,rgba(30,58,138,.74) 48%,rgba(30,58,138,.48) 68%,rgba(30,58,138,.38) 100%),
    linear-gradient(180deg,rgba(19,42,110,.72) 0%,rgba(19,42,110,.20) 34%,rgba(19,42,110,.30) 72%,rgba(19,42,110,.88) 100%);
}
.hero-bloom{
  position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(46% 52% at 82% 34%,rgba(215,179,81,.20),transparent 62%);
}
.hero-photo .hero-grid{display:block;max-width:760px}
.hero-photo .lede{max-width:52ch;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.hero-photo .kicker,.hero-photo .cred-line,.hero-photo .soft-link{text-shadow:0 1px 3px rgba(0,0,0,.55)}
.hero-rule{width:64px;height:2px;background:var(--foil-grad);margin:0 0 24px;border-radius:2px}

/* ---------- founder band ---------- */
.founder{background:linear-gradient(180deg,var(--navy),var(--abyss));color:#E9EEF4;padding:86px 0}
.founder h2{color:#fff}
.founder p{color:rgba(233,238,244,.9)}
.founder-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.founder .portrait-orbit{width:min(320px,72vw);justify-self:center}

/* ---------- chapter reveal: pages turning ---------- */
.chapter{
  opacity:0;transform:translateX(var(--from,0)) translateY(14px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
  will-change:opacity,transform;
}
.chapter:nth-child(1){--from:-46px}
.chapter:nth-child(2){--from:46px}
.chapter:nth-child(3){--from:0}
.chapter.shown{opacity:1;transform:none}
.chapter:nth-child(3).shown{
  background:linear-gradient(100deg,#fff 0%,#FDFAF1 100%);
  box-shadow:inset 3px 0 0 var(--champagne);
}
.chapter:nth-child(3).shown .mark{color:var(--gold)}

/* ---------- solutions video slots ---------- */
.video-slot{
  position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;
  background:linear-gradient(140deg,var(--navy),var(--abyss));
  border:1px solid rgba(215,179,81,.3);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;
  color:rgba(233,238,244,.82);text-align:center;padding:26px;
}
.video-slot img{width:64px;height:61px;opacity:.9}
.video-slot span{font-family:Fraunces,serif;font-style:italic;font-size:18px;color:var(--champagne)}
.video-slot small{font-size:15px;color:rgba(233,238,244,.7);max-width:36ch}
.video-slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

@media(max-width:980px){
  .founder-grid{grid-template-columns:1fr;gap:38px}
  .founder .portrait-orbit{order:-1}
  .hero-bg img{object-position:64% 66%}
  .hero-veil{background:linear-gradient(180deg,rgba(3,11,20,.90) 0%,rgba(7,23,39,.74) 40%,rgba(7,23,39,.64) 62%,rgba(3,11,20,.92) 100%)}
  .chapter{--from:0!important}
}
@media(prefers-reduced-motion:reduce){
  .brand .mark::after,.btn::after,.review-ribbon-btn::after,.loader-mark::after,.loader-bar i{animation:none;opacity:0}
  .loader{display:none}
  .chapter{opacity:1;transform:none;transition:none}
}


/* ============================================================
   v5 — contrast repairs, glowing portrait rings, gold flash headline
   ============================================================ */

/* founder band sits on navy but was inheriting light-background colours */
.founder .creds{color:#FFFFFF}
.founder .creds span::before{color:var(--champagne)}
.founder .kicker{color:var(--champagne)}
.btn.line-dark{border-color:rgba(255,255,255,.85);color:#FFFFFF}
.btn.line-dark:hover{background:rgba(255,255,255,.12)}

/* any kicker / cite / small text that lands on a dark surface */
.founder p,.mini-consult p,.hero p{color:rgba(240,245,250,.94)}
.portrait-cap span{color:rgba(240,245,250,.9)}
.cred-line{color:rgba(240,245,250,.92)}
.phone-note{color:rgba(240,245,250,.86)}
.fine{color:rgba(240,245,250,.8)}
.bar-lab{color:rgba(240,245,250,.92)}
.gap-read .sub{color:rgba(240,245,250,.92)}
.side-quote{color:rgba(240,245,250,.97)}
.band.dark .quote-xl cite,.mini-consult .phone-note{color:rgba(240,245,250,.88)}
footer{color:#CBD6E1}
.f-disc{color:#A6B4C2}
.f-bar{color:#A6B4C2}
.tabs a{color:#EDF2F7}

/* glowing rings around the portrait — the look Natalie liked */
.portrait-orbit::before{
  border-color:rgba(215,179,81,.55);
  box-shadow:0 0 26px rgba(215,179,81,.30),inset 0 0 22px rgba(215,179,81,.16);
  animation:ringGlow 4.5s ease-in-out infinite;
}
.portrait-orbit::after{
  border-color:rgba(215,179,81,.30);
  box-shadow:0 0 34px rgba(215,179,81,.18);
  animation:ringGlow 4.5s ease-in-out infinite;animation-delay:1.1s;
}
@keyframes ringGlow{
  0%,100%{opacity:.55}
  50%{opacity:1}
}
.portrait{box-shadow:0 0 30px rgba(215,179,81,.28),0 26px 70px rgba(0,0,0,.5)}

/* testimonials headline: gold, with the same shooting-star pass */
.gold-flash{
  position:relative;display:inline-block;overflow:hidden;
  color:#FFFFFF;
}
.gold-flash::after,.gold-flash::before{
  content:"";position:absolute;top:-50%;height:200%;pointer-events:none;
  transform:rotate(16deg);
  background:linear-gradient(100deg,
    rgba(215,179,81,0) 0%,
    rgba(215,179,81,.55) 45%,
    rgba(240,214,150,.95) 52%,
    rgba(215,179,81,.55) 59%,
    rgba(215,179,81,0) 100%);
  mix-blend-mode:screen;
}
.gold-flash::after{left:-130%;width:26%;animation:sweep 6s ease-in-out infinite}
.gold-flash::before{left:-130%;width:16%;animation:sweep 6s ease-in-out infinite;animation-delay:.34s;opacity:.75}


@media(prefers-reduced-motion:reduce){
  .portrait-orbit::before,.portrait-orbit::after,.gold-flash::after,
  .brand .mark::before{animation:none;opacity:1}
  .gold-flash::after{opacity:0}
}

/* ============================================================
   v6 — scroll transitions, video casing, live instrument, highlights
   ============================================================ */

/* ---------- sitewide scroll transitions ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}
.reveal.shown{opacity:1;transform:none}
.reveal-d1{transition-delay:.09s}
.reveal-d2{transition-delay:.18s}

/* ---------- About: full-width video with a proper casing ---------- */
.video-stage{position:relative;padding:0 0 8px}
.video-case{
  position:relative;width:min(1160px,94vw);margin:0 auto;
  border-radius:14px;overflow:hidden;
  background:linear-gradient(160deg,var(--slate),var(--abyss));
  border:1px solid rgba(215,179,81,.42);
  box-shadow:0 0 0 1px rgba(215,179,81,.16),0 34px 90px rgba(0,0,0,.55);
}
.video-case::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 30%);
}
.video-case .frame{position:relative;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center;padding:30px}
.video-case iframe,.video-case video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.video-case .frame img{width:76px;height:72px;opacity:.95}
.video-case .frame span{font-family:Fraunces,serif;font-style:italic;font-size:22px;color:var(--champagne)}
.video-case .frame small{font-size:16px;color:rgba(240,245,250,.78)}
.video-under{width:min(1160px,94vw);margin:38px auto 0;text-align:center}
.video-under h1{margin-bottom:16px}
.video-under .lede{margin:0 auto 26px}
.video-under .btn-row{justify-content:center}
.video-under .creds{justify-content:center}

/* ---------- founder: no encasing rings, footage-ready plate ---------- */
.founder-plate{position:relative;border-radius:14px;overflow:hidden;width:min(430px,86vw);justify-self:center;
  border:1px solid rgba(215,179,81,.35);box-shadow:0 26px 70px rgba(0,0,0,.5);background:var(--abyss)}
.founder-plate img,.founder-plate video{width:100%;display:block;aspect-ratio:4/5;object-fit:cover}
.founder-plate figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:22px 20px 18px;text-align:center;
  background:linear-gradient(180deg,transparent,rgba(18,16,43,.92) 55%);
}
.founder-plate figcaption b{display:block;font-family:Fraunces,serif;font-size:23px;color:var(--champagne)}
.founder-plate figcaption span{font-size:15px;color:rgba(240,245,250,.9)}

/* ---------- instrument: livelier ---------- */
.gap-read .num{transition:transform .25s ease}
.gap-read.bump .num{transform:scale(1.06)}
.bar{position:relative}
.bar.guar::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 45%);
}
.bar-track{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.instrument .gauge{position:relative}
.covered-pill{
  display:inline-block;margin-top:14px;padding:8px 18px;border-radius:100px;
  font-size:15.5px;font-weight:700;letter-spacing:.01em;
  background:rgba(215,179,81,.14);border:1px solid rgba(215,179,81,.45);color:var(--champagne);
}
.gap-read.covered .covered-pill{background:rgba(120,220,160,.14);border-color:rgba(150,230,185,.5);color:#A9DFBD}
.instrument-cta{margin:0;padding:24px 44px 34px;text-align:center;
  background:var(--abyss);border:1px solid rgba(215,179,81,.32);border-top:0;
  border-radius:0 0 10px 10px;width:100%}
.instrument{border-radius:10px 10px 0 0}

/* ---------- highlighted pull quotes ---------- */
.quote-xl{position:relative}
.quote-hl{
  background:linear-gradient(160deg,rgba(59,99,232,.34),rgba(215,179,81,.12));
  border:1px solid rgba(215,179,81,.34);border-radius:14px;
  padding:52px 46px;box-shadow:0 24px 60px rgba(0,0,0,.32);
}
.quote-hl::before{
  content:"\201C";position:absolute;top:-6px;left:26px;
  font-family:Fraunces,serif;font-size:110px;line-height:1;color:rgba(215,179,81,.30);
}
.band.ivory .quote-hl{background:linear-gradient(160deg,rgba(30,58,138,.07),rgba(184,138,45,.10));border-color:rgba(132,95,20,.26)}
.band.ivory .quote-hl::before{color:rgba(132,95,20,.24)}

/* ---------- playbook heading, larger ---------- */
.playbook-head h2{font-size:clamp(38px,5.4vw,66px)}
.playbook-head .lede{font-size:21px}

@media(max-width:980px){
  .founder-plate{width:min(340px,80vw)}
  .instrument-cta{padding:22px 20px 28px}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .gap-read.bump .num{transform:none}
  .brand .mark::after,.btn::after,.review-ribbon-btn::after,.gold-flash::after{animation:none;opacity:0}
}


/* ============================================================
   v7 — About credentials, full-bleed section heroes
   ============================================================ */
.video-under .creds{
  font-size:21px;font-weight:700;color:#FFFFFF;
  gap:18px 40px;margin-top:30px;
}
.video-under .creds span::before{color:var(--champagne);font-size:22px}
.hero .creds,.hero-photo .creds{color:#FFFFFF;font-size:21px}
.hero .creds span::before,.hero-photo .creds span::before{color:var(--champagne)}

/* section hero: same treatment as the home hero, for interior pages */
.hero.hero-photo .hero-single{position:relative;max-width:760px}

/* ============================================================
   v9 — light hero, native-res video, studio portrait
   ============================================================ */

/* ---------- LIGHT HERO (homepage) ---------- */
.hero.hero-light{background:var(--paper);color:var(--body)}

/* Full-bleed photo. The veil feathers with no hard edge so type and image read
   as one composition rather than a caption beside a picture. */
.hero.hero-light .hero-bg img{object-position:64% 58%}
.hero.hero-light .hero-veil{
  background:
    /* horizontal scrim: holds solid across the type column (left ~55%),
       then dissolves fast so the right half is genuinely the photograph */
    linear-gradient(96deg,
      rgba(251,249,242,.975) 0%,
      rgba(251,249,242,.968) 38%,
      rgba(251,249,242,.945) 52%,
      rgba(251,249,242,.90)  60%,
      rgba(251,249,242,.62)  69%,
      rgba(251,249,242,.34)  79%,
      rgba(251,249,242,.14)  90%,
      rgba(251,249,242,.05)  100%),
    linear-gradient(180deg,
      rgba(251,249,242,.55) 0%,
      rgba(251,249,242,.05) 22%,
      rgba(251,249,242,.02) 58%,
      rgba(251,249,242,.50) 88%,
      rgba(251,249,242,.92) 100%);
}
/* warm bloom pulls the image's own light into the type area */
.hero.hero-light .hero-bloom{
  mix-blend-mode:multiply;
  background:radial-gradient(58% 62% at 74% 40%,rgba(184,138,45,.20),transparent 68%);
}
.hero.hero-light h1{color:var(--ink);text-shadow:0 1px 0 rgba(251,249,242,.9)}
.hero.hero-light h1 em{color:var(--gold-text);font-style:italic}
.hero.hero-light .lede{color:var(--body);text-shadow:0 1px 0 rgba(251,249,242,.85)}
.hero.hero-light .kicker{color:var(--gold-text);text-shadow:0 1px 0 rgba(251,249,242,.85)}
.hero.hero-light .hero-line{
  font-family:Fraunces,Georgia,serif;font-style:italic;
  font-size:clamp(20px,2.4vw,26px);color:var(--navy);
  margin:22px 0 4px;text-shadow:0 1px 0 rgba(251,249,242,.85);
}
.hero.hero-light .cred-line{color:var(--body);text-shadow:0 1px 0 rgba(251,249,242,.85)}
.hero.hero-light .cred-line b{color:var(--gold-text)}
.hero.hero-light .creds{color:var(--ink)}
.hero.hero-light .creds span::before{color:var(--gold-text)}
.hero.hero-light .soft-link{color:var(--gold-text);text-decoration:underline;text-underline-offset:3px}
.hero.hero-light .btn.line-dark{border-color:var(--navy);color:var(--navy);background:rgba(251,249,242,.55)}
.hero.hero-light .btn.line-dark:hover{background:rgba(30,58,138,.10)}
.hero.hero-light .hero-rule{background:var(--foil-grad)}
.hero.hero-light .rings{display:none}
.hero.hero-light::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--foil-grad);
}
.hero.hero-light .hero-grid{padding:18px 0;max-width:min(620px,54%)}
@media(max-width:900px){.hero.hero-light .hero-grid{max-width:none}}
@media(max-width:900px){
  .hero.hero-light .hero-veil{
    background:linear-gradient(180deg,
      rgba(251,249,242,.94) 0%,
      rgba(251,249,242,.90) 42%,
      rgba(251,249,242,.62) 68%,
      rgba(251,249,242,.30) 84%,
      rgba(251,249,242,.86) 100%);
  }
  .hero.hero-light .hero-bg img{object-position:62% 66%}
}

/* ---------- video: respect native resolution, never upscale into mush ---------- */
.video-case{display:flex;align-items:center;justify-content:center;padding:26px}
.video-case video{
  position:static;width:100%;max-width:704px;height:auto;
  aspect-ratio:auto;object-fit:contain;border-radius:8px;
  box-shadow:0 18px 44px rgba(0,0,0,.45);background:#000;
}
.video-case .frame{width:100%}

/* ---------- founder plate: studio portrait ---------- */
.founder-plate{width:min(360px,84vw)}
.founder-plate img{aspect-ratio:4/5;object-fit:cover}

/* ============================================================
   v11 — long-form: product tabs, DIME calculator, life stages
   ============================================================ */

/* ---------- anchor nav ---------- */
.tabs a[data-anchor].active{color:var(--champagne);border-bottom-color:var(--gold)}

/* ---------- three quick answers ---------- */
.answers{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:14px}
.answer{background:#fff;border:1px solid rgba(14,33,53,.13);border-top:4px solid var(--champagne);
  border-radius:10px;padding:34px 30px}
.answer h3{color:var(--ink);margin-bottom:12px}
.answer p{margin:0;font-size:17.5px;color:#40505f}

/* ---------- product tabs ---------- */
.ptabs{margin-top:8px}
.ptab-nav{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:34px}
.ptab-btn{
  font-family:Karla,Arial,sans-serif;font-size:17px;font-weight:700;
  padding:14px 26px;border-radius:100px;cursor:pointer;min-height:48px;
  background:transparent;border:2px solid rgba(30,58,138,.35);color:var(--navy);
  transition:background .18s,border-color .18s,color .18s;
}
.ptab-btn:hover{border-color:var(--navy)}
.ptab-btn[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.band.dark .ptab-btn{border-color:rgba(215,179,81,.4);color:#E9EEF4}
.band.dark .ptab-btn[aria-selected="true"]{background:var(--champagne);border-color:var(--champagne);color:var(--abyss)}
.ptab-panel{display:none}
.ptab-panel.active{display:block;animation:panelIn .45s cubic-bezier(.2,.7,.2,1)}
@keyframes panelIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ptab-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center;
  background:#fff;border:1px solid rgba(14,33,53,.12);border-radius:12px;padding:36px;
  box-shadow:0 18px 46px rgba(14,33,53,.08)}
.ptab-photo{border-radius:10px;overflow:hidden;aspect-ratio:4/3;
  background:linear-gradient(150deg,var(--navy),var(--abyss));
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;
  text-align:center;padding:24px;border:1px solid rgba(215,179,81,.3)}
.ptab-photo img.ph{width:62px;height:59px;opacity:.9}
.ptab-photo span{font-family:Fraunces,serif;font-style:italic;font-size:17px;color:var(--champagne)}
.ptab-photo small{font-size:14.5px;color:rgba(240,245,250,.72)}
.ptab-photo img.real{width:100%;height:100%;object-fit:cover}
.ptab-body h3{color:var(--ink);font-size:clamp(24px,2.8vw,32px);margin-bottom:6px}
.ptab-body .sub{font-family:Fraunces,serif;font-style:italic;font-size:19px;color:var(--gold-text);margin-bottom:18px}
.ptab-body p{font-size:17.5px}
.ptab-note{border-left:3px solid var(--champagne);background:var(--ivory);
  border-radius:0 8px 8px 0;padding:18px 22px;margin-top:20px}
.ptab-note b{display:block;font-size:14px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-text);margin-bottom:6px}
.ptab-note p{margin:0;font-size:16.5px;color:#40505f}
.ptab-note.best{border-left-color:var(--navy)}
.ptab-note.best b{color:var(--navy)}

/* ---------- DIME calculator ---------- */
.dime{background:var(--abyss);border:1px solid rgba(215,179,81,.32);border-radius:12px;
  padding:42px;display:grid;grid-template-columns:1fr 1fr;gap:48px;
  box-shadow:0 30px 80px rgba(0,0,0,.42)}
.dime fieldset{border:0;margin:0;padding:0}
.dime legend{font-family:Fraunces,serif;font-size:21px;color:#fff;margin-bottom:20px;padding:0}
.dime-letter{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:6px;margin-right:10px;
  background:var(--foil-grad);color:var(--abyss);font-weight:700;font-size:16px;flex:0 0 auto}
.dime .ctrl label{align-items:center}
.dime .ctrl .lab{display:flex;align-items:center;color:#E3EAF1;font-size:17.5px}
.dime-stack{display:flex;flex-direction:column;justify-content:flex-end;min-height:300px}
.stack-bar{display:flex;flex-direction:column-reverse;border-radius:8px;overflow:hidden;
  border:1px solid rgba(215,179,81,.35);background:rgba(255,255,255,.04);min-height:230px}
.stack-seg{display:flex;align-items:center;justify-content:space-between;padding:0 16px;
  font-size:15px;font-weight:700;color:var(--abyss);overflow:hidden;white-space:nowrap;
  transition:height .5s cubic-bezier(.2,.7,.2,1);min-height:0}
.seg-d{background:linear-gradient(90deg,#E6C875,#D7B351)}
.seg-i{background:linear-gradient(90deg,#D7B351,#C79E3F)}
.seg-m{background:linear-gradient(90deg,#C79E3F,#B88A2D)}
.seg-e{background:linear-gradient(90deg,#B88A2D,#9C7324)}
.stack-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:16px;font-size:14.5px;color:rgba(240,245,250,.85)}
.stack-legend i{display:inline-block;width:13px;height:13px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.dime-total{margin-top:26px;text-align:center}
.dime-total .num{font-family:Fraunces,serif;font-size:clamp(34px,4.6vw,54px);color:var(--champagne);line-height:1.1;transition:transform .25s ease}
.dime-total.bump .num{transform:scale(1.05)}
.dime-total .lbl{font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:rgba(240,245,250,.78);margin-top:6px}
.dime-total .gap{margin-top:14px;font-size:17px;color:#fff}
.dime-total .gap b{color:var(--champagne)}
.dime-cta{padding:26px 44px 34px;text-align:center;background:var(--abyss);
  border:1px solid rgba(215,179,81,.32);border-top:0;border-radius:0 0 12px 12px}
.dime{border-radius:12px 12px 0 0}

/* ---------- life stages ---------- */
.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:14px}
.stage{background:#fff;border:1px solid rgba(14,33,53,.13);border-radius:10px;padding:28px 24px;
  transition:transform .2s,box-shadow .2s,border-color .2s}
.stage:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--champagne)}
.stage svg{width:38px;height:38px;stroke:var(--gold-text);fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.stage h3{font-size:20px;color:var(--ink);margin-bottom:8px}
.stage p{margin:0;font-size:16.5px;color:#4a5966}

/* ---------- health objection ---------- */
.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.health-punch{font-family:Fraunces,serif;font-size:clamp(22px,2.6vw,30px);
  color:var(--champagne);line-height:1.3;margin-top:22px}

@media(max-width:980px){
  .answers,.stages{grid-template-columns:1fr}
  .ptab-grid,.dime,.health-grid{grid-template-columns:1fr;gap:32px}
  .dime{padding:28px 22px}
  .ptab-grid{padding:24px}
  .ptab-nav{gap:8px}
  .ptab-btn{font-size:15.5px;padding:12px 18px}
}
@media(prefers-reduced-motion:reduce){
  .ptab-panel.active{animation:none}
  .stack-seg{transition:none}
  .dime-total.bump .num{transform:none}
}


/* ============================================================
   V12 Alpha — supplied sunset family hero, side placement only
   Keeps all existing homepage copy, typography and controls intact.
   ============================================================ */
.hero.hero-side-photo{
  background:var(--paper);
}
.hero.hero-side-photo .hero-bg{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:auto;
  width:64%;
  z-index:-3;
  overflow:hidden;
  /* Soft opacity drift where the copy column meets the photograph. */
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 5%,rgba(0,0,0,.34) 14%,rgba(0,0,0,.72) 25%,#000 39%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 5%,rgba(0,0,0,.34) 14%,rgba(0,0,0,.72) 25%,#000 39%,#000 100%);
}
.hero.hero-side-photo .hero-bg picture,
.hero.hero-side-photo .hero-bg img{
  width:100%;
  height:100%;
  display:block;
}
.hero.hero-side-photo .hero-bg img{
  object-fit:cover;
  object-position:74% 72%;
}
/* Let the photo remain true to the supplied image; only feather the meeting point. */
.hero.hero-side-photo .hero-veil{
  background:linear-gradient(90deg,
    rgba(251,249,242,1) 0%,
    rgba(251,249,242,.99) 37%,
    rgba(251,249,242,.84) 48%,
    rgba(251,249,242,.38) 60%,
    rgba(251,249,242,.08) 74%,
    rgba(251,249,242,0) 88%);
}
.hero.hero-side-photo .hero-bloom{
  background:radial-gradient(52% 62% at 70% 44%,rgba(184,138,45,.11),transparent 72%);
  mix-blend-mode:multiply;
}
.hero.hero-side-photo .hero-grid{
  max-width:min(620px,48%);
}

@media(max-width:900px){
  .hero.hero-side-photo .hero-grid{max-width:none}
  .hero.hero-side-photo .hero-bg{
    left:0;
    width:100%;
    top:38%;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.30) 14%,#000 32%,#000 100%);
    mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.30) 14%,#000 32%,#000 100%);
  }
  .hero.hero-side-photo .hero-bg img{
    object-position:74% 34%;
  }
  .hero.hero-side-photo .hero-veil{
    background:linear-gradient(180deg,
      rgba(251,249,242,.98) 0%,
      rgba(251,249,242,.96) 40%,
      rgba(251,249,242,.70) 56%,
      rgba(251,249,242,.28) 72%,
      rgba(251,249,242,.12) 100%);
  }
}


/* ============================================================
   v12 alpha bench hero — condensed copy-led hero
   Keeps the same side-photo drift treatment, but makes the photo
   fit the hero rather than expanding the hero to fit the photo.
   ============================================================ */
.hero.hero-side-photo{
  padding:72px 0 78px;
}
.hero.hero-side-photo .hero-grid{
  padding:4px 0;
  max-width:min(600px,48%);
}
.hero.hero-side-photo .hero-cta{
  margin:24px 0 12px;
}
.hero.hero-side-photo .hero-line{
  margin:14px 0 2px;
}
.hero.hero-side-photo p{
  margin-bottom:14px;
}
.hero.hero-side-photo .cred-line{
  margin-bottom:8px;
}
@media(max-width:900px){
  .hero.hero-side-photo{
    padding:52px 0 56px;
  }
  .hero.hero-side-photo .hero-grid{
    padding:0;
  }
  .hero.hero-side-photo .hero-cta{
    margin:20px 0 10px;
  }
  .hero.hero-side-photo p{
    margin-bottom:12px;
  }
}


/* ============================================================
   DIME calculator — compact interaction deck
   Reduces the vertical footprint of the slider/nozzle area by roughly half
   without changing calculator values, copy, or JavaScript behavior.
   ============================================================ */
@media(min-width:901px){
  .dime{
    padding:30px 34px;
    gap:34px;
    align-items:start;
  }
  .dime fieldset{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:24px;
    row-gap:10px;
    align-content:start;
  }
  .dime fieldset legend{
    grid-column:1 / -1;
    margin-bottom:8px;
  }
  .dime .ctrl{
    margin-bottom:0;
    min-width:0;
  }
  .dime .ctrl label{
    gap:8px;
    margin-bottom:2px;
    line-height:1.25;
  }
  .dime .ctrl .lab{
    font-size:16px;
    min-width:0;
  }
  .dime .ctrl output{
    font-size:20px;
    white-space:nowrap;
  }
  .dime .dime-letter{
    width:25px;
    height:25px;
    margin-right:7px;
    font-size:14px;
    border-radius:5px;
  }
  .dime input[type=range]{
    height:28px;
  }
  .dime input[type=range]::-webkit-slider-runnable-track{
    height:6px;
  }
  .dime input[type=range]::-webkit-slider-thumb{
    width:24px;
    height:24px;
    margin-top:-9px;
  }
  .dime input[type=range]::-moz-range-track,
  .dime input[type=range]::-moz-range-progress{
    height:6px;
  }
  .dime input[type=range]::-moz-range-thumb{
    width:24px;
    height:24px;
  }
  .dime-stack{
    min-height:238px;
  }
  .stack-bar{
    min-height:168px;
  }
  .stack-legend{
    margin-top:10px;
  }
  .dime-total{
    margin-top:14px;
  }
}

@media(max-width:900px){
  .dime{
    padding:24px 20px;
    gap:24px;
  }
  .dime .ctrl{
    margin-bottom:12px;
  }
  .dime .ctrl label{
    margin-bottom:2px;
  }
  .dime input[type=range]{
    height:32px;
  }
  .dime input[type=range]::-webkit-slider-thumb{
    width:26px;
    height:26px;
    margin-top:-9px;
  }
  .dime input[type=range]::-moz-range-thumb{
    width:26px;
    height:26px;
  }
  .dime-stack{
    min-height:230px;
  }
  .stack-bar{
    min-height:170px;
  }
}


/* ============================================================
   v12 alpha — product tab photo blend treatment
   Remove framed blue outline and let each product image fade softly
   into the content area, similar to the home hero treatment.
   ============================================================ */
.ptab-grid{
  gap:28px;
}
.ptab-photo{
  position:relative;
  border-radius:0;
  overflow:hidden;
  aspect-ratio:4/3;
  background:transparent;
  display:block;
  padding:0;
  border:0;
  box-shadow:none;
  isolation:isolate;
}
.ptab-photo picture,
.ptab-photo img.real{
  width:100%;
  height:100%;
  display:block;
}
.ptab-photo picture{
  -webkit-mask-image:linear-gradient(90deg,
    #000 0%,
    #000 64%,
    rgba(0,0,0,.86) 76%,
    rgba(0,0,0,.48) 86%,
    rgba(0,0,0,.16) 94%,
    transparent 100%);
  mask-image:linear-gradient(90deg,
    #000 0%,
    #000 64%,
    rgba(0,0,0,.86) 76%,
    rgba(0,0,0,.48) 86%,
    rgba(0,0,0,.16) 94%,
    transparent 100%);
}
.ptab-photo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 64%,
    rgba(255,255,255,.08) 76%,
    rgba(255,255,255,.34) 88%,
    rgba(255,255,255,.78) 100%);
}
.ptab-photo::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,
    rgba(255,255,255,.10) 0%,
    rgba(255,255,255,0) 24%,
    rgba(255,255,255,0) 76%,
    rgba(255,255,255,.06) 100%);
}
.ptab-photo img.real{
  object-fit:cover;
}
@media(max-width:882px){
  .ptab-grid{
    gap:26px;
  }
  .ptab-photo picture{
    -webkit-mask-image:linear-gradient(180deg,
      #000 0%,
      #000 72%,
      rgba(0,0,0,.72) 84%,
      rgba(0,0,0,.24) 94%,
      transparent 100%);
    mask-image:linear-gradient(180deg,
      #000 0%,
      #000 72%,
      rgba(0,0,0,.72) 84%,
      rgba(0,0,0,.24) 94%,
      transparent 100%);
  }
  .ptab-photo::after{
    background:linear-gradient(180deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 72%,
      rgba(255,255,255,.18) 86%,
      rgba(255,255,255,.78) 100%);
  }
}


/* ============================================================
   v12 alpha — expanded product photo field
   Let the image fully occupy the left half of each product card.
   The fade only begins where the image approaches the copy column.
   ============================================================ */
.ptab-grid{
  grid-template-columns:1.08fr .92fr;
  gap:0;
  padding:0 36px 0 0;
  overflow:hidden;
  align-items:stretch;
}
.ptab-photo{
  align-self:stretch;
  min-height:520px;
  aspect-ratio:auto;
  border-radius:12px 0 0 12px;
  margin:0;
}
.ptab-photo picture,
.ptab-photo img.real{
  width:100%;
  height:100%;
}
.ptab-photo img.real{
  object-fit:cover;
  object-position:center;
}
.ptab-photo picture{
  -webkit-mask-image:linear-gradient(90deg,
    #000 0%,
    #000 76%,
    rgba(0,0,0,.96) 82%,
    rgba(0,0,0,.78) 88%,
    rgba(0,0,0,.42) 94%,
    transparent 100%);
  mask-image:linear-gradient(90deg,
    #000 0%,
    #000 76%,
    rgba(0,0,0,.96) 82%,
    rgba(0,0,0,.78) 88%,
    rgba(0,0,0,.42) 94%,
    transparent 100%);
}
.ptab-photo::after{
  background:linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 76%,
    rgba(255,255,255,.03) 84%,
    rgba(255,255,255,.18) 91%,
    rgba(255,255,255,.72) 100%);
}
.ptab-body{
  position:relative;
  z-index:2;
  padding:40px 0 40px 20px;
  align-self:center;
}

@media(max-width:882px){
  .ptab-grid{
    grid-template-columns:1fr;
    padding:0 24px 24px;
    gap:20px;
  }
  .ptab-photo{
    min-height:0;
    aspect-ratio:16/10;
    border-radius:12px 12px 0 0;
    margin:0 -24px;
  }
  .ptab-photo picture{
    -webkit-mask-image:linear-gradient(180deg,
      #000 0%,
      #000 78%,
      rgba(0,0,0,.82) 86%,
      rgba(0,0,0,.36) 94%,
      transparent 100%);
    mask-image:linear-gradient(180deg,
      #000 0%,
      #000 78%,
      rgba(0,0,0,.82) 86%,
      rgba(0,0,0,.36) 94%,
      transparent 100%);
  }
  .ptab-photo::after{
    background:linear-gradient(180deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 78%,
      rgba(255,255,255,.10) 88%,
      rgba(255,255,255,.72) 100%);
  }
  .ptab-body{
    padding:4px 0 0;
  }
}


/* ============================================================
   v12 alpha — mobile polish pass from screen-recording review
   Scope:
   1) tighten mobile header/ribbon symmetry
   2) remove hero photo on phone, center copy, improve breathing
   3) make hero credentials more visible
   4) make DIME mobile cleaner/boxed/tighter
   5) restore dark readable consultation-card heading/subcopy
   ============================================================ */

/* Consultation card contrast repair */
.form-card h3{
  color:var(--ink) !important;
}
.form-sub{
  color:var(--body) !important;
}

/* Mobile-first header cleanup */
@media(max-width:820px){
  .nav{
    gap:10px 16px;
    justify-content:center;
    padding:10px 0 12px;
  }
  .brand{
    margin-right:0;
  }
  .nav-phone{
    font-size:17px;
    text-align:right;
  }
  .tabs{
    width:100%;
    justify-content:center;
    gap:14px 18px;
    padding-top:10px;
  }
  .tabs a{
    font-size:15.5px;
    padding:7px 2px;
  }
  .review-ribbon-inner{
    gap:8px 12px;
    padding-top:8px;
    padding-bottom:9px;
  }
}

/* Phone hero: copy-only composition, centered and more symmetrical */
@media(max-width:760px){
  .hero.hero-side-photo{
    padding:44px 0 48px !important;
    background:var(--paper);
  }
  .hero.hero-side-photo .hero-bg,
  .hero.hero-side-photo .hero-bloom{
    display:none;
  }
  .hero.hero-side-photo .hero-veil{
    inset:0;
    background:var(--paper);
  }
  .hero.hero-side-photo .hero-grid{
    max-width:min(680px,100%) !important;
    padding:0;
    display:block;
    text-align:center;
  }
  .hero.hero-side-photo .kicker,
  .hero.hero-side-photo .hero-rule,
  .hero.hero-side-photo p,
  .hero.hero-side-photo .soft-link,
  .hero.hero-side-photo .cred-line,
  .hero.hero-side-photo .btn-row{
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hero.hero-side-photo .hero-rule{
    margin-bottom:20px;
  }
  .hero.hero-side-photo h1{
    max-width:12ch;
    margin-left:auto;
    margin-right:auto;
    font-size:clamp(44px,12.2vw,62px);
    line-height:.98;
    color:var(--ink);
    text-shadow:none;
  }
  .hero.hero-side-photo h1 em{
    color:var(--gold-text);
  }
  .hero.hero-side-photo p,
  .hero.hero-side-photo .lede,
  .hero.hero-side-photo .soft-link{
    color:var(--body);
    text-shadow:none;
  }
  .hero.hero-side-photo .lede{
    max-width:32ch;
    font-size:19.5px;
    line-height:1.52;
  }
  .hero.hero-side-photo .hero-line{
    max-width:26ch;
    color:var(--ink);
    font-weight:700;
    margin-top:8px;
  }
  .hero.hero-side-photo .hero-cta{
    justify-content:center;
    margin:18px auto 8px;
    max-width:440px;
  }
  .hero.hero-side-photo .hero-cta .btn{
    flex:1 1 100%;
  }
  .hero.hero-side-photo .soft-link{
    display:inline-block;
    font-size:17px;
    margin-top:0;
  }
  .hero.hero-side-photo .cred-line{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px 10px;
    max-width:26ch;
    margin-top:14px;
    padding:10px 14px;
    border:1px solid rgba(132,95,20,.18);
    border-radius:12px;
    background:rgba(255,255,255,.74);
    box-shadow:0 10px 24px rgba(14,33,53,.06);
    color:var(--ink);
    font-size:16px;
    line-height:1.35;
  }
  .hero.hero-side-photo .cred-line b{
    color:var(--gold-text);
  }
}

@media(max-width:420px){
  .hero.hero-side-photo h1{
    max-width:11.2ch;
    font-size:clamp(40px,11.6vw,54px);
  }
  .hero.hero-side-photo .lede{
    font-size:18px;
  }
  .hero.hero-side-photo .cred-line{
    font-size:15.5px;
    padding:9px 12px;
  }
}

/* DIME mobile tightening and clearer separation */
@media(max-width:760px){
  .dime{
    padding:18px 16px;
    gap:18px;
  }
  .dime fieldset{
    border:1px solid rgba(215,179,81,.28);
    border-radius:10px;
    padding:14px 12px 4px;
    background:rgba(255,255,255,.03);
  }
  .dime fieldset legend{
    margin-bottom:12px;
    padding:0 2px;
    font-size:18px;
  }
  .dime .ctrl{
    margin-bottom:10px;
    padding-bottom:8px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .dime .ctrl:last-of-type{
    border-bottom:0;
    padding-bottom:2px;
  }
  .dime .ctrl label{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    margin-bottom:2px;
  }
  .dime .ctrl .lab{
    min-width:0;
    font-size:14.2px;
    line-height:1.2;
    white-space:nowrap;
  }
  .dime .ctrl output{
    font-size:18px;
    white-space:nowrap;
  }
  .dime .dime-letter{
    width:22px;
    height:22px;
    margin-right:6px;
    font-size:12px;
    border-radius:4px;
  }
  .dime input[type=range]{
    height:26px;
  }
  .dime input[type=range]::-webkit-slider-runnable-track{
    height:6px;
  }
  .dime input[type=range]::-webkit-slider-thumb{
    width:22px;
    height:22px;
    margin-top:-8px;
  }
  .dime input[type=range]::-moz-range-track,
  .dime input[type=range]::-moz-range-progress{
    height:6px;
  }
  .dime input[type=range]::-moz-range-thumb{
    width:22px;
    height:22px;
  }
  .dime .fine{
    font-size:13.5px;
    line-height:1.5;
    margin-top:10px;
  }
  .dime-stack{
    min-height:196px;
    padding:12px;
    border:1px solid rgba(215,179,81,.20);
    border-radius:10px;
    background:rgba(255,255,255,.02);
  }
  .stack-bar{
    min-height:136px;
  }
  .stack-legend{
    gap:8px 14px;
    margin-top:10px;
    font-size:13.5px;
  }
  .dime-total{
    margin-top:12px;
  }
  .dime-total .num{
    font-size:clamp(30px,10vw,42px);
  }
  .dime-total .gap{
    margin-top:10px;
    font-size:15.5px;
  }
  .dime-cta{
    padding:18px 18px 24px;
  }
}


/* v12 final tweak — make consent/disclaimer copy clearly readable inside consultation card */
.form-card .consent{color:var(--body) !important; opacity:1; font-size:15px; line-height:1.6;}
.form-card .consent a{color:var(--gold-text) !important; font-weight:500; text-decoration-thickness:2px; text-underline-offset:2px;}

/* ============================================================
   v13 — DIME typable amount fields
   Slider and field drive each other; field accepts any exact figure.
   ============================================================ */
.dime-field{
  display:inline-flex;align-items:baseline;gap:1px;
  border-bottom:1px solid rgba(215,179,81,.42);
  padding-bottom:1px;transition:border-color .15s;
}
.dime-field:focus-within{border-bottom-color:var(--champagne)}
.dime-cur{
  font-family:Fraunces,serif;font-size:20px;color:var(--champagne);font-weight:600;line-height:1;
}
.dime-num{
  font-family:Fraunces,serif;font-size:22px;font-weight:600;line-height:1;
  color:var(--champagne);background:transparent;border:0;padding:0 1px;margin:0;
  width:6.2ch;text-align:left;-moz-appearance:textfield;appearance:textfield;
}
.dime-num::-webkit-outer-spin-button,
.dime-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.dime-num:focus{outline:none}
.dime-field:focus-within .dime-cur,
.dime-field:focus-within .dime-num{color:#fff}
.dime .ctrl label{gap:14px}
.dime-hint{
  font-size:14.5px;color:rgba(240,245,250,.72);margin:-4px 0 16px;
}
@media(min-width:901px){
  .dime .dime-num{font-size:19px;width:6ch}
  .dime .dime-cur{font-size:17px}
}
@media(max-width:900px){
  .dime-num{font-size:20px;width:6.4ch}
}

/* ============================================================
   v16 — handshake photo replaces the decorative rings
   Dark-section counterpart to the home hero's side-photo treatment:
   photo sits right, all four edges feather away, copy holds the left.
   ============================================================ */
.hero.hero-handshake{position:relative;overflow:hidden;isolation:isolate}
.hero.hero-handshake .hero-bg{
  position:absolute;top:0;right:0;bottom:0;left:auto;
  width:62%;z-index:-3;overflow:hidden;
  /* ellipse mask feathers every edge so nothing meets a hard border */
  -webkit-mask-image:radial-gradient(ellipse 82% 86% at 64% 50%,
    #000 34%, rgba(0,0,0,.78) 58%, rgba(0,0,0,.34) 78%, transparent 94%);
  mask-image:radial-gradient(ellipse 82% 86% at 64% 50%,
    #000 34%, rgba(0,0,0,.78) 58%, rgba(0,0,0,.34) 78%, transparent 94%);
}
.hero.hero-handshake .hero-bg picture,
.hero.hero-handshake .hero-bg img{width:100%;height:100%;display:block}
.hero.hero-handshake .hero-bg img{
  object-fit:cover;object-position:52% 56%;
  opacity:.94;                       /* brightened; veil below keeps copy at AA */
  filter:saturate(1.06) contrast(1.02) brightness(1.18);
}
/* navy wash weighted left so the copy always sits on solid ground */
.hero.hero-handshake .hero-veil{
  position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:linear-gradient(90deg,
    rgba(30,58,138,.992) 0%,
    rgba(30,58,138,.99) 34%,
    rgba(30,58,138,.986) 47%,
    rgba(30,58,138,.88) 60%,
    rgba(30,58,138,.46) 76%,
    rgba(30,58,138,.18) 100%);
}
/* warm bloom ties the photo's gold to the brand gold */
.hero.hero-handshake .hero-bloom{
  position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(46% 54% at 68% 48%,rgba(215,179,81,.16),transparent 70%);
}
.hero.hero-handshake .hero-grid{position:relative;max-width:min(580px,48%)}

/* thank-you page: no competing element, so give the photo more presence */
.hero.hero-handshake.hero-thanks .hero-bg{width:66%}
.hero.hero-handshake.hero-thanks .hero-bg img{opacity:.96}
.hero.hero-handshake.hero-thanks .wrap{text-align:left}
.hero.hero-handshake.hero-thanks .hero-grid{display:block;max-width:min(560px,48%)}
.hero.hero-handshake.hero-thanks .phone-xl{white-space:nowrap;font-size:clamp(28px,3.4vw,42px)}
.hero.hero-handshake.hero-thanks .btn-row{justify-content:flex-start}

@media(max-width:900px){
  .hero.hero-handshake .hero-grid,
  .hero.hero-handshake.hero-thanks .hero-grid{max-width:none}
  .hero.hero-handshake .hero-bg,
  .hero.hero-handshake.hero-thanks .hero-bg{
    left:0;width:100%;top:44%;
    -webkit-mask-image:radial-gradient(ellipse 96% 88% at 50% 62%,
      #000 30%, rgba(0,0,0,.7) 60%, transparent 92%);
    mask-image:radial-gradient(ellipse 96% 88% at 50% 62%,
      #000 30%, rgba(0,0,0,.7) 60%, transparent 92%);
  }
  .hero.hero-handshake .hero-bg img{object-position:50% 46%;opacity:.72}
  .hero.hero-handshake .hero-veil{
    background:linear-gradient(180deg,
      rgba(30,58,138,.96) 0%,
      rgba(30,58,138,.90) 46%,
      rgba(30,58,138,.66) 68%,
      rgba(30,58,138,.48) 100%);
  }
}
@media(prefers-reduced-motion:reduce){.hero.hero-handshake .hero-bg img{filter:none}}


/* ============================================================
   v18 — thank-you copy structure
   Tightens the vertical rhythm so the block reads as one unit
   instead of five items drifting apart.
   ============================================================ */
.hero-thanks .hero-grid img{margin:0 0 18px!important}
.hero-thanks .kicker{margin:0 0 10px}
.hero-thanks h1{margin:0 0 18px;line-height:1.05}
.hero-thanks .lede{margin:0 0 30px;max-width:46ch}
.hero-thanks .phone-label{
  display:block;font-size:13px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--champagne);margin:0 0 4px;
}
.hero-thanks .phone-xl{margin:0 0 6px;display:inline-block}
.hero-thanks .phone-note{margin:0 0 30px}
.hero-thanks .btn-row{margin:0!important}
.hero-thanks .thanks-rule{
  width:56px;height:2px;background:var(--foil-grad);
  border-radius:2px;margin:0 0 26px;
}

/* ============================================================
   v19 — team heart
   Replaces the founder plate. Hover/tap/focus a face: the rest dims,
   that person is spotlit, and their name appears beneath the heart.
   ============================================================ */
.team-heart{position:relative;width:min(520px,92vw);justify-self:center;margin:0}
.team-heart .th-stage{position:relative;aspect-ratio:1/1;isolation:isolate}
.team-heart .th-base,
.team-heart .th-spot{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:contain;
}
.team-heart .th-base{
  transition:filter .35s ease;
  filter:drop-shadow(0 26px 46px rgba(0,0,0,.45));
}
.team-heart .th-spot{
  opacity:0;pointer-events:none;
  clip-path:circle(var(--r,11.5%) at var(--sx,50%) var(--sy,42%));
  transition:opacity .28s ease,clip-path .32s cubic-bezier(.2,.7,.2,1);
  filter:drop-shadow(0 0 0 transparent);
}
.team-heart.is-active .th-base{filter:brightness(.42) saturate(.55) drop-shadow(0 26px 46px rgba(0,0,0,.45))}
.team-heart.is-active .th-spot{opacity:1}

/* invisible hotspots, positioned by percentage so they scale with the image */
.team-heart .th-face{
  position:absolute;left:var(--x);top:var(--y);
  width:var(--w,17%);height:var(--w,17%);
  transform:translate(-50%,-50%);
  border-radius:50%;background:transparent;border:0;padding:0;margin:0;
  cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.team-heart .th-face:focus-visible{
  outline:2px solid var(--champagne);outline-offset:3px;
}

/* the name, beneath the heart */
.team-heart .th-name{
  text-align:center;margin-top:18px;min-height:64px;
  transition:opacity .22s ease,transform .22s ease;
}
.team-heart .th-name b{
  display:block;font-family:Fraunces,Georgia,serif;font-weight:600;
  font-size:clamp(21px,2.4vw,26px);color:#fff;line-height:1.15;
}
.team-heart .th-name span{
  display:block;font-size:15px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--champagne);margin-top:6px;font-weight:700;
}
.team-heart .th-name.swap{opacity:0;transform:translateY(4px)}
.team-heart .th-hint{
  text-align:center;font-size:14px;color:rgba(240,245,250,.62);margin-top:10px;
}

@media(max-width:980px){
  .team-heart{width:min(440px,92vw)}
}
@media(hover:none){
  .team-heart .th-hint::before{content:"Tap "}
}
@media(hover:hover){
  .team-heart .th-hint::before{content:"Hover or tap "}
}
@media(prefers-reduced-motion:reduce){
  .team-heart .th-base,.team-heart .th-spot,.team-heart .th-name{transition:none}
}

/* founder band: heart replaces the plate; keep the grid balanced */
.founder-grid{grid-template-columns:1fr 1fr;align-items:center}
@media(max-width:980px){.founder-grid{grid-template-columns:1fr}.team-heart{order:-1}}
