/* ==============================================================
   HERITAGE LABS USA — v5 "Heritage Modern"
   GLPeptides-caliber execution: light, calm, rounded, trustworthy.
   Poppins headings · Inter body · navy pills · red reserved accents
   ============================================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  /* canvas + surfaces */
  --bg:        #FFFFFF;    /* white canvas (original) */
  --bg-2:      #F4F6FA;    /* tint sections */
  --card:      #FFFFFF;
  --card-hi:   #F8F9FC;
  --tile:      #EEF1F7;    /* product image areas */
  --hairline:  #E8EBF2;
  --hairline-2:#D8DDE9;

  /* brand */
  --navy:      #1A2C83;    /* heritage label navy — primary */
  --navy-deep: #14226A;
  --navy-ink:  #0D1126;    /* headings */
  --red:       #D32F2D;    /* reserved accent */
  --red-deep:  #B9251F;

  /* text */
  --t1: #0D1126;
  --t2: #3E455C;
  --t3: #6C7389;
  --stock: #1E9E5A;

  --head: 'Poppins', 'Segoe UI', sans-serif;
  --body: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --display: var(--head); --mono: var(--body);

  --maxw: 1240px;
  --pad: clamp(16px, 4vw, 40px);
  --r: 16px; --r-sm: 10px; --r-lg: 22px; --pill: 999px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow-1: 0 1px 2px rgba(13,17,38,.05), 0 4px 14px rgba(13,17,38,.05);
  --shadow-2: 0 10px 32px rgba(13,17,38,.1);
  --ring: 0 0 0 3px rgba(26,44,131,.22);
  --glow-text: none;

  /* legacy aliases so existing page styles resolve into v5 */
  --white:#fff; --light:var(--bg-2); --text:var(--t2); --text-2:var(--t3);
  --on-dark:#fff; --on-dark-2:rgba(255,255,255,.82); --on-dark-3:rgba(255,255,255,.6);
  --line:var(--hairline); --line-2:var(--hairline-2); --glass-line:var(--hairline-2);
  --paper:var(--card); --paper-2:var(--bg-2); --ink:var(--navy-ink); --ink-1:var(--t1); --ink-2:var(--t2); --ink-3:var(--t3);
  --royal:var(--navy); --royal-hi:#3D55C9; --red-hi:var(--red-deep);
  --navy-700:var(--navy-deep); --mist:var(--bg-2); --cloud:var(--tile);
  --rule:var(--hairline-2); --rule-soft:var(--hairline); --rule-faint:var(--hairline); --rule-dark:rgba(255,255,255,.16);
  --radius:var(--r); --radius-sm:var(--r-sm);
  --grad-red:none; --grad-red-pill:none; --grad-royal:none; --grad-glass:none;
  --shadow-red:none; --shadow-royal:none; --shadow-glass:var(--shadow-1);
  --shadow-sm:var(--shadow-1); --shadow-md:var(--shadow-1); --shadow-lg:var(--shadow-2); --shadow-card:var(--shadow-1);
  --red-700:var(--red-deep); --red-900:#8C1A16; --red-lo:var(--red-deep); --star:var(--hairline-2);
  --ink-soft:var(--bg-2); --ink-80:var(--card-hi); --bg-old:#0A0E1C;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:80px; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--t2);
  font-family:var(--body); font-size:15.5px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{ outline:2px solid var(--navy); outline-offset:2px; border-radius:6px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; } }
h1,h2,h3,h4{ font-family:var(--head); color:var(--t1); margin:0; line-height:1.14; font-weight:700; letter-spacing:-.01em; text-transform:none; }
p{ margin:0 0 1em; }
::selection{ background:var(--navy); color:#fff; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }
.center{ text-align:center; }
.muted{ color:var(--t3); }
.hide{ display:none !important; }

/* eyebrow — small caps, red, quiet */
.eyebrow{
  font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:2.4px;
  text-transform:uppercase; color:var(--red); display:inline-block;
}

/* ============ Buttons — pills ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--body); font-weight:600; text-transform:none;
  letter-spacing:0; font-size:14.5px; line-height:1;
  padding:13px 24px; border:1.5px solid transparent; border-radius:var(--pill);
  transition:transform .15s var(--ease), background .15s, border-color .15s, color .15s, box-shadow .15s;
  white-space:nowrap; color:#fff; background:var(--navy);
}
.btn:active{ transform:translateY(1px); }
.btn-red{ background:var(--red); box-shadow:0 5px 13px -4px rgba(211,47,45,.5); }               /* RWB: red = action */
.btn-red:hover{ background:var(--red-deep); transform:translateY(-1px); box-shadow:0 8px 17px -4px rgba(211,47,45,.62); }
.btn-navy{ background:var(--navy); }
.btn-navy:hover{ background:var(--navy-deep); transform:translateY(-1px); box-shadow:var(--shadow-2); }
.btn-accent{ background:var(--red); box-shadow:0 5px 13px -4px rgba(211,47,45,.5); }
.btn-accent:hover{ background:var(--red-deep); transform:translateY(-1px); box-shadow:0 8px 17px -4px rgba(211,47,45,.62); }
.btn-ghost{ background:#fff; color:var(--t1); border-color:var(--hairline-2); }
.btn-ghost:hover{ border-color:var(--navy); color:var(--navy); }
.btn-ghost.on-light{ background:#fff; color:var(--t1); border-color:var(--hairline-2); }
.btn-ghost.on-light:hover{ border-color:var(--navy); color:var(--navy); }
.btn-ghost.on-dark{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.35); }
.btn-ghost.on-dark:hover{ background:rgba(255,255,255,.2); }
.btn-lg{ padding:15px 30px; font-size:15.5px; }
.btn-sm{ padding:9px 16px; font-size:13px; }
.btn-block{ width:100%; }

/* ============ RWB flag ribbon ============ */
.rwb-bar{ height:4px; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); border-bottom:1px solid var(--hairline); }
.eyebrow{ display:inline-flex; align-items:center; gap:9px; }
/* real miniature US flag: red/white stripes + navy canton with a star field */
.eyebrow::before{ content:""; width:22px; height:14px; border-radius:1.5px; flex:0 0 auto;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14'%3E%3Crect width='22' height='14' fill='%23ffffff'/%3E%3Cg fill='%23D32F2D'%3E%3Crect width='22' height='2' y='0'/%3E%3Crect width='22' height='2' y='4'/%3E%3Crect width='22' height='2' y='8'/%3E%3Crect width='22' height='2' y='12'/%3E%3C/g%3E%3Crect width='9' height='8' fill='%231A2C83'/%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='2.2' cy='2' r='.85'/%3E%3Ccircle cx='4.5' cy='2' r='.85'/%3E%3Ccircle cx='6.8' cy='2' r='.85'/%3E%3Ccircle cx='3.3' cy='4' r='.85'/%3E%3Ccircle cx='5.6' cy='4' r='.85'/%3E%3Ccircle cx='2.2' cy='6' r='.85'/%3E%3Ccircle cx='4.5' cy='6' r='.85'/%3E%3Ccircle cx='6.8' cy='6' r='.85'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat;
  box-shadow:0 0 0 1px rgba(120,132,168,.55); }

/* ============ Chrome: minimal header ============ */
.util,.pills,.nav{ display:none; }
.announce{ display:none; }

.hdr{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline); box-shadow:none;
}
.hdr-main{ display:flex; align-items:center; gap:10px; min-height:66px; }
.brand{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.brand img{ height:42px; width:auto; filter:none; }
.brand .vet-tag{ display:none; }
.hdr-nav{ display:flex; align-items:center; gap:4px; flex:1; justify-content:center; }
.hdr-nav a.navlink{
  display:inline-flex; align-items:center; gap:6px; padding:6px 11px; border-radius:9px; white-space:nowrap;
  color:var(--t2); font-family:var(--body); text-transform:none; letter-spacing:0;
  font-weight:600; font-size:14.5px; position:relative; transition:color .14s, background .14s;
}
.hdr-nav a.navlink:hover{ color:var(--t1); background:var(--bg-2); }
.hdr-nav a.navlink.active{ color:var(--navy); background:#EDF0FA; box-shadow:none; }
.hdr-actions{ display:flex; align-items:center; gap:2px; flex:0 0 auto; }
.icon-btn{
  position:relative; height:40px; min-width:40px; padding:0 9px; border:none; background:transparent;
  color:var(--t2); display:inline-flex; align-items:center; gap:8px; border-radius:var(--pill);
  font-family:var(--body); font-weight:600; font-size:13px; transition:.14s;
}
.icon-btn:hover{ color:var(--t1); background:var(--bg-2); }
/* persistent header search bar (desktop) */
.hdr-search{
  display:flex; align-items:center; gap:9px; flex:0 1 190px; min-width:126px;
  height:41px; padding:0 16px; background:var(--bg-2);
  border:1.5px solid var(--hairline-2); border-radius:var(--pill);
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.hdr-search:focus-within{ border-color:var(--navy); box-shadow:var(--ring); background:#fff; }
.hdr-search svg{ width:16px; height:16px; color:var(--t3); flex:0 0 auto; }
.hdr-search input{
  border:none; background:transparent; flex:1; min-width:0;
  font-family:var(--body); font-size:13.5px; color:var(--t1); padding:0;
}
.hdr-search input::placeholder{ color:var(--t3); }
.hdr-search input:focus{ outline:none; }
.search-toggle{ display:none; }
@media(max-width:1460px){
  .hdr-nav a.navlink{ padding:6px 9px; font-size:13.5px; }
  .hdr-search{ flex:0 1 170px; min-width:118px; }
}
@media(max-width:1279px){ .hdr-search{ display:none; } .search-toggle{ display:inline-flex; }
  .hdr-nav a.navlink{ padding:6px 9px; font-size:13px; } }
.verify-pill{
  display:inline-flex; align-items:center; margin-left:8px; padding:9px 18px; border-radius:var(--pill);
  border:1.5px solid rgba(211,47,45,.4); color:var(--red); font-weight:700; font-size:13.5px; transition:.14s;
}
.verify-pill:hover{ border-color:var(--red); background:#FDEEED; }
.cart-count{
  position:absolute; top:0; right:0; background:var(--red); color:#fff;
  font-size:10px; font-weight:700; min-width:16px; height:16px; border-radius:8px;
  display:grid; place-items:center; padding:0 4px; line-height:1;
}
.burger{ display:none; }
.has-menu{ position:relative; }
.has-menu > .navlink .chev{ transition:transform .15s; }
.has-menu:hover > .navlink .chev{ transform:rotate(180deg); }
.menu{
  position:absolute; top:100%; left:50%; transform:translate(-50%,8px); min-width:256px;
  background:#fff; border:1px solid var(--hairline); border-radius:14px;
  box-shadow:var(--shadow-2); padding:6px; opacity:0; visibility:hidden;
  transition:.15s var(--ease); z-index:70;
}
.has-menu:hover .menu{ opacity:1; visibility:visible; transform:translate(-50%,4px); }
.menu a{ display:block; padding:10px 13px; border-radius:10px; color:var(--t2); font-size:14px; }
.menu a:hover{ background:var(--bg-2); color:var(--t1); }
.menu a b{ display:block; font-family:var(--body); font-weight:600; color:var(--t1); font-size:14px; letter-spacing:0; text-transform:none; }
.menu a span{ font-size:12.5px; color:var(--t3); }
.search-row{ border-top:1px solid var(--hairline); background:#fff; display:none; }
.search-row.on{ display:block; }
.search{ position:relative; max-width:620px; margin:0 auto; padding:12px var(--pad); }
.search input{
  width:100%; height:46px; border:1.5px solid var(--hairline-2); border-radius:var(--pill); background:#fff;
  padding:0 54px 0 20px; font-family:var(--body); font-size:16px; color:var(--t1);
}
.search input::placeholder{ color:var(--t3); }
.search input:focus{ outline:none; border-color:var(--navy); box-shadow:var(--ring); }
.search .go{
  position:absolute; right:calc(var(--pad) + 5px); top:16px; height:38px; width:38px; border:none; border-radius:50%;
  background:var(--navy); color:#fff; display:grid; place-items:center;
}
.search .go:hover{ background:var(--navy-deep); }

/* ============ Sections ============ */
section{ position:relative; }
.sec{ padding:clamp(40px,5vw,68px) 0; }
.sec-tight{ padding:clamp(26px,3.4vw,44px) 0; }
.sec.dark{ background:transparent; color:var(--t2); }
.sec.dark h1,.sec.dark h2,.sec.dark h3{ color:var(--t1); text-shadow:none; }
.sec.dark .sec-head p{ color:var(--t3); }
.sec.mist{ background:var(--bg-2); }
.sec.warm{ background:#F3F3F3; }
.sec-head{ margin:0 0 clamp(20px,2.6vw,32px); text-align:left; max-width:none; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.sec-head > div{ max-width:640px; }
.sec-head h2{ font-size:clamp(24px,2.8vw,32px); margin:.24em 0 .25em; }
.sec-head p{ font-size:14.5px; color:var(--t3); margin:0; }
.sec-head .idx{ display:none; }
.sec-head .view-all{
  display:inline-flex; align-items:center; gap:7px; padding:10px 20px; border-radius:var(--pill);
  background:var(--navy); color:#fff; font-weight:600; font-size:13.5px; border-bottom:none; white-space:nowrap;
  transition:.14s;
}
.sec-head .view-all:hover{ background:var(--navy-deep); color:#fff; }
.sec-head.center{ display:block; text-align:center; max-width:660px; margin:0 auto clamp(22px,3vw,34px); }
.sec-head.center p{ margin:.5em auto 0; }

/* ============ Hero — rounded image card ============ */
.panel{
  position:relative; color:#fff; overflow:hidden; isolation:isolate;
  display:flex; align-items:center; min-height:clamp(400px,52vh,540px);
  border-radius:var(--r-lg); margin-inline:auto; max-width:calc(var(--maxw) - 0px);
}
.hero-shell{ padding:18px var(--pad) 0; max-width:calc(var(--maxw) + 2*var(--pad)); margin:0 auto; }
.panel.hero-xl{ min-height:clamp(460px,60vh,600px); }
.panel .bg{ position:absolute; inset:0; z-index:-2; }
.panel .bg img{ width:100%; height:100%; object-fit:cover; }
.panel .scrim{ position:absolute; inset:0; z-index:-1; opacity:1; visibility:visible;
  background:linear-gradient(90deg, rgba(7,10,24,.82) 0%, rgba(7,10,24,.55) 40%, rgba(7,10,24,.18) 75%, rgba(7,10,24,.1) 100%); }
.panel.flip .scrim{ background:linear-gradient(270deg, rgba(7,10,24,.82) 0%, rgba(7,10,24,.55) 40%, rgba(7,10,24,.18) 75%, rgba(7,10,24,.1) 100%); }
.panel::after{ content:none; }
.hero-shell .panel::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:6px; z-index:1; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); }
.panel .wrap{ width:100%; padding-inline:clamp(22px,3.4vw,48px); }
.panel h1{ font-family:var(--head); font-size:clamp(34px,4.6vw,58px); color:#fff; letter-spacing:-.015em; margin:.18em 0 .22em; line-height:1.06; text-transform:none; }
.panel h2{ font-family:var(--head); font-size:clamp(26px,3.2vw,40px); color:#fff; letter-spacing:-.01em; margin:.18em 0 .22em; text-transform:none; }
.panel .sub{ font-size:15.5px; color:rgba(255,255,255,.85); margin-bottom:18px; max-width:460px; }
.panel .eyebrow{ color:#FF8A85; }
.panel .cta-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }

/* ============ Trust strip → clean cards row ============ */
.trust-strip{ background:transparent; border:none; padding:0; }
.trust-strip .wrap{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.trust-strip .cell{
  display:flex; align-items:flex-start; gap:12px; padding:18px; color:var(--t2);
  background:#fff; border:1px solid var(--hairline); border-radius:var(--r); box-shadow:var(--shadow-1);
}
.trust-strip .cell:first-child{ padding-left:18px; }
.trust-strip .ico{
  width:38px; height:38px; flex:0 0 auto; border-radius:12px; display:grid; place-items:center;
  background:#FDEEED; border:none; color:var(--red); box-shadow:none;
}
.trust-strip .cell:nth-child(even) .ico{ background:#EDF0FA; color:var(--navy); }
.trust-strip .cell b{ display:block; font-family:var(--body); font-weight:700; font-size:14px; color:var(--t1); letter-spacing:0; text-transform:none; }
.trust-strip .cell span{ font-size:12.5px; color:var(--t3); }
@media(max-width:1020px){ .trust-strip .wrap{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .trust-strip .wrap{ grid-template-columns:1fr; } .trust-strip .cell{ border-bottom:1px solid var(--hairline); } }

/* ============ Page hero (interior) — clean light ============ */
.page-hero{ position:relative; color:var(--t1); overflow:visible; isolation:auto; background:transparent; border:none; }
.page-hero::before, .page-hero::after{ content:none; display:none; }
.page-hero .wrap{ position:relative; padding-top:clamp(22px,3vw,36px); padding-bottom:clamp(6px,1vw,10px); }
.page-hero h1{ color:var(--t1); font-size:clamp(28px,3.6vw,42px); letter-spacing:-.015em; text-shadow:none; text-transform:none; font-family:var(--head); }
.page-hero p{ color:var(--t3); font-size:15px; max-width:640px; margin:10px 0 0; text-shadow:none; }
.page-hero .crumb{ color:var(--t3); padding:0 0 10px !important; }

.crumb{ font-size:13px; color:var(--t3); padding:14px 0; }
.crumb a:hover{ color:var(--navy); }
.crumb .sep{ margin:0 7px; color:var(--hairline-2); }

/* ============ Product cards — GLP style ============ */
.prod-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(235px,1fr)); gap:16px; border:none; }
.prod-grid.cols-4{ grid-template-columns:repeat(4,1fr); }
.prod-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.card{
  position:relative; background:#fff; border:1px solid var(--hairline); border-radius:var(--r);
  overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow-1);
  transition:transform .18s var(--ease), box-shadow .18s, border-color .18s; padding:10px;
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-2); border-color:var(--hairline-2); background:#fff; }
.card .thumb{ position:relative; aspect-ratio:1/.92; background:var(--tile); overflow:hidden; display:block; border-radius:calc(var(--r) - 6px); }
.card .thumb img{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  max-width:calc(100% - 60px); max-height:calc(100% - 30px); width:auto; height:auto;
  filter:drop-shadow(0 12px 18px rgba(13,17,38,.16));
  transition:transform .28s var(--ease);
}
.card:hover .thumb img{ transform:translate(-50%,-52%) scale(1.04); }
.tag{
  position:absolute; top:10px; left:10px; z-index:2; font-family:var(--body); text-transform:none;
  letter-spacing:0; font-size:11px; font-weight:700; padding:5px 11px; color:#fff; border-radius:var(--pill);
  background:var(--navy); box-shadow:none;
}
.tag.sellers{ background:var(--navy); }
.tag.deal{ background:var(--navy); }
.tag.new{ background:var(--stock); }
.tag.glp{ background:var(--navy); }
.card .body{ padding:12px 8px 8px; display:flex; flex-direction:column; flex:1; border:none; }
.card .cat{ font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:var(--t3); font-weight:700; margin-bottom:3px; }
.card .name{ position:relative; display:inline-block; align-self:flex-start; font-family:var(--body); text-transform:none; letter-spacing:0; font-size:15px; font-weight:600; color:var(--t1); line-height:1.3; padding-bottom:4px; }
.card .name::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:100%; background:var(--red); border-radius:2px; transform:scaleX(0); transform-origin:left center; transition:transform .30s cubic-bezier(.4,0,.2,1); }
.card:hover .name::after{ transform:scaleX(1); }
@media(prefers-reduced-motion:reduce){ .card .name::after{ transition:none; } }
.card .blurb{ display:none; }
.card .foot{ margin-top:auto; padding-top:8px; display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.card .price{ font-family:var(--body); font-weight:700; font-size:16.5px; color:var(--navy); }
.card .price .cur{ font-size:13px; color:var(--t3); margin-right:1px; }
.card .stock{ display:none; }
.card .add{
  height:40px; width:100%; border:none; border-radius:var(--pill);
  background:var(--red); color:#fff; display:inline-flex; align-items:center; justify-content:center; gap:7px;
  font-family:var(--body); font-weight:600; font-size:13.5px; box-shadow:0 5px 13px -4px rgba(211,47,45,.5); transition:.16s;
}
.card .add::after{ content:"Add to Cart"; }
.card .add svg{ width:14px; height:14px; }
.card .add:hover{ background:var(--red-deep); box-shadow:0 8px 17px -4px rgba(211,47,45,.62); transform:translateY(-1px); }

/* ============ Split ============ */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(24px,4.4vw,56px); align-items:center; }
.split .media{ border:none; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-2); aspect-ratio:1/1; }
.split h2{ font-size:clamp(24px,2.8vw,32px); margin:.2em 0 .3em; }
.split .media img{ width:100%; height:100%; object-fit:cover; }
@media(max-width:840px){ .split{ grid-template-columns:1fr; } .split .media{ aspect-ratio:4/3; } }

.feat-list{ display:grid; gap:12px; margin-top:22px; border:none; }
.feat{ display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border:1px solid var(--hairline); border-radius:var(--r); background:#fff; box-shadow:var(--shadow-1); }
.sec:not(.dark) .feat{ background:#fff; border:1px solid var(--hairline); }
.feat .ico{
  width:36px; height:36px; flex:0 0 auto; border-radius:11px; display:grid; place-items:center;
  background:#EDF0FA; border:none; color:var(--navy);
  font-family:var(--body); font-weight:700; font-size:12.5px; min-width:36px; padding:0;
}
.sec:not(.dark) .feat .ico{ background:#EDF0FA; border:none; color:var(--navy); }
.feat .ico::before{ content:attr(data-n); }
.feat b{ font-family:var(--body); text-transform:none; letter-spacing:0; font-size:14.5px; color:var(--t1); display:block; margin-bottom:2px; font-weight:700; }
.feat p{ margin:0; font-size:13.5px; color:var(--t3); max-width:520px; }
.sec:not(.dark) .feat b{ color:var(--t1); } .sec:not(.dark) .feat p{ color:var(--t3); }

/* ============ Compare band (navy rounded) ============ */
.compare-band{
  background:linear-gradient(120deg,#131B45 0%, #0E1330 100%), #131B45;
  border-radius:var(--r-lg); color:#fff; overflow:hidden; position:relative;
}
.compare-band::before{ content:""; position:absolute; inset:0; background:linear-gradient(120deg, rgba(19,27,69,.72) 0%, rgba(14,19,48,.82) 100%), url("brand/flag-bg.jpg") left top/150% no-repeat; pointer-events:none; }
.compare-band::after{ content:""; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); }
.compare-band .in{ position:relative; z-index:1; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(24px,4vw,56px); padding:clamp(28px,4vw,52px); align-items:center; }
.compare-band h2{ color:#fff; font-size:clamp(24px,3vw,34px); margin:.2em 0 .3em; }
.compare-band .lead{ color:rgba(255,255,255,.7); font-size:14.5px; max-width:380px; }
.compare-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:8px 18px; }
.compare-row{ display:grid; grid-template-columns:1fr 92px 110px; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.12); font-size:13.5px; color:rgba(255,255,255,.88); }
.compare-row:last-child{ border-bottom:none; }
.compare-row .ok{ display:grid; place-items:center; }
.compare-row .ok i{ width:26px; height:26px; border-radius:50%; background:#2AA968; display:grid; place-items:center; color:#fff; font-style:normal; }
.compare-row .no{ text-align:center; color:rgba(255,255,255,.45); font-size:12px; }
.compare-head{ display:grid; grid-template-columns:1fr 92px 110px; gap:12px; padding:12px 0 4px; font-size:11.5px; letter-spacing:.6px; color:rgba(255,255,255,.55); font-weight:600; }
.compare-head .c1{ text-align:center; background:rgba(255,255,255,.12); border-radius:999px; padding:5px 8px; color:#fff; }
.compare-head .c2{ text-align:center; }
@media(max-width:840px){ .compare-band .in{ grid-template-columns:1fr; } }
@media(max-width:600px){
  .compare-row, .compare-head{ grid-template-columns:1fr 44px 74px; gap:8px; font-size:12.5px; }
  .compare-row .ok i{ width:22px; height:22px; }
  .compare-row .no{ font-size:11px; }
  .compare-head .c1{ padding:4px 4px; font-size:10.5px; }
  .compare-card{ padding:6px 12px; }
}

/* ============ Programs — clean cards ============ */
.programs{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border:none; background:transparent; overflow:visible; border-radius:0; }
.program{
  background:#fff; border:1px solid var(--hairline); border-radius:var(--r); box-shadow:var(--shadow-1);
  padding:28px 24px 26px; display:flex; flex-direction:column; transition:transform .16s var(--ease), box-shadow .16s;
  position:relative; overflow:hidden;
}
.program::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); }
.program:hover{ transform:translateY(-3px); box-shadow:var(--shadow-2); background:#fff; }
.program h3{ font-family:var(--body); text-transform:none; font-size:16.5px; color:var(--t1); letter-spacing:0; font-weight:700; }
.program .off{ font-family:var(--head); color:var(--red); font-weight:700; font-size:22px; letter-spacing:-.01em; margin:8px 0 10px; text-transform:none; line-height:1.1; }
.program p{ font-size:13.5px; color:var(--t3); flex:1; }
.program a{
  margin-top:14px; display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%;
  font-family:var(--body); text-transform:none; letter-spacing:0; font-size:14px; font-weight:600;
  color:#fff; background:var(--navy); border:none; border-radius:var(--pill); padding:12px 18px; box-shadow:none;
}
.program a:hover{ background:var(--navy-deep); color:#fff; }
@media(max-width:860px){ .programs{ grid-template-columns:1fr; } .program{ border-bottom:1px solid var(--hairline); } }

/* ============ Specimen COA ============ */
.specimen{
  background:#fff; border:1px solid var(--hairline); border-radius:var(--r); padding:24px 26px; position:relative;
  color:var(--t2); font-size:13.5px; box-shadow:var(--shadow-2);
}
.specimen .doc-h{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid var(--navy); padding-bottom:12px; margin-bottom:12px; }
.specimen .doc-h b{ font-family:var(--head); font-size:16px; color:var(--t1); letter-spacing:0; text-transform:none; }
.specimen .doc-h span{ font-size:10.5px; letter-spacing:1.6px; color:var(--t3); font-weight:700; }
.specimen .row{ display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--hairline); }
.specimen .row .v{ color:var(--t1); font-weight:600; }
.specimen .stamp{
  position:absolute; right:20px; bottom:40px; transform:rotate(-11deg);
  border:2.5px solid var(--stock); color:var(--stock); font-family:var(--head); text-transform:uppercase;
  font-size:16px; letter-spacing:3px; padding:4px 12px; opacity:.9; border-radius:8px; font-weight:700;
}
.specimen .chrom{ display:flex; align-items:flex-end; gap:3px; height:60px; margin-top:12px; border-bottom:1px solid var(--hairline); padding-bottom:2px; }
.specimen .chrom i{ flex:1; background:rgba(26,44,131,.2); border-radius:2px 2px 0 0; }
.specimen .chrom i.peak{ background:var(--red); }

/* ============ FAQ ============ */
.faq{ max-width:none; margin:0; display:grid; gap:10px; border:none; }
.qa{ background:#fff; border:1px solid var(--hairline); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-1); transition:box-shadow .16s; }
.qa[open]{ box-shadow:var(--shadow-2); }
.qa summary{
  list-style:none; cursor:pointer; padding:16px 20px; display:flex; align-items:center; justify-content:space-between;
  gap:16px; font-family:var(--body); text-transform:none; letter-spacing:0; font-size:15px; color:var(--t1); font-weight:600;
}
.qa summary::-webkit-details-marker{ display:none; }
.qa summary .plus{
  flex:0 0 auto; width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  background:var(--bg-2); border:none; color:var(--navy); font-size:16px; margin-left:auto; line-height:1;
  transition:transform .18s, background .18s, color .18s;
}
.qa[open] summary .plus{ transform:rotate(45deg); background:var(--navy); color:#fff; }
.qa .a{ padding:0 20px 18px; color:var(--t2); font-size:14px; }
.qa .a a{ color:var(--navy); text-decoration:underline; text-underline-offset:2px; }
.sec.dark .qa{ background:#fff; border-color:var(--hairline); }
.sec.dark .qa summary{ color:var(--t1); } .sec.dark .qa .a{ color:var(--t2); }

/* ============ COA band ============ */
.coa-band{ position:relative; color:#fff; border-radius:var(--r-lg); overflow:hidden; isolation:isolate; background:linear-gradient(120deg,#131B45 0%, #0E1330 100%); border:none; box-shadow:var(--shadow-2); }
.coa-band::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(90% 150% at 92% 8%, rgba(211,47,45,.26), transparent 58%), linear-gradient(210deg, rgba(24,20,52,.70) 0%, rgba(12,16,44,.84) 100%), url("brand/flag-bg.jpg") right 30%/190% no-repeat; display:block; }
.coa-band::after{ content:""; position:absolute; top:0; left:0; right:0; height:5px; z-index:1; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); }
.coa-band .in{ position:relative; padding:clamp(26px,3.6vw,42px); display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.coa-band h2{ color:#fff; font-size:clamp(22px,2.6vw,30px); text-shadow:none; }
.coa-band p{ color:rgba(255,255,255,.72); margin:.5em 0 0; max-width:520px; font-size:14px; }
.coa-band .eyebrow{ color:#FF8A85; }
.coa-band .btn-red, .coa-band .btn-navy{ background:#fff; color:var(--navy-ink); }
.coa-band .btn-red:hover, .coa-band .btn-navy:hover{ background:#EDF0FA; }

/* ============ Footer ============ */
.ft{ background:linear-gradient(180deg, rgba(22,36,110,.80) 0%, rgba(16,26,82,.90) 100%), url("brand/flag-bg.jpg") center bottom/120% no-repeat, linear-gradient(180deg,#16246E 0%, #101A52 100%); color:rgba(255,255,255,.72); padding-top:clamp(36px,4.4vw,56px); border-top:4px solid var(--red); }
.ft-mark,.ft-star{ display:none; }
.ft-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr; gap:34px; padding:0 0 34px; border-bottom:1px solid rgba(255,255,255,.16); }
.ft-brand img{ height:46px; margin-bottom:14px; filter:brightness(0) invert(1); opacity:1; }
.ft-brand p{ font-size:13.5px; color:rgba(255,255,255,.6); max-width:300px; }
.ft h4{ color:#fff; text-transform:none; font-size:14px; letter-spacing:0; margin-bottom:14px; font-family:var(--body); font-weight:700; }
.ft ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.ft ul a{ color:rgba(255,255,255,.75); font-size:13.5px; transition:color .14s; }
.ft ul a:hover{ color:#FF8A85; }
.ft-contact div{ margin-bottom:12px; font-size:13.5px; color:rgba(255,255,255,.72); }
.ft-contact b{ display:block; color:#fff; font-family:var(--body); text-transform:none; letter-spacing:0; font-size:12.5px; margin-bottom:2px; font-weight:700; }
.ft-contact a{ color:#FF8A85; font-weight:600; }
.ft-ship{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:12px; padding:13px 15px; margin-top:12px; font-size:12px; color:rgba(255,255,255,.65); box-shadow:none; }
.ft-bottom{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px 0 26px; font-size:12px; color:rgba(255,255,255,.55); }
.ft-bottom .disc{ max-width:840px; line-height:1.7; }
.ft-bottom .disc b{ color:#fff !important; }
.ft-bottom .disc a{ color:#FF8A85 !important; }
.ft-coord{ display:none; }
@media(max-width:900px){ .ft-top{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .ft-top{ grid-template-columns:1fr; } }

/* about stats rhythm */
.stat-row .stat:nth-child(even) .big{ color:var(--red) !important; }

/* ============ USA badge ============ */
.usa-badge{
  position:absolute; top:16px; right:16px; z-index:2; width:68px; height:68px; border-radius:50%;
  background:#fff; border:2px solid var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow:var(--shadow-1); transform:rotate(6deg);
}
.usa-badge .st{ color:var(--red); font-size:12px; line-height:1.1; }
.usa-badge small{ font-size:8px; letter-spacing:.6px; color:var(--t3); text-transform:uppercase; font-weight:700; line-height:1.2; margin-top:1px; }
.usa-badge b{ font-family:var(--head); font-weight:700; font-size:13px; color:var(--navy); letter-spacing:.5px; line-height:1.1; }

/* ============ Footer star divider + closing ribbon ============ */
.ft-stars{ display:flex; align-items:center; justify-content:center; padding:18px 0 0; color:rgba(255,255,255,.4); font-size:12px; letter-spacing:8px; }
.rwb-bottom{ height:6px; background:linear-gradient(90deg, var(--red) 0 12%, #fff 50%, var(--navy) 88% 100%); }

/* ============ Cart drawer ============ */
.scrim{ position:fixed; inset:0; background:rgba(13,17,38,.42); backdrop-filter:blur(2px); opacity:0; visibility:hidden; transition:.22s; z-index:90; }
.scrim.on{ opacity:1; visibility:visible; }
.drawer{
  position:fixed; top:0; right:0; height:100%; width:min(420px,93vw); background:#fff; z-index:100;
  transform:translateX(100%); transition:transform .26s var(--ease); display:flex; flex-direction:column;
  border-left:1px solid var(--hairline); box-shadow:-18px 0 60px rgba(13,17,38,.18);
}
.drawer.on{ transform:none; }
.drawer .dh{ padding:0 20px; min-height:60px; display:flex; align-items:center; justify-content:space-between; background:#fff; color:var(--t1); border-bottom:1px solid var(--hairline); }
.drawer .dh h3{ font-family:var(--head); text-transform:none; font-size:17px; color:var(--t1); letter-spacing:0; }
.drawer .dh .x{ border:1px solid var(--hairline-2); background:#fff; width:38px; height:38px; border-radius:50%; font-size:14px; color:var(--t2); }
.drawer .dh .x:hover{ background:var(--bg-2); color:var(--t1); }
.drawer .items{ flex:1; overflow:auto; padding:6px 20px; }
.drawer .empty{ text-align:center; color:var(--t3); padding:60px 20px; font-size:14px; }
.ci{ display:flex; gap:13px; padding:14px 0; border-bottom:1px solid var(--hairline); }
.ci .cimg{ width:58px; height:62px; border-radius:12px; background:var(--tile); flex:0 0 auto; display:grid; place-items:center; padding:6px; }
.ci .cimg img{ max-height:100%; width:auto; }
.ci .cmid{ flex:1; }
.ci .cn{ font-family:var(--body); text-transform:none; font-size:14px; color:var(--t1); letter-spacing:0; font-weight:600; }
.ci .cp{ color:var(--navy); font-weight:700; font-size:13.5px; }
.ci .qty{ display:inline-flex; align-items:center; border:1px solid var(--hairline-2); border-radius:var(--pill); overflow:hidden; margin-top:6px; }
.ci .qty button{ width:38px; height:38px; border:none; background:#fff; color:var(--t2); font-size:16px; }
.ci .qty button:hover{ background:var(--bg-2); color:var(--t1); }
.ci .qty span{ width:32px; text-align:center; font-weight:700; font-size:13px; color:var(--t1); }
.ci .rm{ border:none; background:none; color:var(--t3); font-size:11.5px; text-decoration:underline; margin-top:2px; padding:10px 8px 10px 0; }
.drawer .df{ border-top:1px solid var(--hairline); padding:16px 20px 18px; background:var(--card-hi); }
.drawer .df .row{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.drawer .df .row .tot{ font-family:var(--head); font-size:21px; color:var(--t1); font-weight:700; }
.drawer .df small{ display:block; text-align:center; color:var(--t3); margin-top:10px; font-size:11.5px; }

/* ============ Toast ============ */
.toast{
  position:fixed; bottom:22px; left:0; right:0; width:max-content; max-width:calc(100vw - 32px); margin-inline:auto; transform:translateY(16px);
  background:var(--navy-ink); color:#fff; border:none; border-radius:var(--pill);
  padding:12px 22px; font-size:13.5px; font-weight:600;
  z-index:120; opacity:0; visibility:hidden; transition:.22s var(--ease);
  display:flex; align-items:center; gap:10px; box-shadow:var(--shadow-2);
}
.toast.on{ opacity:1; visibility:visible; transform:translateY(0); }
.toast svg{ color:#7DD8A0; }

/* ============ Mobile nav ============ */
.m-nav{ position:fixed; inset:0 auto 0 0; width:min(340px,88vw); background:#fff; z-index:100;
  transform:translateX(-100%); transition:transform .28s var(--ease); border-right:1px solid var(--hairline);
  box-shadow:18px 0 60px rgba(13,17,38,.22); display:flex; flex-direction:column; }
.m-nav.on{ transform:none; }

/* header: logo + close, capped by the flag stripe the rest of the site uses */
.m-nav .mh{ position:relative; flex:0 0 auto; display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px 15px; background:#fff; }
.m-nav .mh::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg, var(--navy) 0%, #2F49B8 45%, var(--red) 100%); }
.m-nav .mh img{ height:36px; filter:none; }
.m-nav .mh .x{ width:38px; height:38px; border-radius:50%; border:1px solid var(--hairline-2);
  background:#fff; color:var(--t2); font-size:14px; line-height:1; display:grid; place-items:center; cursor:pointer;
  transition:background .15s, color .15s; }
.m-nav .mh .x:hover{ background:var(--bg-2); color:var(--t1); }

/* scrollable link body */
.m-nav .mbody{ flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  padding:6px 0 10px; }
.m-nav .mgrp + .mgrp{ border-top:1px solid var(--hairline); margin-top:6px; padding-top:6px; }
.m-nav .mlab{ margin:0; padding:11px 18px 5px; font-family:var(--body); font-size:10.5px; font-weight:800;
  letter-spacing:1.6px; text-transform:uppercase; color:var(--red); }
.m-nav .mbody a{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:11px 18px; min-height:46px; font-family:var(--body); text-transform:none; letter-spacing:0;
  color:var(--t1); font-size:15px; font-weight:600; border-bottom:none; transition:background .14s, color .14s; }
.m-nav .mbody a:hover{ background:var(--bg-2); color:var(--navy); }
.m-nav .mbody a:active{ background:var(--tile); }
/* chevron */
.m-nav .mbody a i{ flex:0 0 auto; width:7px; height:7px; border-right:2px solid var(--hairline-2);
  border-bottom:2px solid var(--hairline-2); transform:rotate(-45deg); transition:border-color .14s, transform .14s; }
.m-nav .mbody a:hover i{ border-color:var(--red); transform:rotate(-45deg) translate(1px,1px); }
.m-nav .mbody a.on{ color:var(--navy); background:var(--bg-2); box-shadow:inset 3px 0 0 var(--red); }
.m-nav .mbody a.on i{ border-color:var(--red); }

/* pinned footer */
.m-nav .mf{ flex:0 0 auto; border-top:1px solid var(--hairline); background:var(--card-hi);
  padding:14px 18px calc(16px + env(safe-area-inset-bottom)); text-align:center; }
.m-nav .mf-btns{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.m-nav .mf-b{ display:grid; place-items:center; min-height:44px; padding:0 10px; border-radius:999px;
  font-family:var(--body); font-size:13.5px; font-weight:700; letter-spacing:0; text-transform:none; }
.m-nav .mf-b.ghost{ border:1px solid var(--hairline-2); background:#fff; color:var(--t1); }
.m-nav .mf-b.ghost:hover{ border-color:var(--navy); color:var(--navy); }
.m-nav .mf-b.solid{ background:var(--red); color:#fff; border:1px solid var(--red); }
.m-nav .mf-b.solid:hover{ filter:brightness(1.06); }
.m-nav .mf-mail{ display:grid; place-items:center; min-height:40px; margin-top:6px; font-size:13px; font-weight:600;
  color:var(--navy); text-transform:none; letter-spacing:0; }
.m-nav .mf-trust{ margin:6px 0 0; font-size:10.5px; letter-spacing:.4px; color:var(--t3); }

/* legacy leftovers */
.ticker,.marquee,.promo{ display:none; }

/* cat tiles — GLP category cards */
.cat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border:none; }
.cat-tile{
  position:relative; border-radius:var(--r); overflow:hidden; min-height:0;
  display:flex; flex-direction:row; align-items:center; gap:16px; padding:18px 20px;
  background:#fff; color:var(--t1); border:1px solid var(--hairline);
  box-shadow:var(--shadow-1); transition:transform .15s var(--ease), box-shadow .15s;
}
.cat-tile::before{ content:none; }
.cat-tile:hover{ transform:translateY(-3px); box-shadow:var(--shadow-2); background:#fff; }
/* block, not grid: an auto grid row sizes to the vial art's intrinsic height, so the
   image overflowed and only its cap stayed inside the tile */
.cat-tile .ct-img{ width:64px; height:72px; flex:0 0 auto; border-radius:12px; background:var(--tile); display:block; overflow:hidden; padding:8px; }
.cat-tile .ct-img img{ width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 6px 8px rgba(13,17,38,.15)); }
.cat-tile .n{ position:relative; font-family:var(--body); text-transform:none; letter-spacing:0; font-size:16px; font-weight:700; color:var(--t1); text-shadow:none; }
.cat-tile .c{ position:relative; font-size:12.5px; color:var(--t3); margin-top:2px; }
.cat-tile .arrow{ position:relative; margin-top:6px; font-family:var(--body); text-transform:none; letter-spacing:0; font-size:12.5px; color:var(--red); font-weight:600; }
@media(max-width:900px){ .cat-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){
  /* 2-up compact tiles — one per row ate the whole screen */
  .cat-grid{ grid-template-columns:repeat(2,1fr); gap:10px; grid-auto-rows:1fr; }
  .cat-tile{ flex-direction:column; align-items:flex-start; gap:8px; padding:12px 12px 14px; }
  /* display:block, not grid: an auto grid row sizes to the vial art's intrinsic
     height, so height:100% on the image resolves circularly and overflows */
  .cat-tile .ct-img{ display:block; width:100%; height:78px; padding:6px; overflow:hidden; }
  .cat-tile .ct-img img{ width:100%; height:100%; max-height:100%; object-fit:contain; }
  .cat-tile .n{ font-size:14px; line-height:1.25; }
  .cat-tile .c{ font-size:11.5px; margin-top:1px; }
  .cat-tile .arrow{ font-size:11.5px; margin-top:4px; }
}

/* responsive header */
@media(max-width:1080px){
  .hdr-nav, .desktop-only, .verify-pill{ display:none; }
  .burger{ display:inline-grid; }
  /* nav + search are hidden here, so push actions to the right edge instead of
     letting them bunch up against the logo */
  .hdr-main{ justify-content:space-between; gap:8px; }
  .hdr-actions{ gap:4px; margin-left:auto; }
  .hdr-actions .icon-btn, .hdr-actions .search-toggle, .burger{
    width:42px; height:42px; display:grid; place-items:center; border-radius:12px; }
}
@media(max-width:900px){
  .hdr-main{ min-height:60px; }
  .brand img{ height:36px; }
  .prod-grid.cols-4, .prod-grid.cols-3{ grid-template-columns:repeat(2,1fr); }
  .panel{ min-height:460px; align-items:flex-end; border-radius:var(--r); }
  .panel .scrim{ background:linear-gradient(180deg, rgba(7,10,24,.2) 0%, rgba(7,10,24,.66) 55%, rgba(7,10,24,.88) 100%) !important; }
  .hero-shell{ padding-top:12px; }
}
@media(max-width:560px){
  .prod-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .card .name{ font-size:13.5px; }
}

/* ---- mobile tap targets: footer + carousel controls ---- */
@media(max-width:900px){
  /* footer link rows were ~17px tall; give every one a 40px thumb box */
  .ft ul{ gap:0; }
  .ft ul a{ display:flex; align-items:center; min-height:40px; font-size:14px; }
  .ft-contact a{ min-height:40px; display:inline-flex; align-items:center; }
  .ft-bottom{ padding-bottom:calc(26px + env(safe-area-inset-bottom)); }
  .btn-sm{ min-height:40px; padding:9px 18px; }
}

/* ==== Add-to-cart spinner + stronger CTA press feedback (Moe, 2026-07-23) ==== */
/* Spinner sits ON the add button — fixed size, no layout shift. White doughnut on
   the red add controls. `.card .add` already uses ::after for its "Add to Cart"
   label, so the spinner uses ::before. Applies only while .is-adding is set. */
.card .add.is-adding, .btn.is-adding, .pdp2-add.is-adding{ color:transparent !important; pointer-events:none; position:relative; }
.card .add.is-adding svg, .btn.is-adding svg, .pdp2-add.is-adding svg{ opacity:0 !important; }
.card .add.is-adding::after{ color:transparent !important; }
.card .add.is-adding::before, .btn.is-adding::before, .pdp2-add.is-adding::before{
  content:"" !important; position:absolute; top:50%; left:50%;
  width:18px; height:18px; margin:-9px 0 0 -9px; box-sizing:border-box;
  border-radius:50%; border:2.5px solid rgba(255,255,255,.42); border-top-color:#fff;
  animation:sp-add-spin .6s linear infinite; z-index:2;
}
@keyframes sp-add-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){
  .card .add.is-adding::before, .btn.is-adding::before, .pdp2-add.is-adding::before{
    animation:none;
    border-color:rgba(255,255,255,.9) rgba(255,255,255,.32) rgba(255,255,255,.32) rgba(255,255,255,.32);
  }
}
/* Pressed / tactile feedback — deepen the existing :active. The red CTA glow
   box-shadow is left untouched; this only adds a scale-down + darken on press. */
.btn:active{ transform:translateY(1px) scale(.975); filter:brightness(.93); }
.btn-accent:active{ transform:translateY(1px) scale(.975); filter:brightness(.93); }
.card .add:active{ transform:translateY(1px) scale(.97); filter:brightness(.9); }
.pdp2-add:active{ transform:translateY(1px) scale(.985); filter:brightness(.9); }
@media (prefers-reduced-motion: reduce){
  .btn:active, .btn-accent:active, .card .add:active, .pdp2-add:active{ transform:none; }
}

/* ==== Header cart-count badge (Moe, 2026-07-23) ==== */
.icon-btn--cart{ position:relative; }
.cart-count{ position:absolute; top:-3px; right:-3px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:var(--red); color:#fff; font-family:var(--body); font-size:10.5px; font-weight:700; line-height:17px; text-align:center; box-shadow:0 1px 3px rgba(0,0,0,.25); pointer-events:none; }
.cart-count[data-counter="0"]{ display:none; }

/* orphan-guard: hero titles/subtitles never leave a single hanging word */
.page-hero h1,[data-title]{ text-wrap:balance; }
.page-hero p,[data-sub]{ text-wrap:pretty; }

/* hero-to-section gap: kill the deadspace between a page hero (title/sub) and the next section (chips/content) — all pages */
.page-hero + .sec{ padding-top:clamp(10px,1.6vw,16px) !important; }

/* raised-hero: soft downward shadow so the title/subtitle section reads as lifted above the grid */
/* Raised header section: depth comes from the surface, not a heavy shadow.
   A faint top-to-bottom gradient gives the block its own plane, a hairline
   defines its lower edge, and a tight low-opacity shadow lifts it off the
   content below. Subtle by design — no grey smudge. */
.page-hero{ position:relative; z-index:3;
  background:linear-gradient(180deg,#ffffff 0%,#f7f8fa 100%);
  border-bottom:1px solid rgba(13,17,38,.08);
  box-shadow:0 6px 16px -10px rgba(13,17,38,.28); }

/* Live-price hydration skeleton: .lp-amt is empty until the sp_live_products
   fetch fills it (no baked prices ship). Show a soft pulsing bar meanwhile. */
.lp-loading .lp-amt{ display:inline-block; min-width:2.4em; height:.72em; border-radius:3px;
  background:linear-gradient(90deg,#e9edf3 25%,#f3f6fa 50%,#e9edf3 75%); background-size:200% 100%;
  animation:lp-pulse 1.15s ease-in-out infinite; vertical-align:baseline; }
@keyframes lp-pulse{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }
@media (prefers-reduced-motion: reduce){ .lp-loading .lp-amt{ animation:none; } }

/* ===== next design overrides (baked by scripts/port.py — not in noah's source) ===== */
.hero-cs .hcs-slide .sph[src*="hero-test-3"]{ object-position:18% center; }
/* Mobile header (<=1080px): LEFT = hamburger (first) + logo, RIGHT = search, cart, account. */
@media(max-width:1080px){
  .hdr-burger{ order:-3; margin-right:8px; }
  .hdr-main > .brand{ order:2; margin-left:6px; }
  .hdr-main > .hdr-actions{ order:-2; margin-right:auto; }
  .hdr-account{ display:inline-flex !important; }
}
/* Sticky nav: .hdr is already position:sticky top:0, but noah body overflow-x:hidden
   turns <body> into a scroll container, which breaks the sticky (header scrolled off).
   Move the horizontal clip to <html> (the viewport scroll container, where sticky still
   pins to the top) and free <body>. Result: the sp-promo-bar marquee + the rwb-bar scroll
   away, and the .hdr nav stays pinned. scroll-padding offsets in-page anchors. */
html{ overflow-x:hidden; scroll-padding-top:96px; scroll-behavior:smooth; }
body{ overflow-x:visible !important; }
/* The injected header wrapper div is only ~71px tall; a sticky child stays pinned
   only while its containing block is in view, so .hdr un-sticks after 71px. Collapse
   the wrapper with display:contents so .hdr containing block becomes <body> (full page
   height) and it stays pinned the whole scroll. The rwb-bar inside still scrolls away. */
body > div:has(> header.hdr){ display:contents; }
.hdr{ z-index:100 !important; box-shadow:0 3px 14px rgba(13,17,38,.10) !important; }
/* Unified-header height parity: the hl-next theme's generic .wrap{padding:56px 56px 96px}
   inflates the header on WP pages (storefront has no such rule) -> ~157px tall. Pin the
   header's own .wrap to the storefront geometry so every WP page's header == /shop/ (61px). */
.hdr .wrap{ padding:0 32px !important; max-width:1240px !important; margin:0 auto !important; }
/* Scroll-spy active state: highlight the in-view section's left-nav link (navy pill,
   matching the header .navlink.active). Applies to .faq-nav + any [data-section-nav]. */
.faq-nav a.active, [data-section-nav] a.active{ color:var(--navy) !important; background:#EDF0FA !important; }
/* Verify & Save chooser: right-align its dropdown (pill sits at the far right). */
.verify-menu{ position:relative; }
.verify-menu > .menu{ right:0; left:auto; }
/* nav bar drop shadow (John) */
.hdr{ box-shadow:0 6px 20px rgba(13,17,38,.13) !important; }
/* MADE IN USA seal removed from PDP images (John asked 3x) — kill both templates' badges */
.usa-badge, .pdp2-seal{ display:none !important; }
/* Shop card sale price (live WooCommerce): struck-through regular + sale. */
.card .price .was{ color:var(--t3); text-decoration:line-through; font-weight:600; font-size:.72em; margin-right:6px; }
.card .price .now{ color:var(--red); }
/* Shop live-load skeleton cards (shown while the live catalog fetches; never a blank grid). */
.sk-card{ border:1px solid var(--hairline); border-radius:16px; overflow:hidden; background:#fff; }
.sk-card .sk-thumb{ aspect-ratio:1/1; background:linear-gradient(100deg,#eef1f6 30%,#f6f8fb 50%,#eef1f6 70%); background-size:200% 100%; animation:sk-sh 1.2s linear infinite; }
.sk-card .sk-body{ padding:14px 16px 18px; }
.sk-card .sk-line{ height:12px; border-radius:6px; margin-top:10px; background:linear-gradient(100deg,#eef1f6 30%,#f6f8fb 50%,#eef1f6 70%); background-size:200% 100%; animation:sk-sh 1.2s linear infinite; }
.sk-card .sk-line.sk-short{ width:55%; }
@keyframes sk-sh{ 0%{ background-position:200% 0; } 100%{ background-position:-200% 0; } }

/* ---- promo-bar marquee icons (noah's icon set as coloured SVG background-images,
   since wp_kses strips inline SVG from item content; each item carries an
   <i class="hlp-ico-X"> marker painted here). Colour alternates red/navy by
   position, matching noah's original ticker. */
.sp-promo-bar__item .hlp-ico{ display:inline-block; width:15px; height:15px; margin-right:7px; vertical-align:-3px; background:center/contain no-repeat; flex:0 0 auto; }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-shield{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNEMzJGMkQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMiA0IDV2NmMwIDUgMy40IDguNSA4IDExIDQuNi0yLjUgOC02IDgtMTFWNXoiLz48cGF0aCBkPSJtOSAxMiAyIDIgNC00Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-shield{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMxQTJDODMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMiA0IDV2NmMwIDUgMy40IDguNSA4IDExIDQuNi0yLjUgOC02IDgtMTFWNXoiLz48cGF0aCBkPSJtOSAxMiAyIDIgNC00Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-doc{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNEMzJGMkQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgM0g2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjl6Ii8+PHBhdGggZD0iTTE0IDN2Nmg2TTggMTNoOE04IDE3aDUiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-doc{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMxQTJDODMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTQgM0g2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjl6Ii8+PHBhdGggZD0iTTE0IDN2Nmg2TTggMTNoOE04IDE3aDUiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-flask{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNEMzJGMkQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAzaDZNMTAgM3Y2bC01IDlhMiAyIDAgMCAwIDEuOCAzaDEwLjRBMiAyIDAgMCAwIDE5IDE4bC01LTlWMyIvPjxwYXRoIGQ9Ik03LjUgMTRoOSIvPjwvc3ZnPg=="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-flask{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMxQTJDODMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAzaDZNMTAgM3Y2bC01IDlhMiAyIDAgMCAwIDEuOCAzaDEwLjRBMiAyIDAgMCAwIDE5IDE4bC01LTlWMyIvPjxwYXRoIGQ9Ik03LjUgMTRoOSIvPjwvc3ZnPg=="); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-check{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNEMzJGMkQiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-check{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMxQTJDODMiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-flag{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjRDMyRjJEIj48cGF0aCBkPSJNNCAydjIwaDJ2LThoNWwxIDJoOFY1aC03bC0xLTJ6Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-flag{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjMUEyQzgzIj48cGF0aCBkPSJNNCAydjIwaDJ2LThoNWwxIDJoOFY1aC03bC0xLTJ6Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-truck{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNEMzJGMkQiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0aDEzdjExSDF6TTE0IDhoNGwzIDN2NGgtNyIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMS42Ii8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE4IiByPSIxLjYiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-truck{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIxOSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMxQTJDODMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0aDEzdjExSDF6TTE0IDhoNGwzIDN2NGgtNyIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMS42Ii8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjE4IiByPSIxLjYiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-star{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjRDMyRjJEIj48cGF0aCBkPSJtMTIgMyAyLjYgNS42IDYgLjUtNC41IDQgMS40IDUuOUwxMiAxNS44IDYuNSAxOWwxLjQtNS45LTQuNS00IDYtLjV6Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-star{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjMUEyQzgzIj48cGF0aCBkPSJtMTIgMyAyLjYgNS42IDYgLjUtNC41IDQgMS40IDUuOUwxMiAxNS44IDYuNSAxOWwxLjQtNS45LTQuNS00IDYtLjV6Ii8+PC9zdmc+"); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-bell{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRDMyRjJEIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDhhNiA2IDAgMCAwLTEyIDBjMCA3LTMgOS0zIDloMThzLTMtMi0zLTkiLz48cGF0aCBkPSJNMTMuNyAyMWEyIDIgMCAwIDEtMy40IDAiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-bell{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMUEyQzgzIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDhhNiA2IDAgMCAwLTEyIDBjMCA3LTMgOS0zIDloMThzLTMtMi0zLTkiLz48cGF0aCBkPSJNMTMuNyAyMWEyIDIgMCAwIDEtMy40IDAiLz48L3N2Zz4="); }
.sp-promo-bar__item:nth-of-type(odd) .hlp-ico-tag{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRDMyRjJEIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwLjYgMTMuNCAxMiAyMmwtOS05VjNoMTBsNy42IDcuNmEyIDIgMCAwIDEgMCAyLjh6Ii8+PGNpcmNsZSBjeD0iNy41IiBjeT0iNy41IiByPSIxLjYiIGZpbGw9IiNEMzJGMkQiIHN0cm9rZT0ibm9uZSIvPjwvc3ZnPg=="); }
.sp-promo-bar__item:nth-of-type(even) .hlp-ico-tag{ background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMUEyQzgzIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwLjYgMTMuNCAxMiAyMmwtOS05VjNoMTBsNy42IDcuNmEyIDIgMCAwIDEgMCAyLjh6Ii8+PGNpcmNsZSBjeD0iNy41IiBjeT0iNy41IiByPSIxLjYiIGZpbGw9IiMxQTJDODMiIHN0cm9rZT0ibm9uZSIvPjwvc3ZnPg=="); }
/* pink-kill: bold accent -> noah navy (not #FF2AA6); separators -> #DED9CE */
.sp-promo-bar{ --sp-pb-ac:#1A2C83 !important; --sp-pb-sep:#DED9CE !important; }
.sp-promo-bar__item strong, .sp-promo-bar__item b{ color:#1A2C83 !important; }
.sp-promo-bar__item a{ color:inherit !important; }

/* ---- storefront footer (#sf) shared so WP pages match /shop/ ---- */
/* Current next footer — id-scoped (#sf) so the rebuild site.css .ft rules
       cannot bleed onto it. Structure/content locked; palette sits on navy. */
    #sf.ft { background: #0f172a; color: #94a3b8; padding: 40px 56px 22px; margin-top: 64px; font-family: var(--body); border-top: 4px solid #D32F2D; }
    #sf .ft-in { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
    #sf .ft-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; font-size: 12.5px; line-height: 1.4; }
    #sf .ft-row--nav { padding-bottom: 12px; border-bottom: 1px solid #1e293b; }
    #sf .ft-row--nav .ft-brand { color: #fff; font-family: var(--head); font-size: 18px; font-weight: 700; letter-spacing: -0.015em; text-decoration: none; line-height: 1; }
    #sf .ft-nav { display: flex; gap: 18px; flex-wrap: wrap; margin-left: 8px; }
    #sf .ft-nav a { color: #cbd5e1; font-size: 13px; text-decoration: none; transition: color .15s; }
    #sf .ft-nav a:hover { color: #fff; }
    #sf .ft-madein { margin-left: auto; color: #FF8A85; font-family: var(--body); font-size: 10px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
    #sf .ft-row--info { gap: 24px; color: #cbd5e1; padding-bottom: 12px; border-bottom: 1px solid #1e293b; font-size: 12.5px; }
    #sf .ft-row--info a { color: #cbd5e1; text-decoration: none; transition: color .15s; }
    #sf .ft-row--info a:hover { color: #fff; }
    #sf .ft-row--info strong { color: #fff; font-weight: 600; margin: 0 .28em; }
    #sf .ft-row--info span { display: inline-block; }
    #sf .ft-row--ruo { color: #64748b; font-size: 11px; line-height: 1.5; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: baseline; gap: 10px; }
    #sf .ft-ruo-label { color: #FF8A85; font-family: var(--body); font-size: 10px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; white-space: nowrap; flex-shrink: 0; }
    #sf .ft-row--legal { justify-content: space-between; font-family: var(--body); font-size: 10.5px; letter-spacing: 0.06em; color: #64748b; padding-top: 4px; }
    #sf .ft-legal-links { display: flex; gap: 18px; }
    #sf .ft-legal-links a { color: #64748b; text-decoration: none; transition: color .15s; }
    #sf .ft-legal-links a:hover { color: #cbd5e1; }
    @media (max-width: 980px) {
      #sf.ft { padding: 34px 22px calc(22px + env(safe-area-inset-bottom)); }
      #sf .ft-in { gap: 22px; }
      #sf .ft-row { align-items: flex-start; gap: 14px; }
      /* nav: brand on its own line, tappable 2-col link grid */
      #sf .ft-row--nav { flex-direction: column; gap: 16px; padding-bottom: 18px; }
      #sf .ft-row--nav .ft-brand { font-size: 21px; }
      #sf .ft-nav { margin-left: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 20px; width: 100%; }
      #sf .ft-nav a { min-height: 40px; display: flex; align-items: center; font-size: 14.5px; }
      #sf .ft-madein { margin-left: 0; }
      /* info: each fact stacks; email/phone tappable accents; ship facts become a clean card (no columnize) */
      #sf .ft-row--info { flex-direction: column; align-items: stretch; gap: 11px; padding-bottom: 18px; }
      #sf .ft-row--info span { display: block; }
      #sf .ft-row--info a { min-height: 36px; display: inline-flex; align-items: center; font-size: 14px; color: #FF8A85; font-weight: 600; }
      #sf .ft-row--info > span:last-child { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 13px 15px; font-size: 13px; line-height: 1.7; color: #cbd5e1; }
      #sf .ft-row--info > span:last-child strong { margin: 0 .22em; white-space: nowrap; }
      /* ruo + legal stack */
      #sf .ft-row--ruo { flex-direction: column; gap: 7px; padding-bottom: 18px; }
      #sf .ft-row--legal { flex-direction: column; align-items: flex-start; gap: 10px; }
      #sf .ft-legal-links { gap: 18px; }
    }

/* ===== sp-no-orphan-words: universal orphan/widow prevention (inherited) ===== */
body{text-wrap:pretty}
h1,h2,h3,h4,h5,h6{text-wrap:balance}
/* extra safety for card/feature bodies that some browsers treat as replaced */
.card p,.card b,.feature p,[class*="__body"],[class*="__text"],[class*="desc"]{text-wrap:pretty}
