/* NovaPeptides location pages — shared styles */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,340..580&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Bebas+Neue&display=swap');
:root{
  /* PEPTIDE CARTEL — Bebas Neue display for big headings, Oswald available */
  --font-display:'Bebas Neue','Oswald',Georgia,'Times New Roman',serif;
  /* --navy is used BOTH as primary "ink" (dark text on light) AND as the primary
     action fill / dark-section bg. In this dark theme it becomes the primary LIGHT
     text tone, so every "dark text on light" usage flips to "light text on dark".
     The action fills + section backgrounds that used var(--navy) are re-skinned to
     gold / dark surfaces in the override block at the END of this file. */
  --navy:#F3EEE3; --navy-deep:#080808; --navy-surface:#1A1713;
  /* blue/green were the teal accent = now the GOLD accent (the "verb") */
  --blue:#C9A227; --blue-light:#E8C66B; --blue-light2:#E8C66B; --green:#C9A227;
  --ink:#F3EEE3; --body:#C9C3B6; --muted:#8E887A; --muted2:#8E887A;
  --surface:#141414; --surface2:#0F0F0F; --line:rgba(255,255,255,.08); --line2:rgba(201,162,39,.18);
  --wa:#25D366; --gold:#C9A227; --gold-light:#E8C66B;
  --label:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; --accent:#C9A227; --accent-on-dark:#E8C66B; --chip-fill:rgba(201,162,39,.12); --chip-ink:#E8C66B; --chip-line:rgba(201,162,39,.28); --star:#E8C66B;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --hair:rgba(201,162,39,.18); --hair-strong:rgba(201,162,39,.3); --grid-line:rgba(201,162,39,.05);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:#F7F6F2; color:var(--ink); font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2{ font-family:var(--font-display); font-weight:520; letter-spacing:-.016em; }
h3,h4{ font-family:'Plus Jakarta Sans',sans-serif; }
/* all numeric/price/data reads as instrument-grade */
.mono-num,.price,.npp-opt-p,.npp-cell-p,.pdp-pick-p,.pdp-add-p,.npc-total-v{ font-family:var(--mono); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
a{ color:var(--blue); }
img{ max-width:100%; height:auto; }
.wrap{ max-width:1100px; margin:0 auto; padding:0 var(--gutter); }
/* shared scientific eyebrow: mono kicker with a hairline lead rule */
.eyebrow{ font-family:var(--label); font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; gap:8px; }
.eyebrow::before{ content:''; width:22px; height:1px; background:currentColor; opacity:.55; flex:none; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

.compliance{ background:var(--navy); color:#b8e0c8; font-family:var(--label); font-size:11.5px; font-weight:500; letter-spacing:.02em; text-align:center; padding:9px 20px; }

/* screen-reader-only utility */
.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; }

/* Top scrolling announcement marquee (free shipping) */
.promo-marquee{ position:relative; overflow:hidden; background:var(--star); }
.promo-track{ display:flex; width:max-content; animation:promoScroll 34s linear infinite; }
.promo-seq{ display:flex; flex:none; }
.promo-item{ font-family:var(--label); font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#0b3b3f; padding:8px 0; white-space:nowrap; }
.promo-sep{ padding:8px 22px; color:#0b3b3f; opacity:.5; }
@keyframes promoScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.promo-marquee:hover .promo-track{ animation-play-state:paused; }
@media (prefers-reduced-motion: reduce){ .promo-track{ animation:none; } }
header.site{ position:sticky; top:0; z-index:40; background:rgba(255,255,255,.9); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.header-inner{ max-width:1100px; margin:0 auto; padding:13px var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.header-inner img{ height:38px; display:block; width:auto; }
.hnav{ display:flex; align-items:center; gap:24px; font-size:14.5px; font-weight:600; color:#3d5247; }
.hnav a{ text-decoration:none; }
.hnav a:hover{ color:var(--blue); }
.btn-enquire{ flex:none; background:var(--navy); color:#fff; text-decoration:none; font-weight:700; font-size:14px; padding:10px 18px; border-radius:10px; }
@media (max-width:720px){ .hnav{ display:none; } }
/* site-wide predictive search: a second sticky row inside the header, on every page */
.hsearch-row{ border-top:1px solid var(--line); padding:9px var(--gutter); }
.hsearch{ position:relative; display:flex; align-items:center; gap:9px; max-width:600px; margin:0 auto; background:#f1fafb; border:1.5px solid var(--line2); border-radius:12px; padding:0 12px; transition:border-color .15s,box-shadow .15s,background .15s; }
.hsearch:focus-within{ background:#fff; border-color:var(--blue); box-shadow:0 0 0 4px rgba(18,120,126,.12); }
.hsearch-ic{ color:var(--muted); flex:none; }
.hsearch-in{ flex:1; min-width:0; height:42px; border:0; background:transparent; font-size:16px; color:var(--navy); outline:none; -webkit-appearance:none; appearance:none; -webkit-tap-highlight-color:transparent; border-radius:0; }
.hsearch-in::placeholder{ color:#8aa294; }
.hsearch-in::-webkit-search-decoration, .hsearch-in::-webkit-search-cancel-button, .hsearch-in::-webkit-search-results-button, .hsearch-in::-webkit-search-results-decoration{ -webkit-appearance:none; appearance:none; display:none; }
/* the wrapper carries the focus ring; kill the input's own focus outline so it
   never draws a second nested box inside the field (the mobile "weird lines"). */
.hsearch-in:focus, .hsearch-in:focus-visible{ outline:none; box-shadow:none; }
.hsearch-x{ flex:none; width:28px; height:28px; border:0; background:rgba(11,58,63,.07); color:var(--muted); border-radius:50%; font-size:19px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.hsearch-x:hover{ background:rgba(11,58,63,.14); color:var(--navy); }
.hsearch-results{ position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:80; background:#fff; border:1px solid var(--line2); border-radius:14px; box-shadow:0 16px 42px rgba(11,40,42,.18); max-height:min(70vh,440px); overflow-y:auto; }
@media (max-width:720px){ .hsearch-row{ padding:8px var(--gutter-mobile); } }

/* Hero */
.lhero{ background:linear-gradient(135deg,#0b3b3f,#1a6144); color:#fff; position:relative; overflow:hidden; }
.lhero .glow{ position:absolute; top:-120px; right:-80px; width:460px; height:460px; border-radius:50%; background:radial-gradient(circle, rgba(70,179,122,.25), rgba(70,179,122,0) 66%); pointer-events:none; }
.lhero-inner{ position:relative; z-index:2; max-width:1100px; margin:0 auto; padding:70px 24px 64px; }
.lhero .eyebrow{ font-family:var(--label); font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-on-dark); margin-bottom:16px; }
.lhero .eyebrow::before{ opacity:.5; }
.lhero h1{ font-weight:500; font-size:clamp(34px,5vw,54px); line-height:1.05; letter-spacing:-.018em; margin:0 0 16px; max-width:820px; text-wrap:balance; }
.lhero p{ font-size:18px; line-height:1.6; color:#c6e8d3; margin:0 0 28px; max-width:600px; }
.lhero-cta{ display:flex; flex-wrap:wrap; gap:14px; }
.btn-wa{ display:inline-flex; align-items:center; gap:9px; background:var(--wa); color:#073b1e; text-decoration:none; font-weight:700; font-size:16px; padding:15px 26px; border-radius:12px; box-shadow:0 8px 22px rgba(37,211,102,.35); transition:transform .15s; }
.btn-wa:hover{ transform:translateY(-2px); }
.btn-ghost{ display:inline-flex; align-items:center; gap:9px; background:transparent; color:#fff; text-decoration:none; font-weight:700; font-size:16px; padding:15px 26px; border-radius:12px; border:1px solid rgba(255,255,255,.3); }
.btn-ghost:hover{ background:rgba(255,255,255,.08); }

/* Trust strip */
.trust{ background:var(--surface); border-bottom:1px solid var(--line); }
.trust-inner{ max-width:1100px; margin:0 auto; padding:18px 24px; display:flex; flex-wrap:wrap; gap:14px 30px; justify-content:center; }
.trust-item{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--navy); }
.trust-item svg{ flex:none; }

/* Sections */
section.block{ padding:var(--section-y-tight) 0; }
h2{ font-weight:500; font-size:clamp(27px,3.5vw,40px); line-height:1.14; letter-spacing:-.018em; color:var(--navy); margin:0 0 16px; text-wrap:balance; }
.block p{ font-size:16px; line-height:1.7; color:var(--body); }
.lead-block p{ max-width:760px; }

/* Kit cards (catalogue, no prices) */
.kits-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; margin-top:8px; }
.kit{ background:var(--surface); border:1px solid var(--line2); border-radius:var(--r-xl); padding:22px; display:flex; flex-direction:column; }
.kit-media{ background:#fff; border:1px solid var(--line2); border-radius:var(--r-md); padding:12px; margin-bottom:16px; }
.kit-media img{ width:100%; border-radius:10px; display:block; }
.kit .pill{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 10px; border-radius:999px; margin-bottom:10px; }
.pill.metabolic{ color:var(--blue); background:#e4f4f5; } .pill.recovery{ color:var(--green); background:#E4F4EC; }
.kit h3{ font-weight:800; font-size:24px; color:var(--navy); margin:0 0 6px; }
.kit h3 span{ font-weight:600; font-size:15px; color:var(--blue); display:block; margin-top:2px; }
.kit p{ font-size:14.5px; line-height:1.6; color:var(--body); margin:6px 0 18px; flex:1; }
.kit .kit-cta{ display:inline-flex; align-items:center; gap:8px; background:var(--navy); color:#fff; text-decoration:none; font-weight:700; font-size:14.5px; padding:12px 18px; border-radius:10px; align-self:flex-start; }
.kit .kit-cta:hover{ background:#155a56; }

/* COA mini */
.coa{ background:var(--navy); color:#fff; }
.coa-inner{ max-width:1100px; margin:0 auto; padding:48px 24px; display:flex; flex-wrap:wrap; align-items:center; gap:30px; }
.coa-inner img{ width:118px; border-radius:8px; box-shadow:0 10px 28px rgba(0,0,0,.4); flex:none; }
.coa-body{ flex:1 1 320px; min-width:260px; }
.coa-body .eyebrow{ font-size:11.5px; font-weight:500; letter-spacing:.12em; color:var(--gold-light); margin-bottom:8px; }
.coa-body h2{ color:#fff; font-size:24px; margin:0 0 8px; }
.coa-body p{ color:#a3c2ad; font-size:14.5px; line-height:1.6; margin:0; }

/* Cities grid */
.cities{ display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; }
.cities span{ background:var(--surface); border:1px solid var(--line2); border-radius:999px; padding:8px 16px; font-size:14px; font-weight:600; color:var(--navy); }

/* FAQ */
.faq-list{ display:flex; flex-direction:column; gap:12px; margin-top:8px; }
.faq-item{ background:#fff; border:1px solid var(--line2); border-radius:14px; overflow:hidden; }
.faq-q{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; cursor:pointer; width:100%; text-align:left; background:none; border:0; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:16px; color:var(--navy); }
.faq-q .sign{ flex:none; color:var(--blue); font-size:22px; font-weight:700; transition:transform .2s; }
.faq-item[open] .faq-q .sign{ transform:rotate(45deg); }
.faq-a{ margin:0; padding:0 20px 20px; font-size:15px; line-height:1.65; color:#5b7065; }

/* Other-locations links */
.loclinks{ background:var(--surface2); border-top:1px solid var(--line); }
.loclinks-inner{ max-width:1100px; margin:0 auto; padding:48px 24px; }
.loclinks h2{ font-size:22px; margin-bottom:18px; }
.loclinks-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.loclinks-grid a{ background:#fff; border:1px solid var(--line2); border-radius:10px; padding:10px 16px; font-size:14px; font-weight:600; color:var(--navy); text-decoration:none; }
.loclinks-grid a:hover{ border-color:var(--blue); color:var(--blue); }

/* CTA panel */
.cta-panel{ position:relative; overflow:hidden; background:linear-gradient(135deg,#0b3b3f,#1a6144); border-radius:24px; padding:52px 32px; text-align:center; max-width:900px; margin:0 auto; }
.cta-panel h2{ color:#fff; }
.cta-panel p{ color:#c6e8d3; max-width:460px; margin:0 auto 26px; }
.cta-actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* Footer */
footer.site{ background:var(--navy-deep); padding:46px 0 40px; }
footer .wrap{ max-width:1100px; }
.legal{ margin:24px 0 0; font-size:12.5px; line-height:1.7; color:#5f9e7d; }
.legal strong{ color:#a6d2b8; }
.legal-flag{ margin:14px 0 0; font-size:12px; font-weight:700; letter-spacing:.04em; color:#a6d2b8; }
footer a{ color:#c0e4cd; }

/* Floating WhatsApp */
.wa-float{ position:fixed; right:18px; bottom:18px; z-index:60; display:inline-flex; align-items:center; gap:10px; background:var(--wa); color:#fff; text-decoration:none; padding:13px 18px; border-radius:999px; font-weight:700; font-size:15px; box-shadow:0 10px 30px rgba(37,211,102,.45); transition:transform var(--dur,.22s) var(--ease,ease); }
.wa-float:hover{ transform:translateY(-2px); }
.wa-float svg{ flex:none; }
@media (max-width:560px){ .wa-float .lbl{ display:none; } .wa-float{ padding:14px; } }

/* Secondary floating CTA: WhatsApp community group (gold, bottom-left, less dominant than the green chat float) */
.community-float{ position:fixed; left:18px; bottom:18px; z-index:60; display:inline-flex; align-items:center; gap:9px; background:#e3b23c; color:#0b3b3f; text-decoration:none; padding:11px 16px; border-radius:999px; font-weight:700; font-size:14px; box-shadow:0 8px 22px rgba(138,106,0,.28); transition:transform var(--dur,.22s) var(--ease,ease), box-shadow var(--dur,.22s) var(--ease,ease); }
.community-float:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(138,106,0,.34); }
.community-float svg{ flex:none; }
@media (max-width:560px){ .community-float .lbl{ display:none; } .community-float{ padding:12px; } }

/* Invite-sent completion toast (created by site.js on data-community click) */
.np-invite-toast{ position:fixed; left:50%; bottom:96px; transform:translateX(-50%) translateY(14px); z-index:9998; display:flex; align-items:center; gap:13px; background:#fff; border:1px solid var(--line2); border-radius:16px; box-shadow:0 18px 46px rgba(11,58,63,.22); padding:15px 20px 15px 16px; max-width:calc(100vw - 32px); opacity:0; visibility:hidden; transition:opacity .3s var(--ease,ease), transform .3s var(--ease,ease), visibility .3s; }
.np-invite-toast.show{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.np-invite-check{ flex:none; width:40px; height:40px; border-radius:50%; background:#e4f4f5; display:flex; align-items:center; justify-content:center; transform:scale(.6); transition:transform .32s cubic-bezier(.34,1.56,.64,1); }
.np-invite-toast.show .np-invite-check{ transform:scale(1); }
.np-invite-check svg{ width:23px; height:23px; }
.np-invite-check svg path{ fill:none; stroke:#12787e; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.np-invite-txt strong{ display:block; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:15px; color:var(--navy); line-height:1.2; }
.np-invite-txt span{ display:block; font-size:13px; color:var(--muted); margin-top:3px; line-height:1.35; }
@media (prefers-reduced-motion: reduce){ .np-invite-toast{ transition:opacity .2s; } .np-invite-check{ transition:none; transform:scale(1); } }

/* =====================================================================
   2026 DESIGN SYSTEM LAYER  (additive — shared across every page)
   Tokens, accessibility base, motion, global nav + wayfinding.
   ===================================================================== */
:root{
  --bg:#0B0B0B; --navy-hover:#E8C66B; --maxw:1200px;
  /* hairline-first depth (dark theme: shadows are near-black, lifts read on border) */
  --shadow-card:0 1px 2px rgba(0,0,0,.5);
  --shadow-soft:0 10px 28px rgba(0,0,0,.55);
  --shadow-pop:0 18px 44px rgba(0,0,0,.6);
  /* tighter, crisper radius scale */
  --r-sm:8px; --r-md:12px; --r-lg:14px; --r-xl:16px; --r-pill:999px;
  --dur:.22s; --dur-slow:.5s; --ease:cubic-bezier(.4,0,.2,1);
  --header-h:64px;
  /* spacing scale + rhythm */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:80px; --space-10:96px; --space-11:120px;
  --gutter:28px; --gutter-mobile:20px;
  --section-y:clamp(64px,8vw,112px);
  --section-y-tight:clamp(48px,6vw,80px);
}

/* ---- accessibility base ---- */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--blue-light); outline-offset:2px; border-radius:4px;
}
.skip-link{ position:absolute; left:-9999px; top:0; z-index:210; background:var(--navy); color:#fff; padding:11px 18px; border-radius:0 0 10px 0; font-weight:700; text-decoration:none; }
.skip-link:focus{ left:0; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

/* widen shared containers to the unified max width */
.wrap, .header-inner, .lhero-inner, .trust-inner, .coa-inner, .loclinks-inner{ max-width:var(--maxw); }
footer .wrap{ max-width:var(--maxw); }

/* ---- scroll-reveal (opacity/transform only) ---- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ---- scroll progress bar ---- */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:90; background:linear-gradient(90deg,var(--blue),var(--blue-light)); transition:width .08s linear; }

/* ---- condensing sticky header ---- */
/* Header keeps a CONSTANT height (shadow-only on scroll) so the sticky
   section-nav below it sits flush — no shrink, no gap showing the page behind. */
header.site{ transition:box-shadow var(--dur) var(--ease); z-index:70; }
header.site.scrolled{ box-shadow:0 6px 24px rgba(11,58,63,.10); }

/* ---- primary nav (links + dropdowns) ---- */
.hnav{ gap:4px; }
.hnav > a, .navdrop-t{
  display:inline-flex; align-items:center; gap:5px; padding:9px 13px; border-radius:10px;
  background:none; border:0; cursor:pointer; text-decoration:none;
  font-family:'Inter',sans-serif; font-size:14.5px; font-weight:600; color:#3d5247;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.hnav > a:hover, .navdrop-t:hover, .navdrop[data-open] .navdrop-t{ background:var(--surface); color:var(--navy); }
.hnav > a.active{ color:var(--blue); background:var(--surface); }
.navdrop{ position:relative; }
.navdrop-t svg{ transition:transform var(--dur) var(--ease); }
.navdrop[data-open] .navdrop-t svg{ transform:rotate(180deg); }
.navdrop-menu{
  position:absolute; top:calc(100% + 8px); left:0; min-width:216px;
  background:#fff; border:1px solid var(--line2); border-radius:14px; box-shadow:var(--shadow-soft);
  padding:8px; display:flex; flex-direction:column; gap:1px;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
  z-index:75;
}
.navdrop[data-open] .navdrop-menu{ opacity:1; visibility:visible; transform:none; }
.navdrop-menu a{ display:block; padding:9px 12px; border-radius:9px; font-size:14px; font-weight:600; color:#3d5247; text-decoration:none; transition:background var(--dur) var(--ease), color var(--dur) var(--ease); }
.navdrop-menu a:hover, .navdrop-menu a:focus-visible{ background:var(--surface); color:var(--navy); }
.navdrop-menu a.lead{ color:var(--blue); }
.navdrop-menu .sep{ height:1px; background:var(--line); margin:6px 4px; }

/* ---- mobile nav toggle + drawer ---- */
.nav-toggle{ display:none; width:44px; height:44px; align-items:center; justify-content:center; background:none; border:1px solid var(--line2); border-radius:10px; cursor:pointer; color:var(--navy); }
.mobile-drawer{ position:fixed; inset:0; z-index:100; display:none; }
.mobile-drawer.open{ display:block; }
.mobile-drawer .md-backdrop{ position:absolute; inset:0; background:rgba(6,18,33,.5); backdrop-filter:blur(2px); }
.mobile-drawer .md-panel{ position:absolute; top:0; right:0; height:100%; width:min(86vw,360px); background:#fff; box-shadow:-10px 0 40px rgba(0,0,0,.2); padding:18px; overflow-y:auto; transform:translateX(100%); transition:transform var(--dur) var(--ease); display:flex; flex-direction:column; gap:4px; }
.mobile-drawer.open .md-panel{ transform:none; }
.md-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.md-close{ width:44px; height:44px; border:1px solid var(--line2); border-radius:10px; background:none; font-size:22px; color:var(--navy); cursor:pointer; }
.md-panel a{ display:block; padding:13px 12px; border-radius:10px; font-size:16px; font-weight:600; color:var(--navy); text-decoration:none; }
.md-panel a:hover{ background:var(--surface); }
.md-group > summary{ list-style:none; cursor:pointer; padding:13px 12px; border-radius:10px; font-size:16px; font-weight:700; color:var(--navy); display:flex; justify-content:space-between; align-items:center; }
.md-group > summary::-webkit-details-marker{ display:none; }
.md-group > summary::after{ content:"+"; color:var(--blue); font-weight:800; }
.md-group[open] > summary::after{ content:"\2013"; }
.md-group .md-sub{ padding:0 0 6px 10px; }
.md-sub a{ font-weight:500; font-size:15px; color:#3d5247; padding:10px 12px; }
.md-panel a.md-penguide{ background:var(--blue); color:#fff; font-weight:800; border-radius:12px; display:flex; align-items:center; gap:9px; margin:2px 0 8px; padding:15px 14px; box-shadow:0 6px 16px rgba(18,120,126,.28); }
.md-panel a.md-penguide:hover{ background:var(--navy-hover); }
.md-panel a.md-penguide svg{ flex:none; }
.md-cta{ margin-top:12px; }
@media (max-width:900px){
  .hnav{ display:none; }
  .nav-toggle{ display:inline-flex; }
}

/* ---- breadcrumbs ---- */
.breadcrumbs{ background:var(--surface2); border-bottom:1px solid var(--line); }
.breadcrumbs ol{ max-width:var(--maxw); margin:0 auto; padding:11px var(--gutter); list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-family:var(--label); font-weight:500; font-size:12.5px; }
.breadcrumbs li{ display:inline-flex; align-items:center; gap:7px; color:#4e6b57; }
.breadcrumbs li:not(:last-child)::after{ content:"\203A"; color:var(--muted2); }
.breadcrumbs a{ color:#4e6b57; text-decoration:none; font-weight:600; }
.breadcrumbs a:hover{ color:var(--blue); }
.breadcrumbs li[aria-current]{ color:var(--navy); font-weight:700; }

/* ---- sticky scrollspy section-nav (long pages) ---- */
.section-nav{ position:sticky; top:calc(var(--header-h) - 1px); z-index:35; background:rgba(255,255,255,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.section-nav-inner{ max-width:var(--maxw); margin:0 auto; padding:0 24px; display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
.section-nav-inner::-webkit-scrollbar{ display:none; }
.section-nav a{ flex:none; padding:13px 4px; margin:0 8px; font-size:13.5px; font-weight:600; color:var(--ink); text-decoration:none; border-bottom:2px solid transparent; white-space:nowrap; transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.section-nav a:hover{ color:var(--navy); }
.section-nav a.active{ color:var(--blue); border-bottom-color:var(--blue); }

/* ---- back to top ---- */
.back-to-top{ position:fixed; right:18px; bottom:84px; z-index:55; width:46px; height:46px; border-radius:50%; border:1px solid var(--line2); background:#fff; color:var(--navy); cursor:pointer; box-shadow:var(--shadow-soft); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur); }
.back-to-top.show{ opacity:1; visibility:visible; transform:none; }
@media (max-width:560px){ .back-to-top{ bottom:78px; } }

/* ---- refined shared hover/depth ---- */
.kit{ box-shadow:var(--shadow-card); transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.kit:hover{ transform:translateY(-2px); box-shadow:var(--shadow-soft); }
.cities span{ transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease); }

/* ---- header cluster (brand + enquire) ---- */
/* Prestige brand lockup: the NovaPeptides wordmark, a hairline rule, then
   PEPOLOGY in fine wide-tracked caps centred beneath, so they read as one mark. */
.brand{ display:inline-flex; align-items:center; flex:none; }
.brand img{ display:block; }
.brand-by{ margin-top:4px; padding-top:5px; border-top:1px solid var(--line2); font-family:var(--mono); font-size:8.5px; font-weight:700; letter-spacing:.42em; text-transform:uppercase; color:var(--blue); line-height:1; text-align:center; text-indent:.42em; white-space:nowrap; }
.brand-by b{ color:var(--blue); font-weight:700; }
.btn-enquire{ transition:background var(--dur) var(--ease), transform var(--dur) var(--ease); }
.btn-enquire:hover{ background:var(--navy-hover); transform:translateY(-1px); }
@media (max-width:900px){ .btn-enquire{ display:none; } }

/* ---- richer footer ---- */
footer.site .foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px; }
footer .foot-brand img{ height:32px; width:auto; margin-bottom:14px; }
footer .foot-brand p{ font-size:13.5px; line-height:1.6; color:#82bd9a; max-width:300px; margin:0; }
footer .foot-col .h{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#a6d2b8; margin-bottom:13px; }
footer .foot-col .links{ display:flex; flex-direction:column; gap:9px; }
footer .foot-col .links a{ font-size:14px; color:#c0e4cd; text-decoration:none; }
footer .foot-col .links a:hover{ color:#fff; }
footer .foot-locs{ margin-top:34px; padding-top:26px; border-top:1px solid rgba(255,255,255,.1); }
footer .foot-locs .h{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#a6d2b8; margin-bottom:14px; }
footer .loc-pills{ display:flex; flex-wrap:wrap; gap:8px; }
footer .loc-pills a{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:7px 14px; font-size:13px; font-weight:600; color:#c0e4cd; text-decoration:none; transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
footer .loc-pills a:hover{ border-color:var(--blue-light); color:#fff; }
@media (max-width:780px){ footer.site .foot-grid{ grid-template-columns:1fr 1fr; gap:26px; } footer .foot-brand{ grid-column:1 / -1; } }
@media (max-width:480px){ footer.site .foot-grid{ grid-template-columns:1fr; } }

/* =====================================================================
   COMMERCE — cart button, shop grid, product pages, checkout, cart drawer.
   Added 2026-09-08 with the checkout system (build-commerce.js). Tokens from
   :root above. Font stacks match the site (Plus Jakarta Sans / Inter / mono).
   ===================================================================== */

/* ---- header cart button ---- */
.cart-btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--line2); background:#fff; border-radius:12px; color:var(--navy); cursor:pointer; flex:none; transition:border-color .15s, color .15s, transform .12s; }
.cart-btn:hover{ border-color:var(--blue); color:var(--blue); }
.cart-btn.bump{ animation:cartBump .42s var(--ease); }
@keyframes cartBump{ 0%{transform:scale(1)} 30%{transform:scale(1.16)} 100%{transform:scale(1)} }
.cart-count{ position:absolute; top:-6px; right:-6px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--blue); color:#fff; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; font-family:var(--label); font-variant-numeric:tabular-nums; box-shadow:0 0 0 2px #fff; }

/* ---- shop hero + filter bar ---- */
/* predictive shop search (sits at the very top of the shop page) */
.sp-searchbar{ background:#fff; border-bottom:1px solid var(--line); padding:16px 0; }
.sp-searchbar .wrap{ max-width:720px; }
.sp-search{ position:relative; display:flex; align-items:center; gap:10px; background:#f1fafb; border:1.5px solid var(--line2); border-radius:14px; padding:0 12px; transition:border-color .15s,box-shadow .15s,background .15s; }
.sp-search:focus-within{ background:#fff; border-color:var(--blue); box-shadow:0 0 0 4px rgba(18,120,126,.12); }
.sp-search-ic{ color:var(--muted); flex:none; }
.sp-search-in{ flex:1; min-width:0; height:52px; border:0; background:transparent; font-size:16px; color:var(--navy); outline:none; }
.sp-search-in::placeholder{ color:#8aa294; }
.sp-search-in::-webkit-search-cancel-button{ -webkit-appearance:none; appearance:none; }
.sp-search-in:focus, .sp-search-in:focus-visible{ outline:none; box-shadow:none; }
.sp-search-x{ flex:none; width:30px; height:30px; border:0; background:rgba(11,58,63,.07); color:var(--muted); border-radius:50%; font-size:20px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.sp-search-x:hover{ background:rgba(11,58,63,.14); color:var(--navy); }
.sp-search-results{ position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:60; background:#fff; border:1px solid var(--line2); border-radius:14px; box-shadow:0 16px 42px rgba(11,40,42,.16); max-height:min(70vh,460px); overflow-y:auto; }
.sp-sr{ display:flex; align-items:center; gap:12px; padding:10px 14px; text-decoration:none; border-bottom:1px solid var(--line); }
.sp-sr:last-child{ border-bottom:0; }
.sp-sr:hover,.sp-sr.is-active{ background:#f1fafb; }
.sp-sr-img{ width:46px; height:46px; object-fit:contain; border:1px solid var(--line2); border-radius:9px; background:#fff; padding:2px; flex:none; }
.sp-sr-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.sp-sr-name{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14.5px; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp-sr-meta{ font-family:var(--label); font-size:11.5px; color:var(--muted); }
.sp-sr-out{ color:#9aa8a0; font-weight:600; }
.sp-sr-go{ flex:none; color:var(--muted); font-size:20px; font-weight:700; }
.sp-sr-empty{ padding:16px 14px; font-size:14px; color:var(--muted); text-align:center; }
@media (max-width:480px){ .sp-searchbar{ padding:12px 0; } .sp-search-in{ height:48px; } }

.sp-hero{ background:linear-gradient(180deg,#ecf8f9 0%,#fff 100%); border-bottom:1px solid var(--line); padding:clamp(38px,6vw,64px) 0 clamp(30px,4vw,44px); }
.sp-hero .wrap{ max-width:860px; text-align:center; }
.sp-eyebrow{ font-family:var(--label); font-weight:600; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-bottom:13px; }
.sp-hero h1{ font-family:var(--font-display); font-weight:500; font-size:clamp(32px,5vw,50px); line-height:1.06; color:var(--navy); margin:0 0 15px; letter-spacing:-.018em; }
.sp-hero .lead{ font-size:clamp(16px,2.2vw,18px); line-height:1.6; color:var(--muted); margin:0 auto; max-width:660px; }
.sp-ruo{ margin:18px 0 0; font-family:var(--label); font-size:11.5px; letter-spacing:.01em; color:#55705f; text-transform:none; }
.sp-filterbar{ position:sticky; top:var(--header-h,60px); z-index:30; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.sp-filters{ max-width:var(--maxw); margin:0 auto; padding:12px var(--gutter); display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; }
.sp-filters::-webkit-scrollbar{ display:none; }
.sp-chip{ flex:none; font-family:var(--label); font-size:13px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--navy); background:#f2f8f6; border:1px solid transparent; border-radius:999px; padding:9px 16px; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.sp-chip:hover{ border-color:var(--blue); color:var(--blue); }
.sp-chip.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.sp-wrap{ padding:clamp(28px,4vw,44px) 0 clamp(48px,6vw,80px); }
.sp-empty{ display:none; max-width:var(--maxw); margin:20px auto 0; padding:0 var(--gutter); text-align:center; color:var(--muted); font-size:15px; }
.sp-help{ padding:0 0 clamp(48px,6vw,80px); }
.sp-help-card{ max-width:820px; margin:0 auto; background:var(--navy); border-radius:24px; padding:clamp(32px,5vw,48px); text-align:center; color:#fff; }
.sp-help-card h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(23px,3.2vw,30px); margin:0 0 12px; }
.sp-help-card p{ font-size:16px; line-height:1.6; color:#bfe0cd; margin:0 auto 22px; max-width:520px; }
.sp-help-wa{ display:inline-flex; align-items:center; gap:10px; background:var(--wa); color:#0a2e1e; font-weight:800; font-size:16px; border-radius:14px; padding:15px 26px; text-decoration:none; box-shadow:0 10px 30px rgba(37,211,102,.3); transition:transform .15s; }
.sp-help-wa:hover{ transform:translateY(-2px); }

/* ---- product card ---- */
.npp-grid{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:repeat(4,1fr); gap:20px; align-items:stretch; }
.npp-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line2); border-radius:18px; overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s; }
.npp-card:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(11,58,63,.12); border-color:#c9e3e5; }
.npp-media{ background:#fff; border-bottom:1px solid var(--line); aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; padding:12px; overflow:hidden; }
/* width/height:100% reserves the box so lazy images still load and never collapse;
   object-fit:contain + object-position:center keeps the image centred in the square. */
.npp-media img{ width:100%; height:100%; object-fit:contain; object-position:center center; display:block; }
/* Catalogue card media: Full Kit (default) shows the chosen vial + the kit together, Single shows the vial alone. Mirrors the PDP hero. */
.npp-media-item{ display:flex; align-items:center; justify-content:center; min-width:0; height:100%; }
.npp-media-plus{ display:none; }
.npp-media[data-mode="single"] .npp-media-kit{ display:none; }
.npp-media[data-mode="single"] .npp-media-vial{ flex:1 1 auto; }
.npp-media[data-mode="kit"]{ gap:3px; }
.npp-media[data-mode="kit"] .npp-media-vial{ flex:0 0 38%; align-self:stretch; }
.npp-media[data-mode="kit"] .npp-media-kit{ flex:1 1 auto; align-self:stretch; }
.npp-media[data-mode="kit"] .npp-media-plus{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; color:var(--blue); font-size:clamp(13px,2.2vw,18px); line-height:1; }
.npp-body{ display:flex; flex-direction:column; gap:9px; padding:14px 15px 15px; flex:1; }
.npp-cat{ align-self:flex-start; font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:.02em; text-transform:none; color:var(--chip-ink); background:var(--chip-fill); border-radius:6px; padding:3px 9px; }
/* The name sits in a FIXED-HEIGHT box (2 lines tall) so every card is exactly
   the same height and the buy button never moves. The full name always shows:
   cart.js fitNames() scales the font down only for the long names until they
   fit the box (short names keep the full size). overflow:hidden is the no-JS
   fallback so a long name can never grow the card. */
.npp-name{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:16px; line-height:1.18; color:var(--navy); margin:0; height:40px; overflow:hidden; }
.npp-name a{ color:inherit; text-decoration:none; display:block; white-space:normal; overflow:hidden; }
.npp-name a:hover{ color:var(--blue); }
.npp-verify{ display:inline-flex; align-items:center; gap:5px; align-self:flex-start; font-family:var(--label); font-size:11.5px; font-weight:600; color:var(--chip-ink); text-decoration:none; background:var(--chip-fill); border:0; border-radius:999px; padding:4px 10px; min-height:23px; box-sizing:border-box; }
/* placeholder that reserves the verify chip's height when a product has no COA */
.npp-verify-none{ background:none; border-color:transparent; visibility:hidden; }
.npp-verify:hover{ background:#dcefef; }
.npp-verify svg{ flex:none; }
/* Strengths sit on ONE non-wrapping row (scrolls sideways if it overflows) so a
   product with one in-stock strength is the same height as one with five.
   Always reserves a row of height, even when empty, to keep cards uniform.
   Out-of-stock strengths are not rendered at all (removed in build-commerce.js),
   never greyed. */
.npp-strs{ display:flex; flex-wrap:nowrap; gap:6px; overflow-x:auto; min-height:29px; scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:x proximity; }
.npp-strs::-webkit-scrollbar{ display:none; }
.npp-str{ flex:0 0 auto; scroll-snap-align:start; font-family:var(--mono); font-size:12px; font-weight:600; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:8px; padding:5px 10px; cursor:pointer; transition:border-color .15s,background .15s,color .15s; }
.npp-str:hover{ border-color:var(--blue); }
.npp-str.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.npp-stock{ display:inline-flex; align-items:center; gap:4px; font-size:11.5px; font-weight:600; margin-bottom:8px; }
.npp-stock svg{ width:13px; height:13px; flex:none; }
.npp-stock-in{ color:var(--blue); }
.npp-stock-low{ color:#b4690e; }
.npp-stock-out{ color:#9aa8a0; }
.npp-opts{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.npp-opt{ position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; text-align:center; background:#fff; border:1.5px solid var(--line2); border-radius:12px; padding:10px 8px 9px; cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .12s; }
.npp-opt:hover:not(:disabled){ border-color:var(--blue); box-shadow:0 6px 16px rgba(11,58,63,.08); }
.npp-opt:active:not(:disabled){ transform:translateY(1px); }
.npp-opt:disabled{ opacity:.5; cursor:not-allowed; }
.npp-opt img{ width:38px; height:38px; object-fit:contain; }
.npp-opt-k{ font-size:10.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.npp-opt-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:16px; color:var(--navy); }
.npp-opt-add{ font-size:10.5px; font-weight:700; color:var(--blue); text-transform:uppercase; letter-spacing:.04em; }
.npp-opt-kit{ background:#f1fafb; border-color:#c9e3e5; }
.npp-details{ margin-top:auto; padding-top:4px; font-size:12.5px; font-weight:600; color:var(--muted); text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.npp-details:hover{ color:var(--blue); }
.npp-details svg{ width:14px; height:14px; }

/* ---- product page (PDP) ---- */
.pdp{ padding:clamp(24px,4vw,44px) 0 clamp(20px,3vw,32px); }
.pdp-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start; }
.pdp-gallery{ position:sticky; top:calc(var(--header-h) + 16px); }
.pdp-hero{ background:#fff; border:1px solid var(--line2); border-radius:20px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; padding:22px; box-shadow:var(--shadow-soft); }
.pdp-hero img{ max-width:100%; max-height:100%; object-fit:contain; }
.pdp-thumbs{ display:flex; gap:10px; margin-top:12px; }
.pdp-thumb{ width:64px; height:64px; border:1.5px solid var(--line2); border-radius:12px; background:#fff; padding:5px; cursor:pointer; }
.pdp-thumb.active{ border-color:var(--navy); }
.pdp-thumb img{ width:100%; height:100%; object-fit:contain; }
/* Hero composite: Single Vial shows the vial alone; Full Kit features the chosen vial + the kit side by side (vial left, kit right) with a + between. */
.pdp-hero-item{ flex:1 1 auto; min-width:0; align-self:stretch; display:flex; align-items:center; justify-content:center; }
.pdp-hero-plus{ display:none; }
.pdp-hero[data-mode="single"] .pdp-hero-kit{ display:none; }
.pdp-hero[data-mode="kit"]{ gap:clamp(6px,2vw,16px); padding:clamp(12px,3vw,20px); }
.pdp-hero[data-mode="kit"] .pdp-hero-vial{ flex:0 0 40%; }
.pdp-hero[data-mode="kit"] .pdp-hero-kit{ flex:1 1 auto; }
.pdp-hero[data-mode="kit"] .pdp-hero-plus{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(20px,3vw,30px); color:var(--blue); line-height:1; }
/* Full-Kit education: appears only when Full Kit is selected, lists exactly what the kit adds. */
.pdp-kitdesc{ margin:4px 0 16px; background:#f1fafb; border:1px solid #c9e3e5; border-radius:16px; padding:14px 16px; }
.pdp-kitdesc-h{ display:flex; align-items:flex-start; gap:8px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:13.5px; line-height:1.35; color:var(--navy); margin-bottom:10px; }
.pdp-kitdesc-h svg{ color:var(--blue); flex:none; margin-top:1px; }
.pdp-kitdesc-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:7px 16px; }
.pdp-kitdesc-list li{ font-size:12.5px; line-height:1.35; color:var(--body); font-weight:600; }
.pdp-kitdesc-list .kd-q{ font-weight:800; color:var(--blue); margin-right:2px; }
@media (max-width:520px){ .pdp-kitdesc-list{ grid-template-columns:1fr; } }
.pdp-cat{ display:inline-block; font-family:var(--label); font-size:11.5px; font-weight:600; letter-spacing:.02em; text-transform:none; color:var(--chip-ink); background:var(--chip-fill); border-radius:6px; padding:3px 10px; }
.pdp-name{ font-family:var(--font-display); font-weight:500; font-size:clamp(28px,3.6vw,40px); line-height:1.08; letter-spacing:-.018em; color:var(--navy); margin:10px 0 8px; }
.pdp-blurb{ font-size:15.5px; line-height:1.6; color:var(--body); margin:0 0 14px; }
/* conversion copy: blend contents subtitle + hook + read-more body */
.pdp-compounds{ display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.01em; color:var(--blue); background:#e7f4f5; border-radius:999px; padding:5px 12px; margin:0 0 12px; }
.pdp-desc{ margin:0 0 14px; }
.pdp-hook{ font-size:16px; line-height:1.62; color:var(--navy); font-weight:600; margin:0; }
.pdp-more{ margin-top:11px; }
.pdp-more p{ font-size:15px; line-height:1.7; color:var(--body); margin:0; }
.pdp-more-btn{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; font-size:14px; font-weight:700; color:var(--blue); }
.pdp-more-btn:hover{ color:var(--navy); }
.pdp-more-btn svg{ transition:transform .18s ease; }
.pdp-more-btn.is-open svg{ transform:rotate(180deg); }
.pdp-verify-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--blue); background:#ebf6f7; border:1px solid var(--line2); border-radius:999px; padding:6px 12px; text-decoration:none; margin-bottom:16px; }
.pdp-field{ margin:16px 0; }
.pdp-label{ display:block; font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.pdp-strs{ display:flex; flex-wrap:wrap; gap:8px; }
.pdp-str{ font-family:var(--mono); font-size:13px; font-weight:600; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 14px; cursor:pointer; transition:border-color .15s,background .15s,color .15s; }
.pdp-str:hover{ border-color:var(--blue); }
.pdp-str.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
.pdp-str-out{ opacity:.5; text-decoration:line-through; }
.pdp-stock{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:600; margin:4px 0 12px; }
.pdp-stock svg{ flex:none; }
.pdp-stock-in{ color:var(--blue); } .pdp-stock-low{ color:#b4690e; } .pdp-stock-out{ color:#9aa8a0; }
.pdp-choice{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.pdp-pick{ position:relative; display:flex; flex-direction:column; align-items:center; gap:5px; text-align:center; background:#fff; border:2px solid var(--line2); border-radius:16px; padding:18px 12px 14px; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.pdp-pick:hover{ border-color:var(--blue); }
.pdp-pick.active{ border-color:var(--navy); box-shadow:0 8px 20px rgba(11,58,63,.1); }
.pdp-pick img{ width:64px; height:64px; object-fit:contain; }
/* Full Kit pick card shows the chosen vial + the kit together, so it's clear you get both. */
.pdp-pick-combo{ display:flex; align-items:center; justify-content:center; gap:4px; height:64px; width:100%; }
.pdp-pick-combo img{ width:auto; height:auto; max-height:60px; object-fit:contain; }
.pdp-pick-combo .pdp-pick-vial{ max-width:40%; }
.pdp-pick-combo .pdp-pick-kitimg{ max-width:58%; }
.pdp-pick-plus{ flex:none; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:13px; color:var(--blue); line-height:1; }
.pdp-pick-k{ font-weight:800; font-size:14px; color:var(--navy); font-family:'Plus Jakarta Sans',sans-serif; }
.pdp-pick-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:20px; color:var(--navy); }
.pdp-pick-note{ font-size:11px; color:var(--muted); line-height:1.3; }
.pdp-pick-kit.active{ border-color:var(--blue); }
.pdp-kitflag{ position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:3px 9px; border-radius:999px; white-space:nowrap; }
.pdp-add{ width:100%; display:inline-flex; align-items:center; justify-content:center; gap:10px; background:var(--navy); color:#fff; font-weight:800; font-size:16px; border:0; border-radius:14px; padding:15px; cursor:pointer; transition:background .15s,transform .15s; }
.pdp-add:hover:not(:disabled){ background:var(--navy-hover); transform:translateY(-1px); }
.pdp-add:disabled{ opacity:.5; cursor:not-allowed; }
.pdp-add svg{ flex:none; }
.pdp-add-p{ font-family:'Plus Jakarta Sans',sans-serif; opacity:.85; }
.pdp-upsell{ margin-top:14px; }
.pdp-trust{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.pdp-trust li{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--body); font-weight:600; }
.pdp-trust svg{ color:var(--blue); flex:none; }
.pdp-ruo{ margin-top:16px; font-family:var(--label); font-size:11px; letter-spacing:.01em; text-transform:none; color:#7a8f83; }
.pdp-info{ border-top:1px solid var(--line); background:var(--surface2); padding:clamp(36px,5vw,64px) 0; }
.pdp-info-wrap{ max-width:820px; margin:0 auto; padding:0 var(--gutter); }
.pdp-info h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:24px; color:var(--navy); margin:0 0 12px; }
.pdp-info-main > h2:not(:first-child){ margin-top:36px; }
.pdp-info p{ font-size:15px; line-height:1.65; color:var(--body); margin:0; }
/* Full Kit photo leads the section (visual-first), sitting under the heading and
   above the contents list. Capped so the square image never dominates. */
.pdp-kit-figure{ margin:0 0 16px; max-width:360px; border:1px solid var(--line2); border-radius:16px; overflow:hidden; background:#fff; box-shadow:var(--shadow-green-sm,0 2px 8px rgba(11,40,42,.06)); }
.pdp-kit-figure img{ display:block; width:100%; height:auto; }
/* Full Kit contents as a bordered spec grid (1px gridlines via gap + bg). */
.pdp-kit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:16px 0 0; background:var(--line2); border:1px solid var(--line2); border-radius:14px; overflow:hidden; }
.pdp-kit-cell{ background:#fff; padding:14px 16px; display:flex; flex-direction:column; gap:3px; }
.pdp-kit-cell-span{ grid-column:1 / -1; }
.pdp-kit-cell .k-qty{ font-size:12px; font-weight:700; letter-spacing:.02em; color:var(--blue); }
.pdp-kit-cell .k-name{ font-size:14.5px; font-weight:700; color:var(--navy); line-height:1.3; }
.pdp-verify{ margin:28px 0 0; background:#fff; border:1px solid var(--line2); border-radius:18px; padding:22px; }
.pdp-verify-head{ display:flex; align-items:center; gap:8px; color:var(--navy); font-size:16px; margin-bottom:8px; }
.pdp-verify-head svg{ color:var(--blue); flex:none; }
.pdp-verify p{ margin:0 0 12px; font-size:14.5px; }
.pdp-verify-meta{ display:flex; gap:16px; flex-wrap:wrap; font-family:var(--label); font-size:12px; color:var(--muted); margin-bottom:14px; }
.pdp-verify-btn{ display:inline-flex; align-items:center; gap:6px; background:var(--blue); color:#fff; font-weight:700; font-size:14px; border-radius:12px; padding:11px 18px; text-decoration:none; }
.pdp-verify-btn:hover{ background:#0f6b70; }
.pdp-faqs{ margin-top:10px; }
.pdp-faq-item{ border-bottom:1px solid var(--line); padding:14px 0; }
.pdp-faq-item summary{ font-weight:700; color:var(--navy); cursor:pointer; list-style:none; font-size:15px; }
.pdp-faq-item summary::-webkit-details-marker{ display:none; }
.pdp-faq-item p{ margin:10px 0 0; font-size:14.5px; }
.pdp-up{ display:flex; align-items:center; gap:12px; background:#f1fafb; border:1px solid #c9e3e5; border-radius:16px; padding:12px 14px; }
.pdp-up img{ width:48px; height:48px; object-fit:contain; border:1px solid var(--line2); border-radius:10px; background:#fff; padding:3px; flex:none; }
.pdp-up-t{ flex:1; min-width:0; display:flex; flex-direction:column; }
.pdp-up-eyebrow{ font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--blue); }
.pdp-up-t strong{ font-size:14px; color:var(--navy); }
.pdp-up-note{ font-size:12px; color:var(--muted); }
.pdp-up-add{ background:var(--blue); color:#fff; border:0; border-radius:10px; padding:9px 16px; font-weight:700; cursor:pointer; flex:none; }
.pdp-up-added{ color:var(--blue); font-weight:700; font-size:13px; flex:none; }

/* ---- checkout ---- */
.co{ padding:clamp(28px,4vw,52px) 0 clamp(48px,6vw,80px); }
.co-wrap{ max-width:1040px; margin:0 auto; padding:0 var(--gutter); }
.co-h1{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(28px,4vw,42px); color:var(--navy); margin:0 0 24px; }
.co-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(24px,3vw,44px); align-items:start; }
.co-form{ display:flex; flex-direction:column; gap:26px; }
.co-sec h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:20px; color:var(--navy); margin:0 0 14px; }
.co-fields{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.co-f{ display:flex; flex-direction:column; }
.co-f-2{ grid-column:1/-1; }
.co-f-split{ grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.co-f-split > div{ display:flex; flex-direction:column; }
.co-f label, .co-f-split label{ font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.co-f input, .co-f select, .co-f-split input, .co-f-split select{ height:46px; border:1px solid var(--line2); border-radius:12px; padding:0 14px; font-size:15px; background:#fff; color:var(--navy); font-family:inherit; }
.co-f input:focus, .co-f select:focus, .co-f-split input:focus, .co-f-split select:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(18,120,126,.15); }
.co-ship-opt{ display:flex; align-items:center; justify-content:space-between; gap:12px; border:2px solid var(--navy); background:#f1fafb; border-radius:14px; padding:14px 16px; }
.co-ship-t b{ display:block; color:var(--navy); } .co-ship-t small{ color:var(--muted); font-size:12px; }
.co-ship-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; color:var(--navy); }
.co-free{ color:var(--blue); }
.co-ship-note{ font-size:12.5px; color:var(--muted); margin:8px 0 0; }
.co-pay{ border:1px solid var(--line2); border-radius:16px; padding:18px; }
.co-pay-head{ display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.co-pay-badge{ background:var(--navy); color:#fff; font-weight:700; font-size:13px; border-radius:8px; padding:5px 10px; }
.co-pay-head > span:last-child{ font-size:13px; color:var(--muted); }
.co-bank-row{ display:flex; align-items:center; gap:10px; background:#f6faf8; border-radius:10px; padding:10px 12px; margin-bottom:8px; }
.co-bank-k{ font-size:11px; color:var(--muted); width:120px; flex:none; text-transform:uppercase; letter-spacing:.04em; }
.co-bank-v{ font-family:var(--mono); font-weight:600; color:var(--navy); flex:1; word-break:break-all; }
.co-copy{ background:#fff; border:1px solid var(--line2); border-radius:8px; padding:6px 10px; font-size:12px; font-weight:600; color:var(--muted); cursor:pointer; flex:none; }
.co-copy:hover{ border-color:var(--blue); color:var(--blue); }
.co-bank-note, .cos-bank-note{ font-size:12px; color:#8a6a00; background:#fdf6e3; border:1px solid #f0e2b8; border-radius:10px; padding:10px 12px; margin:8px 0 0; line-height:1.5; }
.co-note{ font-size:12.5px; color:var(--muted); margin:12px 0 0; line-height:1.5; }
.co-error{ color:#b4290e; font-weight:600; font-size:14px; }
.co-submit{ background:var(--navy); color:#fff; border:0; border-radius:14px; padding:16px; font-weight:800; font-size:16px; cursor:pointer; transition:background .15s; }
.co-submit:hover{ background:var(--navy-hover); }
.co-submit.loading{ opacity:.7; cursor:progress; }
.co-summary{ background:#fff; border:1px solid var(--line2); border-radius:18px; padding:22px; position:sticky; top:calc(var(--header-h) + 16px); box-shadow:var(--shadow-soft); }
.co-summary h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:20px; color:var(--navy); margin:0 0 16px; }
.co-lines{ list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:10px; }
.co-lines li{ display:flex; justify-content:space-between; gap:12px; font-size:14px; color:var(--body); }
.co-line-n em{ font-style:normal; font-family:var(--label); font-variant-numeric:tabular-nums; font-size:12px; color:var(--muted); }
.co-line-kit{ font-size:10.5px; font-weight:700; color:var(--blue); background:#e4f4f5; border-radius:6px; padding:1px 6px; }
.co-line-q{ font-family:var(--label); font-variant-numeric:tabular-nums; font-size:12px; color:var(--muted); }
.co-line-p{ font-family:var(--label); font-variant-numeric:tabular-nums; color:var(--navy); flex:none; }
.co-line-was{ color:var(--muted); text-decoration:line-through; font-weight:600; margin-right:3px; }
.co-line-save{ font-size:10.5px; font-weight:800; color:#177a44; background:#e6f6ec; border:1px solid #bfe6cd; border-radius:6px; padding:1px 6px; letter-spacing:.02em; }
.co-sum{ border-top:1px solid var(--line); padding-top:14px; display:flex; flex-direction:column; gap:9px; }
.co-sum-r{ display:flex; justify-content:space-between; font-size:14px; color:var(--muted); }
.co-sum-r > span:last-child{ font-family:var(--label); font-variant-numeric:tabular-nums; color:var(--navy); }
.co-sum-save > span{ color:var(--blue) !important; }
.co-sum-total{ border-top:1px solid var(--line); padding-top:12px; font-size:16px; }
.co-sum-total > span{ font-weight:800; color:var(--navy) !important; font-family:'Plus Jakarta Sans',sans-serif; }
.co-empty{ text-align:center; padding:60px 0; grid-column:1/-1; }
.co-empty-btn{ display:inline-block; margin-top:16px; background:var(--navy); color:#fff; padding:12px 24px; border-radius:12px; text-decoration:none; font-weight:700; }

/* ---- success ---- */
.cos{ padding:clamp(40px,6vw,72px) var(--gutter); }
.cos-card{ max-width:560px; margin:0 auto; background:#fff; border:1px solid var(--line2); border-radius:22px; padding:clamp(28px,4vw,44px); box-shadow:var(--shadow-soft); text-align:center; }
.cos-ic{ width:56px; height:56px; margin:0 auto 18px; border-radius:50%; background:#e4f4f5; color:var(--blue); font-size:28px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.cos-eyebrow{ font-family:var(--label); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin:0 0 8px; }
.cos-h1{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(28px,4vw,38px); color:var(--navy); margin:0 0 10px; }
.cos-lead{ font-size:15.5px; line-height:1.6; color:var(--body); margin:0 0 18px; }
.cos-ref{ display:inline-block; background:#f1f7f3; border:1px solid var(--line2); border-radius:999px; padding:7px 16px; font-family:var(--mono); font-size:14px; color:var(--navy); margin:0 0 22px; }
.cos-bank{ text-align:left; border:1px solid var(--line2); border-radius:16px; padding:18px; margin-bottom:22px; }
.cos-bank-head{ display:flex; align-items:center; gap:8px; font-weight:700; color:var(--navy); margin-bottom:12px; }
.cos-wa{ display:flex; align-items:center; justify-content:center; gap:10px; background:var(--wa); color:#073b1e; font-weight:800; font-size:16px; border-radius:14px; padding:15px; text-decoration:none; }
.cos-wa:hover{ background:#1eb658; }
.cos-wa-note{ font-size:13px; color:var(--muted); margin:10px 0 18px; }
.cos-cont{ color:var(--muted); font-weight:600; text-decoration:none; font-size:14px; }
.cos-cont:hover{ color:var(--blue); }
.cos-empty{ text-align:center; }
.cos-btn{ display:inline-block; margin-top:14px; background:var(--navy); color:#fff; padding:12px 24px; border-radius:12px; text-decoration:none; }

/* ---- cart drawer ---- */
.npc-root{ position:fixed; inset:0; z-index:200; visibility:hidden; }
.npc-root.open{ visibility:visible; }
.npc-backdrop{ position:absolute; inset:0; background:rgba(6,24,16,.5); opacity:0; transition:opacity .25s var(--ease); }
.npc-root.open .npc-backdrop{ opacity:1; }
.npc-drawer{ position:absolute; top:0; right:0; height:100%; width:min(420px,100vw); background:#fff; box-shadow:-12px 0 40px rgba(0,0,0,.2); display:flex; flex-direction:column; transform:translateX(100%); transition:transform .28s var(--ease); }
.npc-root.open .npc-drawer{ transform:none; }
.npc-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line); flex:none; }
.npc-title{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:18px; color:var(--navy); }
.npc-headcount{ color:var(--muted); font-weight:600; }
.npc-x{ background:none; border:0; font-size:26px; line-height:1; color:var(--muted); cursor:pointer; padding:0 4px; }
/* The whole middle (ship bar, Stack & Save, items, upsell) scrolls as one, so a
   tall footer or upsell can never squeeze the product list out of view. Only the
   header and the footer/checkout stay pinned. min-height:0 lets it actually shrink
   and scroll inside the flex column. */
.npc-scroll{ flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; display:flex; flex-direction:column; }
.npc-ship{ padding:14px 20px 0; flex:none; }
.npc-ship-bar span{ display:block; margin-bottom:6px; font-size:12px; font-weight:600; color:var(--muted); }
.npc-ship-bar.unlocked span{ color:var(--blue); }
.npc-track{ height:6px; border-radius:999px; background:#e7f0ea; overflow:hidden; }
.npc-track i{ display:block; height:100%; border-radius:999px; background:var(--blue); transition:width .3s; }
/* Stack & Save nudge (reward-ladder badge) */
.npc-stack{ padding:12px 20px 0; flex:none; }
.npc-stack[hidden]{ display:none; }
.npc-stack-card{ position:relative; overflow:hidden; border:1px solid var(--chip-line); background:linear-gradient(180deg,#f3fbfb,#eaf5f5); border-radius:14px; padding:12px 13px; }
.npc-stack-card.is-max{ border-color:var(--blue); background:linear-gradient(180deg,#e7f7f0,#ddf2ea); }
.npc-stack-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
.npc-stack-eyebrow{ display:inline-flex; align-items:center; gap:6px; font-family:var(--label); font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--blue); }
.npc-stack-eyebrow svg{ width:14px; height:14px; flex:none; }
.npc-stack-pct{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:12px; color:#fff; background:var(--blue); border-radius:999px; padding:3px 10px; white-space:nowrap; box-shadow:0 1px 4px rgba(18,120,126,.28); }
.npc-stack-card.is-max .npc-stack-pct{ background:var(--navy); }
.npc-stack-msg{ font-size:12.5px; line-height:1.45; color:var(--body); }
.npc-stack-msg strong{ color:var(--navy); font-weight:800; }
.npc-stack-pips{ display:flex; gap:5px; margin-top:10px; }
.npc-stack-pips i{ flex:1; height:6px; border-radius:999px; background:#d3e7e4; transition:background .35s ease,transform .35s ease; }
.npc-stack-pips i.on{ background:linear-gradient(90deg,var(--blue-light),var(--blue)); }
.npc-stack-card.is-max .npc-stack-pips i{ background:linear-gradient(90deg,var(--blue),var(--navy)); }
.npc-stack-card.is-max::after{ content:''; position:absolute; top:0; left:-60%; width:45%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent); transform:skewX(-18deg); animation:npcShine 2.4s ease .1s 1; }
@keyframes npcShine{ from{ left:-60%; } to{ left:130%; } }
@media (prefers-reduced-motion: reduce){ .npc-stack-card.is-max::after{ animation:none; display:none; } }
.npc-items{ padding:14px 20px; display:flex; flex-direction:column; gap:14px; }
.npc-item{ display:flex; gap:12px; align-items:center; }
.npc-thumb{ width:54px; height:54px; object-fit:contain; border:1px solid var(--line2); border-radius:10px; background:#fff; padding:3px; flex:none; }
.npc-item-main{ flex:1; min-width:0; }
.npc-item-name{ font-size:13.5px; font-weight:600; color:var(--navy); line-height:1.3; }
.npc-str{ font-family:var(--label); font-variant-numeric:tabular-nums; font-size:11px; color:var(--muted); }
.npc-kit{ font-size:10px; font-weight:700; color:var(--blue); background:#e4f4f5; border-radius:5px; padding:1px 5px; }
.npc-qty{ display:flex; align-items:center; gap:6px; margin-top:7px; }
.npc-q{ width:26px; height:26px; border:1px solid var(--line2); border-radius:7px; background:#fff; font-size:16px; line-height:1; color:var(--navy); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.npc-q:hover{ border-color:var(--blue); }
.npc-qn{ font-family:var(--label); font-variant-numeric:tabular-nums; font-size:13px; min-width:22px; text-align:center; }
.npc-rm{ margin-left:8px; background:none; border:0; font-size:12px; color:var(--muted); cursor:pointer; text-decoration:underline; }
.npc-item-price{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; color:var(--navy); font-size:14px; flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:1px; text-align:right; }
/* Spring Stack bundle line: wide 3-vial thumb + was/now strikethrough + save chip */
.npc-thumb-wide{ width:120px; height:56px; padding:4px 5px; }
.npc-was{ font-family:var(--label); font-weight:600; font-size:11.5px; color:var(--muted); text-decoration:line-through; }
.npc-item-sale .npc-now{ color:#1f8f4e; }
.npc-save{ display:inline-block; margin-top:6px; font-family:var(--label); font-weight:800; font-size:10.5px; letter-spacing:.02em; color:#177a44; background:#e6f6ec; border:1px solid #bfe6cd; border-radius:6px; padding:2px 7px; }
/* Free gift line (auto 3ml reconstitution needle): green FREE price + a badge. */
.npc-free{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:13px; letter-spacing:.04em; color:#1f8f4e; }
.npc-gift-tag{ display:inline-block; margin-top:5px; font-family:var(--label); font-weight:800; font-size:10.5px; letter-spacing:.02em; color:#177a44; background:#e6f6ec; border:1px solid #bfe6cd; border-radius:6px; padding:2px 7px; }
@media (max-width:480px){ .npc-thumb-wide{ width:96px; height:48px; padding:3px 4px; } .npc-save{ font-size:10px; padding:2px 6px; } }
.npc-empty{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--muted); gap:8px; padding:20px; }
.npc-empty-ic{ font-size:40px; }
.npc-browse{ margin-top:8px; background:var(--navy); color:#fff; padding:10px 20px; border-radius:12px; text-decoration:none; font-weight:700; }
.npc-upsell:not(:empty){ padding:0 20px 6px; flex:none; }
.npc-up{ display:flex; align-items:center; gap:10px; background:#f1fafb; border:1px solid #c9e3e5; border-radius:12px; padding:8px 10px; }
.npc-up img{ width:40px; height:40px; object-fit:contain; border:1px solid var(--line2); border-radius:8px; background:#fff; padding:2px; flex:none; }
.npc-up-t{ flex:1; min-width:0; display:flex; flex-direction:column; }
.npc-up-t strong{ font-size:13px; color:var(--navy); }
.npc-up-t span{ font-size:11px; color:var(--muted); }
.npc-up-add{ background:var(--blue); color:#fff; border:0; border-radius:9px; padding:8px 14px; font-weight:700; font-size:13px; cursor:pointer; flex:none; }
.npc-up:has(.npc-up-note),.npc-up:has(.npc-up-what){ align-items:flex-start; }
.npc-up-note{ font-size:10.5px; font-weight:700; color:#157a42; background:#e6f6ec; border:1px solid #bfe6cd; border-radius:7px; padding:4px 8px; margin:4px 0 2px; line-height:1.35; }
.npc-up-what{ margin:4px 0 2px; }
.npc-up-what summary{ cursor:pointer; list-style:none; font-size:11.5px; font-weight:700; color:var(--navy); display:inline-flex; align-items:center; gap:4px; }
.npc-up-what summary::-webkit-details-marker{ display:none; }
.npc-up-what summary::after{ content:"\203a"; font-size:14px; line-height:1; color:var(--muted); transform:rotate(90deg); transition:transform .2s; }
.npc-up-what[open] summary::after{ transform:rotate(-90deg); }
.npc-up-what ul{ margin:5px 0 0; padding-left:16px; }
.npc-up-what li{ font-size:11px; color:var(--muted); line-height:1.5; }
.npc-foot{ border-top:1px solid var(--line); padding:16px 20px calc(16px + env(safe-area-inset-bottom)); flex:none; }
.npc-row{ display:flex; justify-content:space-between; font-size:14px; color:var(--muted); margin-bottom:8px; }
.npc-row > span:last-child{ font-family:var(--label); font-variant-numeric:tabular-nums; color:var(--navy); }
.npc-row-save > span{ color:var(--blue) !important; }
.npc-free{ color:var(--blue); }
.npc-total{ font-size:16px; border-top:1px solid var(--line); padding-top:10px; margin-top:2px; }
.npc-total > span:last-child{ font-weight:800; font-family:'Plus Jakarta Sans',sans-serif; }
.npc-checkout{ display:block; text-align:center; background:var(--navy); color:#fff; font-weight:800; font-size:16px; border-radius:14px; padding:15px; text-decoration:none; margin:12px 0 8px; transition:background .15s; }
.npc-checkout:hover{ background:var(--navy-hover); }
.npc-continue{ display:block; width:100%; background:none; border:0; color:var(--muted); font-weight:600; font-size:14px; cursor:pointer; padding:6px; }
.npc-continue:hover{ color:var(--navy); }
.npc-trust{ margin:14px 0 2px; padding-top:14px; border-top:1px solid var(--line); }
.npc-pay{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.npc-pb{ height:26px; width:auto; flex:none; border-radius:5px; filter:drop-shadow(0 1px 1.5px rgba(11,58,63,.07)); }
.npc-trust-lines{ display:flex; flex-direction:column; gap:7px; margin-top:12px; }
.npc-trust-b{ display:flex; align-items:flex-start; gap:8px; font-size:12px; font-weight:600; color:var(--muted); }
.npc-trust-b > span{ flex:1; min-width:0; line-height:1.35; }
.npc-trust-b svg{ flex:none; width:14px; height:14px; margin-top:1px; color:var(--blue); }
.npc-toast{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(16px); z-index:210; background:var(--navy); color:#fff; padding:12px 18px; border-radius:12px; font-size:14px; box-shadow:0 14px 34px rgba(11,58,63,.3); opacity:0; visibility:hidden; transition:opacity .25s,transform .25s,visibility .25s; display:flex; align-items:center; gap:8px; max-width:calc(100vw - 32px); }
.npc-toast.show{ opacity:1; visibility:visible; transform:translateX(-50%); }
.npc-toast-ic{ color:var(--blue-light); font-weight:800; }
.npc-toast strong{ font-weight:700; }

/* Out-of-stock removal notice (np-assets/cart.js pruneOutOfStock). */
.npc-oos{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(16px); z-index:215; background:#8a1a12; color:#fff; padding:13px 16px 13px 18px; border-radius:12px; font-size:13.5px; line-height:1.4; box-shadow:0 14px 34px rgba(138,26,18,.33); opacity:0; visibility:hidden; transition:opacity .25s,transform .25s,visibility .25s; display:flex; align-items:flex-start; gap:10px; max-width:calc(100vw - 32px); width:420px; }
.npc-oos.show{ opacity:1; visibility:visible; transform:translateX(-50%); }
.npc-oos-ic{ font-size:16px; line-height:1.3; flex:0 0 auto; }
.npc-oos strong{ font-weight:800; }
.npc-oos-x{ background:none; border:0; color:#fff; font-size:20px; line-height:1; cursor:pointer; padding:0 2px; margin-left:auto; opacity:.8; flex:0 0 auto; }
.npc-oos-x:hover{ opacity:1; }

/* ---- FOMO recent-purchase popup (np-assets/fomo.js) ----
   Bottom-LEFT so it clears the bottom-right WhatsApp bubble. Sits above page
   content but below the cart drawer + toast. */
.npf{ position:fixed; left:16px; bottom:18px; z-index:120; width:330px; max-width:calc(100vw - 32px);
  opacity:0; visibility:hidden; transform:translateY(14px); pointer-events:none;
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility .45s; }
.npf.show{ opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.npf-card{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer;
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:11px 34px 11px 11px;
  box-shadow:0 14px 38px rgba(11,40,42,.16); font-family:'Inter',sans-serif; -webkit-tap-highlight-color:transparent; }
.npf-card:hover{ border-color:var(--line2); box-shadow:0 18px 46px rgba(11,40,42,.22); }
.npf-thumb{ position:relative; flex:none; width:46px; height:46px; border:1px solid var(--line2); border-radius:11px; background:#fff; }
.npf-thumb img{ width:100%; height:100%; object-fit:contain; padding:4px; border-radius:11px; }
.npf-tick{ position:absolute; right:-5px; bottom:-5px; width:19px; height:19px; border-radius:50%; background:var(--blue); border:2px solid #fff; display:flex; align-items:center; justify-content:center; }
.npf-tick svg{ width:10px; height:10px; color:#fff; }
.npf-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.npf-l1{ font-size:13px; font-weight:700; color:var(--navy); line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.npf-l2{ font-size:12.5px; color:var(--body); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.npf-l2 strong{ color:var(--blue); font-weight:700; }
.npf-l3{ display:flex; align-items:center; gap:6px; margin-top:2px; font-family:var(--label); font-size:10.5px; color:var(--muted); }
.npf-dot{ width:3px; height:3px; border-radius:50%; background:#b9cfca; flex:none; }
.npf-verified{ display:inline-flex; align-items:center; gap:3px; color:var(--blue); font-weight:600; }
.npf-verified svg{ width:11px; height:11px; }
.npf-x{ position:absolute; right:8px; top:8px; width:22px; height:22px; border:0; border-radius:50%; background:rgba(11,58,63,.06); color:var(--muted); cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.npf-x:hover{ background:rgba(11,58,63,.12); color:var(--navy); }
.npf-x svg{ width:12px; height:12px; }
/* Mobile: stay a compact card anchored bottom-left, never full width. The exact
   bottom is set by fomo.js so it always clears the community button + buy bar. */
@media (max-width:560px){ .npf{ left:12px; right:auto; width:min(330px,calc(100vw - 24px)); } }
@media (prefers-reduced-motion: reduce){ .npf{ transition:opacity .3s linear, visibility .3s; transform:none; } .npf.show{ transform:none; } }

/* ---- promo code (cart footer) ---- */
.npc-promo{ margin:2px 0 14px; }
.npc-promo-row{ display:flex; gap:8px; }
.npc-promo-in{ flex:1; min-width:0; height:42px; border:1.5px solid var(--line2); border-radius:11px; background:#f5fbfb; padding:0 13px; font-size:14px; color:var(--navy); outline:none; text-transform:uppercase; letter-spacing:.02em; transition:border-color .15s,box-shadow .15s,background .15s; }
.npc-promo-in::placeholder{ color:#8aa294; text-transform:none; letter-spacing:0; }
.npc-promo-in:focus{ background:#fff; border-color:var(--blue); box-shadow:0 0 0 4px rgba(18,120,126,.12); }
.npc-promo-in.is-err{ border-color:#c0392b; box-shadow:0 0 0 4px rgba(192,57,43,.1); }
.npc-promo-apply{ flex:none; height:42px; padding:0 18px; border:0; border-radius:11px; background:var(--navy); color:#fff; font-weight:700; font-size:14px; cursor:pointer; transition:background .15s; }
.npc-promo-apply:hover{ background:var(--navy-hover,#0a3236); }
.npc-promo-msg{ margin:8px 2px 0; font-size:12px; color:#c0392b; }
.npc-promo.is-on{ display:flex; align-items:center; gap:10px; background:linear-gradient(180deg,#eafaf3,#e2f4ec); border:1px solid var(--blue); border-radius:12px; padding:10px 12px; }
.npc-promo-tick{ flex:none; width:24px; height:24px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; }
.npc-promo-tick svg{ width:14px; height:14px; }
.npc-promo-txt{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.25; }
.npc-promo-txt strong{ font-family:'Plus Jakarta Sans',sans-serif; font-size:13px; color:var(--navy); font-weight:800; letter-spacing:.02em; }
.npc-promo-txt span{ font-size:11.5px; color:var(--body); }
.npc-promo-x{ flex:none; background:none; border:0; font-size:20px; line-height:1; color:var(--muted); cursor:pointer; padding:0 2px; }
.npc-promo-x:hover{ color:var(--navy); }

/* ---- promo celebration (unlock) overlay ---- */
.npc-celeb{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; }
.npc-celeb.show{ opacity:1; visibility:visible; }
.npc-celeb-bd{ position:absolute; inset:0; background:rgba(7,42,44,.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.npc-celeb-card{ position:relative; z-index:2; width:min(380px,100%); background:#fff; border-radius:22px; padding:30px 26px 26px; text-align:center; box-shadow:0 30px 80px rgba(7,42,44,.4); transform:translateY(16px) scale(.96); opacity:0; transition:transform .45s var(--ease),opacity .45s var(--ease); }
.npc-celeb.show .npc-celeb-card{ transform:none; opacity:1; }
.npc-celeb-ring{ width:70px; height:70px; margin:0 auto 16px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--blue-light)); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(18,120,126,.4); animation:npcPop .5s var(--ease) .1s both; }
.npc-celeb-ic{ color:#fff; } .npc-celeb-ic svg{ width:34px; height:34px; }
@keyframes npcPop{ 0%{ transform:scale(0); } 60%{ transform:scale(1.12); } 100%{ transform:scale(1); } }
.npc-celeb-eyebrow{ font-family:var(--label); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--blue); margin:0 0 4px; }
.npc-celeb-h{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:26px; color:var(--navy); margin:0 0 4px; }
.npc-celeb-sub{ font-size:14px; color:var(--muted); margin:0 0 18px; }
.npc-celeb-list{ list-style:none; margin:0 0 22px; padding:0; text-align:left; display:flex; flex-direction:column; gap:11px; }
.npc-celeb-list li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--body); }
.npc-celeb-list li strong{ color:var(--navy); }
.npc-celeb-list svg{ flex:none; width:18px; height:18px; color:var(--blue); margin-top:1px; }
.npc-celeb-cta{ display:block; width:100%; background:var(--navy); color:#fff; border:0; border-radius:14px; padding:15px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:16px; cursor:pointer; transition:background .15s,transform .1s; }
.npc-celeb-cta:hover{ background:var(--navy-hover,#0a3236); }
.npc-celeb-cta:active{ transform:scale(.98); }
.npc-celeb-confetti{ position:absolute; inset:0; overflow:hidden; z-index:1; pointer-events:none; }
.npc-celeb-confetti i{ position:absolute; top:-16px; width:9px; height:14px; border-radius:2px; opacity:0; animation-name:npcConfetti; animation-timing-function:cubic-bezier(.4,.2,.5,1); animation-iteration-count:1; animation-fill-mode:both; }
@keyframes npcConfetti{ 0%{ transform:translateY(-10px) rotate(0); opacity:0; } 8%{ opacity:1; } 100%{ transform:translateY(105vh) rotate(var(--r,180deg)); opacity:.9; } }
@media (prefers-reduced-motion: reduce){ .npc-celeb-confetti{ display:none; } .npc-celeb-card{ transition:opacity .2s; transform:none; } .npc-celeb-ring{ animation:none; } }

/* ---- commerce responsive ---- */
@media (max-width:1000px){
  .npp-grid{ grid-template-columns:repeat(3,1fr); }
  .pdp-wrap{ grid-template-columns:1fr; }
  .pdp-gallery{ position:static; }
  .co-grid{ grid-template-columns:1fr; }
  .co-summary{ position:static; order:-1; }
}
@media (max-width:720px){
  .npp-grid{ grid-template-columns:repeat(2,1fr); gap:14px; padding:0 var(--gutter-mobile); }
  .sp-filters{ padding-left:var(--gutter-mobile); padding-right:var(--gutter-mobile); }
  .co-fields{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .npp-opts{ grid-template-columns:1fr; }
  .npp-name{ font-size:15px; }
}
/* multiple cart upsells stacked */
.npc-upsell:not(:empty){ display:flex; flex-direction:column; gap:8px; }
.npc-up-head{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:2px 0 -2px; }

/* enforce the hidden attribute over author display rules (cart empty-state, badge, buy rows) */
[hidden]{ display:none !important; }

/* ---- refined product-card options (override) + kit info popover ---- */
.npp-opts{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.npp-opt-cell{ position:relative; display:flex; }
.npp-opt{ flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; text-align:center; background:#fff; border:1.5px solid var(--line2); border-radius:14px; padding:12px 8px 10px; cursor:pointer; }
.npp-opt-img{ display:flex; align-items:center; justify-content:center; height:54px; margin-bottom:1px; }
.npp-opt-img img{ width:54px !important; height:54px !important; object-fit:contain; }
.npp-opt-k{ font-size:10.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; line-height:1; }
.npp-opt-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:19px; color:var(--navy); line-height:1; }
.npp-opt-add{ margin-top:3px; width:100%; font-size:10.5px; font-weight:800; color:#fff; background:var(--blue); border-radius:8px; padding:6px 0; text-transform:uppercase; letter-spacing:.05em; line-height:1.3; }
.npp-opt:hover:not(:disabled) .npp-opt-add{ background:var(--green2); }
.npp-opt:disabled .npp-opt-add{ background:#9aa8a0; }
.npp-info{ position:absolute; top:7px; right:7px; z-index:3; width:20px; height:20px; border-radius:50%; border:1px solid var(--line2); background:#fff; color:var(--muted); font-size:12px; font-weight:800; font-style:italic; font-family:Georgia,'Times New Roman',serif; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.npp-info:hover{ border-color:var(--blue); color:var(--blue); }
.np-kitinfo{ position:fixed; z-index:230; width:256px; max-width:calc(100vw - 20px); background:#fff; border:1px solid var(--line2); border-radius:14px; box-shadow:0 16px 40px rgba(11,58,63,.22); padding:14px 16px; display:none; }
.np-kitinfo.show{ display:block; }
.np-kitinfo-h{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:13px; color:var(--navy); margin-bottom:8px; }
.np-kitinfo ul{ margin:0; padding-left:16px; }
.np-kitinfo li{ font-size:12.5px; color:var(--ink); line-height:1.55; }

/* ---- cart upsell price / value anchor ---- */
.npc-up-price{ font-size:12px; margin-top:2px; }
.npc-up-price s{ color:var(--muted); }
.npc-up-price b{ color:var(--navy); font-weight:800; }
.npc-up-save{ color:var(--blue); font-weight:800; font-size:11px; margin-left:2px; }

/* ---- checkout trust layer + FAQs ---- */
.co-trust{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 2px; }
.co-trust-i{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--navy); background:#f1fafb; border:1px solid var(--line2); border-radius:999px; padding:6px 12px; }
.co-trust-i svg{ color:var(--blue); flex:none; }
.co-secure{ display:flex; align-items:center; justify-content:center; gap:7px; font-size:12.5px; color:var(--muted); margin:12px 0 0; }
.co-secure svg{ color:var(--blue); flex:none; }
.co-faqs{ margin:clamp(32px,5vw,52px) auto 0; max-width:760px; }
.co-faqs h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:22px; color:var(--navy); margin:0 0 14px; }
.co-faq-item{ border-bottom:1px solid var(--line); padding:14px 0; }
.co-faq-item summary{ font-weight:700; color:var(--navy); cursor:pointer; list-style:none; font-size:15px; display:flex; justify-content:space-between; gap:12px; }
.co-faq-item summary::-webkit-details-marker{ display:none; }
.co-faq-item summary::after{ content:'+'; color:var(--muted); font-weight:400; font-size:20px; line-height:1; flex:none; }
.co-faq-item[open] summary::after{ content:'\2212'; }
.co-faq-item p{ margin:10px 0 0; font-size:14.5px; line-height:1.6; color:var(--body); }

/* ---- View All COAs page ---- */
.coa-hero{ background:linear-gradient(180deg,#ecf8f9 0%,#fff 100%); border-bottom:1px solid var(--line); padding:clamp(36px,6vw,60px) 0 clamp(26px,4vw,40px); text-align:center; }
.coa-hero .wrap{ max-width:760px; }
.coa-hero .sp-eyebrow{ display:inline-flex; align-items:center; gap:6px; justify-content:center; }
.coa-hero h1{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(28px,4.4vw,42px); color:var(--navy); margin:0 0 14px; }
.coa-hero .lead{ font-size:clamp(15px,2.2vw,17px); line-height:1.6; color:var(--muted); margin:0 auto; }
.coa-wrap{ max-width:var(--maxw); margin:0 auto; padding:clamp(28px,4vw,44px) var(--gutter) clamp(20px,3vw,32px); }
.coa-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.coa-card{ background:#fff; border:1px solid var(--line2); border-radius:16px; padding:16px; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; gap:12px; }
.coa-top{ display:flex; align-items:center; gap:12px; }
.coa-top img{ width:48px; height:48px; object-fit:contain; border:1px solid var(--line2); border-radius:10px; background:#fff; padding:3px; flex:none; }
.coa-id{ flex:1; min-width:0; }
.coa-id h3{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:15.5px; color:var(--navy); margin:0; line-height:1.2; }
.coa-cat{ font-family:var(--label); font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); }
.coa-pass{ display:inline-flex; align-items:center; gap:4px; font-size:11.5px; font-weight:800; color:var(--blue); background:#e4f4f5; border-radius:999px; padding:4px 10px; flex:none; }
.coa-pass svg{ flex:none; }
.coa-meta{ display:flex; gap:16px; font-size:12.5px; color:var(--muted); }
.coa-meta b{ color:var(--navy); font-family:var(--mono); }
.coa-keyrow{ display:flex; align-items:center; gap:8px; background:#f6faf8; border:1px solid var(--line2); border-radius:10px; padding:8px 10px; }
.coa-key{ flex:1; min-width:0; font-family:var(--mono); font-size:12px; color:var(--navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.coa-copy{ flex:none; background:#fff; border:1px solid var(--line2); border-radius:8px; padding:6px 10px; font-size:11.5px; font-weight:600; color:var(--muted); cursor:pointer; }
.coa-copy:hover{ border-color:var(--blue); color:var(--blue); }
.coa-verify{ display:inline-flex; align-items:center; justify-content:center; gap:6px; margin-top:auto; background:var(--navy); color:#fff; font-weight:700; font-size:13.5px; border-radius:11px; padding:11px; text-decoration:none; transition:background .15s; }
.coa-verify:hover{ background:var(--navy-hover); }
.coa-verify svg{ flex:none; }
@media (max-width:1000px){ .coa-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .coa-grid{ grid-template-columns:1fr; } }

/* ---- COAs nav link accent (shared pages) ---- */
.hnav a.hnav-verify{ color:var(--blue); font-weight:700; }
.hnav a.hnav-verify:hover{ color:var(--navy); }
/* ---- "How to use my kit" nav link (video guide), same on desktop as the mobile menu ---- */
.hnav a.hnav-howto{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.hnav a.hnav-howto svg{ flex:none; color:var(--blue); }
.hnav a.hnav-howto:hover{ color:var(--blue); }
/* on tighter desktop widths show the play icon only (still the same menu item) so the row never overflows */
@media (max-width:1160px){ .hnav a.hnav-howto .hnav-howto-t{ display:none; } .hnav a.hnav-howto svg{ width:18px; height:18px; } }
.md-panel a.md-verify{ color:var(--blue); font-weight:700; display:flex; align-items:center; gap:8px; }
.md-panel a.md-verify svg{ flex:none; }

/* ---- checkout selectable shipping options (Standard / Express) ---- */
.co-ship{ display:flex; flex-direction:column; gap:10px; }
.co-ship-opt{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; border:2px solid var(--line2); background:#fff; border-radius:14px; padding:14px 16px; cursor:pointer; text-align:left; transition:border-color .15s, background .15s; }
.co-ship-opt:hover{ border-color:var(--blue); }
.co-ship-opt.selected{ border-color:var(--navy); background:#f1fafb; }
.co-ship-l{ display:flex; align-items:center; gap:13px; min-width:0; }
.co-ship-ic{ flex:none; width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; }
.co-ship-ic svg{ width:21px; height:21px; }
.co-ship-ic-standard{ background:#e7f4f5; color:#12787e; }
.co-ship-ic-express{ background:#fdefd8; color:#bd7d16; }
.co-ship-note{ display:flex; align-items:center; gap:7px; }
.co-ship-note-ic{ flex:none; width:15px; height:15px; color:var(--blue); }

/* =====================================================================
   PRODUCT CARD v2 (2026-09-08) — Single/Kit are equal, parallel RADIO options
   (tap to select, never auto-add) + one Add-to-cart button. Overrides the
   earlier card-option rules above.
   ===================================================================== */
.npp-opts{ display:grid; grid-template-columns:1fr 1fr; gap:9px; align-items:stretch; margin-top:2px; }
.npp-opt{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:4px; text-align:center; background:#fff; border:1.5px solid var(--line2); border-radius:14px; padding:14px 8px 11px; cursor:pointer; min-height:120px; transition:border-color .15s, box-shadow .15s, background .15s; }
.npp-opt:hover:not(:disabled){ border-color:var(--blue); }
.npp-opt:disabled{ opacity:.45; cursor:not-allowed; }
.npp-opt.is-sel{ border-color:var(--navy); border-width:2px; background:#f1fafb; box-shadow:0 3px 12px rgba(11,58,63,.09); }
.npp-opt.npp-opt-kit{ background:#fbfdfb; }
.npp-opt.npp-opt-kit.is-sel{ border-color:var(--blue); background:#ebf6f7; }
.npp-opt-tick{ position:absolute; top:9px; left:9px; width:17px; height:17px; border-radius:50%; border:1.5px solid var(--line2); background:#fff; transition:border-color .15s, background .15s; }
.npp-opt.is-sel .npp-opt-tick{ border-color:var(--navy); background:var(--navy); }
.npp-opt.npp-opt-kit.is-sel .npp-opt-tick{ border-color:var(--blue); background:var(--blue); }
.npp-opt.is-sel .npp-opt-tick::after{ content:''; position:absolute; left:5px; top:2.5px; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.npp-opt-img{ height:44px; display:flex; align-items:center; justify-content:center; margin-top:3px; }
.npp-opt-img img{ width:44px !important; height:44px !important; object-fit:contain; }
.npp-opt-k{ font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.npp-opt-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:18px; color:var(--navy); line-height:1; }
.npp-kit-tag{ position:absolute; top:-9px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; font-size:9px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:2px 9px; border-radius:999px; white-space:nowrap; box-shadow:0 2px 6px rgba(18,120,126,.3); }
.npp-info{ position:absolute; top:7px; right:7px; z-index:2; width:18px; height:18px; border-radius:50%; border:1px solid var(--line2); background:#fff; color:var(--muted); font-size:11px; font-weight:800; font-style:italic; font-family:Georgia,'Times New Roman',serif; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.npp-info:hover{ border-color:var(--blue); color:var(--blue); }
.npp-add{ margin-top:11px; width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--navy); color:#fff; font-weight:800; font-size:14.5px; border:0; border-radius:12px; padding:13px; cursor:pointer; transition:background .15s, transform .12s; }
.npp-add:hover:not(:disabled){ background:var(--navy-hover); transform:translateY(-1px); }
.npp-add:active:not(:disabled){ transform:translateY(0); }
.npp-add:disabled{ opacity:.45; cursor:not-allowed; background:#8fa89a; }
.npp-add svg{ flex:none; }
/* keep the two options PARALLEL (side by side) even on the smallest phones */
@media (max-width:480px){ .npp-opts{ grid-template-columns:1fr 1fr; gap:7px; } .npp-opt{ min-height:112px; padding:12px 5px 10px; } .npp-opt-p{ font-size:16px; } }

/* ---- homepage featured product cards grid (uses .npp-card) ---- */
.shopall-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin:30px auto 0; align-items:stretch; }
@media (max-width:1000px){ .shopall-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:720px){ .shopall-grid{ grid-template-columns:repeat(2,1fr); gap:14px; } }

/* =====================================================================
   PRODUCT CARD v3 (2026-09-08) — connected SEGMENTED control per CRO audit.
   Single | Full Kit as one pill, tap to select (Full Kit default), one Add
   button that shows the selected price. Replaces the v2 two-box options.
   ===================================================================== */
.npp-seg{ display:grid; grid-template-columns:1fr 1fr; border:1.5px solid var(--line2); border-radius:14px; overflow:hidden; margin-top:3px; }
.npp-cell{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; text-align:center; background:#fff; border:0; border-right:1px solid var(--line2); padding:13px 6px 11px; cursor:pointer; min-height:78px; transition:background .16s var(--ease,ease); }
.npp-cell:last-child{ border-right:0; }
.npp-cell:hover:not(:disabled):not(.is-sel){ background:#f1fafb; }
.npp-cell:disabled{ opacity:.45; cursor:not-allowed; }
.npp-cell.is-sel{ background:var(--navy); }
.npp-cell.npp-cell-kit.is-sel{ background:var(--blue); }
.npp-cell.is-sel .npp-cell-k, .npp-cell.is-sel .npp-cell-p{ color:#fff; }
.npp-cell.is-sel .npp-cell-cap{ color:rgba(255,255,255,.72); }
.npp-cell-k{ font-family:var(--label); font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.02em; color:var(--muted); display:inline-flex; align-items:center; gap:4px; line-height:1.15; }
.npp-cell-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:17px; color:var(--navy); font-variant-numeric:tabular-nums; line-height:1; }
.npp-cell-cap{ font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.npp-cell-tag{ position:absolute; top:0; left:0; background:var(--blue); color:#fff; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:2px 6px; border-bottom-right-radius:8px; }
.npp-cell.is-sel .npp-cell-tag{ background:#fff; color:var(--blue); }
.npp-cell-info{ width:24px; height:18px; margin:-3px -6px -3px -1px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; font-style:italic; font-family:Georgia,'Times New Roman',serif; font-size:10.5px; font-weight:800; color:inherit; opacity:.7; cursor:pointer; }
.npp-cell-info:hover{ opacity:1; }
.npp-add-p{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; opacity:.92; }
@media (max-width:480px){ .npp-cell{ min-height:74px; padding:11px 4px 9px; } .npp-cell-p{ font-size:15.5px; } .npp-cell-k{ font-size:10px; } }

/* ---- sticky mobile PDP buy bar ---- */
.pdp-sticky{ position:fixed; left:0; right:0; bottom:0; z-index:80; background:#fff; border-top:1px solid var(--line2); box-shadow:0 -8px 24px rgba(11,40,42,.1); padding:10px 14px calc(10px + env(safe-area-inset-bottom)); }
.pdp-sticky-in{ display:flex; align-items:center; gap:10px; max-width:var(--maxw); margin:0 auto; }
.pdp-sticky-in img{ width:40px; height:40px; object-fit:contain; border:1px solid var(--line2); border-radius:8px; background:#fff; padding:2px; flex:none; }
.pdp-sticky-t{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.2; }
.pdp-sticky-t b{ font-size:13px; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pdp-sticky-t span{ font-size:11px; color:var(--muted); font-family:var(--label); font-variant-numeric:tabular-nums; }
.pdp-sticky-add{ flex:none; display:inline-flex; align-items:center; gap:6px; background:var(--navy); color:#fff; font-weight:800; font-size:14px; border:0; border-radius:11px; padding:12px 18px; cursor:pointer; font-variant-numeric:tabular-nums; }
.pdp-sticky-add:hover{ background:var(--navy-hover); }
.pdp-sticky-add svg{ flex:none; }
@media (min-width:1001px){ .pdp-sticky{ display:none !important; } }

/* ---- checkout "why bank transfer" rationale ---- */
.co-why{ font-size:12.5px; line-height:1.55; color:var(--body); background:#f1fafb; border:1px solid var(--line2); border-radius:10px; padding:11px 13px; margin:0 0 12px; }
.co-why strong{ color:var(--navy); }

/* card v3 tweaks: info to top-right corner, Add button never wraps */
.npp-cell-info{ position:absolute; top:5px; right:5px; margin:0; width:17px; height:17px; border-radius:50%; background:rgba(11,58,63,.06); color:var(--muted); }
.npp-cell.is-sel .npp-cell-info{ background:rgba(255,255,255,.25); color:#fff; }
.npp-add{ flex-wrap:nowrap; white-space:nowrap; font-size:14px; gap:7px; }
.npp-add > span{ white-space:nowrap; }
@media (max-width:480px){ .npp-add{ font-size:13px; gap:5px; padding:12px 8px; } .npp-add svg{ width:16px; height:16px; } }

/* card v3: top-align cell content + centered Best-value pill so the Full Kit label is never covered */
.npp-cell{ justify-content:flex-start; padding:23px 6px 11px; min-height:88px; }
.npp-cell-tag{ position:absolute; top:5px; left:50%; right:auto; transform:translateX(-50%); border-radius:999px; padding:2px 8px; white-space:nowrap; }

/* fully sold-out product card: keeps the exact height of a live buy area (so it
   still matches every other card) but offers nothing to buy. Anchored to the
   bottom of the grid by shopSorted(). */
.npp-card-out .npp-media img{ opacity:.72; filter:grayscale(.25); }
.npp-seg-out{ display:flex; align-items:center; justify-content:center; text-align:center; border:1.5px dashed var(--line2); border-radius:14px; min-height:88px; margin-top:3px; background:#fafcfb; }
.npp-outmsg{ font-family:var(--label); font-size:11.5px; font-weight:600; color:#9aa8a0; letter-spacing:.02em; }
.npp-buyrow-out .npp-add{ background:#eef2f0; color:#9aa8a0; }

/* =====================================================================
   CRO POLISH PASS (2026-09-08) — COA proof sheet, undo, bigger steppers,
   focus states, tabular prices, add-flash, green shadows, reduced motion.
   ===================================================================== */
:root{
  --shadow-green-sm:0 2px 4px rgba(0,0,0,.4),0 4px 12px rgba(0,0,0,.35);
  --shadow-green-md:0 8px 24px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.4);
}

/* Novagen COA proof sheet (bottom-sheet on mobile, centered on desktop) */
.np-sheet{ position:fixed; inset:0; z-index:240; visibility:hidden; }
.np-sheet.show{ visibility:visible; }
.np-sheet-bd{ position:absolute; inset:0; background:rgba(6,24,16,.5); opacity:0; transition:opacity .25s var(--ease,ease); }
.np-sheet.show .np-sheet-bd{ opacity:1; }
.np-sheet-panel{ position:absolute; left:0; right:0; bottom:0; background:#fff; border-radius:22px 22px 0 0; padding:24px 22px calc(24px + env(safe-area-inset-bottom)); max-width:520px; margin:0 auto; box-shadow:0 -16px 48px rgba(11,40,42,.2); transform:translateY(100%); transition:transform .3s var(--ease,ease); }
.np-sheet.show .np-sheet-panel{ transform:none; }
@media (min-width:600px){ .np-sheet-panel{ top:50%; bottom:auto; left:50%; right:auto; width:min(440px,calc(100vw - 32px)); border-radius:20px; transform:translate(-50%,-46%); } .np-sheet.show .np-sheet-panel{ transform:translate(-50%,-50%); } }
.np-sheet-x{ position:absolute; top:12px; right:16px; background:none; border:0; font-size:26px; line-height:1; color:var(--muted); cursor:pointer; }
.np-sheet-badge{ display:inline-flex; align-items:center; gap:6px; font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--navy); border-radius:999px; padding:5px 12px; }
.np-sheet-badge svg{ color:var(--blue-light); flex:none; }
.np-sheet-h{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:22px; color:var(--navy); margin:14px 0; }
.np-sheet-rows{ display:flex; gap:10px; }
.np-sheet-rows > div{ flex:1; background:#f1fafb; border:1px solid var(--line2); border-radius:12px; padding:12px 8px; text-align:center; }
.np-sheet-rows span{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:5px; }
.np-sheet-rows b{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:15px; color:var(--navy); word-break:break-word; }
.np-sheet-pass{ color:var(--blue) !important; }
.np-sheet-note{ font-size:13px; line-height:1.55; color:var(--body); margin:16px 0; }
.np-sheet-btn{ display:block; text-align:center; background:var(--blue); color:#fff; font-weight:700; font-size:15px; border-radius:12px; padding:14px; text-decoration:none; }
.np-sheet-btn:hover{ background:#0f6b70; }

/* undo-on-remove toast */
.npc-undo{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(16px); z-index:215; background:var(--navy); color:#fff; padding:11px 12px 11px 18px; border-radius:12px; font-size:14px; box-shadow:0 14px 34px rgba(11,58,63,.3); display:flex; align-items:center; gap:14px; opacity:0; visibility:hidden; transition:opacity .25s,transform .25s,visibility .25s; max-width:calc(100vw - 32px); }
.npc-undo.show{ opacity:1; visibility:visible; transform:translateX(-50%); }
.npc-undo-btn{ background:rgba(255,255,255,.16); color:#fff; border:0; border-radius:8px; padding:9px 15px; font-weight:800; font-size:13px; cursor:pointer; }
.npc-undo-btn:hover{ background:rgba(255,255,255,.28); }

/* bigger cart qty steppers + spacing (WCAG target size) */
.npc-q{ width:34px; height:34px; font-size:18px; }
.npc-qn{ min-width:26px; }
.npc-rm{ margin-left:12px; }

/* verify chip chevron + card add "Added" flash */
.npp-verify-ch{ opacity:.55; font-weight:700; margin-left:1px; }
.npp-verify{ cursor:pointer; }
.npp-add.is-added{ background:var(--blue) !important; }

/* prices align (tabular figures) */
.npp-cell-p, .npp-add-p, .pdp-pick-p, .pdp-add-p, .co-line-p, .co-sum-r span, .npc-item-price, .npc-row span, .npp-opt-p{ font-variant-numeric:tabular-nums; }

/* premium button feedback + accessible focus */
.npp-add, .pdp-add, .npc-checkout, .co-submit, .sp-help-wa, .cos-wa, .np-sheet-btn, .pdp-sticky-add{ transition:background .15s var(--ease,ease), transform .12s var(--ease,ease), box-shadow .15s var(--ease,ease); }
.npp-add:active:not(:disabled), .pdp-add:active:not(:disabled), .npc-checkout:active, .co-submit:active, .pdp-sticky-add:active{ transform:scale(.985); }
a:focus-visible, button:focus-visible, .npp-cell:focus-visible, [role="radio"]:focus-visible, [role="button"]:focus-visible, input:focus-visible, select:focus-visible{ outline:2px solid var(--blue); outline-offset:2px; border-radius:6px; }
.npp-card{ box-shadow:var(--shadow-green-sm); }
.npp-card:hover{ box-shadow:var(--shadow-green-md); }

/* honour reduced motion */
@media (prefers-reduced-motion: reduce){ *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; } }

/* ---- PayID as the lead payment row ---- */
.co-bank-payid, .cos-bank .co-bank-payid{ background:#ebf6f7; border:1px solid #c9e3e5; }
.co-payid-tag{ display:inline-block; background:var(--blue); color:#fff; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; border-radius:999px; margin-left:6px; vertical-align:1px; }

/* ---- Oral tablets: no-kit clean buy row (card) + PDP single price + on-page content ---- */
.npp-oralbuy{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:var(--surface); border:1px solid var(--line2); border-radius:12px; padding:13px 12px; margin-top:3px; min-height:72px; text-align:center; }
.npp-oralbuy-top{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center; }
.npp-oralbuy-total{ font-family:var(--mono); font-weight:700; font-size:26px; color:var(--navy); font-variant-numeric:tabular-nums; letter-spacing:-.01em; line-height:1; }
.npp-oralbuy-save{ font-size:10.5px; font-weight:800; color:#0e5a2f; background:#d9f2e3; border:1px solid #b6e4c9; border-radius:999px; padding:2px 8px; letter-spacing:.03em; text-transform:uppercase; white-space:nowrap; }
.npp-oralbuy-per{ font-size:12px; color:var(--muted); font-weight:600; }
.npp-add .npp-add-p{ margin-left:6px; }
.pdp-solo{ display:flex; flex-direction:column; gap:5px; margin:2px 0 16px; }
.pdp-solo-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pdp-solo-p{ font-family:var(--mono); font-weight:600; font-size:32px; letter-spacing:-.01em; color:var(--navy); font-variant-numeric:tabular-nums; line-height:1; }
.pdp-solo-save{ font-size:12px; font-weight:800; color:#0e5a2f; background:#d9f2e3; border:1px solid #b6e4c9; border-radius:999px; padding:3px 11px; letter-spacing:.02em; text-transform:uppercase; }
.pdp-solo-cap{ font-size:13px; color:var(--muted); font-weight:600; }
.pdp-oral-figure{ margin:0 0 8px; border:1px solid var(--line2); border-radius:16px; overflow:hidden; background:#fff; }
.pdp-oral-figure img{ width:100%; height:auto; display:block; }
.pdp-oral-seo{ margin-top:10px; border-top:1px solid var(--line2); padding-top:10px; }
.pdp-oral-seo h3{ font-size:16px; font-weight:800; color:var(--navy); margin:18px 0 6px; }
.pdp-oral-seo p{ margin:0 0 8px; }
.pdp-oral-related{ margin-top:16px; border-top:1px solid var(--line2); padding-top:12px; }
.pdp-oral-related h3{ font-size:15px; font-weight:800; color:var(--navy); margin:0 0 8px; }
.pdp-oral-related ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.pdp-oral-related a{ color:var(--blue); font-weight:600; font-size:14px; text-decoration:none; }
.pdp-oral-related a:hover{ text-decoration:underline; }

/* =====================================================================
   Customer reviews widget (np-assets/reviews.js) — Judge.me style.
   ===================================================================== */
.nvr-wrap{ max-width:var(--maxw); margin:0 auto; padding:8px 0; }
.nvr-topline{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.nvr-h{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:22px; color:var(--navy); margin:0; }
.nvr-note{ font-size:12px; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
/* Branded verified-reviews lockup (our own system, trusted-widget look) */
.nvr-brand{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.nvr-brandmark{ display:inline-flex; align-items:center; gap:7px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:17px; color:var(--navy); background:#eaf7ef; border:1px solid #bfe6cd; border-radius:99px; padding:7px 15px 7px 12px; }
.nvr-brandmark svg{ color:#127a3f; }
.nvr-brandnote{ font-size:13px; color:var(--muted); font-weight:600; }
.nvr-stars{ display:inline-flex; gap:1px; line-height:1; white-space:nowrap; }
.nvr-star{ color:#d7ddd9; }
.nvr-star.on{ color:#f5a623; }
.nvr-agg{ display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:20px; background:var(--surface,#f6faf9); border:1px solid var(--line2); border-radius:16px; padding:18px 22px; margin-bottom:20px; }
.nvr-aggnum{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:42px; color:var(--navy); line-height:1; }
.nvr-aggmeta{ display:flex; flex-direction:column; gap:5px; }
.nvr-aggcount{ font-size:13px; color:var(--muted); font-weight:600; }
.nvr-dist{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.nvr-distrow{ display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--muted); }
.nvr-distn{ width:26px; flex:none; }
.nvr-disttrack{ flex:1; height:7px; background:#e7edea; border-radius:99px; overflow:hidden; min-width:60px; }
.nvr-distfill{ display:block; height:100%; background:#f5a623; border-radius:99px; }
.nvr-distc{ width:22px; text-align:right; flex:none; }
.nvr-list{ display:flex; flex-direction:column; gap:14px; }
.nvr-card{ background:#fff; border:1px solid var(--line2); border-radius:14px; padding:16px 18px; }
.nvr-head{ display:flex; align-items:center; gap:11px; margin-bottom:8px; }
.nvr-avatar{ width:38px; height:38px; flex:none; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; }
.nvr-who{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.nvr-name{ font-weight:700; font-size:14px; color:var(--navy); }
.nvr-verified{ font-size:11px; font-weight:700; color:#0e5a2f; }
.nvr-date{ font-size:12px; color:var(--muted); flex:none; }
.nvr-rating{ margin-bottom:7px; }
.nvr-title{ font-weight:700; font-size:14.5px; color:var(--ink); margin-bottom:3px; }
.nvr-body{ font-size:14px; line-height:1.6; color:var(--body,#3a4b43); margin:0; white-space:pre-line; }
.nvr-photo{ display:inline-block; margin-top:11px; }
/* One-to-one (square) thumbnail so photo reviews read clean and consistent */
.nvr-photo img{ width:92px; height:92px; object-fit:cover; border-radius:10px; border:1px solid var(--line2); cursor:zoom-in; display:block; }
.nvr-empty{ font-size:14px; color:var(--muted); }
.nvr-lightbox{ position:fixed; inset:0; z-index:400; background:rgba(8,26,20,.86); display:flex; align-items:center; justify-content:center; padding:24px; cursor:zoom-out; }
.nvr-lightbox img{ max-width:92vw; max-height:88vh; border-radius:12px; }
.nvr-lbx{ position:absolute; top:16px; right:20px; width:40px; height:40px; border-radius:50%; border:0; background:rgba(255,255,255,.15); color:#fff; font-size:26px; line-height:1; cursor:pointer; }
/* Compact trust strip (populated only when real reviews exist) */
.nvr-strip{ max-width:var(--maxw); margin:0 auto; padding:0 20px; text-align:center; }
.nvr-strip-in{ display:inline-flex; max-width:100%; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; background:#fff; border:1px solid var(--line2); border-radius:99px; padding:11px 22px; text-decoration:none; box-shadow:0 6px 18px rgba(12,59,40,.06); transition:box-shadow .15s,transform .15s; }
.nvr-strip-in:hover{ box-shadow:0 10px 26px rgba(12,59,40,.11); transform:translateY(-1px); }
.nvr-strip-mark{ display:inline-flex; align-items:center; gap:6px; font-weight:800; font-size:14px; color:var(--navy); }
.nvr-strip-mark svg{ color:#127a3f; }
.nvr-strip-num{ font-size:14px; color:var(--ink); }
.nvr-strip-count{ font-size:13px; color:var(--muted); font-weight:600; }
/* ===== Hero review marquee (auto-scroll + drag, photo reviews only) ===== */
.revm-viewport{ position:relative; overflow:hidden; touch-action:pan-y; cursor:grab; -webkit-user-select:none; user-select:none; }
.revm-viewport:active{ cursor:grabbing; }
.revm-track{ display:flex; gap:2px; width:max-content; align-items:center; will-change:transform; }
.revm-card{ flex:0 0 auto; width:218px; background:#fff; border:1px solid var(--line2); border-radius:16px; overflow:hidden; box-shadow:0 12px 28px rgba(12,59,40,.12); }
.revm-photo{ width:100%; aspect-ratio:1/1; background:#eef4f3; overflow:hidden; }
.revm-photo img{ width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.revm-cap{ padding:10px 12px 13px; }
.revm-stars{ line-height:1; }
.revm-who{ display:flex; align-items:center; gap:7px; margin-top:6px; min-width:0; }
.revm-name{ font-weight:800; font-size:13px; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.revm-ver{ font-size:10.5px; font-weight:700; color:#0e7a3f; white-space:nowrap; flex:none; }
.revm-text{ margin:5px 0 0; font-size:12px; line-height:1.45; color:var(--body,#3a4b43); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hero-revm{ width:100%; min-height:332px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
@media (max-width:600px){
  .nvr-agg{ grid-template-columns:auto 1fr; gap:14px; row-gap:14px; }
  .nvr-dist{ grid-column:1 / -1; }
  .nvr-brandnote{ width:100%; }
  .nvr-strip-in{ gap:8px 12px; padding:12px 18px; }
}

/* ============================================================
   Clinical-premium rebuild polish (waves 2-4).
   Appended: wins by source order without !important.
   ============================================================ */

/* 1. Instrument-grade numbers: all prices + totals in tabular mono */
.pdp-pick-p, .npp-cell-p, .npp-opt-p, .npp-oralbuy-total, .pdp-solo-p, .eq-price,
.pdp-add-p, .npp-add-p, #pdpStickyP,
.npc-item-price, .npc-sum-v, .npc-total-v, .co-total-v, .co-sum-v{
  font-family:var(--mono); font-variant-numeric:tabular-nums; letter-spacing:-.015em;
}
.pdp-pick-p, .npp-cell-p, .npp-opt-p{ font-weight:600; }

/* 2. Editorial serif on section-level headings (small UI + card names stay sans) */
.pdp-info h2, .coa-body h2, .sp-help-card h2, .kit h3{
  font-family:var(--font-display); font-weight:500; letter-spacing:-.012em;
}

/* 3. De-AI: cap roundness + flatter cards (hairline at rest, lift on hover only) */
:root{ --r-lg:12px; --r-xl:12px; }
.npp-card{ box-shadow:none; }
.kit{ box-shadow:none; }
.pdp-hero{ box-shadow:none; }

/* PDP: aggregate rating under the H1 (above the fold) — compact, left-aligned, no pill chrome */
.pdp-rating{ margin:2px 0 14px; }
.pdp-rating .nvr-strip-in{ box-shadow:none; border:0; padding:0; background:none; border-radius:0; gap:9px; transition:none; }
.pdp-rating .nvr-strip-in:hover{ box-shadow:none; transform:none; }
.pdp-rating .nvr-strip-mark{ display:none; }
.pdp-rating .nvr-stars{ font-size:15px; }
.pdp-rating .nvr-strip-num{ font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--navy); font-size:13.5px; }
.pdp-rating .nvr-strip-count{ color:var(--muted); font-size:13px; text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--line2); }

/* PDP specifications: instrument-grade hairline table, mono values */
.pdp-spec{ margin:4px 0 8px; border-top:1px solid var(--line2); }
.pdp-spec-row{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:12px 2px; border-bottom:1px solid var(--line2); }
.pdp-spec-k{ font-size:13px; color:var(--muted); font-weight:600; letter-spacing:.01em; flex:none; }
.pdp-spec-v{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:13.5px; color:var(--navy); text-align:right; }

/* ======================================================
   Product card redesign — premium, de-cluttered (real rebuild)
   ====================================================== */
.npp-grid{ gap:18px; }
.npp-card{ border-radius:14px; box-shadow:none; border:1px solid var(--line2); transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease); }
.npp-card:hover{ transform:translateY(-3px); border-color:#bcdada; box-shadow:0 12px 30px rgba(11,58,63,.09); }
.npp-media{ padding:18px 18px 12px; border-bottom:0; background:#fff; }
.npp-body{ gap:7px; padding:4px 16px 16px; }
.npp-cat{ align-self:flex-start; font-family:var(--label); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); background:none; border-radius:0; padding:0; }
.npp-name{ font-size:16px; height:auto; min-height:40px; letter-spacing:-.01em; line-height:1.2; }
.npp-verify{ align-self:flex-start; background:none; border:0; padding:0; min-height:0; color:var(--blue); font-size:11.5px; font-weight:700; gap:4px; }
.npp-verify:hover{ background:none; text-decoration:underline; text-underline-offset:2px; }
.npp-details{ display:none; }
/* Anchor the buy group (strength selector + buy rows + Add button) to the bottom
   of every card so the Add to cart buttons all line up at the same height,
   regardless of name length or selector type. */
.npp-strsel-wrap{ margin-top:auto; }
.npp-strs{ min-height:0; margin-top:2px; }
.npp-seg{ border-radius:11px; border-color:var(--line2); margin-top:6px; }
.npp-cell{ min-height:68px; }
.npp-add{ border-radius:11px; font-size:14px; padding:12px; margin-top:10px; box-shadow:none; }
.npp-add:hover:not(:disabled){ transform:none; background:var(--navy-hover); }

/* ======================================================
   Lean homepage — cut redundant sections (real redesign)
   3 review/trust blocks -> 1, 3 CTA bands -> 1, drop clutter
   ====================================================== */
.community-results,
.section-nav,
.dosing-promo,
section.trust,
.midcta,
.community-band,
#science{ display:none !important; }

/* Sleek video sections: real grid, left-aligned, crisp frames (no centered wrap) */
.videos{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; justify-content:stretch; max-width:var(--maxw); margin:0 auto; }
.video-card{ flex:none !important; max-width:none !important; }
.video-card .frame{ border-radius:14px; border:1px solid var(--line2); }

/* Final cohesion pass: premium eyebrows + consistent heading rhythm across the kept sections */
.eyebrow{ color:var(--blue); font-weight:700; letter-spacing:.13em; font-size:11px; }
.section-title{ letter-spacing:-.018em; line-height:1.1; }
.center-head, .head{ margin-bottom:clamp(24px,3vw,36px); }
.sourcing{ margin-top:0; }

/* Strength dropdown — replaces the hidden horizontal-scroll chips */
.npp-strsel-wrap{ display:flex; flex-direction:column; gap:5px; }
.npp-strsel-lbl{ font-family:var(--label); font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); }
.npp-strsel-box{ position:relative; }
.npp-strsel{ width:100%; appearance:none; -webkit-appearance:none; background:#fff; border:1.5px solid var(--line2); border-radius:10px; padding:11px 36px 11px 13px; font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:14px; font-weight:600; color:var(--navy); cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.npp-strsel:hover{ border-color:var(--blue); }
.npp-strsel:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(18,120,126,.14); }
.npp-strsel-ic{ position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.npp-strsel-single{ font-family:var(--mono); font-size:13px; font-weight:600; color:var(--muted); }

/* Verified-reviews pill: bulletproof centre (flex beats any text-align drift) */
.nvr-strip{ display:flex; justify-content:center; align-items:center; }
.nvr-strip-in{ margin:0 auto; }

/* Reviews: curated homepage + "see all" expander */
.nvr-seeall{ display:block; width:fit-content; margin:22px auto 0; background:#fff; border:1px solid #cfe0e2; color:var(--navy); font-weight:700; font-size:14px; padding:12px 26px; border-radius:11px; cursor:pointer; font-family:var(--label); transition:border-color .15s, background .15s; }
.nvr-seeall:hover{ border-color:var(--navy); background:#f3f6f6; }

/* ======================================================
   Hero rebuild — single clean product image + trust bar
   ====================================================== */
.hd-heroimg{ margin:0; background:#fff; border:1px solid var(--line2); border-radius:18px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 24px 54px rgba(11,58,63,.13); }
.hd-heroimg img{ width:100%; height:100%; object-fit:cover; display:block; }
.hd-media{ position:relative; }
.hd-img-chip{ position:absolute; left:16px; bottom:16px; background:#0b3b3f; color:#fff; font-weight:700; font-size:12.5px; padding:8px 14px; border-radius:999px; display:inline-flex; align-items:center; gap:6px; box-shadow:0 10px 24px rgba(11,58,63,.28); }
.hd-img-chip svg{ flex:none; }
.hd-trustbar{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px 40px; margin-top:44px; padding-top:26px; border-top:1px solid var(--line2); }
.hd-trustbar span{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--navy); }
.hd-trustbar svg{ color:var(--blue); flex:none; }

/* Review rating + pill: bulletproof centring on mobile (full-width flex-centre, no text-align drift) */
.hero-rating.hm-rating, .hero-rating.hd-rating{ display:flex !important; justify-content:center; align-items:center; width:100%; text-align:center; }
.nvr-strip-in{ width:fit-content; max-width:calc(100% - 24px); margin-left:auto; margin-right:auto; justify-content:center; }

/* Homepage verified-reviews pill: sit dead-centre in its band (equal gap above trust icons / below next section) */
.nvr-strip-home{ margin:16px auto 30px; }
.nvr-strip-home .nvr-strip-in{ padding:13px 20px; row-gap:7px; align-content:center; }

/* Cart drawer: community giveaway tickets banner (1 per vial, 2 per Full Kit) */
.npc-giveaway{ display:flex; align-items:center; gap:11px; text-decoration:none; background:linear-gradient(135deg,#0c3b28,#1a6144); color:#fff; border-radius:13px; padding:12px 14px; margin:0 0 12px; border:1px solid rgba(216,167,58,.5); }
.npc-giveaway svg{ color:#f3d27e; flex:none; }
.npc-gw-t{ display:flex; flex-direction:column; line-height:1.25; flex:1; min-width:0; }
.npc-gw-t strong{ font-size:14px; font-weight:800; }
.npc-gw-t span{ font-size:11.5px; color:#cfe6da; }
.npc-gw-go{ font-size:22px; color:#f3d27e; flex:none; }

/* Site-wide monthly-giveaway community strip (home + checkout) */
.gw-join{ display:block; text-decoration:none; background:linear-gradient(135deg,#0c3b28,#1a6144); color:#fff; border-radius:18px; border:1px solid rgba(216,167,58,.45); padding:20px 22px; }
.gw-join-in{ display:flex; align-items:center; gap:16px; max-width:var(--maxw); margin:0 auto; }
.gw-join .ic{ flex:none; width:46px; height:46px; border-radius:12px; background:rgba(216,167,58,.18); display:flex; align-items:center; justify-content:center; color:#f3d27e; }
.gw-join .tx{ flex:1; min-width:0; }
.gw-join .tx strong{ display:block; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:18px; letter-spacing:-.01em; }
.gw-join .tx span{ display:block; font-size:13.5px; color:#cfe6da; margin-top:3px; }
.gw-join .go{ flex:none; background:#f3d27e; color:#2a1b02; font-weight:800; font-size:14px; padding:11px 18px; border-radius:10px; white-space:nowrap; }
@media(max-width:560px){ .gw-join-in{ flex-wrap:wrap; } .gw-join .go{ width:100%; text-align:center; } }

/* Order success: giveaway confirmation block (tickets earned + alias / set-name) */
.cos-gw{ display:flex; align-items:center; gap:12px; text-decoration:none; background:linear-gradient(135deg,#0c3b28,#1a6144); color:#fff; border-radius:14px; padding:14px 16px; margin:4px 0 18px; border:1px solid rgba(216,167,58,.5); text-align:left; }
.cos-gw-ic{ flex:none; color:#f3d27e; }
.cos-gw-t{ display:flex; flex-direction:column; flex:1; min-width:0; line-height:1.3; }
.cos-gw-t strong{ font-size:15px; font-weight:800; }
.cos-gw-t span{ font-size:12.5px; color:#cfe6da; }
.cos-gw-go{ font-size:24px; color:#f3d27e; flex:none; }

/* Homepage MONTHLY $500 GIVEAWAY feature band */
/* Compact giveaway banner: a slim reminder strip (the live wheel lives on
   giveaway.html). Deliberately small so the UGC reels above it carry the page. */
.hgw{ padding:4px 0 clamp(22px,3vw,40px); }
.hgw-card{ display:flex; align-items:center; gap:22px; max-width:var(--maxw); margin:0 auto; text-decoration:none; background:linear-gradient(135deg,#0c3b28 0%,#12544a 60%,#1a6144 100%); border:1px solid rgba(216,167,58,.5); border-radius:18px; padding:18px 24px; position:relative; overflow:hidden; box-shadow:0 12px 30px rgba(12,59,40,.18); transition:transform .18s ease, box-shadow .18s ease; }
.hgw-card:hover{ transform:translateY(-2px); box-shadow:0 18px 40px rgba(12,59,40,.24); }
.hgw-card::after{ content:""; position:absolute; top:-90px; right:-70px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(243,210,126,.18), rgba(243,210,126,0) 66%); pointer-events:none; }
.hgw-left{ flex:1; min-width:0; position:relative; z-index:2; }
.hgw-eyebrow{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#2a1b02; background:linear-gradient(135deg,#f3d27e,#d8a73a); padding:5px 11px; border-radius:999px; }
.hgw-eyebrow svg{ width:13px; height:13px; color:#2a1b02; }
.hgw-h2{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:clamp(18px,2.3vw,24px); line-height:1.1; letter-spacing:-.02em; color:#fff; margin:9px 0 0; }
.hgw-h2 span{ color:#f3d27e; }
.hgw-sub{ display:none; }
.hgw-rules{ display:flex; flex-wrap:wrap; gap:7px; margin:9px 0 0; }
.hgw-chip{ font-size:11.5px; font-weight:700; color:#eafff4; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); padding:4px 10px; border-radius:999px; }
.hgw-ctas{ display:flex; align-items:center; gap:13px; flex-wrap:wrap; margin-top:13px; }
.hgw-cta{ display:inline-flex; align-items:center; gap:7px; background:#f3d27e; color:#2a1b02; font-weight:800; font-size:14px; padding:10px 18px; border-radius:11px; box-shadow:0 8px 18px rgba(216,167,58,.3); }
.hgw-cta svg{ width:15px; height:15px; }
.hgw-note{ font-size:12px; color:#aecbbd; font-weight:600; }
.hgw-right{ flex:none; position:relative; z-index:2; }
.hgw-medal{ position:relative; width:104px; height:104px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #1a6144, #0c3b28); border:2.5px solid rgba(243,210,126,.55); display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:inset 0 0 20px rgba(0,0,0,.25), 0 10px 22px rgba(0,0,0,.22); }
.hgw-ring{ position:absolute; inset:-9px; border-radius:50%; border:2px dashed rgba(243,210,126,.55); animation:hgwspin 14s linear infinite; }
@keyframes hgwspin{ to{ transform:rotate(360deg); } }
.hgw-amt{ font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:30px; line-height:1; color:#f3d27e; }
.hgw-amt-l{ font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:#cfe6da; margin-top:4px; }
@media(max-width:720px){
  .hgw-card{ flex-direction:column-reverse; text-align:center; gap:16px; padding:20px 18px; }
  .hgw-rules, .hgw-ctas{ justify-content:center; }
  .hgw-medal{ width:92px; height:92px; } .hgw-amt{ font-size:26px; }
}
@media(prefers-reduced-motion:reduce){ .hgw-ring{ animation:none; } }

/* Cart: free bac water eligibility prompt (NICKCEO) */
.npc-freebw{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; cursor:pointer; background:linear-gradient(135deg,#0c3b28,#1a6144); color:#fff; border:1px solid rgba(216,167,58,.5); border-radius:13px; padding:12px 14px; margin:0 0 12px; font-family:inherit; transition:transform .12s; }
.npc-freebw:hover{ transform:translateY(-1px); }
.npc-freebw svg{ color:#f3d27e; flex:none; }
.npc-freebw-t{ display:flex; flex-direction:column; line-height:1.25; flex:1; min-width:0; }
.npc-freebw-t strong{ font-size:14px; font-weight:800; }
.npc-freebw-t span{ font-size:11.5px; color:#cfe6da; }
.npc-freebw-add{ flex:none; background:#f3d27e; color:#2a1b02; font-weight:800; font-size:12.5px; padding:7px 12px; border-radius:9px; white-space:nowrap; }

/* Cart: value-add banners + promo moved into the scroll area so the fixed footer
   stays small and the product list gets room to be seen. */
.npc-extras{ padding:0 20px 8px; display:flex; flex-direction:column; }
.npc-extras:empty{ display:none; }
/* Slim single-row trust strip in the lean footer */
.npc-trust-slim{ display:flex; flex-direction:row; align-items:center; gap:8px 14px; flex-wrap:wrap; margin:12px 0 0; padding-top:12px; border-top:1px solid var(--line); }
.npc-trust-slim .npc-trust-b{ font-size:11px; margin:0; }
.npc-trust-slim .npc-trust-b svg{ margin-top:0; }

/* =====================================================================
   PEPTIDE CARTEL — gold/black dark theme overrides
   Luxe streetwear/liquor aesthetic: brushed gold on near-black.
   Appended last so these win by source order. Fixes every hardcoded
   light/teal literal the :root tokens above don't already catch, plus
   maps all var(--navy) action fills (which the tokens turned into light
   TEXT) back to gold fills / dark section surfaces.
   ===================================================================== */

/* ---- brand gradient helpers ---- */
:root{
  --pc-gold-grad:linear-gradient(135deg,#E8C66B,#C9A227);
  --pc-ink:#0B0B0B;            /* near-black text on gold */
  --pc-canvas:#0B0B0B;
  --pc-deep:#080808;
  --pc-card:#141414;
  --pc-card2:#1A1713;
  --pc-hair-gold:rgba(201,162,39,.18);
  --pc-hair-neutral:rgba(255,255,255,.08);
}

/* ---- canvas ---- */
html, body{ background:var(--pc-canvas); color:var(--ink); }

/* ---- display type: Bebas Neue is condensed, so bump size + tracking ---- */
h1, h2, .lhero h1, .sp-hero h1, .coa-hero h1{
  font-family:var(--font-display); letter-spacing:.012em; line-height:1.0;
  text-transform:uppercase; color:var(--ink);
}
.lhero h1{ font-size:clamp(46px,7vw,82px); font-weight:400; }
h2, .sp-hero h1, .coa-hero h1{ font-size:clamp(34px,4.6vw,56px); font-weight:400; color:var(--ink); }
/* key headlines get a subtle gold wash */
.lhero h1, .cta-panel h2, .sp-help-card h2{
  background:var(--pc-gold-grad); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:#E8C66B;
}
/* Plus Jakarta UI headings stay sans (not condensed) for legibility */
.co-h1, .cos-h1, .nvr-h, .npc-title, .pdp-info h2, .co-sec h2, .co-summary h2,
.sp-help-card h2, .pdp-verify-head, .np-sheet-h, .npc-celeb-h, .co-faqs h2{
  font-family:'Plus Jakarta Sans',sans-serif; text-transform:none; letter-spacing:-.01em;
  line-height:1.15; color:var(--ink);
}

/* ---- eyebrows / kickers in gold ---- */
.eyebrow, .sp-eyebrow, .cos-eyebrow, .pdp-up-eyebrow, .hgw-eyebrow,
.npc-celeb-eyebrow, .npc-stack-eyebrow{ color:var(--gold); }

a{ color:var(--gold); }

/* ---- compliance bar ---- */
.compliance{ background:var(--pc-deep); color:var(--muted); border-bottom:1px solid var(--pc-hair-gold); }

/* ---- promo marquee: black bar, gold caps (premium) ---- */
.promo-marquee{ background:var(--pc-deep); border-bottom:1px solid var(--pc-hair-gold); }
.promo-item, .promo-sep{ color:var(--gold); }
.promo-sep{ opacity:.6; }

/* ---- header ---- */
header.site{ background:rgba(11,11,11,.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--pc-hair-gold); }
header.site.scrolled{ box-shadow:0 6px 24px rgba(0,0,0,.6); }
.hnav, .hnav > a, .navdrop-t{ color:var(--body); }
.hnav > a:hover, .navdrop-t:hover, .navdrop[data-open] .navdrop-t{ background:rgba(201,162,39,.1); color:var(--gold); }
.hnav > a.active{ color:var(--gold); background:rgba(201,162,39,.1); }
.hnav a:hover{ color:var(--gold); }
.hnav-row, .hsearch-row{ border-top:1px solid var(--pc-hair-neutral); }
.nav-toggle{ border:1px solid var(--pc-hair-gold); color:var(--gold); }
.hnav a.hnav-verify, .hnav a.hnav-howto svg, .hnav a.hnav-howto:hover,
.hnav a.hnav-verify:hover{ color:var(--gold); }

/* brand lockup */
.brand-by{ border-top:1px solid var(--pc-hair-gold); color:var(--gold); }
.brand-by b{ color:var(--gold); }

/* ---- predictive search field (header + shop) ---- */
.hsearch, .sp-search{ background:var(--pc-card2); border:1.5px solid var(--pc-hair-gold); }
.hsearch:focus-within, .sp-search:focus-within{ background:var(--pc-card); border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,39,.2); }
.hsearch-in, .sp-search-in{ color:var(--ink); }
.hsearch-in::placeholder, .sp-search-in::placeholder{ color:var(--muted); }
.hsearch-ic, .sp-search-ic{ color:var(--muted); }
.hsearch-x, .sp-search-x{ background:rgba(201,162,39,.14); color:var(--gold); }
.hsearch-x:hover, .sp-search-x:hover{ background:rgba(201,162,39,.26); color:var(--gold); }
.hsearch-results, .sp-search-results{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 16px 42px rgba(0,0,0,.6); }
.sp-sr{ border-bottom:1px solid var(--pc-hair-neutral); }
.sp-sr:hover, .sp-sr.is-active{ background:rgba(201,162,39,.08); }
.sp-sr-img{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.sp-sr-name{ color:var(--ink); }
.sp-searchbar{ background:var(--pc-canvas); border-bottom:1px solid var(--pc-hair-neutral); }

/* ---- HERO: black with a gold radial glow (was teal→green) ---- */
.lhero{ background:radial-gradient(900px 520px at 78% -10%, rgba(201,162,39,.16), rgba(201,162,39,0) 60%), linear-gradient(135deg,#0B0B0B,#080808); color:var(--ink); }
.lhero .glow{ background:radial-gradient(circle, rgba(232,198,107,.22), rgba(232,198,107,0) 66%); }
.lhero .eyebrow{ color:var(--gold); }
.lhero p{ color:var(--body); }

/* primary WhatsApp button keeps its green brand */
.btn-wa{ background:var(--wa); color:#063019; box-shadow:0 8px 22px rgba(37,211,102,.28); }
/* ghost button = gold hairline outline */
.btn-ghost{ color:var(--gold); border:1px solid var(--pc-hair-gold); }
.btn-ghost:hover{ background:rgba(201,162,39,.1); }

/* ---- primary action buttons = gold gradient, near-black text ---- */
.btn-enquire, .kit .kit-cta, .pdp-add, .npc-checkout, .co-submit, .co-empty-btn,
.npp-add, .npc-browse, .cos-btn, .pdp-sticky-add, .npc-promo-apply,
.npc-celeb-cta{
  background:var(--pc-gold-grad); color:var(--pc-ink); border:0;
}
.btn-enquire:hover, .kit .kit-cta:hover, .pdp-add:hover:not(:disabled),
.npc-checkout:hover, .co-submit:hover, .npp-add:hover:not(:disabled),
.pdp-sticky-add:hover, .npc-promo-apply:hover, .npc-celeb-cta:hover{
  background:var(--pc-gold-grad); color:var(--pc-ink); filter:brightness(1.06);
  box-shadow:0 8px 22px rgba(201,162,39,.28); transform:translateY(-1px);
}
.npp-add:disabled, .npp-add:disabled .npp-add-p{ background:#2a2a2a; color:var(--muted); filter:none; }
.pdp-add:disabled{ background:#2a2a2a; color:var(--muted); filter:none; }

/* ---- trust strip ---- */
.trust{ background:var(--pc-deep); border-bottom:1px solid var(--pc-hair-gold); }
.trust-item{ color:var(--body); }
.trust-item svg{ color:var(--gold); }
.hd-trustbar{ border-top:1px solid var(--pc-hair-gold); }
.hd-trustbar span{ color:var(--body); }
.hd-trustbar svg{ color:var(--gold); }
.hd-heroimg{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 24px 54px rgba(0,0,0,.6); }
.hd-img-chip{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:0 10px 24px rgba(0,0,0,.5); }

/* ---- sections / body copy ---- */
.block p, .lead-block p{ color:var(--body); }

/* ---- kit cards ---- */
.kit{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.kit:hover{ border-color:var(--gold); box-shadow:var(--shadow-soft); }
.kit-media{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.kit h3{ color:var(--ink); }
.kit h3 span{ color:var(--gold); }
.kit p{ color:var(--body); }
.pill.metabolic{ color:var(--gold); background:rgba(201,162,39,.12); }
.pill.recovery{ color:var(--gold-light); background:rgba(201,162,39,.12); }

/* ---- COA mini band ---- */
.coa{ background:var(--pc-deep); color:var(--ink); border-top:1px solid var(--pc-hair-gold); border-bottom:1px solid var(--pc-hair-gold); }
.coa-inner img{ box-shadow:0 10px 28px rgba(0,0,0,.6); }
.coa-body .eyebrow{ color:var(--gold); }
.coa-body h2{ color:var(--ink); }
.coa-body p{ color:var(--body); }

/* ---- cities / loclinks ---- */
.cities span{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--body); }
.cities span:hover{ border-color:var(--gold); color:var(--gold); }
.loclinks{ background:var(--pc-deep); border-top:1px solid var(--pc-hair-gold); }
.loclinks-grid a{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--body); }
.loclinks-grid a:hover{ border-color:var(--gold); color:var(--gold); }

/* ---- FAQ ---- */
.faq-item{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.faq-q{ color:var(--ink); }
.faq-q .sign{ color:var(--gold); }
.faq-a{ color:var(--body); }

/* ---- CTA panel ---- */
.cta-panel{ background:radial-gradient(600px 360px at 50% -20%, rgba(201,162,39,.16), rgba(201,162,39,0) 60%), linear-gradient(135deg,#141414,#080808); border:1px solid var(--pc-hair-gold); }
.cta-panel p{ color:var(--body); }

/* ---- footer ---- */
footer.site{ background:#060606; border-top:1px solid var(--pc-hair-gold); }
footer .foot-brand p{ color:var(--muted); }
footer .foot-col .h, footer .foot-locs .h{ color:var(--gold); }
footer .foot-col .links a, footer a{ color:var(--body); }
footer .foot-col .links a:hover{ color:var(--gold); }
.legal{ color:var(--muted); }
.legal strong{ color:var(--gold); }
.legal-flag{ color:var(--gold); }
footer .foot-locs{ border-top:1px solid var(--pc-hair-neutral); }
footer .loc-pills a{ background:rgba(255,255,255,.04); border:1px solid var(--pc-hair-gold); color:var(--body); }
footer .loc-pills a:hover{ border-color:var(--gold); color:var(--gold); }

/* ---- floating community button (gold already) ---- */
.community-float{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:0 8px 22px rgba(0,0,0,.5); }
.wa-float{ color:#fff; }

/* ---- invite toast ---- */
.np-invite-toast{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 18px 46px rgba(0,0,0,.6); }
.np-invite-check{ background:rgba(201,162,39,.14); }
.np-invite-check svg path{ stroke:var(--gold); }
.np-invite-txt strong{ color:var(--ink); }
.np-invite-txt span{ color:var(--muted); }

/* ---- skip link ---- */
.skip-link{ background:var(--pc-gold-grad); color:var(--pc-ink); }

/* ---- breadcrumbs ---- */
.breadcrumbs{ background:var(--pc-deep); border-bottom:1px solid var(--pc-hair-gold); }
.breadcrumbs li, .breadcrumbs a{ color:var(--body); }
.breadcrumbs li:not(:last-child)::after{ color:var(--muted); }
.breadcrumbs a:hover{ color:var(--gold); }
.breadcrumbs li[aria-current]{ color:var(--ink); }

/* ---- section-nav (hidden on home, but used elsewhere) ---- */
.section-nav{ background:rgba(11,11,11,.9); border-bottom:1px solid var(--pc-hair-gold); }
.section-nav a{ color:var(--body); }
.section-nav a:hover{ color:var(--ink); }
.section-nav a.active{ color:var(--gold); border-bottom-color:var(--gold); }

/* ---- back to top ---- */
.back-to-top{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--gold); }

/* ---- nav dropdown + mobile drawer ---- */
.navdrop-menu{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.navdrop-menu a{ color:var(--body); }
.navdrop-menu a:hover, .navdrop-menu a:focus-visible{ background:rgba(201,162,39,.1); color:var(--gold); }
.navdrop-menu a.lead{ color:var(--gold); }
.navdrop-menu .sep{ background:var(--pc-hair-neutral); }
.mobile-drawer .md-backdrop{ background:rgba(0,0,0,.72); }
.mobile-drawer .md-panel{ background:var(--pc-card); box-shadow:-10px 0 40px rgba(0,0,0,.7); }
.md-close{ border:1px solid var(--pc-hair-gold); color:var(--gold); }
.md-panel a, .md-group > summary{ color:var(--ink); }
.md-panel a:hover{ background:rgba(201,162,39,.1); }
.md-group > summary::after{ color:var(--gold); }
.md-sub a{ color:var(--body); }
.md-panel a.md-penguide{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:0 6px 16px rgba(0,0,0,.5); }
.md-panel a.md-penguide:hover{ filter:brightness(1.06); }
.md-panel a.md-verify{ color:var(--gold); }

/* ---- header cart button + count ---- */
.cart-btn{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); color:var(--gold); }
.cart-btn:hover{ border-color:var(--gold); color:var(--gold-light); }
.cart-count{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:0 0 0 2px var(--pc-canvas); }

/* =====================================================================
   SHOP GRID + PRODUCT CARDS
   ===================================================================== */
.sp-hero{ background:radial-gradient(700px 360px at 50% -20%, rgba(201,162,39,.12), rgba(201,162,39,0) 60%), var(--pc-canvas); border-bottom:1px solid var(--pc-hair-gold); }
.sp-hero .lead{ color:var(--body); }
.sp-ruo, .pdp-ruo, .sp-sr-meta{ color:var(--muted); }
.sp-filterbar{ background:rgba(11,11,11,.92); border-bottom:1px solid var(--pc-hair-gold); }
.sp-chip{ background:var(--pc-card2); color:var(--body); border:1px solid var(--pc-hair-neutral); }
.sp-chip:hover{ border-color:var(--gold); color:var(--gold); }
.sp-chip.active{ background:var(--pc-gold-grad); color:var(--pc-ink); border-color:transparent; }
.sp-empty{ color:var(--muted); }
.sp-help-card{ background:radial-gradient(600px 300px at 50% -20%, rgba(201,162,39,.14), rgba(201,162,39,0) 60%), linear-gradient(135deg,#141414,#080808); border:1px solid var(--pc-hair-gold); color:var(--ink); }
.sp-help-card p{ color:var(--body); }

/* product card */
.npp-card{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.npp-card:hover{ border-color:var(--gold); box-shadow:var(--shadow-green-md); }
.npp-media{ background:var(--pc-card); border-bottom:0; }
.npp-cat{ color:var(--muted); background:none; }
.npp-name, .npp-name a{ color:var(--ink); }
.npp-name a:hover{ color:var(--gold); }
.npp-verify{ color:var(--gold); background:none; }
.npp-verify:hover{ color:var(--gold-light); }
.npp-str{ color:var(--ink); background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.npp-str:hover{ border-color:var(--gold); }
.npp-str.active{ background:var(--pc-gold-grad); color:var(--pc-ink); border-color:transparent; }
.npp-stock-in{ color:var(--gold); }
.npp-stock-low{ color:#D8A24A; }
.npp-stock-out{ color:var(--muted); }
/* segmented single/kit control */
.npp-seg{ border:1.5px solid var(--pc-hair-gold); }
.npp-cell{ background:var(--pc-card2); border-right:1px solid var(--pc-hair-gold); }
.npp-cell:hover:not(:disabled):not(.is-sel){ background:rgba(201,162,39,.08); }
.npp-cell-k, .npp-cell-cap{ color:var(--muted); }
.npp-cell-p{ color:var(--ink); }
.npp-cell.is-sel{ background:var(--pc-gold-grad); }
.npp-cell.npp-cell-kit.is-sel{ background:var(--pc-gold-grad); }
.npp-cell.is-sel .npp-cell-k, .npp-cell.is-sel .npp-cell-p{ color:var(--pc-ink); }
.npp-cell.is-sel .npp-cell-cap{ color:rgba(11,11,11,.7); }
.npp-cell-tag{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.npp-cell.is-sel .npp-cell-tag{ background:var(--pc-canvas); color:var(--gold); }
.npp-cell-info{ background:rgba(201,162,39,.14); color:var(--gold); }
.npp-cell.is-sel .npp-cell-info{ background:rgba(11,11,11,.25); color:var(--pc-ink); }
.npp-add.is-added{ background:var(--pc-gold-grad) !important; color:var(--pc-ink); }
.npp-add.is-added .npp-add-p{ color:var(--pc-ink); }
/* radio-style option cards (v2, fallback) */
.npp-opt{ background:var(--pc-card2); border:1.5px solid var(--pc-hair-gold); }
.npp-opt:hover:not(:disabled){ border-color:var(--gold); }
.npp-opt.is-sel{ border-color:var(--gold); background:rgba(201,162,39,.1); }
.npp-opt.npp-opt-kit{ background:var(--pc-card2); }
.npp-opt.npp-opt-kit.is-sel{ border-color:var(--gold); background:rgba(201,162,39,.1); }
.npp-opt-tick{ border:1.5px solid var(--pc-hair-gold); background:var(--pc-card); }
.npp-opt.is-sel .npp-opt-tick, .npp-opt.npp-opt-kit.is-sel .npp-opt-tick{ border-color:var(--gold); background:var(--gold); }
.npp-opt.is-sel .npp-opt-tick::after{ border-color:var(--pc-ink); }
.npp-opt-k{ color:var(--muted); }
.npp-opt-p{ color:var(--ink); }
.npp-opt-add{ color:var(--pc-ink); background:var(--pc-gold-grad); }
.npp-opt-kit{ background:rgba(201,162,39,.1); border-color:var(--pc-hair-gold); }
.npp-kit-tag{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:none; }
.npp-info{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--muted); }
.npp-info:hover{ border-color:var(--gold); color:var(--gold); }
.npp-details{ color:var(--muted); }
.npp-details:hover{ color:var(--gold); }
/* strength dropdown */
.npp-strsel{ background:var(--pc-card2); border:1.5px solid var(--pc-hair-gold); color:var(--ink); }
.npp-strsel:hover{ border-color:var(--gold); }
.npp-strsel:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,39,.2); }
.npp-strsel-lbl, .npp-strsel-single, .npp-strsel-ic{ color:var(--muted); }
.npp-strsel option{ background:var(--pc-card); color:var(--ink); }
/* sold-out card */
.npp-seg-out{ border:1.5px dashed var(--pc-hair-gold); background:var(--pc-card2); }
.npp-outmsg{ color:var(--muted); }
.npp-buyrow-out .npp-add{ background:#2a2a2a; color:var(--muted); }
/* oral buy row */
.npp-oralbuy{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.npp-oralbuy-total{ color:var(--ink); }
.npp-oralbuy-per{ color:var(--muted); }
.npp-oralbuy-save{ color:#0B0B0B; background:var(--gold-light); border:1px solid var(--gold); }

/* kit info popover */
.np-kitinfo{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 16px 40px rgba(0,0,0,.6); }
.np-kitinfo-h{ color:var(--ink); }
.np-kitinfo li{ color:var(--body); }

/* =====================================================================
   PDP
   ===================================================================== */
.pdp-hero{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-thumb{ background:var(--pc-card2); border:1.5px solid var(--pc-hair-gold); }
.pdp-thumb.active{ border-color:var(--gold); }
.pdp-hero[data-mode="kit"] .pdp-hero-plus, .pdp-pick-plus, .pdp-pick-combo + *,
.npp-media[data-mode="kit"] .npp-media-plus{ color:var(--gold); }
.pdp-kitdesc{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.pdp-kitdesc-h{ color:var(--ink); }
.pdp-kitdesc-h svg, .pdp-kitdesc-list .kd-q{ color:var(--gold); }
.pdp-kitdesc-list li{ color:var(--body); }
.pdp-cat{ color:var(--gold); background:rgba(201,162,39,.12); }
.pdp-name{ color:var(--ink); }
.pdp-blurb, .pdp-more p{ color:var(--body); }
.pdp-compounds{ color:var(--gold); background:rgba(201,162,39,.12); }
.pdp-hook{ color:var(--ink); }
.pdp-more-btn{ color:var(--gold); }
.pdp-more-btn:hover{ color:var(--gold-light); }
.pdp-verify-chip{ color:var(--gold); background:rgba(201,162,39,.1); border:1px solid var(--pc-hair-gold); }
.pdp-label{ color:var(--muted); }
.pdp-str{ color:var(--ink); background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.pdp-str:hover{ border-color:var(--gold); }
.pdp-str.active{ background:var(--pc-gold-grad); color:var(--pc-ink); border-color:transparent; }
.pdp-stock-in{ color:var(--gold); }
.pdp-stock-low{ color:#D8A24A; }
.pdp-stock-out{ color:var(--muted); }
.pdp-pick{ background:var(--pc-card2); border:2px solid var(--pc-hair-gold); }
.pdp-pick:hover{ border-color:var(--gold); }
.pdp-pick.active{ border-color:var(--gold); box-shadow:0 8px 20px rgba(0,0,0,.5); }
.pdp-pick-kit.active{ border-color:var(--gold); }
.pdp-pick-k, .pdp-pick-p{ color:var(--ink); }
.pdp-pick-note{ color:var(--muted); }
.pdp-kitflag{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.pdp-add-p{ color:var(--pc-ink); }
.pdp-trust li{ color:var(--body); }
.pdp-trust svg{ color:var(--gold); }
.pdp-info{ background:var(--pc-deep); border-top:1px solid var(--pc-hair-gold); }
.pdp-info h2, .pdp-info-main h2{ color:var(--ink); }
.pdp-info p{ color:var(--body); }
.pdp-kit-figure{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-kit-grid{ background:var(--pc-hair-gold); border:1px solid var(--pc-hair-gold); }
.pdp-kit-cell{ background:var(--pc-card); }
.pdp-kit-cell .k-qty{ color:var(--gold); }
.pdp-kit-cell .k-name{ color:var(--ink); }
.pdp-verify{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-verify-head{ color:var(--ink); }
.pdp-verify-head svg{ color:var(--gold); }
.pdp-verify-meta{ color:var(--muted); }
.pdp-verify-btn, .np-sheet-btn, .coa-verify, .pdp-up-add{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.pdp-verify-btn:hover, .np-sheet-btn:hover, .coa-verify:hover{ filter:brightness(1.06); background:var(--pc-gold-grad); }
.pdp-faq-item{ border-bottom:1px solid var(--pc-hair-neutral); }
.pdp-faq-item summary, .pdp-faq-item p{ color:var(--ink); }
.pdp-faq-item p{ color:var(--body); }
.pdp-up{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.pdp-up img{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-up-t strong{ color:var(--ink); }
.pdp-up-note{ color:var(--muted); }
.pdp-up-eyebrow{ color:var(--gold); }
.pdp-up-added{ color:var(--gold); }
.pdp-spec{ border-top:1px solid var(--pc-hair-gold); }
.pdp-spec-row{ border-bottom:1px solid var(--pc-hair-neutral); }
.pdp-spec-k{ color:var(--muted); }
.pdp-spec-v{ color:var(--ink); }
.pdp-rating .nvr-strip-num{ color:var(--ink); }
.pdp-rating .nvr-strip-count{ color:var(--muted); }
.pdp-oral-figure{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-oral-seo, .pdp-oral-related{ border-top:1px solid var(--pc-hair-neutral); }
.pdp-oral-seo h3, .pdp-oral-related h3{ color:var(--ink); }
.pdp-oral-related a{ color:var(--gold); }
.pdp-solo-p{ color:var(--ink); }
.pdp-solo-save{ color:#0B0B0B; background:var(--gold-light); border:1px solid var(--gold); }
.pdp-solo-cap{ color:var(--muted); }
/* sticky mobile buy bar */
.pdp-sticky{ background:rgba(11,11,11,.96); border-top:1px solid var(--pc-hair-gold); box-shadow:0 -8px 24px rgba(0,0,0,.6); }
.pdp-sticky-in img{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.pdp-sticky-t b{ color:var(--ink); }
.pdp-sticky-t span{ color:var(--muted); }

/* =====================================================================
   CHECKOUT
   ===================================================================== */
.co-h1, .co-sec h2{ color:var(--ink); }
.co-f label, .co-f-split label{ color:var(--muted); }
.co-f input, .co-f select, .co-f-split input, .co-f-split select{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); color:var(--ink); }
.co-f input:focus, .co-f select:focus, .co-f-split input:focus, .co-f-split select:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,39,.2); }
.co-f input::placeholder, .co-f-split input::placeholder{ color:var(--muted); }
.co-f select option{ background:var(--pc-card); color:var(--ink); }
.co-ship-opt{ background:var(--pc-card2); border:2px solid var(--pc-hair-gold); }
.co-ship-opt:hover{ border-color:var(--gold); }
.co-ship-opt.selected{ border-color:var(--gold); background:rgba(201,162,39,.08); }
.co-ship-t b, .co-ship-p{ color:var(--ink); }
.co-ship-t small, .co-ship-note{ color:var(--muted); }
.co-free{ color:var(--gold); }
.co-ship-ic-standard{ background:rgba(201,162,39,.14); color:var(--gold); }
.co-ship-ic-express{ background:rgba(216,162,74,.18); color:#D8A24A; }
.co-ship-note-ic{ color:var(--gold); }
.co-pay{ border:1px solid var(--pc-hair-gold); }
.co-pay-badge{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.co-pay-head > span:last-child{ color:var(--muted); }
.co-bank-row{ background:var(--pc-card2); }
.co-bank-k{ color:var(--muted); }
.co-bank-v{ color:var(--ink); }
.co-copy, .coa-copy{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--body); }
.co-copy:hover, .coa-copy:hover{ border-color:var(--gold); color:var(--gold); }
.co-bank-note, .cos-bank-note{ color:var(--gold-light); background:rgba(201,162,39,.08); border:1px solid var(--pc-hair-gold); }
.co-note, .co-secure{ color:var(--muted); }
.co-secure svg{ color:var(--gold); }
.co-error, .co-empty{ color:#E88A6B; }
.co-why{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); color:var(--body); }
.co-why strong{ color:var(--ink); }
.co-bank-payid, .cos-bank .co-bank-payid{ background:rgba(201,162,39,.1); border:1px solid var(--pc-hair-gold); }
.co-payid-tag{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.co-summary{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.co-summary h2{ color:var(--ink); }
.co-lines li{ color:var(--body); }
.co-line-n em, .co-line-q, .co-sum-r{ color:var(--muted); }
.co-line-kit{ color:var(--gold); background:rgba(201,162,39,.14); }
.co-line-p, .co-sum-r > span:last-child{ color:var(--ink); }
.co-line-was{ color:var(--muted); }
.co-line-save, .co-sum-save > span, .co-sum-save > span:last-child{ color:var(--gold) !important; }
.co-line-save{ background:rgba(201,162,39,.12); border:1px solid var(--pc-hair-gold); }
.co-sum, .co-sum-total{ border-top:1px solid var(--pc-hair-neutral); }
.co-sum-total > span{ color:var(--ink) !important; }
.co-trust-i{ color:var(--body); background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.co-trust-i svg{ color:var(--gold); }
.co-faqs h2{ color:var(--ink); }
.co-faq-item{ border-bottom:1px solid var(--pc-hair-neutral); }
.co-faq-item summary{ color:var(--ink); }
.co-faq-item summary::after{ color:var(--muted); }
.co-faq-item p{ color:var(--body); }

/* checkout success */
.cos-card{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.cos-ic{ background:rgba(201,162,39,.14); color:var(--gold); }
.cos-eyebrow{ color:var(--gold); }
.cos-h1{ color:var(--ink); }
.cos-lead{ color:var(--body); }
.cos-ref{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); color:var(--ink); }
.cos-bank{ border:1px solid var(--pc-hair-gold); }
.cos-bank-head{ color:var(--ink); }
.cos-wa{ background:var(--wa); color:#063019; }
.cos-wa-note, .cos-cont{ color:var(--muted); }
.cos-cont:hover{ color:var(--gold); }

/* =====================================================================
   CART DRAWER
   ===================================================================== */
.npc-backdrop{ background:rgba(0,0,0,.72); }
.npc-drawer{ background:var(--pc-card); box-shadow:-12px 0 40px rgba(0,0,0,.7); }
.npc-head{ border-bottom:1px solid var(--pc-hair-gold); }
.npc-title{ color:var(--ink); }
.npc-headcount, .npc-x{ color:var(--muted); }
.npc-ship-bar span{ color:var(--muted); }
.npc-ship-bar.unlocked span{ color:var(--gold); }
.npc-track{ background:rgba(255,255,255,.08); }
.npc-track i{ background:var(--pc-gold-grad); }
.npc-stack-card{ border:1px solid var(--pc-hair-gold); background:linear-gradient(180deg,#1A1713,#141414); }
.npc-stack-card.is-max{ border-color:var(--gold); background:linear-gradient(180deg,#201b10,#17130a); }
.npc-stack-eyebrow{ color:var(--gold); }
.npc-stack-pct{ color:var(--pc-ink); background:var(--pc-gold-grad); box-shadow:none; }
.npc-stack-card.is-max .npc-stack-pct{ background:var(--gold); color:var(--pc-ink); }
.npc-stack-msg{ color:var(--body); }
.npc-stack-msg strong{ color:var(--ink); }
.npc-stack-pips i{ background:rgba(255,255,255,.12); }
.npc-stack-pips i.on{ background:var(--pc-gold-grad); }
.npc-stack-card.is-max .npc-stack-pips i{ background:var(--pc-gold-grad); }
.npc-thumb{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.npc-item-name{ color:var(--ink); }
.npc-str{ color:var(--muted); }
.npc-kit{ color:var(--gold); background:rgba(201,162,39,.14); }
.npc-q{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); color:var(--ink); }
.npc-q:hover{ border-color:var(--gold); }
.npc-qn{ color:var(--ink); }
.npc-rm{ color:var(--muted); }
.npc-item-price{ color:var(--ink); }
.npc-was{ color:var(--muted); }
.npc-item-sale .npc-now, .npc-free{ color:var(--gold); }
.npc-save, .npc-gift-tag{ color:#0B0B0B; background:var(--gold-light); border:1px solid var(--gold); }
.npc-empty{ color:var(--muted); }
.npc-up{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.npc-up img{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.npc-up-t strong{ color:var(--ink); }
.npc-up-t span{ color:var(--muted); }
.npc-up-add{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.npc-up-note{ color:#0B0B0B; background:var(--gold-light); border:1px solid var(--gold); }
.npc-up-what summary{ color:var(--ink); }
.npc-up-what summary::after, .npc-up-what li{ color:var(--muted); }
.npc-up-head{ color:var(--muted); }
.npc-up-price s, .npc-up-price b{ color:var(--ink); }
.npc-up-price s{ color:var(--muted); }
.npc-up-save{ color:var(--gold); }
.npc-foot{ border-top:1px solid var(--pc-hair-gold); }
.npc-row{ color:var(--muted); }
.npc-row > span:last-child{ color:var(--ink); }
.npc-row-save > span{ color:var(--gold) !important; }
.npc-total{ border-top:1px solid var(--pc-hair-neutral); }
.npc-continue{ color:var(--muted); }
.npc-continue:hover{ color:var(--gold); }
.npc-trust{ border-top:1px solid var(--pc-hair-neutral); }
.npc-trust-b{ color:var(--muted); }
.npc-trust-b svg{ color:var(--gold); }
.npc-trust-slim{ border-top:1px solid var(--pc-hair-neutral); }
.npc-pb{ filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.4)); }
.npc-toast, .npc-undo{ background:var(--pc-card); color:var(--ink); border:1px solid var(--pc-hair-gold); box-shadow:0 14px 34px rgba(0,0,0,.6); }
.npc-toast-ic{ color:var(--gold); }
.npc-undo-btn{ background:rgba(201,162,39,.18); color:var(--gold); }
.npc-undo-btn:hover{ background:rgba(201,162,39,.3); }
.npc-oos{ background:#5a1410; color:#ffd9d2; box-shadow:0 14px 34px rgba(0,0,0,.6); }
/* promo code */
.npc-promo-in{ background:var(--pc-card2); border:1.5px solid var(--pc-hair-gold); color:var(--ink); }
.npc-promo-in::placeholder{ color:var(--muted); }
.npc-promo-in:focus{ background:var(--pc-card); border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,39,.2); }
.npc-promo.is-on{ background:linear-gradient(180deg,#1A1713,#141414); border:1px solid var(--gold); }
.npc-promo-tick{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.npc-promo-txt strong{ color:var(--ink); }
.npc-promo-txt span{ color:var(--body); }
.npc-promo-x{ color:var(--muted); }
/* promo celebration */
.npc-celeb-bd{ background:rgba(0,0,0,.72); }
.npc-celeb-card{ background:var(--pc-card); box-shadow:0 30px 80px rgba(0,0,0,.7); }
.npc-celeb-ring{ background:var(--pc-gold-grad); box-shadow:0 10px 26px rgba(201,162,39,.4); }
.npc-celeb-ic{ color:var(--pc-ink); }
.npc-celeb-eyebrow{ color:var(--gold); }
.npc-celeb-h{ color:var(--ink); }
.npc-celeb-sub{ color:var(--muted); }
.npc-celeb-list li{ color:var(--body); }
.npc-celeb-list li strong{ color:var(--ink); }
.npc-celeb-list svg{ color:var(--gold); }
.npc-celeb-cta{ color:var(--pc-ink); }

/* FOMO popup */
.npf-card{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 14px 38px rgba(0,0,0,.6); }
.npf-card:hover{ border-color:var(--gold); }
.npf-thumb{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.npf-tick{ background:var(--pc-gold-grad); border:2px solid var(--pc-card); }
.npf-tick svg{ color:var(--pc-ink); }
.npf-l1{ color:var(--ink); }
.npf-l2{ color:var(--body); }
.npf-l2 strong, .npf-verified{ color:var(--gold); }
.npf-l3, .npf-dot{ color:var(--muted); }
.npf-x{ background:rgba(201,162,39,.1); color:var(--muted); }
.npf-x:hover{ background:rgba(201,162,39,.2); color:var(--gold); }

/* COA proof sheet */
.np-sheet-bd{ background:rgba(0,0,0,.72); }
.np-sheet-panel{ background:var(--pc-card); box-shadow:0 -16px 48px rgba(0,0,0,.7); }
.np-sheet-x{ color:var(--muted); }
.np-sheet-badge{ background:var(--pc-card2); color:var(--ink); border:1px solid var(--pc-hair-gold); }
.np-sheet-badge svg{ color:var(--gold); }
.np-sheet-h{ color:var(--ink); }
.np-sheet-rows > div{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.np-sheet-rows span{ color:var(--muted); }
.np-sheet-rows b{ color:var(--ink); }
.np-sheet-pass{ color:var(--gold) !important; }
.np-sheet-note{ color:var(--body); }

/* =====================================================================
   VIEW-ALL COAs PAGE
   ===================================================================== */
.coa-hero{ background:radial-gradient(700px 360px at 50% -20%, rgba(201,162,39,.12), rgba(201,162,39,0) 60%), var(--pc-canvas); border-bottom:1px solid var(--pc-hair-gold); }
.coa-hero h1{ color:var(--ink); }
.coa-hero .lead{ color:var(--body); }
.coa-card{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); }
.coa-top img{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.coa-id h3{ color:var(--ink); }
.coa-cat{ color:var(--gold); }
.coa-pass{ color:var(--gold); background:rgba(201,162,39,.14); }
.coa-meta{ color:var(--muted); }
.coa-meta b{ color:var(--ink); }
.coa-keyrow{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.coa-key{ color:var(--ink); }

/* =====================================================================
   REVIEWS WIDGET
   ===================================================================== */
.nvr-h{ color:var(--ink); }
.nvr-note, .nvr-brandnote, .nvr-aggcount, .nvr-distrow, .nvr-date, .nvr-strip-count{ color:var(--muted); }
.nvr-brandmark{ color:var(--ink); background:rgba(201,162,39,.1); border:1px solid var(--pc-hair-gold); }
.nvr-brandmark svg, .nvr-strip-mark svg, .nvr-verified, .revm-ver{ color:var(--gold); }
.nvr-star{ color:#3a362c; }
.nvr-star.on, .nvr-distfill{ color:var(--gold); background:var(--gold); }
.nvr-star.on{ background:none; }
.nvr-agg{ background:var(--pc-card2); border:1px solid var(--pc-hair-gold); }
.nvr-aggnum{ color:var(--ink); }
.nvr-disttrack{ background:rgba(255,255,255,.1); }
.nvr-card, .revm-card{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 12px 28px rgba(0,0,0,.4); }
.nvr-avatar{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.nvr-name, .nvr-title, .revm-name{ color:var(--ink); }
.nvr-body, .revm-text{ color:var(--body); }
.nvr-strip-in{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); box-shadow:0 6px 18px rgba(0,0,0,.4); }
.nvr-strip-mark, .nvr-strip-num{ color:var(--ink); }
.nvr-lightbox{ background:rgba(0,0,0,.9); }
.nvr-seeall{ background:var(--pc-card); border:1px solid var(--pc-hair-gold); color:var(--ink); }
.nvr-seeall:hover{ border-color:var(--gold); background:rgba(201,162,39,.08); }
.revm-photo{ background:var(--pc-card2); }

/* =====================================================================
   GIVEAWAY BANDS — keep them dark+gold (were green gradients)
   ===================================================================== */
.npc-giveaway, .gw-join, .cos-gw, .hgw-card, .npc-freebw{
  background:radial-gradient(400px 220px at 85% -30%, rgba(201,162,39,.18), rgba(201,162,39,0) 60%), linear-gradient(135deg,#141414,#080808) !important;
  border:1px solid var(--pc-hair-gold) !important; color:var(--ink) !important;
}
.npc-giveaway svg, .npc-gw-go, .cos-gw-ic, .cos-gw-go, .npc-freebw svg{ color:var(--gold); }
.npc-gw-t span, .gw-join .tx span, .cos-gw-t span, .hgw-note, .npc-freebw-t span{ color:var(--body); }
.gw-join .ic{ background:rgba(201,162,39,.16); color:var(--gold); }
.gw-join .tx strong, .cos-gw-t strong, .npc-gw-t strong, .npc-freebw-t strong{ color:var(--ink); }
.gw-join .go, .hgw-cta, .npc-freebw-add{ background:var(--pc-gold-grad); color:var(--pc-ink); box-shadow:0 8px 18px rgba(201,162,39,.25); }
.hgw-eyebrow{ background:var(--pc-gold-grad); color:var(--pc-ink); }
.hgw-eyebrow svg{ color:var(--pc-ink); }
.hgw-h2{ color:var(--ink); }
.hgw-h2 span, .hgw-amt{ color:var(--gold); }
.hgw-chip{ color:var(--body); background:rgba(201,162,39,.1); border:1px solid var(--pc-hair-gold); }
.hgw-medal{ background:radial-gradient(circle at 35% 30%, #1A1713, #080808); border:2.5px solid rgba(201,162,39,.55); }
.hgw-ring{ border:2px dashed rgba(201,162,39,.55); }
.hgw-amt-l{ color:var(--body); }
.hgw-card::after{ background:radial-gradient(circle, rgba(201,162,39,.18), rgba(201,162,39,0) 66%); }

/* ---- video frames (homepage) ---- */
.video-card .frame{ border:1px solid var(--pc-hair-gold); }
.hd-img-chip{ background:var(--pc-gold-grad); }

/* ---- focus rings in gold ---- */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
.npp-cell:focus-visible, [role="radio"]:focus-visible, [role="button"]:focus-visible{
  outline:2px solid var(--gold); outline-offset:2px;
}

/* ---- scroll progress bar ---- */
.scroll-progress{ background:var(--pc-gold-grad); }
/* ===== end PEPTIDE CARTEL overrides ===== */

/* Peptide Cartel: cluster cart + hamburger together on the right (mobile) */
@media (max-width:720px){ .header-inner .cart-btn{ margin-left:auto; } .header-inner{ gap:12px; } }
