/* Longev Biotech — product page + flagship modules */

.pdp { padding-block:32px clamp(48px,6vw,88px); }
.pdp-top { display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start; }
@media (max-width:900px){ .pdp-top{ grid-template-columns:1fr; gap:28px; } }

/* gallery */
.gallery { position:sticky; top:calc(var(--nav-h) + 20px); }
.gallery__stage { aspect-ratio:1/1; border-radius:var(--r-xl); background:radial-gradient(ellipse at 50% 30%,var(--n-100),var(--n-50)); box-shadow:var(--sh-border),var(--sh-1); display:flex; align-items:center; justify-content:center; padding:36px; position:relative; overflow:hidden; }
.gallery__stage .vial-svg { height:88%; animation:floaty 6s ease-in-out infinite; filter:drop-shadow(0 24px 40px rgba(21,42,107,.28)); }
@keyframes floaty { 50% { transform:translateY(-10px); } }
@media (prefers-reduced-motion:reduce){ .gallery__stage .vial-svg{ animation:none; } }
.gallery__glow { position:absolute; inset:0; background:radial-gradient(circle at 50% 40%,var(--accent-glow),transparent 55%); opacity:.5; }
.gallery__tabs { display:flex; gap:8px; margin-top:14px; }
.gtab { flex:1; padding:9px; border-radius:var(--r-md); border:1px solid var(--line); background:var(--surface); font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-2); transition:background var(--dur),color var(--dur),border-color var(--dur),box-shadow var(--dur); }
.gtab.on { background:var(--ink); color:var(--surface); border-color:var(--ink); }
.gpane { display:none; margin-top:14px; }
.gpane.on { display:block; }
.gpane--data { padding:20px; border-radius:var(--r-lg); background:var(--surface-2); box-shadow:var(--sh-border); }

/* buy box — compact / optimized */
.buybox h1 { font-size:var(--step-3); }
.buybox__sub { font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--ink-3); font-size:var(--step--2); margin-top:4px; }
.buybox__tagline { color:var(--ink-2); font-size:var(--step-0); margin-top:8px; line-height:1.45; max-width:54ch; }
.trust-chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:12px; }
.buybox__price { display:flex; align-items:baseline; gap:10px; margin-top:14px; }
.buybox__price .now { font-size:var(--step-2); font-weight:700; letter-spacing:-.03em; }
.buybox__price .per { font-family:var(--font-mono); font-size:var(--step--2); color:var(--ink-3); }
.bogo-line { margin-top:5px; font-size:var(--step--1); color:var(--ok); font-weight:600; display:inline-flex; align-items:center; gap:7px; }
.bogo-line svg { width:15px; height:15px; }
.wholesale-line { color:var(--accent-ink); }

.variants { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; margin-top:14px; }
.variant { position:relative; padding:8px 11px; border-radius:var(--r-md); border:1.5px solid var(--line); background:var(--surface); text-align:left; transition:border-color var(--dur),box-shadow var(--dur); cursor:pointer; }
.variant__head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.variant__sub { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:2px; }
.variant:hover { border-color:var(--ink-3); }
.variant.on { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.variant__size { font-weight:700; font-size:var(--step-0); letter-spacing:-.01em; }
.variant__price { font-family:var(--font-mono); font-weight:600; font-size:var(--step--1); color:var(--ink); }
.variant__unit { font-family:var(--font-mono); font-size:10px; color:var(--ink-3); }
.variant__save { font-family:var(--font-mono); font-size:9.5px; font-weight:600; color:var(--ok); background:var(--ok-tint); padding:1px 5px; border-radius:var(--r-sm); letter-spacing:.02em; }
.variant.on .variant__price { color:var(--accent-ink); }
.variant__best { position:absolute; top:-8px; left:9px; font-family:var(--font-mono); font-size:8.5px; text-transform:uppercase; letter-spacing:.06em; background:var(--accent); color:#fff; padding:2px 7px; border-radius:var(--r-pill); box-shadow:0 2px 6px var(--accent-glow); }

.buy-row { display:flex; gap:10px; margin-top:14px; align-items:stretch; }
.qty-stepper { display:inline-flex; align-items:center; border:1px solid var(--line-strong); border-radius:var(--r-md); }
.qty-stepper button { width:38px; height:44px; display:flex; align-items:center; justify-content:center; color:var(--ink-2); }
.qty-stepper button svg { width:17px; height:17px; }
.qty-stepper span { min-width:38px; text-align:center; font-weight:700; font-variant-numeric:tabular-nums; }
.buy-row .btn { min-height:44px; }

/* compact single-row trust strip (merges the old pass-row + trust-row) */
.pass-row { display:flex; gap:8px; margin-top:14px; }
.pass-cell { flex:1; padding:9px 11px; border-radius:var(--r-md); background:var(--surface-2); box-shadow:var(--sh-border); }
.pass-cell__v { display:flex; align-items:center; gap:7px; font-weight:650; font-size:var(--step--1); }
.pass-cell__v svg { width:16px; height:16px; color:var(--ok); }
.pass-cell__l { font-family:var(--font-mono); font-size:10px; color:var(--ink-3); text-transform:uppercase; letter-spacing:.05em; margin-top:2px; }

.trust-row { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; padding-top:13px; border-top:1px solid var(--line); }
.trust-row div { display:flex; align-items:center; gap:7px; font-size:var(--step--2); color:var(--ink-2); }
.trust-row svg { width:16px; height:16px; color:var(--accent-ink); }

/* sticky mini buy-bar */
.mini-buybar { position:fixed; left:0; right:0; bottom:0; z-index:70; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-top:1px solid var(--line); box-shadow:0 -4px 20px rgba(15,18,24,.06); transform:translateY(110%); transition:transform var(--dur-mod) var(--ease-std); }
.mini-buybar.show { transform:none; }
.mini-buybar__in { display:flex; align-items:center; gap:16px; padding:12px 0; }
.mini-buybar__name { font-weight:700; }
.mini-buybar__price { font-family:var(--font-mono); color:var(--ink-2); }
.mini-buybar .btn { margin-left:auto; }
@media (max-width:560px){ .mini-buybar__name{ display:none; } }

/* section kickers */
.sec-no { font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; color:var(--accent-ink); text-transform:uppercase; }
.flag-sec { padding-block:clamp(40px,5vw,72px); border-top:1px solid var(--line); }
.flag-head { margin-bottom:32px; }
.flag-head h2 { font-size:var(--step-3); max-width:24ch; margin-top:8px; }
.flag-head p { color:var(--ink-2); max-width:56ch; margin-top:10px; }

/* magnitude bars */
.mag-list { display:flex; flex-direction:column; gap:16px; }
.mag { }
.mag__top { display:flex; justify-content:space-between; font-size:var(--step--1); margin-bottom:6px; }
.mag__label { color:var(--ink-2); }
.mag__pct { font-family:var(--font-mono); font-weight:700; }
.mag__track { height:10px; border-radius:var(--r-pill); background:var(--surface-sunk); overflow:hidden; }
.mag__fill { height:100%; border-radius:var(--r-pill); background:var(--brand-grad); width:0; transition:width 1s var(--ease-std); }
.mag[data-mr].in .mag__fill { width:var(--w); }

/* mechanism cards */
.mech-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.mech { padding:22px; border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--sh-border),var(--sh-1); }
.mech__tag { font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent-ink); }
.mech h3 { font-size:var(--step-1); margin:8px 0; }
.mech p { color:var(--ink-2); font-size:var(--step--1); }
.mech__cite { margin-top:10px; font-size:11px; color:var(--ink-3); font-family:var(--font-mono); }

/* animated orbit hero */
.orbit-hero { position:relative; height:320px; border-radius:var(--r-xl); background:radial-gradient(ellipse at 50% 50%,#111a30,#0a0e18); overflow:hidden; box-shadow:var(--sh-border); display:flex; align-items:center; justify-content:center; }
.orbit-hero svg { width:100%; height:100%; }

/* spec sheet */
.spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
@media (max-width:640px){ .spec-grid{ grid-template-columns:1fr; } }
.spec-row { display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--line); font-size:var(--step--1); }
.spec-row dt { color:var(--ink-3); font-family:var(--font-mono); text-transform:uppercase; font-size:11px; letter-spacing:.05em; }
.spec-row dd { margin:0; font-weight:600; text-align:right; }

/* atom cloud — light stage (matches molecular-data card) */
.atom-cloud { height:260px; border-radius:var(--r-lg); overflow:hidden;
  background:radial-gradient(ellipse at 50% 42%, #ffffff, var(--surface-2) 78%);
  box-shadow:var(--sh-border), inset 0 1px 30px rgba(15,18,24,.03); }

/* coa table on product */
.coa-mini { }
.pdp-note { font-size:11px; color:var(--ink-3); font-family:var(--font-mono); margin-top:10px; line-height:1.5; }

/* cross-sell */
.crosssell { border-top:1px solid var(--line); padding-block:clamp(40px,5vw,72px); }

/* accessory grid */
.acc-info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-top:8px; }

/* stat tiles */
.stat-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:14px; margin-top:26px; }
.stat-tile { padding:16px; border-radius:var(--r-md); background:var(--surface-2); box-shadow:var(--sh-border); }
.stat-tile__v { font-size:var(--step-2); font-weight:700; letter-spacing:-.02em; }
.stat-tile__l { font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); margin-top:2px; }

/* ---- molecule section (Aspect-style: atom representation + data card) ---- */
.mol-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(24px,4vw,56px); align-items:center; }
@media (max-width:820px){ .mol-layout{ grid-template-columns:1fr; } }
.mol-atom { display:flex; flex-direction:column; gap:14px; }
.mol-atom .atom-cloud { height:300px; width:100%; }
.mol-legend { display:flex; gap:16px; flex-wrap:wrap; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--ink-3); letter-spacing:.04em; }
.mol-legend span { display:inline-flex; align-items:center; gap:6px; }
.mol-legend i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.mol-data { background:var(--surface); border-radius:var(--r-xl); box-shadow:var(--sh-border),var(--sh-1); overflow:hidden; }
.mol-formula-box { padding:22px 24px; background:linear-gradient(180deg,var(--accent-tint),transparent); border-bottom:1px solid var(--line); }
.mol-formula-box .mono-label { color:var(--ink-3); }
.mol-formula { font-family:var(--font-mono); font-size:clamp(1.6rem,1.1rem+2vw,2.4rem); font-weight:600; letter-spacing:-.01em; color:var(--ink); margin-top:8px; line-height:1; }
.mol-formula sub { font-size:.58em; font-weight:500; color:var(--ink-2); vertical-align:-.25em; margin-left:.5px; }
.mol-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin:0; }
@media (max-width:520px){ .mol-grid{ grid-template-columns:repeat(2,1fr); } }
.mol-cell { background:var(--surface); padding:16px 18px; }
.mol-cell dt { font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); }
.mol-cell dd { margin:6px 0 0; font-size:var(--step--1); font-weight:600; font-family:var(--font-mono); }
.mol-cell dd.ok { color:var(--ok); }

.accent-word { color:var(--accent); }

/* breadcrumb + inline rating (zero added height) */
.crumbs { justify-content:space-between; align-items:center; margin-bottom:10px; }
.crumbs__path { display:inline-flex; gap:6px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.buybox__rating { display:inline-flex; align-items:center; gap:5px; flex:none; text-transform:none; letter-spacing:0; }
.buybox__rating svg { width:13px; height:13px; color:var(--warn); fill:var(--warn); }
.buybox__rating svg.off { fill:var(--n-300); color:var(--n-300); }
.buybox__rating b { font-size:12px; color:var(--ink); font-weight:700; }
.buybox__rating span { color:var(--ink-3); }
.buybox__rating:hover b { color:var(--accent-ink); }

/* reviews section */
.rev-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.rev-card { margin:0; padding:22px; border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--sh-border),var(--sh-1); }
.rev-card__stars { display:flex; gap:2px; margin-bottom:12px; }
.rev-card__stars svg { width:15px; height:15px; color:var(--warn); fill:var(--warn); }
.rev-card blockquote { margin:0; font-size:var(--step-0); color:var(--ink); line-height:1.5; }
.rev-card figcaption { margin-top:14px; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); }

/* reconstitution calculator */
.calc { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; max-width:720px; }
@media (max-width:640px){ .calc{ grid-template-columns:1fr; } }
.calc__inputs { display:flex; flex-direction:column; gap:12px; }
.calc__field { display:block; }
.calc__field .lbl { display:block; font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); margin-bottom:5px; }
.calc__field input { width:100%; }
.calc__out { background:var(--surface-2); border-radius:var(--r-lg); box-shadow:var(--sh-border); padding:6px 16px; }
.calc__row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); font-size:var(--step--1); }
.calc__row:last-child { border-bottom:0; }
.calc__row b { font-family:var(--font-mono); font-weight:700; }
.calc__row.hl b { color:var(--accent); font-size:var(--step-1); }
