/* =============================================================================
   ELIXIUM — BASE DESIGN SYSTEM
   -----------------------------------------------------------------------------
   Every pattern used across the Elixium Membership site. Link this from any new
   page and the design matches automatically — don't re-derive it from a
   description, and don't restyle these classes.

   TOKENS      :root variables — palette, fonts, radii, max width
   TYPE        h1-h5 scale, .lede, .eyebrow
   BUTTONS     .btn + .btn-primary / .btn-dark / .btn-outline / .btn-outline-d / .btn-lg
   LAYOUT      .wrap (max width + gutters), .sec (vertical rhythm),
               .bg-pale / .bg-deep / .bg-mid backgrounds, .sec-head
   PATTERNS    .strip (icon value row)   .why-grid + .why-card (2x2 cards)
               .pricing + .price-card    .biz-grid + .biz-card (image cards)
               .steps + .step (numbered) .portal (inline callout)
               .cond-scroll + .cond-card (scroll row / desktop grid)
               .prov-grid + .prov-card (headshots)  .final (closing CTA)
               .isnt (compliance block)  .faq (details/summary)  .footer
   MOTION      [data-reveal] fades in on scroll — needs the observer snippet
               from the starter page, or elements stay invisible.
   FONTS       TT Norms, bundled in fonts/. Licensed via Elixium's own webfonts.
   ============================================================================= */

:root{
  --green-950:#081c14;--green-925:#0a2016;--green-900:#0c2519;--green-870:#0f2c1f;
  --green-800:#1c4331;--green-750:#22503b;
  --mint:#95d5b3;--mint-200:#bce7d0;
  --pale:#ebf6f2;--pale-2:#f4faf7;--sage:#8fa89a;
  --ink:#0c261b;--ink-muted:#4c6459;
  --line-dark:rgba(255,255,255,.12);--line-mint:rgba(149,213,179,.28);--line-light:rgba(8,28,20,.10);
  --amber:#c98a2b;--amber-bg:rgba(201,138,43,.12);--amber-line:rgba(201,138,43,.35);
  --font-display:'TT Norms',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'TT Norms',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'TT Norms',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --maxw:1180px;--r-lg:26px;--r-md:18px;--r-sm:13px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--green-950);color:#fff;line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-0.02em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 6vw}
@media(min-width:900px){.wrap{padding:0 40px}}
.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;color:var(--mint);display:inline-flex;align-items:center;gap:.6em;margin-bottom:20px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--mint);opacity:.6}
.on-light .eyebrow{color:#2f6a4c}.on-light .eyebrow::before{background:#2f6a4c}

/* NEEDS INPUT flag */
.ni{display:inline-block;font-family:var(--font-mono);font-size:.62rem;letter-spacing:.03em;color:var(--amber);background:var(--amber-bg);border:1px dashed var(--amber-line);border-radius:6px;padding:2px 7px;margin:2px 0;text-transform:none;vertical-align:middle}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-body);font-weight:600;font-size:1rem;padding:15px 28px;border-radius:16px;border:1px solid transparent;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--mint);color:var(--green-950)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(149,213,179,.6)}
.btn-dark{background:var(--green-800);color:#fff}.btn-dark:hover{background:var(--green-750);transform:translateY(-2px)}
.btn-outline{background:transparent;border-color:rgba(8,28,20,.25);color:var(--ink)}.btn-outline:hover{border-color:var(--ink);background:rgba(8,28,20,.04)}
.btn-outline-d{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}.btn-outline-d:hover{background:rgba(255,255,255,.08)}
.btn-lg{padding:18px 36px;font-size:1.06rem}
.cta-row{display:flex;flex-wrap:wrap;gap:14px}
.cta-row.center{justify-content:center}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(8,28,20,.8);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom-color:var(--line-dark)}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 6vw;height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}
@media(min-width:900px){.nav-inner{padding:0 40px}}
.logo{height:26px;color:#fff;display:block}.logo svg{height:100%;width:auto;fill:currentColor}
.nav-links{display:none;align-items:center;gap:32px}
.nav-links a{font-size:.95rem;color:rgba(255,255,255,.82);transition:color .2s}.nav-links a:hover{color:var(--mint)}
.nav-cta{display:none;align-items:center;gap:14px}
.nav-cta .login{font-size:.95rem;color:rgba(255,255,255,.82)}.nav-cta .login:hover{color:#fff}
.nav .btn{padding:11px 20px;border-radius:13px;font-size:.92rem}
@media(min-width:1000px){.nav-links,.nav-cta{display:flex}}
.burger{display:flex;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2px;background:#fff;border-radius:2px}
@media(min-width:1000px){.burger{display:none}}
.mobile-menu{position:fixed;inset:74px 0 auto 0;background:rgba(8,28,20,.97);backdrop-filter:blur(22px);z-index:99;padding:24px 6vw 34px;transform:translateY(-130%);transition:transform .35s;border-bottom:1px solid var(--line-dark)}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a{display:block;padding:14px 0;font-size:1.15rem;border-bottom:1px solid var(--line-dark);color:rgba(255,255,255,.9)}
.mobile-menu .btn{margin-top:22px;width:100%}

/* Hero */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;padding:140px 0 90px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:72% center}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,28,20,.94) 0%,rgba(8,28,20,.8) 32%,rgba(8,28,20,.35) 58%,rgba(8,28,20,.12) 100%)}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,var(--green-950) 1%,transparent 30%)}
.hero-content{position:relative;max-width:620px}
.hero-badge{display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);border:1px solid var(--line-mint);background:rgba(149,213,179,.06);padding:9px 16px;border-radius:100px;margin-bottom:28px}
.hero-badge svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.hero h1{font-size:clamp(2.7rem,6.2vw,4.6rem);font-weight:700;letter-spacing:-0.035em;margin-bottom:24px}
.hero h1 .accent{color:var(--mint)}
.hero .lede{font-size:clamp(1.08rem,1.7vw,1.28rem);color:rgba(255,255,255,.86);max-width:540px;margin-bottom:36px}

/* Sections */
.sec{padding:clamp(70px,9vw,120px) 0;position:relative}
.bg-deep{background:var(--green-950)}.bg-mid{background:var(--green-800)}
.bg-pale{background:var(--pale);color:var(--ink)}
.sec-head{max-width:740px;margin-bottom:52px}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{font-size:clamp(1.9rem,4vw,3rem);font-weight:600;margin-bottom:18px}
.sec-head p{font-size:1.1rem;color:rgba(255,255,255,.75)}
.bg-pale .sec-head p{color:var(--ink-muted)}

/* Value strip */
.value-strip{background:var(--green-900);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.value-strip .row{display:flex;gap:14px;overflow-x:auto;padding:26px 6vw;scrollbar-width:none}
.value-strip .row::-webkit-scrollbar{display:none}
@media(min-width:900px){.value-strip .row{justify-content:space-between;padding:30px 40px;max-width:1180px;margin:0 auto;overflow:visible}}
.vitem{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;min-width:120px}
.vitem svg{width:26px;height:26px;stroke:var(--mint);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.vitem span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.8);line-height:1.4}

/* Why grid */
.why-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:820px){.why-grid{grid-template-columns:1fr 1fr}}
.why-card{padding:34px 32px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line-light);transition:transform .3s,box-shadow .3s}
.why-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px -30px rgba(8,28,20,.4)}
.why-card.dark{background:var(--green-950);border-color:var(--line-dark);color:#fff}
.why-ic{width:48px;height:48px;border-radius:13px;background:var(--pale);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:#1c4331}
.why-card.dark .why-ic{background:rgba(149,213,179,.12);color:var(--mint)}
.why-ic svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.why-card h3{font-size:1.3rem;margin-bottom:10px}
.why-card p{color:var(--ink-muted);font-size:.98rem}
.why-card.dark p{color:rgba(255,255,255,.72)}
.why-card .sub{margin-top:14px;font-size:.92rem;color:var(--ink-muted)}
.why-card.dark .sub{color:rgba(255,255,255,.6)}
.why-card .btn{margin-top:20px}

/* Clarity band */

/* Pricing */
.pricing{background:radial-gradient(120% 120% at 15% 0%,#0f2c1f 0%,var(--green-950) 60%)}
.pricing-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:920px){.pricing-grid{grid-template-columns:1fr 1fr;gap:60px;align-items:center}}
.pricing h2{font-size:clamp(2rem,4.4vw,3.2rem);margin-bottom:22px}
.pricing .lead{color:rgba(255,255,255,.8);margin-bottom:26px;font-size:1.06rem}
.med-callout{background:rgba(255,255,255,.03);border:1px solid var(--line-mint);border-radius:var(--r-md);padding:22px 24px;margin-bottom:24px}
.med-callout .h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.med-callout .h svg{width:22px;height:22px;stroke:var(--mint);fill:none;stroke-width:1.7}
.med-callout .h b{font-family:var(--font-display);font-weight:600;font-size:1.08rem}
.med-callout p{font-size:.95rem;color:rgba(255,255,255,.72)}
.med-fine{font-size:.78rem;color:rgba(255,255,255,.5);margin-bottom:26px}
.checks{list-style:none;display:grid;gap:18px}
.checks li{display:grid;grid-template-columns:auto 1fr;gap:14px}
.checks .ck{width:24px;height:24px;border-radius:50%;background:rgba(149,213,179,.14);display:flex;align-items:center;justify-content:center;margin-top:2px}
.checks .ck svg{width:13px;height:13px;stroke:var(--mint);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.checks b{font-family:var(--font-display);font-weight:600;font-size:1.05rem;display:block;margin-bottom:2px}
.checks span{color:rgba(255,255,255,.66);font-size:.93rem}
.price-card{background:#fff;color:var(--ink);border-radius:var(--r-lg);padding:36px 34px;box-shadow:0 50px 100px -50px rgba(0,0,0,.6)}
.price-card .plabel{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#2f6a4c;margin-bottom:18px}
.price-card .plabel svg{width:18px;height:18px;fill:var(--mint);stroke:#2f6a4c}
.price-card .amt{font-family:var(--font-display);font-weight:800;font-size:3.6rem;letter-spacing:-0.04em;line-height:1;margin-bottom:24px}
.price-card .amt span{font-size:1rem;font-weight:500;color:var(--ink-muted)}
.price-card ul{list-style:none;display:grid;gap:0;margin-bottom:26px}
.price-card li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-light);font-size:.98rem}
.price-card li:last-child{border-bottom:0}
.price-card li .nm{display:flex;flex-direction:column}
.price-card li .nm small{color:var(--ink-muted);font-size:.8rem}
.price-card li .inc{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;color:#2f6a4c;background:var(--pale);padding:4px 8px;border-radius:6px;flex-shrink:0}
.price-card .foot{font-size:.82rem;color:var(--ink-muted);text-align:center;margin-top:16px}

/* Medication cards */
.biz-grid{display:grid;grid-template-columns:1fr;gap:22px;margin-top:8px}
@media(min-width:760px){.biz-grid{grid-template-columns:repeat(3,1fr)}}
.biz-card{background:#fff;border:1px solid var(--line-light);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column}
.biz-card .im{aspect-ratio:4/3;overflow:hidden}
.biz-card .im img{width:100%;height:100%;object-fit:cover}
.biz-card .bd{padding:26px 24px}
.biz-card h3{font-size:1.2rem;margin-bottom:10px}
.biz-card p{color:var(--ink-muted);font-size:.95rem;margin-bottom:12px}
.biz-card p:last-child{margin-bottom:0}
.biz-card .em{color:var(--ink);font-weight:600}
.med-disclaimer{margin-top:26px;font-size:.82rem;color:var(--ink-muted);max-width:900px;border-left:2px solid var(--sage);padding-left:16px;line-height:1.7}
.bg-deep .med-disclaimer{color:rgba(255,255,255,.55);border-color:rgba(149,213,179,.4)}

/* Steps */
.steps{display:grid;grid-template-columns:1fr;gap:14px;margin-top:8px}
@media(min-width:680px){.steps{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{padding:28px 24px;border:1px solid var(--line-dark);border-radius:var(--r-md);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0))}
.step .si{width:44px;height:44px;border-radius:12px;background:rgba(149,213,179,.12);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--mint)}
.step .si svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.step .num{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;color:var(--mint);margin-bottom:8px}
.step h3{font-size:1.16rem;margin-bottom:8px}
.step p{color:rgba(255,255,255,.68);font-size:.93rem}
.portal{margin-top:26px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:28px 30px;border-radius:var(--r-md);background:rgba(149,213,179,.06);border:1px solid var(--line-mint)}
.portal .pic{width:52px;height:52px;border-radius:13px;background:rgba(149,213,179,.14);display:flex;align-items:center;justify-content:center;color:var(--mint);flex-shrink:0}
.portal .pic svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.portal h3{font-size:1.2rem;margin-bottom:6px}
.portal p{color:rgba(255,255,255,.72);font-size:.95rem}

/* Conditions */
.cond-quote{font-style:italic;font-family:var(--font-display);font-size:clamp(1.2rem,2.2vw,1.55rem);color:var(--ink);max-width:760px;margin:0 0 40px;line-height:1.4;border-left:3px solid var(--mint);padding-left:20px}
.cond-scroll{display:flex;gap:18px;overflow-x:auto;padding:4px 6vw 24px;margin:0 -6vw;scroll-snap-type:x mandatory;scrollbar-width:none}
.cond-scroll::-webkit-scrollbar{display:none}
@media(min-width:900px){.cond-scroll{padding-left:0;padding-right:0;margin:0;flex-wrap:nowrap}}
.cond-card{flex:0 0 240px;scroll-snap-align:start;background:#fff;border:1px solid var(--line-light);border-radius:var(--r-md);padding:26px 24px;transition:transform .3s,box-shadow .3s}
.cond-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(8,28,20,.4)}
.cond-ic{width:46px;height:46px;border-radius:12px;background:var(--pale);display:flex;align-items:center;justify-content:center;color:#1c4331;margin-bottom:18px}
.cond-ic svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cond-card h3{font-size:1.12rem;margin-bottom:8px}
.cond-card p{color:var(--ink-muted);font-size:.9rem}
.cond-cta{text-align:center;margin-top:44px}

/* Providers */
.prov-grid{display:grid;grid-template-columns:1fr;gap:22px;margin-top:8px}
@media(min-width:760px){.prov-grid{grid-template-columns:repeat(3,1fr)}}
.prov-card{background:var(--green-950);border:1px solid var(--line-dark);border-radius:var(--r-md);padding:30px 26px;text-align:center}
.avatar{width:96px;height:96px;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--green-950);background:linear-gradient(140deg,var(--mint),#6bbf97);border:3px solid rgba(149,213,179,.3);position:relative}
.avatar .ph{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:.5rem;letter-spacing:.06em;color:var(--mint);background:var(--green-925);border:1px dashed var(--amber-line);color:var(--amber);padding:2px 6px;border-radius:5px;white-space:nowrap}
.prov-card h3{font-size:1.24rem;margin-bottom:4px}
.prov-card .role{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mint);margin-bottom:14px}
.prov-card p{color:rgba(255,255,255,.72);font-size:.93rem}
.prov-note{margin-top:26px;text-align:center}

/* Final CTA */
.final{background:var(--pale);color:var(--ink);text-align:center}
.final h2{font-size:clamp(2rem,4.4vw,3.1rem);margin-bottom:18px}
.final p{color:var(--ink-muted);max-width:600px;margin:0 auto 22px;font-size:1.08rem}
.final .serving{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#2f6a4c;margin-bottom:26px}
.final .sub{margin-top:16px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.final .waitlist{margin-top:22px;font-size:.92rem;color:var(--ink-muted)}
.final .waitlist a{color:#2f6a4c;text-decoration:underline;text-underline-offset:3px}

/* What Elixium is / isn't */
.scope{display:grid;grid-template-columns:1fr;gap:18px;max-width:900px;margin:0 auto}
@media(min-width:720px){.scope{grid-template-columns:1fr 1fr}}
.scope>div{padding:24px 26px;border-radius:var(--r-md)}
.scope .do{background:rgba(149,213,179,.1);border:1px solid var(--line-mint)}
.scope .dont{background:rgba(255,255,255,.03);border:1px solid var(--line-dark)}
.scope h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;color:var(--mint)}
.scope .dont h4{color:#d68f6a}
.scope ul{list-style:none;display:grid;gap:9px}
.scope li{font-size:.94rem;color:rgba(255,255,255,.82);padding-left:20px;position:relative}
.scope li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:2px;background:var(--mint)}
.scope .dont li::before{background:#d68f6a}

/* FAQ */
.faq-list{max-width:820px;margin:0 auto;border-top:1px solid var(--line-light)}
.faq{border-bottom:1px solid var(--line-light)}
.faq summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;position:relative;font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:20px;font-size:1.5rem;font-weight:400;color:#2f6a4c;transition:transform .3s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 44px 26px 0;color:var(--ink-muted);font-size:1rem;max-width:730px}
.faq .a b{color:var(--ink)}

/* Footer */
.footer{background:var(--green-950);border-top:1px solid var(--line-dark);padding:66px 0 40px}
.foot-top{display:grid;grid-template-columns:1fr;gap:40px;margin-bottom:50px}
@media(min-width:760px){.foot-top{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.foot-brand .logo{height:24px;margin-bottom:18px}
.foot-brand p{color:rgba(255,255,255,.6);font-size:.92rem;max-width:300px}
.foot-col h5{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin-bottom:16px;font-weight:400}
.foot-col a{display:block;color:rgba(255,255,255,.66);font-size:.94rem;padding:7px 0}.foot-col a:hover{color:#fff}
.legal{border-top:1px solid var(--line-dark);padding-top:28px;display:grid;gap:16px}
.legal .disc{font-size:.78rem;color:rgba(255,255,255,.44);line-height:1.7;max-width:920px}
.legal .disc b{color:rgba(255,255,255,.68)}
.legal .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;font-size:.8rem;color:rgba(255,255,255,.4)}
.legal .socials{display:flex;gap:12px}
.legal .socials a{width:34px;height:34px;border:1px solid var(--line-dark);border-radius:50%;display:flex;align-items:center;justify-content:center}
.legal .socials a:hover{border-color:var(--mint);color:var(--mint)}
.legal .socials svg{width:15px;height:15px;fill:currentColor}

.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,.8,.3,1),transform .8s cubic-bezier(.16,.8,.3,1)}
.js [data-reveal].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
/* ---- TT NORMS -------------------------------------------------------------
   The brand's own licensed TT Norms webfonts, taken from elixiumhealth.com and
   bundled locally in fonts/ so the page stays self-contained. Available cuts are
   Regular 400, Medium 500, Bold 700 and Medium Italic. Weights 600 and 800 in
   the stylesheet resolve to Bold through normal CSS font matching, so nothing
   is browser-synthesised.
   ------------------------------------------------------------------------- */
@font-face{font-family:'TT Norms';src:url('fonts/TTNorms-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'TT Norms';src:url('fonts/TTNorms-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'TT Norms';src:url('fonts/TTNorms-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'TT Norms';src:url('fonts/TTNorms-MediumItalic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'TT Norms';src:url('fonts/TTNorms-MediumItalic.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}

/* ---- HERO -----------------------------------------------------------------
   Left-anchored rather than centred in the left half: the wrap is widened for
   the hero only, which pulls the whole block ~100px further left on wide
   screens and tapers to nothing on narrow ones, so it can never overflow.
   The block also drops ~50px, the measure tightens to 544px, and the vertical
   rhythm between badge, headline, copy and buttons closes up. Badge, headline,
   copy and buttons all share one left edge.
   ---------------------------------------------------------------------- */
.hero-content{max-width:544px}
.hero-badge{margin-bottom:20px}
.hero h1{margin-bottom:18px}
.hero .lede{max-width:none;margin-bottom:26px}
.hero .cta-row{justify-content:flex-start}
/* .hero is a flex container, so .wrap was sizing to its own content and then
   self-centering via margin:0 auto — that is what made the block sit centred in
   the left half. width:100% makes it fill and honour the real left gutter. */
.hero .wrap{width:100%}
@media(min-width:900px){
  .hero .wrap{max-width:1380px}
  .hero-content{transform:translateY(50px)}
}

/* ---- PROVIDER HEADSHOTS -------------------------------------------------- */
.avatar{width:116px;height:116px;overflow:hidden;background:var(--green-900)}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:50%;display:block}

/* ---- CONDITION ROW ------------------------------------------------------
   Was: a hidden-scrollbar flex row that overflowed its wrap on desktop, so the
   last cards were clipped with no way to reach them. Below 900px it stays a
   snap-scrolling row (correct on a phone); at 900px and up it becomes a grid so
   every card is visible and nothing is cut off.
   ---------------------------------------------------------------------- */
.cond-scroll{-webkit-overflow-scrolling:touch;scroll-padding-left:6vw}
@media(min-width:900px){
  .cond-scroll{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;overflow:visible;padding:4px 0 0;margin:0;scroll-snap-type:none}
  .cond-card{flex:none;width:auto;scroll-snap-align:none}
}

/* ---- BRAND TEXTURE ------------------------------------------------------
   The dark sections pick up the brand's own leaf photography instead of a flat
   fill. (The portal block keeps its icon - no screenshot.)
   ---------------------------------------------------------------------- */
.bg-deep{position:relative;isolation:isolate}
.bg-deep::before{content:"";position:absolute;inset:0;z-index:-1;background:url('images/texture-leaf.jpg') center/cover no-repeat;opacity:.14;mix-blend-mode:luminosity;pointer-events:none}

/* ---- HERO IMAGE FRAMING -------------------------------------------------
   The hero photograph has a chat bubble baked into it on the right. At desktop
   the crop shows it fully; on a narrow phone the window is only ~15% of the
   image width, which sliced the bubble in half. Below 900px the crop moves onto
   the subject instead so no half-bubble is visible.
   ---------------------------------------------------------------------- */
@media(max-width:899px){
  .hero-bg img{object-position:66% center}
}
.wl-pending{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
