/* VanPeps. Layout: chunky rounded tiles on a cool sky-white ground. Indigo ink, harbour blue, one sunshine-yellow accent. */
:root{
  --fog:#F1F5FA; --paper:#FFFFFF; --ink:#1C1A4A; --muted:#55597A; --line:#D5DCEA;
  --sockeye:#FFD23F; --sockeye-ink:#1C1A4A; --glacier:#D9E6FF; --spruce:#1C1A4A; --on-spruce:#EEF1FF; --sea:#2F6BEB;
  --t-metabolic:#FFF0BF; --t-repair:#D4E4FF; --t-gh:#DEDBFF; --t-neuro:#FFDCEA; --t-skin:#E8F0D9; --t-longevity:#E2E7F5; --t-blend:#EFDDF6; --t-supply:#E6EAEF;
  --display:"Bricolage Grotesque", "Arial Rounded MT Bold", "Helvetica Neue", Arial, sans-serif;
  --body:"Figtree", "Helvetica Neue", Arial, sans-serif;
  --mono:"DM Mono", ui-monospace, Menlo, monospace;
  --r:22px; --r-sm:12px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --fog:#0F1226; --paper:#181C38; --ink:#ECEEFF; --muted:#A4A9CC; --line:#2B3054;
  --sockeye:#FFD95A; --sockeye-ink:#1C1A4A; --glacier:#1F2A52; --spruce:#181C38; --on-spruce:#EEF1FF; --sea:#7AA2FF;
  --t-metabolic:#3D3418; --t-repair:#1C2C4C; --t-gh:#272448; --t-neuro:#3F2535; --t-skin:#28331F; --t-longevity:#232A42; --t-blend:#33243E; --t-supply:#232838;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --fog:#0F1226; --paper:#181C38; --ink:#ECEEFF; --muted:#A4A9CC; --line:#2B3054;
  --sockeye:#FFD95A; --sockeye-ink:#1C1A4A; --glacier:#1F2A52; --spruce:#181C38; --on-spruce:#EEF1FF; --sea:#7AA2FF;
  --t-metabolic:#3D3418; --t-repair:#1C2C4C; --t-gh:#272448; --t-neuro:#3F2535; --t-skin:#28331F; --t-longevity:#232A42; --t-blend:#33243E; --t-supply:#232838;
  color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fog);color:var(--ink);font:16px/1.6 var(--body);font-weight:400}
a{color:inherit}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.02em;line-height:1.02;margin:0;text-wrap:balance}
h1{font-size:clamp(2.6rem,7vw,5.4rem)}
h2{font-size:clamp(1.8rem,4vw,2.8rem)}
h3{font-size:1.3rem;letter-spacing:-.01em;line-height:1.15}
h4{font-size:1.05rem;letter-spacing:0;line-height:1.2}
p{margin:0}
:focus-visible{outline:3px solid var(--sockeye);outline-offset:2px;border-radius:6px}
.in{max-width:1200px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.lab{font:500 .74rem/1.2 var(--mono);text-transform:lowercase;letter-spacing:.04em;color:var(--muted)}
.dim{color:var(--muted)}
.lead{font-size:1.15rem;color:var(--muted);max-width:56ch}

/* top */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--fog)}
.promo{background:var(--spruce);color:var(--on-spruce);font-size:.86rem}
.promo .in{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;justify-content:center;padding-block:.5rem;text-align:center}
.promo code{font:500 .85rem var(--mono);background:var(--sockeye);color:var(--sockeye-ink);padding:.05rem .45rem;border-radius:6px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:color-mix(in srgb,var(--fog) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .in{display:flex;align-items:center;gap:1rem;padding-block:.8rem}
.wm{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font:800 1.7rem/1 var(--display);letter-spacing:-.04em}
.wm svg{width:34px;height:34px;flex:none}
.wm .dot{color:var(--sea)}
.menu{display:flex;gap:.25rem;margin-left:auto;flex-wrap:wrap}
.menu a{text-decoration:none;padding:.45rem .8rem;border-radius:999px;font-weight:600;font-size:.95rem}
.menu a:hover{background:var(--paper)}
.menu a[aria-current]{background:var(--ink);color:var(--fog)}
.bag{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;font-weight:700;background:var(--sockeye);color:var(--sockeye-ink);padding:.5rem .95rem;border-radius:999px}
.bag b{background:var(--sockeye-ink);color:var(--sockeye);min-width:1.4rem;height:1.4rem;border-radius:999px;display:inline-grid;place-items:center;font:500 .78rem var(--mono)}
.tog{display:none;background:none;border:1.5px solid var(--ink);color:var(--ink);border-radius:999px;padding:.4rem .8rem;font:600 .9rem var(--body);margin-left:auto}
@media (max-width:900px){
  .tog{display:inline-block}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--fog);flex-direction:column;padding:.6rem max(16px,env(safe-area-inset-right,0px)) 1rem max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line)}
  .menu.open{display:flex}
  .menu a{font-size:1.1rem}
  .top .in{position:relative}
  .bag{margin-left:0}
}

/* buttons */
.b{white-space:nowrap;flex:none;width:auto;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;cursor:pointer;text-decoration:none;font:700 1rem var(--body);padding:.85rem 1.4rem;border-radius:999px;background:var(--ink);color:var(--fog);transition:transform .15s}
.b:hover{transform:translateY(-1px)}
.b.hot{background:var(--sockeye);color:var(--sockeye-ink)}
.b.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.b.sm{padding:.55rem 1rem;font-size:.9rem}
.b.wide{width:100%}
@media (prefers-reduced-motion:reduce){.b{transition:none}.b:hover{transform:none}}

/* hero */
.hero{padding-block:clamp(2.5rem,7vw,5.5rem) 2.5rem;display:grid;grid-template-columns:1.25fr .9fr;gap:2.5rem;align-items:center}
.hero > *{min-width:0}
.hero h1 .s{color:var(--sea)}
.hero .lead{margin-top:1.3rem}
.hero .go{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.peaks{position:relative;aspect-ratio:1/1;max-width:100%;border-radius:40px;background:var(--glacier);overflow:hidden}
.peaks svg{position:absolute;inset:0;width:100%;height:100%}
.sticker{position:absolute;font:800 1rem/1.05 var(--display);background:var(--paper);border-radius:999px;padding:.6rem 1rem;box-shadow:0 6px 0 var(--ink);border:2px solid var(--ink)}
.sticker.a{top:8%;left:7%;transform:rotate(-6deg)}
.sticker.b{bottom:9%;right:7%;transform:rotate(5deg);background:var(--sea);color:#fff;border-color:var(--ink)}
@media (max-width:800px){.hero{grid-template-columns:1fr}.peaks{max-width:440px}}

.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .8rem;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-weight:600;font-size:.9rem}

section.blk{padding-block:clamp(2.5rem,5vw,4rem)}
.hd{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.tile{position:relative;background:var(--paper);border-radius:var(--r);padding:.7rem .7rem 1rem;display:flex;flex-direction:column;gap:.55rem;border:1px solid var(--line)}
.tile .art{border-radius:16px;aspect-ratio:4/3;display:grid;place-items:center;max-width:100%}
.tile .art svg{height:82%;width:auto}
.tile h3{font-size:1.25rem;padding-inline:.35rem}
.tile .bl{font-size:.92rem;color:var(--muted);padding-inline:.35rem;flex:1}
.tile .row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-inline:.35rem}
.tile .pr{font:800 1.2rem var(--display);font-variant-numeric:tabular-nums}
.tile .pr small{font:500 .75rem var(--mono);color:var(--muted);display:block}
.tile .plus{width:44px;height:44px;border-radius:999px;border:0;background:var(--ink);color:var(--fog);font:700 1.5rem/1 var(--body);cursor:pointer;flex:none;position:relative;z-index:2}
.tile .plus:hover{background:var(--sockeye);color:var(--sockeye-ink)}
.tile > a.hit{position:absolute;inset:0;border-radius:var(--r);z-index:1}
.tile .cat{position:absolute;top:1.2rem;left:1.2rem;font:500 .7rem var(--mono);background:var(--paper);padding:.2rem .5rem;border-radius:999px}
.t-metabolic{background:var(--t-metabolic)} .t-repair{background:var(--t-repair)} .t-gh{background:var(--t-gh)} .t-neuro{background:var(--t-neuro)}
.t-skin{background:var(--t-skin)} .t-longevity{background:var(--t-longevity)} .t-blend{background:var(--t-blend)} .t-supply{background:var(--t-supply)}
.v-glass{fill:var(--paper);stroke:var(--ink);stroke-width:2.5}
.v-cap{fill:var(--sockeye)} .v-crimp{fill:var(--ink)}
.v-lab{fill:var(--ink)} .v-t1{fill:var(--fog);font:800 13px var(--display)} .v-t2{fill:var(--fog);font:500 8px var(--mono)} .v-t3{fill:var(--sockeye);font:700 7px var(--mono);letter-spacing:.06em}
.v-cake{fill:var(--line)}

/* spruce band */
.band{background:var(--spruce);color:var(--on-spruce);border-radius:var(--r)}
:root:not([data-theme="dark"]) .band{--spruce:#1C1A4A}
.band .lab{color:color-mix(in srgb,var(--on-spruce) 70%,transparent)}
.how{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;padding:clamp(1.5rem,4vw,2.6rem)}
.how > div{min-width:0}
.how b.n{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:999px;background:var(--sockeye);color:var(--sockeye-ink);font:800 1rem var(--display);margin-bottom:.8rem}
.how p{font-size:.95rem;opacity:.85;margin-top:.4rem}
@media (max-width:900px){.how{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.how{grid-template-columns:1fr}}

.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.trio > div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;min-width:0}
.trio p{color:var(--muted);margin-top:.5rem;font-size:.97rem}
@media (max-width:800px){.trio{grid-template-columns:1fr}}

/* page head */
.ph{padding-block:clamp(2rem,5vw,3.5rem) 1.2rem}
.ph h1{font-size:clamp(2.2rem,5.5vw,4rem);margin-top:.4rem}
.ph .lead{margin-top:1rem}

/* shop tools */
.filt{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.3rem}
.filt input,.filt select,.fm input,.fm select,.fm textarea{font:500 1rem var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:.65rem 1rem;min-width:0}
.filt input{flex:1 1 220px}
.chipz{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.4rem}
.chipz button{font:600 .9rem var(--body);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);padding:.45rem .9rem;border-radius:999px;cursor:pointer}
.chipz button[aria-pressed="true"]{background:var(--ink);color:var(--fog);border-color:var(--ink)}
.cnt{font:500 .8rem var(--mono);color:var(--muted)}

/* product */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;padding-block:2rem 3rem;align-items:start}
.pdp > *{min-width:0}
.pdp .art{border-radius:32px;aspect-ratio:1/1;display:grid;place-items:center;max-width:100%}
.pdp .art svg{height:72%;width:auto}
.crumbs{font:500 .8rem var(--mono);color:var(--muted);display:flex;gap:.4rem;flex-wrap:wrap}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.pdp h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-top:.6rem}
.pdp .bl{font-size:1.1rem;color:var(--muted);margin-top:.8rem}
.opt{margin-top:1.4rem}
.opt .lab{display:block;margin-bottom:.5rem}
.seg{display:flex;flex-wrap:wrap;gap:.45rem}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-flex;flex-direction:column;align-items:flex-start;padding:.55rem .95rem;border-radius:14px;border:1.5px solid var(--line);background:var(--paper);font-weight:700;line-height:1.2}
.seg span small{font:500 .72rem var(--mono);color:var(--muted)}
.seg input:checked + span{border-color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.seg input:focus-visible + span{outline:3px solid var(--sockeye);outline-offset:2px}
.buy{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.6rem;padding:1rem 1rem 1rem 1.3rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.buy .tot{font:800 2rem var(--display);font-variant-numeric:tabular-nums}
.buy .ea{font:500 .78rem var(--mono);color:var(--muted)}
.buy .b{margin-left:auto}
.specs{margin-top:1.6rem;border-top:1.5px solid var(--ink)}
.specs div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.specs dt{color:var(--muted)} .specs dd{margin:0;font-family:var(--mono);font-size:.88rem;text-align:right;overflow-wrap:anywhere}
.note{margin-top:1.3rem;padding:1rem 1.2rem;border-radius:16px;background:var(--glacier);font-size:.92rem}
@media (max-width:800px){.pdp{grid-template-columns:1fr}.pdp .art{max-width:420px}}

/* text pages */
.txt{max-width:70ch}
.txt h2{font-size:1.7rem;margin:2.2rem 0 .7rem}
.txt h3{margin:1.6rem 0 .5rem}
.txt p,.txt li{color:var(--muted)}
.txt p + p{margin-top:.8rem}
.txt ul,.txt ol{padding-left:1.2rem}
.txt li + li{margin-top:.35rem}
.txt a{color:var(--sea);text-decoration-color:var(--sea);text-decoration-thickness:2px}
.txt strong{color:var(--ink)}
.tbl{overflow-x:auto;margin-top:1rem}
table{border-collapse:collapse;width:100%;font-size:.95rem;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--line)}
th{font:500 .74rem var(--mono);color:var(--muted);text-transform:lowercase}
.tag{display:inline-block;font:500 .74rem var(--mono);padding:.15rem .55rem;border-radius:999px;background:var(--t-skin);color:var(--ink)}

/* faq */
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:1.1rem 2rem 1.1rem 0;font:700 1.08rem var(--body);position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font:800 1.5rem var(--display);color:var(--sea)}
details[open] summary::after{content:"–"}
details p{padding:0 0 1.2rem;color:var(--muted);max-width:68ch}
.faqgrp h2{font-size:1.4rem;margin:2.4rem 0 .4rem}

/* forms / bag */
.fm{display:grid;gap:.9rem}
.fm .two{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.fm label{display:grid;gap:.35rem;font-weight:600;font-size:.92rem}
.fm input,.fm select,.fm textarea{border-radius:14px;width:100%}
.fm textarea{min-height:130px}
.fm .chk{display:flex;gap:.6rem;align-items:flex-start;font-weight:500;color:var(--muted)}
.fm .chk input{width:auto;margin-top:.3rem}
@media (max-width:560px){.fm .two{grid-template-columns:1fr}}
.bagwrap{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:start;padding-block:1rem 3rem}
.bagwrap > *{min-width:0}
@media (max-width:900px){.bagwrap{grid-template-columns:1fr}}
.cline{display:grid;grid-template-columns:72px 1fr auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.cline .art{border-radius:14px;aspect-ratio:1/1;display:grid;place-items:center}
.cline .art svg{height:80%;width:auto}
.line h4 a{text-decoration:none}
.cline .m{font:500 .78rem var(--mono);color:var(--muted)}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;margin-top:.4rem}
.qty button{background:none;border:0;color:var(--ink);width:2rem;height:2rem;font:700 1.1rem var(--body);cursor:pointer}
.qty span{min-width:1.6rem;text-align:center;font:500 .9rem var(--mono)}
.cline .lt{font:800 1.1rem var(--display);font-variant-numeric:tabular-nums;text-align:right}
.sum{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem}
.sum .r{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;font-variant-numeric:tabular-nums}
.sum .r.big{font:800 1.4rem var(--display);border-top:1.5px solid var(--ink);margin-top:.5rem;padding-top:.8rem}
.sum .promo-in{display:flex;gap:.5rem;margin:.8rem 0}
.sum .promo-in input{flex:1;min-width:0;font:500 .95rem var(--mono);text-transform:uppercase;border:1.5px solid var(--line);background:var(--fog);color:var(--ink);border-radius:999px;padding:.55rem .9rem}
.empty{padding:2rem 0;color:var(--muted)}
.pay{background:var(--glacier);border-radius:var(--r);padding:1.6rem;margin-top:1rem}
.pay .ref{font:800 2rem var(--display);letter-spacing:.02em}
.pay dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:1rem 0}
.pay dt{color:var(--muted)} .pay dd{margin:0;font-family:var(--mono);overflow-wrap:anywhere}

.calc{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.calc > *{min-width:0}
.out{background:var(--spruce);color:var(--on-spruce);border-radius:var(--r);padding:1.6rem}
.out .k{font:500 .78rem var(--mono);opacity:.75}
.out .v{font:800 2.2rem var(--display);font-variant-numeric:tabular-nums;margin-bottom:1rem}
@media (max-width:760px){.calc{grid-template-columns:1fr}}

/* footer */
.ruo{background:var(--sea);color:#fff;font:700 .9rem var(--body);text-align:center}
.ruo .in{padding-block:.7rem}
.foot{background:var(--spruce);color:var(--on-spruce)}
:root:not([data-theme="dark"]) .foot{--spruce:#1C1A4A}
.foot .in{padding-block:3rem 2rem;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot .in > div{min-width:0}
.foot h4{font:500 .78rem var(--mono);opacity:.7;margin-bottom:.8rem;text-transform:lowercase}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot a{text-decoration:none}.foot a:hover{text-decoration:underline}
.foot .fine{grid-column:1/-1;border-top:1px solid color-mix(in srgb,var(--on-spruce) 25%,transparent);padding-top:1.4rem;font-size:.84rem;opacity:.8;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem}
.foot .wm{color:var(--on-spruce)}
.foot p{font-size:.92rem;opacity:.85;margin-top:1rem;max-width:42ch}
@media (max-width:860px){.foot .in{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot .in{grid-template-columns:1fr}}

.toast{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom,0px));transform:translate(-50%,150%);background:var(--ink);color:var(--fog);padding:.8rem 1.2rem;border-radius:999px;font-weight:600;z-index:20;transition:transform .25s;max-width:calc(100% - 32px)}
.toast.on{transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}
