/*
Theme Name: The Hat Store by Cypress
Theme URI: https://thehatstorebycypress.com
Author: Valtech Works
Description: Premium custom-embroidery storefront for The Hat Store by Cypress. Navy + brass-gold + cream craft identity. WooCommerce-ready, mobile-first. Built by Valtech.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: hatstore
*/

/* ============================================================
   DESIGN TOKENS — The Hat Store by Cypress
   Identity: premium embroidery craft. Navy anchor, brass-gold
   thread accent, cream paper, stitched detailing. NOT Lia pink.
   ============================================================ */
:root{
  --navy-900:#0d1a2b;
  --navy-800:#13283f;
  --navy-700:#1c3e60;   /* source accent */
  --navy-600:#27517d;
  --navy-500:#33567f;
  --gold:#c8a24a;        /* fills + large/decorative only */
  --gold-bright:#e3c074;
  --gold-deep:#a07a28;   /* large accent text (serif-accent, link hover) */
  --gold-ink:#876520;    /* small accent text — AA-safe (≥4.5:1) on white, cream & paper */
  --cream:#f8f4ec;
  --cream-2:#efe6d6;
  --paper:#f4eee0;
  --ink:#15181e;
  --ink-soft:#2c333d;
  --muted:#5d6878;   /* small muted text — darkened from #697585 for WCAG AA (≥4.5:1 on cream/white) */
  --line:#e4ddcf;
  --white:#ffffff;
  --ok:#2e7d52;

  --maxw:1240px;
  --gutter:clamp(18px,4vw,40px);
  --radius:14px;
  --radius-sm:9px;
  --shadow-sm:0 2px 10px rgba(13,26,43,.06);
  --shadow:0 14px 40px rgba(13,26,43,.12);
  --shadow-lg:0 30px 80px rgba(13,26,43,.22);
  --t:.28s cubic-bezier(.2,.7,.2,1);

  --font-display:"Archivo","Arial Narrow",sans-serif;
  --font-serif:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

/* ============================================================ RESET */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);
  background:var(--paper);line-height:1.65;font-size:17px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;max-width:100%;
}
/* responsive split utilities (replace inline 2/3-col grids that don't collapse) */
.hs-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hs-imgrow{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.hs-imgrow img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy-700);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--gold-deep)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.04;
  letter-spacing:-.01em;color:var(--navy-900);margin:0 0 .5em}
/* Intermediate H3 step so sub-headings read as headings (was ~19.5px, too close to body).
   Component h3s (.feature/.step/.page-body) set their own size and still override this. */
h3{font-size:clamp(1.45rem,2.2vw,1.65rem);line-height:1.15}
button{font-family:inherit}   /* native buttons (carousel arrows etc.) inherit the brand font */
p{margin:0 0 1.1em}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.narrow{max-width:780px;margin-inline:auto}

/* utility */
.eyebrow{font-family:var(--font-body);font-weight:700;font-size:.74rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-ink);
  display:inline-flex;align-items:center;gap:.6em;margin-bottom:1rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);display:inline-block}
.serif-accent{font-family:var(--font-serif);font-weight:400;font-style:italic;
  letter-spacing:0;text-transform:none;color:var(--gold-deep)}
.text-center{text-align:center}

/* stitched divider motif */
.stitch{border:0;height:0;border-top:2px dashed var(--gold);opacity:.5;margin:0}

/* ============================================================ BUTTONS */
.btn,.hs-btn{
  --bg:var(--navy-700);--fg:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-body);font-weight:700;font-size:.96rem;letter-spacing:.01em;
  padding:.92em 1.7em;border-radius:999px;background:var(--bg);color:var(--fg);
  border:2px solid var(--bg);cursor:pointer;transition:all var(--t);
  text-align:center;line-height:1;white-space:nowrap;
}
.btn:hover,.hs-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);color:#fff;
  --bg:var(--navy-800)}
.btn--gold{--bg:var(--gold);--fg:var(--navy-900)}
.btn--gold:hover{--bg:var(--gold-bright);color:var(--navy-900)}
.btn--ghost{--bg:transparent;--fg:var(--navy-800);border-color:rgba(28,62,96,.3)}
.btn--ghost:hover{--bg:var(--navy-800);color:#fff;border-color:var(--navy-800)}
.btn--light{--bg:#fff;--fg:var(--navy-900)}
.btn--lg{padding:1.1em 2.3em;font-size:1.05rem}

/* ============================================================ HEADER */
.site-header{position:sticky;top:0;z-index:200;background:rgba(244,238,224,.92);
  backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}
.promo-bar{background:var(--navy-900);color:var(--cream);text-align:center;
  font-size:.82rem;letter-spacing:.04em;padding:.55em 1em;font-weight:500}
.promo-bar strong{color:var(--gold-bright)}
.promo-bar .sep{opacity:.4;margin:0 .9em}
.header-inner{display:flex;align-items:center;gap:1.5rem;
  padding-top:.7rem;padding-bottom:.7rem}
.brand{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.brand-logo{height:48px;width:auto;display:block}
.brand-logo--footer{height:60px}
@media(max-width:560px){.brand-logo{height:40px}}
.brand-mark{width:42px;height:42px;border-radius:10px;background:var(--navy-800);
  display:grid;place-items:center;color:var(--gold-bright);flex-shrink:0;
  box-shadow:inset 0 0 0 2px rgba(227,192,116,.35)}
.brand-mark svg{width:24px;height:24px}
.brand-name{display:flex;flex-direction:column;line-height:1}
.brand-name b{font-family:var(--font-display);font-weight:800;font-size:1.12rem;
  color:var(--navy-900);letter-spacing:-.01em;text-transform:uppercase}
.brand-name span{font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold-deep);font-weight:700;margin-top:3px}
.main-nav{display:flex;align-items:center;gap:.3rem;margin-left:auto;list-style:none}
.main-nav li{list-style:none;margin:0;padding:0;display:flex} /* kill stray <li> bullets */
.main-nav a{font-weight:600;font-size:.96rem;color:var(--ink-soft);padding:.5em .9em;
  border-radius:8px;position:relative}
.main-nav a:hover{color:var(--navy-900);background:rgba(28,62,96,.06)}
/* Re-assert the gold-pill spec on the header CTA — `.main-nav a` otherwise clobbers
   it to grey text / 600 / square-ish padding. */
.main-nav .nav-cta{margin-left:.5rem;color:var(--navy-900);font-weight:700;
  border-radius:999px;padding:.62em 1.3em;background:var(--gold)}
.main-nav .nav-cta:hover{color:var(--navy-900);background:var(--gold-bright)}
/* Shop mega-dropdown — category panel under the Shop nav item */
.main-nav .menu-item-has-children{position:relative}
.main-nav .menu-item-has-children > a::after{content:"";display:inline-block;width:7px;height:7px;
  margin-left:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);vertical-align:2px;opacity:.55;transition:transform .2s}
.main-nav .sub-menu{position:absolute;top:100%;left:50%;padding:16px 18px;display:grid;
  grid-template-columns:1fr 1fr;gap:2px 20px;min-width:380px;list-style:none;margin:0;
  background:var(--navy-900);border-radius:14px;box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:300}
.main-nav .menu-item-has-children:hover .sub-menu,
.main-nav .menu-item-has-children:focus-within .sub-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.main-nav .sub-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.main-nav .sub-menu li{display:block}
.main-nav .sub-menu a{display:block;color:#cdd6e2;font-weight:500;font-size:.9rem;padding:.5em .65em;
  border-radius:8px;white-space:nowrap}
.main-nav .sub-menu a:hover{color:#fff;background:rgba(255,255,255,.09)}
.hs-mnav__links .sub-menu{list-style:none;margin:.1rem 0 .5rem;padding:0 0 0 1rem}
.hs-mnav__links .sub-menu a{font-size:1rem;font-weight:500;padding:.55em .5em;color:#aebfd2}
.header-actions{display:flex;align-items:center;gap:.4rem}
.icon-btn{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;
  color:var(--navy-800);background:transparent;border:0;cursor:pointer;position:relative;
  transition:background var(--t)}
.icon-btn:hover{background:rgba(28,62,96,.08)}
.icon-btn svg{width:22px;height:22px}
.cart-count{position:absolute;top:5px;right:5px;background:var(--gold);color:var(--navy-900);
  font-size:.65rem;font-weight:800;min-width:18px;height:18px;border-radius:9px;
  display:grid;place-items:center;padding:0 4px;font-family:var(--font-body)}
.nav-toggle{display:none}

/* ===== Mobile menu overlay (#hs-mnav) =====
 * Rendered at BODY ROOT, OUTSIDE the sticky header's stacking context, so the
 * panel's links are genuinely the topmost touch target. When closed the whole
 * overlay is pointer-events:none (no hit-testing); when open the panel (DOM-last,
 * so painted above the scrim) is the top hit target. Scroll is locked via CSS
 * (body{overflow:hidden}) — NOT via touch-event preventDefault. The links carry
 * ZERO JS handlers: plain <a href>, native browser navigation. */
.hs-mnav{position:fixed;inset:0;z-index:2000;pointer-events:none;display:none}
.hs-mnav__scrim{position:absolute;inset:0;background:rgba(8,16,28,.55);opacity:0;
  transition:opacity var(--t)}
.hs-mnav__panel{position:absolute;top:0;right:0;bottom:0;width:min(88vw,360px);
  background:var(--navy-900);color:#fff;display:flex;flex-direction:column;align-items:stretch;
  padding:4.6rem 1.4rem 2rem;box-shadow:var(--shadow-lg);overflow-y:auto;
  -webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform var(--t)}
.hs-mnav__close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;display:grid;
  place-items:center;border:0;background:rgba(255,255,255,.1);border-radius:10px;color:#fff;cursor:pointer}
.hs-mnav__close:hover{background:rgba(255,255,255,.18)}
.hs-mnav__close svg{width:22px;height:22px}
.hs-mnav__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hs-mnav__links li{list-style:none;margin:0;padding:0}
.hs-mnav__links a{display:block;font-size:1.14rem;font-weight:600;padding:.95em .5em;color:#e7eef7;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1)}
.hs-mnav__links a:hover{color:var(--gold-bright)}
.hs-mnav__cta{margin-top:1.4rem;background:var(--gold);color:var(--navy-900);border:0;
  text-align:center;justify-content:center}
.hs-mnav__cta:hover{background:var(--gold-bright);color:var(--navy-900)}
/* 1100px: iPads (768-1024 both orientations) fell in a dead zone — too narrow for the
   full desktop nav (~1050px), too wide for the 860px hamburger. (2026-07-09) */
@media(max-width:1100px){ .hs-mnav{display:block} }
body.hs-menu-open{overflow:hidden}
body.hs-menu-open .hs-mnav{pointer-events:auto}
body.hs-menu-open .hs-mnav__scrim{opacity:1}
body.hs-menu-open .hs-mnav__panel{transform:translateX(0)}

/* ============================================================ FOOTER */
.site-footer{background:var(--navy-900);color:#c4d0e0;margin-top:6rem;
  padding:4.5rem 0 2rem;position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:repeating-linear-gradient(90deg,var(--gold) 0 14px,transparent 14px 26px)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2.5rem}
.site-footer h4{color:#fff;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;
  font-family:var(--font-body);font-weight:700;margin-bottom:1.2rem}
.site-footer a{color:#c4d0e0;display:block;padding:.32em 0;font-size:.95rem}
.site-footer a:hover{color:var(--gold-bright)}
/* Restore the gold-pill spec for buttons in the footer — `.site-footer a` otherwise
   strips the padding (→ 0 horizontal) and recolours the text light-blue on gold. */
.site-footer a.btn{display:inline-flex;width:auto;padding:.72em 1.5em;color:var(--navy-900);
  font-weight:700;border-radius:999px}
.site-footer a.btn--gold:hover{color:var(--navy-900)}
.footer-brand p{font-size:.95rem;color:#9fb0c6;max-width:30ch}
.footer-badges{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}
.footer-badges span{font-size:.72rem;border:1px solid rgba(227,192,116,.3);color:var(--gold-bright);
  padding:.3em .7em;border-radius:999px;letter-spacing:.05em}
.footer-social{display:flex;flex-direction:column;gap:.55rem;margin-top:1.4rem}
.footer-social a{display:inline-flex;align-items:center;gap:.5em;color:#9fb0c6;font-size:.9rem}
.footer-social a:hover{color:var(--gold-bright)}
.footer-social svg{flex-shrink:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.5rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:#8195ad}
.footer-bottom a{display:inline;color:#8195ad}

/* ============================================================ SECTIONS */
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section--cream{background:var(--cream)}
.section--navy{background:var(--navy-900);color:#cdd9e8}
.section--navy h2,.section--navy h3{color:#fff}
.section-head{max-width:640px;margin:0 auto 3rem;text-align:center}
.section-head h2{font-size:clamp(2rem,4.5vw,3.1rem)}
.section-head p{color:var(--muted);font-size:1.08rem}
.section--navy .section-head p{color:#9fb0c6}

/* ============================================================ HERO */
.hero{position:relative;min-height:min(86vh,760px);display:flex;align-items:center;
  color:#fff;overflow:hidden;background:var(--navy-900)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg .hero-media{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
/* text-free photo now → lighter gradient so the real machines show through */
.hero-bg::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(8,16,28,.93) 0%,rgba(8,16,28,.8) 40%,rgba(8,16,28,.52) 68%,rgba(8,16,28,.25) 100%)}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(8,16,28,.55) 0%,transparent 30%)}
.hero-inner{position:relative;z-index:2;width:100%;padding-block:4rem}
.hero-badge{display:inline-flex;align-items:center;gap:.5em;background:rgba(227,192,116,.14);
  border:1px solid rgba(227,192,116,.4);color:var(--gold-bright);padding:.5em 1.1em;
  border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  backdrop-filter:blur(4px)}
.hero h1{color:#fff;font-size:clamp(2.7rem,7vw,5.4rem);line-height:.98;margin:1.3rem 0;
  max-width:16ch;text-transform:uppercase;font-weight:900}
.hero h1 em{font-family:var(--font-serif);font-style:italic;font-weight:400;
  color:var(--gold-bright);text-transform:none}
.hero-sub{font-size:clamp(1.05rem,2vw,1.3rem);color:#dbe4ef;max-width:46ch;margin-bottom:2rem;
  font-weight:400}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap}
.hero-trust{display:flex;gap:2rem;margin-top:2.6rem;flex-wrap:wrap}
.hero-trust div{display:flex;flex-direction:column}
.hero-trust b{font-family:var(--font-display);font-size:1.7rem;color:#fff;font-weight:800}
.hero-trust span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#9fb0c6}

/* ============================================================ BRAND MARQUEE (real logos, single scrolling line) */
.brandbar{background:var(--navy-900);border-top:1px solid rgba(255,255,255,.07);
  padding:1.15rem 0;overflow:hidden;position:relative}
.brandbar::before,.brandbar::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.brandbar::before{left:0;background:linear-gradient(90deg,var(--navy-900),transparent)}
.brandbar::after{right:0;background:linear-gradient(270deg,var(--navy-900),transparent)}
.brandbar-marquee{display:flex;width:max-content}
.brandbar-set{display:flex;align-items:center;gap:clamp(2.5rem,6vw,5rem);
  list-style:none;margin:0;padding:0 clamp(1.25rem,3vw,2.5rem) 0 0}
.brandbar-set li{list-style:none;flex:0 0 auto;display:flex;align-items:center}
/* height/max-width forced with !important: Elementor's global `img{max-width:100%}`
   otherwise wins (loads after the theme) and blows the logos up to full size. */
.brandbar-set img{height:28px!important;width:auto!important;max-width:120px!important;object-fit:contain;
  filter:brightness(0) invert(1);opacity:.62;transition:opacity var(--t)}
.brandbar-set li:hover img{opacity:1}
@media (prefers-reduced-motion: no-preference){
  .brandbar-marquee{animation:hsMarquee 32s linear infinite}
  .brandbar:hover .brandbar-marquee{animation-play-state:paused}
}
@keyframes hsMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:560px){.brandbar-set img{height:20px!important;max-width:92px!important}.brandbar-set{gap:2.4rem}}

/* ============================================================ CATEGORY GRID
   Premium light cards: a real product photo floats on a clean white stage; the
   label lives in a footer below (navy name + gold uppercase sub-label that
   nudges on hover). Replaces the old full-bleed dark photo tiles. */
.cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.1rem}
.cat-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;text-decoration:none;
  box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold)}
.cat-card img{width:100%;aspect-ratio:1/1;object-fit:contain;padding:14%;background:#fff;
  transition:transform .5s ease}
.cat-card:hover img{transform:scale(1.06)}
.cat-card-label{padding:.85rem 1rem 1rem;border-top:1px solid var(--line);background:#fff;
  display:flex;flex-direction:column;gap:.2rem}
.cat-card-label b{font-family:var(--font-display);font-weight:800;font-size:.98rem;
  color:var(--navy-800);line-height:1.16;letter-spacing:-.01em;text-wrap:balance;display:block;
  /* reserve two lines so a 1-line and a 2-line name align their sub-labels (even footers) */
  min-height:2.32em}
.cat-card-label span{font-size:.74rem;color:var(--gold-ink);font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;display:inline-flex;align-items:center;gap:.35em;
  transition:color var(--t),transform var(--t)}
.cat-card:hover .cat-card-label span{color:var(--navy-700);transform:translateX(3px)}

/* ============================================================ FEATURE / STEPS */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:2rem 1.8rem;transition:all var(--t)}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}
.feature-ico{width:56px;height:56px;border-radius:14px;background:var(--cream);
  color:var(--navy-700);display:grid;place-items:center;margin-bottom:1.1rem}
.feature-ico svg{width:28px;height:28px}
.feature h3{font-size:1.22rem;margin-bottom:.4rem}
.feature p{color:var(--muted);font-size:.97rem;margin:0}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:step}
.step{position:relative;padding-top:1rem}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--font-display);
  font-weight:800;font-size:2.4rem;color:var(--gold);opacity:.5;display:block;line-height:1;
  margin-bottom:.6rem}
.step h3{font-size:1.1rem;margin-bottom:.3rem}
.step p{color:var(--muted);font-size:.94rem;margin:0}
.section--navy .step p{color:#9fb0c6}

/* ============================================================ BULK / CTA banner */
.bulk-banner{position:relative;border-radius:calc(var(--radius)*1.4);overflow:hidden;
  background:var(--navy-800);color:#fff;padding:clamp(2.5rem,5vw,4rem);
  display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:center}
.bulk-banner::before{content:"";position:absolute;inset:0;opacity:.2;
  background:url(assets/img/bulk-bg.jpg) center/cover}
.bulk-banner>*{position:relative;z-index:2}
.bulk-banner h2{color:#fff;font-size:clamp(1.9rem,4vw,3rem)}
.bulk-banner .serif-accent{color:var(--gold-bright)}
.bulk-tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1.4rem}
.bulk-tier{background:rgba(255,255,255,.08);border:1px solid rgba(227,192,116,.3);
  border-radius:12px;padding:1.1rem .8rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem}
.bulk-tier b{display:block;font-family:var(--font-display);font-size:1.6rem;color:var(--gold-bright)}
.bulk-tier span{font-size:.78rem;color:#bccadb;letter-spacing:.04em}

/* ============================================================ TESTIMONIALS */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.testi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem;
  position:relative}
.testi .stars{color:var(--gold);letter-spacing:2px;margin-bottom:.8rem}
.testi p{font-family:var(--font-serif);font-size:1.12rem;font-style:italic;color:var(--ink-soft);
  line-height:1.5}
.testi cite{display:block;margin-top:1rem;font-style:normal;font-weight:700;color:var(--navy-900);
  font-family:var(--font-body);font-size:.95rem}
.testi cite span{display:block;color:var(--muted);font-weight:500;font-size:.85rem}

/* ============================================================ SOCIAL PROOF */
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.proof{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.8rem 1.4rem;text-align:center;transition:all var(--t)}
.proof:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}
.proof b{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,2.6vw,2rem);
  color:var(--navy-800);line-height:1.05;margin-bottom:.35rem}
.proof span{font-size:.86rem;color:var(--muted);letter-spacing:.02em}
.proof-cta{text-align:center;margin-top:2.2rem}
.proof-cta .btn{display:inline-flex;align-items:center;gap:.5em}
@media(max-width:760px){.proof-grid{grid-template-columns:1fr 1fr}}

/* ============================================================ PAGE (generic) */
.page-hero{background:var(--navy-900);color:#fff;padding:4.5rem 0 4rem;text-align:center;
  position:relative}
.page-hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;
  background:repeating-linear-gradient(90deg,var(--gold) 0 14px,transparent 14px 26px)}
.page-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);text-transform:uppercase}
.page-hero p{color:#9fb0c6;max-width:54ch;margin:0 auto}
.page-body{padding:clamp(3rem,6vw,5rem) 0;font-size:1.06rem}
.page-body h2{font-size:1.8rem;margin-top:2rem}
.page-body h3{font-size:1.3rem;margin-top:1.6rem}
.page-body img{border-radius:var(--radius);margin:1.5rem 0}

/* ============================================================ CATEGORY NAV BAR */
.hs-catbar{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center;
  margin:1.6rem auto .5rem;max-width:var(--maxw);padding-inline:var(--gutter)}
.hs-catbar a{font-family:var(--font-body);font-weight:600;font-size:.92rem;color:var(--navy-800);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:.55em 1.15em;
  transition:all var(--t);white-space:nowrap}
.hs-catbar a:hover{border-color:var(--gold);color:var(--gold-deep)}
.hs-catbar a.is-active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
@media(max-width:760px){
  .hs-catbar{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
    -webkit-overflow-scrolling:touch;scrollbar-width:none}
  .hs-catbar::-webkit-scrollbar{display:none}
}

/* ============================================================ RESPONSIVE */
@media(max-width:1024px){
  .cat-grid{grid-template-columns:repeat(4,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .bulk-banner{grid-template-columns:1fr}
}
@media(max-width:760px){
  .cat-grid{grid-template-columns:repeat(3,1fr);gap:1rem}
  /* narrower cards: shrink the tile label so names wrap cleanly, not mid-word */
  .cat-card-label{padding:.7rem .85rem .85rem}
  .cat-card-label b{font-size:.9rem}
}
@media(max-width:1100px){
  body{font-size:16px}
  /* Centered mobile header: hamburger left · logo centre · cart right (all row 1) */
  .header-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem}
  .nav-toggle{display:grid;grid-area:1/1;justify-self:start}
  .brand{grid-area:1/2;justify-self:center}
  .header-actions{grid-area:1/3;justify-self:end}
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
  /* Desktop nav hidden on mobile — navigation is served by the body-root #hs-mnav
     overlay (see "Mobile menu overlay" block), which lives OUTSIDE the sticky
     header's stacking context so its links are the topmost touch target. */
  .main-nav{display:none}
  .nav-toggle{display:grid}
  .feature-grid,.steps,.testi-grid{grid-template-columns:1fr}
  .steps{gap:2rem}
  .hero-trust{gap:1.4rem}
  .footer-grid{grid-template-columns:1fr;gap:2rem}
  .hs-split,.hs-imgrow{grid-template-columns:1fr;gap:1.6rem}
  .hs-imgrow{grid-template-columns:1fr 1fr}
  /* designer placeholder: stop the absolute tag overlapping the heading */
  .hs-designer-ph{flex-wrap:wrap;padding-top:2.4rem}
  .hs-designer-ph__tag{top:.7rem;left:.8rem;right:auto}
}
@media(max-width:560px){
  .cat-grid{grid-template-columns:1fr 1fr;gap:.8rem}
  /* phone tiles: tighter footer padding + smaller name so titles fit cleanly */
  .cat-card-label{padding:.65rem .75rem .8rem}
  .cat-card-label b{font-size:.86rem}
  .cat-card-label span{font-size:.67rem;letter-spacing:.05em}
  /* Hero CTAs: auto-width pills, left-aligned, with breathing room before the
     stats — not two full-bleed chunky bars. */
  .hero-cta{flex-direction:column;align-items:flex-start;gap:.7rem;margin-bottom:.4rem}
  .hero-cta .btn{width:auto}
  .hero-cta .btn--lg{padding:.8em 1.6em;font-size:.95rem}
  .promo-bar .sep{display:none}
  .promo-bar span.opt{display:none}
}

/* ============================================================ MOTION
   Tasteful, on-brand, performant. All gated on .hs-js (added by an
   inline head script) so no-JS users see everything, and wrapped in
   prefers-reduced-motion:no-preference so reduced-motion users get a
   static page. JS (.hs-reveal/.is-in) handles scroll reveal + count-up.
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  /* scroll reveal (class added by JS; in-view elements get .is-in synchronously → no flash) */
  .hs-js .hs-reveal{opacity:0;transform:translateY(26px);
    transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1);
    transition-delay:var(--d,0ms)}
  .hs-js .hs-reveal.is-in{opacity:1;transform:none}

  /* hero entrance — staggered fade-up on load */
  .hs-js .hero-inner > *{opacity:0;animation:hsUp .85s cubic-bezier(.2,.7,.2,1) both}
  .hs-js .hero .hero-badge{animation-delay:.12s}
  .hs-js .hero h1{animation-delay:.24s}
  .hs-js .hero .hero-sub{animation-delay:.42s}
  .hs-js .hero .hero-cta{animation-delay:.56s}
  .hs-js .hero .hero-trust{animation-delay:.7s}
  @keyframes hsUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

  /* hero — slow ken-burns drift on the machine photo */
  .hs-js .hero-bg img{animation:hsKen 22s ease-out both}
  @keyframes hsKen{from{transform:scale(1.09)}to{transform:scale(1.0)}}

  /* promo bar shimmer on the gold words (very subtle) */
  .hs-js .brand-logo{transition:transform var(--t)}
  .hs-js .brand:hover .brand-logo{transform:translateY(-1px) scale(1.02)}

  /* CTA arrow nudge */
  .hs-js .btn{transition:all var(--t)}
}

/* respect reduced motion */
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto}}

/* ===== Elementor homepage — full-bleed shim =====
 * The Home page (675) is built in Elementor on the full-width template; its sections
 * hold the original front-page.php markup. Elementor still boxes each section's
 * container at the kit width (1140px), which would inset the full-bleed navy/cream
 * section backgrounds. Scoped to these specific Elementor element IDs (which exist
 * only on the home + its preview), so no other Elementor page is affected:
 * remove the container cap + padding so the theme <section> spans edge-to-edge and
 * the theme's own .container re-centres the content — matching the hand-coded home. */
.elementor-element-hshmpre > .elementor-container,
.elementor-element-hshmpost > .elementor-container,
.elementor-element-hshmfeat > .elementor-container{max-width:100%!important;padding-left:0;padding-right:0}
.elementor-element-hshmpre .elementor-widget-container,
.elementor-element-hshmpost .elementor-widget-container{padding:0}
.hs-el-feat .elementor-widget:not(:last-child){margin-bottom:0}

/* ============================================================ HEADER SEARCH (review #1)
   Toggle button sits in .header-actions; panel drops under the sticky header with
   live product suggestions (WC Store API). Mobile search lives in the menu overlay. */
.hs-search{position:absolute;top:100%;right:var(--gutter);width:min(420px,92vw);
  background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);
  padding:12px;z-index:1500;display:none}
.hs-search.is-open{display:block}
.hs-search-form{display:flex;gap:.5rem}
.hs-search-form input[type=search]{flex:1;min-width:0;border:1px solid var(--line);border-radius:999px;
  padding:.62em 1em;font:inherit;font-size:.95rem;color:var(--ink);background:#fff}
.hs-search-form input[type=search]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,162,74,.18)}
.hs-search-form button{flex:0 0 auto;background:var(--gold);color:var(--navy-900);border:0;border-radius:999px;
  font-weight:700;padding:.55em 1.1em;cursor:pointer;font:inherit;font-size:.9rem}
.hs-search-form button:hover{background:var(--gold-bright)}
.hs-search-results{list-style:none;margin:.6rem 0 0;padding:0;max-height:62vh;overflow:auto}
.hs-search-results li{margin:0}
.hs-search-results a{display:flex;align-items:center;gap:.7rem;padding:.5rem;border-radius:10px;text-decoration:none}
.hs-search-results a:hover{background:var(--cream)}
.hs-search-results img{width:46px;height:46px;flex:0 0 46px;object-fit:contain;background:#fff;
  border:1px solid var(--line);border-radius:8px}
.hs-sr-name{font-size:.9rem;font-weight:600;color:var(--navy-800);line-height:1.2}
.hs-sr-sku{display:block;font-size:.74rem;font-weight:600;color:var(--muted);letter-spacing:.03em}
.hs-sr-price{font-size:.82rem;font-weight:700;color:var(--gold-ink)}
/* style number under the title on search-result cards (operator ask 2026-07-04) */
.search .products .product .hs-loop-sku{
  font-size:.76rem;font-weight:600;color:var(--muted);letter-spacing:.03em;margin:.15rem 0 0}
.hs-search-msg{padding:.55rem;color:var(--muted);font-size:.9rem}
.hs-search-all{display:block;text-align:center;margin-top:.4rem;padding:.5rem;font-size:.85rem;
  font-weight:700;color:var(--navy-700);text-decoration:none;border-top:1px solid var(--line)}
.hs-search-all:hover{color:var(--gold-ink)}

/* mobile search inside the menu overlay */
.hs-mnav__search{margin:2.6rem 0 1.1rem}
.hs-mnav__search form{display:flex;gap:.5rem}
.hs-mnav__search input[type=search]{flex:1;min-width:0;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:.72em 1em;font:inherit}
.hs-mnav__search input[type=search]::placeholder{color:#aebfd2}
.hs-mnav__search button{flex:0 0 auto;background:var(--gold);color:var(--navy-900);border:0;
  border-radius:999px;font-weight:700;padding:.6em 1em;font:inherit}

/* ============================================================ FPD LOADING STATE (review #14)
   Branded overlay over the gallery column while the designer boots. main.js mounts it
   on ?start_customizing and removes it when the FPD stage is ready (failsafe timeout). */
.hs-fpd-loading{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1rem;background:var(--cream);border-radius:14px}
.hs-fpd-spin{width:44px;height:44px;border-radius:50%;border:3px solid var(--line);
  border-top-color:var(--gold);animation:hsspin .8s linear infinite}
@keyframes hsspin{to{transform:rotate(360deg)}}
.hs-fpd-loading span{font-family:var(--font-body);font-weight:700;color:var(--navy-700);letter-spacing:.02em}

/* ============================================================ EMPTY CART CROSS-SELL (review #14) */
.hs-empty-pop{margin-top:2.5rem}
.hs-empty-pop h2{font-size:clamp(1.4rem,3vw,1.9rem);text-align:center;margin-bottom:1.4rem}

/* ============================================================ PDP SHIPPING/TURNAROUND LINE (review #9) */
.hs-pdp-ship{display:flex;align-items:flex-start;gap:.5rem;margin:.4rem 0 1.1rem;
  font-size:.92rem;color:var(--ink-soft);line-height:1.5}
.hs-pdp-ship .hs-pdp-ship-ic{color:var(--gold-ink);flex:none;font-weight:700}

/* ============================================================ ELEMENTOR CONTENT LINKS (review #6)
   Stray content links inherited Elementor's default blue (#12599b). Force brand navy.
   (The Elementor *global* accent should also be set to navy in Site Settings.) */
.elementor-widget-text-editor a,.elementor-widget-heading a,.page-body a{color:var(--navy-700)}
.elementor-widget-text-editor a:hover,.elementor-widget-heading a:hover,.page-body a:hover{color:var(--gold-ink)}

/* PDP gallery image: explicit white behind the (transparent-bg) product PNG (review #13) */
.hs-car-img{background:#fff}

/* ============================================================ ACCESSIBILITY (overnight pass 1)
   1) Skip-to-content link (WCAG 2.4.1 Bypass Blocks) — off-screen until keyboard focus.
   2) Consistent keyboard focus ring (WCAG 2.4.7 Focus Visible) — navy outline is never
      clipped and reads on cream/white/gold; a gold halo box-shadow carries contrast on the
      dark navy sections. Mouse users are unaffected (:focus-visible only). */
.skip-link{position:fixed;top:-120px;left:1rem;z-index:100000;background:var(--navy-900);color:#fff;
  padding:.75em 1.3em;border-radius:0 0 12px 12px;font-family:var(--font-body);font-weight:700;
  font-size:.95rem;letter-spacing:.01em;text-decoration:none;box-shadow:var(--shadow);
  transition:top .18s ease}
.skip-link:focus{top:0;color:#fff;outline:3px solid var(--gold-bright);outline-offset:2px}
:focus-visible{outline:2px solid var(--navy-900);outline-offset:2px;
  box-shadow:0 0 0 4px rgba(227,192,116,.6)}
/* programmatic focus targets (skip-link landing) shouldn't paint a ring */
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none;box-shadow:none}

/* ============================================================ 404 (overnight pass 2)
   Branded not-found page (404.php). Reuses .page-hero (navy) + .btn; only the eyebrow
   needs lightening for the dark hero. Search + popular-category chips route back in. */
.page-hero--404 .eyebrow,.page-hero--search .eyebrow{color:var(--gold-bright);justify-content:center}
/* Search results page (overnight pass 7) */
.hs-search-empty-lead{font-size:1.1rem;color:var(--muted);margin:0 auto 1.6rem;max-width:48ch}
.hs-search-misc{margin-top:2.4rem}
.hs-search-misc__head{font-family:var(--font-display);font-size:1.3rem;margin-bottom:.6rem}
.hs-search-misc ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.hs-search-misc a{color:var(--navy-700);font-weight:600}
.hs-search-misc a:hover{color:var(--gold-deep)}

/* ============================================================ PRINT (overnight pass 8)
   Ink-friendly printing for PDP / content / cart: drop site chrome + interactive and
   designer UI, force black-on-white, and avoid awkward page breaks. */
@media print{
  *{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}
  body{background:#fff !important}
  .promo-bar,.site-header,.site-footer,.hs-mnav,.hs-search,.nav-toggle,.skip-link,
  #hs-preloader,.hs-filter-toggle,.hs-catbar,.hs-shop-rail,.related.products,.hs-empty-pop,
  .single_add_to_cart_button,.fpd-start-customizing-button,.fpd-catalog-customize,
  .fpd-container,.hs-fpd-loading,.hs-fcar-arrow,.hs-fcar-arrows,.hs-fcar-thumbs,.proof-cta,
  .hs-decoration,.hs-decor-pilot,form.cart .quantity,.page-hero::after{display:none !important}
  a{text-decoration:underline}
  .page-hero{padding:1.2rem 0 .8rem !important}
  .container,.container.narrow{max-width:100% !important;width:100% !important}
  img{max-width:100% !important;page-break-inside:avoid}
  h1,h2,h3{page-break-after:avoid}
  .price{font-size:1.25rem !important;font-weight:700}
}
.hs-404-search{display:flex;gap:.6rem;max-width:520px;margin:0 auto 1.8rem}
.hs-404-search input[type=search]{flex:1;min-width:0;border:1px solid var(--line);border-radius:999px;
  padding:.85em 1.3em;font:inherit;font-size:1rem;background:#fff;color:var(--ink)}
.hs-404-search input[type=search]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,162,74,.18)}
.hs-404-search button{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;background:var(--gold);
  color:var(--navy-900);border:0;border-radius:999px;font-weight:700;padding:.7em 1.4em;cursor:pointer;font:inherit}
.hs-404-search button:hover{background:var(--gold-bright)}
.hs-404-search button svg{width:18px;height:18px}
.hs-404-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.4rem}
.hs-404-cats__label{display:block;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-ink);font-weight:700;margin-bottom:.85rem}
.hs-404-cats ul{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;padding:0;margin:0}
.hs-404-cats li{margin:0}
.hs-404-cats a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.5em 1.1em;
  font-size:.92rem;color:var(--navy-700);background:#fff;transition:all var(--t)}
.hs-404-cats a:hover{border-color:var(--gold);color:var(--gold-deep)}
@media(max-width:480px){.hs-404-search{flex-direction:column}.hs-404-search button{justify-content:center}}

/* ============================================================
 * MEGA MENU (2026-06-24) — taxonomy-driven, imagery-rich.
 * Desktop hover/focus panels + mobile <details> accordion.
 * ============================================================ */
.hs-meganav{display:flex;align-items:center;gap:.1rem;flex-wrap:wrap}
.hs-mega{position:static}
.hs-mega__trigger,.hs-meganav__link{font-weight:600;font-size:.96rem;color:var(--ink-soft);padding:.5em .85em;border-radius:10px;display:inline-flex;align-items:center;gap:.4em;text-decoration:none;white-space:nowrap;transition:color var(--t),background var(--t)}
.hs-mega__trigger:hover,.hs-meganav__link:hover,.hs-mega:hover .hs-mega__trigger,.hs-mega:focus-within .hs-mega__trigger{color:var(--navy-900);background:rgba(28,62,96,.06)}
.hs-caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;transition:transform var(--t)}
.hs-mega:hover .hs-caret,.hs-mega:focus-within .hs-caret{transform:rotate(225deg) translateY(-2px);opacity:.9}

.hs-mega__panel{position:absolute;left:0;right:0;top:100%;background:var(--cream);border-top:1px solid var(--line);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity var(--t),transform var(--t),visibility var(--t);z-index:70}
.hs-mega:hover .hs-mega__panel,.hs-mega:focus-within .hs-mega__panel{opacity:1;visibility:visible;transform:none}
.hs-mega__inner{display:flex;gap:34px;padding:26px var(--gutter) 32px;align-items:stretch}
.hs-mega__groups{display:flex;gap:38px;flex:1;min-width:0}
.hs-mega__group{min-width:0}
.hs-mega__gtitle{font:700 .72rem/1 var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.hs-mega__cards{display:grid;grid-template-columns:repeat(2,minmax(158px,1fr));gap:4px 16px}
.hs-mega__group:only-child .hs-mega__cards,.hs-mega__groups>.hs-mega__group:first-child:last-child .hs-mega__cards{grid-template-columns:repeat(3,minmax(158px,1fr))}
.hs-mega__card{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;text-decoration:none;transition:background var(--t),box-shadow var(--t)}
.hs-mega__card:hover{background:var(--white);box-shadow:var(--shadow-sm)}
.hs-mega__thumb{flex:0 0 52px;width:52px;height:52px;border-radius:10px;overflow:hidden;background:var(--white);border:1px solid var(--line);display:grid;place-items:center}
.hs-mega__thumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.hs-mega__thumb--ph{background:var(--cream-2)}
.hs-mega__cardname{font-weight:600;color:var(--ink);font-size:.94rem;line-height:1.2}
.hs-mega__count{margin-left:auto;font-size:.7rem;color:var(--muted);background:var(--cream-2);border-radius:999px;padding:2px 8px;flex:0 0 auto}
.hs-mega__feat{flex:0 0 250px;border-radius:14px;overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;color:#fff;min-height:236px;text-decoration:none;background:var(--navy-800)}
.hs-mega__feat::before{content:"";position:absolute;inset:0;background:var(--fimg,none) center/cover no-repeat;opacity:.5}
.hs-mega__feat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,26,43,.05),rgba(13,26,43,.88))}
.hs-mega__feat>*{position:relative;z-index:1}
.hs-mega__featk{font:700 .66rem/1 var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright)}
.hs-mega__feat strong{font:600 1.3rem/1.12 var(--font-serif);margin:8px 0 4px;display:block}
.hs-mega__featsub{font-size:.85rem;opacity:.86;display:block}
.hs-mega__featcta{margin-top:13px;font-weight:700;color:var(--gold-bright);display:block}
.hs-mega__inner--shopby{gap:50px}
.hs-mega__group--brands{flex:1}
.hs-brandgrid{display:grid;grid-template-columns:repeat(4,minmax(118px,1fr));gap:8px}
.hs-brand{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--white);font-weight:600;font-size:.9rem;color:var(--ink-soft);text-decoration:none;text-align:center;transition:border-color var(--t),color var(--t),box-shadow var(--t)}
.hs-brand:hover{border-color:var(--gold);color:var(--navy-900);box-shadow:var(--shadow-sm)}
.hs-mega__group--acts{flex:0 0 220px}
.hs-actrow{display:flex;flex-direction:column;gap:8px}
.hs-act{padding:11px 15px;border-radius:10px;background:var(--navy-800);color:#fff;font-weight:600;text-decoration:none;transition:background var(--t)}
.hs-act:hover{background:var(--navy-700)}
@media(max-width:980px){.hs-meganav{display:none}}

/* Mobile accordion (inside #hs-mnav) */
.hs-macc>details{border-bottom:1px solid var(--line)}
.hs-macc summary{list-style:none;cursor:pointer;font-weight:700;padding:15px 4px;display:flex;justify-content:space-between;align-items:center;color:var(--navy-900)}
.hs-macc summary::-webkit-details-marker{display:none}
.hs-macc summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform var(--t);opacity:.6}
.hs-macc details[open] summary::after{transform:rotate(225deg)}
.hs-macc__sub{list-style:none;margin:0 0 12px;padding:2px 0 2px 8px}
.hs-macc__sub a{display:flex;justify-content:space-between;align-items:center;padding:9px 4px;color:var(--ink-soft);text-decoration:none;font-weight:500}
.hs-macc__sub em{color:var(--muted);font-style:normal;font-size:.78rem}
.hs-macc__all{color:var(--gold-ink)!important;font-weight:700!important}
/* specificity fix: .main-nav a (0,1,1) was overriding white text on dark mega elements */
.main-nav .hs-mega__feat,.main-nav .hs-mega__feat strong,.main-nav .hs-mega__featsub{color:#fff}
.main-nav .hs-act{color:#fff}
.main-nav .hs-mega__trigger{color:var(--ink-soft)}

/* Combined "Shop" panel — 3 category columns (2026-06-24 nav consolidation) */
.hs-mega--shop .hs-mega__groups{gap:30px}
.hs-mega__col{flex:1;min-width:0}
.hs-mega__colhead{display:block;font:600 1.05rem/1 var(--font-serif);color:var(--navy-900);text-decoration:none;margin:0 0 12px;padding-bottom:9px;border-bottom:2px solid var(--gold)}
.hs-mega__colhead:hover{color:var(--gold-deep)}
.hs-mega__sublabel{font:700 .64rem/1 var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:13px 0 4px}
.hs-mega--shop .hs-mega__cards{grid-template-columns:1fr;gap:1px}
.hs-mega--shop .hs-mega__card{padding:6px 8px;gap:11px}
.hs-mega--shop .hs-mega__thumb{flex:0 0 42px;width:42px;height:42px}
.hs-mega--shop .hs-mega__cardname{font-size:.92rem}

/* Shop filter rail — grouped categories + side-cart empty CTA (2026-06-24) */
.hs-cat-grph{display:block;font:700 .82rem/1.2 var(--font-display);letter-spacing:.03em;color:var(--navy-900);text-decoration:none;margin:13px 0 3px;padding-top:11px;border-top:1px solid var(--line)}
.hs-cat-grph:first-of-type{border-top:0;padding-top:6px}
.hs-cat-grph:hover,.hs-cat-grph.is-active{color:var(--gold-deep)}
.hs-cat--sub{padding-left:13px}
.hs-cartd__empty-cta{display:block;text-align:center;margin:16px auto 6px;max-width:240px}

/* Brand logos in the mega menu (2026-06-24) */
.hs-brand--logo{display:grid;place-items:center;padding:8px 12px;min-height:46px}
.hs-brand__logo{max-height:24px;max-width:118px;width:auto;height:auto;object-fit:contain;display:block}

/* ===== Mobile multi-step drill-down menu (2026-06-24) — dark panel, light text ===== */
.hs-mnav__panel{overflow:hidden}                 /* steps scroll internally, CTA stays pinned */
.hs-msteps{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;margin-top:.3rem}
.hs-mstep{position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;
  transform:translateX(100%);opacity:0;visibility:hidden;
  transition:transform .34s cubic-bezier(.2,.7,.2,1),opacity .2s ease,visibility .34s}
.hs-mstep.is-active{transform:none;opacity:1;visibility:visible}
.hs-mrow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:none;border:0;
  border-bottom:1px solid rgba(255,255,255,.09);cursor:pointer;font:600 1.12rem/1.25 var(--font-body);
  color:#eaf1f9;padding:.9em .3em;text-decoration:none;-webkit-tap-highlight-color:transparent}
.hs-mrow:active,.hs-mrow:hover{color:var(--gold-bright)}
.hs-mrow--drill{justify-content:space-between}
.hs-mrow--drill i{width:9px;height:9px;border-right:2px solid var(--gold-bright);border-bottom:2px solid var(--gold-bright);transform:rotate(-45deg);flex:0 0 auto;margin-right:4px}
.hs-mrow--leaf>span:not(.hs-mthumb){flex:1}
.hs-mrow--leaf em{font-style:normal;font-size:.76rem;color:#cdd9e6;background:rgba(255,255,255,.1);border-radius:999px;padding:3px 10px}
.hs-mthumb{flex:0 0 42px;width:42px;height:42px;border-radius:10px;overflow:hidden;background:#fff;display:grid;place-items:center}
.hs-mthumb img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.hs-mback{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;background:none;border:0;
  color:var(--gold-bright);font:700 .78rem/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:.3em .2em .7em}
.hs-mtitle{font:600 1.5rem/1 var(--font-serif);color:#fff;margin:0 0 .5em;padding-bottom:.5rem;border-bottom:2px solid var(--gold)}
.hs-mrow--all{color:var(--gold-bright);font-weight:700;border-bottom:0;margin-top:.4rem}

/* Brand chips → dark, logos as white silhouettes so every brand logo shows (2026-06-24) */
.hs-brandgrid .hs-brand{background:var(--navy-800);color:#fff;border-color:transparent}
.hs-brandgrid .hs-brand:hover{background:var(--navy-700);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}
.hs-brand--logo .hs-brand__logo{filter:brightness(0) invert(1);opacity:.95}
.brandbar-set a{display:inline-flex;align-items:center}

/* ===== Size & Placement Guide (overnight pass 5) ===== */
.hs-pg{max-width:980px;margin:0 auto}
.hs-pg-lede{font-size:1.15rem;line-height:1.6;color:#3a4654;margin-bottom:2rem}
.hs-pg h2{margin:2.6rem 0 .8rem;font-size:1.5rem;color:#13283f}
.hs-pg-tablewrap{overflow-x:auto;margin:1rem 0}
.hs-pg-table{width:100%;border-collapse:collapse;font-size:.97rem}
.hs-pg-table th,.hs-pg-table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid #e7e9ef}
.hs-pg-table thead th{background:#13283f;color:#fff;font-weight:600}
.hs-pg-table tbody tr:nth-child(even){background:#f6f8fb}
.hs-pg-note{font-size:.92rem;color:#6a7480;font-style:italic;margin-top:.5rem}
.hs-pg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin:1.4rem 0}
.hs-pg-card{border:1px solid #e7e9ef;border-radius:12px;padding:1.2rem;background:#fff;box-shadow:0 2px 10px rgba(19,40,63,.05)}
.hs-pg-diagram{display:flex;justify-content:center;margin-bottom:.6rem}
.hs-pg-diagram svg{width:118px;height:auto}
.hs-pg-card h3{margin:.2rem 0 .6rem;color:#13283f;font-size:1.15rem}
.hs-pg-card ul{list-style:none;padding:0;margin:0}
.hs-pg-card li{padding:.4rem 0;border-bottom:1px dashed #eceef3;font-size:.93rem;color:#3a4654}
.hs-pg-card li:last-child{border-bottom:0}
.hs-pg-card li b{color:#13283f}
.hs-pg-card li span{display:inline-block;margin-left:.4rem;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#9a7b27;background:#f6efd9;padding:.08rem .42rem;border-radius:99px;vertical-align:middle}
.hs-pg-methods{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:1rem 0}
.hs-pg-methods>div{background:#f6f8fb;border-radius:12px;padding:1.1rem 1.2rem}
.hs-pg-methods h4{margin:0 0 .4rem;color:#13283f}
.hs-pg-cta{margin:3rem 0 1rem;padding:2rem;border-radius:16px;background:linear-gradient(135deg,#13283f,#1d3a5c);color:#fff;text-align:center}
.hs-pg-cta h2{color:#fff;margin:0 0 .4rem}
.hs-pg-cta p{color:#cdd8e6;margin:0 0 1.2rem}
.hs-pg-cta .btn{margin:.3rem}
.hs-pg-cta .btn--ghost{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff}
@media(max-width:640px){.hs-pg-methods{grid-template-columns:1fr}}

/* ===== Social proof / reviews band (overnight pass 6) ===== */
.hs-rev{background:#f6f8fb;border-top:1px solid #e7e9ef;padding:3rem 0;margin-top:2rem}
.hs-rev__head{text-align:center;margin-bottom:1.4rem}
.hs-rev__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#9a7b27}
.hs-rev__head h2{margin:.3rem 0 0;color:#13283f;font-size:1.7rem}
.hs-rev__rating{display:flex;align-items:center;justify-content:center;gap:.8rem;margin:0 auto 1.6rem;flex-wrap:wrap}
.hs-rev__score{font-size:2.8rem;font-weight:800;color:#13283f;line-height:1}
.hs-rev__stars{color:#c8a24a;font-size:1.5rem;letter-spacing:.1em}
.hs-rev__ratingtxt{font-size:.9rem;color:#5a6573;text-align:left;line-height:1.4}
.hs-rev__ratingtxt a{color:#13283f;font-weight:600}
.hs-rev__pills{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;padding:0;margin:0 auto;max-width:880px}
.hs-rev__pills li{background:#fff;border:1px solid #e3e7ee;border-radius:99px;padding:.5rem 1rem;font-size:.88rem;color:#3a4654;font-weight:500}
.hs-rev__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin-top:1.8rem}
.hs-rev__card{background:#fff;border:1px solid #e7e9ef;border-radius:12px;padding:1.3rem;box-shadow:0 2px 10px rgba(19,40,63,.05)}
.hs-rev__card blockquote{margin:0 0 .8rem;font-size:1rem;line-height:1.55;color:#2c3744;font-style:italic}
.hs-rev__card figcaption{font-size:.86rem;color:#13283f}
.hs-rev__card figcaption strong{display:block}
.hs-rev__card figcaption span{color:#7a8492;font-weight:400}

/* ===== Image lightbox (overnight pass 7) ===== */
.hs-lbox{position:fixed;inset:0;z-index:100000;background:rgba(10,20,33,.92);display:flex;align-items:center;justify-content:center}
.hs-lbox[hidden]{display:none}
.hs-lbox__img{max-width:90vw;max-height:86vh;border-radius:8px;box-shadow:0 12px 48px rgba(0,0,0,.55);background:#fff}
.hs-lbox__close{position:absolute;top:.8rem;right:1.2rem;background:none;border:0;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer;padding:.2rem .5rem}
.hs-lbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:0;color:#fff;font-size:2.4rem;line-height:1;width:50px;height:66px;border-radius:8px;cursor:pointer}
.hs-lbox__nav:hover{background:rgba(255,255,255,.24)}
.hs-lbox__prev{left:1rem}
.hs-lbox__next{right:1rem}
img[data-hs-zoom]{cursor:zoom-in}
@media(max-width:640px){.hs-lbox__nav{width:42px;height:56px;font-size:2rem}}

/* ===== FAQ / help hub (overnight pass 8) ===== */
.hs-faqhub{max-width:820px;margin:0 auto}
.hs-faqhub__item{border:1px solid #e3e7ee;border-radius:12px;background:#fff;margin-bottom:.7rem;overflow:hidden}
.hs-faqhub__item[open]{box-shadow:0 4px 16px rgba(19,40,63,.07)}
.hs-faqhub__q{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.2rem;font-weight:600;color:#13283f;font-size:1.04rem}
.hs-faqhub__q::-webkit-details-marker{display:none}
.hs-faqhub__icon{position:relative;flex:0 0 18px;width:18px;height:18px}
.hs-faqhub__icon::before,.hs-faqhub__icon::after{content:"";position:absolute;background:#c8a24a;border-radius:2px;transition:transform .25s ease,opacity .25s ease}
.hs-faqhub__icon::before{top:8px;left:0;width:18px;height:2.5px}
.hs-faqhub__icon::after{top:0;left:8px;width:2.5px;height:18px}
.hs-faqhub__item[open] .hs-faqhub__icon::after{transform:rotate(90deg);opacity:0}
.hs-faqhub__a{padding:0 1.2rem 1.15rem;color:#3a4654;line-height:1.6}
.hs-faqhub__a a{color:#13283f;font-weight:600}
.hs-faqhub__cta{text-align:center;margin-top:1.6rem;color:#5a6573}
.hs-faqhub__cta a{color:#13283f;font-weight:600}

/* ===== Bulk / team orders landing (overnight pass 9) ===== */
.hs-bulk-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:900px;margin:0 auto 2.6rem}
.hs-bulk-props>div{background:#f6f8fb;border:1px solid #e3e7ee;border-radius:12px;padding:1.1rem 1.2rem;text-align:center}
.hs-bulk-props strong{display:block;color:#13283f;font-size:1.05rem;margin-bottom:.2rem}
.hs-bulk-props span{color:#5a6573;font-size:.9rem}
.hs-bulk-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;max-width:820px;margin:0 auto}
.hs-bulk-tier{background:#fff;border:1px solid #e3e7ee;border-radius:14px;padding:1.4rem 1rem;text-align:center;box-shadow:0 2px 10px rgba(19,40,63,.05)}
.hs-bulk-tier__pct{display:block;font-size:2.2rem;font-weight:800;color:#c8a24a;line-height:1}
.hs-bulk-tier__lbl{display:block;margin-top:.35rem;color:#3a4654;font-size:.92rem;font-weight:600}
.hs-bulk-steps{margin:1rem 0 0;padding-left:1.2rem;line-height:1.6;color:#3a4654}
.hs-bulk-steps li{margin-bottom:.7rem}
.hs-bulk-steps strong{color:#13283f}
.hs-bulk-cta{margin:3rem auto 1rem;padding:2.4rem;border-radius:16px;background:linear-gradient(135deg,#13283f,#1d3a5c);color:#fff;text-align:center;max-width:900px}
.hs-bulk-cta h2{color:#fff;margin:0 0 .4rem}
.hs-bulk-cta p{color:#cdd8e6;margin:0 0 1.3rem}
.hs-bulk-cta .btn{margin:.3rem}
.hs-bulk-cta .btn--ghost{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff}

/* ===== Live bulk-savings calculator (overnight pass 10) ===== */
.hs-calc{max-width:680px;margin:1.8rem auto 0;background:#fff;border:1px solid #e3e7ee;border-radius:16px;padding:1.6rem;box-shadow:0 4px 18px rgba(19,40,63,.06)}
.hs-calc__row{display:flex;gap:1rem;flex-wrap:wrap}
.hs-calc__row label{flex:1 1 200px;display:flex;flex-direction:column;font-size:.82rem;font-weight:600;color:#13283f;gap:.35rem;text-transform:uppercase;letter-spacing:.03em}
.hs-calc__row input{font-size:1.1rem;padding:.6rem .7rem;border:1px solid #cdd5e0;border-radius:9px;color:#13283f;font-weight:600}
.hs-calc__row input:focus{outline:2px solid #c8a24a;border-color:#c8a24a}
.hs-calc__out{margin-top:1.2rem;min-height:1.2rem}
.hs-calc__hint{color:#7a8492;font-size:.92rem}
.hs-calc__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.8rem}
.hs-calc__grid>div{background:#f6f8fb;border-radius:10px;padding:.8rem .9rem}
.hs-calc__grid span{display:block;font-size:.72rem;color:#5a6573;text-transform:uppercase;letter-spacing:.03em}
.hs-calc__grid b{display:block;font-size:1.2rem;color:#13283f;margin-top:.2rem}
.hs-calc__grid s{color:#9aa4b1;font-size:.85rem;font-weight:400}
.hs-calc__save{background:#f6efd9!important}
.hs-calc__save b{color:#9a7b27}
.hs-calc__next{margin:.9rem 0 0;color:#3a4654;font-size:.92rem}
.hs-calc__note{margin:.9rem 0 0;font-size:.78rem;color:#7a8492;font-style:italic}

/* ===== "Help me choose" product finder (overnight pass 15) ===== */
.hs-finder{max-width:680px;margin:1.6rem auto 0}
.hs-finder__card{background:#fff;border:1px solid #e3e7ee;border-radius:16px;padding:1.8rem;box-shadow:0 4px 18px rgba(19,40,63,.06);text-align:center}
.hs-finder__q{margin:0 0 1.2rem;color:#13283f;font-size:1.3rem}
.hs-finder__opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem}
.hs-finder__opt{display:flex;flex-direction:column;gap:.2rem;background:#f6f8fb;border:1px solid #e3e7ee;border-radius:12px;padding:1rem;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s;color:#13283f}
.hs-finder__opt:hover{border-color:#c8a24a;transform:translateY(-2px);box-shadow:0 6px 18px rgba(19,40,63,.08)}
.hs-finder__opt b{font-size:1rem}
.hs-finder__opt span{font-size:.8rem;color:#6a7480}
.hs-finder__restart{margin-top:1.2rem;background:none;border:0;color:#6a7480;font-size:.85rem;cursor:pointer;text-decoration:underline}
.hs-finder__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#9a7b27}
.hs-finder__rtitle{margin:.3rem 0 .6rem;color:#13283f;font-size:1.5rem}
.hs-finder__bulk{background:#f6efd9;border-radius:10px;padding:.7rem .9rem;color:#3a4654;font-size:.92rem;margin:1rem 0}
.hs-finder__bulk a,.hs-finder__result a{color:#13283f;font-weight:600}
.hs-finder__cta{margin-top:1.2rem;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.hs-finder__cta .btn--ghost{background:transparent;border:1.5px solid #13283f;color:#13283f}

/* ---- 2026-07-03 operator fixes: designer thread picker + template-sides note ---- */
/* FIX 1a: the thread colour panel scrolls (desktop + mobile) instead of overflowing */
.fpd-color-palette{max-height:190px;overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;padding-right:4px}
@media (max-width:768px){.fpd-color-palette{max-height:150px}}
/* FIX 1b: every swatch carries its colour number (number only, no brand, no names) */
.fpd-color-palette .fpd-item[data-hs-num]{position:relative}
.fpd-color-palette .fpd-item[data-hs-num]::after{content:attr(data-hs-num);
  position:absolute;left:0;right:0;bottom:1px;text-align:center;font-size:8px;
  line-height:1;font-weight:700;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.85);
  pointer-events:none;font-family:var(--font-body,sans-serif)}
.hs-thread-label{font-size:12px;color:var(--navy-700,#223);margin-top:4px}
/* FIX 2: template-sides disclaimer under the designer stage */
.hs-tpl-note{font-size:12px;line-height:1.4;color:#6b7280;margin:6px 2px 0;
  text-align:center;font-family:var(--font-body,sans-serif)}
@media (max-width:768px){.hs-tpl-note{font-size:11px;margin-top:4px}}

/* ============================================================ /reviews/ page (2026-07-09) */
.hs-revpage__hero{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:2rem;display:grid;grid-template-columns:auto 1fr;gap:1.2rem 3rem;align-items:center;margin-bottom:2.2rem}
.hs-revpage__score b{font-family:var(--font-display);font-size:3.4rem;font-weight:800;color:var(--navy-900);line-height:1}
.hs-revpage__stars{display:block;color:var(--gold-deep);font-size:1.3rem;letter-spacing:.1em;margin:.2rem 0}
.hs-revpage__count{font-size:.92rem;color:var(--muted)}
.hs-revpage__count a{color:var(--gold-ink);font-weight:600;text-decoration:underline}
.hs-revpage__dist{display:flex;flex-direction:column;gap:.35rem;max-width:460px}
.hs-revpage__bar{display:grid;grid-template-columns:2.4em 1fr 3.6em;align-items:center;gap:.6rem;font-size:.85rem;color:var(--ink-soft)}
.hs-revpage__track{height:9px;background:var(--cream-2);border-radius:99px;overflow:hidden}
.hs-revpage__track i{display:block;height:100%;background:var(--gold);border-radius:99px}
.hs-revpage__bar em{font-style:normal;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.hs-revpage__note{grid-column:1/-1;margin:0;font-size:.92rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1rem}
.hs-revpage__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.1rem}
.hs-revpage__cardstars{color:var(--gold-deep);letter-spacing:.1em;margin-bottom:.5rem}
.hs-revpage__pager{display:flex;justify-content:center;align-items:center;gap:1.4rem;margin:2.4rem 0 .6rem;font-size:.95rem}
.hs-revpage__pager a{color:var(--gold-ink);font-weight:700;text-decoration:underline}
.hs-revpage__pager span{color:var(--muted)}
.hs-revpage__cta{text-align:center;margin:3rem 0 1rem}
@media(max-width:700px){.hs-revpage__hero{grid-template-columns:1fr;padding:1.4rem}}

/* ============================================================ category copy blocks + vertical landings (2026-07-09) */
.hs-catblock{max-width:820px;margin:3rem auto 1rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:1.8rem 2rem}
.hs-catblock h2{font-size:1.35rem;margin-bottom:.8rem}
.hs-catblock p{color:var(--ink-soft);line-height:1.65}
.hs-catblock .hs-faq__item{margin-top:.6rem}
.hs-catblock__links{margin-top:1.1rem;font-size:.92rem;color:var(--muted)}
.hs-catblock__links a{color:var(--gold-ink);font-weight:600;text-decoration:underline}
/* eyebrow keeps its flex layout (display:block glued the gold bar to the text);
   ghost button gets a light spec — the default navy border/text vanished on the
   dark hero. (operator 2026-07-09) */
.hs-vert__hero .eyebrow{justify-content:center;color:var(--gold-bright);margin-bottom:.9rem}
.hs-vert__sub{max-width:640px;margin:1rem auto 0;font-size:1.12rem;line-height:1.65;color:#bcc9d7}
.hs-vert__ctas{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.hs-vert__hero .btn--ghost{color:#fff;--fg:#fff;border-color:rgba(255,255,255,.45)}
.hs-vert__hero .btn--ghost:hover{--bg:#fff;color:var(--navy-900);border-color:#fff}
.hs-vert__cats{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}
.hs-vert__close{text-align:center;margin:1rem auto 2rem}
.hs-vert__close h2{margin-bottom:.6rem}
.hs-vert__close p{margin-bottom:1.4rem}

/* ============================================================ cookie notice (2026-07-10) */
.hs-cookies{position:fixed;left:1rem;bottom:1rem;z-index:1500;max-width:440px;background:var(--navy-900);
  color:#dbe4ee;border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--shadow-lg);display:flex;
  gap:1rem;align-items:center;font-size:.86rem;line-height:1.5}
.hs-cookies[hidden]{display:none !important} /* display:flex was overriding the hidden attribute */
.hs-cookies__btns{display:flex;flex-direction:column;gap:.4rem;flex:none}
.hs-cookies__no{background:transparent;color:#9fb0c2;border:1px solid rgba(255,255,255,.28);border-radius:999px;
  font-weight:600;font-family:inherit;padding:.45em 1.1em;cursor:pointer;font-size:.82rem}
.hs-cookies__no:hover{color:#fff;border-color:#fff}
.hs-cookies p{margin:0}
.hs-cookies a{color:var(--gold-bright);text-decoration:underline}
.hs-cookies__ok{flex:none;background:var(--gold);color:var(--navy-900);border:0;border-radius:999px;
  font-weight:800;font-family:inherit;padding:.55em 1.2em;cursor:pointer}
.hs-cookies__ok:hover{background:var(--gold-bright)}
@media(max-width:560px){.hs-cookies{left:.6rem;right:.6rem;bottom:.6rem;max-width:none;flex-direction:column;align-items:stretch;text-align:center}}
