/* generated 2026-09-04T15:53:41+00:00 */

/* ===================== HEADER: solid dark + shrink on scroll (no white flash) ===================== */
/* Announcement bar (top row) stays solid obsidian always */
.site-top-header-wrap .site-header-row-container-inner{background:#0C0D11 !important}

/* Stacking context: header sits above all page content (filter bar is z-index:30) */
#masthead{ z-index:200; }
#masthead .header-navigation ul.sub-menu,
#masthead .header-menu-container ul ul{ z-index:201 !important; }

/*
 * CRITICAL: Kadence global CSS paints `#masthead` (and sticky scrolled states) WHITE
 * (`kadence-global-inline-css`: background:rgb(255,255,255)). During the tall→compact
 * height transition the fixed bar shrinks over that white shell / content underneath,
 * producing a visible white flash on our dark site. Kill every white shell and never
 * use translucent sticky backgrounds that composite against it.
 */
#masthead,
#masthead.site-header,
.site-main-header-wrap,
.site-main-header-wrap.kadence-sticky-header,
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start):not(.site-header-row-container):not(.site-main-header-wrap),
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner{
  background-color:#0B0C10 !important;
  background-image:none !important;
}

/* Main nav row at the TOP of the page: flat solid obsidian (matches hero, no transparency). */
.site-main-header-wrap .site-header-row-container-inner{
  background:#0B0C10 !important;
  box-shadow:none !important;
  border-bottom:1px solid transparent !important;
  transition:box-shadow .35s cubic-bezier(.22,1,.36,1), border-color .35s ease;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
}

/* Scrolled / sticky: solid elevated bar (opaque — translucent + blur flashes white). */
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) > .site-header-row-container-inner,
.site-main-header-wrap.item-is-stuck .site-header-row-container-inner,
.site-main-header-wrap.item-is-fixed:not(.item-at-start) .site-header-row-container-inner{
  background:#0C0D11 !important;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
  border-bottom:1px solid rgba(214,194,154,.14);
  box-shadow:0 8px 30px rgba(0,0,0,.45)}

/* GAP FIX: when fixed, pin the main row flush to the very top (the announcement bar scrolls away,
   so the sticky nav must sit at top:0, not offset below where the bar used to be). */
.site-main-header-wrap.kadence-sticky-header.item-is-fixed:not(.item-at-start){top:0 !important}
/* Sticky placeholder must match the dark shell (transparent revealed Kadence white / page gaps). */
.kadence-sticky-header-spacer,#masthead .kadence-sticky-header-spacer{
  background:#0B0C10 !important;
}

/* LOGO PADDING + SWAP: wordmark at top, compact "A" icon when scrolled.
   Site-wide size lock: Kadence prints `.site-branding a.brand img{max-width:200px}` +
   markup `style="max-height:100%"` which let shop/PDP render ~200×72 while home stayed
   smaller (parent height clamp). Force one height everywhere. */
#masthead .site-branding .brand{display:inline-flex;align-items:center;padding:6px 4px;transition:opacity .3s ease}
#masthead .site-branding a.brand img.custom-logo,
#masthead .site-branding img.custom-logo,
.site-header-item .site-branding img.custom-logo{
  transition:opacity .3s cubic-bezier(.22,1,.36,1), max-height .35s cubic-bezier(.22,1,.36,1);
  /* beat Kadence inline max-height:100% + max-width:200px */
  max-height:48px !important;
  height:auto !important;
  width:auto !important;
  max-width:none !important;
}
/* the swap-in A icon, hidden until scrolled */
#masthead .site-branding .brand::after{
  content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%) scale(.9);
  width:46px;height:46px;background:url('https://auralabs.asia/wp-content/uploads/2026/06/aura-nav-icon.webp') no-repeat center/contain;
  opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1)}
#masthead .site-branding .brand{position:relative}
/* on scroll (item-is-stuck = Kadence's "scrolled past start" marker): fade wordmark out, A icon in. */
.site-main-header-wrap.item-is-stuck .site-branding img.custom-logo,
.site-main-header-wrap.item-is-fixed:not(.item-at-start) .site-branding img.custom-logo{
  opacity:0 !important; max-height:46px !important;
}
.site-main-header-wrap.item-is-stuck .site-branding .brand::after,
.site-main-header-wrap.item-is-fixed:not(.item-at-start) .site-branding .brand::after{opacity:1 !important;transform:translateY(-50%) scale(1)}
/* Animate header height collapse AND expand smoothly in both directions.
   Explicit base height + transition on the element (not just the :stuck state)
   ensures Kadence class-removal triggers a reverse transition instead of a jump. */
.site-main-header-inner-wrap{
  min-height:80px !important;
  transition:min-height .38s cubic-bezier(.22,1,.36,1) !important;
}
.site-main-header-wrap.item-is-stuck .site-main-header-inner-wrap,
.site-main-header-wrap.item-is-fixed:not(.item-at-start) .site-main-header-inner-wrap{
  min-height:62px !important;
}
/* Kadence drives nav color via --global-palette8/9 vars — remap them within the header scope */
#masthead,#masthead *{--global-palette8:#F2EFE9 !important;--global-palette9:#D6C29A !important;--global-palette5:#F2EFE9 !important}
/* nav links -> ivory, hover/current -> champagne gold (high-specificity to beat Kadence palette) */
#masthead .header-navigation .main-navigation a,
#masthead .header-navigation ul li a,
#masthead .main-navigation .menu-item a,
#masthead nav.header-navigation a,
#masthead .header-navigation .menu-item>a,
#masthead .header-menu-container ul li a{color:#F2EFE9 !important}
#masthead .header-navigation ul li a:hover,
#masthead .header-navigation .menu-item>a:hover,
#masthead .header-navigation .menu-item.current-menu-item>a,
#masthead .header-navigation .menu-item:hover>a{color:#D6C29A !important}
/* underline-style nav accent -> gold */
#masthead .header-navigation[class*="header-navigation-style-underline"] .menu-item>a:after{background:#D6C29A !important}
/* ===== DRY DROPDOWN: one canonical style for EVERY header dropdown (Peptides, Goals, Account) ===== */
#masthead .header-navigation ul.sub-menu,
#masthead .header-menu-container ul ul{
  min-width:210px !important;
  background:#111318 !important;
  border:1px solid rgba(214,194,154,.18) !important;
  border-radius:12px !important;
  padding:6px !important;
  box-shadow:0 18px 44px -14px rgba(0,0,0,.7) !important;
  overflow:visible !important}
#masthead .header-navigation ul.sub-menu li,
#masthead .header-menu-container ul ul li{margin:0 !important;border-bottom:0 !important;display:block !important}
#masthead .header-navigation ul.sub-menu li a,
#masthead .header-menu-container ul ul li a{
  display:flex !important;
  align-items:center !important;
  width:auto !important;
  padding:8px 12px !important;
  border-radius:8px !important;
  color:#C9C4BB !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  transition:background-color .15s ease, color .15s ease}
#masthead .header-navigation ul.sub-menu li a:hover,
#masthead .header-menu-container ul ul li a:hover{
  background:rgba(214,194,154,.13) !important;color:#F8F7F4 !important}
/* tail/divider items: hairline above */
#masthead .header-navigation ul.sub-menu li.nv-goals-child-goal-stacks,
#masthead .header-navigation ul.sub-menu li.nv-acct-child-log-out,
#masthead .header-navigation ul.sub-menu li.nv-acct-child-track-order{
  border-top:1px solid rgba(214,194,154,.14) !important;margin-top:4px !important;padding-top:4px !important}
/* mobile toggle -> black, centered, slightly larger icon, tan pill on all pages */
#masthead button.menu-toggle-open,
#masthead button.menu-toggle-open .menu-toggle-icon,
#masthead button.menu-toggle-open .kadence-svg-iconset,
#masthead button.menu-toggle-open svg{color:#0C0D11 !important; fill:#0C0D11 !important}
#masthead button.menu-toggle-open{
  display:flex !important; align-items:center !important; justify-content:center !important;
  background:#D6C29A !important; border-radius:10px !important;
}
#masthead button.menu-toggle-open svg{
  width:22px !important; height:22px !important;
}
#masthead .kadence-svg-iconset,#masthead .header-account-button{color:#F2EFE9 !important}
/* mobile off-canvas drawer -> dark */
.mobile-drawer .drawer-inner,.popup-drawer .drawer-inner{background:#0C0D11 !important}
.mobile-drawer .menu-item a,.popup-drawer .menu-item a{color:#F2EFE9 !important}

/* ============================ 1. TOKENS ============================ */
:root{
  --nv-bg:#111318; --nv-bg2:#1A1C22; --nv-bg3:#09090B;
  --nv-surface:#1A1C22; --nv-surface-2:#111318; --nv-surface-3:#1A1C22;
  --nv-border:rgba(214,194,154,.16); --nv-border-2:rgba(214,194,154,.09);
  --nv-border-hi:rgba(214,194,154,.42);
  --nv-radius:16px; --nv-radius-sm:10px;
  --nv-glow:0 14px 34px -14px rgba(0,0,0,.6), 0 0 0 1px rgba(214,194,154,.16);
  --nv-glow-hover:0 18px 42px -14px rgba(0,0,0,.62), 0 0 0 1px var(--nv-border-hi), 0 0 22px -6px rgba(214,194,154,.5);
  --nv-accent:#D6C29A; --nv-accent-2:#E8D7B0;
  --nv-text:#A3A3A3; --nv-text-mut:#A3A3A3; --nv-heading:#fff;
  /* DARK form fields (autofill hardened below). Field bg sits a touch above the surface for depth. */
  --nv-field-bg:#111318; --nv-field-bg-focus:#1A1C22; --nv-field-text:#F8F7F4;
  --nv-field-border:rgba(214,194,154,.22); --nv-field-border-focus:#D6C29A; --nv-field-ph:#8A8378;
  --nv-success:#B6C2A1; --nv-danger:#FCA5A5; --nv-sale:#D93025; --nv-star:#FFC83D;
  /* Floating chrome (toast / rail / chat / sticky) — one visual system */
  --nv-chrome-bg:rgba(17,19,24,.97);
  --nv-chrome-border:rgba(214,194,154,.28);
  --nv-chrome-radius:12px;
  --nv-chrome-shadow:0 12px 32px -10px rgba(0,0,0,.55);
  --nv-chrome-pad:10px 14px;
  --nv-chrome-safe:max(12px,env(safe-area-inset-bottom));
  --nv-z-skip:100001;
  --nv-z-age:99999;
  --nv-z-toast:99985;
  --nv-z-assist:99982;
  --nv-z-wl-sticky:99975;
  --nv-z-funnel:99970;
  --nv-z-social:99960;
}

/* Remap leftover Kadence blues → brand gold. Theme customizer still ships palette1/2 as
   #2B6CB0/#215387, which paints button:focus / .button / highlight as blue (carousel arrows,
   secondary hover, etc.). Keep greys (3–6) and light (7–9) intact; gold primary + dark btn text. */
:root,html body{
  --global-palette1:#D6C29A !important;
  --global-palette2:#B89B6E !important;
  --global-palette-highlight:#D6C29A !important;
  --global-palette-btn-bg:#D6C29A !important;
  --global-palette-btn-bg-hover:#B89B6E !important;
  --global-palette-btn:#1A1A1A !important;
  --global-palette-btn-hover:#1A1A1A !important;
  --global-palette-btn-sec-bg-hover:#B89B6E !important;
}

/* ============================ 2. GLOBAL (ungated) ============================ */
/* Headings use the brand display font everywhere; safe on the (already-dark) homepage too. */
body:not(.home):not(.page-id-104) h1,
body:not(.home):not(.page-id-104) h2,
body:not(.home):not(.page-id-104) h3,
body:not(.home):not(.page-id-104) h4{ font-family:'Hanken Grotesk',sans-serif; }

/* Visible focus ring on interactive elements (a11y) */
body:not(.home):not(.page-id-104) a:focus-visible,
body:not(.home):not(.page-id-104) button:focus-visible,
body:not(.home):not(.page-id-104) input:focus-visible,
body:not(.home):not(.page-id-104) select:focus-visible,
body:not(.home):not(.page-id-104) textarea:focus-visible{
  outline:2px solid var(--nv-accent-2); outline-offset:2px;
}

/* ============================ 3. PAGE CANVAS (gated off homepage) ============================ */
/* Super-dark black→brand-blue gradient (per user). Solid near-black fallback color underneath, then
   a viewport-fixed diagonal gradient easing from near-black corners into the brand navy so long pages
   don't tile/band on scroll. */
body:not(.home):not(.page-id-104){
  background-color:#09090B !important;                       /* near-black fallback */
  background-image:linear-gradient(160deg, #09090B 0%, #09090B 38%, var(--nv-bg,#111318) 100%) !important;
  background-attachment:fixed !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  color:var(--nv-text);
}
/* Keep structural wrappers transparent so the canvas shows through. */
body:not(.home):not(.page-id-104) #wrapper,
body:not(.home):not(.page-id-104) #inner-wrap,
body:not(.home):not(.page-id-104) .content-area,
body:not(.home):not(.page-id-104) #primary,
body:not(.home):not(.page-id-104) .site-content,
body:not(.home):not(.page-id-104) .entry-content,
body:not(.home):not(.page-id-104) .single-content,
body:not(.home):not(.page-id-104) .content-bg,
body:not(.home):not(.page-id-104) .content-container,
body:not(.home):not(.page-id-104) .wp-site-blocks{
  background:transparent !important;
}

/* Generic links + body copy on dark */
body:not(.home):not(.page-id-104) p,
body:not(.home):not(.page-id-104) li,
body:not(.home):not(.page-id-104) dd,
body:not(.home):not(.page-id-104) span:not([class*="onsale"]):not(.nv-foot-logo):not(.elementor-button-text):not(.elementor-button-content-wrapper):not(.elementor-button-icon):not(.count){ color:var(--nv-text); }
/* Review link count span inherits the link's gold color, not the blanket grey span rule */
body:not(.home):not(.page-id-104) .woocommerce-review-link .count{ color:inherit !important; }
/* PDP summary star rating: gold fill (Kadence defaults to its blue link color) */
body.single-product div.product .woocommerce-product-rating .star-rating{ color:var(--nv-star) !important; }
body.single-product div.product .woocommerce-product-rating .star-rating::before{ color:rgba(255,200,61,.28) !important; }
body.single-product div.product .woocommerce-product-rating .star-rating span::before{ color:var(--nv-star) !important; }
/* BUTTON CONTRAST LAW: button text must inherit the button's own (dark on gold) color, never the grey body
   span color above. Gold/brown buttons => dark #1A1A1A text; outlined buttons keep their own gold color.
   INC-23: Elementor .elementor-button-text was exempt from the blanket span rule; bare <span> inside ANY
   other button was not — they got var(--nv-text) (#A3A3A3, ~1.4:1 on gold). Fix ALL button descendants
   site-wide (including homepage) via inherit — see RUNBOOK INC-23. */
html body button span:not([class*="onsale"]),
html body a.button span,
html body .button span,
html body .wp-block-button__link span,
html body .wp-element-button span,
html body .wc-block-components-button span,
html body button svg,
html body a.button svg,
html body .button svg,
html body .wp-block-button__link svg,
html body .wc-block-components-button svg{
  color:inherit !important;
  fill:currentColor !important;
  stroke:currentColor !important;
}
body:not(.home):not(.page-id-104) .elementor-button .elementor-button-text,
body:not(.home):not(.page-id-104) .elementor-button .elementor-button-content-wrapper{ color:inherit !important; }
body:not(.home):not(.page-id-104) .content-area a:not(.button):not(.wp-block-button__link):not(.wp-element-button){ color:var(--nv-accent-2); }
body:not(.home):not(.page-id-104) .content-area a:not(.button):hover{ color:#E8D7B0; }

/* ============================ 4. PAGE-TITLE HERO (molecule banner) ============================ */
body:not(.home):not(.page-id-104) .entry-hero-container-inner{
  position:relative; overflow:hidden;
  background:radial-gradient(ellipse at center, var(--nv-bg2) 0%, var(--nv-bg3) 100%) !important;
  border-bottom:1px solid var(--nv-border-2);
}
body:not(.home):not(.page-id-104) .entry-hero-container-inner::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:url('https://auralabs.asia/wp-content/uploads/2026/06/aura-labs-icon-transparent.webp');
  background-repeat:no-repeat; background-position:center center; background-size:contain;
  opacity:.22;
}
body:not(.home):not(.page-id-104) .entry-hero-container-inner > *{ position:relative; z-index:1; }
body:not(.home):not(.page-id-104) .entry-title,
body:not(.home):not(.page-id-104) .entry-hero h1,
body:not(.home):not(.page-id-104) .page-title{ color:var(--nv-heading) !important; }
/* breadcrumbs + archive description in the hero */
body:not(.home):not(.page-id-104) .kadence-breadcrumbs,
body:not(.home):not(.page-id-104) .kadence-breadcrumbs a,
body:not(.home):not(.page-id-104) .archive-description,
body:not(.home):not(.page-id-104) .taxonomy-description,
body:not(.home):not(.page-id-104) .term-description{ color:var(--nv-text-mut) !important; }
body:not(.home):not(.page-id-104) .kadence-breadcrumbs a:hover{ color:var(--nv-accent-2) !important; }

/* ============================ 5. TYPOGRAPHY ON DARK (content) ============================ */
body:not(.home):not(.page-id-104) .entry-content h1,
body:not(.home):not(.page-id-104) .entry-content h2,
body:not(.home):not(.page-id-104) .entry-content h3,
body:not(.home):not(.page-id-104) .entry-content h4,
body:not(.home):not(.page-id-104) .entry-content h5,
body:not(.home):not(.page-id-104) .entry-content h6,
body:not(.home):not(.page-id-104) .entry-content strong,
body:not(.home):not(.page-id-104) .entry-content b{ color:var(--nv-heading); }
body:not(.home):not(.page-id-104) .entry-content a{ color:var(--nv-accent-2); text-underline-offset:2px; }
body:not(.home):not(.page-id-104) .entry-content a:hover{ color:#E8D7B0; }
body:not(.home):not(.page-id-104) .entry-content blockquote{
  border-left:3px solid var(--nv-accent); background:var(--nv-surface-2);
  color:var(--nv-text); padding:14px 18px; border-radius:0 8px 8px 0;
}
body:not(.home):not(.page-id-104) .entry-content hr{ border-color:var(--nv-border); }
body:not(.home):not(.page-id-104) .entry-content code,
body:not(.home):not(.page-id-104) .entry-content kbd,
body:not(.home):not(.page-id-104) .entry-content pre{
  background:var(--nv-surface-2); color:#F8F7F4; border:1px solid var(--nv-border-2); border-radius:6px;
}
/* Content tables (e.g. comparison tables in articles) */
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table){
  color:var(--nv-text); border-color:var(--nv-border);
}
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table) th{ color:var(--nv-heading); }
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table) th,
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table) td{ border-color:var(--nv-border); }
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table) thead th,
body:not(.home):not(.page-id-104) .entry-content table:not(.shop_table) tr:nth-child(even) td{ background:var(--nv-surface-2); }

/* Content "card" callouts that ship with a light bg (e.g. the article research-guide box) */
body:not(.home):not(.page-id-104) .entry-content .wp-block-group:not(:where([style*="background"])),
body:not(.home):not(.page-id-104) .entry-content figure.wp-block-table{ color:var(--nv-text); }

/* Blog/archive post cards — dark surfaces (never Kadence white content-bg) */
body.blog:not(.page-id-104) .entry,
body.archive:not(.page-id-104) .entry,
body.search:not(.page-id-104) .entry,
body.blog .loop-entry.content-bg,
body.archive .loop-entry.content-bg,
body.search .loop-entry.content-bg,
body.blog .loop-entry,
body.archive .loop-entry,
body.search .loop-entry{
  background:var(--nv-surface) !important; border:1px solid var(--nv-border) !important;
  border-radius:14px; box-shadow:none !important;
  overflow:hidden !important;
}
/* Product email art ships pure white — mat it on dark lab plate instead of washing cards */
body.blog .loop-entry .post-thumbnail,
body.archive .loop-entry .post-thumbnail,
body.search .loop-entry .post-thumbnail,
body.blog .loop-entry .post-thumbnail-inner,
body.archive .loop-entry .post-thumbnail-inner,
body.search .loop-entry .post-thumbnail-inner{
  display:block;
  overflow:hidden !important;
  border-radius:var(--nv-radius,16px) var(--nv-radius,16px) 0 0 !important;
  background:
    radial-gradient(ellipse at 50% 35%, rgba(214,194,154,.10) 0%, transparent 55%),
    linear-gradient(165deg, #12141a 0%, #0a0c12 55%, #07080c 100%) !important;
}
body.blog .loop-entry .post-thumbnail img,
body.archive .loop-entry .post-thumbnail img,
body.search .loop-entry .post-thumbnail img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center !important;
  border-radius:var(--nv-radius,16px) var(--nv-radius,16px) 0 0 !important;
  /* Soften pure-white plate without nuking vial colour */
  filter:brightness(.88) contrast(1.05) saturate(.95);
  mix-blend-mode:normal;
  background:transparent !important;
}
body.blog .loop-entry .entry-title a,
body.archive .loop-entry .entry-title a,
body.search .loop-entry .entry-title a{ color:var(--nv-heading) !important; }

/* ===================== SINGLE POST HERO (behind title) =====================
 * Kadence puts .kadence-thumbnail-position-behind BEFORE the article so the white
 * product-email JPEG becomes the backdrop. Replace that pure white with dark
 * ambiance + gradient scrim so title/meta stay readable.
 */
body.single-post .post-thumbnail.kadence-thumbnail-position-behind,
body.single-post .article-post-thumbnail.kadence-thumbnail-position-behind{
  background:
    radial-gradient(ellipse at 50% 28%, rgba(214,194,154,.12) 0%, transparent 52%),
    radial-gradient(ellipse at 80% 80%, rgba(43,108,176,.10) 0%, transparent 45%),
    linear-gradient(165deg, #14161d 0%, #0a0c12 48%, #05060a 100%) !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
body.single-post .post-thumbnail.kadence-thumbnail-position-behind .post-thumbnail-inner,
body.single-post .article-post-thumbnail .post-thumbnail-inner{
  background:transparent !important;
  position:relative;
}
/* Dim the white product plate and keep vials as soft atmosphere, not a blown-out field */
body.single-post .post-thumbnail.kadence-thumbnail-position-behind img.post-top-featured,
body.single-post .post-thumbnail.kadence-thumbnail-position-behind img.wp-post-image{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center 40% !important;
  filter:brightness(.45) contrast(1.08) saturate(.85) !important;
  opacity:.92;
}
/* Readable text scrim over the hero image */
body.single-post .post-thumbnail.kadence-thumbnail-position-behind::after{
  content:"";
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(180deg,
      rgba(7,8,12,.62) 0%,
      rgba(7,8,12,.28) 32%,
      rgba(7,8,12,.55) 68%,
      rgba(7,8,12,.88) 100%),
    radial-gradient(ellipse at 50% 20%, rgba(214,194,154,.08), transparent 50%);
}
body.single-post .post-thumbnail.kadence-thumbnail-position-behind{
  position:relative !important;
}
/* Title/meta over behind image: force light glyphs */
body.single-post .single-entry .entry-header .entry-title,
body.single-post .single-entry .entry-header .entry-title a{
  color:#fff !important;
  text-shadow:0 2px 18px rgba(0,0,0,.55), 0 1px 2px rgba(0,0,0,.4);
}
body.single-post .single-entry .entry-header .entry-meta,
body.single-post .single-entry .entry-header .entry-meta a,
body.single-post .single-entry .entry-header .entry-taxonomies,
body.single-post .single-entry .entry-header .entry-taxonomies a{
  color:rgba(232,215,176,.85) !important;
  text-shadow:0 1px 10px rgba(0,0,0,.45);
}
/* Single article frame: surface, never white */
body.single-post .entry.single-entry.content-bg,
body.single-post .entry.single-entry{
  background:transparent !important;
  box-shadow:none !important;
}

/* ============================ 6. FORM PRIMITIVES, tasteful DARK fields ============================ */
/* Dark navy fields with a glowing focus ring. Autofill is hardened below so Chrome/Safari can't
   repaint them white/yellow. (The cross-origin Stripe card iframe still can't be themed from here , 
   handled as gracefully as possible in §7d.) */
body:not(.home):not(.page-id-104) input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]),
body:not(.home):not(.page-id-104) textarea,
body:not(.home):not(.page-id-104) select,
body:not(.home):not(.page-id-104) .woocommerce form .form-row input.input-text,
body:not(.home):not(.page-id-104) .wc-block-components-text-input input,
body:not(.home):not(.page-id-104) .wc-block-components-textarea,
body:not(.home):not(.page-id-104) .wc-block-components-combobox-control input,
body:not(.home):not(.page-id-104) .select2-container .select2-selection{
  background-color:var(--nv-field-bg) !important; color:var(--nv-field-text) !important;
  border:1px solid var(--nv-field-border) !important; border-radius:var(--nv-radius-sm) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.25) !important; transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
/* native select dropdown arrow + options legible on dark */
body:not(.home):not(.page-id-104) select{
  color-scheme:dark;
  background-image:linear-gradient(45deg,transparent 50%,var(--nv-accent-2) 50%),linear-gradient(135deg,var(--nv-accent-2) 50%,transparent 50%) !important;
  background-position:calc(100% - 20px) center, calc(100% - 15px) center !important;
  background-size:5px 5px, 5px 5px !important; background-repeat:no-repeat !important;
  -webkit-appearance:none; -moz-appearance:none; appearance:none; padding-right:38px !important;
}
body:not(.home):not(.page-id-104) select option{ background:#111318; color:#F8F7F4; }

/* ===== SELECT2 (Country / State, cart shipping calc, account addresses) =====
   Woo teleports .select2-dropdown often to <body> — must theme the OPEN panel, not only closed .select2-selection
   (closed field already matches in §6 above; without these rules the menu stays white + blue #0073aa). */
body:not(.home):not(.page-id-104) .select2-container{ width:100% !important; max-width:100%; }
body:not(.home):not(.page-id-104) .select2-container .select2-selection--single{
  min-height:54px !important; height:auto !important; display:flex !important; align-items:center !important;
  padding:0 12px !important; background-color:var(--nv-field-bg,#111318) !important;
  border:1px solid var(--nv-field-border,rgba(214,194,154,.22)) !important;
  border-radius:var(--nv-radius-sm,10px) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.25) !important;
}
body:not(.home):not(.page-id-104) .select2-container .select2-selection--single .select2-selection__rendered{
  color:var(--nv-field-text,#F8F7F4) !important; line-height:1.35 !important; padding:0 28px 0 0 !important;
  font-family:'Hanken Grotesk',sans-serif !important; font-size:15px !important;
}
body:not(.home):not(.page-id-104) .select2-container .select2-selection--single .select2-selection__placeholder{
  color:var(--nv-field-ph,#8A8378) !important;
}
body:not(.home):not(.page-id-104) .select2-container .select2-selection--single .select2-selection__arrow{
  height:100% !important; top:0 !important; right:10px !important; width:22px !important;
}
body:not(.home):not(.page-id-104) .select2-container .select2-selection--single .select2-selection__arrow b{
  border-color:var(--nv-accent-2,#E8D7B0) transparent transparent transparent !important;
  border-width:6px 5px 0 5px !important; margin-top:-2px !important; margin-left:-5px !important;
}
body:not(.home):not(.page-id-104) .select2-container--open .select2-selection--single .select2-selection__arrow b{
  border-color:transparent transparent var(--nv-accent-2,#E8D7B0) transparent !important;
  border-width:0 5px 6px 5px !important; margin-top:-4px !important;
}
body:not(.home):not(.page-id-104) .select2-container--focus .select2-selection--single,
body:not(.home):not(.page-id-104) .select2-container--open .select2-selection--single{
  border-color:var(--nv-field-border-focus,#D6C29A) !important;
  box-shadow:0 0 0 3px rgba(214,194,154,.28), inset 0 1px 2px rgba(0,0,0,.2) !important;
  background-color:var(--nv-field-bg-focus,#1A1C22) !important;
}
/* Open menu (body-level) */
body:not(.home):not(.page-id-104) .select2-dropdown{
  background:#1A1C22 !important; color:var(--nv-field-text,#F8F7F4) !important;
  border:1px solid rgba(214,194,154,.28) !important; border-radius:10px !important;
  box-shadow:0 16px 40px -12px rgba(0,0,0,.75), 0 0 0 1px rgba(214,194,154,.08) !important;
  overflow:hidden !important; z-index:100050 !important;
}
body:not(.home):not(.page-id-104) .select2-dropdown--below{ margin-top:4px !important; }
body:not(.home):not(.page-id-104) .select2-dropdown--above{ margin-bottom:4px !important; }
body:not(.home):not(.page-id-104) .select2-results{ background:#1A1C22 !important; }
body:not(.home):not(.page-id-104) .select2-results__options{
  max-height:280px !important; background:#1A1C22 !important; color:#F8F7F4 !important;
  padding:6px !important; margin:0 !important;
}
body:not(.home):not(.page-id-104) .select2-results__option{
  background:transparent !important; color:#F8F7F4 !important;
  padding:10px 12px !important; border-radius:8px !important;
  font-family:'Hanken Grotesk',sans-serif !important; font-size:14px !important; line-height:1.35 !important;
}
body:not(.home):not(.page-id-104) .select2-results__option--disabled,
body:not(.home):not(.page-id-104) .select2-results__option[aria-disabled=true]{
  color:#6B6760 !important; cursor:default !important;
}
/* Selected (current value) + keyboard/hover highlight — kill Select2 default blue */
body:not(.home):not(.page-id-104) .select2-results__option--selected,
body:not(.home):not(.page-id-104) .select2-results__option[aria-selected=true]{
  background:rgba(214,194,154,.12) !important; color:var(--nv-accent-2,#E8D7B0) !important;
}
body:not(.home):not(.page-id-104) .select2-results__option--highlighted,
body:not(.home):not(.page-id-104) .select2-results__option--highlighted.select2-results__option--selected,
body:not(.home):not(.page-id-104) .select2-results__option--highlighted[aria-selected],
body:not(.home):not(.page-id-104) .select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:rgba(214,194,154,.22) !important; color:#fff !important;
}
body:not(.home):not(.page-id-104) .select2-results__option.select2-results__message{
  color:var(--nv-text-mut,#A3A3A3) !important;
}
/* Search field inside open country/state menu */
body:not(.home):not(.page-id-104) .select2-search--dropdown{
  padding:8px 8px 4px !important; background:#1A1C22 !important;
}
body:not(.home):not(.page-id-104) .select2-search--dropdown .select2-search__field{
  background:#111318 !important; color:#F8F7F4 !important;
  border:1px solid rgba(214,194,154,.22) !important; border-radius:8px !important;
  min-height:44px !important; padding:8px 12px !important;
  box-shadow:none !important; outline:none !important;
  font-family:'Hanken Grotesk',sans-serif !important; font-size:14px !important;
}
body:not(.home):not(.page-id-104) .select2-search--dropdown .select2-search__field:focus{
  border-color:var(--nv-accent,#D6C29A) !important;
  box-shadow:0 0 0 2px rgba(214,194,154,.25) !important;
}
/* Multi-select chips (orders filters / rare account forms) */
body:not(.home):not(.page-id-104) .select2-container--default .select2-selection--multiple{
  background:#111318 !important; border:1px solid var(--nv-field-border) !important;
  border-radius:var(--nv-radius-sm,10px) !important; min-height:54px !important;
}
body:not(.home):not(.page-id-104) .select2-container--default .select2-selection--multiple .select2-selection__choice{
  background:rgba(214,194,154,.14) !important; border:1px solid rgba(214,194,154,.28) !important;
  color:#F8F7F4 !important; border-radius:8px !important;
}
body:not(.home):not(.page-id-104) .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{
  color:var(--nv-accent-2) !important;
}
/* Block checkout country combobox (if still present on any template) */
body:not(.home):not(.page-id-104) .wc-block-components-combobox .components-form-token-field__suggestions-list,
body:not(.home):not(.page-id-104) .wc-block-components-combobox-control .components-form-token-field__suggestions-list{
  background:#1A1C22 !important; border:1px solid rgba(214,194,154,.28) !important; border-radius:10px !important;
  box-shadow:0 16px 40px -12px rgba(0,0,0,.75) !important; color:#F8F7F4 !important;
}
body:not(.home):not(.page-id-104) .wc-block-components-combobox .components-form-token-field__suggestion,
body:not(.home):not(.page-id-104) .wc-block-components-combobox-control .components-form-token-field__suggestion{
  color:#F8F7F4 !important; background:transparent !important;
}
body:not(.home):not(.page-id-104) .wc-block-components-combobox .components-form-token-field__suggestion.is-selected,
body:not(.home):not(.page-id-104) .wc-block-components-combobox-control .components-form-token-field__suggestion.is-selected{
  background:rgba(214,194,154,.22) !important; color:#fff !important;
}

/* focus: brand glow ring */
body:not(.home):not(.page-id-104) input:not([type=checkbox]):not([type=radio]):focus,
body:not(.home):not(.page-id-104) textarea:focus,
body:not(.home):not(.page-id-104) select:focus,
body:not(.home):not(.page-id-104) .wc-block-components-text-input input:focus{
  background-color:var(--nv-field-bg-focus) !important; border-color:var(--nv-field-border-focus) !important;
  box-shadow:0 0 0 3px rgba(214,194,154,.28), inset 0 1px 2px rgba(0,0,0,.2) !important; outline:none !important;
}
body:not(.home):not(.page-id-104) ::placeholder{ color:var(--nv-field-ph) !important; opacity:1; }
/* AUTOFILL HARDENING, keep Chrome/Safari from repainting dark fields white/yellow */
body:not(.home):not(.page-id-104) input:-webkit-autofill,
body:not(.home):not(.page-id-104) input:-webkit-autofill:hover,
body:not(.home):not(.page-id-104) input:-webkit-autofill:focus,
body:not(.home):not(.page-id-104) textarea:-webkit-autofill,
body:not(.home):not(.page-id-104) select:-webkit-autofill{
  -webkit-text-fill-color:var(--nv-field-text) !important;
  -webkit-box-shadow:0 0 0 1000px var(--nv-field-bg) inset !important;
  box-shadow:0 0 0 1000px var(--nv-field-bg) inset !important;
  caret-color:var(--nv-field-text) !important;
  transition:background-color 5000s ease-in-out 0s !important;
}
/* labels on dark */
body:not(.home):not(.page-id-104) .wc-block-components-text-input label,
body:not(.home):not(.page-id-104) .woocommerce form .form-row label,
body:not(.home):not(.page-id-104) label{ color:var(--nv-text) !important; }
/* block floating label sits INSIDE the now-dark field, muted light, not dark */
body:not(.home):not(.page-id-104) .wc-block-components-text-input label{ color:var(--nv-field-ph) !important; }
body:not(.home):not(.page-id-104) .wc-block-components-text-input.is-active label,
body:not(.home):not(.page-id-104) .wc-block-components-text-input input:focus + label,
body:not(.home):not(.page-id-104) .wc-block-components-text-input input:not(:placeholder-shown) + label{ color:var(--nv-accent-2) !important; }
/* checkbox / radio accent */
body:not(.home):not(.page-id-104) input[type=checkbox],
body:not(.home):not(.page-id-104) input[type=radio]{ accent-color:var(--nv-accent); }

/* ============================ 7d-CLASSIC. CHECKOUT (classic shortcode, iter114 rebuild) ============================
   The block checkout was abandoned (React internals = unreachable dead-space). Page 25 now uses the classic
   [woocommerce_checkout] shortcode = plain server HTML we fully own. Bespoke premium dark/gold skin below.
   Two columns: #customer_details (billing) | #order_review (summary+payment+place order). */
/* CSS grid: col 1 = billing (#customer_details), col 2 = the order heading + review stacked.
   The classic form's direct kids are [#customer_details, #order_review_heading, #order_review] — we place
   them into a 2-col grid: billing spans rows 1-2 on the left; heading (row1) + review (row2) stack right. */
body.woocommerce-checkout form.checkout{
  display:grid !important; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) !important;
  grid-template-rows:auto 1fr !important; gap:0 30px !important; align-items:start !important;
}
body.woocommerce-checkout #customer_details{ grid-column:1; grid-row:1 / span 2; float:none !important; width:auto !important; }
body.woocommerce-checkout #order_review_heading{ grid-column:2; grid-row:1; float:none !important; width:auto !important; }
body.woocommerce-checkout #order_review{ grid-column:2; grid-row:2; float:none !important; width:auto !important; position:sticky; top:90px; }
/* Section headings = brand titles */
body.woocommerce-checkout h3#order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #customer_details h3{
  font-family:'Hanken Grotesk',sans-serif !important; font-weight:800 !important; font-size:21px !important;
  letter-spacing:-.01em !important; color:var(--nv-heading) !important; margin:0 0 18px !important;
}
/* Each fieldset group = a clean raised borderless card (fill + shadow, NOT hairline). */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout #order_review{
  background:#1A1C22 !important; border:0 !important; border-radius:16px !important;
  padding:28px 26px !important; margin:0 0 18px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
}
body.woocommerce-checkout .woocommerce-additional-fields:last-child{ margin-bottom:0 !important; }
/* form rows: comfortable rhythm, two-up name row */
body.woocommerce-checkout .woocommerce-billing-fields .form-row{ margin:0 0 14px !important; padding:0 !important; }
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper{ display:flex; flex-wrap:wrap; gap:0 14px; }
body.woocommerce-checkout .form-row-first{ flex:1 1 calc(50% - 7px) !important; width:auto !important; float:none !important; }
body.woocommerce-checkout .form-row-last{ flex:1 1 calc(50% - 7px) !important; width:auto !important; float:none !important; margin-right:0 !important; }
body.woocommerce-checkout .form-row-wide{ flex:1 1 100% !important; width:auto !important; }
body.woocommerce-checkout .woocommerce-billing-fields .form-row label{
  font-size:13px !important; font-weight:600 !important; color:var(--nv-text) !important; margin:0 0 6px !important; display:block;
}
body.woocommerce-checkout .form-row .required{ color:var(--nv-accent-2) !important; text-decoration:none; }
body.woocommerce-checkout .woocommerce-billing-fields .form-row input.input-text,
body.woocommerce-checkout .woocommerce-billing-fields .form-row .select2-selection,
body.woocommerce-checkout .woocommerce-billing-fields .form-row select{ min-height:54px !important; }
body.woocommerce-checkout .select2-container .select2-selection--single{ display:flex !important; align-items:center; }
/* order table: flat rows, hairline dividers only between rows (not a boxed table) */
/* kill inner table border/rounded box (Kadence .shop_table_responsive box-in-a-box). Horizontal dividers
   only (th/td below). iter116. */
body.woocommerce-checkout #order_review table.shop_table,
body.woocommerce-checkout #order_review table.shop_table.shop_table_responsive,
body.woocommerce-checkout #order_review table.shop_table thead,
body.woocommerce-checkout #order_review table.shop_table tbody,
body.woocommerce-checkout #order_review table.shop_table tfoot,
body.woocommerce-checkout #order_review table.shop_table tr{
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
body.woocommerce-checkout #order_review table.shop_table{ margin:0 0 8px !important; }
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td{
  border:0 !important; border-bottom:1px solid var(--nv-border) !important; padding:14px 0 !important;
  color:var(--nv-text) !important; background:transparent !important;
}
body.woocommerce-checkout #order_review table.shop_table .product-name,
body.woocommerce-checkout #order_review table.shop_table .order-total th,
body.woocommerce-checkout #order_review table.shop_table .order-total .amount{ color:var(--nv-heading) !important; }
body.woocommerce-checkout #order_review table.shop_table tfoot .order-total td .amount{ font-size:20px !important; font-weight:800 !important; }
body.woocommerce-checkout #order_review table.shop_table tr:last-child th,
body.woocommerce-checkout #order_review table.shop_table tr:last-child td{ border-bottom:0 !important; }
/* coupon row */
body.woocommerce-checkout .checkout_coupon{ background:#111318 !important; border:1px solid var(--nv-border) !important; border-radius:12px !important; padding:18px !important; }
/* payment box */
body.woocommerce-checkout #payment{ background:transparent !important; border-radius:0 !important; }
body.woocommerce-checkout #payment ul.payment_methods{ border:0 !important; padding:0 !important; margin:8px 0 0 !important; }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method{
  background:#111318 !important; border:1px solid var(--nv-border) !important; border-radius:12px !important;
  padding:16px 18px !important; margin:0 0 10px !important; list-style:none !important;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method label{ color:var(--nv-heading) !important; font-weight:600 !important; background:transparent !important; }
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method img{ background:transparent !important; }
body.woocommerce-checkout #payment .payment_box{
  background:#0E0F13 !important; border:0 !important; border-radius:10px !important; margin:12px 0 0 !important;
  padding:14px 16px !important; color:var(--nv-text) !important;
}
body.woocommerce-checkout #payment .payment_box::before{ display:none !important; }

/* Classic shipping methods (cart + checkout).
   Multi-rate: roomy selectable cards. Single free-ship (hidden input): calm status row, not a cramped radio stack. */
body.woocommerce-checkout #order_review ul#shipping_method,
body.woocommerce-checkout ul#shipping_method,
body.woocommerce-cart ul#shipping_method,
body.woocommerce-cart .woocommerce-shipping-methods{
  list-style:none !important;
  margin:4px 0 0 !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  width:100% !important;
  max-width:100% !important;
}
body.woocommerce-checkout #order_review ul#shipping_method li,
body.woocommerce-checkout ul#shipping_method li,
body.woocommerce-cart ul#shipping_method li,
body.woocommerce-cart .woocommerce-shipping-methods li{
  list-style:none !important;
  margin:0 !important;
  padding:18px 20px !important;
  min-height:56px;
  background:#111318 !important;
  border:1px solid var(--nv-border) !important;
  border-radius:14px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  box-sizing:border-box !important;
  width:100% !important;
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
/* Hide session-stale duplicate rows (marked by aura-ship-dedupe) */
body.woocommerce-checkout ul#shipping_method li[data-aura-ship-dup],
body.woocommerce-cart ul#shipping_method li[data-aura-ship-dup]{
  display:none !important;
}
/* Single method (Woo uses hidden input) — status row with breathing room */
body.woocommerce-checkout ul#shipping_method:not(:has(input[type=radio])) li,
body.woocommerce-cart ul#shipping_method:not(:has(input[type=radio])) li,
body.woocommerce-cart .woocommerce-shipping-methods:not(:has(input[type=radio])) li{
  padding:18px 20px !important;
  min-height:58px;
  background:linear-gradient(180deg, rgba(214,194,154,.1) 0%, #111318 72%) !important;
  border-color:rgba(214,194,154,.32) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
body.woocommerce-checkout ul#shipping_method:not(:has(input[type=radio])) li label,
body.woocommerce-cart ul#shipping_method:not(:has(input[type=radio])) li label{
  cursor:default !important;
}
body.woocommerce-checkout ul#shipping_method li:has(input[type=radio]:checked),
body.woocommerce-cart ul#shipping_method li:has(input[type=radio]:checked),
body.woocommerce-cart .woocommerce-shipping-methods li:has(input[type=radio]:checked){
  border-color:rgba(214,194,154,.45) !important;
  background:linear-gradient(180deg, rgba(214,194,154,.1) 0%, #111318 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px rgba(214,194,154,.14);
}
body.woocommerce-checkout ul#shipping_method li input[type=radio],
body.woocommerce-cart ul#shipping_method li input[type=radio],
body.woocommerce-cart .woocommerce-shipping-methods li input[type=radio]{
  flex:0 0 auto;
  margin:0 !important;
  accent-color:var(--nv-accent,#D6C29A);
  width:18px; height:18px;
}
body.woocommerce-checkout ul#shipping_method li input[type=hidden],
body.woocommerce-cart ul#shipping_method li input[type=hidden]{
  display:none !important;
}
body.woocommerce-checkout ul#shipping_method li label,
body.woocommerce-cart ul#shipping_method li label,
body.woocommerce-cart .woocommerce-shipping-methods li label{
  flex:1 1 auto;
  min-width:0;
  margin:0 !important;
  padding:0 !important;
  color:var(--nv-heading,#fff) !important;
  font-family:'Hanken Grotesk',sans-serif !important;
  font-size:15px !important;
  font-weight:600 !important;
  line-height:1.5 !important;
  letter-spacing:.01em;
  cursor:pointer;
}
body.woocommerce-checkout ul#shipping_method li label .amount,
body.woocommerce-checkout ul#shipping_method li label .woocommerce-Price-amount,
body.woocommerce-cart ul#shipping_method li label .amount,
body.woocommerce-cart ul#shipping_method li label .woocommerce-Price-amount{
  color:var(--nv-accent-2,#E8D7B0) !important;
  font-weight:800 !important;
  white-space:nowrap;
  margin-left:8px;
}
body.woocommerce-checkout #order_review tr.woocommerce-shipping-totals th,
body.woocommerce-cart tr.woocommerce-shipping-totals th{
  color:var(--nv-heading) !important;
  font-weight:700 !important;
  vertical-align:top !important;
  padding-top:22px !important;
  padding-bottom:14px !important;
  padding-right:16px !important;
}
body.woocommerce-checkout #order_review tr.woocommerce-shipping-totals td,
body.woocommerce-cart tr.woocommerce-shipping-totals td{
  vertical-align:top !important;
  padding-top:18px !important;
  padding-bottom:14px !important;
}
body.woocommerce-checkout #order_review .woocommerce-shipping-totals td p,
body.woocommerce-cart .woocommerce-shipping-totals td p{
  margin:0 !important;
  color:var(--nv-heading) !important;
  font-weight:600 !important;
  font-size:15px !important;
  line-height:1.5 !important;
}
body.woocommerce-checkout #order_review .woocommerce-shipping-totals td p .amount,
body.woocommerce-cart .woocommerce-shipping-totals td p .amount{
  color:var(--nv-accent-2,#E8D7B0) !important;
  font-weight:800 !important;
}
/* Destination + change-address — space below the method chip */
body.woocommerce-cart .woocommerce-shipping-destination,
body.woocommerce-checkout .woocommerce-shipping-destination{
  margin:14px 0 0 !important;
  color:var(--nv-text-mut,#A3A3A3) !important;
  font-size:13px !important;
  line-height:1.5 !important;
}
body.woocommerce-cart .shipping-calculator-button,
body.woocommerce-checkout .shipping-calculator-button{
  margin-top:8px !important;
  display:inline-block;
}

/* terms + privacy line */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ color:var(--nv-text-mut) !important; margin:16px 0 !important; }
/* Trust row above Place Order — even vertical air, readable micro-items (aura-cart-checkout-items) */
body.woocommerce-checkout .aura-checkout-trust{
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 14px;
  margin:20px 0 20px !important; /* equal / distributed spacing above & below */
  padding:14px 16px !important;
  box-sizing:border-box;
  background:linear-gradient(180deg, rgba(214,194,154,.09) 0%, rgba(17,19,24,.92) 100%) !important;
  border:1px solid rgba(214,194,154,.22) !important;
  border-radius:12px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  list-style:none !important;
}
body.woocommerce-checkout .aura-checkout-trust .aura-ct-item{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  flex:1 1 auto;
  min-width:min(100%, 148px);
  color:var(--nv-text-mut, #A3A3A3) !important;
  font-family:'Hanken Grotesk',sans-serif !important;
  font-size:12.5px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
  letter-spacing:.01em;
}
body.woocommerce-checkout .aura-checkout-trust .aura-ct-item > span{
  color:var(--nv-text, #C9C9C9) !important;
}
body.woocommerce-checkout .aura-checkout-trust .aura-ct-item svg{
  flex:0 0 auto;
  width:16px; height:16px;
  color:var(--nv-accent, #D6C29A) !important;
  stroke:var(--nv-accent, #D6C29A) !important;
  opacity:.95;
}
@media (max-width:520px){
  body.woocommerce-checkout .aura-checkout-trust{
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:11px;
    margin:18px 0 18px !important;
    padding:13px 14px !important;
  }
  body.woocommerce-checkout .aura-checkout-trust .aura-ct-item{
    min-width:0;
    width:100%;
    font-size:12.5px !important;
  }
}
body.woocommerce-checkout #payment .place-order{ padding:0 !important; margin:0 !important; }
/* Space privacy/terms above trust row instead of cramming on place-order alone */
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text p{
  margin:0 0 4px !important;
  color:var(--nv-text-mut) !important;
  font-size:12.5px !important;
  line-height:1.5 !important;
}
/* PLACE ORDER = gold bg, DARK #1A1A1A text (BUTTON CONTRAST LAW), full-width, decisive */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order{
  background:var(--nv-accent) !important; color:#1A1A1A !important; width:100% !important;
  font-family:'Hanken Grotesk',sans-serif !important; font-weight:800 !important; font-size:17px !important;
  letter-spacing:.01em !important; border:0 !important; border-radius:10px !important; min-height:58px !important;
  box-shadow:0 12px 30px -12px rgba(214,194,154,.7) !important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.woocommerce-checkout #place_order:hover{
  background:var(--nv-accent-2) !important; transform:translateY(-1px) !important;
  box-shadow:0 16px 38px -12px rgba(214,194,154,.82) !important;
}
@media (prefers-reduced-motion: reduce){
  body.woocommerce-checkout #place_order{ transition:none !important; }
  body.woocommerce-checkout #place_order:hover{ transform:none !important; }
}
/* order-review line item WITH product thumbnail (aura-cart-checkout-items.php prepends it, iter115)
   Desktop: one horizontal row — thumb | name + inline qty — so qty never drops under the photo. */
body.woocommerce-checkout #order_review table.shop_table tr.cart_item td{
  padding-top:12px !important; padding-bottom:12px !important; vertical-align:middle !important;
}
body.woocommerce-checkout #order_review .aura-corev-item{
  display:flex !important; align-items:center; gap:12px; width:100%; min-width:0;
}
body.woocommerce-checkout #order_review .aura-corev-thumbwrap{ flex:0 0 auto; line-height:0; }
body.woocommerce-checkout #order_review .aura-corev-thumb{
  width:56px !important; height:56px !important; border-radius:10px !important; object-fit:cover !important;
  border:1px solid var(--nv-border) !important; background:#111318; display:block;
}
body.woocommerce-checkout #order_review .aura-corev-text{
  flex:1 1 auto; min-width:0; line-height:1.4;
}
body.woocommerce-checkout #order_review .aura-corev-name{
  display:inline; color:var(--nv-heading);
  font-weight:600; font-size:14.5px;
}
body.woocommerce-checkout #order_review .aura-corev-qty{
  display:inline; white-space:nowrap; margin-left:.45em;
  color:var(--nv-text-mut) !important; font-size:13px !important; font-weight:700 !important;
  letter-spacing:.01em;
}
/* Hide any leftover Woo trailing qty (belt-and-suspenders if a theme re-adds it). */
body.woocommerce-checkout #order_review td.product-name > .product-quantity{ display:none !important; }
body.woocommerce-checkout #order_review td.product-name{ padding-right:14px !important; }
body.woocommerce-checkout #order_review td.product-total{
  white-space:nowrap; text-align:right !important; font-weight:700; color:var(--nv-heading);
}
/* the classic-checkout research attestation checkbox (aura-checkout-attest.php classic path) =
   single frame only — .aura-attest-wrap owns the chrome; .aura-attest-field stays transparent
   (no nested dark panel behind the label). */
body.woocommerce-checkout .aura-attest-field{
  display:flex !important; align-items:flex-start; gap:10px; margin:0 !important;
  background:transparent !important; background-color:transparent !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  padding:0 !important;
}
body.woocommerce-checkout .aura-attest-field input[type=checkbox]{ margin-top:3px; flex:0 0 auto; width:20px; height:20px; accent-color:var(--nv-accent); }
body.woocommerce-checkout .aura-attest-field label{ color:var(--nv-text) !important; font-size:13px !important; line-height:1.55 !important; margin:0 !important; }
body.woocommerce-checkout .aura-attest-field .required{ color:var(--nv-accent-2) !important; }

/* stack to one column on tablet/mobile */
@media (max-width:880px){
  body.woocommerce-checkout form.checkout{ display:block !important; }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review{ width:auto !important; }
  body.woocommerce-checkout #order_review{ position:static !important; }
}

/* ── Reconstitution calculator: keep the §6 dark-field rules OUT of the .nvcalc input groups ──
   The calculator wraps each field as ONE unified group (.nvcalc__inwrap = the single border + radius;
   the input + unit select/suffix live INSIDE it, seamless). §6's `body:not()...input` selector carries
   high specificity from its 6 `:not()` pseudo-classes (≈0,6,2) and both rules are !important, so an
   `html body .nvcalc input` override (≈0,1,3) LOST and the inner fields kept their own bg/border/10px-
   radius + a duplicate select arrow → the group looked fractured (user-reported, twice). FIX: out-
   specify §6 by REUSING its exact `:not()` chain AND adding the `.nvcalc__inwrap` parent class, so the
   inner controls go genuinely transparent/borderless and the wrap is the only visible frame. */
html body .nvcalc .nvcalc__inwrap input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]),
html body .nvcalc .nvcalc__inwrap select{
  background:transparent !important; background-color:transparent !important;
  background-image:none !important;                 /* kill the duplicate native-select arrow */
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  padding:12px 12px !important; margin:0 !important; color:#fff !important;
  height:auto !important; min-height:0 !important;
}
/* The SELECT gets appearance:none (flatten its arrow). The NUMBER input must NOT, appearance:none on a
   number input KEEPS the spinner; it needs textfield to hide it. (This was the spinner-still-showing bug.) */
html body .nvcalc .nvcalc__inwrap select{ -webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important; }
html body .nvcalc .nvcalc__inwrap input[type=number]{ -webkit-appearance:textfield !important; -moz-appearance:textfield !important; appearance:textfield !important; }
/* the unit <select> keeps room for the calc's own caret + a hairline divider so it reads as an addon */
html body .nvcalc .nvcalc__inwrap select{
  padding-right:30px !important; border-left:1px solid var(--line,#1A1C22) !important;
  background:#111318 !important; flex:0 0 auto !important; min-width:78px !important;
}
/* strip the native number spinner so "10" doesn't show its own bordered up/down box */
html body .nvcalc .nvcalc__inwrap input[type=number]{ -moz-appearance:textfield !important; }
html body .nvcalc .nvcalc__inwrap input[type=number]::-webkit-outer-spin-button,
html body .nvcalc .nvcalc__inwrap input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none !important; appearance:none !important; margin:0 !important;
  display:none !important; width:0 !important; height:0 !important; /* display:none is what actually removes it */
}
/* The GROUP is the single rounded frame; it (not the inner field) owns the focus ring. */
html body .nvcalc .nvcalc__inwrap{
  display:flex !important; align-items:stretch !important; overflow:hidden !important;
  border:1px solid var(--line,#1A1C22) !important; border-radius:10px !important; background:#111318 !important;
}
html body .nvcalc .nvcalc__inwrap:focus-within{ border-color:var(--nv-accent) !important; box-shadow:0 0 0 2px rgba(214,194,154,.3) !important; }
/* text suffix addon (e.g. "ml"), attached, own divider, no rounding */
html body .nvcalc .nvcalc__inwrap .nvcalc__suffix{ border-radius:0 !important; background:#111318 !important; border-left:1px solid var(--line,#1A1C22) !important; }

/* Buttons, brand accent everywhere */
body:not(.home):not(.page-id-104) .button,
body:not(.home):not(.page-id-104) button.button,
body:not(.home):not(.page-id-104) a.button,
body:not(.home):not(.page-id-104) .wp-block-button__link,
body:not(.home):not(.page-id-104) .wp-element-button,
body:not(.home):not(.page-id-104) .woocommerce a.button,
body:not(.home):not(.page-id-104) .woocommerce button.button,
body:not(.home):not(.page-id-104) .woocommerce input.button,
body:not(.home):not(.page-id-104) .single_add_to_cart_button,
body:not(.home):not(.page-id-104) .wc-block-components-button{
  /* dark text on the light tan accent for WCAG contrast (white on #D6C29A is ~1.9:1, fails) */
  background-color:var(--nv-accent) !important; color:#1A1A1A !important; border:0 !important;
  border-radius:8px !important;
}
body:not(.home):not(.page-id-104) .button:hover,
body:not(.home):not(.page-id-104) .woocommerce a.button:hover,
body:not(.home):not(.page-id-104) .woocommerce button.button:hover,
body:not(.home):not(.page-id-104) .single_add_to_cart_button:hover,
body:not(.home):not(.page-id-104) .wc-block-components-button:hover{ background-color:#D6C29A !important; }
/* secondary / outline buttons (e.g. "View cart") on dark */
body:not(.home):not(.page-id-104) .added_to_cart,
body:not(.home):not(.page-id-104) .button.wc-backward{
  background:transparent !important; color:var(--nv-accent-2) !important;
  border:1px solid var(--nv-border) !important;
}

/* ============================ 7a. SHOP / ARCHIVE ============================ */
body.woocommerce-page ul.products li.product,
body.post-type-archive-product ul.products li.product,
body.woocommerce-page .wc-block-grid__product{
  background:var(--nv-surface) !important; border:1px solid var(--nv-border) !important;
  border-radius:14px; padding:14px !important; box-shadow:none !important;
}
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product h2,
body.woocommerce-page ul.products li.product h3{ color:var(--nv-heading) !important; }
body.woocommerce-page ul.products li.product .price{ color:var(--nv-text) !important; }
body.woocommerce-page ul.products li.product .price ins{ color:#fff !important; text-decoration:none; font-weight:800 !important; }
body.woocommerce-page ul.products li.product .price del,
body.woocommerce-page ul.products li.product .price del bdi{ color:var(--nv-text-mut) !important; opacity:.42 !important; }
body.woocommerce-page span.onsale,
body:not(.home):not(.page-id-104) span.onsale{
  background:var(--nv-sale) !important; color:#fff !important; font-weight:800;
}
body.woocommerce-page .woocommerce-result-count,
body.woocommerce-page .woocommerce-ordering label{ color:var(--nv-text-mut) !important; }
/* ── GLOBAL PAGINATION (blog, archives, Woo, search) ─────────────────────────
   Kadence emits: nav.navigation > .nav-links > .page-numbers (links + spans)
   Woo emits:     nav.woocommerce-pagination > ul.page-numbers > li > .page-numbers
   One block covers both; no per-page duplicates needed.                       */

/* Centering wrapper — the nav container itself */
body:not(.home):not(.page-id-104) nav.navigation,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination{
  display:flex; justify-content:center; margin:36px 0 16px;
}
/* The flex row of pills */
body:not(.home):not(.page-id-104) .nav-links,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination ul.page-numbers{
  display:flex; align-items:center; flex-wrap:wrap; justify-content:center;
  gap:6px; list-style:none; margin:0; padding:0;
}
/* Individual pill: links AND inactive spans share the same base look */
body:not(.home):not(.page-id-104) .nav-links .page-numbers,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers a,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 14px;
  background:var(--nv-surface) !important; color:var(--nv-text) !important;
  border:1px solid var(--nv-border) !important; border-radius:9px !important;
  font-size:14px; font-weight:600; line-height:1; text-decoration:none;
  transition:background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
body:not(.home):not(.page-id-104) .nav-links a.page-numbers:hover,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers a:hover{
  background:var(--nv-surface-2) !important; border-color:var(--nv-border-hi) !important;
  color:var(--nv-accent-2) !important;
}
/* Current / active page */
body:not(.home):not(.page-id-104) .nav-links .page-numbers.current,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers.current{
  background:var(--nv-accent) !important; color:#0B0C10 !important;
  border-color:var(--nv-accent) !important;
  box-shadow:0 6px 18px -8px rgba(214,194,154,.6) !important;
  cursor:default; font-weight:800;
}
/* Dots (…) */
body:not(.home):not(.page-id-104) .nav-links .page-numbers.dots,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers.dots{
  background:transparent !important; border-color:transparent !important;
  color:var(--nv-text-mut) !important; pointer-events:none;
}
/* Prev / Next: slightly wider */
body:not(.home):not(.page-id-104) .nav-links .page-numbers.prev,
body:not(.home):not(.page-id-104) .nav-links .page-numbers.next,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers.prev,
body:not(.home):not(.page-id-104) nav.woocommerce-pagination .page-numbers.next{
  padding:0 18px;
}
/* The grey title banner on shop is the same .entry-hero-container-inner handled in §4. */
body.woocommerce-page .term-description,
body.woocommerce-page .woocommerce-products-header__title{ color:var(--nv-heading) !important; }

/* ============================ 7b. SINGLE PRODUCT (PDP) ============================ */
body.single-product div.product .product_title,
body.single-product div.product .summary h1,
body.single-product div.product .summary h2{ color:var(--nv-heading) !important; }
body.single-product div.product .summary,
body.single-product div.product .woocommerce-product-details__short-description{ color:var(--nv-text) !important; }
body.single-product div.product .summary .price,
body.single-product div.product .price ins bdi{ color:#fff !important; }
/* On-sale price row: struck price muted so sale + badge carry the emotion */
body.single-product div.product .summary p.price,
body.single-product div.product .summary .price{
  display:inline-flex !important;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  max-width:100%;
}
body.single-product div.product .summary .price del,
body.single-product div.product .summary .price del bdi,
body.single-product div.product .summary .price del .woocommerce-Price-amount{
  color:var(--nv-text-mut) !important;
  opacity:.42 !important;
  text-decoration-thickness:1.5px !important;
}
body.single-product div.product .summary .price ins{
  text-decoration:none !important;
  order:0;
}
body.single-product div.product .summary .price ins,
body.single-product div.product .summary .price ins .woocommerce-Price-amount,
body.single-product div.product .summary .price ins bdi{
  color:#fff !important;
  font-weight:800 !important;
  opacity:1 !important;
}
/* Red "{n}% OFF" badge — sits to the right of the current sale price */
body.single-product div.product .summary .price .aura-pct-off{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  margin:0 !important;
  padding:5px 10px !important;
  border-radius:7px !important;
  background:linear-gradient(180deg,#FF3B47 0%,#E11D2A 100%) !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  box-shadow:0 4px 12px -4px rgba(255,59,71,.75), inset 0 0 0 1px rgba(255,255,255,.14) !important;
  vertical-align:middle;
}
/* Non-summary prices (related cards etc.) keep default muted del styling */
body.single-product div.product .price del,
body.single-product div.product .price del bdi{ color:var(--nv-text-mut) !important; opacity:1 !important; }
/* tabs */
body.single-product .woocommerce-tabs ul.wc-tabs{ border-color:var(--nv-border) !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li{ background:transparent !important; border-color:var(--nv-border) !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li a{ color:var(--nv-text-mut) !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li.active{ background:var(--nv-surface) !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li.active a{ color:var(--nv-heading) !important; }
body.single-product .woocommerce-Tabs-panel,
body.single-product .woocommerce-Tabs-panel p,
body.single-product .woocommerce-Tabs-panel li{ color:var(--nv-text) !important; }
body.single-product .woocommerce-Tabs-panel h2{ color:var(--nv-heading) !important; }
/* product research details disclosure */
body.single-product .aura-product-research-details{
  margin:1.25rem 0 0;
  border:0;
}
body.single-product .aura-product-research-details > summary{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.5rem 1rem;
  cursor:pointer;
  list-style:none;
  font-weight:600;
  color:var(--nv-accent-2,#D6C29A);
  border:1px solid rgba(214,194,154,.35);
  border-radius:var(--nv-radius,6px);
  background:transparent;
  transition:border-color .2s ease, color .2s ease;
}
body.single-product .aura-product-research-details > summary::-webkit-details-marker{ display:none; }
body.single-product .aura-product-research-details > summary::marker{ content:""; }
body.single-product .aura-product-research-details > summary:hover{
  border-color:rgba(214,194,154,.55);
  color:#E8D7B0;
}
body.single-product .aura-product-research-details > summary:focus-visible{
  outline:2px solid var(--nv-accent-2,#D6C29A);
  outline-offset:2px;
}
body.single-product .aura-product-research-details[open] > summary{
  margin-bottom:1rem;
  border-color:rgba(214,194,154,.45);
}
body.single-product .aura-product-research-details .aura-product-research-details__content{
  padding-top:.5rem;
}
body.single-product .aura-product-research-details .aura-product-research-details__content h2,
body.single-product .aura-product-research-details .aura-product-research-details__content h3{
  margin-top:1.25rem;
  margin-bottom:.75rem;
}
body.single-product .aura-product-research-details .aura-product-research-details__content p{
  margin-bottom:1rem;
}
/* ============================ reviews, modern review cards ============================ */
body.single-product #reviews .comment-text,
body.single-product #reviews p{ color:var(--nv-text) !important; }
/* Reviews heading */
body.single-product #reviews .woocommerce-Reviews-title{ color:var(--nv-heading) !important; }
body.single-product #reviews .woocommerce-Reviews-title span{ color:var(--nv-accent-2) !important; }
/* List reset, no native bullets/indent */
body.single-product #reviews ol.commentlist{ margin:0 !important; padding:0 !important; list-style:none !important; }
/* The CARD: each review li is the dark surface card */
body.single-product #reviews ol.commentlist > li.review{
  background:linear-gradient(180deg, var(--nv-surface) 0%, var(--nv-surface-2) 100%) !important;
  border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius) !important;
  padding:20px 22px !important;
  margin:0 0 16px 0 !important;
  box-shadow:0 8px 26px -16px rgba(0,0,0,.6) !important;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  list-style:none !important;
}
body.single-product #reviews ol.commentlist > li.review:hover{
  border-color:var(--nv-border-hi) !important;
  box-shadow:0 16px 40px -18px rgba(0,0,0,.7), 0 0 22px -10px rgba(214,194,154,.45) !important;
  transform:translateY(-2px);
}
/* Container = flex row: avatar | body. Kills the old float layout. */
body.single-product #reviews .comment_container{
  display:flex !important; align-items:flex-start; gap:16px;
  background:transparent !important; border:0 !important; padding:0 !important;
}
/* Avatar, circular, ringed, no float */
body.single-product #reviews .comment_container img.avatar{
  position:static !important; float:none !important; margin:0 !important;
  width:52px !important; height:52px !important; border-radius:50% !important;
  flex:0 0 52px;
  border:2px solid rgba(214,194,154,.28) !important;
  box-shadow:0 0 0 4px rgba(214,194,154,.10);
  background:var(--nv-surface-3);
}
/* Body, kill the obnoxious light border entirely */
body.single-product #reviews .comment-text{
  flex:1 1 auto; min-width:0;
  border:0 !important; border-radius:0 !important;
  background:transparent !important; padding:0 !important; margin:0 !important;
}
/* Star rating sits top-right of the card, gold stars */
body.single-product #reviews .comment-text .star-rating{
  float:right !important; margin:2px 0 0 12px !important; color:var(--nv-star) !important;
}
body.single-product #reviews .comment-text .star-rating::before{ color:rgba(255,200,61,.28) !important; }
body.single-product #reviews .comment-text .star-rating span::before{ color:var(--nv-star) !important; }
/* Meta line: author + verified on one row (flex-centered), date wraps below */
body.single-product #reviews .comment-text p.meta{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px;
  margin:0 0 8px 0 !important; font-size:.9rem; line-height:1.4; color:var(--nv-text-mut) !important;
}
body.single-product #reviews .woocommerce-review__author{
  color:var(--nv-heading) !important; font-weight:700; font-size:1rem; line-height:1;
}
body.single-product #reviews .woocommerce-review__verified{
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  font-style:normal !important; font-size:.72rem; font-weight:600; letter-spacing:.02em;
  line-height:1 !important; color:var(--nv-success) !important;
  background:rgba(182,194,161,.12); border:1px solid rgba(182,194,161,.30);
  border-radius:999px; padding:4px 10px; margin:0 !important;
}
body.single-product #reviews .woocommerce-review__verified::before{
  content:"\2713"; display:inline-flex; align-items:center;
  font-size:.7rem; font-weight:800; line-height:1;
}
body.single-product #reviews .woocommerce-review__dash{ display:none !important; }
body.single-product #reviews .woocommerce-review__published-date{
  flex:0 0 100%; margin-top:1px; font-size:.8rem; color:var(--nv-text-mut) !important; opacity:.85;
}
/* Review body copy */
body.single-product #reviews .comment-text .description{ clear:both; }
body.single-product #reviews .comment-text .description p{
  margin:0 !important; color:var(--nv-text) !important; font-size:1rem; line-height:1.65;
}
/* related */
body.single-product .related.products > h2,
body.single-product .upsells.products > h2{ color:var(--nv-heading) !important; }
/* qty stepper */
body.single-product .quantity .qty{ background:var(--nv-field-bg) !important; color:var(--nv-field-text) !important; }

/* PDP mu-plugin blocks (nuvion-pdp.php), re-theme from light to dark */
body:not(.home):not(.page-id-104) .nuvion-pdp-usetag{
  background:rgba(214,194,154,.16) !important; color:var(--nv-accent-2) !important;
}
body:not(.home):not(.page-id-104) .nuvion-pdp-specs{ border-top-color:var(--nv-border) !important; }
body:not(.home):not(.page-id-104) .nuvion-pdp-specs h2{ color:var(--nv-heading) !important; }
body:not(.home):not(.page-id-104) .nuvion-pdp-specs th{ color:var(--nv-text-mut) !important; }
body:not(.home):not(.page-id-104) .nuvion-pdp-specs td{ color:var(--nv-text) !important; border-bottom-color:var(--nv-border-2) !important; }
body:not(.home):not(.page-id-104) .nuvion-pdp-disclaimer{ color:var(--nv-text-mut) !important; }

/* ============================ 7c. CART (block) ============================ */
/* ALIGN the full-width top elements (social-proof banner + free-shipping/protection upsell bar) to the cart
   content column. They are JS-injected as siblings of `.entry-content-wrap` (the cart's 32px-padded wrap), so
   they spanned the FULL article width (~1242) while the cart content sits inset at ~1178 → the banner looked
   "wider than the rest of the content + off" (operator iter105). Match the cart's 32px inset fluidly so all the
   top elements + the cart share one clean column edge at every width. */
body.woocommerce-cart .nuvion-sp-banner,
body.woocommerce-cart .nv-up,
body.woocommerce-checkout .nuvion-sp-banner,
body.woocommerce-checkout .nv-up{
  max-width:calc(100% - 64px) !important; margin-left:auto !important; margin-right:auto !important; box-sizing:border-box;
}
/* ===== 7c-CLASSIC. CART (classic shortcode, iter114 rebuild) — matches the §7d-CLASSIC checkout language =====
   Page 24 now uses [woocommerce_cart] (classic HTML). Two columns: cart-form (items) left, .cart_totals right.
   Borderless raised cards (fill + shadow), gold dark-text buttons (BUTTON CONTRAST LAW). */
/* Kadence wraps the form + collaterals together in .kadence-woo-cart-form-wrap → that's the grid container. */
body.woocommerce-cart .kadence-woo-cart-form-wrap{ display:grid !important; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) !important; gap:0 30px !important; align-items:start !important; }
body.woocommerce-cart .kadence-woo-cart-form-wrap > form.woocommerce-cart-form{ grid-column:1; width:auto !important; }
body.woocommerce-cart .kadence-woo-cart-form-wrap > .cart-collaterals{ grid-column:2; width:auto !important; float:none !important; position:sticky; top:90px; }
body.woocommerce-cart .cart_totals{ width:auto !important; float:none !important; }
/* mobile/tablet: collapse the Kadence grid wrapper */
@media (max-width:880px){ body.woocommerce-cart .kadence-woo-cart-form-wrap{ display:block !important; } }
/* cart items = a raised card; flat rows with hairline dividers */
body.woocommerce-cart form.woocommerce-cart-form table.shop_table{
  background:#1A1C22 !important; border:0 !important; border-radius:16px !important; padding:8px 22px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
  border-collapse:separate !important; border-spacing:0 !important;
}
body.woocommerce-cart form.woocommerce-cart-form table.shop_table th{
  color:var(--nv-heading) !important; font-weight:700 !important; border:0 !important; border-bottom:1px solid var(--nv-border) !important; padding:16px 10px !important; background:transparent !important;
}
body.woocommerce-cart form.woocommerce-cart-form table.shop_table td{
  color:var(--nv-text) !important; border:0 !important; border-bottom:1px solid var(--nv-border) !important; padding:18px 10px !important; background:transparent !important; vertical-align:middle;
}
body.woocommerce-cart form.woocommerce-cart-form table.shop_table tr:last-child td{ border-bottom:0 !important; }
body.woocommerce-cart form.woocommerce-cart-form table.shop_table td.product-name a{
  color:var(--nv-heading) !important; font-weight:600 !important;
  text-decoration:none !important; text-underline-offset:0 !important;
  box-shadow:none !important; border-bottom:0 !important;
}
body.woocommerce-cart form.woocommerce-cart-form table.shop_table td.product-name a:hover,
body.woocommerce-cart form.woocommerce-cart-form table.shop_table td.product-name a:focus{
  text-decoration:none !important; color:var(--nv-accent-2) !important;
}
/* Block cart product title — same no-underline treatment */
body.woocommerce-cart .wc-block-cart-item__product a,
body.woocommerce-cart a.wc-block-components-product-name{
  text-decoration:none !important; border-bottom:0 !important; box-shadow:none !important;
}
body.woocommerce-cart .wc-block-cart-item__product a:hover,
body.woocommerce-cart a.wc-block-components-product-name:hover{
  text-decoration:none !important;
}
body.woocommerce-cart form.woocommerce-cart-form table.shop_table img{ border-radius:10px !important; max-width:64px; }
body.woocommerce-cart .product-remove a.remove{ color:var(--nv-accent-2) !important; background:transparent !important; font-size:20px; }
body.woocommerce-cart .quantity input.qty{ background:#111318 !important; color:var(--nv-field-text) !important; border:1px solid var(--nv-border) !important; border-radius:8px !important; min-height:44px; max-width:72px; }
/* coupon row (inside the cart-form actions cell) */
body.woocommerce-cart .coupon{
  display:flex !important; flex-wrap:wrap !important; align-items:stretch !important;
  gap:10px !important; margin:0 !important;
}
body.woocommerce-cart .coupon input#coupon_code{
  flex:1 1 160px !important; min-width:0 !important;
  min-height:48px !important; height:48px !important;
  box-sizing:border-box !important; margin:0 !important;
  padding:0 14px !important; line-height:1.25 !important;
}
/* gold buttons, DARK text (BUTTON CONTRAST LAW) — apply, update, proceed */
body.woocommerce-cart button[name=apply_coupon],
body.woocommerce-cart button[name=update_cart],
body.woocommerce-cart button[name=calc_shipping],
body.woocommerce-cart .shipping-calculator-form button.button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  background:var(--nv-accent) !important; color:#1A1A1A !important; font-weight:800 !important;
  border:0 !important; border-radius:10px !important;
  box-sizing:border-box !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  line-height:1 !important; padding:0 20px !important; margin:0 !important;
  text-align:center !important; text-decoration:none !important;
  min-height:48px !important; height:48px !important;
}
body.woocommerce-cart button[name=apply_coupon]{ flex:0 0 auto !important; white-space:nowrap !important; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  /* slightly taller CTA, still true vertical center via flex */
  min-height:54px !important; height:54px !important;
  font-size:16px !important; letter-spacing:.01em !important;
  width:100% !important;
  box-shadow:0 12px 30px -12px rgba(214,194,154,.7) !important;
}
body.woocommerce-cart button[name=update_cart]:hover,
body.woocommerce-cart button[name=apply_coupon]:hover,
body.woocommerce-cart button[name=calc_shipping]:hover,
body.woocommerce-cart .shipping-calculator-form button.button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{ background:var(--nv-accent-2) !important; color:#1A1A1A !important; }
body.woocommerce-cart button[name=update_cart][disabled]{ opacity:.5 !important; }
/* cart totals = a raised card matching checkout's #order_review */
body.woocommerce-cart .cart_totals{
  background:#1A1C22 !important; border:0 !important; border-radius:16px !important;
  padding:28px 26px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
}
body.woocommerce-cart .cart_totals h2{
  font-family:'Hanken Grotesk',sans-serif !important; font-weight:800 !important; font-size:20px !important;
  color:var(--nv-heading) !important; margin:0 0 18px !important; letter-spacing:-.01em !important;
}
/* kill the inner table's own border + rounded box (Kadence styles .shop_table_responsive with a 1px/16px box →
   box-in-a-box inside the .cart_totals card). Higher specificity + cover table/tbody/tfoot. Horizontal row
   dividers only (set on th/td below). iter116. */
body.woocommerce-cart .cart_totals table.shop_table,
body.woocommerce-cart .cart_totals table.shop_table.shop_table_responsive,
body.woocommerce-cart .cart_totals table.shop_table thead,
body.woocommerce-cart .cart_totals table.shop_table tbody,
body.woocommerce-cart .cart_totals table.shop_table tfoot,
body.woocommerce-cart .cart_totals table.shop_table tr{
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td{
  border:0 !important; border-bottom:1px solid var(--nv-border) !important;
  padding:13px 0 !important; color:var(--nv-text) !important; background:transparent !important;
}
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td .amount{ color:var(--nv-heading) !important; font-weight:800 !important; font-size:18px !important; }
body.woocommerce-cart .cart_totals table.shop_table tr:last-child th,
body.woocommerce-cart .cart_totals table.shop_table tr:last-child td{ border-bottom:0 !important; }
body.woocommerce-cart .wc-proceed-to-checkout{ padding:20px 0 0 !important; margin:4px 0 0 !important; }

/* Shipping calculator (Change address) — equal-height country/state + Update */
body.woocommerce-cart .shipping-calculator-form{
  margin:14px 0 0 !important; padding:0 !important;
  display:flex !important; flex-direction:column !important; gap:12px !important;
}
body.woocommerce-cart .shipping-calculator-form > p,
body.woocommerce-cart .shipping-calculator-form .form-row{
  margin:0 !important; padding:0 !important; width:100% !important; float:none !important;
}
/* side-by-side country/state when WC emits form-row-first + form-row-last */
body.woocommerce-cart .shipping-calculator-form .form-row-first,
body.woocommerce-cart .shipping-calculator-form .form-row-last{
  width:calc(50% - 6px) !important; display:inline-block !important; vertical-align:top !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row-first{ margin-right:12px !important; }
body.woocommerce-cart .shipping-calculator-form .form-row-wide{ width:100% !important; }
body.woocommerce-cart .shipping-calculator-form label{
  display:block !important; margin:0 0 6px !important;
  font-size:12px !important; font-weight:700 !important; letter-spacing:.04em !important;
  text-transform:uppercase !important; color:var(--nv-text-mut) !important;
}
/* single 48px control rhythm — beats Select2 sitewide 54px inside this form only */
body.woocommerce-cart .shipping-calculator-form select,
body.woocommerce-cart .shipping-calculator-form input.input-text,
body.woocommerce-cart .shipping-calculator-form input[type=text],
body.woocommerce-cart .shipping-calculator-form .select2-container .select2-selection--single{
  min-height:48px !important; height:48px !important; width:100% !important;
  max-width:100% !important; box-sizing:border-box !important; margin:0 !important;
}
body.woocommerce-cart .shipping-calculator-form select{
  padding:0 38px 0 14px !important; line-height:46px !important;
}
body.woocommerce-cart .shipping-calculator-form input.input-text,
body.woocommerce-cart .shipping-calculator-form input[type=text]{
  padding:0 14px !important; line-height:1.25 !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-container{
  width:100% !important; max-width:100% !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-container .select2-selection--single{
  display:flex !important; align-items:center !important; padding:0 12px !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-container .select2-selection--single .select2-selection__rendered{
  line-height:1.25 !important; padding:0 26px 0 0 !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-container .select2-selection--single .select2-selection__arrow{
  height:48px !important; top:0 !important;
}
body.woocommerce-cart .shipping-calculator-form button[name=calc_shipping],
body.woocommerce-cart .shipping-calculator-form button.button{
  width:100% !important; margin-top:2px !important;
}
/* Destination / change-address rhythm inside totals */
body.woocommerce-cart .woocommerce-shipping-destination{ margin:12px 0 0 !important; }
body.woocommerce-cart .shipping-calculator-button{ margin-top:6px !important; }

/* ===== 7e-POLISH (iter115): cart/checkout depth — thumbnails, hover, micro-interactions, entrance ===== */
/* Cart item thumbnail: larger, rounded, subtle hover-zoom inside a fixed frame */
body.woocommerce-cart .woocommerce-cart-form .product-thumbnail{ width:76px !important; }
body.woocommerce-cart .woocommerce-cart-form .product-thumbnail a{ display:block; overflow:hidden; border-radius:12px; border:1px solid var(--nv-border); background:#111318; }
body.woocommerce-cart .woocommerce-cart-form .product-thumbnail img{
  width:74px !important; height:74px !important; max-width:none !important; object-fit:cover !important;
  border-radius:11px !important; border:0 !important; display:block;
  transition:transform .4s cubic-bezier(.22,1,.36,1) !important;
}
body.woocommerce-cart .woocommerce-cart-form .product-thumbnail a:hover img{ transform:scale(1.08) !important; }
/* item row hover = faint surface lift */
body.woocommerce-cart .woocommerce-cart-form table.shop_table tr.cart_item{ transition:background-color .2s ease; }
body.woocommerce-cart .woocommerce-cart-form table.shop_table tr.cart_item:hover td{ background:rgba(214,194,154,.035) !important; }
/* remove (×) button: circular, gold-on-hover, accessible target */
body.woocommerce-cart .product-remove a.remove{
  display:inline-flex !important; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%; font-size:18px !important; line-height:1 !important;
  color:var(--nv-text-mut) !important; background:rgba(255,255,255,.03) !important;
  transition:background .15s ease, color .15s ease, transform .15s ease !important;
}
body.woocommerce-cart .product-remove a.remove:hover{ color:#1A1A1A !important; background:var(--nv-accent) !important; transform:rotate(90deg); }

/* Entrance: gentle fade-up on the main cards, ON LOAD (NOT scroll-triggered — scroll entrance left content
   hidden on the landers, INC lesson). Pure CSS, runs once, reduced-motion disables it. No JS, no hidden state
   risk: starts visible-ish (opacity from .001 is fine but we animate from 0 with a guaranteed end at 1). */
@keyframes auraFadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: no-preference){
  body.woocommerce-cart .woocommerce-cart-form table.shop_table,
  body.woocommerce-cart .cart_totals,
  body.woocommerce-checkout .woocommerce-billing-fields,
  body.woocommerce-checkout .woocommerce-additional-fields,
  body.woocommerce-checkout #order_review{
    animation:auraFadeUp .5s cubic-bezier(.22,1,.36,1) both;
  }
  /* gentle stagger so the right column follows the left */
  body.woocommerce-checkout #order_review{ animation-delay:.08s; }
  body.woocommerce-cart .cart_totals{ animation-delay:.08s; }
}
/* Buttons: press feedback (micro-interaction) on both pages */
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:active,
body.woocommerce-cart button[name=update_cart]:active,
body.woocommerce-cart button[name=apply_coupon]:active,
body.woocommerce-checkout #place_order:active{ transform:translateY(0) scale(.99) !important; }
/* coupon "Apply" + qty stepper buttons get the same gold-hover language as elsewhere (no dead grey) */
body.woocommerce-cart .nv-stepper button{ transition:background .15s ease, color .15s ease !important; }

/* ---- Woo NOTICES: kill the off-brand side-stripe (Woo default = blue border-left + gold border-top + square
   corners). Rebuild as proper brand cards: full hairline, rounded, leading state color via a small dot, no
   side stripe. Applies to message/info/error on cart + checkout. (iter115 polish) ---- */

/* Top air above coupon toast / first cart card: Kadence ships 80px #primary margin + 2rem wrap pad.
   Other raised cards use ~16–18px rhythm — cut top spacing in half so the "Have a coupon?" strip
   sits like a sibling card instead of floating under a tall void. */
body.woocommerce-cart #primary.content-area,
body.woocommerce-checkout #primary.content-area{
  margin-top:40px !important; /* was 80px */
}
body.woocommerce-cart .entry-content-wrap,
body.woocommerce-checkout .entry-content-wrap{
  padding-top:16px !important; /* was 2rem / 32px; keep L/R/B from theme */
}
/* "Have a coupon?" strip + open coupon form — half the Woo default 2em bottom gap before the billing card */
body.woocommerce-checkout .woocommerce-form-coupon-toggle{
  margin:0 0 0 !important;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  margin-top:0 !important;
  margin-bottom:16px !important; /* was ~32px (2em) */
}
body.woocommerce-checkout form.checkout_coupon.woocommerce-form-coupon{
  margin-top:16px !important; /* was ~34px when expanded */
  margin-bottom:16px !important;
}
/* Cart: success/info notices above the line-items card share the same tighter top rhythm */
body.woocommerce-cart .woocommerce-notices-wrapper:not(:empty){
  margin:0 0 16px !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message,
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info,
body.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-error,
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-message,
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-info,
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-error{
  margin-top:0 !important;
  margin-bottom:16px !important;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error{
  background:#1A1C22 !important; color:var(--nv-text) !important;
  border:1px solid var(--nv-border) !important; border-left-width:1px !important; border-top-width:1px !important;
  border-radius:12px !important; padding:16px 18px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-error::before{ color:var(--nv-accent-2) !important; }
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error{ border-color:rgba(252,165,165,.4) !important; }
/* the "View cart" button inside the added-to-cart message = gold dark-text, matches everything else */
body.woocommerce-cart .woocommerce-message a.button,
body.woocommerce-checkout .woocommerce-message a.button{
  background:var(--nv-accent) !important; color:#1A1A1A !important; font-weight:800 !important;
  border:0 !important; border-radius:8px !important; min-height:40px; display:inline-flex; align-items:center; padding:0 18px !important;
}

/* ---- HARDEN (iter115) ---- */
/* i18n / long-text safety (multisite is coming: Thai, long German-style translations, long product names).
   Let names wrap cleanly, never overflow the column; min-width:0 lets flex/grid children shrink below content. */
body.woocommerce-cart .woocommerce-cart-form td.product-name,
body.woocommerce-checkout #order_review .aura-corev-name,
body.woocommerce-checkout #order_review td.product-name{ min-width:0 !important; overflow-wrap:break-word; word-break:break-word; hyphens:auto; }
body.woocommerce-cart .woocommerce-cart-form td.product-name a{ overflow-wrap:break-word; }
/* totals labels/values never collide on a narrow column */
body.woocommerce-cart .cart_totals th,
body.woocommerce-checkout #order_review th{ min-width:0; padding-right:10px !important; }
/* long coupon codes / emails don't blow out their inputs (they already have max-width; belt-and-suspenders) */
body.woocommerce-cart .coupon input#coupon_code,
body.woocommerce-checkout #order_review input{ max-width:100% !important; box-sizing:border-box; }

/* Empty-cart state: center it as a graceful card, not bare left-aligned text */
body.woocommerce-cart .cart-empty,
body.woocommerce-cart .wc-empty-cart-message{
  text-align:center !important; color:var(--nv-text) !important; font-size:17px !important;
  background:#1A1C22 !important; border-radius:16px !important; padding:40px 24px !important; margin:0 auto 18px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important; max-width:560px;
}
body.woocommerce-cart .return-to-shop{ text-align:center !important; }
body.woocommerce-cart .return-to-shop .button{
  background:var(--nv-accent) !important; color:#1A1A1A !important; font-weight:800 !important;
  border-radius:10px !important; min-height:52px !important; display:inline-flex; align-items:center; padding:0 28px !important;
}
/* Processing / AJAX-updating state: dim + spinner so the user knows it's working (Woo adds .processing) */
body.woocommerce-cart .woocommerce-cart-form.processing,
body.woocommerce-cart .cart_totals.blockUI,
body.woocommerce-checkout .woocommerce-checkout.processing,
body.woocommerce-checkout #order_review.processing{ opacity:.55 !important; transition:opacity .2s ease; pointer-events:none; }
.woocommerce .blockOverlay{ border-radius:16px; }
/* Disabled Place Order while submitting reads clearly (not a dead grey on gold) */
body.woocommerce-checkout #place_order:disabled{ opacity:.6 !important; cursor:progress !important; }

/* A11y: visible keyboard focus ring everywhere on these pages (focus-visible only, no mouse outline) */
body.woocommerce-cart a:focus-visible,
body.woocommerce-cart button:focus-visible,
body.woocommerce-cart input:focus-visible,
body.woocommerce-cart select:focus-visible,
body.woocommerce-checkout a:focus-visible,
body.woocommerce-checkout button:focus-visible,
body.woocommerce-checkout input:focus-visible,
body.woocommerce-checkout select:focus-visible{
  outline:2px solid var(--nv-accent) !important; outline-offset:2px !important; border-radius:6px;
}
/* the big gold CTAs get a contrasting dark-ring focus so it's visible against the gold fill */
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus-visible,
body.woocommerce-checkout #place_order:focus-visible{ outline:3px solid #1A1A1A !important; outline-offset:3px !important; }

/* stack one column on tablet/mobile */
@media (max-width:880px){
  body.woocommerce-cart .woocommerce{ display:block !important; }
  body.woocommerce-cart .cart-collaterals{ position:static !important; margin-top:18px; }
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-cart .wc-block-components-sidebar{ color:var(--nv-text) !important; }
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items{ background:transparent !important; color:var(--nv-text) !important; }
body.woocommerce-cart .wc-block-cart-items__header,
body.woocommerce-cart .wc-block-cart-items__row{ border-color:var(--nv-border) !important; color:var(--nv-text) !important; }
body.woocommerce-cart .wc-block-cart-item__product a,
body.woocommerce-cart .wc-block-components-product-name{ color:var(--nv-heading) !important; }
body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-cart .wc-block-components-totals-item__label{ color:var(--nv-text) !important; }
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ color:var(--nv-heading) !important; }
/* ONE totals card = the order-summary BLOCK; every row inside is FLAT (iter111 — the earlier iter107 fix wrongly
   made each `.wc-block-components-totals-wrapper` its own card, so coupons/subtotal/shipping/total rendered as 4
   separate floating boxes = "cards within cards"). The block is the single card; each row is a flat line with a
   hairline divider between, no per-row border/bg/radius/gap. */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block{
  background:var(--nv-surface) !important; border:1px solid var(--nv-border) !important; border-radius:14px !important;
  overflow:hidden; padding:4px 18px !important;
}
/* every inner surface → flat: the per-row totals-wrapper, coupon accordion/content, generic panel, totals-item */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-panel,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-coupon,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-coupon__content,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-item{
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
  margin-top:0 !important; margin-bottom:0 !important;
}
/* single hairline divider between consecutive rows (not a box edge) + comfortable row padding */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper{
  padding:14px 0 !important;
}
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block > div + div .wc-block-components-totals-wrapper,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper{
  border-top:1px solid var(--nv-border) !important;
}

/* ============================ 7d. CHECKOUT (block) ============================ */
body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wc-block-components-form{ color:var(--nv-text) !important; }
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title{ color:var(--nv-heading) !important; }
body.woocommerce-checkout .wc-block-components-checkout-step__description,
body.woocommerce-checkout .wc-block-components-checkout-step__heading-content{ color:var(--nv-text-mut) !important; }
/* (step framing is defined in §7d-CLEAN below — borderless fill-only) */
/* order summary sidebar -> ONE dark card; flatten the inner boxes so we don't stack 3-4 bordered boxes
   (the same "double/triple border" issue fixed on the cart in iter107 — checkout had it too: iter108). The
   summary-block is the card; order-summary, panel, coupon, totals-wrapper, items inside it are flat. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block{
  background:#1A1C22 !important; border:0 !important; border-radius:16px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
  overflow:hidden;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-order-summary,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__content,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-item{
  background:transparent !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; margin-top:0 !important; margin-bottom:0 !important;
}
/* flat rows + single hairline divider between wrappers (match the cart totals model, iter111) */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block{ padding:4px 20px !important; }
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper{
  padding:14px 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper{
  border-top:1px solid var(--nv-border) !important;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value{ color:var(--nv-text) !important; }
body.woocommerce-checkout .wc-block-components-product-name{ color:var(--nv-heading) !important; }
/* shipping/radio options */
body.woocommerce-checkout .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-shipping-rates-control__package{ color:var(--nv-text) !important; }
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-shipping-rates-control{ border-color:var(--nv-border) !important; }
/* PAYMENT, dark to match (user: dark everywhere). The payment-method selector + native fields go dark
   like the rest. NOTE: the actual card-number field is a cross-origin Stripe/gateway IFRAME that CSS here
   cannot reach, its interior stays gateway-default (usually light) and may look like a light inset within
   the dark card. That's a hard CSS boundary, not a bug we can fix from the parent stylesheet. We give the
   iframe host a subtle light inset so it reads as an intentional "secure field", not a glitch. */
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control{
  background:var(--nv-surface-2) !important; border:1px solid var(--nv-border) !important;
  border-radius:12px; padding:6px 14px;
}
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-checkout__payment-method label{ color:var(--nv-text) !important; }
/* Stripe/hosted-field iframe host: give it a clean light inset so the (unstylable) iframe sits gracefully */
/* NOTE: removed `#payment .payment_box` from this light-inset group (iter114) — our crypto gateway has NO
   iframe, so its payment_box must stay DARK (styled in §7d-CLASSIC). This group is only for true hosted-field
   iframes (Stripe/WCPay) which we don't currently use. */
body.woocommerce-checkout .wc-block-checkout__payment-method .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-checkout__payment-method iframe,
body.woocommerce-checkout .wc-block-card-elements,
body.woocommerce-checkout .wcpay-card-mount,
body.woocommerce-checkout .wc-stripe-elements-field,
body.woocommerce-checkout .StripeElement{
  background:#F8F7F4 !important; border:1px solid #A3A3A3 !important; border-radius:10px !important; color:#111318 !important;
}

/* ================= 7d-CLEAN (iter113): the SINGLE canonical checkout step/field/button skin ================
   Replaces the colliding iter112 §7d-POLISH + iter126 §10e rules (doubled borders, padding:0, merged cards,
   dead bands). DESIGN: borderless fill-only cards. On a near-black UI a 1px hairline reads as a cheap stray
   outline; ELEVATION via fill + soft shadow + a 1px top inset highlight separates cards far more elegantly.
   Native Blocks markup, pure additive CSS (Rule #2). Cart-matching rhythm, no payment-flow change. */

/* Each step = a clean raised surface. NO border. */
body.woocommerce-checkout .wc-block-components-checkout-step{
  background:#1A1C22 !important; border:0 !important; border-radius:16px !important;
  padding:28px 26px !important; margin:0 0 18px !important;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-step:last-child{ margin-bottom:0 !important; }
/* kill the inner step container's own padding/borders so the card padding is the only spacing (no dead bands) */
body.woocommerce-checkout .wc-block-components-checkout-step__container,
body.woocommerce-checkout .wc-block-components-checkout-step__content{
  padding:0 !important; margin:0 !important; border:0 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-step__heading{ margin:0 0 18px !important; }
/* step title = real brand section heading */
body.woocommerce-checkout .wc-block-components-checkout-step__title{
  font-family:'Hanken Grotesk',sans-serif !important; font-weight:800 !important;
  font-size:21px !important; letter-spacing:-.01em !important; line-height:1.15 !important; color:var(--nv-heading) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-step__description{ margin-top:4px !important; }

/* fields: comfortable size, consistent dark fill + gold focus across every input/select */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select .components-select-control__input,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout select{
  background:#111318 !important; color:var(--nv-field-text) !important;
  border:1px solid rgba(214,194,154,.18) !important; border-radius:10px !important;
  min-height:54px !important;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox input:focus,
body.woocommerce-checkout select:focus{
  border-color:var(--nv-accent) !important; box-shadow:0 0 0 3px rgba(214,194,154,.22) !important; outline:0 !important;
}
/* consistent vertical rhythm between fields (one rule, not two competing ones) */
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input{ margin:0 0 14px !important; }
body.woocommerce-checkout .wc-block-components-address-form > *:last-child,
body.woocommerce-checkout .wc-block-components-text-input:last-child{ margin-bottom:0 !important; }
/* floated labels legible (muted → gold once filled) */
body.woocommerce-checkout .wc-block-components-text-input label{ color:var(--nv-field-ph,#9a9488) !important; }
body.woocommerce-checkout .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-text-input input:focus + label{ color:var(--nv-accent-2) !important; }
body.woocommerce-checkout .wc-block-components-checkbox__label{ color:var(--nv-text) !important; line-height:1.5 !important; }
body.woocommerce-checkout .wc-block-components-checkout-step__container > .wc-block-components-checkbox{ margin-top:16px !important; }

/* payment option rows = tappable cards (single definition) */
body.woocommerce-checkout .wc-block-components-radio-control__option{
  border:1px solid rgba(214,194,154,.16) !important; border-radius:12px !important;
  padding:16px 18px !important; margin:0 0 10px !important; background:#111318 !important;
}
body.woocommerce-checkout .wc-block-components-radio-control__option:last-child{ margin-bottom:0 !important; }
body.woocommerce-checkout .wc-block-components-radio-control__option-checked{
  border-color:var(--nv-accent) !important; box-shadow:0 0 0 1px var(--nv-accent) inset !important;
}

/* Place Order = gold bg, DARK #1A1A1A text (BUTTON CONTRAST LAW), full-width, decisive. ONE definition. */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout button.wc-block-components-checkout-place-order-button{
  background:var(--nv-accent) !important; color:#1A1A1A !important;
  font-weight:800 !important; font-size:17px !important; letter-spacing:.01em !important;
  border:0 !important; border-radius:10px !important; min-height:58px !important;
  box-shadow:0 12px 30px -12px rgba(214,194,154,.7) !important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button *{ color:#1A1A1A !important; font-weight:800 !important; }
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover{
  background:var(--nv-accent-2) !important; transform:translateY(-1px) !important;
  box-shadow:0 16px 38px -12px rgba(214,194,154,.82) !important;
}
@media (prefers-reduced-motion: reduce){
  body.woocommerce-checkout .wc-block-components-checkout-place-order-button{ transition:none !important; }
  body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover{ transform:none !important; }
}

/* ============================ 7d2. ORDER-RECEIVED / THANK-YOU ============================
   Stock Woo classic template is unbranded (system font, list overview, light table borders).
   Full restyle to match dark + gold enterprise chrome. Pure CSS; no OB surgery.
   Body classes: woocommerce-checkout + woocommerce-order-received (and view-order on account). */

/* Checkout urgency UI has no job after place-order (belt + suspenders vs social-proof gate). */
body.woocommerce-order-received .nuvion-sp-banner,
body.woocommerce-order-received .nuvion-sp-reserve{ display:none !important; }

body.woocommerce-order-received .content-container,
body.woocommerce-order-received .entry-content-wrap,
body.woocommerce-view-order .content-container,
body.woocommerce-view-order .entry-content-wrap{
  max-width:960px !important;
}
body.woocommerce-order-received .entry-hero .entry-header .entry-title,
body.woocommerce-order-received .entry-header .entry-title{
  font-family:'Hanken Grotesk',sans-serif !important;
  font-weight:700 !important;
  letter-spacing:-0.02em !important;
  color:#fff !important;
}
body.woocommerce-order-received .woocommerce,
body.woocommerce-order-received .woocommerce-order,
body.woocommerce-view-order .woocommerce-order,
body.woocommerce-order-received .entry-content{
  font-family:'Hanken Grotesk',sans-serif !important;
  color:var(--nv-text) !important;
}
body.woocommerce-order-received .woocommerce-order{
  margin:0 auto 48px !important;
  padding:8px 0 32px !important;
}

/* Success lead */
body.woocommerce-order-received .woocommerce-thankyou-order-received,
body.woocommerce-order-received p.woocommerce-notice--success.woocommerce-thankyou-order-received{
  font-family:'Hanken Grotesk',sans-serif !important;
  font-size:clamp(1.4rem, 3.2vw, 1.95rem) !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  letter-spacing:-0.02em !important;
  color:#fff !important;
  text-wrap:balance;
  margin:0 0 1.25rem !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-top:0 !important;
  box-shadow:none !important;
}
body.woocommerce-order-received .woocommerce-thankyou-order-received::before,
body.woocommerce-order-received .woocommerce-thankyou-order-received::after{ display:none !important; content:none !important; }

/* Status / info notices (on-hold, email, log-in gate) */
body.woocommerce-order-received .woocommerce-info,
body.woocommerce-order-received .woocommerce-message,
body.woocommerce-order-received .woocommerce-notice:not(.woocommerce-thankyou-order-received),
body.woocommerce-order-received .woocommerce-notice--info,
body.woocommerce-order-received .woocommerce-notice--success:not(.woocommerce-thankyou-order-received){
  background:linear-gradient(180deg, rgba(214,194,154,.1) 0%, rgba(17,19,24,.95) 100%) !important;
  color:var(--nv-text) !important;
  border:1px solid rgba(214,194,154,.28) !important;
  border-top:1px solid rgba(214,194,154,.28) !important;
  border-left:3px solid var(--nv-accent) !important;
  border-radius:var(--nv-radius-sm,10px) !important;
  padding:14px 16px 14px 18px !important;
  margin:0 0 1.15rem !important;
  font-size:14px !important;
  line-height:1.5 !important;
  box-shadow:var(--nv-glow) !important;
}
body.woocommerce-order-received .woocommerce-info::before,
body.woocommerce-order-received .woocommerce-message::before,
body.woocommerce-order-received .woocommerce-notice::before{ display:none !important; }
body.woocommerce-order-received .woocommerce-info a,
body.woocommerce-order-received .woocommerce-message a{ color:var(--nv-accent-2) !important; }

/* Order meta overview → metric cards */
body.woocommerce-order-received ul.woocommerce-order-overview,
body.woocommerce-view-order ul.woocommerce-order-overview{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px !important;
  list-style:none !important;
  margin:0 0 1.75rem !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
body.woocommerce-order-received ul.woocommerce-order-overview::before,
body.woocommerce-order-received ul.woocommerce-order-overview::after,
body.woocommerce-order-received ul.woocommerce-order-overview li::before,
body.woocommerce-order-received ul.woocommerce-order-overview li::after{ display:none !important; content:none !important; }
body.woocommerce-order-received ul.woocommerce-order-overview li,
body.woocommerce-view-order ul.woocommerce-order-overview li{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:6px !important;
  margin:0 !important;
  padding:14px 16px !important;
  background:var(--nv-surface, #1A1C22) !important;
  border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius-sm,10px) !important;
  box-shadow:var(--nv-glow) !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase !important;
  color:var(--nv-text-mut) !important;
  line-height:1.35 !important;
  float:none !important;
  width:auto !important;
  border-right:1px solid var(--nv-border) !important; /* beat stock .5em border-right */
}
body.woocommerce-order-received ul.woocommerce-order-overview li strong,
body.woocommerce-view-order ul.woocommerce-order-overview li strong{
  font-size:15px !important;
  font-weight:700 !important;
  letter-spacing:-0.01em !important;
  text-transform:none !important;
  color:#fff !important;
  line-height:1.3 !important;
}
body.woocommerce-order-received ul.woocommerce-order-overview li.total strong .amount,
body.woocommerce-order-received ul.woocommerce-order-overview li.woocommerce-order-overview__total strong{
  color:var(--nv-accent-2) !important;
  font-size:17px !important;
  font-weight:800 !important;
}
@media (min-width:768px){
  body.woocommerce-order-received ul.woocommerce-order-overview,
  body.woocommerce-view-order ul.woocommerce-order-overview{
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:12px !important;
  }
  body.woocommerce-order-received ul.woocommerce-order-overview li{ padding:16px 18px !important; }
}
@media (max-width:480px){
  body.woocommerce-order-received ul.woocommerce-order-overview{ gap:8px !important; }
  body.woocommerce-order-received ul.woocommerce-order-overview li{ padding:12px 13px !important; }
}

/* Section titles (Order details / addresses) */
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title,
body.woocommerce-order-received .woocommerce-customer-details h2,
body.woocommerce-view-order .woocommerce-order-details__title,
body.woocommerce-view-order .woocommerce-column__title{
  font-family:'Hanken Grotesk',sans-serif !important;
  font-size:clamp(1.05rem, 2vw, 1.25rem) !important;
  font-weight:700 !important;
  letter-spacing:-0.015em !important;
  color:#fff !important;
  margin:1.75rem 0 0.9rem !important;
  padding:0 0 0.55rem !important;
  border-bottom:1px solid var(--nv-border) !important;
  text-transform:none !important;
}

/* Order details table */
body.woocommerce-order-received table.shop_table.order_details,
body.woocommerce-order-received table.woocommerce-table--order-details,
body.woocommerce-view-order table.shop_table.order_details{
  width:100% !important;
  margin:0 0 1.5rem !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  background:var(--nv-surface) !important;
  border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius,16px) !important;
  overflow:hidden !important;
  box-shadow:var(--nv-glow) !important;
  color:var(--nv-text) !important;
}
body.woocommerce-order-received table.shop_table.order_details thead th,
body.woocommerce-view-order table.shop_table.order_details thead th{
  background:rgba(214,194,154,.08) !important;
  color:var(--nv-text-mut) !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
  padding:12px 16px !important;
  border:0 !important;
  border-bottom:1px solid var(--nv-border) !important;
}
body.woocommerce-order-received table.shop_table.order_details td,
body.woocommerce-order-received table.shop_table.order_details tbody th,
body.woocommerce-order-received table.shop_table.order_details tfoot th,
body.woocommerce-order-received table.shop_table.order_details tfoot td,
body.woocommerce-view-order table.shop_table.order_details td,
body.woocommerce-view-order table.shop_table.order_details tfoot th,
body.woocommerce-view-order table.shop_table.order_details tfoot td{
  padding:14px 16px !important;
  border:0 !important;
  border-bottom:1px solid var(--nv-border-2, rgba(214,194,154,.09)) !important;
  color:var(--nv-text) !important;
  font-size:14.5px !important;
  background:transparent !important;
  vertical-align:middle !important;
}
body.woocommerce-order-received table.shop_table.order_details tbody tr:last-child td,
body.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child th,
body.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child td{ border-bottom:0 !important; }
body.woocommerce-order-received table.shop_table.order_details a{
  color:var(--nv-accent-2) !important;
  font-weight:600 !important;
  text-decoration:none !important;
}
body.woocommerce-order-received table.shop_table.order_details a:hover{ color:#fff !important; }
body.woocommerce-order-received table.shop_table.order_details .product-quantity{
  color:var(--nv-text-mut) !important;
  font-weight:600 !important;
}
body.woocommerce-order-received table.shop_table.order_details tfoot th{
  color:var(--nv-text-mut) !important;
  font-weight:600 !important;
  font-size:13px !important;
  width:40%;
}
body.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child th,
body.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child td,
body.woocommerce-order-received table.shop_table.order_details tfoot tr.order-total th,
body.woocommerce-order-received table.shop_table.order_details tfoot tr.order-total td{
  color:#fff !important;
  font-weight:800 !important;
  font-size:15px !important;
  background:rgba(214,194,154,.06) !important;
}
body.woocommerce-order-received table.shop_table.order_details .amount{
  color:#fff !important;
  font-weight:700 !important;
}
body.woocommerce-order-received table.shop_table.order_details tfoot tr:last-child .amount{
  color:var(--nv-accent-2) !important;
  font-weight:800 !important;
}

/* Addresses */
body.woocommerce-order-received .woocommerce-customer-details,
body.woocommerce-view-order .woocommerce-customer-details{ margin-top:0.5rem !important; }
body.woocommerce-order-received .woocommerce-columns--addresses,
body.woocommerce-view-order .woocommerce-columns--addresses{
  display:grid !important;
  grid-template-columns:1fr;
  gap:14px !important;
  margin:0 !important;
}
body.woocommerce-order-received .woocommerce-columns--addresses::before,
body.woocommerce-order-received .woocommerce-columns--addresses::after{ display:none !important; content:none !important; }
body.woocommerce-order-received .woocommerce-column--billing-address,
body.woocommerce-order-received .woocommerce-column--shipping-address,
body.woocommerce-view-order .woocommerce-column--billing-address,
body.woocommerce-view-order .woocommerce-column--shipping-address{
  float:none !important;
  width:auto !important;
  margin:0 !important;
  padding:18px 18px 16px !important;
  background:var(--nv-surface) !important;
  border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius,16px) !important;
  box-shadow:var(--nv-glow) !important;
}
body.woocommerce-order-received .woocommerce-column__title{
  margin:0 0 0.75rem !important;
  padding:0 0 0.5rem !important;
  font-size:0.95rem !important;
}
body.woocommerce-order-received .woocommerce-column address,
body.woocommerce-view-order .woocommerce-column address{
  font-style:normal !important;
  font-size:14.5px !important;
  line-height:1.55 !important;
  color:var(--nv-text) !important;
  margin:0 !important;
}
body.woocommerce-order-received .woocommerce-customer-details--phone,
body.woocommerce-order-received .woocommerce-customer-details--email{
  margin:0.55rem 0 0 !important;
  color:var(--nv-text-mut) !important;
  font-size:13.5px !important;
}
body.woocommerce-order-received .woocommerce-customer-details--email{
  color:var(--nv-accent-2) !important;
  word-break:break-word;
}
@media (min-width:768px){
  body.woocommerce-order-received .woocommerce-columns--addresses,
  body.woocommerce-view-order .woocommerce-columns--addresses{
    grid-template-columns:1fr 1fr;
    gap:16px !important;
  }
}

/* Guest order-received login gate (key expired / other device) */
body.woocommerce-order-received form.woocommerce-form-login{
  max-width:420px;
  margin:1.25rem 0 2rem !important;
  padding:22px 22px 20px !important;
  background:var(--nv-surface) !important;
  border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius) !important;
  box-shadow:var(--nv-glow) !important;
}
body.woocommerce-order-received form.woocommerce-form-login label{
  color:var(--nv-text-mut) !important;
  font-size:13px !important;
  font-weight:600 !important;
}
body.woocommerce-order-received form.woocommerce-form-login .button{
  background:var(--nv-accent) !important;
  color:#1A1A1A !important;
  font-weight:800 !important;
  border-radius:10px !important;
  min-height:48px !important;
  margin-top:8px !important;
}

/* Desktop breathing room on the page frame */
@media (min-width:1025px){
  body.woocommerce-order-received .woocommerce-order{ padding-top:12px !important; padding-bottom:56px !important; }
}
@media (max-width:767px){
  body.woocommerce-order-received .woocommerce-order{ padding-bottom:28px !important; }
  body.woocommerce-order-received table.shop_table.order_details thead th,
  body.woocommerce-order-received table.shop_table.order_details td,
  body.woocommerce-order-received table.shop_table.order_details tfoot th,
  body.woocommerce-order-received table.shop_table.order_details tfoot td{
    padding:12px 12px !important;
  }
}

/* ============================ 7e. MY-ACCOUNT ============================ */
body.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; }
body.woocommerce-account .woocommerce-MyAccount-navigation li{
  background:var(--nv-surface) !important; border:1px solid var(--nv-border) !important; border-radius:10px;
  margin:0 0 8px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a{ color:var(--nv-text) !important; display:block; padding:10px 14px; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active{ background:var(--nv-accent) !important; }
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ color:#fff !important; }
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-content p{ color:var(--nv-text) !important; }
body.woocommerce-account .woocommerce-MyAccount-content a{ color:var(--nv-accent-2) !important; }
/* login/register form cards */
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register,
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2,
body.woocommerce-account .woocommerce-Address-title,
body.woocommerce-account .woocommerce-EditAccountForm{ color:var(--nv-text) !important; }
body.woocommerce-account form.woocommerce-form{
  background:var(--nv-surface) !important; border:1px solid var(--nv-border) !important;
  border-radius:14px; padding:22px !important;
}
body.woocommerce-account .woocommerce-form-login__rememberme,
body.woocommerce-account .woocommerce-form-login__rememberme span{ color:var(--nv-text) !important; }
/* orders / downloads / address tables */
body.woocommerce-account table.woocommerce-orders-table,
body.woocommerce-account table.woocommerce-MyAccount-downloads,
body.woocommerce-account table.shop_table{
  background:var(--nv-surface) !important; color:var(--nv-text) !important;
  border:1px solid var(--nv-border) !important; border-radius:12px; overflow:hidden;
}
body.woocommerce-account table.woocommerce-orders-table th,
body.woocommerce-account table.shop_table th{ color:var(--nv-heading) !important; }
body.woocommerce-account table.woocommerce-orders-table td,
body.woocommerce-account table.shop_table td{ color:var(--nv-text) !important; border-color:var(--nv-border) !important; }

/* ============================ 7f. NOTICES (classic + block) ============================ */
body:not(.home):not(.page-id-104) .woocommerce-message,
body:not(.home):not(.page-id-104) .woocommerce-info,
body:not(.home):not(.page-id-104) .woocommerce-error,
body:not(.home):not(.page-id-104) .wc-block-components-notice-banner{
  background:var(--nv-surface) !important; color:var(--nv-text) !important;
  border-top:3px solid var(--nv-accent) !important;
}
body:not(.home):not(.page-id-104) .wc-block-components-notice-banner.is-error{ border-top-color:var(--nv-danger) !important; }
body:not(.home):not(.page-id-104) .wc-block-components-notice-banner.is-success{ border-top-color:var(--nv-success) !important; }
/* Text links stay gold. Gold-fill buttons inside the same notice must use dark text
   (BUTTON CONTRAST LAW). Kadence/Woo paint `.woocommerce-message a` gold, including the CTA. */
body:not(.home):not(.page-id-104) .woocommerce-message a:not(.button):not(.wc-forward),
body:not(.home):not(.page-id-104) .woocommerce-info a:not(.button):not(.wc-forward),
body:not(.home):not(.page-id-104) .woocommerce-error a:not(.button):not(.wc-forward),
body:not(.home):not(.page-id-104) .wc-block-components-notice-banner a:not(.button):not(.wc-block-components-button){
  color:var(--nv-accent-2) !important;
}
html body .woocommerce-message a.button,
html body .woocommerce-message a.wc-forward,
html body .woocommerce-info a.button,
html body .woocommerce-info a.wc-forward,
html body .woocommerce-error a.button,
html body .woocommerce-error a.wc-forward,
html body .wc-block-components-notice-banner a.button,
html body .wc-block-components-notice-banner .wc-block-components-button,
html body .kadence-woo-messages-none-woo-pages a.button,
html body .kadence-woo-messages-none-woo-pages a.wc-forward{
  background:var(--nv-accent,#D6C29A) !important;
  color:#1A1A1A !important;
  font-weight:800 !important;
  border:0 !important;
}
html body .woocommerce-message a.button *,
html body .woocommerce-message a.wc-forward *,
html body .woocommerce-info a.button *,
html body .woocommerce-error a.button *,
html body .wc-block-components-notice-banner a.button *,
html body .wc-block-components-notice-banner .wc-block-components-button *{
  color:#1A1A1A !important;
}
/* Duplicate ATC confirmation: bottom toast already owns it. Coupon/error/info notices stay. */
body:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-message:has(a.wc-forward),
body:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-message:has(a.button.wc-forward),
body:not(.woocommerce-cart):not(.woocommerce-checkout) .wc-block-components-notice-banner.is-success:has(a[href*="/cart"]){
  display:none !important;
}

/* ============================ 8. OVERRIDE existing !important rules now wrong on dark ============================ */
/* These must beat nuvion-mobile-polish.php / nuvion-pdp.php (priority 100, all !important). We load at
   110 (later in <head>) AND lead each selector with `html body...` to raise specificity decisively, so
   the override wins unambiguously regardless of source-order subtleties. */

/* "was" / strikethrough price (mobile-polish #6E675C -> light muted) */
html body:not(.home):not(.page-id-104) .woocommerce del,
html body:not(.home):not(.page-id-104) .woocommerce del bdi,
html body:not(.home):not(.page-id-104) .price del,
html body:not(.home):not(.page-id-104) .price del bdi{ color:var(--nv-text-mut) !important; opacity:1 !important; }

/* product meta: SKU / categories / tags (mobile-polish #6E675C -> light muted). Drop the .woocommerce
   dependency and lead with html body for max specificity. */
html body:not(.home):not(.page-id-104) .product_meta,
html body:not(.home):not(.page-id-104) .product_meta .sku_wrapper,
html body:not(.home):not(.page-id-104) .product_meta .sku,
html body:not(.home):not(.page-id-104) .product_meta .posted_in,
html body:not(.home):not(.page-id-104) .product_meta .tagged_as,
html body:not(.home):not(.page-id-104) .product_meta a{ color:var(--nv-text-mut) !important; }
html body:not(.home):not(.page-id-104) .product_meta .posted_in a:hover,
html body:not(.home):not(.page-id-104) .product_meta a:hover{ color:var(--nv-accent-2) !important; }

/* in-stock / out-of-stock availability line (Kadence link-blue #D6C29A fails on dark) */
html body:not(.home):not(.page-id-104) .single-product .stock,
html body:not(.home):not(.page-id-104) .single-product p.stock,
html body:not(.home):not(.page-id-104) p.stock.in-stock{ color:var(--nv-success) !important; }
html body:not(.home):not(.page-id-104) p.stock.out-of-stock{ color:var(--nv-danger) !important; }

/* blog / post meta on dark */
html body:not(.home):not(.page-id-104) .entry-meta,
html body:not(.home):not(.page-id-104) .entry-meta a,
html body:not(.home):not(.page-id-104) .entry-taxonomies a{ color:var(--nv-text-mut) !important; }

/* nuvion-social-proof.php: navy strong text that disappears on dark */
html body:not(.home):not(.page-id-104) .nuvion-sp-views,
html body:not(.home):not(.page-id-104) .nuvion-sp-views strong{ color:var(--nv-text) !important; }

/* ============================ 10. POLISH PASS, modern dark borders + deep Woo refinement ============================ */

/* 10a. Unified card/section border + radius + hover glow across every surface ----------------------- */
body:not(.home):not(.page-id-104) ul.products li.product,
body:not(.home):not(.page-id-104) .wc-block-components-order-summary,
body:not(.home):not(.page-id-104) .wc-block-checkout__sidebar .wc-block-components-panel,
body:not(.home):not(.page-id-104) .woocommerce-MyAccount-navigation li,
body:not(.home):not(.page-id-104) form.woocommerce-form,
body:not(.home):not(.page-id-104) table.woocommerce-orders-table,
body:not(.home):not(.page-id-104) table.shop_table,
body.blog:not(.page-id-104) .loop-entry.content-bg,
body.archive:not(.page-id-104) .loop-entry.content-bg{
  border:1px solid var(--nv-border) !important; border-radius:var(--nv-radius) !important;
  box-shadow:var(--nv-glow) !important;
  overflow:hidden !important;
  clip-path:inset(0 round var(--nv-radius));
}
/* card hover: hairline brightens + soft blue glow lift */
body:not(.home):not(.page-id-104) ul.products li.product:hover,
body.blog:not(.page-id-104) .loop-entry.content-bg:hover,
body.archive:not(.page-id-104) .loop-entry.content-bg:hover{
  border-color:var(--nv-border-hi) !important; box-shadow:var(--nv-glow-hover) !important;
}

/* 10b. DEEP, SHOP: section cards get an inner panel; filter pills + grid spacing refined ------------ */
body.woocommerce-page ul.products li.product{ padding:10px !important; background:var(--nv-surface) !important; }
body.woocommerce-page ul.products li.product .price{ font-weight:800 !important; }
body.woocommerce-page ul.products li.product .price ins{ color:#fff !important; }

/* 10c. DEEP, PDP: gallery frame, summary rhythm, premium qty stepper + add-to-cart ------------------ */
body.single-product div.product{ }
/* COA "View lab certificate" link, ships light; dark-theme it so the accent text clears WCAG on dark */
body.single-product .nuvion-pdp-coalink{
  background:rgba(214,194,154,.14) !important; border:1px solid var(--nv-border) !important;
  color:var(--nv-accent-2) !important;
}
body.single-product .nuvion-pdp-coalink:hover{ background:rgba(214,194,154,.26) !important; border-color:var(--nv-border-hi) !important; color:#fff !important; }
body.single-product .nuvion-pdp-coalink svg{ color:var(--nv-success) !important; }
/* COA row link inside the Specs table (ships light accent) → legible on dark. (The PDF badge keeps its
   own white-on-darkened-red, fixed at source for AA, don't recolor it here.) */
body.single-product .nuvion-pdp-coarow{ color:var(--nv-accent-2) !important; }
body.single-product .nuvion-pdp-coarow:hover{ color:#fff !important; }
body.single-product div.product .woocommerce-product-gallery{
  background:var(--nv-surface-2); border:1px solid var(--nv-border); border-radius:var(--nv-radius);
  padding:14px; box-shadow:var(--nv-glow);
}
body.single-product div.product .woocommerce-product-gallery img{ border-radius:12px; }
body.single-product div.product .summary{ padding-left:6px; }
body.single-product div.product .summary .price{ font-size:26px !important; font-weight:800 !important; margin:6px 0 14px !important; }
/* qty stepper + add-to-cart: one row (qty | ATC); wishlist stays full-width below on mobile.
   Variable products nest qty/ATC inside .variations_button (display:block + float:left historically);
   simple products put them directly on form.cart. Flex the action row, not the whole form
   (variable forms also contain the dosage <table>). */
body.single-product form.cart:not(.variations_form){
  display:flex !important; flex-wrap:wrap; align-items:stretch; gap:12px; margin:18px 0 8px !important;
}
body.single-product form.cart.variations_form{
  display:block !important; margin:18px 0 8px !important;
}
body.single-product form.cart .woocommerce-variation-add-to-cart,
body.single-product form.cart .variations_button{
  display:flex !important; flex-wrap:wrap; align-items:stretch; gap:12px; margin-top:12px;
}
body.single-product form.cart .quantity{
  display:inline-flex !important; float:none !important; flex:0 0 auto; width:auto !important;
}
body.single-product form.cart .quantity .qty{
  height:52px !important; width:84px !important; text-align:center; font-size:16px !important; font-weight:700 !important;
  border-radius:var(--nv-radius-sm) !important;
}
body.single-product form.cart .single_add_to_cart_button{
  float:none !important; height:52px !important; flex:1 1 auto; min-width:0 !important;
  width:auto !important; font-size:16px !important; letter-spacing:.01em;
  border-radius:var(--nv-radius-sm) !important; box-shadow:0 10px 26px -10px rgba(214,194,154,.7) !important;
}
body.single-product form.cart .single_add_to_cart_button:hover{ box-shadow:0 14px 30px -10px rgba(214,194,154,.85) !important; transform:translateY(-1px); }
body.single-product form.cart .aura-wl-btn{ flex:1 0 100%; }
@media (min-width:768px){
  body.single-product form.cart .single_add_to_cart_button{ min-width:200px !important; }
}
/* review "Submit" button -> brand brown + black text (was theme blue). High specificity to beat
   input[type=submit]#submit. */
body.single-product #reviews #respond input#submit,
body.single-product #reviews #respond input.submit,
body.single-product #review_form #respond input[type="submit"]{
  background-color:var(--nv-accent) !important; color:#1A1A1A !important; border:0 !important;
  border-radius:var(--nv-radius-sm) !important; font-weight:800 !important; padding:12px 28px !important;
  box-shadow:0 10px 26px -10px rgba(214,194,154,.7) !important; cursor:pointer;
  transition:background-color .15s ease,transform .15s ease;
}
body.single-product #reviews #respond input#submit:hover,
body.single-product #reviews #respond input.submit:hover{ background-color:#E8D7B0 !important; transform:translateY(-1px); }
/* specs block -> framed dark card */
body.single-product .nuvion-pdp-specs{
  background:var(--nv-surface-2) !important; border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius) !important; padding:18px 20px !important; margin-top:22px !important;
}
body.single-product .nuvion-pdp-specs th{ width:120px; }
body.single-product .nuvion-pdp-specs tr:last-child td{ border-bottom:0 !important; }
/* tabs -> pill row */
body.single-product .woocommerce-tabs ul.wc-tabs{ display:flex; gap:8px; border:0 !important; margin:0 0 14px !important; padding:0 !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li{
  border:1px solid var(--nv-border) !important; border-radius:999px !important; margin:0 !important;
  background:var(--nv-surface) !important; padding:0 !important;
}
body.single-product .woocommerce-tabs ul.wc-tabs li::before,
body.single-product .woocommerce-tabs ul.wc-tabs li::after{ display:none !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li a{ padding:9px 18px !important; font-weight:700 !important; }
body.single-product .woocommerce-tabs ul.wc-tabs li.active{ background:var(--nv-accent) !important; border-color:var(--nv-accent) !important; }
body.single-product .woocommerce-tabs .panel{
  background:var(--nv-surface-2) !important; border:1px solid var(--nv-border) !important;
  border-radius:var(--nv-radius) !important; padding:20px 22px !important; margin:0 !important;
}
/* Reviews is the only PDP tab + its panel shows by default, so the single "Reviews (N)" pill is
   redundant. Hide the tab-nav (pill) and the rule WooCommerce draws under it; keep the panel. */
body.single-product .woocommerce-tabs ul.wc-tabs{ display:none !important; }
body.single-product .woocommerce-tabs::before,
body.single-product .woocommerce-tabs::after{ display:none !important; border:0 !important; }
body.single-product .woocommerce-tabs{ border:0 !important; }
/* related products heading spacing */
body.single-product .related.products{ margin-top:48px !important; border-top:1px solid var(--nv-border); padding-top:28px; }

/* 10d. DEEP, CART (block): line-item rows, totals card, qty stepper, sticky proceed ----------------- */
body.woocommerce-cart .wc-block-cart-items__row{ padding:18px 0 !important; }
body.woocommerce-cart .wc-block-cart-item__image img{ border-radius:10px; border:1px solid var(--nv-border); background:var(--nv-surface-2); }
body.woocommerce-cart .wc-block-components-quantity-selector{
  border:1px solid var(--nv-field-border) !important; border-radius:var(--nv-radius-sm) !important;
  background:var(--nv-field-bg) !important; overflow:hidden;
}
/* the input INSIDE the stepper had its own 1px border + 10px radius → doubled the stepper box. Make it flat;
   the selector wrapper above is the only border. (iter107) */
body.woocommerce-cart .wc-block-components-quantity-selector__input{
  color:var(--nv-field-text) !important; background:transparent !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important; outline:0 !important;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button{ color:var(--nv-accent-2) !important; }
body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-panel,
body.woocommerce-cart .wc-block-cart__totals-title{ }
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-container button{
  border-radius:var(--nv-radius-sm) !important; height:54px !important; font-size:16px !important;
  box-shadow:0 10px 26px -10px rgba(214,194,154,.7) !important;
}
/* coupon input + apply sit flush */
body.woocommerce-cart .wc-block-components-totals-coupon__input input{ border-radius:var(--nv-radius-sm) !important; }

/* 10e. DEEP, CHECKOUT (block) — SUPERSEDED by §7d-CLEAN below (iter113). The old iter126 rules here gave
   each step a border-top divider + zeroed horizontal padding/margin, which COLLIDED with the §7d-POLISH
   card framing → doubled muddy lines, fields touching card edges, merged cards, dead bands. All of that
   step/field/button/option styling is now consolidated into the single §7d-CLEAN block. Only keep the
   genuinely-non-conflicting bit (sticky sidebar) here. */
body.woocommerce-checkout .wc-block-checkout__sidebar{ position:sticky; top:18px; align-self:flex-start; }
/* reassurance block under the summary (fills the right-column void, reinforces trust at pay moment).
   Borderless fill+shadow to match the new card language. Pure CSS ::after (no React DOM injection, INC-13-safe). */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block::after{
  content:"\2713 Payment options shown live at checkout\A\2713 Lab tested \00B7 Report on every batch\A\2713 Discreet, tracked regional dispatch\A Questions? support@auralabs.asia";
  display:block; margin:18px 0 0; padding:18px 20px; border:0; border-radius:16px;
  background:#1A1C22; box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -16px rgba(0,0,0,.7);
  color:var(--nv-text-mut); font-size:13px; line-height:1.9; white-space:pre-line;
}

/* 10f. Section dividers / hr inside content get the hairline ---------------------------------------- */
body:not(.home):not(.page-id-104) .woocommerce-tabs,
body:not(.home):not(.page-id-104) .product_meta{ border-color:var(--nv-border) !important; }

/* 10g. DEEP, WPC Frequently Bought Together (bundles) on PDP: framed "stack" card ------------------ */
body.single-product .woobt-wrap{
  background:linear-gradient(180deg, var(--nv-surface) 0%, var(--nv-surface-2) 100%) !important;
  border:1px solid var(--nv-border) !important; border-radius:var(--nv-radius) !important;
  padding:20px 22px !important; margin:22px 0 0 !important; box-shadow:var(--nv-glow) !important;
}
/* Hide the empty "Frequently Bought Together" frame when the product has no bundle items (e.g. the
   Test Crypto Payment product) — was rendering as an empty bordered card. iter121. */
body.single-product .woobt-wrap:not(:has(.woobt-products)),
body.single-product .woobt-wrap:not(:has(.woobt-product)){ display:none !important; }
/* product-row names (the plugin labels these .woobt-title): readable, not heading-sized */
body.single-product .woobt-title,
body.single-product .woobt-title-inner{
  color:var(--nv-text) !important; font-size:14.5px !important; font-weight:600 !important; margin:0 !important;
}
body.single-product .woobt-product-this .woobt-title-inner{ color:var(--nv-heading) !important; font-weight:700 !important; }
/* each product row -> horizontal flex line (display:flex is ALSO in woobt-frontend.css — keep it
   here so layout survives if plugin CSS is deferred/stripped). Spacing only, no perforated separator. */
body.single-product .woobt-products .woobt-product,
body.single-product .woobt-product{
  display:flex !important; justify-content:space-between !important;
  border-bottom:0 !important; padding:10px 0 !important; background:transparent !important;
  gap:14px !important; align-items:center !important;
}
body.single-product .woobt-product:last-of-type{ border-bottom:0 !important; }
body.single-product .woobt-product a{ color:var(--nv-accent-2) !important; font-weight:600 !important; }
body.single-product .woobt-product-this > *{ color:var(--nv-text) !important; }
/* thumbnails: the .woobt-thumb is just a transparent wrapper (no frame, it double-framed &
   collapsed to a flat pill on the stacked mobile layout). Frame ONLY the .woobt-img tile. */
body.single-product .woobt-thumb{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:auto !important; min-width:0 !important; height:auto !important;
  border:0 !important; background:none !important; padding:0 !important; box-shadow:none !important;
}
/* polished fixed square tile, image contained + centered, soft frame */
body.single-product .woobt-img{
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:64px !important; height:64px !important; min-width:64px !important; max-width:64px !important;
  flex:0 0 64px !important;
  padding:7px !important; box-sizing:border-box !important;
  border-radius:12px !important; overflow:hidden !important;
  border:1px solid var(--nv-border) !important;
  background:linear-gradient(180deg, var(--nv-surface-3) 0%, var(--nv-surface-2) 100%) !important;
  box-shadow:inset 0 0 0 1px rgba(214,194,154,.05), 0 4px 12px -6px rgba(0,0,0,.55) !important;
}
body.single-product .woobt-img img{
  width:100% !important; height:100% !important; object-fit:contain !important;
  border-radius:6px !important; background:transparent !important;
}
/* availability text muted */
body.single-product .woobt-availability{ color:var(--nv-text-mut) !important; font-size:12px !important; }
/* prices: discounted bold, original struck + muted */
body.single-product .woobt-price-new{ color:#fff !important; font-weight:800 !important; }
body.single-product .woobt-price-ori,
body.single-product .woobt-price del{ color:var(--nv-text-mut) !important; opacity:.85 !important; }
/* Stack rows: percent is ONLY on the thumb badge (nv-save-badge). Hide sale-price "20% OFF"
   chips so % is not shown twice next to every line price. */
body.single-product .woobt-wrap .aura-pct-off{ display:none !important; }
/* Money column: clearer was/now hierarchy + tabular numerals */
body.single-product .woobt-wrap .woobt-price{
  display:flex !important; flex-direction:column !important; align-items:flex-end !important;
  gap:3px !important; line-height:1.15 !important;
  font-variant-numeric:tabular-nums !important; font-feature-settings:"tnum" 1;
}
body.single-product .woobt-wrap .woobt-price del,
body.single-product .woobt-wrap .woobt-price-ori,
body.single-product .woobt-wrap .woobt-price .woobt-price-ori{
  display:block !important; order:1 !important;
  font-size:12px !important; font-weight:600 !important; letter-spacing:.01em !important;
  color:var(--nv-deal-2) !important; opacity:.9 !important;
  text-decoration-line:line-through !important;
  text-decoration-color:rgba(255,59,71,.75) !important;
  text-decoration-thickness:1.5px !important;
}
body.single-product .woobt-wrap .woobt-price ins,
body.single-product .woobt-wrap .woobt-price-new,
body.single-product .woobt-wrap .woobt-price .woobt-price-new{
  display:block !important; order:2 !important;
  font-size:16px !important; font-weight:800 !important; letter-spacing:-.02em !important;
  color:#fff !important; text-decoration:none !important;
}
body.single-product .woobt-wrap .woobt-price .woocommerce-Price-currencySymbol,
body.single-product .woobt-wrap .woobt-total .woocommerce-Price-currencySymbol{
  font-size:.82em !important; font-weight:700 !important; opacity:.88 !important;
  margin-right:.12em !important; letter-spacing:0 !important;
}
body.single-product .woobt-wrap .woobt-price .amount,
body.single-product .woobt-wrap .woobt-price bdi{
  font-variant-numeric:tabular-nums !important;
}
/* checkbox accent + WCAG tap-target size (>=24px), beat the plugin's 13px default */
body.single-product .woobt-product .woobt-choose input.woobt-checkbox,
body.single-product .woobt-checkbox input[type=checkbox]{
  accent-color:var(--nv-accent) !important; width:24px !important; height:24px !important; min-width:24px !important;
  cursor:pointer;
}
/* qty input inside the bundle -> dark field */
body.single-product .woobt-qty input,
body.single-product .woobt-qty-num input{ background:var(--nv-field-bg) !important; color:var(--nv-field-text) !important; border:1px solid var(--nv-field-border) !important; border-radius:8px !important; }
/* summary + total row */
body.single-product .woobt-summary,
body.single-product .woobt-total{
  color:var(--nv-text) !important; font-weight:700 !important; margin-top:8px !important;
}
body.single-product .woobt-total .woobt-price-new,
body.single-product .woobt-total strong{ color:var(--nv-accent-2) !important; font-size:18px !important; }
/* the "Add all to cart" button -> full-width brand CTA with glow */
body.single-product .woobt-actions .single_add_to_cart_button,
body.single-product .woobt-form .single_add_to_cart_button,
body.single-product .woobt-actions button,
body.single-product .woobt-actions .button{
  width:100% !important; justify-content:center !important; height:50px !important;
  font-size:15px !important; font-weight:800 !important; border-radius:var(--nv-radius-sm) !important;
  margin-top:14px !important; box-shadow:0 10px 26px -10px rgba(214,194,154,.7) !important;
}
/* The plugin renders no overall heading (each .woobt-title is a product row). Add a branded block
   heading above the product list with a "bundle & save" hook. */
/* kill the plugin's default dotted top border sitting above the title */
body.single-product .woobt-products{ border-top:0 !important; }
body.single-product .woobt-products::before{
  content:"Stack & save"; display:block;
  color:var(--nv-heading); font-family:'Hanken Grotesk',sans-serif; font-size:17px; font-weight:800;
  margin:0 0 14px; padding:0 0 12px; border-bottom:1px solid var(--nv-border-2);
}
body.single-product .woobt-products::after{ /* spacer hook unused */ }

/* 10g-FOMO. Urgency + red sale tags on the FBT card ------------------------------------------------
   Tokens for the red "deal" accents (kept local to the bundle). */
body.single-product .woobt-wrap{ --nv-deal:#FF3B47; --nv-deal-2:#FF6A4D; --nv-deal-bg:rgba(255,59,71,.12);
  --nv-deal-border:rgba(255,106,77,.45); position:relative; }
/* Heading gets a small pulsing "🔥 Limited-time bundle" kicker line under it. */
body.single-product .woobt-products::before{ margin-bottom:6px !important; padding-bottom:8px !important; border-bottom:0 !important; }
body.single-product .woobt-products{ position:relative; }
body.single-product .nv-fbt-kicker{
  display:flex; align-items:center; gap:7px; margin:0 0 14px; padding:0 0 12px;
  border-bottom:1px solid var(--nv-border-2);
  color:var(--nv-deal-2); font-size:12.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
}
body.single-product .nv-fbt-kicker::before{ content:""; width:8px; height:8px; border-radius:999px;
  background:var(--nv-deal); box-shadow:0 0 0 3px rgba(255,59,71,.22);
  animation:nvFbtFlame 1.6s ease-in-out infinite; }
@keyframes nvFbtFlame{ 0%,100%{transform:translateY(0) scale(1);opacity:1} 50%{transform:translateY(-1px) scale(1.12);opacity:.85} }

/* Per-row discount badge, absolute overlay on the TOP-LEFT corner of the thumbnail (compact, no row
   width cost). JS appends it into .woobt-thumb (which we make position:relative). */
body.single-product .woobt-thumb{ position:relative; }
body.single-product .nv-save-badge{
  position:absolute; top:-7px; left:-7px; z-index:3;
  display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,var(--nv-deal) 0%,#E11D2A 100%); color:#fff !important;
  font-size:10px !important; font-weight:900 !important; line-height:1; letter-spacing:-.01em;
  padding:4px 6px; border-radius:6px; white-space:nowrap;
  box-shadow:0 4px 10px -3px rgba(255,59,71,.75), inset 0 0 0 1px rgba(255,255,255,.14);
}
/* the main "This item" row reuses .woobt-product-this; keep its badge on the thumb too */
body.single-product .woobt-product-this .woobt-thumb{ position:relative; }
/* The struck original price now reads as a red, angled "was" tag. */
body.single-product .woobt-price-ori,
body.single-product .woobt-price del{
  color:var(--nv-deal-2) !important; opacity:.95 !important; text-decoration-color:var(--nv-deal) !important;
  text-decoration-thickness:2px !important;
}
/* New price gets a subtle accent so the contrast pops. */
body.single-product .woobt-price-new{ color:#fff !important; }

/* Total savings banner (JS-injected after actions). Amount is the hero — no 2nd % pill. */
body.single-product .nv-fbt-savebar{
  display:flex; align-items:baseline; justify-content:center; flex-wrap:wrap; gap:6px 10px;
  margin:14px 0 0; padding:14px 16px; border-radius:var(--nv-radius-sm);
  background:linear-gradient(135deg,rgba(255,59,71,.16) 0%,rgba(255,59,71,.06) 55%,rgba(214,194,154,.06) 100%);
  border:1px solid var(--nv-deal-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  color:#FFD9DC; font-size:13px; font-weight:600; text-align:center;
}
body.single-product .nv-fbt-savebar .nv-fbt-savelabel{
  color:rgba(255,217,220,.88); font-size:12.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
}
body.single-product .nv-fbt-savebar .nv-fbt-saveamt{
  color:#fff !important; font-weight:900 !important; font-size:22px !important;
  letter-spacing:-.03em !important; line-height:1 !important;
  font-variant-numeric:tabular-nums !important; font-feature-settings:"tnum" 1;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
}
body.single-product .nv-fbt-savebar .nv-fbt-savehint{
  color:rgba(255,217,220,.72); font-size:12.5px; font-weight:600;
}
body.single-product .nv-fbt-savebar .nv-fbt-savepct{ display:none !important; } /* legacy pill removed */
body.single-product .nv-fbt-savebar::before{ content:none; }
/* Summary total money (plugin row above Add all) */
body.single-product .woobt-wrap .woobt-total{
  display:flex !important; flex-wrap:wrap !important; align-items:baseline !important;
  justify-content:flex-end !important; gap:8px 12px !important;
  margin-top:12px !important; padding-top:12px !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  font-variant-numeric:tabular-nums !important;
}
body.single-product .woobt-wrap .woobt-total del{
  font-size:13px !important; font-weight:600 !important; opacity:.9 !important;
}
body.single-product .woobt-wrap .woobt-total ins,
body.single-product .woobt-wrap .woobt-total .woobt-price-new,
body.single-product .woobt-wrap .woobt-total strong{
  color:#fff !important; font-size:20px !important; font-weight:900 !important;
  letter-spacing:-.02em !important; text-decoration:none !important;
}
/* Stack form validation message (plugin fills .woobt-alert when variation_id still 0) */
body.single-product .woobt-wrap .woobt-alert{
  display:none; /* empty: hide so blank blue plugin strip never shows */
  margin:12px 0 0 !important; padding:12px 14px !important;
  border-radius:10px !important;
  background:rgba(214,194,154,.10) !important;
  border:1px solid rgba(214,194,154,.32) !important;
  color:#E8D7B0 !important;
  font-size:13.5px !important; font-weight:600 !important; line-height:1.45 !important;
  box-shadow:none !important;
}
body.single-product .woobt-wrap .woobt-alert:not(:empty){
  display:block !important;
}
body.single-product .woobt-wrap .woobt-alert a{ color:#F2EFE9 !important; text-decoration:underline !important; }
/* Total row's struck price also goes red for consistency. */
body.single-product .woobt-total del,
body.single-product .woobt-additional del{ color:var(--nv-deal-2) !important; text-decoration-color:var(--nv-deal) !important; }

/* 10g-DOSE. Variant / dosage control inside Stack & Save — plugin paints light #e5e5e5 boxes +
   transparent borderless <select>, so global §6 dark form styles lose. Reclaim the control as a
   clear, full-width "choose dose" field with brand chrome. */
body.single-product .woobt-wrap .woobt-product{
  /* Keep row alignment, but leave room for an under-title dose field */
  display:flex !important;
  align-items:flex-start !important;
  flex-wrap:wrap !important;
  gap:12px 14px !important;
  padding:14px 0 !important;
  border-bottom:1px solid rgba(255,255,255,.06) !important;
}
body.single-product .woobt-wrap .woobt-product:last-of-type{ border-bottom:0 !important; }
body.single-product .woobt-wrap .woobt-choose{
  flex:0 0 auto !important;
  padding-top:20px !important; /* optical center vs 64px thumb */
}
body.single-product .woobt-wrap .woobt-thumb{ flex:0 0 auto !important; }
body.single-product .woobt-wrap .woobt-title{
  flex:1 1 180px !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  align-items:stretch !important;
}
body.single-product .woobt-wrap .woobt-price{
  flex:0 0 auto !important;
  margin-left:auto !important;
  text-align:right !important;
  padding-top:4px !important;
  min-width:5.5rem !important;
}
/* "This item:" quieter prefix */
body.single-product .woobt-wrap .woobt-product-this .woobt-title-inner > span:first-child{
  color:var(--nv-text-mut) !important; font-weight:600 !important; font-size:12px !important;
}
/* Kill plugin light variation chrome */
body.single-product .woobt-wrap .variations_form{
  margin:0 !important; padding:0 !important; width:100% !important; max-width:100% !important;
}
body.single-product .woobt-wrap .variations_form .variations{
  display:block !important; width:100% !important; max-width:100% !important;
  margin:0 !important; padding:0 !important;
}
body.single-product .woobt-wrap .variations_form .variations .variation,
body.single-product .woobt-wrap .variations_form .variations .variation-pa_dosage{
  display:block !important;
  width:100% !important; max-width:100% !important;
  margin:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important;
  background:transparent !important; box-shadow:none !important;
}
body.single-product .woobt-wrap .variations_form .variation .label{
  display:block !important; margin:0 0 6px !important; padding:0 !important; line-height:1 !important;
}
body.single-product .woobt-wrap .variations_form .variation .label label{
  display:inline-block !important;
  font-size:11px !important; font-weight:700 !important; letter-spacing:.06em !important;
  text-transform:uppercase !important; color:var(--nv-text-mut) !important;
  margin:0 !important; cursor:default !important;
}
body.single-product .woobt-wrap .variations_form .variation .value{
  display:block !important; width:100% !important; line-height:1.2 !important;
}
/* Beat plugin .value select specificity (transparent + no border) */
body.single-product .woobt-wrap .variations_form .variations .variation .value select,
body.single-product .woobt-wrap .variations_form select,
html body.single-product .woobt-wrap select{
  display:block !important;
  width:100% !important; max-width:100% !important;
  min-height:44px !important; height:auto !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:11px 40px 11px 14px !important;
  font-size:14px !important; font-weight:600 !important; line-height:1.25 !important;
  color:var(--nv-field-text) !important;
  background-color:var(--nv-field-bg) !important;
  /* gold caret (same language as §6 form selects) */
  background-image:
    linear-gradient(45deg,transparent 50%,var(--nv-accent-2) 50%),
    linear-gradient(135deg,var(--nv-accent-2) 50%,transparent 50%) !important;
  background-position:calc(100% - 18px) calc(50% - 1px), calc(100% - 13px) calc(50% - 1px) !important;
  background-size:5px 5px, 5px 5px !important;
  background-repeat:no-repeat !important;
  border:1px solid var(--nv-field-border) !important;
  border-radius:10px !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.28) !important;
  -webkit-appearance:none !important; -moz-appearance:none !important; appearance:none !important;
  outline:none !important;
  cursor:pointer !important;
  color-scheme:dark;
}
body.single-product .woobt-wrap .variations_form .variations .variation .value select:hover,
html body.single-product .woobt-wrap select:hover{
  border-color:rgba(214,194,154,.42) !important;
  background-color:var(--nv-field-bg-focus) !important;
}
body.single-product .woobt-wrap .variations_form .variations .variation .value select:focus,
html body.single-product .woobt-wrap select:focus{
  border-color:var(--nv-field-border-focus) !important;
  background-color:var(--nv-field-bg-focus) !important;
  box-shadow:0 0 0 3px rgba(214,194,154,.26), inset 0 1px 2px rgba(0,0,0,.2) !important;
}
body.single-product .woobt-wrap .variations_form select option{
  background:#111318 !important; color:#F8F7F4 !important;
}
/* Hide "Clear" variation reset — confuses stack buyers */
body.single-product .woobt-wrap .variations_form a.reset_variations,
body.single-product .woobt-wrap .variations_form .reset{ display:none !important; }
/* Helper under the dose field (injected by aura-pdp.js FOMO decorate) */
body.single-product .woobt-wrap .nv-fbt-dose-hint{
  display:block; margin:2px 0 0; font-size:11.5px; line-height:1.35;
  color:var(--nv-text-mut); font-weight:500;
}
/* Soft highlight when the "this item" dose changes price */
body.single-product .woobt-wrap .woobt-price .woocommerce-Price-amount{
  font-variant-numeric:tabular-nums;
}
/* Mobile: the plugin's own frontend.css forces `flex-direction:column; text-align:center` on every
   row under 767px, so checkbox / thumb / price / name each landed on their own centred line — one
   row ate ~260px of height. Re-lay the row as a grid instead: the four cells are already siblings of
   .woobt-product, so grid-template-areas keeps the desktop reading order (control, image, name+dose,
   price) with no PHP re-hooking and no width-sniffing JS. Flex `order` is dropped — placement is the
   grid's job, so it stays correct through a resize/rotation with no reload. */
@media (max-width:767px){
  body.single-product .woobt-wrap .woobt-products .woobt-product,
  body.single-product .woobt-wrap .woobt-product{
    display:grid !important;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    grid-template-areas:"check thumb title price";
    align-items:start !important;
    gap:4px 12px !important;
    padding:14px 0 !important;
    text-align:left !important;
  }
  /* The label in here is position:absolute (screen-reader only) and .checkmark is display:none, so the
     cell holds just the 24px input — give it the tile's height and centre it instead of guessing a
     padding offset. */
  body.single-product .woobt-wrap .woobt-choose{
    grid-area:check; align-self:start !important;
    display:flex !important; align-items:center !important;
    height:64px !important; padding:0 !important;
  }
  /* plugin's responsive sheet adds 5px block padding here, which detuned the tile/control alignment */
  body.single-product .woobt-wrap .woobt-thumb{
    grid-area:thumb; align-self:start !important; padding:0 !important;
  }
  body.single-product .woobt-wrap .woobt-title{
    grid-area:title; min-width:0 !important; gap:6px !important; text-align:left !important;
  }
  body.single-product .woobt-wrap .woobt-price{
    grid-area:price; justify-self:end !important; align-self:start !important;
    margin-left:0 !important; padding-top:2px !important; text-align:right !important;
  }
  /* the plugin ships an availability div that is blank for in-stock items — it only added a gap */
  body.single-product .woobt-wrap .woobt-availability:empty{ display:none !important; }
  /* the plugin centres the chosen option below 767 via text-align-last, which desktop does not do —
     the field read as centred text in a left-aligned column */
  body.single-product .woobt-wrap .variations_form .variations .variation .value select,
  html body.single-product .woobt-wrap select{
    min-height:48px !important; font-size:15px !important;
    text-align:left !important; text-align-last:left !important;
  }
}
/* Narrow phones: below ~480 the name column left over after the control, tile and price is under
   100px, which shreds a name like "3 x Bacteriostatic Water - 30ml" into four fragments. Drop the
   price onto its own line under the name (control + tile keep spanning both) and trim the tile. */
@media (max-width:480px){
  body.single-product .woobt-wrap .woobt-products .woobt-product,
  body.single-product .woobt-wrap .woobt-product{
    grid-template-columns:auto auto minmax(0,1fr);
    grid-template-areas:
      "check thumb title"
      "check thumb price";
    gap:4px 10px !important;
  }
  /* fluid tile: 56px on a normal phone, easing to 48px on a 320 screen, without a new breakpoint */
  body.single-product .woobt-wrap .woobt-img{
    width:clamp(48px,15vw,56px) !important; height:clamp(48px,15vw,56px) !important;
    min-width:clamp(48px,15vw,56px) !important; max-width:56px !important;
    flex:0 0 auto !important;
  }
  body.single-product .woobt-wrap .woobt-choose{ height:clamp(48px,15vw,56px) !important; }
  body.single-product .woobt-wrap .woobt-price{ align-self:end !important; }
  /* the dose field now lives in the narrow name column, so give the selected option its padding back
     — at 360 the default 56px of chrome left only 2px of slack before the price got clipped */
  body.single-product .woobt-wrap .variations_form .variations .variation .value select,
  html body.single-product .woobt-wrap select{
    padding:11px 32px 11px 12px !important; font-size:14px !important;
    background-position:calc(100% - 15px) calc(50% - 1px), calc(100% - 10px) calc(50% - 1px) !important;
  }
}

/* ============================ 11. SITE-WIDE CUSTOM NUMBER TICKERS ============================ */
/* Kill the native number spinner everywhere (the cramped white up/down arrows) so fields use full width. */
body:not(.home):not(.page-id-104) input[type=number]{ -moz-appearance:textfield !important; appearance:textfield !important; }
body:not(.home):not(.page-id-104) input[type=number]::-webkit-outer-spin-button,
body:not(.home):not(.page-id-104) input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none !important; appearance:none !important; margin:0 !important;
  display:none !important; width:0 !important; height:0 !important;
}

/* Custom -/+ stepper injected by JS (nv-stepper wraps the input). */
body:not(.home):not(.page-id-104) .nv-stepper{
  display:inline-flex; align-items:stretch; vertical-align:middle; position:relative;
  border:1px solid var(--nv-field-border); border-radius:var(--nv-radius-sm);
  background:var(--nv-field-bg); overflow:hidden; box-shadow:inset 0 1px 2px rgba(0,0,0,.25);
  transition:border-color .15s ease, box-shadow .15s ease;
}
body:not(.home):not(.page-id-104) .nv-stepper:focus-within{
  border-color:var(--nv-field-border-focus); box-shadow:0 0 0 3px rgba(214,194,154,.28);
}
/* the wrapped input loses its own border/bg, the wrapper IS the field now. Mirror the §6 form-field
   :not() chain (specificity 0,8,1) and add `.nv-stepper >` so this decisively out-specifies it. */
html body:not(.home):not(.page-id-104) .nv-stepper > input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]){
  border:0 !important; outline:0 !important; background:transparent !important; background-color:transparent !important;
  box-shadow:none !important; border-radius:0 !important; margin:0 !important; padding:12px 8px !important;
  height:auto !important; text-align:center !important; min-width:46px;
}
html body:not(.home):not(.page-id-104) .nv-stepper > input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([type=range]):focus{
  box-shadow:none !important; outline:0 !important; border:0 !important; background-color:transparent !important;
}
/* the Woo .quantity wrapper shouldn't add its own border around our stepper */
body:not(.home):not(.page-id-104) .quantity:has(.nv-stepper){ border:0 !important; background:transparent !important; }
body:not(.home):not(.page-id-104) .nv-stepper__btn{
  flex:0 0 auto; width:40px; min-width:40px; appearance:none; border:0; cursor:pointer;
  background:var(--nv-surface-3); color:var(--nv-accent-2);
  font-size:18px; font-weight:800; line-height:1; padding:0; user-select:none;
  display:flex; align-items:center; justify-content:center; transition:background .12s ease, color .12s ease;
}
body:not(.home):not(.page-id-104) .nv-stepper__btn:focus,
body:not(.home):not(.page-id-104) .nv-stepper__btn:focus-visible{
  outline:none !important; box-shadow:inset 0 0 0 2px rgba(214,194,154,.45) !important;
  background:rgba(214,194,154,.18) !important; color:#fff !important;
}
body:not(.home):not(.page-id-104) .nv-stepper__btn::before,
body:not(.home):not(.page-id-104) .nv-stepper__btn::after{ content:none !important; display:none !important; }
body:not(.home):not(.page-id-104) .nv-stepper__btn:hover{ background:var(--nv-accent); color:#fff; }
body:not(.home):not(.page-id-104) .nv-stepper__btn:active{ background:#D6C29A; color:#fff; }
body:not(.home):not(.page-id-104) .nv-stepper__btn--down{ border-right:1px solid var(--nv-field-border); border-radius:var(--nv-radius-sm) 0 0 var(--nv-radius-sm); }
body:not(.home):not(.page-id-104) .nv-stepper__btn--up{ border-left:1px solid var(--nv-field-border); border-radius:0 var(--nv-radius-sm) var(--nv-radius-sm) 0; }
/* WooCommerce qty steppers: make the quantity field match (it ships with +/- in some templates) */
body:not(.home):not(.page-id-104) .quantity .qty{ text-align:center; }
@media (max-width:767px){
  body:not(.home):not(.page-id-104) .nv-stepper__btn{ width:44px; min-width:44px; } /* >=44px tap target */
}

/* ============================ 9. REDUCED MOTION ============================ */
@media (prefers-reduced-motion: reduce){
  body:not(.home):not(.page-id-104) *{ scroll-behavior:auto !important; }
  body:not(.home):not(.page-id-104) ul.products li.product,
  body:not(.home):not(.page-id-104) .single_add_to_cart_button{ transition:none !important; }
  body:not(.home):not(.page-id-104) .nv-stepper,
  body:not(.home):not(.page-id-104) .nv-stepper__btn{ transition:none !important; }
}

/* ===================== MOBILE STICKY HEADER ===================== */
/* Kadence's mobile sticky toggle may be off — force it via CSS.
   max-width:1024px covers phones + tablets (below desktop breakpoint). */
@media (max-width:1024px){
  .site-main-header-wrap{
    position:fixed !important;
    top:0 !important; left:0 !important; width:100% !important;
    z-index:200 !important;
  }
  /* Push page content below the fixed header (matches base min-height:80px on inner-wrap) */
  #wrapper{ padding-top:80px !important; }
  /* Zero out Kadence's sticky spacer so it doesn't double the gap */
  .kadence-sticky-header-spacer{ height:0 !important; padding:0 !important; margin:0 !important; }
  /* Prevent horizontal scroll from the full-width filter bar breakout on shop */
  body.nv-grouped-shop{ overflow-x:hidden; }
}

/* ===================== MOBILE COMPARISON TABLE ===================== */
@media (max-width:767px){
  .nv-cmp__cell{ justify-content:center !important; text-align:center !important; }
  .nv-cmp__feat{ text-align:center !important; }
}

/* ===================== BLOG: SIMILAR POSTS CAROUSEL (dark-theme) =====================
 * Kadence ships .entry-related with a light #edf2f7 background — completely off-brand
 * on this dark site. Override to match the site's dark surface palette.
 */
.entry-related{
  background:#0f1117 !important;
  border-top:1px solid rgba(214,194,154,.15);
  margin-top:48px;
}
.entry-related .entry-related-inner{ background:#0f1117 !important; }
.entry-related .entry-related-title{
  color:#fff !important; font-size:20px !important; font-weight:800 !important;
  font-family:'Hanken Grotesk',sans-serif;
}

/* Carousel slide cards — solid dark surface (no faint-white / no Kadence #fff) */
.entry-related .kadence-post-loop-layout-grid .loop-entry,
.entry-related .loop-entry,
.entry-related article.entry.content-bg.loop-entry{
  background:var(--nv-surface,#1A1C22) !important;
  border:1px solid rgba(214,194,154,.14) !important;
  border-radius:12px !important;
  box-shadow:0 4px 18px -8px rgba(0,0,0,.5) !important;
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.entry-related .loop-entry:hover{
  border-color:rgba(214,194,154,.35) !important;
  box-shadow:0 10px 32px -10px rgba(0,0,0,.65) !important;
  transform:translateY(-3px);
}

/* Card content area */
.entry-related .loop-entry .content-bg,
.entry-related .loop-entry .entry-content-wrap{
  background:transparent !important;
}

/* Post title */
.entry-related .loop-entry .entry-title,
.entry-related .loop-entry .entry-title a{
  color:#E8D7B0 !important; font-weight:700 !important;
}
.entry-related .loop-entry .entry-title a:hover{ color:#fff !important; }

/* Category / taxonomy labels */
.entry-related .loop-entry .entry-taxonomies,
.entry-related .loop-entry .entry-taxonomies a{
  color:rgba(232,215,176,.65) !important; font-size:11px !important;
  text-transform:uppercase; letter-spacing:.06em; font-weight:600;
}

/* Meta (date, author) */
.entry-related .loop-entry .entry-meta,
.entry-related .loop-entry .entry-meta a,
.entry-related .loop-entry .posted-on,
.entry-related .loop-entry .byline{ color:rgba(255,255,255,.45) !important; font-size:12px !important; }

/* Excerpt */
.entry-related .loop-entry .entry-summary,
.entry-related .loop-entry .entry-summary p{ color:rgba(255,255,255,.6) !important; }

/* Splide arrow buttons — match gold accent */
.entry-related .splide__arrow{
  background:rgba(214,194,154,.18) !important;
  border:1px solid rgba(214,194,154,.28) !important;
  transition:background .15s ease;
}
.entry-related .splide__arrow:hover{ background:rgba(214,194,154,.38) !important; }
.entry-related .splide__arrow svg{ fill:#E8D7B0 !important; }
.entry-related .splide__arrow:disabled{ opacity:.3; }

/* Splide dots */
.entry-related .splide__pagination__page{
  background:rgba(214,194,154,.3) !important;
  border:none !important;
}
.entry-related .splide__pagination__page.is-active{
  background:#D6C29A !important; transform:scale(1.2);
}

/* Thumbnail: fill card top edge on dark mat (white product email art) */
.entry-related .loop-entry .post-thumbnail,
.entry-related .loop-entry .featured-image,
.entry-related .loop-entry .post-thumbnail-inner{
  overflow:hidden; border-radius:12px 12px 0 0;
  background:
    radial-gradient(ellipse at 50% 35%, rgba(214,194,154,.10) 0%, transparent 55%),
    linear-gradient(165deg, #12141a 0%, #0a0c12 55%, #07080c 100%) !important;
}
.entry-related .loop-entry .post-thumbnail img,
.entry-related .loop-entry .featured-image img{
  transition:transform .35s ease, filter .35s ease;
  object-fit:contain !important;
  width:100% !important; height:100% !important;
  filter:brightness(.88) contrast(1.05) saturate(.95);
  background:transparent !important;
}
.entry-related .loop-entry:hover .post-thumbnail img,
.entry-related .loop-entry:hover .featured-image img{ transform:scale(1.04); }

/* Single blog: related carousel was floating above a Kadence 5rem (.content-area)
   bottom margin — awkward empty band before the footer. Kill the external margin;
   keep breathing room as BOTTOM INTERNAL padding so the Splide dots have space. */
body.single-post #primary.content-area{
  margin-bottom:0 !important;
}
body.single-post .entry-related{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
/* Kadence ~3.5rem top+bottom on .entry-related-inner-content; pagination is
   position:absolute. Keep a solid bottom pad so the dots breathe inside the
   section — not as a dead band between section and footer. */
body.single-post .entry-related .entry-related-inner-content{
  padding-bottom:48px !important;
}
body.single-post .entry-related .entry-related-carousel{
  margin-bottom:8px !important;
}
body.single-post .entry-related .splide__pagination{
  margin:4px 0 0 !important;
  padding:0 !important;
}
/* Footer: modest top pad only (breathing lives in related, above). */
body.single-post .site-bottom-footer-inner-wrap{
  padding-top:24px !important;
}

/* ===================== BLOG ARCHIVE: tighten hero =====================
 * The Kadence archive hero (.entry-hero) has excessive bottom padding that
 * pushes the post grid far below the fold on desktop. Reduce it.
 */
body.blog .entry-hero.post-archive-hero-section{
  padding-bottom:32px !important;
  margin-bottom:0 !important;
}
body.blog .entry-hero.post-archive-hero-section .entry-header{
  padding-bottom:0 !important;
}
/* Archive heading: consistent with site dark palette */
body.blog .entry-hero .page-title,
body.blog .entry-hero h1{
  color:#fff !important; font-size:clamp(28px,5vw,48px) !important; font-weight:800 !important;
}

/* ===================== HERO FULL-HEIGHT ===================== */
/* Header is fixed at 80px. Hero sits directly below it. */
.home .elementor-element-21f1507.e-con,
.page-id-104 .elementor-element-21f1507.e-con{
  min-height:calc(100vh - 80px) !important;
}
.home .elementor-element-21f1507 > .e-con-inner,
.page-id-104 .elementor-element-21f1507 > .e-con-inner{
  min-height:calc(100vh - 80px) !important;
  align-items:center;
}
/* Desktop first fold includes the two native Elementor rails immediately after
   the hero: trust bar (about 134px) + marquee (about 56px). Keep min-height,
   rather than hard height, so short screens can grow without clipping content. */
@media (min-width:1025px){
  .home .elementor-element-21f1507.e-con,
  .page-id-104 .elementor-element-21f1507.e-con,
  .home .elementor-element-21f1507 > .e-con-inner,
  .page-id-104 .elementor-element-21f1507 > .e-con-inner{
    min-height:calc(100vh - 272px) !important;
    min-height:calc(100svh - 272px) !important;
  }
  .home .elementor-element-21f1507 > .e-con-inner,
  .page-id-104 .elementor-element-21f1507 > .e-con-inner{
    padding-top:20px !important;
    padding-bottom:20px !important;
  }
}
/* Mobile: fill viewport when content is short; grow (no hard-clip) when subtitle+form need room */
@media (max-width:767px){
  .home .elementor-element-21f1507.e-con,
  .page-id-104 .elementor-element-21f1507.e-con{
    height:auto !important;
    min-height:calc(100vh - 80px) !important;
    max-height:none !important;
    overflow:visible !important;
    padding:0 !important;
  }
  .home .elementor-element-21f1507 > .e-con-inner,
  .page-id-104 .elementor-element-21f1507 > .e-con-inner{
    padding-top:10px !important;
    padding-bottom:14px !important;
    row-gap:8px !important;
    justify-content:center !important;
    min-height:calc(100vh - 80px) !important;
    height:auto !important;
  }
}
