/* ---------- Tokens: light (bare :root) ---------- */
:root{
  --blue:#0284C7; --blue-700:#0369A1; --cyan:#06B6D4; --cyan-300:#67E8F9;
  --accent:#0891B2; --accent-600:#0E7490;
  --ink:#333333;               /* real brand charcoal (from logo kit) */
  /* Inverted band: intentionally dark in BOTH themes, so these never flip */
  --band:#2C2C2C; --band-fg:#F4FBFF; --band-fg-soft:#AEC9D8;
  --band-line:rgba(255,255,255,.14); --band-surface:rgba(255,255,255,.06);
  --ground:#EAF6FD;            /* icy blue ground */
  --surface:#FFFFFF;
  --surface-2:#F3FAFE;
  --line:#D3E7F2;
  --text:#2B2B2B;
  --text-soft:#436077;         /* cyan-biased grey */
  --text-faint:#7893A6;
  --on-accent:#FFFFFF;
  --star:#F5A524;
  --good:#0E9F6E;
  --hero-grad-1:#0284C7; --hero-grad-2:#06B6D4;
  --shadow:0 12px 40px -12px rgba(6,90,130,.28);
  --shadow-sm:0 4px 16px -8px rgba(6,90,130,.30);
  --water-top:#38BDF8; --water-bot:#0369A1;
  --font-disp:'Barlow Condensed',system-ui,'Arial Narrow',sans-serif;
  --font-body:'Barlow',system-ui,-apple-system,sans-serif;
  --maxw:1200px;
  --r:16px;
}
/* ---------- Tokens: dark via OS (un-stamped) ---------- */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#E8F4FB;
    --ground:#071320;
    --surface:#0C1F30;
    --surface-2:#0E2536;
    --line:#1C3A4F;
    --text:#E8F4FB;
    --text-soft:#9FBDCF;
    --text-faint:#6E8DA1;
    --line:#1C3A4F;
    --shadow:0 16px 48px -16px rgba(0,0,0,.6);
    --shadow-sm:0 6px 20px -10px rgba(0,0,0,.55);
    --blue:#38BDF8; --cyan:#22D3EE; --accent:#22D3EE; --accent-600:#67E8F9;
    --on-accent:#04202B;
  }
}
/* ---------- Tokens: dark via explicit toggle ---------- */
:root[data-theme="dark"]{
  --ink:#E8F4FB; --ground:#071320; --surface:#0C1F30; --surface-2:#0E2536;
  --line:#1C3A4F; --text:#E8F4FB; --text-soft:#9FBDCF; --text-faint:#6E8DA1;
  --shadow:0 16px 48px -16px rgba(0,0,0,.6); --shadow-sm:0 6px 20px -10px rgba(0,0,0,.55);
  --blue:#38BDF8; --cyan:#22D3EE; --accent:#22D3EE; --accent-600:#67E8F9; --on-accent:#04202B;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--ground); color:var(--text);
  font-family:var(--font-body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3{font-family:var(--font-disp); font-weight:800; line-height:.98; text-wrap:balance; margin:0; letter-spacing:.01em; text-transform:uppercase}
p{margin:0}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.eyebrow{font-family:var(--font-disp); font-weight:700; text-transform:uppercase; letter-spacing:.18em; font-size:.82rem; color:var(--accent)}
.tnum{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--cyan); outline-offset:3px; border-radius:6px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:.55rem; font-family:var(--font-disp); font-weight:700;
  text-transform:uppercase; letter-spacing:.06em; font-size:1.05rem; padding:.85rem 1.6rem; border-radius:12px;
  cursor:pointer; border:2px solid transparent; transition:transform .18s ease, background .2s ease, color .2s ease, box-shadow .2s ease; white-space:nowrap}
.btn-primary{background:var(--accent); color:var(--on-accent); box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--blue); transform:translateY(-2px)}
.btn-ghost{background:transparent; color:var(--text); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--cyan); color:var(--accent); transform:translateY(-2px)}
.btn svg{width:1.15em;height:1.15em}

/* ---------- Nav ---------- */
header.nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--ground) 82%, transparent);
  backdrop-filter:saturate(140%) blur(12px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; justify-content:space-between; height:70px}
.brand{display:flex; align-items:center; gap:.6rem; font-family:var(--font-disp); font-weight:800; font-size:1.5rem; text-transform:uppercase; letter-spacing:.02em}
.brand .drop{width:30px;height:30px}
.brand b{color:var(--accent)}
.nav-links{display:flex; gap:2rem; align-items:center; font-family:var(--font-disp); font-weight:600; text-transform:uppercase; letter-spacing:.05em; font-size:.98rem}
.nav-links a{color:var(--text-soft); position:relative; padding:4px 0; transition:color .2s}
.nav-links a:hover{color:var(--text)}
.nav-links a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--cyan); transition:right .25s ease}
.nav-links a:hover::after{right:0}
.nav-right{display:flex; align-items:center; gap:1rem}
.icon-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);cursor:pointer;color:var(--text-soft);transition:.2s}
.icon-btn:hover{color:var(--accent);border-color:var(--cyan)}
.icon-btn svg{width:20px;height:20px}
@media(max-width:880px){.nav-links{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative; padding:clamp(2.5rem,6vw,5.5rem) 0 clamp(3rem,6vw,6rem); overflow:hidden}
.hero::before{content:""; position:absolute; inset:0; z-index:-1;
  background:
   radial-gradient(900px 500px at 78% 18%, color-mix(in srgb,var(--cyan) 22%, transparent), transparent 60%),
   radial-gradient(700px 500px at 10% 90%, color-mix(in srgb,var(--blue) 16%, transparent), transparent 55%);}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center}
.hero h1{font-size:clamp(3rem,7.5vw,6rem)}
.hero h1 .accent{color:transparent; -webkit-background-clip:text; background-clip:text;
  background-image:linear-gradient(100deg,var(--hero-grad-1),var(--hero-grad-2))}
.hero .lede{margin-top:1.3rem; font-size:clamp(1.05rem,1.6vw,1.28rem); color:var(--text-soft); max-width:34ch}
.hero-cta{display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap}
.rating-row{display:flex; align-items:center; gap:.8rem; margin-top:1.7rem; color:var(--text-soft); font-size:.98rem}
.stars{display:inline-flex; color:var(--star)}
.stars svg{width:20px;height:20px}
.badges{display:flex; gap:1.4rem; margin-top:2rem; flex-wrap:wrap; font-family:var(--font-disp);
  text-transform:uppercase; letter-spacing:.05em; font-weight:600; color:var(--text-soft); font-size:.92rem}
.badges span{display:inline-flex; align-items:center; gap:.45rem}
.badges svg{width:18px;height:18px;color:var(--good)}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr; text-align:left} .badges{gap:1rem}}

/* ---------- Bottle SVG stage ---------- */
.stage{position:relative; display:grid; place-items:center}
.bottle-card{position:relative; width:min(420px,88vw); aspect-ratio:420/520;
  background:linear-gradient(160deg,var(--surface),var(--surface-2)); border:1px solid var(--line);
  border-radius:28px; box-shadow:var(--shadow); display:grid; place-items:center}
.bottle-card svg{width:78%; height:auto; overflow:visible}
.wave{transform:translateY(6px)}
.floatb{animation:floatb 6s ease-in-out infinite}
@keyframes floatb{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.fill-rise{animation:rise 2.4s cubic-bezier(.4,0,.2,1) forwards}
@keyframes rise{from{transform:translateY(230px)}to{transform:translateY(0)}}
.tick-pop{opacity:0; animation:tickpop .5s ease forwards}
@keyframes tickpop{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .floatb,.fill-rise,.tick-pop{animation:none!important; opacity:1!important; transform:none!important}
}
.chip{position:absolute; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm);
  border-radius:12px; padding:.55rem .8rem; font-family:var(--font-disp); font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; font-size:.9rem; display:flex; align-items:center; gap:.5rem}
.chip small{display:block; font-family:var(--font-body); font-weight:500; text-transform:none; letter-spacing:0; color:var(--text-faint); font-size:.72rem; line-height:1}
.chip .dot{width:9px;height:9px;border-radius:50%;background:var(--good)}
.chip.c1{top:6%; left:-6%}
.chip.c2{bottom:10%; right:-7%}
@media(max-width:520px){.chip.c1{left:0}.chip.c2{right:0}}

/* ---------- Stats bar ---------- */
.stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface)}
.stats-in{display:grid; grid-template-columns:repeat(4,1fr)}
.stat{padding:1.6rem 1rem; text-align:center; border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat b{font-family:var(--font-disp); font-weight:800; font-size:2.3rem; display:block; color:var(--blue); line-height:1}
.stat span{font-size:.86rem; color:var(--text-soft); text-transform:uppercase; letter-spacing:.08em; font-family:var(--font-disp); font-weight:600}
@media(max-width:640px){.stats-in{grid-template-columns:repeat(2,1fr)} .stat:nth-child(odd){border-left:0} .stat:nth-child(3),.stat:nth-child(4){border-top:1px solid var(--line)}}

/* ---------- Section ---------- */
section.band{padding:clamp(3.5rem,7vw,6rem) 0}
.sec-head{max-width:52ch; margin-bottom:2.6rem}
.sec-head h2{font-size:clamp(2.2rem,4.5vw,3.4rem); margin-top:.6rem}
.sec-head p{margin-top:.9rem; color:var(--text-soft); font-size:1.1rem}

/* reveal — content is visible by default; animation only when JS is present (.js) */
.reveal.in{opacity:1; transform:none}
.js .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease}
.js .reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* ---------- Feature grid ---------- */
.features{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem}
.fcard{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:1.7rem;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease}
.fcard:hover{transform:translateY(-6px); border-color:var(--cyan); box-shadow:var(--shadow)}
.fico{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;margin-bottom:1.1rem;
  background:color-mix(in srgb,var(--cyan) 16%, var(--surface)); color:var(--accent)}
.fico svg{width:26px;height:26px}
.fcard h3{font-size:1.5rem}
.fcard p{margin-top:.5rem; color:var(--text-soft); font-size:.98rem}
@media(max-width:860px){.features{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.features{grid-template-columns:1fr}}

/* ---------- Timeline (signature) ---------- */
.timeline-band{background:var(--band); color:var(--band-fg); position:relative; overflow:hidden}
.timeline-band .eyebrow{color:var(--cyan-300)}
.timeline-band h2{color:var(--band-fg)}
.timeline-band .sec-head p{color:var(--band-fg-soft)}
.tl{position:relative; margin-top:1rem; display:grid; gap:0}
.tl::before{content:""; position:absolute; left:calc(var(--railx,120px) - 1px); top:10px; bottom:10px; width:2px;
  background:linear-gradient(var(--cyan),var(--blue))}
.tl-row{display:grid; grid-template-columns:var(--railx,120px) 1fr; gap:1.4rem; padding:1.05rem 0; align-items:center}
.tl-time{font-family:var(--font-disp); font-weight:800; font-size:1.5rem; text-align:right; color:var(--cyan-300); letter-spacing:.02em; padding-right:20px}
.tl-node{position:relative}
.tl-node::before{content:""; position:absolute; left:calc(-1.4rem - 8px); top:50%; transform:translateY(-50%);
  width:16px;height:16px;border-radius:50%; background:var(--cyan); box-shadow:0 0 0 5px color-mix(in srgb,var(--cyan) 25%, transparent)}
.tl-card{background:var(--band-surface); border:1px solid var(--band-line); border-radius:12px; padding:.85rem 1.1rem}
.tl-card b{font-family:var(--font-disp); text-transform:uppercase; letter-spacing:.03em; font-size:1.1rem}
.tl-card span{display:block; color:var(--band-fg-soft); font-size:.92rem; margin-top:.15rem}
.tl-fill{display:inline-block; margin-left:.6rem; font-family:var(--font-body); font-weight:600; color:var(--cyan-300); font-size:.85rem}
@media(max-width:560px){:root{} .tl{--railx:74px} .tl-time{font-size:1.15rem}}

/* ---------- Variants ---------- */
.variant-wrap{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center}
.swatches{display:flex; gap:.7rem; margin:1.4rem 0; flex-wrap:wrap; list-style:none; padding:0}
.swatch{border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:.5rem .9rem;
  display:flex; align-items:center; gap:.6rem; font-family:var(--font-disp); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:.95rem}
.swatch .dab{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.12);flex:none}
.variant-visual{background:linear-gradient(160deg,var(--surface),var(--surface-2)); border:1px solid var(--line);
  border-radius:24px; box-shadow:var(--shadow); display:grid;place-items:center; aspect-ratio:4/3; transition:background .4s}
.variant-visual svg{width:56%}
@media(max-width:760px){.variant-wrap{grid-template-columns:1fr}}

/* ---------- Reviews ---------- */
.reviews{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem}
.rcard{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:1.6rem}
.rcard .stars svg{width:17px;height:17px}
.rcard p{margin:.8rem 0 1.1rem; color:var(--text)}
.rperson{display:flex; align-items:center; gap:.7rem}
.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-disp);
  font-weight:800; color:#fff; background:linear-gradient(140deg,var(--blue),var(--cyan))}
.rperson b{font-size:.98rem}
.rperson span{display:block;color:var(--text-faint);font-size:.82rem}
.verified{margin-left:auto; color:var(--good); font-size:.78rem; font-weight:600; display:inline-flex; align-items:center; gap:.3rem}
.verified svg{width:15px;height:15px}
@media(max-width:820px){.reviews{grid-template-columns:1fr}}

/* ---------- Specs ---------- */
.specs{display:grid; grid-template-columns:repeat(2,1fr); gap:0 3rem; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--r); padding:.5rem 1.8rem}
.specs dl{display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); margin:0}
.specs dt{color:var(--text-soft)}
.specs dd{margin:0; font-weight:600; font-family:var(--font-disp); text-transform:uppercase; letter-spacing:.02em; font-size:1.05rem}
@media(max-width:640px){.specs{grid-template-columns:1fr; gap:0}}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,var(--blue),var(--accent)); color:#fff; border-radius:26px;
  padding:clamp(2.5rem,5vw,4rem); text-align:center; position:relative; overflow:hidden}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.6rem); color:#fff}
.cta-band p{margin:1rem auto 0; max-width:46ch; color:rgba(255,255,255,.9); font-size:1.15rem}
.cta-band .btn-primary{background:#fff; color:var(--blue-700); margin-top:2rem}
.cta-band .btn-primary:hover{background:var(--band); color:var(--band-fg)}
.cta-band::after{content:""; position:absolute; inset:0; background:radial-gradient(500px 300px at 85% 120%,rgba(255,255,255,.25),transparent 60%)}

/* ---------- Footer ---------- */
footer{padding:3rem 0 2.5rem; border-top:1px solid var(--line); color:var(--text-soft); margin-top:3rem}
.foot-in{display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; align-items:center}
.foot-links{display:flex; gap:1.5rem; flex-wrap:wrap; font-family:var(--font-disp); text-transform:uppercase; letter-spacing:.05em; font-weight:600}
.foot-links a:hover{color:var(--accent)}
.foot-note{font-size:.82rem; color:var(--text-faint); margin-top:1.4rem; max-width:70ch}

/* ============ Shared page chrome (sub-pages) ============ */
.page-hero{padding:clamp(2.2rem,5vw,3.5rem) 0 0}
.crumbs{display:flex;gap:.5rem;align-items:center;color:var(--text-faint);font-size:.9rem;font-family:var(--font-disp);text-transform:uppercase;letter-spacing:.06em}
.crumbs a:hover{color:var(--accent)}
.crumbs svg{width:14px;height:14px}
.page-title{font-size:clamp(2.4rem,5.5vw,4rem);margin-top:.8rem}
.lead{color:var(--text-soft);font-size:1.15rem;max-width:60ch;margin-top:1rem}

/* ============ Product page ============ */
.pdp{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start;padding:2rem 0 1rem}
.gallery{position:sticky;top:90px}
.gallery-main{background:linear-gradient(160deg,var(--surface),var(--surface-2));border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);display:grid;place-items:center;aspect-ratio:1/1;transition:background .4s}
.gallery-main svg{width:60%}
.thumbs{display:flex;gap:.8rem;margin-top:1rem}
.thumb{flex:1;aspect-ratio:1/1;border:2px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;display:grid;place-items:center;transition:.2s;padding:6px;overflow:hidden}
.thumb:hover{border-color:var(--cyan)}
.thumb[aria-pressed="true"]{border-color:var(--accent)}
.thumb svg{width:100%}
.thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}
.pdp-info h1{font-size:clamp(2.2rem,4vw,3.2rem)}
.price-row{display:flex;align-items:baseline;gap:.8rem;margin:1.1rem 0}
.price{font-family:var(--font-disp);font-weight:800;font-size:2.6rem;color:var(--blue)}
.price s{font-family:var(--font-body);font-weight:500;font-size:1.2rem;color:var(--text-faint)}
.save-pill{background:color-mix(in srgb,var(--good) 16%, var(--surface));color:var(--good);font-family:var(--font-disp);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;padding:.3rem .7rem;border-radius:999px}
.opt-label{font-family:var(--font-disp);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:var(--text-soft);margin:1.4rem 0 .6rem}
.qty{display:inline-flex;align-items:center;border:2px solid var(--line);border-radius:12px;overflow:hidden}
.qty button{width:44px;height:44px;background:var(--surface);border:0;cursor:pointer;color:var(--text);font-size:1.3rem;font-family:var(--font-disp)}
.qty button:hover{background:var(--surface-2);color:var(--accent)}
.qty input{width:52px;height:44px;text-align:center;border:0;border-left:2px solid var(--line);border-right:2px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--font-disp);font-weight:700;font-size:1.1rem}
.buy-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}
.trust-list{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;gap:.7rem}
.trust-list li{display:flex;gap:.6rem;align-items:center;color:var(--text-soft)}
.trust-list svg{width:20px;height:20px;color:var(--good);flex:none}
.accordion{margin-top:1.8rem;border-top:1px solid var(--line)}
.accordion details{border-bottom:1px solid var(--line)}
.accordion summary{cursor:pointer;list-style:none;padding:1rem 0;font-family:var(--font-disp);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:1.1rem;display:flex;justify-content:space-between;align-items:center}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"+";color:var(--accent);font-size:1.5rem}
.accordion details[open] summary::after{content:"–"}
.accordion p{padding:0 0 1.1rem;color:var(--text-soft)}
@media(max-width:820px){.pdp{grid-template-columns:1fr}.gallery{position:static}}

/* ============ About page ============ */
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1rem}
.value-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem}
.value-card .fico{margin-bottom:1rem}
.value-card h3{font-size:1.4rem}
.value-card p{color:var(--text-soft);margin-top:.5rem;font-size:.98rem}
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;margin-top:1rem}
.story-visual{background:var(--band);border-radius:24px;aspect-ratio:4/3;display:grid;place-items:center;box-shadow:var(--shadow);overflow:hidden}
.story-visual svg{width:52%}
.story h2{font-size:clamp(2rem,4vw,2.8rem)}
.story p{color:var(--text-soft);margin-top:1rem}
.big-num{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;text-align:center;margin-top:1rem}
.big-num div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.8rem 1rem}
.big-num b{font-family:var(--font-disp);font-weight:800;font-size:2.8rem;color:var(--blue);display:block;line-height:1}
.big-num span{color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-disp);font-weight:600;font-size:.85rem}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}.story{grid-template-columns:1fr}.big-num{grid-template-columns:1fr}}

/* ============ Cart page ============ */
.cart-grid{display:grid;grid-template-columns:1.6fr .9fr;gap:2rem;align-items:start;padding-top:1rem}
.cart-item{display:grid;grid-template-columns:88px 1fr auto;gap:1.1rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:1rem}
.cart-thumb{width:88px;height:88px;border-radius:12px;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line);display:grid;place-items:center}
.cart-thumb svg{width:60%}
.cart-item h3{font-size:1.2rem}
.cart-item .meta{color:var(--text-faint);font-size:.9rem;margin-top:.2rem}
.cart-item .line-price{font-family:var(--font-disp);font-weight:800;font-size:1.3rem;color:var(--blue);text-align:right}
.remove{background:none;border:0;color:var(--text-faint);cursor:pointer;font-size:.85rem;margin-top:.4rem;text-decoration:underline}
.remove:hover{color:var(--destructive,#DC2626)}
.summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;position:sticky;top:90px}
.summary h3{font-size:1.5rem;margin-bottom:1rem}
.sumrow{display:flex;justify-content:space-between;padding:.55rem 0;color:var(--text-soft)}
.sumrow.total{border-top:1px solid var(--line);margin-top:.6rem;padding-top:1rem;color:var(--text);font-family:var(--font-disp);font-weight:800;font-size:1.4rem;text-transform:uppercase}
.summary .btn-primary{width:100%;justify-content:center;margin-top:1.2rem}
.promo{display:flex;gap:.6rem;margin:1rem 0}
.promo input{flex:1;border:2px solid var(--line);border-radius:10px;padding:.6rem .8rem;background:var(--surface-2);color:var(--text);font-family:var(--font-body)}
.empty-cart{text-align:center;padding:3rem 1rem;color:var(--text-soft)}
@media(max-width:760px){.cart-grid{grid-template-columns:1fr}.summary{position:static}}

/* ============ Nav cart badge ============ */
.cart-link{position:relative}
.cart-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;
  background:var(--accent);color:var(--on-accent);font-family:var(--font-disp);font-weight:700;font-size:.72rem;
  display:grid;place-items:center;line-height:1}
.btn.added{background:var(--good)!important;color:#fff!important}

/* ===== Real brand logo mark (from brand kit) ===== */
.logo-mark{width:30px;height:35px;background:url('data:image/png;base64,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') center/contain no-repeat;flex:none}
.brand{gap:.55rem}
:root:not([data-theme="light"]) .logo-mark, :root[data-theme="dark"] .logo-mark{filter:invert(1) brightness(1.6)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo-mark{filter:invert(1) brightness(1.6)}}

/* ===== Photo slots: real photo overlays the SVG fallback when present =====
   Every supplied photo is a designed scene with its own background, so photos fill
   their card (cover) while the SVG fallback letterboxes (preserveAspectRatio). */
.shot{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.shot > svg{width:100%;height:100%}
/* A loaded photo replaces the illustration entirely (:has for modern browsers,
   .has-photo added by JS as the fallback path) */
.shot:has(img.shot-img) > svg,.shot.has-photo > svg{display:none}
.shot-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}
/* Floating spec chips stay above the photo */
.chip{z-index:3}

/* ===== Small screens: keep the nav inside the viewport (no horizontal scroll) ===== */
@media (max-width:560px){
  .wrap{padding:0 16px}
  .nav-right{gap:.5rem}
  .icon-btn{width:38px;height:38px}
  .icon-btn svg{width:18px;height:18px}
  .nav-right .btn{padding:.6rem .8rem;font-size:.86rem;letter-spacing:.03em}
  .brand{font-size:1.25rem}
  .logo-mark{width:24px;height:28px}
}

/* ===== Features page ===== */
.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}

.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.feat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.feat-card:hover{transform:translateY(-6px);border-color:var(--cyan);box-shadow:var(--shadow)}
.feat-shot{aspect-ratio:1/1;background:var(--surface-2)}
.feat-shot img{width:100%;height:100%;object-fit:cover;display:block}
.feat-body{padding:1.5rem 1.5rem 1.7rem}
.feat-badge{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-disp);font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--accent);
  background:color-mix(in srgb,var(--cyan) 14%, var(--surface));border-radius:999px;padding:.35rem .75rem}
.feat-badge svg{width:15px;height:15px}
.feat-card h2{font-size:1.55rem;margin-top:.9rem}
.feat-card p{margin-top:.55rem;color:var(--text-soft);font-size:.98rem}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.feat-grid{grid-template-columns:1fr}}

/* Comparison table — wide content scrolls in its own container */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare{width:100%;border-collapse:collapse;min-width:520px}
.compare th,.compare td{text-align:left;padding:1.05rem 1rem;border-bottom:1px solid var(--band-line)}
.compare thead th{font-family:var(--font-disp);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;
  color:var(--cyan-300);border-bottom:2px solid var(--band-line)}
.compare thead th:not(:first-child),.compare td{text-align:center;width:22%}
.compare tbody th{font-weight:600;color:var(--band-fg);font-size:1.02rem}
.compare tbody th span{display:block;font-weight:400;color:var(--band-fg-soft);font-size:.88rem;margin-top:.2rem}
.compare .yes,.compare .no{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;
  font-size:1rem;font-weight:700}
.compare .yes{background:color-mix(in srgb,var(--good) 26%, transparent);color:#6EE7B7}
.compare .no{background:rgba(255,255,255,.08);color:var(--band-fg-soft)}

/* ===== Rating summary (real Amazon distribution) ===== */
.rating-summary{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem 1.8rem;margin-bottom:1.6rem}
.rs-score{text-align:center;padding-right:clamp(1rem,3vw,2rem);border-right:1px solid var(--line)}
.rs-score b{display:block;font-family:var(--font-disp);font-weight:800;font-size:3.4rem;line-height:1;color:var(--blue)}
.rs-score .stars{margin:.35rem 0 .2rem}
.rs-score .stars svg{width:18px;height:18px}
.rs-score small{display:block;color:var(--text-faint);font-size:.85rem}
.rs-bars{display:grid;gap:.42rem;margin:0}
.rs-bars > div{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:.8rem}
.rs-bars dt{font-size:.88rem;color:var(--text-soft)}
.rs-bars dd{margin:0;display:grid;grid-template-columns:1fr 42px;align-items:center;gap:.7rem}
.rs-bars .bar{display:block;height:10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.rs-bars .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.rs-bars em{font-style:normal;font-size:.85rem;color:var(--text-soft);text-align:right}
@media(max-width:640px){
  .rating-summary{grid-template-columns:1fr;gap:1.2rem}
  .rs-score{border-right:0;border-bottom:1px solid var(--line);padding:0 0 1rem}
}

/* Review cards — this rule sits after the earlier .reviews block, so it must
   restate the responsive columns or it silently overrides them. */
.reviews{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.reviews{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.reviews{grid-template-columns:1fr}}
.rtitle{font-size:1.15rem;margin:.55rem 0 .1rem}
.rcard p{font-size:.97rem}
.reviews-note{margin-top:1.4rem;color:var(--text-faint);font-size:.87rem}
.reviews-note a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.verified{cursor:default}

/* Footer social */
.social{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-disp);font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:.92rem;color:var(--text-soft);
  border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;transition:.2s}
.social:hover{color:var(--accent);border-color:var(--cyan)}
.social svg{width:18px;height:18px}

/* Review cards: keep the reviewer block aligned across the row */
.rcard{display:flex;flex-direction:column}
.rcard .rperson{margin-top:auto;padding-top:1.1rem}
