/* Freedom RX product catalog pages. Loads after styles.css and reuses its tokens. */

/* ---- breadcrumb ---- */
.crumb-band{background:var(--bg)}
.crumbs{font-size:13.5px;color:var(--muted);padding:14px var(--wrap-pad) 0;font-weight:500;line-height:1.7}
.crumbs a{display:inline-block;padding:10px 2px;margin:-10px -2px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--navy)}
.crumbs span[aria-hidden]{margin:0 6px;color:var(--muted)}
.crumbs span[aria-current]{color:var(--navy);font-weight:600}

/* ---- product hero ---- */
.phero{padding:16px 0 46px;background:linear-gradient(180deg,var(--bg) 0%,#fff 85%)}
.phero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.phero h1{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;letter-spacing:-.03em;color:var(--navy);font-size:clamp(34px,4.6vw,54px);line-height:1.04;margin:10px 0 14px}
.rx-sup{font-size:.42em;font-weight:800;color:var(--red);vertical-align:super;letter-spacing:0;margin-left:2px}
.p-sub{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:14.5px;color:var(--muted);margin:-6px 0 14px}
.p-price{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);font-size:26px;margin:0 0 12px}
.p-price-tbd{font-size:19px}
.p-price-tbd small{display:block;font-family:'Inter',sans-serif;font-weight:500;color:var(--muted);font-size:13.5px;margin-top:3px}
.phero .lead{margin:0 0 20px}
.btn-wide{padding-left:44px;padding-right:44px}

.pf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.pf-chip{display:inline-flex;align-items:center;gap:6px;background:var(--tint-blue);color:var(--navy);border:1px solid var(--line-soft);border-radius:999px;padding:6px 13px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:12.5px;text-decoration:none}
.pf-chip .ico{width:13px;height:13px}
.pf-rx{background:var(--tint-red);color:var(--red-deep);border-color:rgba(225,37,47,.18)}

.phero-visual{display:flex;justify-content:center}
.illo-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);box-shadow:var(--shadow-mid);padding:38px 34px 20px;max-width:340px;width:100%;text-align:center;position:relative;background:radial-gradient(120% 90% at 80% 0%,var(--tint-blue) 0%,#fff 55%)}
.illo-card svg{width:74%;max-height:230px;margin:0 auto;display:block}
.illo-note{font-size:11.5px;color:var(--muted);margin-top:16px;line-height:1.45}

/* ---- section subnav ---- */
.subnav{position:sticky;top:calc(72px + var(--promo-h));z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.subnav .wrap{display:flex;gap:6px;overflow-x:auto;padding-top:0;padding-bottom:0;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:0 0 auto;padding:14px 14px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:13.5px;color:var(--muted);text-decoration:none;border-bottom:2.5px solid transparent}
.subnav a:hover{color:var(--navy);border-bottom-color:var(--red)}

/* ---- overview ---- */
.pband{scroll-margin-top:calc(142px + var(--promo-h))}
/* tighter band rhythm on catalog pages than the marketing homepage */
section.band.pband,section.band.cat-hero{padding-top:clamp(60px,7.5vw,104px);padding-bottom:clamp(60px,7.5vw,104px)}
.pband .sec-head,.cat-hero .sec-head{margin-bottom:clamp(30px,4vw,48px)}
.ov-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
.ov-copy p{margin:0 0 16px}
.facts-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);box-shadow:var(--shadow-soft);padding:28px}
.facts-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);font-size:17px;margin:0 0 14px}
.facts-card ul{list-style:none;margin:0;padding:0}
.facts-card li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ink);margin:0 0 11px;line-height:1.5}
.facts-card .ck{flex:0 0 auto;margin-top:2px}

/* ---- who list ---- */
.who-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px 34px;max-width:960px}
.who-list li{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1px solid var(--line-soft);border-radius:16px;padding:16px 18px;font-size:15.5px;line-height:1.55;box-shadow:var(--shadow-soft)}
.who-list .ck{flex:0 0 auto;margin-top:2px}

/* ---- 4-step how it works ---- */
/* spacing (2026-09-28, Ryan: "fix this spacing"): minmax(0,1fr) so the unbroken support email can no longer
   widen the fourth card (it measured 316px against 238px), the email may break inside its card, padding and
   type are sized for four cards rather than the three-up .steps defaults, and two columns start at 1100px so
   the cards never get squeezed into three-line headings */
.steps-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.steps-4 .step{padding:30px 26px 30px}
.steps-4 .step .num{width:44px;height:44px;font-size:19px;margin-bottom:20px}
.steps-4 .step h3{font-size:19px;margin-bottom:10px}
.steps-4 .step p{font-size:15px;line-height:1.6}
.steps-4 .step a{overflow-wrap:anywhere}
@media(min-width:1101px){.steps-4 .step h3{min-height:2.44em}} /* four across: every heading holds two lines, so the body copy starts level */
@media(max-width:1100px){.steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.steps-4{grid-template-columns:1fr}.steps-4 .step{padding:24px 22px}}

/* ---- formats ---- */
.fmt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;max-width:1000px}
.fmt-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);box-shadow:var(--shadow-soft);padding:26px}
.fmt-card h3{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);font-size:16.5px;margin:0 0 8px}
.fmt-card p{font-size:14.5px;color:var(--ink);margin:0 0 8px;line-height:1.55}
.fmt-note{color:var(--muted);font-size:13px!important}

/* ---- related treatments + social proof ---- */
.rp-head h2{margin-bottom:12px}
.rp-head .eyebrow{margin-bottom:10px}
.rp-sub{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0;max-width:46em}
.rp-pills{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 28px}
.rp-pill{
  display:inline-flex;align-items:center;
  background:#fff;border:1px solid var(--line-soft);border-radius:12px;
  box-shadow:var(--shadow-soft);padding:9px 14px;
  font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap;
}
.rp-pill b{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:14.5px;color:var(--red);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
}
.rp-pill b{margin-right:1px}
.rp-live{
  flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#2E9E63;margin-right:9px;
  animation:rp-pulse 2s ease-out infinite;
}
@keyframes rp-pulse{
  0%{box-shadow:0 0 0 0 rgba(46,158,99,.45)}
  70%{box-shadow:0 0 0 7px rgba(46,158,99,0)}
  100%{box-shadow:0 0 0 0 rgba(46,158,99,0)}
}
@media(prefers-reduced-motion:reduce){.rp-live{animation:none}}
.rp-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px) and (min-width:641px){.rp-grid{grid-template-columns:repeat(3,1fr)}.rp-grid .pop-card:last-child{display:flex}}
@media(max-width:820px) and (min-width:641px){.rp-grid{grid-template-columns:repeat(2,1fr)}.rp-grid .pop-card:last-child{display:none}}
@media(max-width:640px){
  .rp-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:calc(-1 * var(--wrap-pad));margin-right:calc(-1 * var(--wrap-pad));padding-left:var(--wrap-pad);padding-right:var(--wrap-pad)}
  .rp-pills::-webkit-scrollbar{display:none}
}

/* ---- who-for: objections answered ---- */
.obx-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,5.5vw,88px);align-items:start}
.obx-intro{position:sticky;top:calc(96px + var(--promo-h))}
.obx-intro .eyebrow{margin-bottom:12px}
.obx-intro h2{margin-bottom:14px}
.obx-sub{font-size:16px;color:var(--muted);line-height:1.68;margin:0;max-width:30em}
.obx-chip{
  display:inline-flex;align-items:center;gap:8px;margin-top:24px;
  background:#fff;border:1px solid var(--line-soft);border-radius:999px;padding:9px 16px;
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:13px;color:var(--navy);
  box-shadow:var(--shadow-soft);
}
.obx-chip .ico{width:15px;height:15px;color:var(--red);stroke-width:2.2}
.obx-list{display:grid;gap:14px}
.obx-row{background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:22px 24px 20px;box-shadow:var(--shadow-soft)}
.obx-q{
  font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-weight:600;
  font-size:18px;letter-spacing:-.01em;line-height:1.45;color:#4A5A76;text-wrap:pretty;
  padding-bottom:13px;margin-bottom:15px;border-bottom:1px dashed var(--line);
}
.obx-a-head{display:flex;gap:11px;align-items:center;margin-bottom:9px}
.obx-ic{
  flex:0 0 auto;width:27px;height:27px;border-radius:50%;
  background:var(--tint-red);color:var(--red);
  display:flex;align-items:center;justify-content:center;
}
.obx-ic .ico{width:13px;height:13px;stroke-width:2.4}
.obx-a b{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:16px;letter-spacing:-.015em;color:var(--navy)}
.obx-a p{margin:0;font-size:15px;color:var(--body-soft);line-height:1.62;text-wrap:pretty}
.obx-cta{
  display:flex;align-items:center;justify-content:space-between;gap:16px 22px;flex-wrap:wrap;
  background:linear-gradient(150deg,#122B52 0%,var(--navy) 100%);
  border-radius:18px;padding:20px 24px;box-shadow:var(--shadow-mid);
}
.obx-cta span{font-size:14px;color:rgba(232,238,248,.85);line-height:1.55;max-width:30em}
.obx-cta .btn{padding:13px 26px;font-size:14.5px;flex-shrink:0}
@media(max-width:860px){
  .obx-grid{grid-template-columns:1fr;gap:28px}
  .obx-intro{position:static}
  .obx-row{padding:19px 18px 17px}
}

/* ---- safety: split document layout ---- */
.sfx-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(36px,5vw,80px);align-items:start}
.sfx-intro .eyebrow{margin-bottom:12px}
.sfx-intro h2{margin-bottom:12px}
.sfx-sub{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0;max-width:24em}
.sfx-warn{
  background:#fff;border:2px solid var(--red);border-radius:16px;overflow:hidden;
  box-shadow:0 10px 30px rgba(225,37,47,.10);margin-bottom:18px;
}
.sfx-warn-head{
  display:flex;align-items:center;gap:9px;
  background:var(--red);color:#fff;
  font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:11px 20px;
}
.sfx-warn-head .ico{width:16px;height:16px;flex-shrink:0}
.sfx-warn p{margin:0;padding:18px 22px;font-size:15px;color:var(--ink);line-height:1.65}
.sfx-clauses{
  list-style:none;margin:0;padding:0;
  background:#fff;border:1px solid var(--line-soft);border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.sfx-clauses li{display:grid;grid-template-columns:58px 1fr;align-items:start;padding:20px 24px 20px 20px}
.sfx-clauses li + li{border-top:1px solid var(--line-soft)}
.sfx-num{font-family:var(--display);font-weight:800;font-size:14px;letter-spacing:.04em;color:rgba(10,30,60,.32);padding-top:2px}
.sfx-clauses p{margin:0;font-size:14.5px;color:var(--body-soft);line-height:1.65}
@media(max-width:860px){
  .sfx-grid{grid-template-columns:1fr;gap:26px}
  .sfx-clauses li{grid-template-columns:44px 1fr;padding:17px 18px 17px 16px}
  .sfx-warn p{padding:15px 17px}
}

/* ---- homepage treatments grid: full-width compact CTA banner ---- */
.tx-cta{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;column-gap:48px;align-items:start;padding:26px 34px 24px}
.tx-cta .tx-cat{grid-column:1;margin-bottom:10px}
.tx-cta h3{grid-column:1;margin-bottom:6px;font-size:22px}
.tx-cta .tx-tease{grid-column:1;margin-bottom:0}
.tx-cta .tx-foot{grid-column:2;grid-row:1/4;align-self:center;flex-direction:column;align-items:flex-end;gap:10px;border-top:0;padding-top:0;margin-top:0}
@media(max-width:640px){
  .tx-cta{display:flex;flex-direction:column;padding:30px 28px}
  .tx-cta .tx-foot{flex-direction:column;align-items:flex-start;gap:12px;width:100%;border-top:1px solid rgba(232,238,248,.18);padding-top:16px;margin-top:18px}
  .tx-cta .tx-contact{font-size:16px}
}

/* ---- product cards ---- */
.pcard .pf-chips{margin:2px 0 16px}
.pgrid{margin-top:8px}

/* ---- category / index ---- */
section.band.cat-hero{padding-top:clamp(22px,3vw,36px);background:linear-gradient(180deg,var(--bg) 0%,#fff 26%)}
.cat-nav{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:6px}
.cat-nav .pf-chip{padding:9px 17px;font-size:13px}
.cat-nav .pf-chip:hover{background:var(--navy);color:#fff}

/* ---- treatments index: list rows ---- */
section.band.cat-hero.tx-index-hero{padding-top:clamp(26px,3vw,40px);padding-bottom:clamp(36px,3vw,40px)}
.tix-copy .eyebrow{margin-bottom:10px}
.tix-copy h2{font-size:clamp(27px,3.2vw,40px);margin-bottom:10px}
.tix-copy p{font-size:15px;color:var(--muted);line-height:1.6;margin:0;max-width:52em}
.tix-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tix-nav .pf-chip{background:#fff;border-color:var(--line);padding:7px 14px;font-size:12px}
.tix-nav .pf-chip:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.cat-nav .pf-chip{background:#fff;border-color:var(--line)}
.cat-nav .pf-chip:hover{background:var(--navy);border-color:var(--navy);color:#fff}

section.band.pband.plist-sec{padding-top:clamp(24px,3vw,38px);padding-bottom:clamp(24px,3vw,38px);scroll-margin-top:calc(78px + var(--promo-h))}
section.band.pband.plist-sec.plist-last{padding-bottom:clamp(80px,10vw,140px)}
.plist-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:10px}
.plist-eyebrow::before{content:"";width:24px;height:2px;background:var(--red);flex-shrink:0}
.pl-br{display:none}
@media(max-width:700px){.pl-br{display:inline}}
@media(max-width:900px){.pl-br{display:none}}

.plist{display:flex;flex-direction:column}
.prow{
  display:grid;grid-template-columns:104px minmax(0,1fr) 168px 108px;gap:10px 30px;align-items:center;
  padding:22px 6px;border-bottom:1px solid var(--line-soft);text-decoration:none;
  transition:background .18s;
}
.prow:hover{background:linear-gradient(90deg,rgba(238,243,252,0) 0%,rgba(238,243,252,.55) 8%,rgba(238,243,252,.55) 92%,rgba(238,243,252,0) 100%)}
.prow-media{
  width:104px;height:104px;border-radius:18px;overflow:hidden;
  background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 100%);
  border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;
  transition:box-shadow .18s,transform .18s;
}
.prow:hover .prow-media{box-shadow:var(--shadow-mid);transform:translateY(-2px)}
.prow-media img{width:100%;height:100%;object-fit:contain;padding:10px}
.prow-media svg{width:44%;max-height:76px}
.prow-title{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.prow-title h3{margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:21.5px;letter-spacing:-.02em;color:var(--navy)}
.prow-chip{background:var(--tint-blue);color:var(--navy);border:1px solid rgba(10,30,60,.1);border-radius:999px;padding:3.5px 11px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:12px;letter-spacing:.07em;text-transform:uppercase}
.prow-tease{margin:5px 0 0;font-size:15.5px;color:var(--muted);line-height:1.55;max-width:44em}
.prow-price{text-align:right;white-space:nowrap}
.prow-price small{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:15px;color:var(--muted);margin-right:6px}
.prow-price b{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:29px;letter-spacing:-.025em;color:var(--navy)}
.prow-price span{font-size:14px;font-weight:600;color:var(--muted)}
.prow-price-tbd b{font-size:16.5px}
.prow-price-tbd small{display:block;font-style:normal;font-family:'Inter',sans-serif;font-size:12.5px;margin:3px 0 0}
.prow-go{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;color:var(--red);white-space:nowrap;text-align:right}
.prow-go .ar{display:inline-block;transition:transform .18s}
.prow:hover .prow-go .ar{transform:translateX(4px)}
.prow:hover .prow-go{color:var(--red-deep)}
.prow-compact{padding:14px 6px}
.prow-compact .prow-media{width:64px;height:64px;border-radius:12px}
.prow-compact .prow-media svg{max-height:42px}
.prow-compact .prow-title h3{font-size:17.5px}
@media(max-width:900px){
  .prow{grid-template-columns:84px minmax(0,1fr);grid-template-rows:auto auto;padding:24px 2px;gap:8px 20px}
  .prow-media{width:84px;height:84px;grid-row:1/3;border-radius:14px}
  .prow-title h3{font-size:18.5px}
  .prow-price{grid-column:2;text-align:left}
  .prow-price b{font-size:24px}
  .prow-go{grid-column:2;text-align:left}
}

/* ---- buy bar ---- */
.buybar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(255,255,255,.94);
  border-top:1px solid rgba(255,255,255,.55);
  box-shadow:0 -1px 0 rgba(10,30,60,.06),0 -14px 40px rgba(10,30,60,.12);
}
@supports((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .buybar{
    background:linear-gradient(180deg,rgba(255,255,255,.80) 0%,rgba(247,249,253,.68) 100%);
    -webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);
  }
}
.buybar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px;padding-bottom:10px}
.bb-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);font-size:15px;line-height:1.25;min-width:0}
.bb-name small{display:block;font-family:'Inter',sans-serif;font-weight:500;color:var(--muted);font-size:12.5px;margin-top:2px}
.buybar .btn{flex:0 0 auto;white-space:nowrap}
body:has(.buybar){padding-bottom:74px}
.buybar .wrap{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
@media(max-width:560px){.bb-name small{display:none}}

/* ---- draft banner ---- */
.draft-banner{background:repeating-linear-gradient(-45deg,#F0C24A,#F0C24A 14px,#e5b53a 14px,#e5b53a 28px);color:var(--navy);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:13px;text-align:center;padding:10px 16px;letter-spacing:.02em}

/* ---- final CTA variant ---- */
.pfinal .bgimg::after{background:linear-gradient(180deg,rgba(10,30,60,.93) 0%,rgba(10,30,60,.78) 55%,rgba(10,30,60,.93) 100%)}

/* ---- responsive ---- */
@media(max-width:900px){
  .phero{padding:12px 0 44px}
  .phero .wrap{grid-template-columns:1fr;gap:28px}
  .phero-visual{order:-1}
  .illo-card{max-width:250px;padding:22px 22px 14px}
  .illo-card svg{max-height:170px}
  .ov-grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:560px){
  .phero h1{margin:8px 0 12px}
  .phero .lead{margin-bottom:16px}
  .btn-wide{display:block}
  .illo-card{max-width:220px;padding:18px 18px 12px}
  .illo-card svg{max-height:150px}
  .subnav a{padding:12px 11px;font-size:13px}
  .facts-card{padding:22px}
  .fmt-card{padding:22px}
  .who-list{gap:10px}
  .who-list li{padding:14px 15px;font-size:15px}

  .buybar .btn{padding:12px 20px;font-size:14px}
  .bb-name{font-size:13.5px}
  body:has(.buybar){padding-bottom:76px}
}

/* ===== Eden-style PDP hero  ===== */
.eh{padding:22px 0 64px;background:linear-gradient(180deg,var(--bg) 0%,#fff 92%)}
.eh-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:start}
.eh-gallery{position:sticky;top:calc(96px + var(--promo-h))}
.eh-media{position:relative;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 55%,#DCE6F7 100%);border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);height:calc(100vh - 310px);min-height:420px;max-height:700px;overflow:hidden}
.eh-view{display:none;position:absolute;inset:0;align-items:center;justify-content:center}
.eh-view.is-on{display:flex}
.eh-view-illo svg{width:44%;max-height:430px}
.eh-view img{width:100%;height:100%;object-fit:cover}
.eh-view-photo img{object-fit:contain;padding:14px}
.eh-illo-note{text-align:left;font-size:12px;color:var(--muted);line-height:1.5;margin-top:10px;padding:0 2px}
.eh-thumbs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px;margin-top:12px}
.eh-thumb{width:100%;aspect-ratio:4/3;border:1.5px solid var(--line-soft);border-radius:16px;background:#fff;padding:0;overflow:hidden;cursor:pointer;transition:border-color .15s}
.eh-thumb:hover{border-color:rgba(10,30,60,.35)}
.eh-thumb.is-on{border-color:var(--navy);border-width:2px}
.eh-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.eh-thumb-prod{background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 100%)}
.eh-thumb-prod img{object-fit:contain;padding:6px}
.eh-thumb-illo{background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 100%);display:flex;align-items:center;justify-content:center}
.eh-thumb-illo svg{width:46%;max-height:54px}
.eh-stock{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:8px 15px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:12.5px;color:var(--navy);box-shadow:var(--shadow-soft)}
.eh-dot{width:8px;height:8px;border-radius:50%;background:#2E9E5B;animation:eh-pulse 2.2s ease-out infinite}
@keyframes eh-pulse{0%{box-shadow:0 0 0 0 rgba(46,158,91,.45)}70%{box-shadow:0 0 0 6px rgba(46,158,91,0)}100%{box-shadow:0 0 0 0 rgba(46,158,91,0)}}
@media(prefers-reduced-motion:reduce){.eh-dot{animation:none}}
.eh-rail .eyebrow{margin-bottom:6px}
.eh-rail h1{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;letter-spacing:-.03em;color:var(--navy);font-size:clamp(34px,3.6vw,46px);line-height:1.05;margin:0 0 8px}
.eh-sub{font-size:17px;color:var(--muted);line-height:1.62;margin:0 0 22px}
.eh-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 16px}
.eh-opt{background:#fff;border:1.5px solid var(--line-soft);border-radius:16px;padding:14px 12px;text-align:center}
.eh-opt b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:14px;color:var(--navy);margin-bottom:4px}
.eh-opt small{display:block;color:var(--muted);font-size:12px;line-height:1.4}
.eh-price{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;color:var(--navy);margin:2px 0 14px}
.eh-price small{display:block;font-family:'Inter',sans-serif;font-weight:500;font-size:12.5px;color:var(--muted);margin-top:3px}
.eh-cta{display:block;text-align:center;width:100%;padding:16px 24px;font-size:16.5px;margin-bottom:11px}
.eh-cta-sub{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.5;margin:9px 0 20px}
.eh-fine{
  display:flex;align-items:center;gap:16px;
  background:var(--tint-blue);border:1px solid var(--navy);border-radius:18px;box-shadow:var(--shadow-soft);padding:16px 28px;margin:0 0 26px;
}
.ef-stat{
  flex:0 0 auto;text-align:center;padding-right:16px;border-right:1px solid rgba(10,30,60,.12);
}
.ef-stat b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.02em;color:var(--navy);line-height:1}
.ef-stat small{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.ef-copy{font-size:13.5px;color:var(--ink);line-height:1.5}
.ef-copy b{color:var(--navy);font-weight:700}
.ef-copy small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.eh-cta-note{
  font-size:14px;font-weight:600;color:var(--navy);text-align:center;
  line-height:1.55;margin:0 auto 20px;
}
.eh-cta-note .ico{display:inline-block;width:15px;height:15px;color:#2E9E5B;stroke-width:2.2;vertical-align:-2px;margin-right:4px}
.eh-hsa{display:flex;align-items:center;gap:7px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;color:var(--navy);margin:-8px 0 16px}
.eh-hsa .ico{color:var(--red);stroke-width:2;width:18px;height:18px;flex:0 0 auto}
@media(max-width:900px){.ef-br{display:none}}
.eh-card{background:#fff;border:1px solid var(--line-soft);border-radius:20px;box-shadow:var(--shadow-soft);padding:20px 22px;margin-bottom:18px}
.eh-tabs{display:flex;background:var(--bg);border:1px solid var(--line-soft);border-radius:999px;padding:4px;margin-bottom:18px}
.eh-tab{flex:1;border:none;background:transparent;border-radius:999px;padding:13px 12px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;transition:color .15s,background .15s,box-shadow .15s}
.eh-tab:hover{color:var(--navy)}
.eh-tab.is-on{background:#fff;color:var(--navy);box-shadow:var(--shadow-soft)}
.eh-panel{display:none}
.eh-panel.is-on{display:block}
.eh-panel p{font-size:14.5px;color:var(--ink);line-height:1.62;margin:0 0 12px}
.eh-desc-note{font-size:12.5px!important;color:var(--muted)!important;border-top:1px solid var(--line-soft);padding-top:13px;margin-top:16px}
.eh-desc-note a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.eh-desc-note a:hover{color:var(--navy)}
.eh-benefits{list-style:none;margin:0;padding:0 2px;display:flex;flex-direction:column;gap:14px}
.eh-benefits li{display:flex;align-items:flex-start;gap:13px;font-size:15px;color:var(--ink);line-height:1.5}
.eh-b-ic{flex:0 0 auto;margin-top:1px;color:var(--navy)}
.eh-b-ic .ico{width:21px;height:21px;stroke-width:1.7}
.eh-card-head{display:flex;flex-wrap:wrap;gap:10px 26px;border-bottom:1px solid var(--line-soft);padding:2px 2px 14px;margin-bottom:16px}
.eh-card-head span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}
.eh-card-head .ico{width:15px;height:15px;color:var(--navy)}
.eh-faqs{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.eh-legal{background:#fff;border:1px solid var(--line-soft);border-radius:12px;padding:14px 16px;font-size:12.5px;color:var(--muted);line-height:1.6}
@media(max-width:900px){
  .eh{padding-top:12px}
  .eh-fold{min-height:0}
  .eh-grid{grid-template-columns:1fr;gap:26px}
  .eh-gallery{position:relative;top:0}
  .eh-media{height:340px;min-height:0;max-height:none}
  .eh-view-illo svg{width:34%;max-height:250px}
  .eh-thumbs{gap:9px}
  .eh-fold{min-height:0}
}

/* ===== pricing head ===== */
.eh-price-head{margin:0 0 8px}
.eh-price-head h2{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.025em;color:var(--navy);margin:0 0 18px}

/* ===== plan selector  ===== */
.eh-plans{margin:0 0 16px}
.eh-plans-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.eh-plans-label{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.eh-pay-badges{display:flex;align-items:center;gap:6px}
.pay-lead{font-size:12px;color:var(--muted);font-weight:500;margin-right:3px;white-space:nowrap}
@media(max-width:1120px){.pay-lead{display:none}}
.pay-b{display:inline-flex;align-items:center;border-radius:999px;padding:4px 11px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:11px;letter-spacing:-.01em;color:#111;line-height:1}
.pay-affirm{background:#E8E9FF;color:#26254E}
.pay-klarna{background:#FFB3C7}
.pay-afterpay{background:#B2FCE4}
@media(max-width:420px){.eh-pay-badges{display:none}}
.eh-plan{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--line-soft);border-radius:18px;padding:16px 18px;margin-bottom:10px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.eh-plan:hover{border-color:rgba(10,30,60,.3)}
.eh-plan input{position:absolute;opacity:0;pointer-events:none}
.eh-plan-radio{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:2px solid #C6D0E0;background:#fff;transition:border-color .15s;position:relative}
.eh-plan input:checked~.eh-plan-radio{border-color:var(--red)}
.eh-plan input:checked~.eh-plan-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--red)}
.eh-plan:has(input:checked){border-color:var(--navy);border-width:2px;background:var(--tint-blue);box-shadow:var(--shadow-soft);padding:15px 17px}
.eh-plan input:focus-visible~.eh-plan-radio{outline:2px solid var(--red);outline-offset:2px}
.eh-plan-main{flex:1;min-width:0}
.eh-plan-main b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:15.5px;color:var(--navy)}
.eh-plan-main small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.eh-plan-price{text-align:right;flex:0 0 auto}
.eh-plan-price b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--navy)}
.eh-plan-price .mo{font-weight:600;font-size:14px;letter-spacing:0;color:var(--navy);margin-left:2px}
.eh-plan-price small{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--red)}
/* plan rows staged before pricing lands (quantity-priced products): quiet muted line instead of a price */
.eh-plan-tbd small{text-transform:none;letter-spacing:0;font-weight:600;font-size:13px;color:var(--muted);max-width:120px;line-height:1.3}
.eh-plan-badge{position:absolute;top:-9px;right:14px;background:var(--navy);color:#fff;border-radius:999px;padding:3px 11px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}
.eh-plan-badge-gold{background:var(--gold);color:var(--navy)}
/* orbiting beam ring on the Most Chosen badge (mrolympiatickets-style) */
@property --beam{syntax:'<angle>';inherits:false;initial-value:0deg}
.eh-plan-badge:not(.eh-plan-badge-gold)::after{
  content:"";position:absolute;inset:-2.5px;z-index:1;padding:1.5px;border-radius:999px;pointer-events:none;
  background:conic-gradient(from var(--beam),transparent 0deg 318deg,rgba(240,194,74,.55) 334deg,#FFE9B3 349deg,#fff 355deg,rgba(240,194,74,.55) 359deg,transparent 360deg);
  -webkit-mask:linear-gradient(#fff 0 0) content-box exclude,linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box exclude,linear-gradient(#fff 0 0);
  animation:beam 4.5s linear infinite;
}
@keyframes beam{to{--beam:360deg}}
@media(prefers-reduced-motion:reduce){.eh-plan-badge:not(.eh-plan-badge-gold)::after{animation:none;background:none}}

/* ===== buy bar: on eh-hero pages, hidden on desktop until scrolled past the hero ===== */
body:has(.eh) .buybar{transform:translateY(110%);transition:transform .25s ease}
body:has(.eh) .buybar.bb-on{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.buybar{transition:none}}

/* ===== timeline to treatment  ===== */
.timeline{position:relative;padding:0 0 clamp(60px,7.5vw,104px);scroll-margin-top:calc(142px + var(--promo-h))}
.tl-photo{height:clamp(320px,44vw,540px);overflow:hidden}
.tl-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.tl-card{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);box-shadow:var(--shadow-lift);margin-top:clamp(-150px,-11vw,-70px);padding:clamp(28px,4vw,54px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,56px);align-items:start}
.tl-left .eyebrow{margin-bottom:10px}
.tl-left h2{margin-bottom:14px}
.tl-left p{font-size:16.5px;color:var(--muted);line-height:1.65}
.tl-head{display:flex;align-items:center;gap:10px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:14.5px;color:var(--navy);margin-bottom:14px}
.tl-head .ico{width:17px;height:17px;color:var(--red)}
.tl-promise{
  position:relative;overflow:hidden;display:flex;gap:14px;align-items:flex-start;
  background:linear-gradient(150deg,var(--navy-mid) 0%,var(--navy) 100%);
  border-radius:18px;padding:20px;margin-top:26px;max-width:380px;
  box-shadow:var(--shadow-mid);
}
.tl-promise::before{
  content:"";position:absolute;top:-70px;right:-56px;width:180px;height:180px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(238,243,252,.14) 0%,rgba(238,243,252,0) 66%);
}
.tl-promise-ic{
  flex:0 0 auto;width:38px;height:38px;border-radius:12px;
  background:rgba(238,243,252,.13);color:#E8EEF8;
  display:flex;align-items:center;justify-content:center;
}
.tl-promise-ic .ico{width:18px;height:18px}
.tl-promise b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:15px;color:#fff;margin:7px 0 4px;letter-spacing:-.01em}
.tl-promise p{font-size:12.5px;color:rgba(232,238,248,.72);line-height:1.55;margin:0}
.tl-steps{position:relative}
.tl-steps::before{content:"";position:absolute;left:30px;top:26px;bottom:26px;width:2px;background:var(--line-soft)}
.tl-step{border-radius:14px;padding:0 14px;transition:background .15s}
.tl-step[open]{background:linear-gradient(90deg,var(--red) 0,var(--red) 3px,rgba(238,243,252,.55) 3px,rgba(238,243,252,0) 78%)}
.tl-step summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:14px;position:relative;padding:12px 0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:16.5px;color:var(--navy)}
.tl-step summary::-webkit-details-marker{display:none}
.tl-ic{
  flex:0 0 auto;width:34px;height:34px;border-radius:11px;position:relative;z-index:1;
  background:var(--tint-blue);color:var(--navy);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 4px #fff;transition:background .15s,color .15s;
}
.tl-ic .ico{width:16px;height:16px}
.tl-step[open] .tl-ic{background:var(--red);color:#fff}
.tl-t{flex:1;min-width:0}
.tl-step .tog{flex:0 0 auto;font-family:'Inter',sans-serif;font-weight:500;font-size:20px;color:var(--red);transition:transform .15s}
.tl-step[open] .tog{transform:rotate(45deg)}
.tl-body{padding:2px 28px 16px 48px;font-size:15px;color:var(--muted);line-height:1.65}
@media(max-width:900px){
  .tl-card{grid-template-columns:1fr;gap:22px}
  .tl-photo{height:clamp(220px,50vw,340px)}
}

/* ===== who this is for: premium split  ===== */
.who2{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(36px,5vw,72px);align-items:center}
.who2-photos{position:relative;min-height:540px}
.who2-img{position:absolute;object-fit:cover;border-radius:var(--r-lg,24px);box-shadow:var(--shadow-lift)}
.who2-img-a{width:58%;aspect-ratio:3/4;top:0;left:0}
.who2-img-b{width:52%;aspect-ratio:3/3.6;bottom:0;right:0;border:6px solid #fff}
.who2-chip{position:absolute;left:32%;bottom:6%;display:inline-flex;align-items:center;gap:9px;background:#fff;border-radius:999px;padding:11px 18px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:13.5px;color:var(--navy);box-shadow:var(--shadow-mid)}
.who2-copy .eyebrow{margin-bottom:12px}
.who2-lead{font-size:17px;color:var(--muted);line-height:1.65;margin:14px 0 10px;max-width:34em}
.who2-rows{margin-top:8px}
.who2-row{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line-soft)}
.who2-row:last-child{border-bottom:none}
.who2-ic{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--tint-blue);display:flex;align-items:center;justify-content:center;color:var(--navy)}
.who2-ic .ico{width:20px;height:20px}
.who2-ic-red{background:var(--tint-red);color:var(--red-deep)}
.who2-row b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:17px;color:var(--navy);margin-bottom:4px}
.who2-row p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0;max-width:36em}
@media(max-width:900px){
  .who2{grid-template-columns:1fr;gap:34px}
  .who2-photos{min-height:0;height:340px;max-width:440px}
  .who2-chip{left:8%;bottom:10px}
}

/* ---- mobile polish (audited 2026-09-03) ---- */
.sfx-single li{grid-template-columns:1fr}
.sfx-single .sfx-num{display:none}
.tx-price{line-height:1.15}
@media(max-width:640px){
  section.band.pband,section.band.cat-hero{padding-top:44px;padding-bottom:44px}
  .timeline{padding-bottom:44px}
  section.band.pband.plist-sec{padding-top:36px;padding-bottom:36px}
  .tl-step{padding:0 8px}
  .tl-body{padding:2px 8px 16px 48px}
  .pcard .tx-price{font-size:24px;white-space:nowrap}
  .tix-nav{gap:10px}
  .tix-nav .pf-chip{min-height:44px;display:inline-flex;align-items:center;padding:10px 16px}
}
@media(max-width:560px){
  .prow{padding:18px 2px}
  .plist .prow:last-child{border-bottom:0}
  .prow-tease{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
}

/* required lab work selector: reuses plan-row styling with a quieter price */
.eh-labs{margin-bottom:20px}
/* lab work chooser (2026-09-24): four ways to get the blood work done, one choice card
   each; the selected card expands to show its detail line and any link */
.eh-plans-note{font-size:12.5px;color:var(--muted)}
/* "No membership fees" beside the plan label (2026-09-28): a small pill that drops to its own line when the row is tight */
.eh-nofee{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:12px;color:var(--navy);background:var(--tint-blue);border-radius:999px;padding:4px 10px 4px 8px}
.eh-nofee .ico{width:13px;height:13px;color:var(--red);stroke-width:2.4}
.eh-plans-head:has(.eh-nofee){flex-wrap:wrap;row-gap:6px;margin-bottom:14px} /* room for the "Most chosen" badge on the first plan */
.lab-opt{position:relative;display:flex;align-items:flex-start;gap:14px;background:#fff;border:1.5px solid var(--line-soft);border-radius:18px;padding:13px 16px;margin-bottom:8px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.lab-opt:hover{border-color:rgba(10,30,60,.3)}
.lab-opt input{position:absolute;opacity:0;pointer-events:none}
.lab-ic{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.lab-ic svg{width:21px;height:21px}
.lab-main{flex:1;min-width:0;padding-top:1px}
.lab-main b{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:15.5px;line-height:1.25;color:var(--navy)}
.lab-main small{display:block;font-size:12.5px;line-height:1.4;color:var(--muted);margin-top:2px}
.lab-main small:empty{display:none}
.lab-main small .eh-lab-link{position:relative;z-index:1}
.lab-dot{color:rgba(10,30,60,.35)}
.lab-more{display:none;margin-top:8px;padding-top:8px;border-top:1px solid rgba(10,30,60,.1);font-size:13.5px;line-height:1.55;color:var(--ink)}
.lab-price{flex:0 0 auto;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--navy);padding-top:9px}
.lab-opt:has(input:checked){border-color:var(--navy);border-width:2px;background:var(--tint-blue);box-shadow:var(--shadow-soft);padding:12px 15px}
.lab-opt:has(input:checked) .lab-ic{background:var(--navy);color:#fff}
.lab-opt:has(input:checked) .lab-more{display:block}
.lab-opt:has(input:focus-visible){outline:2px solid var(--red);outline-offset:2px}
/* phones (Ryan, 2026-09-24: "use the icon and the title, then when they select one it adds
   the smaller text"): a collapsed card is icon + headline + price, centred; the selected
   card adds the sub line (with the Quest link) and the description */
@media(max-width:700px){
  .lab-opt{gap:11px;padding:12px 13px;align-items:center}
  .lab-opt:has(input:checked){padding:11px 12px;align-items:flex-start}
  .lab-ic{width:38px;height:38px}
  .lab-ic svg{width:19px;height:19px}
  .lab-main{padding-top:0}
  .lab-main b{font-size:14.5px}
  .lab-main small{display:none}
  .lab-opt:has(input:checked) .lab-main small{display:block}
  .lab-price{font-size:17px;padding-top:0}
  .lab-opt:has(input:checked) .lab-price{padding-top:7px}
}
/* an optional link under a lab option's note (the Quest location finder, 2026-09-24) */
.eh-lab-link{display:inline-block;font-weight:700;color:var(--red);text-decoration:underline;text-underline-offset:2px}
.eh-lab-link:hover{color:var(--red-deep)}

/* gallery video views: click-to-play YouTube embed swapped into the main window */
.eh-view-video{background:#0A1E3C}
.eh-video-slot{position:absolute;inset:0}
.eh-video-slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.eh-thumb-video{position:relative;background:#0A1E3C}
.eh-thumb-video img{opacity:.85}
.eh-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.eh-play svg{width:34px;height:34px;fill:#fff;background:rgba(225,37,47,.92);border-radius:50%;padding:8px;box-shadow:0 4px 14px rgba(10,30,60,.4)}
.eh-thumb-video:hover .eh-play svg{background:var(--red-deep,#C11B24)}

/* ===== order page: one-page storefront (2026-09) ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* hero */
.oh{
  padding:clamp(40px,5vw,72px) 0 clamp(36px,4vw,56px);overflow:hidden;
  background:
    radial-gradient(46% 52% at 78% 28%,rgba(238,243,252,.85) 0%,rgba(238,243,252,0) 100%),
    linear-gradient(180deg,var(--bg) 0%,#fff 85%);
}
.oh-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(36px,5vw,72px);align-items:center}
.oh h1{font-size:clamp(2.3rem,4.4vw,3.6rem);margin-bottom:22px;max-width:11em}
.oh-checks{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:12px}
.oh-checks li{display:flex;align-items:center;gap:12px;font-size:16.5px;font-weight:600;color:var(--ink)}
.oh-ck{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--tint-red);color:var(--red);display:flex;align-items:center;justify-content:center}
.oh-ck .ico{width:13px;height:13px;stroke-width:2.4}
.oh-cta{display:inline-flex;align-items:center;gap:8px;padding:16px 30px}
.oh-cta .ico{width:15px;height:15px;stroke-width:2.4}
.oh-fine{font-size:13px;color:var(--muted);margin:14px 0 0}
.oh-visual{display:flex;flex-direction:column;align-items:center;gap:20px}
.oh-blob{
  position:relative;width:min(420px,100%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 34% 28%,var(--navy-mid) 0%,var(--navy) 62%,#07162B 100%);
  box-shadow:var(--shadow-lift),inset 0 1px 0 rgba(255,255,255,.12);
}
.oh-blob::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(10,30,60,.08);pointer-events:none}
.oh-r{position:absolute;filter:drop-shadow(0 18px 26px rgba(4,12,26,.45));object-fit:contain}
.oh-r1{width:42%;left:12%;top:9%;transform:rotate(-9deg)}
.oh-r2{width:42%;right:14%;top:13%;transform:rotate(8deg)}
.oh-r3{width:46%;left:27%;bottom:3%;transform:rotate(-3deg)}
.oh-seals{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}
.oh-seal{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;
  width:96px;height:96px;border-radius:50%;background:#fff;border:1px solid var(--line-soft);box-shadow:var(--shadow-mid);
  text-decoration:none;color:var(--navy);
}
.oh-seal .ico{width:22px;height:22px;color:var(--red);stroke-width:1.7}
.oh-seal b{font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;line-height:1.25}
.oh-seal-img{padding:6px;background:#fff}
.oh-seal-img img{width:72px;height:auto}
@media(max-width:900px){
  .oh{padding-top:24px}
  .oh-grid{grid-template-columns:1fr;gap:30px}
  .oh h1{max-width:none}
  .oh-visual{order:-1}
  .oh-blob{width:min(300px,78vw)}
  .oh-seal{width:84px;height:84px}
  .oh-seal-img img{width:62px}
}

/* trust strip */
.otrust{background:var(--tint-blue);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.otrust .wrap{display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}
.otrust span{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:14.5px;color:var(--navy);white-space:nowrap}
.otrust .ico{width:20px;height:20px;color:var(--red);stroke-width:1.7}
@media(max-width:760px){.otrust .wrap{justify-content:flex-start;gap:10px 24px}.otrust span{font-size:13.5px}}

/* three steps */
.osteps{padding:clamp(22px,3vw,34px) 0 clamp(10px,2vw,18px)}
.ostep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ostep{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px}
.os-ic{flex:0 0 auto;width:36px;height:36px;border-radius:11px;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center}
.os-ic .ico{width:17px;height:17px}
.ostep small{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:3px}
.ostep b{display:block;font-family:var(--display);font-weight:800;font-size:15.5px;letter-spacing:-.015em;color:var(--navy);line-height:1.25}
.ostep p{margin:6px 0 0;font-size:13.5px;color:var(--muted);line-height:1.5}
@media(max-width:860px){.ostep-grid{grid-template-columns:1fr}}

/* order section */
.oorder{padding:clamp(18px,2.5vw,28px) 0 clamp(56px,7vw,96px);background:linear-gradient(180deg,#fff 0%,var(--bg) 12%,var(--bg) 100%)}
.ofilter{position:sticky;top:calc(72px + var(--promo-h));z-index:40;padding:10px 0;background:rgba(247,249,253,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.ofilter .wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:10px}
.of-search{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:0 14px;height:48px}
.of-search .ico{width:17px;height:17px;color:var(--muted);flex-shrink:0}
.of-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--ink)}
.of-search input::placeholder{color:var(--muted)}
.of-search:focus-within{border-color:var(--navy);box-shadow:var(--shadow-soft)}
.of-select,.oc-select{position:relative;display:block}
.of-select select,.oc-select select{
  width:100%;height:48px;appearance:none;-webkit-appearance:none;
  background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:0 40px 0 14px;
  font-family:var(--display);font-weight:700;font-size:14px;color:var(--navy);cursor:pointer;
}
.of-select select:focus,.oc-select select:focus{outline:0;border-color:var(--navy);box-shadow:var(--shadow-soft)}
.of-select .ico,.oc-select .ico{position:absolute;right:14px;top:50%;width:15px;height:15px;transform:translateY(-50%) rotate(90deg);color:var(--muted);pointer-events:none;stroke-width:2.2}
.of-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px 24px;flex-wrap:wrap;padding:18px 2px 6px;font-size:13px;color:var(--muted)}
.of-meta #of-count{font-weight:600}
.ogroup{padding:22px 0 8px}
/* group header (reimagined 2026-09-25, Ryan: "reimagine this layout, make it better"): title + count chip and
   the blurb on the left, the learn guide as a card on the right, one rule under the whole header. The card is
   emitted after the grid ("on mobile, move the guide button below the treatments so they can shop first then
   get resources"): `.og-wrap` is a CSS grid that seats it beside the title on desktop and leaves it after the
   cards at 900px and below. Shared with the treatments index (`.og-head-lg`, h2). Categories without a guide
   have no card and the second column collapses. */
.og-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head guide" "rule rule" "tag tag" "grid grid" "safety safety";column-gap:32px;align-items:end}
.og-wrap[hidden]{display:none}
.og-wrap:not(:has(.og-guide)){grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "rule" "tag" "grid" "safety"}
.og-wrap::before{content:"";grid-area:rule;border-top:2px solid var(--navy);margin:16px 0 18px}
.og-head{grid-area:head;min-width:0}
.og-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.og-head h3,.og-head h2{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(20px,2.2vw,25px);letter-spacing:-.02em;color:var(--navy)}
.og-head-lg h2{font-size:clamp(25px,2.5vw,32px)}
.og-count{display:inline-block;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:var(--tint-blue);border-radius:999px;padding:4px 10px;white-space:nowrap;transform:translateY(-3px)}
.og-intro{font-size:14.5px;line-height:1.6;color:var(--muted);max-width:60em;margin:6px 0 0;text-wrap:pretty}
.og-head-lg .og-intro{font-size:15px;max-width:70em}
.og-tag{grid-area:tag;justify-self:start}
.ogrid,.plist{grid-area:grid}
/* the guide is a slim pill at the blurb's level, not a boxed card (Ryan, later on 2026-09-25: "the guide is
   competing with the category title, fix that") */
.og-guide{grid-area:guide;justify-self:end;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 13px 7px 11px;border:1px solid rgba(10,30,60,.16);border-radius:999px;background:transparent;color:var(--navy);text-decoration:none;font-family:var(--display);font-weight:700;font-size:13.5px;line-height:1.2;transition:border-color .18s ease,background .18s ease}
.og-guide:hover{border-color:var(--navy);background:#fff}
.og-guide-ic{display:inline-flex;color:var(--red)}
.og-guide-ic svg{width:16px;height:16px}
.og-guide-k{color:var(--red)}
.og-guide-ar{flex:0 0 auto;width:13px;height:13px;stroke-width:2.4;color:var(--muted);margin-left:1px;transition:transform .18s ease,color .18s ease}
.og-guide:hover .og-guide-ar{transform:translateX(3px);color:var(--red)}
@media(max-width:900px){
  .og-wrap,.og-wrap:not(:has(.og-guide)){grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "rule" "tag" "grid" "safety" "guide";column-gap:0}
  .og-guide{display:block;max-width:100%;justify-self:center;margin-top:18px;white-space:normal;text-align:center;line-height:1.45;padding:9px 16px}
  .og-guide-ic{display:inline;vertical-align:-3px;margin-right:3px}
  .og-guide-ic svg{display:inline;width:15px;height:15px}
  .og-guide-ar{display:inline;vertical-align:-2px;margin-left:2px}
}
@media(max-width:700px){.og-wrap::before{margin:14px 0 14px}.og-intro{font-size:13.5px;margin-top:4px}.og-guide{margin-top:14px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.og-guide,.og-guide-ar{transition:none}.og-guide:hover .og-guide-ar{transform:none}}
.og-tag{display:inline-block;background:var(--tint-blue);color:var(--navy);border:1px solid rgba(10,30,60,.1);border-radius:6px;padding:4px 10px;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.ogrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ocard{
  display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--line-soft);border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-soft);transition:transform .18s,box-shadow .18s,border-color .18s;
}
.ocard:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid);border-color:rgba(10,30,60,.2)}
.ocard.is-sel{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy),var(--shadow-mid)}
.oc-media{position:relative;display:flex;align-items:center;justify-content:center;height:180px;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 55%,#DCE6F7 100%);border-bottom:1px solid var(--line-soft)}
.oc-media img{max-height:84%;max-width:64%;width:auto;height:auto;object-fit:contain;transition:transform .2s}
.oc-media svg{width:40%;max-height:110px}
.ocard:hover .oc-media img{transform:scale(1.04)}
.oc-tag{position:absolute;left:12px;bottom:12px;background:#fff;color:var(--navy);border:1px solid var(--line-soft);border-radius:6px;padding:3px 8px;font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.oc-body{display:flex;flex-direction:column;padding:14px 14px 16px;flex:1}
.oc-brand{display:inline-block;width:fit-content;background:var(--tint-red);color:var(--red-deep);border-radius:6px;padding:3px 8px;font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.04em;margin-bottom:8px}
.oc-body h4{margin:0 0 4px;font-family:var(--display);font-weight:800;font-size:16.5px;letter-spacing:-.015em;color:var(--navy);line-height:1.2}
.oc-body h4 a{text-decoration:none;color:inherit}
.oc-body h4 a:hover{color:var(--red)}
.oc-price{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.025em;color:var(--navy);margin:0 0 12px}
.oc-price small{font-family:var(--serif);font-style:italic;font-weight:600;font-size:13px;color:var(--muted);letter-spacing:0;margin-right:4px}
.oc-price span{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--muted);letter-spacing:0}
.oc-select{margin:auto 0 10px}
.oc-select select{height:42px;font-size:12.5px;padding-left:12px;border-radius:10px;text-overflow:ellipsis}
/* the selected plan's saving against paying monthly, stated under the select (2026-09-24) */
.oc-save{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--red-deep);margin:-4px 0 10px;text-align:center}
.oc-save[hidden]{display:none}
.oc-cta{display:block;background:var(--navy);color:#fff;padding:12px 14px;font-size:14px;border-radius:12px}
.oc-cta:hover{background:var(--navy-mid);transform:translateY(-1px);box-shadow:var(--shadow-mid)}
.oc-more{display:block;text-align:center;margin-top:10px;font-family:var(--display);font-weight:700;font-size:12.5px;color:var(--muted);text-decoration:none}
.oc-more:hover{color:var(--red)}
/* Details + Safety info under the button (2026-09-28): every priced card links straight to its treatment's safety section */
.oc-links{position:relative;display:flex;justify-content:center;align-items:baseline;gap:6px 16px;flex-wrap:wrap;margin-top:10px} /* positioned, so the sr-only text inside stays inside the phone rail instead of widening the page */
.oc-links .oc-more{margin-top:0}
.oc-safety{font-family:var(--display);font-weight:700;font-size:12.5px;color:var(--muted);text-decoration:underline;text-decoration-color:rgba(92,107,132,.4);text-underline-offset:3px}
.oc-safety:hover{color:var(--red);text-decoration-color:currentColor}
/* the category's safety summary under its cards, with links to each treatment's full safety section */
.og-safety{grid-area:safety;margin:18px 0 0;padding:13px 16px;border:1px solid var(--line-soft);border-radius:14px;background:#fff;font-size:13px;line-height:1.6;color:var(--muted)}
.og-safety p{margin:0}
/* closed: the key warning and a More toggle; open: the rest of the summary and the links (native details) */
.og-safety-t{display:flex;gap:10px;align-items:flex-start;list-style:none;cursor:pointer;text-wrap:pretty;border-radius:8px}
.og-safety-t::-webkit-details-marker{display:none}
.og-safety-t::marker{content:""}
.og-safety-t:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.og-safety-t .ico{flex:0 0 auto;width:17px;height:17px;margin-top:2px;color:var(--navy)}
.og-safety-t b{color:var(--navy);font-weight:700}
.og-safety-tog{display:inline-flex;align-items:center;gap:3px;margin-left:4px;font-family:var(--display);font-weight:700;font-size:12.5px;color:var(--navy);white-space:nowrap;text-decoration:underline;text-decoration-color:rgba(10,30,60,.3);text-underline-offset:3px}
.og-safety-tog .ico{width:12px;height:12px;margin:0;stroke-width:2.6;color:var(--red);transform:rotate(90deg);transition:transform .18s}
.og-safety-t:hover .og-safety-tog{color:var(--red);text-decoration-color:currentColor}
.og-nw{white-space:nowrap} /* keeps "FDA-approved." from splitting at its hyphen */
.og-tog-less{display:none}
.og-safety[open] .og-tog-more{display:none}
.og-safety[open] .og-tog-less{display:inline}
.og-safety[open] .og-safety-tog .ico{transform:rotate(-90deg)}
.og-safety-body{padding:8px 0 0 27px}
.og-safety-links{margin-top:7px !important;font-size:12.5px}
.og-safety-links a{color:var(--navy);font-weight:600;text-decoration:underline;text-decoration-color:rgba(10,30,60,.3);text-underline-offset:3px}
.og-safety-links a:hover{color:var(--red);text-decoration-color:currentColor}
.og-safety-dot{color:var(--muted)}
.pgrid + .og-safety{margin-top:22px}
@media(max-width:700px){.og-safety{margin-top:12px;padding:12px 13px;font-size:12.5px}.og-safety-body{padding-left:0}}
@media(prefers-reduced-motion:reduce){.og-safety-tog .ico{transition:none}}
.of-empty{background:#fff;border:1.5px dashed var(--line);border-radius:18px;padding:36px 24px;text-align:center;margin-top:20px}
.of-empty b{display:block;font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);margin-bottom:6px}
.of-empty p{margin:0;font-size:14.5px;color:var(--muted)}
.of-empty button{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--red);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:1100px){.ogrid{grid-template-columns:repeat(3,1fr)}}
.of-chips{display:none}
@media(max-width:860px){
  .ofilter .wrap{grid-template-columns:1fr}
  .ogrid{grid-template-columns:repeat(2,1fr);gap:12px}
  .oc-media{height:150px}
}
@media(max-width:480px){
  .ogrid{grid-template-columns:1fr 1fr;gap:10px}
  .oc-body{padding:12px 12px 14px}
  .oc-body h4{font-size:15px}
  .oc-price{font-size:19px}
  .oc-media{height:128px}
  .oc-select select{font-size:12px;padding-left:10px}
  .oc-cta{padding:11px 10px;font-size:13px}
  .oc-brand-cat{display:none}
}
/* Phones (2026-09-24): the filter bar was pinned at 72px and slid under the 36px promo bar,
   and its two rows of selects took 127px. It now keeps the header offset, runs as one row
   (search + a compact sort) over a side-swiping category chip strip, and each category's
   cards become a snap-scrolling rail instead of a two-up grid, so the sticky stack is
   shorter and the page is far less tall. */
@media(max-width:700px){
  .ofilter{padding:8px 0}
  .ofilter .wrap{grid-template-columns:1fr;gap:8px}
  .of-search{grid-column:1/-1;height:44px;padding:0 12px}
  .of-select.of-cat,.of-select.of-sort{display:none}
  .of-chips{display:flex;grid-column:1/-1;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1 * var(--wrap-pad));padding:2px var(--wrap-pad)}
  .of-chips::-webkit-scrollbar{display:none}
  .of-chip{flex:0 0 auto;height:34px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-family:var(--display);font-weight:700;font-size:13px;color:var(--navy);white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
  .of-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
  .of-meta{padding-top:14px}
  .ogrid{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-left:var(--wrap-pad);-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1 * var(--wrap-pad));padding:4px var(--wrap-pad) 10px}
  .ogrid::-webkit-scrollbar{display:none}
  .ocard{flex:0 0 min(74%,290px);scroll-snap-align:start}
  .ocard:hover{transform:none}
  .oc-media{height:150px}
  .oc-body h4{font-size:16px}
  .oc-price{font-size:21px}
}

/* credentials band (the reviews slot, kept honest) */
.ocred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ocred{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:24px 22px;box-shadow:var(--shadow-soft);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s}
a.ocred:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid)}
.ocred-ic{width:44px;height:44px;border-radius:13px;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center}
.ocred-ic .ico{width:20px;height:20px}
.ocred img{height:56px;width:auto}
.ocred b{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.015em;color:var(--navy)}
.ocred p{margin:0;font-size:14px;color:var(--muted);line-height:1.55}
@media(max-width:960px){.ocred-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.ocred-grid{grid-template-columns:1fr}}

/* sticky selection bar */
.obar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(255,255,255,.94);border-top:1px solid rgba(255,255,255,.55);
  box-shadow:0 -1px 0 rgba(10,30,60,.06),0 -14px 40px rgba(10,30,60,.12);
  transform:translateY(110%);transition:transform .25s ease;
}
@supports((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .obar{background:linear-gradient(180deg,rgba(255,255,255,.82) 0%,rgba(247,249,253,.7) 100%);-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5)}
}
.obar.ob-on{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.obar{transition:none}}
.obar .wrap{display:flex;align-items:center;gap:16px;padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.ob-pill{display:inline-flex;align-items:center;gap:8px;background:var(--tint-blue);color:var(--navy);border-radius:999px;padding:9px 14px;font-family:var(--display);font-weight:800;font-size:13px;white-space:nowrap;flex-shrink:0}
.ob-pill .ico{width:15px;height:15px;stroke-width:2}
.ob-mid{flex:1;min-width:0}
.ob-mid b{display:block;font-family:var(--display);font-weight:800;font-size:15px;color:var(--navy);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-mid small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-right{display:flex;align-items:center;gap:16px;flex-shrink:0}
.ob-price{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--navy)}
.ob-price:empty{display:none}
.obar .btn{padding:13px 24px;font-size:14.5px}
body:has(.obar.ob-on){padding-bottom:78px}
@media(max-width:640px){
  .ob-pill,.ob-mid small{display:none}
  .obar .btn{padding:12px 18px;font-size:13.5px}
  .ob-price{font-size:18px}
}

/* ===== categories index: browse by category (2026-09) ===== */
.cats{padding:clamp(28px,4vw,52px) 0 clamp(56px,7vw,96px);background:linear-gradient(180deg,var(--bg) 0%,#fff 22%)}
.cats-head{max-width:720px;margin-bottom:22px}
.cats-head .eyebrow{margin-bottom:10px}
.cats-head h1{font-size:clamp(2rem,3.8vw,3rem);margin-bottom:10px}
.cats-head p{font-size:16px;color:var(--muted);line-height:1.6;margin:0;text-wrap:pretty}
.cats-head p b{color:var(--navy);font-weight:700}
.cats-search{display:flex;align-items:center;gap:10px;max-width:460px;margin:0 auto 30px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:0 18px;height:50px;box-shadow:var(--shadow-soft)}
.cats-search .ico{width:17px;height:17px;color:var(--muted);flex-shrink:0}
.cats-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--ink)}
.cats-search input::placeholder{color:var(--muted)}
.cats-search:focus-within{border-color:var(--navy);box-shadow:var(--shadow-mid)}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ccard{
  display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:18px;align-items:center;
  background:#fff;border:1.5px solid var(--line-soft);border-radius:18px;padding:16px 18px 16px 16px;
  text-decoration:none;color:inherit;box-shadow:var(--shadow-soft);
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.ccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid);border-color:rgba(10,30,60,.22)}
.cc-media{width:96px;height:96px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 55%,#DCE6F7 100%);border:1px solid var(--line-soft)}
.cc-media img{max-width:70%;max-height:82%;width:auto;height:auto;object-fit:contain;transition:transform .2s}
.cc-media svg{width:44%;max-height:64px}
.ccard:hover .cc-media img{transform:scale(1.05)}
.cc-body{display:flex;flex-direction:column;min-width:0}
.cc-body b{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);line-height:1.2;text-wrap:balance}
.cc-body small{font-size:13px;color:var(--muted);margin-top:4px;font-weight:500}
.cc-names{font-size:12.5px;color:var(--muted);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
.cc-arrow{width:32px;height:32px;border-radius:50%;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,transform .18s}
.cc-arrow .ico{width:15px;height:15px;stroke-width:2.2}
.ccard:hover .cc-arrow{background:var(--red);color:#fff;transform:translateX(3px)}
.cats-empty{text-align:center;color:var(--muted);font-size:15px;padding:30px 0 6px;margin:0}
.cats-empty button{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--red);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cats-foot{text-align:center;font-size:14.5px;color:var(--muted);margin:34px auto 0;max-width:40em}
.cats-foot a{color:var(--navy);font-weight:700}
@media(max-width:1000px){.cgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){
  .cgrid{grid-template-columns:1fr;gap:12px}
  .ccard{grid-template-columns:78px minmax(0,1fr) auto;gap:14px;padding:14px}
  .cc-media{width:78px;height:78px;border-radius:12px}
  .cc-body b{font-size:16px}
  .cats-search{height:46px}
}
.cc-from{white-space:nowrap}

/* ===== bundles: several treatments at one price (2026-09) ===== */
/* composed cluster of component renders (used until a real bundle image exists) */
.bcl{position:relative;display:block;width:100%;height:100%}
.bcl img{position:absolute;height:78%;width:auto;max-width:60%;max-height:none;object-fit:contain;padding:0;filter:drop-shadow(0 10px 18px rgba(10,30,60,.18))}
.bcl-1 img{left:50%;top:10%;transform:translateX(-50%)}
.bcl-2 img:nth-child(1){left:14%;top:9%;transform:rotate(-7deg)}
.bcl-2 img:nth-child(2){right:14%;top:14%;transform:rotate(6deg)}
.bcl-3 img{height:70%}
.bcl-3 img:nth-child(1){left:5%;top:12%;transform:rotate(-8deg)}
.bcl-3 img:nth-child(2){left:50%;top:6%;height:76%;transform:translateX(-50%)}
.bcl-3 img:nth-child(3){right:5%;top:14%;transform:rotate(8deg)}
.bcl-4 img{height:58%}
.bcl-4 img:nth-child(1){left:8%;top:5%;transform:rotate(-8deg)}
.bcl-4 img:nth-child(2){right:10%;top:3%;transform:rotate(7deg)}
.bcl-4 img:nth-child(3){left:24%;bottom:3%;transform:rotate(-4deg)}
.bcl-4 img:nth-child(4){right:22%;bottom:5%;transform:rotate(5deg)}
.eh-view-bundle .bcl img{width:auto;height:64%}
.eh-view-bundle .bcl-4 img{height:50%}
.eh-view-bundle .bimg{width:100%;height:100%;object-fit:contain;padding:14px}
.prow-media .bcl img{filter:drop-shadow(0 4px 8px rgba(10,30,60,.16))}
.bi-thumb .bcl img{filter:none}

/* bundle PDP: included list in the hero card */
.bi-list{list-style:none;margin:0;padding:0 2px;display:flex;flex-direction:column;gap:12px}
.bi-list li{display:flex;gap:12px;align-items:center}
.bi-thumb{flex:0 0 auto;width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 100%);border:1px solid var(--line-soft)}
.bi-thumb img{max-width:70%;max-height:80%;width:auto;height:auto;object-fit:contain}
.bi-thumb svg{width:44%}
.bi-t{min-width:0}
.bi-t b{font-family:var(--display);font-weight:800;font-size:15px;color:var(--navy)}
.bi-t .pop-chip{vertical-align:middle;margin-left:4px}
.bi-t small{display:block;font-size:13px;color:var(--muted);line-height:1.45;margin-top:2px}
.eh-bundle .eh-cta-note{text-align:left;font-size:13.5px}
.eh-bundle .eh-cta-note .ico{margin-right:6px}

/* bundle PDP: component cards */
.bx-grid.bx-2{grid-template-columns:repeat(2,1fr);max-width:640px}
.bx-grid.bx-3{grid-template-columns:repeat(3,1fr);max-width:960px}
@media(max-width:1000px) and (min-width:641px){.bx-grid.bx-3,.bx-grid.bx-4{grid-template-columns:repeat(2,1fr)}}

/* bundle PDP: pricing details tables */
.bt-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,5vw,80px);align-items:start}
.bt-intro .eyebrow{margin-bottom:12px}
.bt-intro h2{margin-bottom:12px}
.bt-sub{font-size:15.5px;color:var(--muted);line-height:1.65;margin:0;max-width:26em}
.bt-tables{display:grid;gap:16px}
.bt-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line-soft);border-radius:18px;box-shadow:var(--shadow-soft)}
.bt-table{width:100%;border-collapse:collapse;font-size:15px;min-width:420px}
.bt-table th,.bt-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;line-height:1.45}
.bt-table thead th{font-family:var(--display);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:var(--tint-blue);white-space:nowrap}
.bt-table tbody th{font-family:var(--display);font-weight:800;color:var(--navy);white-space:nowrap}
.bt-table tr:last-child td,.bt-table tr:last-child th{border-bottom:0}
.bt-table td b{font-family:var(--display);font-weight:800;color:var(--navy)}
.bt-save{font-family:var(--display);font-weight:800;color:var(--red)}
.bt-ship td{font-size:14px;color:var(--ink)}
.bt-note{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0}
@media(max-width:860px){.bt-grid{grid-template-columns:1fr;gap:24px}}

/* order page bundle cards */
.oc-sub{font-size:12.5px;color:var(--muted);margin:0 0 8px;line-height:1.4}

/* bundles index */
.bidx-label{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:28px 0 12px}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bcard{position:relative;display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--line-soft);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow-soft);transition:transform .18s,box-shadow .18s,border-color .18s}
.bcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid);border-color:rgba(10,30,60,.22)}
.bcard-featured{border-color:var(--navy)}
.bcard-flag{position:absolute;top:12px;left:12px;z-index:1;background:var(--navy);color:#fff;border-radius:999px;padding:4px 11px;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.bcard-media{display:block;height:200px;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 55%,#DCE6F7 100%);border-bottom:1px solid var(--line-soft)}
.bcard-media .bimg{width:100%;height:100%;object-fit:contain;padding:12px}
.bcard-body{display:flex;flex-direction:column;padding:16px 18px 18px;gap:4px}
.bcard-kicker{font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.bcard-body > b{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--navy)}
.bcard-sub{font-size:14px;color:var(--muted);line-height:1.5}
.bcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line-soft)}
.bcard-price{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--navy)}
.bcard-price small{font-family:var(--serif);font-style:italic;font-weight:600;font-size:13px;color:var(--muted);margin-right:4px;letter-spacing:0}
.bcard-price span{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--muted);letter-spacing:0}
.bcard-save{font-family:var(--display);font-weight:700;font-size:12.5px;color:var(--red-deep);background:var(--tint-red);border-radius:999px;padding:4px 10px;white-space:nowrap}
.bidx-how{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.bidx-how-item{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px}
.bidx-how-item b{display:block;font-family:var(--display);font-weight:800;font-size:15.5px;color:var(--navy);line-height:1.25}
.bidx-how-item p{margin:6px 0 0;font-size:13.5px;color:var(--muted);line-height:1.5}
@media(max-width:960px){.bgrid{grid-template-columns:repeat(2,1fr)}.bidx-how{grid-template-columns:1fr}}
@media(max-width:600px){.bgrid{grid-template-columns:1fr}.bcard-media{height:170px}}
/* keep the hero chip clear of the composed cluster */
.eh-view-bundle{padding:52px 10px 10px}
@media(max-width:900px){.eh-view-bundle{padding:48px 6px 6px}}

/* bundle PDP: what each treatment does */
.bed-list{display:grid;gap:16px;max-width:1080px}
.bed{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(18px,3vw,36px);align-items:start;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg,24px);box-shadow:var(--shadow-soft);padding:clamp(20px,2.6vw,30px)}
.bed-media{width:150px;height:150px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:radial-gradient(130% 110% at 78% 0%,#F2F6FD 0%,#E6EDFA 55%,#DCE6F7 100%);border:1px solid var(--line-soft)}
.bed-media img{max-width:72%;max-height:84%;width:auto;height:auto;object-fit:contain}
.bed-media svg{width:44%}
.bed-kicker{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.bed-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--tint-red);color:var(--red);font-size:11px;letter-spacing:0}
.bed h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--navy);margin:0 0 14px}
.bed-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}
.bed-cols b{display:block;font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.bed-cols p{margin:0;font-size:15px;color:var(--ink);line-height:1.65}
.bed-more{display:inline-block;margin-top:16px;font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--muted);text-decoration:none}
.bed-more:hover{color:var(--red)}
@media(max-width:860px){
  .bed{grid-template-columns:96px minmax(0,1fr);gap:16px;padding:18px}
  .bed-media{width:96px;height:96px;border-radius:14px}
  .bed-cols{grid-template-columns:1fr;gap:12px}
  .bed h3{font-size:19px}
}
@media(max-width:560px){
  .bed{grid-template-columns:1fr}
  .bed-media{width:100%;height:150px}
}

/* bundle PDP: why these belong together */
.bw-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5.5vw,88px);align-items:start}
.bw-intro{position:sticky;top:calc(96px + var(--promo-h))}
.bw-intro .eyebrow{margin-bottom:12px}
.bw-intro h2{margin-bottom:14px}
.bw-lead{font-size:16.5px;color:var(--muted);line-height:1.68;margin:0;max-width:30em}
.bw-rows{display:grid;gap:14px}
.bw-row{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow-soft)}
.bw-ic{flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center}
.bw-ic .ico{width:19px;height:19px}
.bw-row b{display:block;font-family:var(--display);font-weight:800;font-size:16.5px;letter-spacing:-.015em;color:var(--navy);margin:4px 0 6px}
.bw-row p{margin:0;font-size:15px;color:var(--body-soft);line-height:1.62}
.bw-note{margin:6px 2px 0;font-size:13px;color:var(--muted);line-height:1.6}
@media(max-width:860px){.bw-grid{grid-template-columns:1fr;gap:24px}.bw-intro{position:static}.bw-row{padding:18px}}

/* bundle offers (2026-09-09): included-at-no-charge lines shown where no savings figure is claimed */
.eh-offer{display:flex;gap:8px;align-items:flex-start;margin:12px 2px 0;font-size:13.5px;font-weight:600;color:var(--navy);line-height:1.5}
.eh-offer .ico{flex:0 0 auto;width:16px;height:16px;color:var(--red);margin-top:2px}
.bcard-offer{display:block;margin-top:6px;font-size:13px;font-weight:600;color:var(--red-deep);line-height:1.5}
.oc-offer{color:var(--red-deep);font-weight:600}

/* homepage showcase (2026-09-15): the /order/ catalog block sits under the
   "What we treat" heading, so pull the heading and first group in tight */
#treatments .sec-head{margin-bottom:clamp(14px,2vw,22px)}
#treatments .sec-head p{margin-bottom:0}
#treatments .of-meta{padding-top:12px}
#treatments .ogroup:first-child{padding-top:10px}
section.band#treatments{padding-top:clamp(36px,4vw,56px)}

/* ---------- ivermectin brief page (Track A; docs/briefs/ivermectin-page.md) ---------- */
.ivm-approval{font-size:14.5px;font-weight:600;line-height:1.5;color:var(--navy);background:var(--tint-blue);border:1px solid var(--line-soft);border-radius:12px;padding:10px 14px;margin:10px 0 12px}
.ivm-figure{margin:0}
.ivm-hiw{list-style:none;margin:0;padding:0;counter-reset:ivmh}
.ivm-hiw li{counter-increment:ivmh;position:relative;padding:0 0 14px 36px}
.ivm-hiw li::before{content:counter(ivmh);position:absolute;left:0;top:1px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--tint-red);color:var(--red);font-family:var(--display);font-weight:800;font-size:12px}
.ivm-hiw b{display:block;font-family:var(--display);font-weight:800;font-size:14.5px;letter-spacing:-.01em;color:var(--navy);margin-bottom:3px}
.ivm-hiw p{margin:0;font-size:13.5px;line-height:1.55;color:var(--muted)}
.ivm-isi p{font-size:14px;line-height:1.65;color:var(--ink);margin:0 0 10px}
.ivm-isi p b{color:var(--navy)}
.ivm-pi{color:var(--red);font-weight:600}
.ivm-legal{border-top:1px solid var(--line-soft);padding:18px 0 34px}
.ivm-legal p{font-size:12.5px;line-height:1.6;color:var(--muted);margin:0}
.oc-cap{font-size:9.5px;letter-spacing:0;text-transform:none;font-weight:600;max-width:88%;white-space:normal;line-height:1.3}
@media(max-width:900px){
  .ivm-eh .eh-grid{display:flex;flex-direction:column}
  .ivm-eh .eh-gallery{order:2}
}

/* ---------- treatment guide: the automated concierge (/explore-treatments/ + embeds) ----------
   Markup comes from guide.js (the .frxg widget) and explorePage() in build.js (the .xg page).
   The widget is self-contained so it can be embedded on any page that loads product.css. */
.xg-hero{background:linear-gradient(180deg,var(--bg) 0%,#fff 88%),radial-gradient(60% 50% at 85% 0%,rgba(238,243,252,.9),transparent 70%);padding:clamp(30px,4vw,56px) 0 clamp(44px,5vw,76px)}
.xg-head{max-width:780px;margin:0 auto clamp(24px,3vw,38px);text-align:center}
.xg-head .eyebrow{justify-content:center;margin-bottom:14px}
.xg-head h1{font-size:clamp(34px,4.6vw,54px)}
.xg-head p{font-size:18px;color:var(--muted);line-height:1.65;margin:16px auto 0;max-width:41em}

.frxg{max-width:900px;margin:0 auto}
.frxg-fallback{text-align:center;color:var(--muted);font-size:15px;padding:28px 20px;border:1px dashed var(--line);border-radius:var(--r-md);background:#fff}
.frxg-win{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-mid);overflow:hidden}
.frxg-head{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.frxg-ava{flex:0 0 auto;width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--tint-blue),var(--shadow-soft)}
.frxg-ava-svg,.frxg-ava-img{display:block;border-radius:50%}
.frxg-ava-img{width:100%;height:100%;object-fit:cover;background:var(--tint-blue)}
.frxg-id{flex:1;min-width:0}
.frxg-name{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.frxg-name b{font-family:var(--display);font-weight:800;font-size:15.5px;letter-spacing:-.01em;color:var(--navy)}
.frxg-tag{display:block;font-size:12.5px;color:var(--muted);line-height:1.4;margin-top:2px}
.frxg-tools{flex:0 0 auto;display:flex;align-items:center;gap:4px}
.frxg-tool{display:inline-flex;align-items:center;gap:5px;background:none;border:none;border-radius:999px;padding:8px 11px;cursor:pointer;font-family:var(--display);font-weight:700;font-size:12.5px;color:var(--muted);transition:color .15s,background .15s}
.frxg-tool:hover{color:var(--navy);background:var(--tint-blue)}
.frxg-tool:disabled{opacity:.35;cursor:default;background:none;color:var(--muted)}
.frxg-tool .ico{width:13px;height:13px;stroke-width:2.2}
.frxg-tool-restart{color:var(--red-deep)}
.frxg-tool-restart:hover{color:var(--red-deep);background:var(--tint-red)}
.frxg-tool:focus-visible,.frxg-chip:focus-visible,.frxg-btn:focus-visible,.frxg-link:focus-visible,.frxg-log:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

.frxg-log{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;min-height:340px;max-height:min(66vh,640px);overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
/* compact embeds (data-intro="compact") open as a short card: one line and the chips. The
   first tap removes is-idle and the log takes its normal height. */
.frxg-win.is-idle .frxg-log{min-height:0;padding:16px 20px 2px}
.frxg-win.is-idle .frxg-bub{max-width:none}
.frxg-win.is-idle .frxg-chips{border-top:none;padding-top:10px}
.frxg-win.is-idle .frxg-tools{visibility:hidden}
.frxg-row{display:flex;align-items:flex-end;gap:9px;max-width:100%}
.frxg-bot{align-self:stretch}
.frxg-you{align-self:flex-end;justify-content:flex-end;max-width:86%}
.frxg-mini{flex:0 0 28px;width:28px;height:28px;border-radius:50%;align-self:flex-start;margin-top:2px}
.frxg-bub{max-width:min(88%,640px);padding:13px 16px;border-radius:16px;border-bottom-left-radius:5px;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.62;animation:frxgIn .28s ease both}
.frxg-you .frxg-bub{max-width:100%;background:var(--navy);color:#fff;font-weight:600;border-radius:16px;border-bottom-right-radius:5px}
.frxg-bub p{margin:0 0 9px}
.frxg-bub p:last-child{margin-bottom:0}
.frxg-bub ul{margin:2px 0 9px;padding-left:19px}
.frxg-bub ul:last-child{margin-bottom:0}
.frxg-bub li{margin:0 0 6px}
.frxg-bub strong{color:var(--navy);font-weight:700}
.frxg-quiet{background:none;padding:0 4px;font-size:13px;color:var(--muted)}
.frxg-safety{background:#fff;border:1px solid rgba(225,37,47,.2);border-left:3px solid var(--red);border-radius:12px;font-size:14px}
.frxg-safety-title{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep);margin-bottom:7px}
.frxg-fineprint{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line-soft);padding-top:9px;margin-top:10px!important}
.frxg-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px!important}
.frxg-link{font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(10,30,60,.3)}
.frxg-link:hover{color:var(--red);text-decoration-color:currentColor}
.frxg-typing{display:inline-flex;align-items:center;gap:5px;padding:15px 16px}
.frxg-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);opacity:.35;animation:frxgDot 1s ease-in-out infinite}
.frxg-typing i:nth-child(2){animation-delay:.15s}
.frxg-typing i:nth-child(3){animation-delay:.3s}
@keyframes frxgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes frxgDot{0%,100%{opacity:.3;transform:none}50%{opacity:.9;transform:translateY(-2px)}}

.frxg-cards{flex:1;min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;animation:frxgIn .28s ease both}
.frxg-card{display:grid;grid-template-columns:74px 1fr;gap:14px;background:#fff;border:1px solid var(--line-soft);border-radius:18px;box-shadow:var(--shadow-soft);padding:14px}
.frxg-card-media,.frxg-plan-media{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}
.frxg-card-media{width:74px;height:96px}
.frxg-card-media img,.frxg-plan-media img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.frxg-card-body{min-width:0}
.frxg-card-kind{display:block;font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.frxg-card h3,.frxg-plan h3{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin:3px 0 5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.frxg-card-chip{font-family:var(--display);font-weight:800;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);background:var(--tint-red);border-radius:999px;padding:3px 8px}
.frxg-card-sub{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.frxg-card-price{font-family:var(--display);font-weight:800;font-size:16px;color:var(--navy);margin-bottom:10px}
.frxg-card-price small{font-weight:600;font-size:12px;color:var(--muted)}
.frxg-card-price span{font-weight:700;font-size:12.5px;color:var(--muted)}
.frxg-card-acts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.frxg-btn{font-family:var(--display);font-weight:700;font-size:13.5px;color:#fff;background:var(--navy);border:none;border-radius:999px;padding:9px 16px;cursor:pointer;transition:background .15s,transform .15s}
.frxg-btn:hover{background:var(--navy-mid);transform:translateY(-1px)}
/* direct path (data-path="direct", the homepage embed): shortlist cards carry the plan select and the checkout button */
.frxg-quick{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))} /* two up in the homepage card, so the select and price read */
.frxg-card-quick{grid-template-columns:64px 1fr}
.frxg-card-quick .frxg-card-media{width:64px;height:84px}
.frxg-quick-select{display:block;margin:2px 0 8px}
.frxg-quick-select .frxg-plan-label{font-size:10px;margin-bottom:5px}
.frxg-quick-select select{font-size:13.5px;padding:9px 34px 9px 12px;border-radius:10px}
.frxg-card-quick .frxg-card-price{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.frxg-card-quick .frxg-card-price b{font-size:19px;letter-spacing:-.02em}
.frxg-card-acts .btn{padding:10px 18px;font-size:13.5px}
.frxg-link-btn{background:none;border:none;padding:0;cursor:pointer}
@media(max-width:480px){.frxg-card-quick{grid-template-columns:1fr}.frxg-card-quick .frxg-card-media{display:none}} /* phones: the select and button get the full card width */

.frxg-plan{flex:1;min-width:0;max-width:520px;background:#fff;border:1px solid var(--navy);border-radius:18px;box-shadow:var(--shadow-soft);padding:16px 18px;animation:frxgIn .28s ease both}
.frxg-plan-top{display:flex;align-items:center;gap:13px;margin-bottom:13px}
.frxg-plan-media{flex:0 0 54px;width:54px;height:68px}
.frxg-plan h3{margin:2px 0 0}
.frxg-plan-select{display:block;margin-bottom:11px}
.frxg-plan-label{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--red-deep);margin-bottom:7px}
.frxg-plan-select select{width:100%;font-family:var(--sans);font-size:15px;font-weight:600;color:var(--navy);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.frxg-plan-select select:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.frxg-plan-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.frxg-plan-price b{font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:-.02em;color:var(--navy)}
.frxg-plan-save{font-family:var(--display);font-weight:800;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep)}
.frxg-plan-note{font-size:13px;color:var(--muted);margin:2px 0 13px}
.frxg-plan-acts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.frxg-plan-acts .btn{padding:12px 22px;font-size:14.5px}
.frxg-plan-fine{font-size:12px;line-height:1.55;color:var(--muted);margin:0}
.frxg-link-quiet{font-size:12.5px;color:var(--muted)}
.frxg-plan-safety{margin:7px 0 0}

.frxg-chips{display:flex;flex-wrap:wrap;gap:9px;min-height:66px;padding:14px 20px 20px;border-top:1px solid var(--line-soft);background:#fff}
.frxg-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;font-family:var(--display);font-weight:700;font-size:14px;line-height:1.3;text-align:left;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s,color .15s;animation:frxgIn .25s ease both}
.frxg-chip:hover{border-color:var(--navy);box-shadow:var(--shadow-soft)}
.frxg-chip .ico{flex:0 0 auto;width:13px;height:13px;stroke-width:2.3}
.frxg-chip.is-primary{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 5px 16px rgba(225,37,47,.24)}
.frxg-chip.is-primary:hover{background:var(--red-deep);border-color:var(--red-deep)}
.frxg-chip.is-nav{font-weight:600;color:var(--muted);background:var(--bg);border-color:transparent}
.frxg-chip.is-nav:hover{color:var(--navy);border-color:var(--line)}
.frxg-chip.is-seen{color:var(--muted);border-style:dashed}
.frxg-chip.is-seen .ico{color:#2E9E5B}

.frxg-notice{max-width:860px;margin:14px auto 0;text-align:center}
.frxg-notice-main{display:inline-flex;align-items:flex-start;gap:9px;text-align:left;margin:0;background:var(--tint-blue);border:1px solid rgba(10,30,60,.1);border-radius:14px;padding:11px 16px;font-size:13.5px;font-weight:600;line-height:1.5;color:var(--navy)}
.frxg-notice-main .ico{flex:0 0 auto;width:16px;height:16px;margin-top:2px;stroke-width:2}
.frxg-notice-sub{max-width:62em;margin:9px auto 0;font-size:12.5px;line-height:1.6;color:var(--muted);text-wrap:balance}

section.band.xg-pillars-band{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(48px,6vw,88px)}
.xg-pillars-band .sec-head{margin-bottom:clamp(28px,3.5vw,44px)}
.xg-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-gap)}
.xg-pillar{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:28px}
.xg-pi{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--tint-blue);color:var(--navy);margin-bottom:16px}
.xg-pi .ico{width:21px;height:21px}
.xg-pillar h3{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.015em;color:var(--navy);margin-bottom:8px}
.xg-pillar p{font-size:15px;line-height:1.65;color:var(--muted)}
.xg-linknote{max-width:52em;margin:22px auto 0;text-align:center;font-size:13px;line-height:1.6;color:var(--muted)}
/* the two link phrases never split across a line break (Ryan, 2026-09-26) */
.xg-linknote{text-wrap:pretty}
.xg-linknote a{white-space:nowrap}

@media(max-width:900px){
  .xg-pillars{grid-template-columns:1fr}
}
@media(max-width:700px){
  .xg-head p{font-size:16.5px}
  .frxg-head{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"ava name name" "tag tag tools";column-gap:11px;row-gap:7px;align-items:center;padding:12px 14px 9px}
  .frxg-ava{grid-area:ava;width:40px;height:40px}
  .frxg-ava .frxg-ava-svg,.frxg-ava .frxg-ava-img{width:40px;height:40px}
  .frxg-id{display:contents}
  .frxg-name{grid-area:name;gap:7px}
  .frxg-name b{font-size:15px}
  .frxg-tag{grid-area:tag;margin:0;font-size:11.5px}
  .frxg-tools{grid-area:tools}
  .frxg-win.is-idle .frxg-tools{display:none}
  .frxg-win.is-idle .frxg-head{grid-template-areas:"ava name name" "tag tag tag"}
  .frxg-tool span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .frxg-tool{padding:9px}
  .frxg-tool .ico{width:15px;height:15px}
  .frxg-tool-restart{padding:8px 10px;font-size:12px}
  .frxg-log{padding:16px 14px;min-height:300px;max-height:56vh}
  .frxg-bub{max-width:100%;font-size:14.5px}
  .frxg-mini{flex-basis:24px;width:24px;height:24px}
  .frxg-mini .frxg-ava-svg,.frxg-mini .frxg-ava-img{width:24px;height:24px}
  .frxg-cards{grid-template-columns:1fr}
  .frxg-chips{padding:12px 14px 16px;gap:8px}
  .frxg-chip{font-size:13.5px;padding:10px 14px}
  .frxg-plan-acts .btn{flex:1 1 auto;text-align:center}
  .frxg-notice-main{font-size:12.5px}
}
@media(prefers-reduced-motion:reduce){
  .frxg-bub,.frxg-cards,.frxg-plan,.frxg-chip{animation:none}
  .frxg-typing i{animation:none}
  .frxg-log{scroll-behavior:auto}
}

/* coming soon: order cards and the /order/ selection bar for treatments in config COMING_SOON (2026-09-23) */
.oc-cta.oc-soon{background:var(--tint-blue);color:var(--muted);cursor:default}
.oc-cta.oc-soon:hover{background:var(--tint-blue);transform:none;box-shadow:none}
#ob-cta.is-soon{background:var(--tint-blue);color:var(--muted);cursor:default;box-shadow:none;pointer-events:none}

/* ---------- learn guides + contact page (2026-09-25) ----------
   Fact tiles, number panels and tap-through interactives, modeled on the reference site Ryan
   sent (wholefoodproteinpowder.com) rather than blocks of text. */
.ln-hero{background:linear-gradient(180deg,var(--bg) 0%,#fff 90%);padding:clamp(28px,4vw,56px) 0 clamp(36px,5vw,64px)}
.ln-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4.5vw,64px);align-items:center}
.ln-hero h1{font-size:clamp(36px,4.6vw,56px);margin:14px 0 16px}
.ln-lead{font-size:18px;line-height:1.65;color:var(--muted);max-width:36em}
.ln-rev{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--muted);margin:16px 0 0;max-width:36em}
.ln-rev .ico{flex:0 0 auto;width:15px;height:15px;color:#2E9E5B;stroke-width:2.2;margin-top:2px}
.ln-hero-ctas{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:24px}
.ln-jump,.ln-card-go{display:inline-flex;align-items:center;gap:7px;font-family:var(--display);font-weight:800;font-size:14.5px;color:var(--red);text-decoration:none}
.ln-jump .ico,.ln-card-go .ico{width:14px;height:14px;stroke-width:2.4}
.ln-photo{margin:0;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lift);aspect-ratio:5/4}
.ln-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ln-facts-band{padding-top:clamp(28px,3.5vw,48px)}
.ln-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ln-fact{padding:clamp(24px,3vw,40px) clamp(18px,2.6vw,36px);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.ln-fact:nth-child(2n){border-right:none}
.ln-fact:nth-last-child(-n+2){border-bottom:none}
.ln-fact-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--tint-blue);color:var(--navy);margin-bottom:16px}
.ln-fact-ic .ico{width:20px;height:20px}
.ln-fact h2{font-size:clamp(21px,2.1vw,26px);margin-bottom:10px}
.ln-fact p{font-size:15.5px;line-height:1.65;color:var(--muted);max-width:30em}
.ln-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-gap)}
.ln-num{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:28px 26px 24px}
/* number and label sit on one baseline with a real gap (2026-09-28: the fact strip had none, so it read "$0visit") */
.ln-num-big{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-family:var(--display);font-weight:800;font-size:clamp(40px,4.4vw,58px);letter-spacing:-.03em;line-height:1;color:var(--navy);margin-bottom:14px}
.ln-num-big span{font-family:var(--serif);font-style:italic;font-weight:600;font-size:.42em;letter-spacing:0;color:var(--red)}
.ln-num p{font-size:14.5px;line-height:1.6;color:var(--muted)}
.ln-meter{height:8px;border-radius:999px;background:var(--tint-blue);overflow:hidden;margin-top:16px}
.ln-meter-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--red),var(--red-deep))}
.ln-inters{display:grid;gap:clamp(28px,4vw,56px)}
.ln-inter{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,480px);gap:clamp(26px,4vw,56px);align-items:center}
.ln-inter-head h3{font-family:var(--display);font-weight:800;font-size:clamp(26px,2.8vw,36px);letter-spacing:-.025em;color:var(--navy);margin:12px 0 12px}
.ln-inter-head h3 em{font-family:var(--serif);font-style:italic;font-weight:600;color:var(--red)}
.ln-inter-head p{font-size:16px;line-height:1.65;color:var(--muted)}
.ln-inter-card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-mid);padding:26px}
.ln-read{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:6px}
.ln-read b{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.02em;color:var(--navy)}
.ln-read span{font-size:13px;color:var(--muted);text-align:right}
.ln-drop{font-size:15px;color:var(--ink);min-height:44px;margin:0 0 14px}
.ln-drop b{color:var(--red);font-family:var(--display);font-weight:800}
.ln-range{width:100%;accent-color:var(--red);margin:14px 0 4px}
.ln-range-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.ln-fine{font-size:12px;line-height:1.6;color:var(--muted);margin:16px 0 0}
.ln-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ln-chip{font-family:var(--display);font-weight:700;font-size:13.5px;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.ln-chip:hover{border-color:var(--navy)}
.ln-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
.ln-chip:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.ln-lab-out b{display:block;font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.015em;color:var(--navy);margin-bottom:6px}
.ln-lab-out p{font-size:15px;line-height:1.6;color:var(--ink);min-height:72px;margin:0}
.ln-bmi-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ln-bmi-form label>span:first-child{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);margin-bottom:6px}
.ln-bmi-pair{display:flex;align-items:center;gap:6px}
.ln-bmi-pair input{width:100%;min-width:0;font:600 16px var(--sans);color:var(--navy);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:10px 10px}
.ln-bmi-pair small{font-size:12px;color:var(--muted)}
.ln-bmi-scale{position:relative;display:flex;height:10px;border-radius:999px;overflow:visible;margin-top:12px}
.ln-bmi-scale span{height:100%;background:var(--tint-blue)}
.ln-bmi-scale span:nth-child(2){background:#CFE3D2}
.ln-bmi-scale span:nth-child(3){background:#F5DFB4}
.ln-bmi-scale span:nth-child(4){background:#F3C9CC}
.ln-bmi-scale span:first-child{border-radius:999px 0 0 999px}
.ln-bmi-scale span:nth-child(4){border-radius:0 999px 999px 0}
.ln-bmi-scale i{position:absolute;top:-5px;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:var(--shadow-soft);transition:left .2s}
.ln-cmp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px 16px;margin:0}
.ln-cmp dt{font-family:var(--display);font-weight:800;font-size:12.5px;letter-spacing:.02em;color:var(--muted)}
.ln-cmp dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink)}
.ln-hair-bar{display:flex;gap:3px;height:12px;border-radius:999px;overflow:hidden;margin-bottom:16px}
.ln-hair-bar span{background:var(--tint-blue);transition:background .15s}
.ln-hair-bar span.is-on{background:var(--red)}
.ln-ed-bar{position:relative;height:12px;border-radius:999px;background:var(--tint-blue);margin:8px 0 26px}
.ln-ed-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--red),var(--red-deep));transition:width .3s}
.ln-ed-fill.is-daily{background:repeating-linear-gradient(90deg,var(--navy) 0 12px,var(--navy-mid) 12px 24px)}
.ln-ed-bar span{position:absolute;top:16px;font-size:11px;color:var(--muted);transform:translateX(-50%)}
.ln-ed-bar span:nth-of-type(1){left:0;transform:none}.ln-ed-bar span:nth-of-type(2){left:33.3%}.ln-ed-bar span:nth-of-type(3){left:66.6%}.ln-ed-bar span:nth-of-type(4){left:100%;transform:translateX(-100%)}
.ln-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-gap)}
.ln-steps li{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:24px}
.ln-step-n{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--tint-red);color:var(--red);font-family:var(--display);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center}
.ln-steps b{display:block;font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin:7px 0 6px}
.ln-steps p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.ln-who{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-gap)}
.ln-who-col{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:26px}
.ln-who-col h3{display:flex;align-items:center;gap:9px;font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.015em;color:var(--navy);margin-bottom:14px}
.ln-who-col h3 .ico{width:18px;height:18px;color:#2E9E5B;stroke-width:2.2}
.ln-who-col.is-no h3 .ico{color:var(--red)}
.ln-who-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ln-who-col li{position:relative;padding-left:18px;font-size:15px;line-height:1.55;color:var(--ink)}
.ln-who-col li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:#2E9E5B}
.ln-who-col.is-no li::before{background:var(--red)}
.ln-note{max-width:56em;margin:22px auto 0;text-align:center;font-size:13.5px;line-height:1.6;color:var(--muted)}
.ln-tl{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:14px}
.ln-tl::before{content:"";position:absolute;left:112px;top:8px;bottom:8px;width:2px;background:var(--line-soft)}
.ln-tl li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:34px;align-items:start;position:relative}
.ln-tl-when{font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep);padding-top:20px;text-align:right}
.ln-tl li::before{content:"";position:absolute;left:107px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #fff}
.ln-tl li>div{background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:18px 22px}
.ln-tl b{display:block;font-family:var(--display);font-weight:800;font-size:16.5px;color:var(--navy);margin-bottom:5px}
.ln-tl p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.ln-pop.pop-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ln-src{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ln-src li{position:relative;padding-left:20px;font-size:14.5px;line-height:1.55}
.ln-src li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--tint-red);border:1.5px solid var(--red)}
.ln-src a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(10,30,60,.3)}
.ln-src a:hover{color:var(--red)}
.ln-src-band .ln-note{text-align:left;margin:22px 0 0}
.ln-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-gap);margin-top:clamp(10px,2vw,20px)}
.ln-card{display:grid;grid-template-columns:clamp(150px,34%,220px) minmax(0,1fr);background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);overflow:hidden;text-decoration:none;transition:transform .18s,box-shadow .18s}
.ln-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid)}
.ln-card-media{display:block;min-height:100%}
.ln-card-media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}
.ln-card-body{padding:22px;text-align:left}
.ln-card-body .eyebrow{margin-bottom:8px}
.ln-card-body b{display:block;font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--navy);margin-bottom:8px}
.ln-card-body p{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 12px}
/* the "go deeper" band: guides offered after the selling content, opening in a new tab */
.learn-band{padding-top:0}
.learn-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(20px,3vw,44px);align-items:center;background:linear-gradient(150deg,var(--navy-mid),var(--navy));border-radius:var(--r-xl);padding:clamp(26px,3.6vw,44px) clamp(24px,4vw,52px);box-shadow:var(--shadow-lift)}
.learn-copy .eyebrow{color:rgba(232,238,248,.62);margin-bottom:10px}
.learn-copy h2{color:#fff;font-size:clamp(24px,2.6vw,32px);margin-bottom:8px}
.learn-copy h2 em{color:var(--gold)}
.learn-copy p{font-size:15px;line-height:1.6;color:rgba(232,238,248,.78);max-width:46em;margin:0}
.learn-act{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.learn-act .btn-ghost{white-space:nowrap}
.learn-act small{font-size:12px;color:rgba(232,238,248,.6)}
.home-ln-cards{grid-template-columns:repeat(4,1fr)}
.home-ln-cards .ln-card{grid-template-columns:1fr}
.home-ln-cards .ln-card-media{height:150px}
.home-ln-cards .ln-card-body b{font-size:18px}
@media(max-width:960px){.learn-card{grid-template-columns:1fr}.home-ln-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.home-ln-cards{grid-template-columns:1fr}}
/* contact */
.ct-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--sp-gap);align-items:start;text-align:left;margin-top:10px}
.ct-composer{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-mid);padding:clamp(22px,3vw,34px)}
.ct-composer h2{font-size:clamp(24px,2.6vw,32px);margin-bottom:8px}
.ct-sub{font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 18px}
.ct-field{display:block;margin-bottom:14px}
.ct-field>span{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);margin-bottom:7px}
.ct-field select,.ct-field textarea{width:100%;font:500 15.5px var(--sans);color:var(--navy);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}
.ct-field textarea{resize:vertical;min-height:140px;line-height:1.55}
.ct-field select:focus,.ct-field textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.ct-warn{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--muted);background:var(--tint-blue);border-radius:12px;padding:12px 14px;margin:4px 0 18px}
.ct-warn .ico{flex:0 0 auto;width:16px;height:16px;color:var(--navy);margin-top:2px}
.ct-acts{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ct-plain{font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.ct-side{display:grid;gap:14px}
.ct-card{background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:20px 22px}
.ct-card .xg-pi{margin-bottom:10px}
.ct-card h3{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin-bottom:6px}
.ct-card p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.ct-card a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.ct-promise{background:linear-gradient(150deg,var(--navy-mid),var(--navy));border-color:transparent}
.ct-promise h3{color:#fff}
.ct-promise ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ct-promise li{position:relative;padding-left:18px;font-size:14px;line-height:1.5;color:rgba(232,238,248,.85)}
.ct-promise li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
@media(max-width:960px){
  .ln-hero-grid{grid-template-columns:1fr}
  .ln-photo{aspect-ratio:16/10;max-height:360px}
  .ln-nums{grid-template-columns:1fr}
  .ln-inter{grid-template-columns:1fr}
  .ln-steps,.ln-who,.ln-cards{grid-template-columns:1fr}
  .ct-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ln-facts{grid-template-columns:1fr}
  .ln-fact{border-right:none}
  .ln-fact:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .ln-fact:last-child{border-bottom:none}
  .ln-tl::before{left:8px}
  .ln-tl li{grid-template-columns:1fr;gap:8px;padding-left:28px}
  .ln-tl li::before{left:3px;top:6px}
  .ln-tl-when{text-align:left;padding-top:0}
  .ln-card{grid-template-columns:1fr}
  .ln-card-media{height:160px}
  .ln-bmi-form{grid-template-columns:1fr}
  .ln-cmp{grid-template-columns:1fr;gap:2px 0}
  .ln-cmp dd{margin-bottom:10px}
}

/* how it works page (2026-09-26): seven expandable steps on a rail, the interactives reuse the
   learn-guide card and chip styles, and a six-tile fact strip */
.hiw-tl{position:relative;display:grid;gap:12px;margin-top:clamp(16px,2.5vw,26px)}
.hiw-tl::before{content:"";position:absolute;left:31px;top:30px;bottom:30px;width:2px;background:var(--line-soft)}
.hiw-step{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:0 22px 0 68px}
.hiw-step summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:18px 0;font-family:var(--display);font-weight:800;font-size:clamp(17px,1.6vw,20px);letter-spacing:-.015em;color:var(--navy)}
.hiw-step summary::-webkit-details-marker{display:none}
.hiw-t{flex:1;min-width:0}
.hiw-n{position:absolute;left:14px;top:15px;width:36px;height:36px;border-radius:50%;background:var(--tint-blue);color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:14px;box-shadow:0 0 0 4px #fff}
.hiw-step[open] .hiw-n{background:var(--navy);color:#fff}
.hiw-when{font-family:var(--serif);font-style:italic;font-weight:600;font-size:14px;letter-spacing:0;color:var(--red);white-space:nowrap}
.hiw-body{padding:0 0 20px;font-size:15.5px;line-height:1.65;color:var(--ink)}
.hiw-body p{margin:0 0 10px}
.hiw-body p:last-child{margin-bottom:0}
.hiw-body ul{margin:6px 0 10px;padding-left:18px}
.hiw-body li{margin:4px 0}
.hiw-body a{color:var(--red);font-weight:600}
.hiw-you{display:inline-block;font-family:var(--display);font-weight:800;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);background:var(--tint-red);border-radius:6px;padding:3px 8px;margin-bottom:10px}
.hiw-you.is-us{color:var(--navy);background:var(--tint-blue)}
.hiw-sample{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.hiw-sample .ico{width:13px;height:13px}
.hiw-bar{height:6px;border-radius:3px;background:var(--tint-blue);overflow:hidden;margin-bottom:16px}
.hiw-bar i{display:block;height:100%;background:var(--red);width:0;transition:width .3s}
.hiw-scr{min-height:240px}
.hiw-q{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.015em;color:var(--navy);margin:0 0 12px}
.hiw-opts{display:grid;gap:8px}
.hiw-opt{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:12px;padding:11px 14px;font:inherit;font-size:14.5px;color:var(--ink);background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.hiw-opt::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid #C6D0E0;flex-shrink:0;transition:border-color .15s,background .15s}
.hiw-opt.is-on{border-color:var(--navy);background:var(--tint-blue)}
.hiw-opt.is-on::before{border-color:var(--red);background:radial-gradient(circle,var(--red) 45%,transparent 50%)}
.hiw-done{margin:14px 0 0;font-family:var(--serif);font-style:italic;font-weight:600;font-size:15px;color:var(--red)}
.hiw-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px}
.hiw-nav .btn{padding:10px 18px;font-size:14px}
.hiw-nav .btn[disabled]{opacity:.4;cursor:default}
.hiw-cnt{font-size:12.5px;color:var(--muted);white-space:nowrap}
.hiw-out{background:var(--bg);border:1px solid var(--line-soft);border-radius:14px;padding:16px 18px;font-size:14.5px;line-height:1.6;color:var(--ink)}
.hiw-out b{display:block;font-family:var(--display);font-weight:800;font-size:15.5px;letter-spacing:-.01em;color:var(--navy);margin-bottom:5px}
.hiw-out ul{margin:8px 0 0;padding-left:18px}
.hiw-out li{margin:4px 0}
.hiw-lab{display:block;margin-top:8px;color:var(--muted)}
#hiw-labs .ct-field,#hiw-billing .ct-field{margin-bottom:14px}
.hiw-clock{display:grid}
.hiw-cl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 16px;align-items:baseline;padding:12px 0;border-top:1px solid var(--line-soft)}
.hiw-cl:first-child{border-top:0;padding-top:0}
.hiw-cl b{font-family:var(--display);font-weight:800;font-size:14.5px;letter-spacing:-.01em;color:var(--navy)}
.hiw-cl span{font-size:14.5px;line-height:1.55;color:var(--ink)}
.hiw-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-gap)}
.hw-more{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--display);font-weight:800;font-size:14px;color:var(--red);text-decoration:none}
.hw-more .ico{width:14px;height:14px;stroke-width:2.4}
.hw-more:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.hiw-facts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
  .hiw-step{padding:0 14px 0 56px}
  .hiw-n{left:10px;top:13px;width:32px;height:32px;font-size:13px}
  .hiw-tl::before{left:25px}
  .hiw-step summary{flex-wrap:wrap;gap:4px 12px;padding:14px 0}
  .hiw-when{flex-basis:100%;white-space:normal;font-size:13px}
  .hiw-cl{grid-template-columns:1fr;gap:2px}
  .hiw-facts{grid-template-columns:1fr}
}

/* free health calculators (2026-09-28): /tools/ and the four calculator pages. The calculator is one card,
   inputs on the left and the live result on a tint panel on the right (stacked on phones); the rest of
   the page reuses the learn-guide shells (xg-hero, ln-src, faq). Inputs stay at 16px or more so iOS does
   not zoom on focus. */
.calc-priv{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;line-height:1.4;color:var(--muted);background:#fff;border:1px solid var(--line-soft);border-radius:999px;padding:7px 14px;margin:6px 0 0}
.calc-priv .ico{flex:0 0 auto;width:15px;height:15px;color:var(--navy)}
.calc{max-width:980px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-xl);box-shadow:var(--shadow-lift);overflow:hidden;text-align:left}
.calc-in{padding:clamp(22px,3vw,34px);display:grid;gap:18px;align-content:start}
.calc-out{padding:clamp(22px,3vw,34px);background:linear-gradient(160deg,var(--bg) 0%,var(--tint-blue) 100%);border-left:1px solid var(--line-soft);display:flex;flex-direction:column;justify-content:center;min-width:0}
.calc-lab{display:block;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);margin-bottom:8px}
.calc-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.calc-pair{display:flex;align-items:center;gap:8px}
.calc-pair input{width:100%;min-width:0;font:600 17px var(--sans);color:var(--navy);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:11px 12px}
.calc-pair small{flex:0 0 auto;min-width:22px;font-size:13px;color:var(--muted)}
.calc-pair input:focus,.calc-select select:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.calc-select{position:relative;display:block}
.calc-select select{width:100%;-webkit-appearance:none;appearance:none;font:600 16px var(--sans);color:var(--navy);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:12px 40px 12px 14px;text-overflow:ellipsis}
.calc-select::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.calc-seg{display:flex;flex-wrap:wrap;gap:8px}
.calc-opt{position:relative;display:inline-flex}
.calc-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.calc-opt span{display:inline-flex;align-items:center;font-family:var(--display);font-weight:700;font-size:14px;line-height:1.2;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 15px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.calc-opt span:hover{border-color:var(--navy)}
.calc-opt input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.calc-opt input:focus-visible+span{outline:2px solid var(--red);outline-offset:2px}
.calc-note{font-size:12.5px;line-height:1.55;color:var(--muted);margin:0}
.calc-k{font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.calc-big{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;margin:6px 0 12px}
.calc-big b{font-family:var(--display);font-weight:800;font-size:clamp(40px,5vw,56px);letter-spacing:-.03em;line-height:1;color:var(--navy)}
.calc-big span{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.35;color:var(--red-deep)}
.calc-out .ln-bmi-scale span:first-child{background:#D6E2F5} /* the underweight band, visible on the tint panel */
.calc-scale-labels{position:relative;height:18px;margin-top:7px;font-size:11.5px;color:var(--muted)}
.calc-scale-labels span{position:absolute;top:0;transform:translateX(-50%)}
.calc-scale-labels span:last-child{transform:translateX(-100%)}
.calc-res{font-size:14.5px;line-height:1.6;color:var(--ink);margin:14px 0 0}
.calc-res:empty{display:none}
.calc-quiet{font-size:12.5px;color:var(--muted);margin-top:10px}
.calc-rows{display:grid;gap:10px}
.calc-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 14px;background:#fff;border:1px solid var(--line-soft);border-radius:14px}
.calc-row span{font-size:14px;line-height:1.35;color:var(--muted)}
.calc-row b{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--navy);white-space:nowrap}
.calc-row.is-main{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.calc-row.is-main span{color:var(--navy);font-weight:600}
.calc-row.is-main b{font-size:21px}
.calc-method{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-gap)}
.calc-m{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:24px}
.calc-m h3{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.015em;color:var(--navy);margin-bottom:8px}
.calc-m p{font-size:14.5px;line-height:1.65;color:var(--muted);margin:0}
.calc-ctx{max-width:780px;margin:0 auto;text-align:center}
.calc-ctx .eyebrow{justify-content:center}
.calc-ctx p{font-size:16.5px;line-height:1.7;color:var(--muted);margin:0}
.calc-ctx-links{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;margin-top:26px}
.calc-ctx-more{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:700;font-size:15px;color:var(--navy);text-decoration:none}
.calc-ctx-more .ico{width:14px;height:14px;stroke-width:2.4;color:var(--red)}
.calc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.calc-cards-index{grid-template-columns:repeat(2,1fr);max-width:980px;margin:0 auto}
.calc-card{display:grid;grid-template-columns:48px minmax(0,1fr) 16px;gap:16px;align-items:center;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:20px;text-decoration:none;text-align:left;transition:transform .18s,box-shadow .18s}
.calc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-mid)}
.calc-card-ic{width:48px;height:48px;border-radius:14px;background:var(--tint-red);color:var(--red);display:flex;align-items:center;justify-content:center}
.calc-card-ic svg{width:22px;height:22px}
.calc-card-body b{display:block;font-family:var(--display);font-weight:800;font-size:16.5px;letter-spacing:-.015em;color:var(--navy);margin-bottom:3px}
.calc-card-body span{display:block;font-size:13.5px;line-height:1.55;color:var(--muted)}
.calc-card-ar{width:15px;height:15px;stroke-width:2.4;color:var(--muted);transition:transform .18s,color .18s}
.calc-card:hover .calc-card-ar{color:var(--red);transform:translateX(3px)}
.calc-learn-row{max-width:none;margin-top:clamp(30px,4vw,52px);text-align:left}
.calc-learn-row .eyebrow{margin-bottom:14px}
.calc-learn-row .calc-cards{grid-template-columns:repeat(2,1fr)}
.ln-fine a{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(10,30,60,.3)}
.ln-fine a:hover{color:var(--red)}
/* homepage: the calculators as one quiet line under the guide cards */
.home-tools{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:26px 0 0;font-size:14px;color:var(--muted);text-align:center}
.home-tools>span:first-child{font-family:var(--display);font-weight:700;color:var(--navy)}
.home-tools a{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(10,30,60,.3)}
.home-tools a:hover{color:var(--red);text-decoration-color:currentColor}
.home-tools-dot{color:var(--muted)}
@media(max-width:860px){
  .calc{grid-template-columns:1fr}
  .calc-out{border-left:0;border-top:1px solid var(--line-soft)}
  .calc-method,.calc-cards,.calc-cards-index,.calc-learn-row .calc-cards{grid-template-columns:1fr}
}
@media(max-width:480px){
  .calc-duo{gap:8px}
  .calc-pair input{font-size:16px;padding:10px}
  .calc-opt span{font-size:13.5px;padding:9px 13px}
  .calc-row{flex-wrap:wrap;gap:4px 12px}
  .calc-card{grid-template-columns:44px minmax(0,1fr) 14px;gap:14px;padding:18px}
  .calc-card-ic{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){.calc-card,.calc-card-ar,.calc-opt span{transition:none}.calc-card:hover{transform:none}.calc-card:hover .calc-card-ar{transform:none}}

/* Start here page: the important parts of /how-it-works/ (2026-09-28). The rail, outcomes and fact strip reuse the
   .hiw-* and .ln-* rules above; only the link row under the rail is new */
.xg-how-more{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:18px 0 0;font-size:13.5px;line-height:1.55;color:var(--muted)}
.xg-how-more .hw-more{margin-top:0;white-space:nowrap}
.xg-how-more span{flex:1 1 320px;min-width:0;text-wrap:pretty}
section.band.xg-how{padding-bottom:clamp(40px,5vw,72px)}
section.band.xg-facts{padding-top:clamp(48px,6vw,88px)}
