/*
Theme Name: GLUUM Research
Theme URI: https://gluumco.com
Author: GLUUM Research
Author URI: https://gluumco.com
Description: Custom WooCommerce theme for GLUUM Research. Premium editorial aesthetic. Cormorant Garamond + Inter. Black/white/off-white only. Built for high-risk processor underwriting compatibility.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
License URI: https://gluumco.com/legal
Text Domain: gluum
Tags: e-commerce, woocommerce, custom, editorial

WooCommerce Compatible
WC requires at least: 8.0
WC tested up to: 9.4
*/

/* =========================================================================
   GLUUM RESEARCH — Master Stylesheet
   Ported from index__2_.html with WooCommerce selector mapping
   Brand spec is LOCKED. Do not introduce accent colors, additional fonts,
   or alter the token system without explicit approval.
   ========================================================================= */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --black:#111;
  --white:#fff;
  --off-white:#F7F7F7;
  --mid:#888;
  --text:#888;            /* alias: any --text reference falls back to --mid */
  --border:#E5E5E5;
  --gold:#111;            /* alias: any --gold reference renders as black (no accent color) */
  --gold-dim:#888;        /* alias for gold-dim → mid */
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --mono:'Inter',system-ui,sans-serif;  /* alias: any --mono reference uses Inter, no monospace */
  --radius:12px;
  --radius-sm:8px;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--white);color:var(--black);line-height:1.6;overflow-x:hidden;overscroll-behavior-y:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
a{text-decoration:none;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button{font-family:var(--sans);cursor:pointer;border:none;background:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
img{display:block;max-width:100%}
/* ─── ANNOUNCE BAR ─── */
.announce{
  background:var(--black);padding:10px 16px;text-align:center;
  font-size:12px;font-weight:400;color:rgba(255,255,255,.75);
  letter-spacing:.03em;min-height:40px;contain:layout;
}
.announce strong{color:var(--white);font-weight:500}
/* ─── NAV ─── */
nav{
  position:sticky;top:0;z-index:200;
  background:var(--white);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;height:64px;
  transition:box-shadow .2s;
}
nav.scrolled{box-shadow:0 1px 16px rgba(0,0,0,.06)}
.nav-left{display:flex;align-items:center;gap:8px}
.nav-menu-btn{
  width:40px;height:40px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;
}
.nav-menu-btn span{
  display:block;width:20px;height:1.5px;background:var(--black);
  transition:transform .2s,opacity .2s,background-color .2s,color .2s;
}
.nav-logo{
  font-family:var(--serif);font-size:26px;font-weight:700;
  color:var(--black);cursor:pointer;letter-spacing:.01em;
  position:absolute;left:50%;transform:translateX(-50%);
  white-space:nowrap;
}
.nav-right{display:flex;align-items:center;gap:4px}
.nav-btn{
  width:40px;height:40px;display:flex;align-items:center;
  justify-content:center;background:none;border:none;
  cursor:pointer;color:var(--black);transition:opacity .15s;
  position:relative;
}
.nav-btn:hover{opacity:.6}
.nav-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cart-count{
  position:absolute;top:6px;right:6px;width:14px;height:14px;
  border-radius:50%;background:var(--black);color:var(--white);
  font-size:8px;font-weight:600;display:flex;align-items:center;
  justify-content:center;opacity:0;transform:scale(.6);
  transition:transform .2s,opacity .2s,background-color .2s,color .2s;
}
.cart-count.visible{opacity:1;transform:scale(1)}
/* ─── MOBILE DRAWER ─── */
.mob-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:300;
  opacity:0;pointer-events:none;transition:opacity .25s;
}
.mob-overlay.open{opacity:1;pointer-events:all}
.mob-drawer{
  position:fixed;top:0;left:0;bottom:0;width:280px;
  background:var(--white);z-index:301;
  transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  will-change:transform;backface-visibility:hidden;
  display:flex;flex-direction:column;overflow:hidden;
}
.mob-drawer.open{transform:translateX(0)}
.mob-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 20px 16px;border-bottom:1px solid var(--border);
}
.mob-drawer-logo{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:.01em}
.mob-close{font-size:24px;line-height:1;color:var(--mid);background:none;border:none;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.mob-links{padding:8px 0;flex:1;overflow-y:auto}
.mob-link{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:18px 24px;font-family:var(--serif);font-size:22px;font-weight:600;
  color:var(--black);border:none;background:none;text-align:left;cursor:pointer;
  transition:background .1s;letter-spacing:.01em;
}
.mob-link-primary{font-weight:500}
.mob-link-meta{
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mid);font-weight:500;
}
.mob-link-sub{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--text);padding:14px 24px}
.mob-link:hover{background:var(--off-white)}
.mob-divider{height:1px;background:var(--border);margin:12px 24px}
.mob-foot{padding:24px;border-top:1px solid var(--border)}
.mob-foot-eyebrow{
  font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);margin-bottom:10px;font-weight:500;
}
.mob-foot-tag{
  font-family:var(--serif);font-size:15px;font-weight:600;font-style:italic;
  color:var(--text);line-height:1.5;
}
/* ─── PAGES ─── */
.page{display:none;}
.page.active{animation-fill-mode:both}
.page.active{display:block;animation:pageFade .22s ease}
.page:not(.active){content-visibility:auto;contain-intrinsic-size:0 800px}
@keyframes pageFade{from{opacity:0}to{opacity:1}}
/* ─── GATE / MODAL ─── */
/* ─── GATE ─── */
.gate{
  position:fixed;inset:0;
  background:rgba(17,17,17,.95);
  z-index:9999;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  pointer-events:all;
}
.gate-box{
  background:var(--off-white);width:100%;max-width:420px;
  border-radius:var(--radius);padding:40px 32px 32px;
  box-shadow:0 24px 60px rgba(0,0,0,.4);
  position:relative;text-align:center;
}
.gate-logo{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:32px;font-weight:400;color:var(--black);
  margin-bottom:24px;letter-spacing:.02em;
}
.gate-title{
  font-size:17px;font-weight:500;color:var(--black);
  line-height:1.4;margin-bottom:8px;
}
.gate-sub{
  font-size:13px;color:var(--mid);line-height:1.6;margin-bottom:28px;
}
.gate-btns{
  display:flex;gap:12px;margin-bottom:20px;
}
.gate-btn-decline{
  flex:1;padding:14px;background:transparent;color:var(--black);
  border:1.5px solid var(--black);border-radius:var(--radius-sm);
  font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;font-family:var(--sans);transition:background-color .15s,color .15s,opacity .15s;
}
.gate-btn-decline:hover{background:rgba(0,0,0,.05)}
.gate-btn-accept{
  flex:1;padding:14px;background:var(--black);color:var(--white);
  border:1.5px solid var(--black);border-radius:var(--radius-sm);
  font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;font-family:var(--sans);transition:background-color .15s,color .15s,opacity .15s;
}
.gate-btn-accept:hover{background:#333;border-color:#333}
.gate-remember{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-bottom:20px;cursor:pointer;
}
.gate-remember input[type="checkbox"]{
  width:16px;height:16px;accent-color:var(--black);cursor:pointer;
}
.gate-remember-label{font-size:13px;color:var(--black);cursor:pointer}
.gate-fine{
  font-size:10px;color:#aaa;line-height:1.8;
  padding-top:16px;border-top:1px solid var(--border);
}
/* ─── TOAST ─── */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(12px);
  background:var(--black);color:var(--white);padding:12px 20px;
  border-radius:var(--radius-sm);font-size:13px;font-weight:400;
  z-index:9000;opacity:0;transition:all .25s;pointer-events:none;
  white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.25);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* ─────────────────────────────────
  HOME PAGE — MOBILE-FIRST PREMIUM
───────────────────────────────── */
/* ── HERO ── massive type, bluum-aggressive, centered */
.hero{
  position:relative;text-align:center;overflow:hidden;
  padding:48px 24px 72px;
  background:var(--off-white);
}
.hero::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:
  radial-gradient(ellipse 90% 50% at 50% 0%, rgba(201,185,154,.08) 0%, transparent 60%);
  pointer-events:none;
}
.hero > *{position:relative;z-index:1;}
.hero-eyebrow-row{
  display:flex;justify-content:center;margin-bottom:32px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--text);
}
.hero-eyebrow-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--black);animation:heroPulse 2.4s ease-in-out infinite;
}
@keyframes heroPulse{
  0%,100%{opacity:1}
  50%{opacity:.35}
}
.hero-title{
  font-family:var(--serif);
  /* bluum-massive: scales aggressively; mobile starts at 56px, desktop hits ~120px */
  font-size:clamp(56px,14vw,128px);
  font-weight:700;line-height:.96;color:var(--black);
  margin:0 auto 48px;letter-spacing:-.025em;
  max-width:14ch;
}
.hero-title em{
  font-style:italic;font-weight:700;color:var(--black);
  letter-spacing:-.015em;
}
.hero-cta-wrap{
  display:flex;flex-direction:column;align-items:center;gap:18px;
}
.hero-cta{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--black);color:var(--white);
  padding:20px 56px;border-radius:100px;
  font-family:var(--sans);font-size:15px;font-weight:500;
  letter-spacing:.02em;cursor:pointer;border:none;
  transition:transform .22s cubic-bezier(.4,0,.2,1),background-color .2s,box-shadow .22s;
  box-shadow:0 4px 24px rgba(0,0,0,.12);
  min-height:56px;min-width:200px;
}
.hero-cta:hover{transform:translateY(-1px);background:#1a1a1a;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.hero-cta:active{transform:translateY(0);box-shadow:0 2px 12px rgba(0,0,0,.14)}

/* ── HERO IMAGE BAND — full-bleed below fold ── */
.hero-image-band{
  background:var(--off-white);padding:0 0 64px;
}
.hero-image,
.hero-image-placeholder{
  display:block;width:calc(100% - 32px);max-width:1240px;margin:0 auto;
  aspect-ratio:4/3;border-radius:18px;overflow:hidden;
  object-fit:cover;
}
.hero-image-placeholder{
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(201,185,154,.18) 0%, transparent 70%),
    linear-gradient(180deg, #EEEEEE 0%, #E0E0E0 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;text-align:center;padding:32px;
  border:1px solid rgba(0,0,0,.06);
}
.hero-image-placeholder::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,0,0,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.025) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 70% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%, #000 30%, transparent 80%);
  pointer-events:none;
}
.hero-image-placeholder > *{position:relative;z-index:1}
.hero-image-wordmark{
  font-family:var(--serif);font-size:clamp(64px,14vw,160px);
  font-weight:700;color:var(--black);letter-spacing:-.02em;line-height:1;
  margin-bottom:24px;
}
.hero-image-tagline{
  font-family:var(--serif);font-style:italic;font-weight:700;
  font-size:clamp(16px,2.4vw,22px);color:var(--text);
  letter-spacing:.005em;line-height:1.4;max-width:480px;margin-bottom:32px;
}
.hero-image-meta{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(0,0,0,.35);font-weight:500;
  background:rgba(255,255,255,.7);padding:6px 12px;border-radius:100px;
  backdrop-filter:blur(4px);
}
@media(min-width:600px){
  .hero{padding:64px 40px 80px}
  .hero-image,
  .hero-image-placeholder{width:calc(100% - 48px)}
}
@media(min-width:900px){
  .hero{padding:80px 60px 88px}
  .hero-title{font-size:clamp(80px,11vw,148px)}
}

/* ── PROOF BAND ── */
.proof-band{
  padding:64px 24px 56px;background:var(--white);
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  text-align:left;
}
.proof-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:18px;
}
.proof-title{
  font-family:var(--serif);font-size:clamp(28px,6.5vw,44px);
  font-weight:600;line-height:1.1;letter-spacing:-.012em;
  color:var(--black);margin-bottom:18px;max-width:680px;
}
.proof-title em{font-style:italic;font-weight:700;color:var(--text)}
.proof-copy{
  font-size:15px;line-height:1.75;color:var(--text);
  max-width:560px;margin-bottom:24px;
}
.proof-row{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.proof-link{
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;color:var(--black);cursor:pointer;
  background:none;border:none;border-bottom:1px solid var(--black);
  padding:4px 0;transition:opacity .15s;
}
.proof-link:hover{opacity:.7}
.proof-link-quiet{color:var(--text);border-color:var(--border)}
.proof-link-quiet:hover{color:var(--black);border-color:var(--black);opacity:1}
@media(min-width:600px){
  .proof-band{padding:80px 40px}
  .proof-row{flex-direction:row;gap:32px;align-items:center}
}
/* ── TRUST STRIP ── */
.trust-strip{
  background:var(--black);padding:0;overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);
}
.trust-strip-inner{
  display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent);
}
.trust-strip-inner::-webkit-scrollbar{display:none}
.trust-strip-item{
  flex-shrink:0;display:flex;align-items:center;gap:10px;
  padding:18px 22px;border-right:1px solid rgba(255,255,255,.06);
  font-family:var(--mono);font-size:10px;font-weight:400;color:rgba(255,255,255,.7);
  letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
}
.trust-strip-item svg{
  width:14px;height:14px;stroke:var(--gold);
  fill:none;stroke-width:1.5;flex-shrink:0;
}
.trust-row{display:none}
/* ── SECTION DIVIDER ── */
.section-divider{
  height:1px;background:var(--border);
  margin:0 24px;
}
/* ── DUAL CTA CARDS ── */
.dual-cards{
  padding:48px 16px 16px;display:flex;flex-direction:column;gap:14px;
}
.dual-card{
  border-radius:var(--radius);padding:36px 28px;min-height:240px;
  position:relative;overflow:hidden;cursor:pointer;
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;
  will-change:transform;border:none;text-align:left;
  display:flex;flex-direction:column;
  font-family:var(--sans);
}
.dual-card:hover{transform:translateY(-3px);box-shadow:0 16px 48px rgba(0,0,0,.10)}
.dual-card:active{transform:scale(.995)}
.dual-card-light{
  background:var(--off-white);
  border:1px solid var(--border);
}
.dual-card-dark{
  background:var(--black);
  box-shadow:0 8px 32px rgba(0,0,0,.18);
}
.dual-card-label{
  font-family:var(--mono);font-size:10px;color:var(--mid);margin-bottom:14px;
  letter-spacing:.08em;text-transform:uppercase;font-weight:500;
}
.dual-card-dark .dual-card-label{color:var(--mid)}
.dual-card-title{
  font-family:var(--serif);font-size:28px;font-weight:600;
  margin-bottom:auto;color:var(--black);line-height:1.18;letter-spacing:-.005em;
}
.dual-card-dark .dual-card-title{color:var(--white)}
.dual-card-cta{
  display:inline-flex;align-items:center;gap:8px;margin-top:28px;
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;color:var(--black);
  border-bottom:1px solid var(--black);padding-bottom:4px;align-self:flex-start;
  transition:gap .2s;
}
.dual-card:hover .dual-card-cta{gap:14px}
.dual-card-dark .dual-card-cta{color:var(--white);border-bottom-color:var(--white)}
.dual-card-deco{
  position:absolute;right:-12px;bottom:-32px;font-family:var(--serif);
  font-size:160px;font-weight:700;opacity:.05;line-height:1;color:var(--black);
  user-select:none;pointer-events:none;font-style:italic;
}
.dual-card-dark .dual-card-deco{opacity:.08;color:var(--mid)}
/* ── HOW IT WORKS ── */
.how-section{
  padding:64px 24px;
  background:var(--white);contain:layout style;
}
.how-section-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:14px;
}
.how-section-title{
  font-family:var(--serif);font-size:clamp(28px,6vw,40px);font-weight:600;
  color:var(--black);margin-bottom:36px;line-height:1.08;letter-spacing:-.01em;
}
.how-section-title em{font-style:italic;font-weight:700;color:var(--text)}
.how-card{
  border-top:1px solid var(--border);
  padding:28px 0;margin:0;
  display:flex;align-items:flex-start;gap:24px;
  transition:none;background:none;border-radius:0;
}
.how-card:last-child{border-bottom:1px solid var(--border)}
.how-card:hover{box-shadow:none}
.how-num{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--mid);
  font-weight:500;flex-shrink:0;padding-top:2px;
  width:auto;height:auto;background:none;border-radius:0;
  display:block;
}
.how-body{flex:1}
.how-title{font-family:var(--serif);font-size:22px;font-weight:600;margin-bottom:8px;color:var(--black);line-height:1.2;letter-spacing:-.005em}
.how-desc{font-size:14px;color:var(--text);line-height:1.75}
/* ── EDITORIAL BAND ── */
.editorial{
  background:var(--black);padding:80px 24px;color:var(--white);
  border-top:1px solid var(--border);
}
.editorial-inner{max-width:680px;margin:0 auto;text-align:left}
.editorial-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:20px;
}
.editorial-title{
  font-family:var(--serif);font-size:clamp(32px,7vw,52px);font-weight:700;
  line-height:1.06;letter-spacing:-.012em;color:var(--white);margin-bottom:24px;
}
.editorial-title em{font-style:italic;color:var(--mid);font-weight:700}
.editorial-copy{
  font-size:15px;line-height:1.8;color:rgba(255,255,255,.7);
  margin-bottom:28px;max-width:540px;
}
.editorial-link{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--white);background:none;border:none;cursor:pointer;
  border-bottom:1px solid var(--white);padding:6px 0;font-weight:500;
  transition:opacity .15s;
}
.editorial-link:hover{opacity:.7}
/* ── FEATURED PRODUCTS ── */
.feat-section{padding:64px 16px 48px;contain:layout style;}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:32px;gap:16px;
}
.section-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:8px;
}
.section-title{
  font-family:var(--serif);font-size:clamp(26px,5vw,36px);font-weight:600;color:var(--black);
  line-height:1.05;letter-spacing:-.01em;
}
.section-link{
  font-family:var(--mono);font-size:10px;color:var(--black);cursor:pointer;
  letter-spacing:.06em;text-transform:uppercase;font-weight:500;
  background:none;border:none;border-bottom:1px solid var(--black);
  padding:4px 0;transition:opacity .15s;white-space:nowrap;flex-shrink:0;
}
.section-link:hover{opacity:.6}
/* ── PRODUCT CARDS ── */
.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.product-card{
  border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;
  background:var(--white);transition:transform .25s,box-shadow .25s;
  border:1px solid var(--border);will-change:transform;
}
.product-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.06);border-color:var(--black)}
.product-card:active{transform:scale(.99)}
.pc-image{
  background:var(--off-white);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;contain:strict;
}
.pc-image svg{width:62%;height:62%}
.pc-add-btn{
  position:absolute;bottom:12px;right:12px;
  width:40px;height:40px;border-radius:50%;background:var(--white);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 12px rgba(0,0,0,.10);border:none;cursor:pointer;
  transition:transform .2s,background-color .2s,color .2s;color:var(--black);
}
.pc-add-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5}
.pc-add-btn:hover{background:var(--black);color:var(--white);transform:scale(1.08)}
.pc-info{padding:18px 14px 20px}
.pc-name{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--black);margin-bottom:4px;line-height:1.2;letter-spacing:-.005em}
.pc-dose-tag{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);font-weight:500}
.pc-price{font-family:var(--sans);font-size:15px;font-weight:500;color:var(--black);margin-top:10px}
/* ── REVIEWS / PROOF QUOTES (deprecated — kept for legacy pages) ── */
.reviews-section{
  margin:0 16px 40px;
  background:var(--off-white);
  border-radius:var(--radius);padding:32px 24px;
  border:1px solid var(--border);
  position:relative;overflow:hidden;
}
.reviews-section::before{
  content:'"';position:absolute;top:-20px;left:16px;
  font-family:var(--serif);font-size:160px;color:rgba(0,0,0,.04);
  line-height:1;pointer-events:none;user-select:none;
}
.reviews-head{margin-bottom:24px;position:relative}
.reviews-stars{font-size:16px;letter-spacing:3px;margin-bottom:6px;color:var(--black)}
.reviews-count{font-size:11px;color:var(--mid);letter-spacing:.06em;text-transform:uppercase;font-weight:500}
.review-card{
  padding:22px 0;border-bottom:1px solid rgba(0,0,0,.07);
}
.review-card:last-child{border-bottom:none;padding-bottom:0}
.review-text{
  font-size:14.5px;line-height:1.75;color:var(--black);
  margin-bottom:10px;font-style:italic;font-family:var(--serif);
}
.review-author{
  font-size:10.5px;color:var(--mid);font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
}
/* ── DISCLAIMER ── */
.disc-box{
  margin:0 16px 40px;border:1px solid var(--border);
  border-radius:var(--radius);padding:24px 22px;
  background:var(--off-white);
}
.disc-text{font-family:var(--sans);font-size:11px;color:var(--text);line-height:1.85}
.disc-text strong{color:var(--black);font-weight:500}
/* ─── PROTOCOL CARDS ─── */
.protocols-section{padding:48px 16px 56px}
.protocol-grid{display:flex;flex-direction:column;gap:14px}
.protocol-card{
  border-radius:var(--radius-sm);padding:34px 28px;min-height:200px;
  position:relative;overflow:hidden;cursor:pointer;
  transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;
}
.protocol-card:hover{transform:translateY(-3px);box-shadow:0 16px 48px rgba(0,0,0,.10)}
.protocol-card:active{transform:scale(.995)}
.protocol-dark{background:var(--black)}
.protocol-light{background:var(--off-white);border:1px solid var(--border)}
.protocol-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:500;margin-bottom:14px;
  color:var(--mid);
}
.protocol-light .protocol-label{color:var(--mid)}
.protocol-name{
  font-family:var(--serif);font-size:42px;font-weight:600;
  color:var(--white);margin-bottom:6px;line-height:1;letter-spacing:.005em;
}
.protocol-light .protocol-name{color:var(--black)}
.protocol-detail{font-family:var(--sans);font-size:12px;color:rgba(255,255,255,.55);margin-bottom:20px;line-height:1.6}
.protocol-light .protocol-detail{color:var(--text)}
.protocol-price{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--white);margin-bottom:20px}
.protocol-light .protocol-price{color:var(--black)}
.protocol-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 22px;border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;border:none;
  background:var(--white);color:var(--black);
  transition:transform .2s,opacity .2s;
}
.protocol-btn-dark{background:var(--black);color:var(--white)}
.protocol-btn:hover{transform:translateY(-1px);opacity:.9}
.protocol-deco{
  position:absolute;right:-8px;bottom:-32px;
  font-family:var(--serif);font-size:160px;font-weight:700;font-style:italic;
  opacity:.08;color:var(--mid);line-height:1;
  user-select:none;pointer-events:none;
}
.protocol-light .protocol-deco{color:var(--black);opacity:.05}
@media(min-width:600px){
  .protocol-grid{flex-direction:row}
  .protocol-card{flex:1}
}
/* ─── CROSS-SELL ─── */
.pd-crosssell{
  margin-top:28px;padding-top:24px;
  border-top:1px solid var(--border);
}
.pd-crosssell-title{
  font-size:11px;font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;color:var(--mid);margin-bottom:14px;
}
.pd-crosssell-grid{display:flex;flex-direction:column;gap:10px}
.pd-crosssell-card{
  display:flex;align-items:center;gap:12px;padding:12px;
  background:var(--off-white);border-radius:var(--radius-sm);
  cursor:pointer;transition:background .15s;
}
.pd-crosssell-card:hover{background:#ECECEC}
.pd-crosssell-img{
  width:48px;height:48px;border-radius:var(--radius-sm);
  background:var(--white);flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.pd-crosssell-img svg{width:36px;height:36px}
.pd-crosssell-info{flex:1;min-width:0}
.pd-crosssell-name{font-size:13px;font-weight:500;color:var(--black)}
.pd-crosssell-dose{font-size:11px;color:var(--mid);margin-top:1px}
.pd-crosssell-price{font-size:13px;color:var(--black);margin-top:2px}
.pd-crosssell-add{
  width:32px;height:32px;border-radius:50%;background:var(--black);
  color:var(--white);border:none;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s,opacity .2s,background-color .2s,color .2s;
}
.pd-crosssell-add:hover{background:#333;transform:scale(1.1)}
/* ─── STICKY ADD-TO-CART ─── */
.pd-sticky-atc{
  position:fixed;bottom:0;left:0;right:0;z-index:300;
  background:var(--white);border-top:1px solid var(--border);
  padding:12px 16px;display:flex;align-items:center;gap:12px;
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
  transform:translateY(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);
  will-change:transform;backface-visibility:hidden;
}
.pd-sticky-atc.visible{transform:translateY(0)}
.pd-sticky-info{flex:1;min-width:0}
.pd-sticky-name{font-size:14px;font-weight:500;color:var(--black);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-sticky-price{font-size:13px;color:var(--mid);margin-top:1px}
.pd-sticky-btn{
  padding:12px 22px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;
  cursor:pointer;font-family:var(--sans);white-space:nowrap;
  transition:background .2s;flex-shrink:0;
}
.pd-sticky-btn:hover{background:#333}
/* ─── SEARCH OVERLAY ─── */
#searchOverlay{display:none}
#searchOverlay.open{display:block}
.search-result-item{
  padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--border);
  transition:background-color .15s;
}
.search-result-item:last-child{border-bottom:none}
.search-result-item:hover{background:var(--off-white)}
.search-result-name{font-size:15px;font-weight:500;color:var(--black);margin-bottom:3px;font-family:var(--serif)}
.search-result-meta{font-size:12px;color:var(--mid)}

/* ─── 404 PAGE ─── */
.page-404{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;min-height:70vh;padding:40px 24px;
  text-align:center;
}
.page-404-num{
  font-family:var(--serif);font-size:96px;font-weight:600;
  color:var(--black);opacity:.08;line-height:1;margin-bottom:24px;
}
.page-404-title{font-size:22px;font-weight:500;margin-bottom:8px}
.page-404-sub{font-size:14px;color:var(--mid);margin-bottom:28px;line-height:1.6}
/* ─── MOBILE RESPONSIVE OVERRIDES ─── */
@media (max-width:390px){
  .hero{ padding:60px 22px 52px; }
  .hero-title{ font-size:40px; }
  .hero-cta{ padding:17px 32px;font-size:14px; }
  .hero-metric-num{ font-size:19px; }
  .dual-card{ padding:28px 22px; }
  .dual-card-title{ font-size:21px; }
  .how-card{ padding:22px 18px;gap:16px; }
  .reviews-section{ padding:28px 18px; }
  .product-grid{ gap:10px; }
  .pc-info{ padding:12px 10px; }
}
@media (min-width:480px){
  .hero{ padding:80px 40px 72px; }
  .hero-title{ font-size:56px; }
  .hero-cta{ max-width:340px; }
  .trust-strip-item{ padding:16px 24px;font-size:12px; }
  .dual-cards{ padding:48px 24px; }
  .how-section{ padding:48px 24px; }
  .feat-section{ padding:48px 24px; }
  .reviews-section{ margin:0 24px 48px; }
  .disc-box{ margin:0 24px 48px; }
}
@media (min-width:768px){
  .hero{ padding:88px 60px 80px; }
  .hero-title{ font-size:clamp(56px,7vw,72px); }
  .hero-subtitle{ max-width:400px; }
  .hero-cta{ max-width:280px; }
  .dual-cards{ flex-direction:row;padding:56px 32px; }
  .dual-card{ flex:1; }
  .product-grid{ grid-template-columns:repeat(3,1fr); }
  .how-section{ padding:56px 32px; }
  .feat-section{ padding:56px 32px; }
  .reviews-section{ margin:0 32px 56px;padding:40px 36px; }
  .disc-box{ margin:0 32px 56px; }
}
/* ─── FOOTER ─── */
footer{
  background:var(--black);padding:56px 20px 32px;color:rgba(255,255,255,.7);
}
.footer-top{
  display:flex;flex-direction:column;gap:40px;margin-bottom:48px;
}
.footer-brand{display:flex;flex-direction:column}
.footer-logo{
  font-family:var(--serif);font-size:32px;color:var(--white);
  margin-bottom:14px;font-weight:600;letter-spacing:.005em;
}
.footer-tag{
  font-family:var(--serif);font-size:18px;font-weight:700;font-style:italic;
  color:rgba(255,255,255,.55);line-height:1.4;margin-bottom:28px;letter-spacing:.005em;
}
.footer-social{display:flex;gap:12px}
.footer-social-link{
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.06);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.55);transition:background .15s,color .15s;
}
.footer-social-link:hover{background:var(--black);color:var(--black)}
.footer-signup{
  border-top:1px solid rgba(255,255,255,.08);padding-top:32px;
}
.footer-signup-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);margin-bottom:12px;font-weight:500;
}
.footer-signup-title{
  font-family:var(--serif);font-size:24px;font-weight:600;color:var(--white);
  margin-bottom:8px;line-height:1.2;letter-spacing:-.005em;
}
.footer-signup-sub{
  font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;margin-bottom:18px;
}
.footer-email-row{
  display:flex;gap:0;margin-bottom:12px;
}
.footer-email-inp{
  flex:1;padding:14px 16px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);border-right:none;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  font-size:14px;color:var(--white);font-family:var(--sans);outline:none;
  transition:border-color .2s,background .2s;
}
.footer-email-inp:focus{border-color:var(--mid);background:rgba(255,255,255,.06)}
.footer-email-inp::placeholder{color:rgba(255,255,255,.3)}
.footer-email-btn{
  padding:14px 20px;background:var(--white);color:var(--black);
  border:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;cursor:pointer;white-space:nowrap;
  transition:background .15s;
}
.footer-email-btn:hover{background:var(--black)}
.footer-fine{
  font-size:11px;color:rgba(255,255,255,.35);line-height:1.7;
}
.footer-fine-link{
  background:none;border:none;color:rgba(255,255,255,.6);
  text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit;
  padding:0;
}
.footer-fine-link:hover{color:var(--white)}
.footer-cols{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  border-top:1px solid rgba(255,255,255,.08);
  padding:36px 0;margin-bottom:8px;
}
.footer-col{display:flex;flex-direction:column;gap:14px}
.footer-col-title{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:4px;
}
.footer-link{
  font-family:var(--sans);font-size:13px;color:rgba(255,255,255,.55);cursor:pointer;
  padding:2px 0;transition:color .15s;background:none;border:none;
  text-align:left;font-weight:400;
}
.footer-link:hover{color:var(--white)}
.footer-contact-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 0;border-top:1px solid rgba(255,255,255,.08);
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.5);
  flex-wrap:wrap;gap:12px;
}
.footer-contact-row strong{color:var(--white);font-weight:500}
.footer-divider{height:1px;background:rgba(255,255,255,.08);margin:0 0 20px}
.footer-legal{
  font-family:var(--sans);font-size:11px;color:rgba(255,255,255,.4);
  line-height:1.8;font-weight:400;
}
.footer-copy{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:rgba(255,255,255,.3);margin-top:16px;text-transform:lowercase;
}
.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;
}
.skip-link{
  position:absolute;top:-100px;left:8px;z-index:9999;
  background:var(--black);color:var(--white);
  padding:14px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;border-radius:var(--radius-sm);
  font-weight:500;
}
.skip-link:focus{top:8px}
/* ─────────────────────────────────
  SHOP PAGE
───────────────────────────────── */
.page-header{
  padding:48px 20px 32px;border-bottom:1px solid var(--border);background:var(--white);
}
.page-header-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:14px;
}
.page-header-title{
  font-family:var(--serif);font-size:clamp(32px,7vw,52px);font-weight:600;
  color:var(--black);margin-bottom:10px;letter-spacing:-.012em;line-height:1.05;
}
.page-header-title em{font-style:italic;font-weight:700;color:var(--text)}
.page-header-sub{
  font-size:14px;color:var(--text);line-height:1.65;max-width:540px;
}
.shop-filters{
  display:flex;gap:8px;padding:18px 16px;overflow-x:auto;
  scrollbar-width:none;border-bottom:1px solid var(--border);
  background:var(--white);position:sticky;top:64px;z-index:50;
}
.shop-filters::-webkit-scrollbar{display:none}
.filter-chip{
  flex-shrink:0;padding:10px 18px;border-radius:100px;
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;
  border:1px solid var(--border);background:var(--white);color:var(--text);
}
.filter-chip.active,.filter-chip:hover{
  background:var(--black);color:var(--white);border-color:var(--black);
}
.filter-count{
  display:inline-block;margin-left:8px;padding:2px 7px;border-radius:100px;
  background:rgba(0,0,0,.06);font-size:9px;letter-spacing:.06em;color:var(--text);
  font-weight:500;transition:background .15s,color .15s;
}
.filter-chip.active .filter-count,.filter-chip:hover .filter-count{
  background:rgba(255,255,255,.16);color:rgba(255,255,255,.85);
}
.shop-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--border);
}
.shop-card{
  background:var(--white);padding:0;cursor:pointer;transition:background .15s;
  display:flex;flex-direction:column;
}
.shop-card:hover{background:var(--off-white)}
.shop-card-img{
  background:var(--off-white);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;position:relative;width:100%;
}
.shop-card-img svg{width:60%;height:60%}
.shop-badge{display:none}
.shop-card-info{padding:18px 18px 20px;display:flex;flex-direction:column}
.shop-card-name{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--black);margin-bottom:4px;line-height:1.15;letter-spacing:-.005em}
.shop-card-dose{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--mid);margin-bottom:10px;text-transform:uppercase;font-weight:500}
.shop-card-price{font-family:var(--sans);font-size:16px;color:var(--black);font-weight:500}
.shop-card-coa{
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--text);
  margin-top:10px;padding-top:12px;border-top:1px solid var(--border);text-transform:uppercase;
}
.shop-add{
  margin-top:16px;width:100%;padding:14px;
  background:var(--black);color:var(--white);
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;
  border:none;cursor:pointer;transition:background .15s,letter-spacing .2s;
  border-radius:var(--radius-sm);
}
.shop-add:hover{background:#1a1a1a;letter-spacing:.06em}
/* ─── PRODUCT DETAIL ─── */
.pd-back{
  padding:18px 16px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);cursor:pointer;background:var(--white);
  border-top:none;border-left:none;border-right:none;
  transition:color .15s;width:100%;text-align:left;font-weight:500;
}
.pd-back:hover{color:var(--black)}
.pd-back svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.pd-image{
  background:var(--off-white);aspect-ratio:4/3;width:100%;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.pd-image svg{width:55%}
.pd-made-badge{
  position:absolute;top:16px;right:16px;background:var(--white);
  border-radius:var(--radius-sm);padding:10px 14px;
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:500;color:var(--black);
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}
.pd-body{padding:32px 20px 48px}
.pd-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:10px;
}
.pd-name{font-family:var(--serif);font-size:clamp(32px,7vw,42px);font-weight:600;margin-bottom:8px;line-height:1.05;letter-spacing:-.012em}
.pd-price-line{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  font-family:var(--sans);font-size:24px;font-weight:500;color:var(--black);
  margin-bottom:22px;
}
.pd-price-line small{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);font-weight:500;
}
.pd-coa-strip{
  display:flex;align-items:center;gap:12px;padding:14px 16px;
  background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-sm);
  margin-bottom:24px;font-size:12px;color:var(--text);line-height:1.5;
}
.pd-coa-strip svg{width:16px;height:16px;stroke:var(--gold);fill:none;stroke-width:1.8;flex-shrink:0}
.pd-coa-strip strong{color:var(--black);font-weight:500}
.pd-specs{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:28px;
  background:var(--border);border:1px solid var(--border);
}
.pd-spec{
  background:var(--white);padding:14px 16px;
}
.pd-spec-label{font-family:var(--mono);font-size:9px;color:var(--mid);font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.pd-spec-val{font-family:var(--sans);font-size:13px;color:var(--black);font-weight:400}
.pd-qty-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.pd-qty-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500}
.pd-qty-ctrl{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--white)}
.pd-qty-btn{
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:var(--white);border:none;cursor:pointer;font-size:18px;color:var(--black);
  transition:background .1s;
}
.pd-qty-btn:hover{background:var(--off-white)}
.pd-qty-btn:disabled{opacity:.3;cursor:not-allowed}
.pd-qty-num{
  width:52px;text-align:center;font-family:var(--sans);font-size:15px;font-weight:500;
  border-left:1px solid var(--border);border-right:1px solid var(--border);
  line-height:48px;
}
.pd-add-btn{
  width:100%;padding:18px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:background .2s,letter-spacing .2s;
  margin-bottom:16px;min-height:56px;
}
.pd-add-btn:hover{background:#1a1a1a;letter-spacing:.06em}
.pd-trust-row{
  display:flex;flex-direction:column;gap:12px;margin-bottom:28px;
  padding:20px;background:var(--off-white);border:1px solid var(--border);border-radius:var(--radius-sm);
}
.pd-trust-item{
  display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text);line-height:1.5;
}
.pd-trust-item svg{width:15px;height:15px;stroke:var(--gold);fill:none;stroke-width:1.8;flex-shrink:0}
.pd-desc-label{
  font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;
  color:var(--mid);margin-bottom:14px;padding-top:8px;
  border-top:1px solid var(--border);padding-top:24px;
}
.pd-desc-text{font-family:var(--sans);font-size:14px;color:var(--text);line-height:1.85}
.pd-desc-text p{margin-bottom:14px}
.pd-desc-text p:last-child{margin-bottom:0}
.pd-disclaimer{
  margin-top:24px;padding:16px 18px;background:var(--off-white);border:1px solid var(--border);
  border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:var(--text);line-height:1.7;
}
/* ─── CART DRAWER ─── */
.cart-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:400;
  opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(2px);
}
.cart-overlay.open{opacity:1;pointer-events:all}
.cart-drawer{
  position:fixed;top:0;right:0;bottom:0;width:100%;max-width:420px;
  background:var(--white);z-index:401;
  transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  will-change:transform;backface-visibility:hidden;
  display:flex;flex-direction:column;
}
.cart-drawer.open{transform:translateX(0)}
.cart-head{
  padding:24px 20px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.cart-title{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:-.005em}
.cart-close-btn{
  width:44px;height:44px;border-radius:50%;background:var(--off-white);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  border:none;font-size:20px;color:var(--mid);transition:background .15s,color .15s;
}
.cart-close-btn:hover{background:var(--black);color:var(--white)}
.cart-items{flex:1;overflow-y:auto;padding:20px 24px}
.cart-empty{
  text-align:center;padding:60px 20px;color:var(--text);font-size:14px;
  display:flex;flex-direction:column;align-items:center;
}
.cart-item{
  display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--border);
}
.cart-item:last-child{border-bottom:none}
.cart-item-img{
  width:72px;height:72px;border-radius:var(--radius-sm);background:var(--off-white);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;
  border:1px solid var(--border);
}
.cart-item-img svg{width:48px;height:48px}
.cart-item-body{flex:1;min-width:0}
.cart-item-name{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--black);margin-bottom:2px;line-height:1.2}
.cart-item-dose{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);margin-bottom:12px;font-weight:500}
.cart-item-qty-row{display:flex;align-items:center;gap:14px}
.cart-qty-btn{
  width:32px;height:32px;border-radius:50%;background:var(--off-white);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  border:1px solid var(--border);font-size:14px;color:var(--black);font-family:var(--sans);
  transition:background .1s,border-color .15s;
}
.cart-qty-btn:hover{background:var(--black);color:var(--white);border-color:var(--black)}
.cart-qty-num{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--black);min-width:24px;text-align:center}
.cart-remove{
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);background:none;border:none;font-weight:500;
  cursor:pointer;padding:0;transition:color .15s;margin-left:auto;
}
.cart-remove:hover{color:var(--black)}
.cart-item-price{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--black);white-space:nowrap;flex-shrink:0;padding-top:2px}
.cart-footer{padding:20px 24px 28px;border-top:1px solid var(--border);background:var(--white)}
.cart-subtotal-row{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:6px;
}
.cart-subtotal-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500}
.cart-subtotal-val{font-family:var(--serif);font-size:28px;font-weight:600;letter-spacing:-.005em}
.cart-shipping-note{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--text);margin-bottom:16px}
.cart-checkout-btn{
  width:100%;padding:18px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:background .2s,letter-spacing .2s;margin-bottom:10px;min-height:56px;
}
.cart-checkout-btn:hover{background:#1a1a1a;letter-spacing:.06em}
.cart-continue-btn{
  width:100%;padding:14px;background:transparent;color:var(--text);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:border-color .15s,color .15s;
}
.cart-continue-btn:hover{border-color:var(--black);color:var(--black)}
/* ─── COA PAGE ─── */
.coa-search-wrap{padding:16px;border-bottom:1px solid var(--border)}
.coa-search-row{display:flex;gap:0}
.coa-search-inp{
  flex:1;padding:13px 16px;border:1px solid var(--border);border-right:none;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  font-size:14px;font-family:var(--sans);outline:none;
  transition:border-color .2s;background:var(--off-white);
}
.coa-search-inp:focus{border-color:var(--black);background:var(--white)}
.coa-search-btn{
  padding:13px 20px;background:var(--black);color:var(--white);
  border:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;white-space:nowrap;
}
.coa-grid{display:grid;grid-template-columns:1fr;gap:14px;padding:24px 16px}
@media(min-width:600px){.coa-grid{grid-template-columns:1fr 1fr;padding:32px 24px;gap:16px}}
@media(min-width:1024px){.coa-grid{grid-template-columns:repeat(3,1fr)}}
.coa-card{
  background:var(--white);border-radius:var(--radius-sm);
  padding:24px;display:block;transition:transform .2s,box-shadow .2s,border-color .15s;
  border:1px solid var(--border);text-decoration:none;
}
.coa-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.06);border-color:var(--black)}
.coa-card-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border);gap:12px;
}
.coa-card-name{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--black);line-height:1.15;letter-spacing:-.005em}
.coa-card-name small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);font-weight:500;margin-top:6px}
.coa-pass{
  font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--black);background:var(--off-white);border:1px solid var(--border);
  padding:5px 10px;border-radius:100px;white-space:nowrap;
}
.coa-pass-pending{
  font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);background:transparent;border:1px solid var(--border);
  padding:5px 10px;border-radius:100px;white-space:nowrap;
}
.coa-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:8px 0;border-bottom:1px solid var(--border)}
.coa-row:last-of-type{border-bottom:none}
.coa-rl{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500}
.coa-rv{font-family:var(--sans);font-size:13px;color:var(--black);font-weight:400}
.coa-rv.hi{color:var(--black);font-weight:600}
.coa-rv-pending{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--text);font-style:italic}
.coa-view{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:18px;padding:12px 14px;border-radius:var(--radius-sm);
  background:var(--off-white);
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--black);text-decoration:none;transition:background .15s,color .15s;
  border:1px solid var(--border);
}
.coa-view:hover{background:var(--black);color:var(--white);border-color:var(--black)}
.coa-view-pending{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:18px;padding:12px 14px;border-radius:var(--radius-sm);
  background:transparent;
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);text-decoration:none;transition:color .15s;
  border:1px dashed var(--border);
}
.coa-view-pending:hover{color:var(--black)}
.lab-meta{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--border);border-bottom:1px solid var(--border);
}
@media(min-width:600px){.lab-meta{grid-template-columns:repeat(4,1fr)}}
.lab-meta-item{background:var(--white);padding:22px 20px;text-align:left}
.lab-meta-label{
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:8px;
}
.lab-meta-val{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--black);letter-spacing:-.005em}
.lab-footnote{
  margin:24px 16px 40px;padding:20px 22px;background:var(--off-white);border:1px solid var(--border);
  border-radius:var(--radius-sm);font-family:var(--sans);font-size:13px;color:var(--text);line-height:1.7;
}
.lab-footnote strong{color:var(--black);font-weight:500}
.lab-footnote a{color:var(--black);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--mid)}
.lab-footnote a:hover{text-decoration-color:var(--black)}
/* ─── ABOUT PAGE ─── */
.about-hero{
  padding:64px 24px 48px;text-align:left;border-bottom:1px solid var(--border);background:var(--off-white);
}
.about-hero-eyebrow{font-family:var(--mono);font-size:10px;color:var(--mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px;font-weight:500}
.about-hero-title{font-family:var(--serif);font-size:clamp(36px,9vw,60px);font-weight:600;line-height:1.04;margin-bottom:18px;letter-spacing:-.012em}
.about-hero-title em{font-style:italic;font-weight:700;color:var(--text)}
.about-hero-sub{font-family:var(--sans);font-size:15px;color:var(--text);max-width:520px;line-height:1.7;font-weight:400}
.about-story-wrap{padding:56px 24px;border-bottom:1px solid var(--border)}
.about-story-eyebrow{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--mid);margin-bottom:14px}
.about-story-title{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:16px;line-height:1.3}
.about-story-title em{font-style:italic}
.about-story-text{font-family:var(--sans);font-size:15px;color:var(--text);line-height:1.85;margin-bottom:18px;max-width:640px}
.about-story-text em{color:var(--black);font-style:italic}
.about-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--border);margin:0;
}
@media(min-width:600px){.about-stats{grid-template-columns:repeat(4,1fr)}}
.about-stat{
  background:var(--white);padding:36px 20px;text-align:left;
}
.about-stat-val{font-family:var(--serif);font-size:36px;font-weight:600;color:var(--black);margin-bottom:8px;letter-spacing:-.012em;line-height:1}
.about-stat-label{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-weight:500;line-height:1.5}
.about-pillars{padding:56px 24px;border-bottom:1px solid var(--border)}
.pillar-card{
  background:none;border-top:1px solid var(--border);
  padding:32px 0;margin-bottom:0;
  display:flex;flex-direction:column;gap:14px;
}
.pillar-card:last-child{border-bottom:1px solid var(--border)}
}
.pillar-num{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--mid);margin-bottom:0;font-weight:500}
.pillar-title{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:8px;color:var(--black);line-height:1.2;letter-spacing:-.005em}
.pillar-desc{font-family:var(--sans);font-size:14px;color:var(--text);line-height:1.75;max-width:560px}
/* ─── FAQ PAGE ─── */
.faq-wrap{padding:0 16px}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:24px 0;text-align:left;
  font-family:var(--serif);font-size:18px;font-weight:600;color:var(--black);
  background:none;border:none;cursor:pointer;gap:16px;line-height:1.3;letter-spacing:-.005em;
  transition:color .15s;
}
.faq-q:hover{color:var(--text)}
.faq-icon{
  width:32px;height:32px;border-radius:50%;background:var(--off-white);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-size:18px;color:var(--text);transition:transform .25s,background-color .15s,color .15s;
  font-family:var(--sans);
}
.faq-item.open .faq-icon{background:var(--black);color:var(--white);transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a-inner{padding:0 0 24px;font-family:var(--sans);font-size:14px;color:var(--text);line-height:1.85;max-width:640px}
.faq-a-inner p{margin-bottom:12px}
.faq-a-inner p:last-child{margin-bottom:0}
.faq-a-inner ul{padding-left:18px;margin-bottom:12px}
.faq-a-inner li{margin-bottom:6px}
.faq-a-inner strong{color:var(--black);font-weight:500}
.faq-a-inner a{color:var(--black);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--mid)}
/* ─── TERMS / PRIVACY GRID ─── */
.terms-grid{display:grid;grid-template-columns:1fr;min-height:60vh}
.terms-nav{
  background:var(--off-white);border-bottom:1px solid var(--border);
  padding:20px 24px;display:flex;gap:8px;overflow-x:auto;
  scrollbar-width:none;
}
.terms-nav::-webkit-scrollbar{display:none}
.terms-nav > div:first-child{display:none}
.terms-nav a{
  flex-shrink:0;padding:8px 14px;
  font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.06em!important;
  color:var(--text)!important;text-decoration:none!important;text-transform:uppercase!important;
  border:1px solid var(--border)!important;background:var(--white);border-radius:100px;
  white-space:nowrap;font-weight:500;transition:border-color .15s,color .15s;
}
.terms-nav a:hover{border-color:var(--black)!important;color:var(--black)!important}
@media(min-width:900px){
  .terms-grid{grid-template-columns:220px 1fr}
  .terms-nav{
    background:var(--white);border-right:1px solid var(--border);border-bottom:none;
    padding:48px 28px;flex-direction:column;gap:0;overflow:visible;
    position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;
  }
  .terms-nav > div:first-child{display:block}
  .terms-nav a{
    flex-shrink:0;padding:10px 0!important;width:100%;
    border:none!important;background:none;border-radius:0;
    border-bottom:1px solid var(--border)!important;
    text-transform:none!important;letter-spacing:.06em!important;font-size:11px!important;
  }
  .terms-nav a:hover{border-color:var(--border)!important;color:var(--black)!important;background:none}
}
:target{scroll-margin-top:80px}
/* ─── TRACKING PAGE ─── */
.track-wrap{padding:24px 16px}
.track-form-title{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:8px}
.track-form-sub{font-size:14px;color:var(--mid);margin-bottom:24px;line-height:1.7}
.track-inp-row{display:flex;gap:0;margin-bottom:24px}
.track-inp{
  flex:1;padding:14px 16px;border:1px solid var(--border);border-right:none;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  font-size:14px;font-family:var(--sans);outline:none;
  background:var(--off-white);
}
.track-inp:focus{border-color:var(--black);background:var(--white)}
.track-btn{
  padding:14px 20px;background:var(--black);color:var(--white);
  border:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-size:14px;font-weight:400;cursor:pointer;white-space:nowrap;font-family:var(--sans);
}
.track-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.track-info-card{
  background:var(--off-white);border-radius:var(--radius-sm);padding:16px;
}
.track-info-label{font-size:10px;color:var(--mid);text-transform:uppercase;letter-spacing:.05em;font-weight:500;margin-bottom:5px}
.track-info-val{font-size:14px;color:var(--black)}
/* ─── MY ACCOUNT PAGE ─── */
.account-wrap{padding:24px 16px}
.account-section{background:var(--off-white);border-radius:var(--radius);padding:24px;margin-bottom:16px}
.account-section-title{font-size:16px;font-weight:500;margin-bottom:8px}
.account-section-sub{font-size:13px;color:var(--mid);margin-bottom:20px;line-height:1.6}
.account-field{margin-bottom:12px}
.account-field label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--mid);display:block;margin-bottom:5px}
.account-inp{
  width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:14px;font-family:var(--sans);outline:none;background:var(--white);
  transition:border-color .2s;
}
.account-inp:focus{border-color:var(--black)}
.account-inp::placeholder{color:#bbb}
.account-submit{
  width:100%;padding:14px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:400;
  cursor:pointer;font-family:var(--sans);transition:background .2s;
}
.account-submit:hover{background:#333}
/* ─── LEGAL PAGE ─── */
.legal-wrap{padding:24px 16px}
.legal-section{margin-bottom:28px}
.legal-h1{font-family:var(--serif);font-size:28px;font-weight:600;margin-bottom:6px}
.legal-date{font-size:12px;color:var(--mid);margin-bottom:24px}
.legal-h2{font-size:16px;font-weight:500;margin-bottom:8px;margin-top:20px;color:var(--black)}
.legal-p{font-size:13px;color:var(--mid);line-height:1.85;margin-bottom:10px}
.legal-ul{padding-left:18px;margin-bottom:10px}
.legal-ul li{font-size:13px;color:var(--mid);line-height:1.8;margin-bottom:4px}
/* ─── CHECKOUT ─── */
.checkout-wrap{background:var(--black);min-height:100vh;padding-bottom:48px;color:rgba(255,255,255,.85)}
.checkout-top{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky;top:0;background:var(--black);z-index:50;
}
.checkout-logo{
  font-family:var(--serif);font-size:24px;color:var(--white);font-weight:600;
  cursor:pointer;background:none;border:none;letter-spacing:.005em;
}
.checkout-back-btn{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.55);background:none;border:none;font-weight:500;
  cursor:pointer;display:flex;align-items:center;gap:8px;
  transition:color .15s;
}
.checkout-back-btn:hover{color:var(--white)}
.checkout-back-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.checkout-body{padding:36px 20px;max-width:560px;margin:0 auto}
.checkout-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:14px;
}
.checkout-title{
  font-family:var(--serif);font-size:clamp(32px,7vw,44px);color:var(--white);
  font-weight:600;margin-bottom:14px;line-height:1.05;letter-spacing:-.012em;
}
.checkout-sub{
  font-family:var(--sans);font-size:14px;color:rgba(255,255,255,.65);
  line-height:1.7;margin-bottom:28px;max-width:480px;
}
.checkout-howit{
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-sm);padding:20px 22px;margin-bottom:36px;
  display:flex;flex-direction:column;gap:14px;
}
.checkout-howit-row{
  display:flex;align-items:flex-start;gap:14px;
}
.checkout-howit-step{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:var(--mid);font-weight:500;min-width:24px;padding-top:2px;
}
.checkout-howit-text{
  font-family:var(--sans);font-size:13px;color:rgba(255,255,255,.82);
  line-height:1.55;
}
.checkout-section-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin:24px 0 14px;padding-top:8px;
  border-top:1px solid rgba(255,255,255,.08);padding-top:24px;
}
.checkout-section-label:first-of-type{margin-top:0;padding-top:0;border-top:none}
.checkout-field{margin-bottom:14px}
.checkout-label{
  font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;color:rgba(255,255,255,.55);display:block;margin-bottom:8px;
}
.checkout-label-meta{
  text-transform:none;letter-spacing:.04em;color:rgba(255,255,255,.35);
  font-weight:400;margin-left:6px;
}
.checkout-inp{
  width:100%;padding:14px 16px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:15px;color:var(--white);outline:none;
  transition:border-color .2s,background .2s;
}
.checkout-inp:focus{border-color:var(--mid);background:rgba(255,255,255,.06)}
.checkout-inp::placeholder{color:rgba(255,255,255,.25)}
.checkout-inp option{background:#1a1a1a;color:var(--white)}
.checkout-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.checkout-ship-note{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  color:rgba(255,255,255,.45);margin:14px 0 32px;line-height:1.7;
}
.checkout-summary-box{
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-sm);padding:24px;margin:8px 0 28px;
}
.checkout-summary-title{
  font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;
  letter-spacing:.08em;color:var(--mid);margin-bottom:18px;
}
.checkout-summary-item{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-family:var(--sans);font-size:14px;color:rgba(255,255,255,.78);
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);
}
.checkout-summary-item:last-of-type{border-bottom:none}
.checkout-line{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:5px 0;
}
.checkout-line-l{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.6);font-weight:500;
}
.checkout-line-r{
  font-family:var(--sans);font-size:14px;color:rgba(255,255,255,.85);font-weight:400;
}
.checkout-threshold-msg{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  color:rgba(255,255,255,.55);margin-bottom:8px;
}
.checkout-promo{
  display:flex;gap:8px;margin-top:14px;
}
.checkout-promo-inp{
  flex:1;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  padding:11px 12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  color:var(--white);outline:none;border-radius:var(--radius-sm);transition:border-color .2s;
}
.checkout-promo-inp:focus{border-color:var(--mid)}
.checkout-promo-btn{
  font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
  padding:11px 18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.85);font-weight:500;cursor:pointer;border-radius:var(--radius-sm);
  white-space:nowrap;transition:background .2s,color .2s;
}
.checkout-promo-btn:hover{background:var(--black);color:var(--black);border-color:var(--mid)}
.checkout-promo-msg{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;margin-top:8px;display:none;
}
.checkout-total-final{
  display:flex;justify-content:space-between;align-items:baseline;padding-top:8px;
}
.checkout-total-label{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.65);font-weight:500;
}
.checkout-total-val{font-family:var(--serif);font-size:30px;color:var(--white);font-weight:600;letter-spacing:-.005em}
.checkout-divider{height:1px;background:rgba(255,255,255,.08);margin:14px 0}
.checkout-trust{
  display:flex;justify-content:center;gap:20px;flex-wrap:wrap;
  margin-bottom:20px;padding:16px 0;
  border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);
}
.checkout-trust-item{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.55);font-weight:500;
}
.checkout-trust-item svg{color:var(--mid);flex-shrink:0}
.checkout-pay-btn{
  width:100%;padding:18px;background:var(--white);color:var(--black);
  border:none;border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;transition:background .2s,letter-spacing .2s;min-height:56px;
}
.checkout-pay-btn:hover:not(:disabled){background:var(--black);letter-spacing:.06em}
.checkout-pay-btn:disabled{opacity:.6;cursor:wait}
.checkout-pay-note{
  font-family:var(--sans);font-size:11px;color:rgba(255,255,255,.4);
  text-align:center;margin-top:14px;line-height:1.7;max-width:440px;margin-left:auto;margin-right:auto;
}
/* ─── RESPONSIVE ─── */
@media(min-width:600px){
  .hero{padding:96px 40px 80px}
  .how-section,.feat-section{padding-left:24px;padding-right:24px}
  .dual-cards{padding:48px 24px 24px}
  .product-grid{grid-template-columns:repeat(3,1fr)}
  .shop-grid{grid-template-columns:repeat(3,1fr)}
  .reviews-section{margin:8px 24px}
  footer{padding:64px 40px 40px}
  .footer-top{flex-direction:row;align-items:flex-start;gap:64px}
  .footer-brand{flex:1;max-width:280px}
  .footer-signup{flex:1.5;border-top:none;padding-top:0}
}
@media(min-width:900px){
  .hero{padding:120px 60px 96px}
  .product-grid{grid-template-columns:repeat(4,1fr)}
  .shop-grid{grid-template-columns:repeat(4,1fr)}
  .dual-cards{flex-direction:row;gap:18px}
  .dual-card{flex:1}
  /* Note: checkout-2col stays 1fr 1fr — never 3 columns (was a layout bug) */
}
@media(min-width:1200px){
  body{max-width:1440px;margin:0 auto;background:var(--white)}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .hero-eyebrow-dot{animation:none}
}
/* ─── THANK YOU PAGE ─── */
.ty-hero{
  padding:72px 24px 56px;text-align:left;background:var(--off-white);
  border-bottom:1px solid var(--border);
}
.ty-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:18px;
}
.ty-title{
  font-family:var(--serif);font-size:clamp(36px,9vw,60px);font-weight:600;
  line-height:1.02;letter-spacing:-.012em;color:var(--black);margin-bottom:20px;
}
.ty-title em{font-style:italic;font-weight:700;color:var(--text)}
.ty-sub{
  font-size:15px;color:var(--text);line-height:1.7;max-width:480px;margin-bottom:28px;
}
.ty-order-num{
  display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text);
  padding:10px 16px;background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.ty-order-num strong{color:var(--black);font-weight:600}
.ty-steps{padding:48px 24px;display:flex;flex-direction:column;gap:0}
.ty-step{
  display:flex;align-items:flex-start;gap:20px;
  padding:24px 0;border-bottom:1px solid var(--border);
}
.ty-step:last-of-type{border-bottom:none}
.ty-step-num{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;font-weight:500;
  color:var(--text);flex-shrink:0;padding-top:4px;width:32px;
}
.ty-step-active .ty-step-num{color:var(--mid)}
.ty-step-body{flex:1}
.ty-step-title{
  font-family:var(--serif);font-size:20px;font-weight:600;color:var(--black);
  margin-bottom:6px;line-height:1.2;letter-spacing:-.005em;
}
.ty-step-desc{font-family:var(--sans);font-size:13.5px;color:var(--text);line-height:1.75}
.ty-help{
  margin:0 24px 28px;padding:24px 22px;background:var(--off-white);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  display:flex;flex-direction:column;gap:16px;
}
@media(min-width:600px){.ty-help{flex-direction:row;align-items:center;justify-content:space-between}}
.ty-help-eyebrow{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mid);font-weight:500;margin-bottom:6px;
}
.ty-help-line{font-family:var(--sans);font-size:13px;color:var(--text);line-height:1.5}
.ty-help-btn{
  display:inline-flex;align-items:center;
  padding:12px 18px;background:var(--black);color:var(--white);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;border-radius:var(--radius-sm);text-decoration:none;
  transition:background .15s;white-space:nowrap;align-self:flex-start;
}
.ty-help-btn:hover{background:var(--black);color:var(--black)}
.ty-cta-row{
  padding:8px 24px 48px;display:flex;flex-direction:column;gap:10px;
}
.ty-cta-primary{
  width:100%;padding:18px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;cursor:pointer;transition:background .2s,letter-spacing .2s;
  min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:10px;
}
.ty-cta-primary:hover{background:#1a1a1a;letter-spacing:.06em}
.ty-cta-secondary{
  width:100%;padding:16px;background:transparent;color:var(--black);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;cursor:pointer;transition:border-color .15s;
}
.ty-cta-secondary:hover{border-color:var(--black)}

/* ─── POST-PURCHASE MODAL & ANCILLARY ─── */
/* ─── POST-PURCHASE ACCOUNT PROMPT MODAL ─── */
.pp-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);
  z-index:5000;display:flex;align-items:flex-end;justify-content:center;
  padding:0;opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.pp-modal-overlay.open{opacity:1;pointer-events:all}
.pp-modal{
  background:var(--white);width:100%;max-width:480px;
  border-radius:var(--radius) var(--radius) 0 0;
  padding:28px 24px 36px;
  transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
  position:relative;
}
.pp-modal-overlay.open .pp-modal{transform:translateY(0)}
.pp-modal-handle{
  width:36px;height:4px;border-radius:2px;background:var(--border);
  margin:0 auto 20px;
}
.pp-modal-dismiss{
  position:absolute;top:16px;right:16px;
  font-size:20px;color:var(--mid);background:none;border:none;cursor:pointer;
  line-height:1;padding:4px;
}
.pp-modal-title{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:22px;font-weight:400;color:var(--black);margin-bottom:6px;
}
.pp-modal-sub{font-size:13px;color:var(--mid);line-height:1.7;margin-bottom:20px}
.pp-modal-badge{
  display:inline-block;background:#F0F7F0;color:#2d6a2d;
  font-size:11px;font-weight:500;padding:5px 12px;border-radius:20px;
  margin-bottom:16px;letter-spacing:.02em;
}
.pp-modal-field{margin-bottom:12px}
.pp-modal-label{
  font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;
  color:var(--mid);display:block;margin-bottom:5px;
}
.pp-modal-inp{
  width:100%;padding:12px 14px;border:1px solid var(--border);
  border-radius:var(--radius-sm);font-size:14px;font-family:var(--sans);
  outline:none;background:var(--off-white);transition:border-color .2s;
}
.pp-modal-inp:focus{border-color:var(--black);background:var(--white)}
.pp-modal-inp[readonly]{color:var(--mid);cursor:default}
.pp-modal-btn{
  width:100%;padding:14px;background:var(--black);color:var(--white);
  border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:400;
  cursor:pointer;font-family:var(--sans);transition:background .2s;
  margin-bottom:10px;
}
.pp-modal-btn:hover{background:#333}
.pp-modal-skip{
  width:100%;padding:10px;background:transparent;color:var(--mid);
  border:none;font-size:13px;cursor:pointer;font-family:var(--sans);
  transition:color .15s;
}
.pp-modal-skip:hover{color:var(--black)}
@media(min-width:520px){
  .pp-modal-overlay{align-items:center}
  .pp-modal{border-radius:var(--radius);transform:translateY(20px) scale(.97)}
  .pp-modal-overlay.open .pp-modal{transform:translateY(0) scale(1)}
}
/* ─── DISCOUNT CODE REVEAL ─── */
.discount-box{
  background:var(--off-white);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:16px;margin:16px 0;
}
.discount-code{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:26px;color:var(--black);letter-spacing:.08em;
  text-align:center;padding:12px 0 4px;
}
.discount-label{
  font-size:11px;color:var(--mid);text-align:center;
  font-weight:500;letter-spacing:.05em;text-transform:uppercase;
}
.discount-copy-btn{
  width:100%;margin-top:10px;padding:10px;background:var(--black);
  color:var(--white);border:none;border-radius:var(--radius-sm);
  font-size:12px;font-weight:400;cursor:pointer;font-family:var(--sans);
  transition:background .15s;
}
.discount-copy-btn:hover{background:#333}

/* =========================================================================
   WOOCOMMERCE SELECTOR MAPPING
   Maps Woo's default markup to GLUUM design tokens without overriding
   class names underwriters expect to see (.woocommerce, .product, .cart, etc).
   ========================================================================= */

/* --- Woo notices / messages --- */
.woocommerce-notices-wrapper{margin:0 0 24px}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  background:var(--off-white);border:1px solid var(--border);
  border-left:3px solid var(--black);
  padding:14px 18px;font-size:13px;color:var(--black);
  border-radius:var(--radius-sm);list-style:none;
  font-family:var(--sans);
}
.woocommerce-error{border-left-color:#c0392b}
.woocommerce-message a,.woocommerce-info a{color:var(--black);text-decoration:underline}

/* --- Woo product loop (shop archive) styled as .shop-card --- */
.woocommerce ul.products{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:24px;list-style:none;padding:0;margin:0;
}
.woocommerce ul.products li.product{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
  cursor:pointer;display:flex;flex-direction:column;margin:0;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.woocommerce ul.products li.product .woocommerce-loop-product__link{
  display:block;color:inherit;
}
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  background:#F2F2F2;margin:0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--serif);font-size:20px;font-weight:600;
  padding:18px 18px 4px;line-height:1.2;color:var(--black);
}
.woocommerce ul.products li.product .product-dose{
  padding:0 18px;font-size:12px;color:var(--mid);
  font-family:var(--sans);letter-spacing:.02em;
}
.woocommerce ul.products li.product .price{
  padding:8px 18px 0;font-family:var(--serif);
  font-size:22px;font-weight:700;color:var(--black);
}
.woocommerce ul.products li.product .price ins{
  background:none;text-decoration:none;
}
.woocommerce ul.products li.product .price del{
  color:var(--mid);font-size:16px;margin-right:6px;
}
.woocommerce ul.products li.product .product-coa{
  padding:6px 18px 14px;font-size:11px;color:var(--mid);
  letter-spacing:.04em;text-transform:uppercase;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button{
  display:block;margin:0 18px 18px;padding:12px 16px;
  background:var(--black);color:var(--white);
  font-family:var(--sans);font-size:13px;font-weight:500;
  letter-spacing:.02em;text-align:center;
  border:none;border-radius:var(--radius-sm);cursor:pointer;
  transition:background .2s ease;text-decoration:none;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover{background:#000}
.woocommerce ul.products li.product .added_to_cart{display:none}

/* --- Single product page --- */
.woocommerce div.product{
  max-width:1280px;margin:0 auto;padding:40px 24px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;
}
.woocommerce div.product .product_title{
  font-family:var(--serif);font-size:42px;font-weight:700;
  line-height:1.1;margin:0 0 12px;color:var(--black);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-family:var(--serif);font-size:32px;font-weight:700;
  color:var(--black);margin:0 0 20px;
}
.woocommerce div.product .woocommerce-product-details__short-description{
  font-family:var(--sans);font-size:15px;line-height:1.7;
  color:var(--black);margin:0 0 28px;
}
.woocommerce div.product form.cart{margin:24px 0;display:flex;gap:12px;align-items:stretch}
.woocommerce div.product form.cart .quantity input.qty{
  width:64px;height:48px;text-align:center;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:14px;background:var(--white);
}
.woocommerce div.product form.cart .single_add_to_cart_button{
  background:var(--black);color:var(--white);
  padding:0 28px;height:48px;border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:14px;font-weight:500;
  letter-spacing:.02em;border:none;cursor:pointer;flex:1;
  text-transform:none;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover{background:#000}
.woocommerce div.product .woocommerce-tabs{grid-column:1/-1;margin-top:60px}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  border:none;border-bottom:1px solid var(--border);
  padding:0;margin:0;list-style:none;display:flex;gap:32px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none;border:none;border-radius:0;
  padding:0;margin:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:before,
.woocommerce div.product .woocommerce-tabs ul.tabs li:after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:16px 0;font-family:var(--sans);font-size:13px;
  font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:var(--mid);border-bottom:2px solid transparent;
  margin-bottom:-1px;display:block;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{
  color:var(--black);border-bottom-color:var(--black);
}
.woocommerce div.product .woocommerce-tabs .panel{
  padding:32px 0;font-family:var(--sans);font-size:15px;
  line-height:1.7;color:var(--black);
}
.woocommerce div.product .woocommerce-tabs .panel h2{display:none}

/* --- Product gallery --- */
.woocommerce div.product .woocommerce-product-gallery{
  background:#F2F2F2;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
}
.woocommerce div.product .woocommerce-product-gallery img{
  width:100%;height:auto;
}

/* --- Cart page (when full cart used as fallback) --- */
.woocommerce-cart .woocommerce{max-width:1100px;margin:40px auto;padding:0 24px}
.woocommerce-cart table.cart{
  width:100%;border-collapse:collapse;
  font-family:var(--sans);font-size:14px;
}
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td{
  padding:18px 12px;border-bottom:1px solid var(--border);
  text-align:left;vertical-align:middle;
}
.woocommerce-cart table.cart th{
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mid);font-weight:500;
}
.woocommerce-cart table.cart .product-thumbnail img{
  width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);
}
.woocommerce-cart table.cart .product-name a{
  color:var(--black);font-family:var(--serif);font-size:18px;font-weight:600;
}
.woocommerce-cart .cart_totals{
  margin-top:40px;padding:28px;background:var(--off-white);
  border-radius:var(--radius);
}
.woocommerce-cart .cart_totals h2{
  font-family:var(--serif);font-size:22px;font-weight:700;
  margin:0 0 18px;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{
  display:block;width:100%;padding:16px;
  background:var(--black);color:var(--white);
  font-family:var(--sans);font-size:14px;font-weight:500;
  letter-spacing:.02em;text-align:center;text-decoration:none;
  border-radius:var(--radius-sm);
}

/* --- CHECKOUT (one-page) --- */
.woocommerce-checkout .woocommerce{
  max-width:1180px;margin:24px auto 60px;padding:0 24px;
}
.woocommerce-checkout form.checkout{
  display:grid;grid-template-columns:1.4fr 1fr;gap:48px;
  align-items:start;
}
.woocommerce-checkout #customer_details{padding:0}
.woocommerce-checkout h3{
  font-family:var(--serif);font-size:24px;font-weight:700;
  margin:0 0 18px;color:var(--black);
}
.woocommerce-checkout h3#order_review_heading{display:none}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  margin-bottom:32px;
}
.woocommerce form .form-row{
  display:flex;flex-direction:column;margin:0 0 16px;
}
.woocommerce form .form-row label{
  font-family:var(--sans);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--mid);font-weight:500;
  margin-bottom:6px;
}
.woocommerce form .form-row label .required{color:var(--black);text-decoration:none}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row .select2-selection,
.woocommerce form .form-row select{
  width:100%;padding:12px 14px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:14px;background:var(--white);
  color:var(--black);transition:border-color .15s ease;
  min-height:44px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:none;border-color:var(--black);
}
.woocommerce-checkout #order_review{
  background:var(--off-white);padding:28px;border-radius:var(--radius);
  position:sticky;top:80px;
}
.woocommerce-checkout #order_review table.shop_table{
  width:100%;border-collapse:collapse;
  font-family:var(--sans);font-size:13px;
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{
  padding:10px 0;border-bottom:1px solid var(--border);
  text-align:left;
}
.woocommerce-checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout #order_review table.shop_table tfoot td{
  font-weight:500;
}
.woocommerce-checkout #order_review table.shop_table .order-total .amount{
  font-family:var(--serif);font-size:22px;font-weight:700;
}
.woocommerce-checkout #payment{
  background:none;padding:0;margin-top:18px;
}
.woocommerce-checkout #payment ul.payment_methods{
  list-style:none;padding:0;margin:0 0 18px;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--white);
}
.woocommerce-checkout #payment ul.payment_methods li{
  padding:14px 16px;border-bottom:1px solid var(--border);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child{border-bottom:none}
.woocommerce-checkout #payment ul.payment_methods li label{
  font-family:var(--sans);font-size:14px;color:var(--black);
  display:inline;margin-left:8px;text-transform:none;letter-spacing:0;
}
.woocommerce-checkout #payment .payment_box{
  background:var(--off-white);padding:14px 16px;margin-top:10px;
  border-radius:var(--radius-sm);font-size:13px;
}
.woocommerce-checkout #place_order{
  width:100%;padding:18px;background:var(--black);color:var(--white);
  font-family:var(--sans);font-size:14px;font-weight:500;
  letter-spacing:.04em;border:none;border-radius:var(--radius-sm);
  cursor:pointer;text-transform:uppercase;
}
.woocommerce-checkout #place_order:hover{background:#000}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
  margin:18px 0;font-size:13px;
}

/* --- My Account --- */
.woocommerce-account .woocommerce{
  max-width:1100px;margin:40px auto;padding:0 24px;
  display:grid;grid-template-columns:240px 1fr;gap:40px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style:none;padding:0;margin:0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li{
  border-bottom:1px solid var(--border);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a{
  display:block;padding:14px 0;font-family:var(--sans);
  font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--mid);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{
  color:var(--black);font-weight:500;
}

/* --- Login/register forms --- */
.woocommerce-account:not(.logged-in) .woocommerce{
  display:block;max-width:480px;
}
.woocommerce-form-login,
.woocommerce-form-register{
  padding:28px;background:var(--off-white);border-radius:var(--radius);
}

/* Hide WooCommerce's default breadcrumb (we render our own) */
.woocommerce-breadcrumb{display:none}

/* Hide quantity on simple add-to-cart (loop) since we use qty in drawer */
.woocommerce ul.products li.product .quantity{display:none}

/* --- Responsive --- */
@media (max-width:900px){
  .woocommerce div.product,
  .woocommerce-checkout form.checkout,
  .woocommerce-account .woocommerce{
    grid-template-columns:1fr;gap:32px;
  }
  .woocommerce-checkout #order_review{position:static}
  .woocommerce ul.products{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
  .woocommerce div.product .product_title{font-size:32px}
}

/* --- Research gate modal (entry) --- */
.research-gate-overlay{
  position:fixed;inset:0;z-index:10000;
  background:rgba(255,255,255,.98);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.research-gate-overlay.hidden{display:none}
.research-gate{
  max-width:520px;width:100%;background:var(--white);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:40px 32px;text-align:center;
}
.research-gate-wordmark{
  font-family:var(--serif);font-size:32px;font-weight:600;
  color:var(--black);margin:0 0 8px;letter-spacing:-.01em;
}
.research-gate-tag{
  font-family:var(--sans);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--mid);margin:0 0 28px;
}
.research-gate h2{
  font-family:var(--serif);font-size:22px;font-weight:600;
  color:var(--black);margin:0 0 14px;line-height:1.3;
}
.research-gate p{
  font-family:var(--sans);font-size:13px;line-height:1.6;
  color:var(--mid);margin:0 0 24px;
}
.research-gate-actions{display:flex;gap:12px;flex-direction:column}
.research-gate-accept{
  padding:14px 24px;background:var(--black);color:var(--white);
  font-family:var(--sans);font-size:13px;font-weight:500;
  letter-spacing:.04em;text-transform:uppercase;
  border:none;border-radius:var(--radius-sm);cursor:pointer;
}
.research-gate-decline{
  padding:14px 24px;background:none;color:var(--mid);
  font-family:var(--sans);font-size:12px;
  border:none;cursor:pointer;
}

/* ─── Fix: hide menu drawer by default ─── */
.menu-overlay{position:fixed!important;inset:0;background:rgba(0,0,0,.4);z-index:999;opacity:0!important;pointer-events:none!important;transition:opacity .3s ease}
.menu-overlay.open{opacity:1!important;pointer-events:all!important}
.menu-drawer{position:fixed!important;top:0;left:0;width:320px;max-width:85vw;height:100vh;background:#fff;z-index:1000;transform:translateX(-100%)!important;transition:transform .3s ease;padding:32px 24px;overflow-y:auto}
.menu-drawer.open{transform:translateX(0)!important}
.menu-close{position:absolute;top:16px;right:16px;font-size:28px;background:none;border:none;cursor:pointer;color:#111}
.menu-wordmark{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:24px}
.menu-list{list-style:none!important;padding:0!important;margin:0!important}
.menu-list li{border-bottom:1px solid var(--border);list-style:none!important}
.menu-list li a{display:block;padding:14px 0;font-family:var(--sans);font-size:14px;color:var(--black);text-decoration:none}
/* ─── Fix: WooCommerce product grids ─── */

/* Clear WooCommerce float-based layout */
.woocommerce ul.products::after,.woocommerce-page ul.products::after,.feat-section ul.products::after{content:'';display:table;clear:both}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.feat-section ul.products li.product{float:none!important;width:auto!important;margin-right:0!important;margin-bottom:0!important}

/* Homepage featured products — 2 col mobile, 4 col ≥600px */
.feat-section ul.products{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:16px!important;list-style:none!important;padding:0!important;margin:0!important}
@media(min-width:600px){.feat-section ul.products{grid-template-columns:repeat(4,1fr)!important}}

/* Shop / catalog archive — 2 col mobile, 3 col ≥600px, 4 col ≥900px */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:16px!important;list-style:none!important;padding:0!important;margin:0!important}
@media(min-width:600px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(3,1fr)!important}}
@media(min-width:900px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(4,1fr)!important}}

/* Product card base */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.feat-section ul.products li.product{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;display:flex!important;flex-direction:column;list-style:none!important}

/* SVG vial placeholder — constrain height on mobile, 3:4 portrait ratio */
.woocommerce ul.products li.product svg,.woocommerce-page ul.products li.product svg,.feat-section ul.products li.product svg{width:100%;height:auto;display:block;aspect-ratio:3/4;max-height:200px;object-fit:contain}
@media(min-width:600px){.woocommerce ul.products li.product svg,.woocommerce-page ul.products li.product svg,.feat-section ul.products li.product svg{max-height:260px}}

/* Product thumbnail images */
.woocommerce ul.products li.product a img,.woocommerce-page ul.products li.product a img,.feat-section ul.products li.product a img{width:100%;height:auto;display:block;aspect-ratio:3/4;object-fit:cover;max-height:200px}
@media(min-width:600px){.woocommerce ul.products li.product a img,.woocommerce-page ul.products li.product a img,.feat-section ul.products li.product a img{max-height:260px}}
/* Product grid override — 2 col mobile, 3 col >=768px, 4 col >=1024px; overrides WC float/width */
ul.products{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:16px!important;list-style:none!important;padding:0!important;margin:0!important}
ul.products li.product{float:none!important;width:auto!important;margin:0!important;display:flex!important;flex-direction:column!important}
@media(min-width:768px){ul.products{grid-template-columns:repeat(3,1fr)!important}}
@media(min-width:1024px){ul.products{grid-template-columns:repeat(4,1fr)!important}}
ul.products li.product svg{max-height:180px!important;width:auto!important;margin:0 auto!important}

/* Search overlay + drawer */
.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:999;opacity:0;pointer-events:none;transition:opacity .25s ease}
.search-overlay.open{opacity:1;pointer-events:all}
.search-drawer{position:fixed;top:0;left:0;right:0;background:#fff;z-index:1000;padding:24px;transform:translateY(-100%);transition:transform .3s ease;border-bottom:1px solid var(--border)}
.search-drawer.open{transform:translateY(0)}
.search-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--black);line-height:1;padding:4px}
.search-form{display:flex;align-items:center;gap:12px;max-width:640px;margin:0 auto;padding-top:12px}
.search-inp{flex:1;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--sans);font-size:15px;background:var(--white);outline:none}
.search-inp:focus{border-color:var(--black)}
.search-submit{background:none;border:none;cursor:pointer;padding:8px;color:var(--black);display:flex;align-items:center}
.search-submit svg{width:20px;height:20px}
