/*
Theme Name: Blocksy Vegas Tides Dark
Template: blocksy
Description: VEGAS TIDES dark storefront (Client Site Factory). HART-dark template lineage (blocksy-hart-legacy-child 1.1.3 → vegas 2.0.0): PDP Description/COA/RUO sub-tabs under the photo, catalog quick view, owned center-lockup header, premium-dark footer. Client-locked Marble Vault palette #0A0A0B/#121214/#C9C4B8/#F5EFE0/#C9A227, Cinzel headings + Inter body (+ Cormorant Garamond / JetBrains Mono). Palette lines marked @brand:*.
Version: 2.1.12
*/

/* Client-locked typography: Cinzel (display) + Inter (body). @import must precede all rules. */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* @brand markers — apply-brand.sh rewrites the hex on each marked line */
  --bpc-primary:           #C9A227; /* @brand:primary */
  --bpc-primary-hover:     #E6C766; /* @brand:primary-hover */
  --bpc-foreground:        #F5EFE0; /* @brand:foreground */
  --bpc-body:              #C9C4B8; /* @brand:body */
  --bpc-background:        #0A0A0B; /* @brand:background */
  --bpc-card:              #121214; /* @brand:card */
  --bpc-border:            #342B11; /* @brand:border */
  --bpc-background-deeper: #060607; /* @brand:background-deeper */

  --bpc-font-sans: 'Inter', system-ui, sans-serif;
  --bpc-font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --bpc-radius: 0.375rem;
}

/* ---- VEGAS TIDES brand layer (csf-brand step 3 — fonts + accent, client-locked) ---- */
:root {
  --bpc-accent: #C9A227;               /* gold — accent text/rules on dark surfaces ONLY (8.95:1 on bg, 7.29:1 on card) */
  --bpc-font-display: 'Cinzel', 'Times New Roman', serif;
  --bpc-font-sans: 'Inter', system-ui, sans-serif;
}

/* Blocksy's dynamic typography CSS wins the cascade — font overrides need !important. */
body { font-family: var(--bpc-font-sans) !important; }
h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title,
.woocommerce-loop-product__title {
  font-family: var(--bpc-font-display) !important;
  letter-spacing: 0.02em;
}

/* Logo presence standard (Austin's bar): mark >=48px tall on desktop; 54px = the Merit Bio setting.
   logo-lockup-transparent.png keeps pad around VEGAS TIDES so the T/H serifs are not cropped
   (2026-08-14: 580×594 alpha-crop cut the T; rebuilt from the 740×800 dark lockup). */
[data-id="logo"] .site-logo-container img { max-height: 54px; }
.site-title { font-size: 26px; }

/* ⚠️ AA guard: white text on gold #C9A227 is 2.27:1 — FAILS. Every solid-gold control uses
   near-black text (#0A0A0B on gold = 8.95:1; on hover gold #E6C766 = 11.25:1). */
.ct-button, button, .button, input[type="submit"], .wp-element-button,
.single_add_to_cart_button, .add_to_cart_button, .checkout-button {
  color: var(--bpc-background) !important;
  font-family: var(--bpc-font-sans) !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.age-gate__button--yes, .age-gate__submit--yes { color: var(--bpc-background) !important; }
.age-gate__button--no, .age-gate__submit--no { color: var(--bpc-primary) !important; }
.age-gate__button--no:hover, .age-gate__submit--no:hover { color: var(--bpc-primary-hover) !important; }

/* Force the client palette onto Blocksy's surfaces (mirrors a1-compounds !important pattern).
   Contract law: default running text = `body` token (#C9C4B8, 13.20:1 on bg / 11.21:1 on card);
   `foreground` (#F5EFE0) is reserved for headings + high-emphasis text. */
body {
  background: var(--bpc-background) !important;
  color: var(--bpc-body) !important;
  font-family: var(--bpc-font-sans);
}
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title, .woocommerce-loop-product__title {
  color: var(--bpc-foreground); /* low-specificity guard: headings never inherit body gray */
}
a { color: var(--bpc-primary); }
a:hover { color: var(--bpc-primary-hover); }

/* Map the brand onto Blocksy's OWN palette variables. WITHOUT this, Blocksy renders buttons,
   links, breadcrumbs, the active-nav state, tags, and the add-to-cart CTA in its default accent
   #2872FA — off-brand AND only 4.31:1 on white (fails WCAG AA). apply-brand.sh fills --bpc-* above;
   these inherit it. !important is required: Blocksy emits its own :root palette inline in <head>
   AFTER this stylesheet, so only an !important custom-property declaration wins the cascade. */
:root {
  --theme-palette-color-1: var(--bpc-primary) !important;           /* links, buttons, accents, active nav */
  --theme-palette-color-2: var(--bpc-primary-hover) !important;     /* hover / brighter accent */
  --theme-palette-color-3: var(--bpc-foreground) !important;        /* headings, high-emphasis text */
  --theme-palette-color-4: var(--bpc-body) !important;              /* secondary / meta text — BODY gray, never gold (gold-as-accent law) */
  --theme-palette-color-5: var(--bpc-border) !important;            /* borders */
  --theme-palette-color-6: var(--bpc-card) !important;              /* raised surfaces */
  --theme-palette-color-7: var(--bpc-background-deeper) !important; /* deep wells (footer, vignettes) */
  --theme-palette-color-8: var(--bpc-background) !important;        /* base background */
}

/* ---- Age gate: premium brand skin (one-click 21+ confirm) ---- */
.age-gate__wrapper {
  background: var(--bpc-card);
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(10,10,11, .45);
  padding: 44px 40px;
  max-width: 420px;
}
.age-gate__heading-title {
  font-family: var(--bpc-font-display) !important;
  color: var(--bpc-primary);
  font-size: 30px;
  font-weight: 700; /* real imported weight — Cinzel ships 400-700; 800 would synthesize (banned, DESIGN.md §2) */
  letter-spacing: 0.02em; /* wide display tracking per DESIGN.md §2 */
}
.age-gate__subheadline {
  font-family: var(--bpc-font-sans) !important;
  color: var(--bpc-foreground);
  font-size: 15px;
  line-height: 1.55;
  max-width: 32ch;
  margin: 10px auto 22px;
}
.age-gate__button, .age-gate__submit {
  font-family: var(--bpc-font-sans) !important; /* buttons = Inter (DESIGN.md §2); Cinzel is display-only */
  border-radius: 999px !important;
  padding: 13px 30px !important;
  font-weight: 700;
  font-size: 15px;
  border: 2px solid var(--bpc-primary) !important;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.age-gate__button--yes, .age-gate__submit--yes {
  background: var(--bpc-primary) !important;
  /* AA guard (board law): near-black on gold. #0A0A0B on #C9A227 = 8.95:1; on hover gold #E6C766 = 11.25:1.
     NEVER #fff here — white on gold is 2.27:1 (1.80:1 on hover) and fails WCAG AA. */
  color: var(--bpc-background) !important;
}
.age-gate__button--yes:hover, .age-gate__submit--yes:hover { background: var(--bpc-primary-hover) !important; border-color: var(--bpc-primary-hover) !important; }
.age-gate__button--no, .age-gate__submit--no {
  background: transparent !important;
  color: var(--bpc-primary) !important;
}
.age-gate__button--no:hover, .age-gate__submit--no:hover { background: var(--bpc-border) !important; }
.age-gate__remember-wrapper, .age-gate__remember {
  font-family: var(--bpc-font-sans) !important;
  color: var(--bpc-foreground);
  font-size: 13px;
}
/* Error red: #F2555A = 4.90:1 on card #121214, 6.01:1 on bg #0A0A0B — AA pass on both dark surfaces.
   (Old #B3261E was 2.53:1 on the card — banned.) Same token as theme.json "destructive". */
.age-gate__errors { color: #F2555A; font-size: 14px; }

/* ---- Control-state governance (gold controls; codex D3 finding) ---- */
/* Focus: visible gold ring on dark surfaces (#E6C766 on #0A0A0B = 11.25:1; >= 3:1 non-text bar). */
.ct-button:focus-visible, button:focus-visible, .button:focus-visible,
input[type="submit"]:focus-visible, .wp-element-button:focus-visible,
.single_add_to_cart_button:focus-visible, .add_to_cart_button:focus-visible,
.checkout-button:focus-visible, .age-gate__button:focus-visible, .age-gate__submit:focus-visible,
a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--bpc-primary-hover) !important;
  outline-offset: 2px;
}
/* Disabled: never a gold field — graphite surface + body gray (#C9C4B8 on #342B11 = 9.12:1, still readable). */
.ct-button:disabled, button:disabled, .button:disabled, input[type="submit"]:disabled,
.wp-element-button:disabled, .single_add_to_cart_button:disabled, .add_to_cart_button:disabled,
.ct-button[disabled], .button[disabled], .wp-element-button[aria-disabled="true"] {
  background: var(--bpc-border) !important;
  border-color: var(--bpc-border) !important;
  color: var(--bpc-body) !important;
  cursor: not-allowed;
}


/* G2d assemble: the static front page renders a duplicate "Home" hero H1 — suppress;
   the page copy provides its own H1 (csf-assemble §7). */
body.home .entry-header { display: none; }
/* Playwright 2026-08-13: live home had hero starting at y=166 (60px
   .ct-container-full pad + 33px leftover .hero-section) and only 1296px
   wide — black gutters + a dead band under the header. Kill the chrome
   so the DNA video is the full viewport under the overlay header. */
body.home .ct-container-full { padding: 0 !important; }
body.home .hero-section { display: none !important; }
body.home .entry-content {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.home .entry-content > #hl-home-root {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
}
/* Vegas: the React body is a full-bleed breakout out of the .ct-container
   (html{overflow-x:clip} below keeps the scrollbar-width overshoot invisible). */
body.home .entry-content > #vt-home-root {
  max-width: none !important;
  width: 100vw !important;
  margin-inline: calc(50% - 50vw) !important;
}

/* Zoom-safe full-bleed. 100vw includes the scrollbar, so calc(50% - 50vw)
   walks left on Cmd+/- zoom and never tracks the layout. Clip the axis and
   size these bands to the formatted parent — they morph with the build. */
html { overflow-x: clip; }

/* G2d assemble: style the owned csf-topstrip (was unstyled inline spans running together).
   Claim-free operational copy; brand tokens; stacks on small screens. */
.csf-topstrip {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 6px 24px; font-size: 12px; letter-spacing: .02em;
  background: var(--bpc-background-deeper, #060607); color: var(--bpc-body, #C9C4B8);
  border-bottom: 1px solid var(--bpc-border, #342B11);
}
.csf-topstrip .csf-topstrip__right { opacity: .8; }
@media (max-width: 689px) { .csf-topstrip { flex-direction: column; gap: 2px; text-align: center; } }
/* ---- G3 polish (designer, csf-design) — APPEND to blocksy-vegas-tides-dark/style.css ----
   Closes the two G2 polish items that are child-theme-side:
   (2) PDP "Size" sibling-switcher spacing (csf-storefront-tweaks 4a renders
       .csf-strengths pills with no styling — they ran together).
   (Bottom-bar emoji -> real icons ships as mu-plugin v1.1.0, not here.) */

/* PDP strength/size switcher — spaced pill row under the price */
.csf-strengths {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 18px;
}
.csf-strengths__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bpc-body);
  margin-right: 4px;
}
.csf-strength {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border: 1px solid var(--bpc-border);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--bpc-foreground);
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.csf-strength:hover {
  border-color: var(--bpc-primary);
  color: var(--bpc-primary);
}
/* Active pill: solid gold takes near-black text (AA law — never white on gold) */
.csf-strength.is-active {
  background: var(--bpc-primary);
  border-color: var(--bpc-primary);
  color: var(--bpc-background) !important;
}
.csf-strength.is-active:hover {
  background: var(--bpc-primary-hover);
  border-color: var(--bpc-primary-hover);
}

/* ============================================================================
   R1 FIX PASS (designer, codex-review R1 — 2026-08-12)
   #2  (codex 10) .csf-bigfoot footer CSS — the mu-plugin csf-storefront-tweaks
       renders the full premium footer markup and promises "Styled by the child
       theme's .csf-bigfoot rules"; those rules never existed, so the footer
       shipped as run-on text site-wide. This block IS those rules.
   #5b (codex 9)  interior pages read template-grade vs the home — hero band
       system for every interior title, dark-luxury shop archive, measured
       entry-content rhythm + styled steps, PDP framing. CSS-only; no template
       rewrites. Fluid/no-boxes law applies to interiors.
   AA notes inline. Gold = #C9A227 = rgb(200,168,107).
   ========================================================================== */

/* ---- R1-2 · .csf-bigfoot — the premium-dark footer --------------------- */
/* Renders inside .ct-footer [data-row=bottom] .ct-container > .ct-footer-copyright.
   Flatten Blocksy's padded frame so the marble is page chrome — same
   inset-stamp / gray-gutter bug as the top title band. */
.ct-footer,
.ct-footer [data-row],
.ct-footer [data-row=bottom] .ct-container,
.ct-footer [data-row=bottom] .ct-container-fluid,
.ct-footer .ct-footer-copyright {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--bpc-background-deeper) !important;
}
.ct-footer .ct-footer-copyright { padding: 0; }
.csf-bigfoot {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  background: var(--bpc-background-deeper);
  font-family: var(--bpc-font-sans);
  text-align: left;
}
.csf-bigfoot::before { /* top hairline — gold gradient, the house divider */
  content: '';
  display: block;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,162,39, 0.5), transparent);
}
.csf-bigfoot__wrap {
  max-width: 1160px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.1fr;
  gap: clamp(28px, 4vw, 56px);
  padding: clamp(44px, 6vw, 72px) clamp(20px, 4vw, 40px) clamp(30px, 4vw, 44px);
}
.csf-footer-logo {
  display: block;
  max-height: 46px;
  width: auto;
  margin: 0 0 14px;
}
.csf-bigfoot__name {
  display: block;
  font-family: var(--bpc-font-display);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--bpc-foreground); /* #F5EFE0 on #060607 — AA pass */
}
.csf-bigfoot__brand p {
  margin: 12px 0 0;
  max-width: 34ch;
  font-size: 14px;
  line-height: 1.7;
  color: var(--bpc-body); /* #C9C4B8 on #060607 ≈ 14.25:1 — AA pass */
}
/* Column heads: Inter eyebrows, never Cinzel (display is for titles).
   Non-heading element (.csf-bigfoot__hdg div) — footer column titles are
   navigation labels, not document-outline headings (axe heading-order). */
.csf-bigfoot__col .csf-bigfoot__hdg {
  font-family: var(--bpc-font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--bpc-primary); /* gold #C9A227 on #060607 ≈ 9.27:1 — AA pass */
  margin: 0 0 14px;
}
/* Hairline dividers between columns (desktop) */
.csf-bigfoot__col {
  border-left: 1px solid rgba(201,162,39, 0.14);
  padding-left: clamp(20px, 2.5vw, 32px);
}
/* Legible link stack — the run-on fix: block links, breathing room, gold hover */
.csf-bigfoot__col a {
  display: block;
  padding: 5px 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--bpc-body);
  text-decoration: none;
  transition: color 0.15s ease;
}
.csf-bigfoot__col a:hover { color: var(--bpc-primary); }
.csf-bigfoot__bar {
  border-top: 1px solid rgba(201,162,39, 0.16);
  padding: 18px clamp(20px, 4vw, 40px);
  text-align: center;
  font-size: 12.5px;
  line-height: 1.6;
  color: rgba(201,196,184, 0.78); /* ≈ #A39F94 on #060607 ≈ 8.6:1 — AA pass */
}
/* Mobile stack: brand full-width, columns 2-up then 1-up, dividers rotate to top */
@media (max-width: 899px) {
  .csf-bigfoot__wrap { grid-template-columns: 1fr 1fr; gap: 28px; }
  .csf-bigfoot__brand { grid-column: 1 / -1; }
  .csf-bigfoot__col {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid rgba(201,162,39, 0.12);
    padding-top: 20px;
  }
}
@media (max-width: 559px) {
  .csf-bigfoot__wrap { grid-template-columns: 1fr; }
}

/* ---- R1-5b · interior hero band (every page title = a real hero) -------- */
/* Blocksy renders every interior title as .hero-section (shop = type-2 band,
   pages = type-1 constrained). One dark-luxury band system for both: deeper
   well, soft gold uplight, hairline base, centered Cinzel. "A bare title strip
   is not a hero — bands need depth" (banned-move #5). */
.hero-section[data-type] {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  min-height: clamp(72px, 8vw, 110px) !important;
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(201,162,39, 0.16), transparent 62%),
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    var(--bpc-background-deeper) !important;
  /* lockup hangs onto this plate — title sits below the mark, not through it */
  padding: clamp(40px, 5.2vw, 58px) clamp(16px, 4vw, 40px) clamp(14px, 2vw, 20px);
  margin-top: 0;
  margin-bottom: clamp(10px, 1.6vw, 16px);
  /* Austin 08-20: the gold line under the header band is CURVED and clean. */
  border-bottom: 1px solid rgba(201,162,39, 0.55);
  border-radius: 0 0 50% 50% / 0 0 clamp(26px, 3.4vw, 46px) clamp(26px, 3.4vw, 46px);
  box-sizing: border-box;
}
.hero-section[data-type],
.hero-section {
  min-height: 0 !important;
  height: auto !important;
}
/* If Blocksy nests the title band in a padded frame, flatten it so the
   marble is page chrome — same width as the header, not a drifting stamp. */
body:not(.home) #main > .hero-section,
body:not(.home) .ct-container-full:has(> .hero-section),
body:not(.home) .ct-container:has(> .hero-section) {
  width: 100%;
  max-width: none;
  padding-inline: 0;
  margin-inline: 0;
}
/* type-1 pages (PDP, About, etc.) wrap the band in .ct-container-full with
   60px pad-top — that's the black void under the lockup. Kill it. */
body:not(.home) .ct-container-full { padding-top: 0 !important; padding-bottom: 0 !important; }
/* Blocksy type-2 defaults --min-height: 250px + 50px container pad — that's
   the black stadium under the header. Collapse it. */
.hero-section[data-type="type-2"] > [class*="ct-container"] {
  min-height: 0 !important;
  padding: clamp(36px, 4vw, 48px) 0 10px !important;
  justify-content: flex-start !important;
}
body.hl-shop .hero-section[data-type] .page-title {
  font-size: clamp(22px, 2.4vw, 28px);
  letter-spacing: 0.14em;
  margin-top: 8px;
}
.hero-section[data-type] .entry-header {
  max-width: 1160px;
  margin-inline: auto;
  text-align: center;
}
.hero-section[data-type] .page-title {
  margin: 0;
  font-size: clamp(32px, 3.6vw, 44px);
  letter-spacing: 0.06em;
  color: var(--bpc-foreground);
}
.hero-section[data-type] .page-title::after {
  content: '';
  display: block;
  width: 72px;
  height: 1px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, rgba(201,162,39, 0.75), transparent);
}


/* ---- VT band emblem (Austin 08-20): the transparent Vegas Tides mark hovering
   just under the curved header band on utility pages. Markup from
   inc/hl-interior-richness.php. Clean — no plate, no line, no motion. */
.vt-band-emblem {
  width: 100%;
  text-align: center;
  margin: clamp(2px, 0.6vw, 8px) 0 clamp(14px, 1.8vw, 22px);
  pointer-events: none;
}
.vt-band-emblem img {
  display: inline-block;
  width: clamp(110px, 11vw, 160px);
  height: auto;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,0.5));
}

/* ---- R1-5b · shop archive — dark-luxury the grid ------------------------ */
/* Fluid/no-boxes: the square product renders carry their own baked black bg —
   feather-mask them into the field (home Featured-card treatment) instead of
   letting hard tile edges read as boxes. */
[data-products] .product {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  text-align: center;
  align-items: center;
}
[data-products] .product .ct-media-container {
  background: transparent !important;
  aspect-ratio: 4 / 5;
}
[data-products] .product .ct-media-container img {
  object-fit: contain;
  object-position: center bottom;
  background: transparent !important;
  -webkit-mask-image: radial-gradient(78% 78% at 50% 48%, #000 48%, transparent 78%);
  mask-image: radial-gradient(78% 78% at 50% 48%, #000 48%, transparent 78%);
  transition: transform 0.5s ease;
}
[data-products] .product:hover .ct-media-container img { transform: scale(1.045); }
[data-products] .product .woocommerce-loop-product__title {
  font-size: 17px;
  letter-spacing: 0.04em;
}
[data-products] .product .price {
  color: var(--bpc-primary); /* gold on #0A0A0B = 8.95:1 — AA pass */
  font-weight: 600;
}
/* Archive CTA: ghost → gold on hover (16 solid-gold blocks read loud; the
   ghost keeps the grid quiet and the hover keeps the AA near-black-on-gold law) */
[data-products] .product .button {
  background: transparent !important;
  border: 1px solid rgba(201,162,39, 0.45) !important;
  color: var(--bpc-primary) !important; /* 8.95:1 — AA pass */
}
[data-products] .product .button:hover {
  background: var(--bpc-primary) !important;
  border-color: var(--bpc-primary) !important;
  color: var(--bpc-background) !important; /* 8.95:1 — AA pass */
}
/* Toolbar: eyebrow the count, dark-skin the ordering control */
.woocommerce-result-count {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(201,196,184, 0.66); /* ≈ 8.5:1 on bg — AA pass */
}
.woocommerce-ordering select,
select.orderby {
  background-color: var(--bpc-card);
  border: 1px solid var(--bpc-border);
  border-radius: 4px;
  color: var(--bpc-body);
  padding: 8px 12px;
}
/* No black stadium between the last row and the footer marble */
body.hl-shop .site-main,
body.hl-pdp .site-main,
body.hl-shop .woocommerce,
body.hl-pdp .woocommerce,
.woocommerce-pagination {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.woocommerce-pagination { margin-top: clamp(20px, 3vw, 36px); padding-bottom: clamp(20px, 3vw, 32px) !important; }
/* Pagination: quiet squares, gold current (near-black numeral per AA law) */
.woocommerce-pagination .page-numbers li > .page-numbers,
.ct-pagination .page-numbers {
  border: 1px solid var(--bpc-border);
  border-radius: 4px;
  color: var(--bpc-body);
  background: transparent;
}
.woocommerce-pagination .page-numbers li > .page-numbers.current,
.ct-pagination .page-numbers.current {
  background: var(--bpc-primary);
  border-color: var(--bpc-primary);
  color: var(--bpc-background);
}

/* ---- R1-5b · interior content rhythm (the text-wall fix) ---------------- */
/* ONE measured column: WP's .is-layout-constrained auto-centers any child
   with a max-width, so every element carries the SAME cap or headings sit on
   a different axis. Fixed px, never ch — ch scales with each element's font,
   so "70ch" on an h2 is a different (much wider) column than on a p. */
.page:not(.home) .entry-content > p,
.page:not(.home) .entry-content > ul,
.page:not(.home) .entry-content > ol,
.page:not(.home) .entry-content > h2,
.page:not(.home) .entry-content > h3,
.page:not(.home) .entry-content > h4 { max-width: 720px; /* ≈70ch at body 16px */ }
.page:not(.home) .entry-content > p { line-height: 1.75; }
.page:not(.home) .entry-content > h2 {
  margin: 2.1em 0 0.7em;
  letter-spacing: 0.05em;
}
.page:not(.home) .entry-content > h2:first-child { margin-top: 0.2em; }
.page:not(.home) .entry-content > h2::after {
  content: '';
  display: block;
  width: 56px;
  height: 1px;
  margin-top: 14px;
  background: linear-gradient(90deg, rgba(201,162,39, 0.8), transparent);
}
.page:not(.home) .entry-content > h3 {
  margin: 1.9em 0 0.55em;
  font-size: 21px;
  letter-spacing: 0.05em;
}
.page:not(.home) .entry-content > hr {
  border: 0;
  height: 1px;
  margin: 2.6em 0;
  background: linear-gradient(90deg, transparent, rgba(201,162,39, 0.4), transparent);
}
.page:not(.home) .entry-content strong { color: var(--bpc-foreground); }
.page:not(.home) .entry-content ul li { margin-block: 6px; }
.page:not(.home) .entry-content ul li::marker { color: var(--bpc-primary); }
/* Styled steps for true sequences (the affiliates "How it works" <ol> once the
   md2html fix renders it): ringed gold numerals, one step per breath. Plain
   counters — a real 1-2-3 sequence, not the banned editorial 01/02 dressing. */
.page:not(.home) .entry-content ol {
  list-style: none;
  counter-reset: csf-step;
  margin: 1.4em 0;
  padding: 0;
}
.page:not(.home) .entry-content ol > li {
  counter-increment: csf-step;
  position: relative;
  padding-left: 48px;
  margin-block: 18px;
}
.page:not(.home) .entry-content ol > li::before {
  content: counter(csf-step);
  position: absolute;
  left: 0;
  top: -1px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(201,162,39, 0.55);
  border-radius: 50%;
  font-family: var(--bpc-font-display);
  font-size: 15px;
  color: var(--bpc-primary); /* 8.95:1 — AA pass */
}

/* ---- R1-5b · affiliate application form (fluid, not a box) -------------- */
/* The plugin ships a rounded outlined card; the brand system is hairlines on
   the field. Higher specificity than the plugin's .csf-aff-card — no order dependence. */
.csf-aff-card.csf-aff-form-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  border-top: 1px solid rgba(201,162,39, 0.25);
  padding: clamp(28px, 4vw, 44px) 0 0;
  max-width: 660px;
  margin-inline: auto; /* join the page's centered column axis */
}
.csf-aff .csf-aff-field label {
  font-family: var(--bpc-font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bpc-primary);
  margin-bottom: 7px;
}
.csf-aff .csf-aff-field { margin-bottom: 20px; }
.csf-aff .csf-aff-agree label {
  font-size: 14px;
  letter-spacing: normal;
  text-transform: none;
  color: var(--bpc-body);
}

/* ---- R1-5b · PDP framing (fluid product plane, measured summary) -------- */
/* The gallery render carries its own baked black bg — feather it into the
   field and stand it on a soft light pool; no box, no border. */
.single-product .woocommerce-product-gallery { position: relative; }
.single-product .woocommerce-product-gallery::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 4%;
  width: 88%;
  height: 34%;
  transform: translateX(-50%);
  background: radial-gradient(50% 60% at 50% 78%, rgba(201,162,39, 0.12), rgba(201,162,39, 0.04) 55%, transparent 78%);
  pointer-events: none;
}
.single-product .woocommerce-product-gallery img {
  -webkit-mask-image: radial-gradient(82% 82% at 50% 48%, #000 50%, transparent 80%);
  mask-image: radial-gradient(82% 82% at 50% 48%, #000 50%, transparent 80%);
}
.single-product .entry-summary .price {
  color: var(--bpc-primary);
  font-size: clamp(24px, 2.4vw, 30px);
  font-weight: 600;
}
/* RUO line: quiet eyebrow under the price */
.single-product .entry-summary .csf-ruo {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(201,196,184, 0.72); /* ≈ 9.3:1 — AA pass */
}
.single-product .entry-summary .ct-product-divider {
  display: block;
  height: 1px;
  background: linear-gradient(90deg, rgba(201,162,39, 0.35), transparent);
  margin: 18px 0;
}
.single-product .entry-summary .stock { font-size: 13px; color: rgba(201,196,184, 0.72); }
.single-product .entry-summary .csf-atc-consent { font-size: 14px; line-height: 1.55; }
/* COA row: hairline-framed line, gold state chip — no box */
.single-product .csf-coa-block {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 14px;
  border-top: 1px solid rgba(201,162,39, 0.18);
  padding-top: 16px;
  margin-top: 18px;
}
.single-product .csf-coa-block .csf-coa-cta {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bpc-primary);
}
.single-product .csf-coa-block .csf-coa-label {
  font-size: 13.5px;
  color: rgba(201,196,184, 0.8);
}
/* Meta: small-caps whisper under a hairline */
.single-product .entry-summary .product_meta {
  border-top: 1px solid var(--bpc-border);
  padding-top: 14px;
  margin-top: 16px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(201,196,184, 0.66);
}
.single-product .entry-summary .product_meta a { color: var(--bpc-body); }
.single-product .entry-summary .product_meta a:hover { color: var(--bpc-primary); }


/* ============================================================================
   K3 INTERIOR RICHNESS PASS (file-only lane, 2026-08-13)
   Surfaces: /affiliates/ + /affiliate-terms/ · shop archive · PDP ·
   /faq/ + /about/ + /contact/ · the .csf-bigfoot footer.
   Method: token-locked CSS + licensed texture/icon/art assets staged under
   assets/ (see _build/k3/ASSET-MAP.md for sources + licences). Zero new
   customer-facing sentences — this block is presentation only.
   House laws applied: gold stays an accent (never a text field); every solid
   gold control keeps near-black text; motifs are contained (one per plate);
   textures always sit under a veil strong enough to preserve the documented
   AA pairs. New pairs documented inline.
   ========================================================================== */

/* ---- K3-0 · per-surface hero plates (extend the R1 hero band) ------------
   The R1 hero system (deep well + radial gold uplight + hairline) gains a
   licensed texture/art underlay per route. Veil ≈ rgba(8,8,9,.70) keeps the
   page title (foreground #F5EFE0) at ≥ 12:1 on every plate. */
.hero-section[data-type] { position: relative; }
/* Marble plates scale with the band (100% width), not a fixed cover-crop
   that jumps left when the viewport/zoom changes. */
body.hl-p-affiliates .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.12), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.48)),
    url('assets/textures/vt-marble-02.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
}
body.hl-p-affiliate-terms .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.48)),
    url('assets/textures/vt-marble-10.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
}
body.hl-shop .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.48)),
    url('assets/textures/vt-marble-01.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
}
body.hl-p-faq .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.48)),
    url('assets/art/vt-ambient-marble-wide.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
}
body.hl-p-contact .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.48)),
    url('assets/art/vt-ambient-helix-dim.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
}

/* ---- VT VIDEO BACKDROPS (Austin 2026-08-21, K3 visual lane) ----------------
   Licensed Envato motion plates faded behind the page (markup: inc/hl-
   interior-richness.php job 5; log: clients/vegas-tides/envato-assets/
   LICENSES.md). About / Affiliate Portal / Contact: a fixed video plate moves
   behind the content; the page bands go translucent so one continuous plate
   carries the page — the scrim + band veils hold title/body contrast in the
   R1 range. COA library: the gold helix lives inside the hero band only (the
   page is too long for a full background). Posters carry the surface under
   reduced-motion / no-JS; video plays only through the footer motion gate. */
.vt-pagebg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.vt-pagebg__poster { position: absolute; inset: 0; background-size: cover; background-position: 50% 36%; opacity: 0.5; }
.vt-pagebg__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 36%; opacity: 0.55; }
.vt-pagebg__scrim { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(10,10,11,0.42) 0%, rgba(10,10,11,0.72) 30%, rgba(6,6,7,0.88) 100%); }
/* content bands go translucent so the plate breathes behind the copy */
body.hl-p-about #main, body.hl-p-affiliate-portal #main, body.hl-p-contact #main { background: transparent !important; }
body.hl-p-about .vt-band, body.hl-p-affiliate-portal .vt-band, body.hl-p-contact .vt-band,
body.hl-p-about .hl-sect, body.hl-p-affiliate-portal .hl-sect, body.hl-p-contact .hl-sect { background-color: rgba(10,10,11,0.80) !important; }
/* COA library: helix band clipped inside the curved hero plate (header only) */
body.hl-p-coa-library .hero-section[data-type] { overflow: hidden; }
.vt-coa-helix { display: none; } /* fail-closed: the footer gate moves it inside the hero band + unhides — never a page-sized overlay */
.vt-coa-helix--in { display: block; position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; border-radius: inherit; }
.vt-coa-helix__poster { position: absolute; inset: 0; background-size: cover; background-position: 50% 50%; opacity: 0.55; }
.vt-coa-helix__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; opacity: 0.65; }
.vt-coa-helix__veil { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(6,6,7,0.52), rgba(6,6,7,0.7)); }
.hero-section[data-type] .entry-header { position: relative; z-index: 1; }

/* ---- K3-1 · affiliates — how-it-works steps: lab/commerce icon discs ------
   Replaces the R1 bare ringed numerals ON THIS PAGE ONLY. Licensed gold
   line-icon family (chemistry outline + stroke-compatible commerce lines).
   A 1px gold thread runs through the discs — one deliberate journey line. */
body.hl-p-affiliates .entry-content > ol { position: relative; }
body.hl-p-affiliates .entry-content > ol::before {
  content: '';
  position: absolute;
  left: 25px;
  top: 30px;
  bottom: 30px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(201,162,39, 0.45) 12%, rgba(201,162,39, 0.45) 88%, transparent);
}
body.hl-p-affiliates .entry-content > ol > li {
  padding-left: 76px;
  min-height: 54px;
  margin-block: 22px;
}
body.hl-p-affiliates .entry-content > ol > li::before {
  content: ''; /* kills the R1 counter on this page */
  top: 0;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(201,162,39, 0.45);
  border-radius: 50%;
  background-color: var(--bpc-background-deeper);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 26px;
  box-shadow: 0 0 0 5px rgba(8,8,9, 0.55); /* lift the disc off the thread line */
}
body.hl-p-affiliates .entry-content > ol > li:nth-child(1)::before { background-image: url('assets/icons/lab-clipboard.svg'); }
body.hl-p-affiliates .entry-content > ol > li:nth-child(2)::before { background-image: url('assets/icons/shop-12.svg'); }
body.hl-p-affiliates .entry-content > ol > li:nth-child(3)::before { background-image: url('assets/icons/shop-24.svg'); }
body.hl-p-affiliates .entry-content > ol > li:nth-child(4)::before { background-image: url('assets/icons/lab-monitor.svg'); }
body.hl-p-affiliates .entry-content > ol > li:nth-child(5)::before { background-image: url('assets/icons/shop-11.svg'); }

/* ---- K3-1 · affiliates — "What you earn" stat plates ----------------------
   The three earn bullets become a 3-up strip of textured stat plates (the
   Merit navy-plate pattern, hart gold). Copy untouched: <strong> already
   carries the figures; the remainder of each <li> becomes the caption.
   Gold figures #C9A227 on the veiled marble plate (≈ #0E0E10 effective) ≈ 7.4:1 — AA.
   Captions #C9C4B8 on the same plate ≈ 11.4:1 — AA. */
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul {
  max-width: 880px !important;
  list-style: none;
  padding: 0;
  margin: 1.8em auto 2.2em;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  margin-block: 0;
  padding: 30px 22px 24px;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--bpc-body);
  background:
    linear-gradient(rgba(8,8,9, 0.66), rgba(8,8,9, 0.80)),
    url('assets/textures/vt-marble-10.webp') center / cover no-repeat,
    var(--bpc-background-deeper);
  border: 1px solid rgba(201,162,39, 0.16);
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li::before { /* foil top edge */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: url('assets/textures/vt-foil-edge.webp') center / cover no-repeat;
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li > strong {
  display: block;
  font-family: var(--bpc-font-display);
  font-size: clamp(24px, 2.2vw, 31px);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--bpc-primary);
  margin-bottom: 10px;
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li > strong::before { /* stat icon */
  content: '';
  display: block;
  width: 38px;
  height: 38px;
  margin: 0 auto 14px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li:nth-child(1) > strong::before { background-image: url('assets/icons/shop-40.svg'); }
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li:nth-child(2) > strong::before { background-image: url('assets/icons/shop-07.svg'); }
body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul > li:nth-child(3) > strong::before { background-image: url('assets/icons/shop-14.svg'); }

/* ---- K3-1 · affiliates — the house-rule block carries the seal ------------
   The letterless seal sits in the right lane of the compliance section —
   a mark of record, not a badge (no claims attached, per the parked-badges law). */
body.hl-p-affiliates .entry-content > h3:nth-of-type(5) {
  padding-right: 118px;
  min-height: 96px;
  background: url('assets/art/vt-seal-gold-ring.webp') right 4px top 2px / 92px no-repeat;
}
body.hl-p-affiliates .entry-content > h3:nth-of-type(5) + p { padding-right: 118px; }

/* ---- K3-1 · affiliates — apply zone: fluid texture pool + foil edge ------- */
body.hl-p-affiliates .entry-content > p:last-of-type {
  text-align: center;
  font-size: 17px;
  color: var(--bpc-foreground); /* #F5EFE0 on #0A0A0B = 18.31:1 — AAA */
}
body.hl-p-affiliates .csf-aff-card.csf-aff-form-card {
  position: relative;
  z-index: 0;
  border-top: 0;
  padding: clamp(36px, 5vw, 58px) clamp(18px, 3vw, 34px) 6px;
  background: url('assets/textures/vt-foil-edge.webp') top center / 100% 3px no-repeat;
}
body.hl-p-affiliates .csf-aff-form-card::before { /* marble light pool, feathered — fluid, never a box */
  content: '';
  position: absolute;
  z-index: -1;
  inset: -48px -64px -24px;
  background: url('assets/art/vt-ambient-marble-wide.webp') center 32% / cover no-repeat;
  opacity: 0.55;
  -webkit-mask-image: radial-gradient(72% 82% at 50% 44%, #000 42%, transparent 74%);
  mask-image: radial-gradient(72% 82% at 50% 44%, #000 42%, transparent 74%);
  pointer-events: none;
}
@media (max-width: 899px) {
  /* pool bleed must stay inside the page gutter (B24: zero horizontal overflow) */
  body.hl-p-affiliates .csf-aff-form-card::before { inset: -34px -14px -18px; }
}

/* ---- K3-2 · affiliate-terms — seal of record + foil section ticks -------- */
body.hl-p-affiliate-terms .entry-content > h2:first-child {
  padding-right: 108px;
  min-height: 88px;
  background: url('assets/art/vt-seal-gold-ring.webp') right 2px top / 80px no-repeat;
}
body.hl-p-affiliate-terms .entry-content h3 {
  position: relative;
  padding-left: 18px;
}
body.hl-p-affiliate-terms .entry-content h3::before { /* 3px foil tick — section anchors */
  content: '';
  position: absolute;
  left: 0;
  top: 0.38em;
  width: 3px;
  height: 1em;
  background: url('assets/textures/vt-foil-edge.webp') center / cover no-repeat;
}

/* ---- K3-3 · shop archive — category tile row (markup from the K3 partial) -
   The four F2 category art plates as navigation. Names = the catalog's own
   taxonomy labels (no new sentences). Foreground #F5EFE0 on the veil
   (rgba(8,8,9,.30→.78) over the graphite art) ≥ 9:1 — AA. */
.hl-catrow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin: 0 0 clamp(26px, 3.5vw, 40px);
}
.hl-catrow__tile {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 12px;
  aspect-ratio: 3 / 2;
  text-decoration: none;
  border: 1px solid rgba(201,162,39, 0.14);
  background-color: var(--bpc-background-deeper);
  background-position: center;
  background-size: cover;
  transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.hl-catrow__tile::after { /* legibility veil for the label */
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8,8,9, 0.10) 30%, rgba(8,8,9, 0.78) 96%);
}
.hl-catrow__tile:hover {
  transform: translateY(-3px);
  border-color: rgba(201,162,39, 0.55);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}
.hl-catrow__tile--peptides { background-image: linear-gradient(rgba(6,6,7,0.18), rgba(6,6,7,0.62)), url('assets/art/vt-cat-peptides.webp'); }
.hl-catrow__tile--blends { background-image: linear-gradient(rgba(6,6,7,0.18), rgba(6,6,7,0.62)), url('assets/art/vt-cat-blends.webp'); }
.hl-catrow__tile--compounds { background-image: linear-gradient(rgba(6,6,7,0.18), rgba(6,6,7,0.62)), url('assets/art/vt-cat-compounds.webp'); }
.hl-catrow__tile--supplies { background-image: linear-gradient(rgba(6,6,7,0.18), rgba(6,6,7,0.62)), url('assets/art/vt-cat-supplies.webp'); }
.hl-catrow__name {
  position: absolute;
  z-index: 1;
  left: 18px;
  bottom: 14px;
  font-family: var(--bpc-font-display);
  font-size: clamp(15px, 1.4vw, 19px);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bpc-foreground);
}
.hl-catrow__name::after { /* gold tick under the label */
  content: '';
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 7px;
  background: linear-gradient(90deg, rgba(201,162,39, 0.85), transparent);
}

/* Shop utility row — microscope icon anchors the result-count eyebrow */
body.hl-shop .woocommerce-result-count { display: flex; align-items: center; gap: 9px; }
body.hl-shop .woocommerce-result-count::before {
  content: '';
  width: 17px;
  height: 17px;
  background: url('assets/icons/lab-microscope.svg') center / contain no-repeat;
  opacity: 0.9;
}

/* ---- K3-4 · PDP — fluid buy-box pool + icon-carried meta rows ------------- */
.single-product .entry-summary { position: relative; z-index: 0; }
.single-product .entry-summary::before { /* marble light pool behind the buy area — feathered, no box */
  content: '';
  position: absolute;
  z-index: -1;
  inset: -38px -46px -30px;
  background: url('assets/art/vt-ambient-marble-wide.webp') center 30% / cover no-repeat;
  opacity: 0.5;
  -webkit-mask-image: radial-gradient(74% 84% at 50% 42%, #000 40%, transparent 74%);
  mask-image: radial-gradient(74% 84% at 50% 42%, #000 40%, transparent 74%);
  pointer-events: none;
}
@media (max-width: 899px) {
  .single-product .entry-summary::before { inset: -28px -14px -20px; } /* bleed stays inside the gutter */
}
/* Icon rows — the licensed lab set carries research-use / documentation /
   shipping affordances. Icons are decorative marks on existing rows (no new
   wording, no claims iconography). */
.single-product .entry-summary .csf-ruo::before,
.single-product .csf-coa-block::before,
.single-product .entry-summary .stock::before,
.single-product .entry-summary .product_meta::before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  margin-right: 8px;
  vertical-align: -2px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.single-product .entry-summary .csf-ruo::before { background-image: url('assets/icons/lab-flask.svg'); }
.single-product .csf-coa-block::before { background-image: url('assets/icons/lab-clipboard.svg'); }
.single-product .entry-summary .stock::before { background-image: url('assets/icons/shop-09.svg'); }
.single-product .entry-summary .product_meta::before { background-image: url('assets/icons/shop-12.svg'); }

/* ---- K3-5 · FAQ — icon-anchored sections + alternating texture plates ----- */
/* Sections are wrapped by the K3 partial (hr-split, copy untouched). Even
   sections get a veiled marble plate — alternating rhythm, never bare walls. */
.hl-sect > p,
.hl-sect > ul,
.hl-sect > ol,
.hl-sect > h2,
.hl-sect > h3,
.hl-sect > h4 { max-width: 720px; margin-inline: auto; } /* R1 rhythm, ported inside the wrappers */
.hl-sect > p { line-height: 1.75; }
.hl-sect > h2 { margin: 2.1em 0 0.7em; letter-spacing: 0.05em; }
.hl-sect > h2:first-child { margin-top: 0.2em; }
.hl-sect > h2::after {
  content: '';
  display: block;
  width: 56px;
  height: 1px;
  margin-top: 14px;
  background: linear-gradient(90deg, rgba(201,162,39, 0.8), transparent);
}
.hl-sect > h3 { margin: 1.9em 0 0.55em; font-size: 21px; letter-spacing: 0.05em; }
.hl-sect > ul li::marker { color: var(--bpc-primary); }
.hl-sect > strong, .hl-sect strong { color: var(--bpc-foreground); }
.hl-sect--tex {
  /* Contained plate on the column axis — NOT a 100vw breakout: WP's
     .is-layout-constrained pins direct children with !important auto margins,
     so a breakout here would lose. Plate edges sit exactly on the 720 column. */
  border-radius: 12px;
  margin-block: clamp(30px, 4vw, 48px);
  padding: clamp(26px, 3.5vw, 40px) clamp(22px, 3vw, 34px);
  border-top: 1px solid rgba(201,162,39, 0.14);
  border-bottom: 1px solid rgba(201,162,39, 0.14);
  background:
    linear-gradient(rgba(8,8,9, 0.80), rgba(8,8,9, 0.86)),
    url('assets/art/vt-ambient-marble-wide.webp') center / cover no-repeat,
    var(--bpc-background-deeper);
}
.hl-sect--tex > :first-child { margin-top: 0.2em; }
.hl-sect--tex > :last-child { margin-bottom: 0.4em; }
/* FAQ group icons (one licensed voice, used only at section level).
   Gold icons on the plate/field — decorative; headings keep foreground. */
body.hl-p-faq .hl-sect h3 { display: flex; align-items: center; gap: 13px; }
body.hl-p-faq .hl-sect h3::before {
  content: '';
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
body.hl-p-faq .hl-sect:nth-of-type(2) h3::before { background-image: url('assets/icons/shop-02.svg'); }  /* Ordering */
body.hl-p-faq .hl-sect:nth-of-type(3) h3::before { background-image: url('assets/icons/shop-09.svg'); }  /* Shipping */
body.hl-p-faq .hl-sect:nth-of-type(4) h3::before { background-image: url('assets/icons/shop-14.svg'); }  /* Returns & refunds */
body.hl-p-faq .hl-sect:nth-of-type(5) h3::before { background-image: url('assets/icons/lab-flask.svg'); } /* Research use & handling */
body.hl-p-faq .hl-sect:nth-of-type(6) h3::before { background-image: url('assets/icons/lab-clipboard.svg'); } /* Documentation */
body.hl-p-faq .hl-sect:nth-of-type(7) h3::before { background-image: url('assets/icons/shop-31.svg'); }  /* Partner Program */
body.hl-p-faq .hl-sect:nth-of-type(8) h3::before { content: none; } /* closer stays clean */

/* ---- K3-5 · About — "What we supply" category art cards ------------------- */
body.hl-p-about .hl-sect h2 + ul {
  max-width: 940px !important;
  list-style: none;
  padding: 0;
  margin: 1.8em auto 2em;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
body.hl-p-about .hl-sect h2 + ul > li {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  margin-block: 0;
  padding: 24px 20px 20px;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--bpc-body); /* #C9C4B8 on veiled art ≈ 11:1 — AA */
  border: 1px solid rgba(201,162,39, 0.16);
  background-position: center;
  background-size: cover;
  background-color: var(--bpc-background-deeper);
}
body.hl-p-about .hl-sect h2 + ul > li::before { /* foil top edge */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: url('assets/textures/vt-foil-edge.webp') center / cover no-repeat;
}
/* Veil rides inside the background layers (not a pseudo) so the loose caption
   text node stays fully legible above the art — no z-index games. */
body.hl-p-about .hl-sect h2 + ul > li {
  background-image:
    linear-gradient(rgba(8,8,9, 0.62), rgba(8,8,9, 0.82)),
    url('assets/art/cat-peptides.webp');
}
body.hl-p-about .hl-sect h2 + ul > li:nth-child(2) {
  background-image:
    linear-gradient(rgba(8,8,9, 0.62), rgba(8,8,9, 0.82)),
    url('assets/art/cat-blends.webp');
}
body.hl-p-about .hl-sect h2 + ul > li:nth-child(3) {
  background-image:
    linear-gradient(rgba(8,8,9, 0.62), rgba(8,8,9, 0.82)),
    url('assets/art/cat-compounds.webp');
}
body.hl-p-about .hl-sect h2 + ul > li > strong {
  display: block;
  font-family: var(--bpc-font-display);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bpc-primary); /* gold on veiled graphite art ≈ 7.4:1 — AA */
  margin-bottom: 8px;
}

/* ---- K3-5 · Contact — the "what we can help with" icon wall --------------- */
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul {
  max-width: 880px !important;
  list-style: none;
  padding: 0;
  margin: 1.6em auto 2em;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 30px;
}
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li {
  margin-block: 0;
  padding: 13px 16px 13px 46px;
  position: relative;
  font-size: 14px;
  line-height: 1.6;
  border: 1px solid rgba(201,162,39, 0.14);
  border-radius: 10px;
  background:
    linear-gradient(rgba(8,8,9, 0.55), rgba(8,8,9, 0.68)),
    url('assets/art/vt-ambient-helix-dim.webp') center / cover no-repeat,
    var(--bpc-card);
}
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 15px;
  width: 20px;
  height: 20px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(1)::before { background-image: url('assets/icons/lab-test-tube.svg'); }
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(2)::before { background-image: url('assets/icons/shop-09.svg'); }
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(3)::before { background-image: url('assets/icons/shop-14.svg'); }
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(4)::before { background-image: url('assets/icons/lab-flask.svg'); }
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(5)::before { background-image: url('assets/icons/shop-06.svg'); }
body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul > li:nth-child(6)::before { background-image: url('assets/icons/shop-24.svg'); }

/* ---- K3-6 · footer — seal + texture underlay for .csf-bigfoot -------------
   The R1 pairs are preserved: the marble underlay sits at 0.14 opacity over
   the deeper well (effective surface stays ≈ #08080A; links #C9C4B8 ≈ 12.8:1,
   gold heads ≈ 8.2:1 — both still AA). Seal is contained in the brand column. */
.csf-bigfoot { position: relative; overflow: hidden; }
.csf-bigfoot::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('assets/textures/vt-marble-10.webp') center 30% / cover no-repeat;
  opacity: 0.14;
  pointer-events: none;
}
.csf-bigfoot__wrap { position: relative; z-index: 1; }
.csf-bigfoot__brand { position: relative; }
/* FDA strip is a raw wp_footer dump — inherit the footer black, no gray plate */
.csf-disclaimer {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 14px clamp(16px, 4vw, 40px) calc(14px + env(safe-area-inset-bottom, 0px)) !important;
  background: var(--bpc-background-deeper) !important;
  color: rgba(201,196,184, 0.72) !important;
  opacity: 1 !important;
  box-sizing: border-box;
  border-top: 1px solid rgba(201,162,39, 0.10);
}

/* ---- K3-7 · mobile rhythm (390) ------------------------------------------- */
@media (max-width: 899px) {
  body.hl-p-affiliates .entry-content > h3:nth-of-type(2) + ul { grid-template-columns: 1fr; max-width: 560px !important; }
  .hl-catrow { grid-template-columns: 1fr 1fr; gap: 12px; }
  body.hl-p-about .hl-sect h2 + ul { grid-template-columns: 1fr; max-width: 560px !important; }
  body.hl-p-contact .entry-content > h2:nth-of-type(3) + ul { grid-template-columns: 1fr; max-width: 560px !important; }
  .csf-bigfoot__brand { padding-right: 92px; }
  .csf-bigfoot__brand::after { width: 68px; height: 68px; }
}
@media (max-width: 559px) {
  body.hl-p-affiliates .entry-content > h3:nth-of-type(5),
  body.hl-p-affiliates .entry-content > h3:nth-of-type(5) + p { padding-right: 0; background: none; min-height: 0; } /* seal bows out on small screens */
  body.hl-p-affiliate-terms .entry-content > h2:first-child { padding-right: 0; background: none; min-height: 0; }
  .hl-catrow__name { left: 14px; bottom: 12px; }
}


/* ============================================================================
   G4 PDP FULL PASS (gate2-changes round, designer files-only — 2026-08-13)
   The Merit Labs PDP standard translated into the Vegas brand (map + captures:
   references/merit-pdp-anatomy.md). Markup from inc/hl-pdp-full.php + the
   existing csf mu-plugins; the writer's copy is untouched.
   House laws: no-blocky (fluid, layered, symmetric; feathered pools +
   hairlines, plates only as document surfaces), gold = accent never a field,
   every solid-gold control takes near-black text, contained motifs.
   New AA pairs documented inline.

   GROUND CONTROL READINESS (PUBLIC-SYSTEM-CONTRACT §1): decorative accents in
   this block flow through --hl-acc, which follows GC's --csf-seasonal-accent
   whenever GC declares an active visual state on <body>. TEXT never renders
   in the seasonal accent and solid gold CONTROLS stay brand-locked (the AA
   pairs are client law; GC owns contrast for its own emitted layers). GC's
   wp_head/wp_body_open/wp_footer output is never selected against, hidden,
   or repositioned by this block.
   ========================================================================== */

/* ---- G4-0 · the accent chain (brand-locked default, GC-responsive) ------- */
body.single-product {
  --hl-acc: var(--bpc-primary);
  --hl-acc-40: rgba(201,162,39, 0.40);
  --hl-acc-18: rgba(201,162,39, 0.18);
}
body.single-product.csf-holiday-visual-active,
body.single-product.csf-theme-custom-accent,
body.single-product[class*="csf-holiday-mode-"] {
  --hl-acc: var(--csf-seasonal-accent, var(--bpc-primary));
}
/* Alpha derivatives of the live accent where supported (static gold fallback
   above keeps older engines correct). */
@supports (color: color-mix(in srgb, red 50%, transparent)) {
  body.single-product {
    --hl-acc-40: color-mix(in srgb, var(--hl-acc) 40%, transparent);
    --hl-acc-18: color-mix(in srgb, var(--hl-acc) 18%, transparent);
  }
}

/* Belt-and-braces: the storefront-tweaks text pills are unhooked in PHP; if a
   stale mu-plugin copy ever re-renders them, they never show twice. */
.single-product .csf-strengths { display: none !important; }

/* ---- G4-1 · PDP hero band joins the K3 plate family (marble, veiled) ----- */
body.hl-pdp .hero-section[data-type] {
  background:
    radial-gradient(56% 130% at 50% 100%, rgba(201,162,39, 0.10), rgba(201,162,39, 0.03) 52%, transparent 78%),
    linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.50)),
    url('assets/textures/vt-marble-01.webp') 50% 40% / 100% auto no-repeat,
    var(--bpc-background-deeper) !important;
  margin-bottom: 0; /* the adjnav row closes the gap */
}

/* ---- G4-2 · prev/next product row (Merit catalog continuity) ------------- */
/* Rendered by blocksy:hero:after (fallback: above the product columns) —
   a slim full-bleed utility strip attached to the breadcrumb band. */
.hl-pdp-adjnav {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  background: var(--bpc-background-deeper);
  border-bottom: 1px solid rgba(201,162,39, 0.14);
  border-bottom-color: var(--hl-acc-18);
  margin-bottom: clamp(28px, 4vw, 48px);
}
.hl-pdp-adjnav__wrap {
  max-width: 1160px;
  margin-inline: auto;
  padding: 9px clamp(20px, 4vw, 40px);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
}
.hl-pdp-adjnav__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 34ch;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(201,196,184, 0.78); /* effective ≈#A39F94 on #060607 = 8.60:1 — AA (computed) */
  transition: color 0.15s ease;
}
.hl-pdp-adjnav__link span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Hover TEXT stays brand gold (8.95:1 — AA); only the arrow linework follows
   the GC accent (non-text, ≥3:1 bar is the accent-owner's floor). */
.hl-pdp-adjnav__link:hover { color: var(--bpc-primary); }
.hl-pdp-adjnav__link svg { flex: 0 0 auto; color: var(--hl-acc); }
.hl-pdp-adjnav__sep {
  width: 1px;
  height: 16px;
  background: rgba(201,162,39, 0.30);
  background-color: var(--hl-acc-40);
}

/* ---- G4-3 · summary hierarchy (Merit order, codex #11 closed) ------------ */
/* Meta now sits UNDER THE TITLE (re-hooked 40 -> 6): quiet identity line, no
   hairline above (that treatment belonged to its old bottom slot). */
.single-product .entry-summary .product_meta {
  border-top: 0;
  padding-top: 0;
  margin-top: 2px;
  margin-bottom: 6px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(201,196,184, 0.66); /* effective ≈#8B877D on #0A0A0B = 6.24:1 — AA (computed) */
}
.single-product .entry-summary .product_meta > span { margin-right: 16px; }
/* The chemical lede — above the fold, measured, the writer's own sentence. */
.single-product .entry-summary .hl-pdp-lede p,
.single-product .entry-summary .woocommerce-product-details__short-description p {
  margin: 0;
  max-width: 52ch;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--bpc-body); /* 13.20:1 — AAA */
}
.single-product .entry-summary .hl-pdp-lede,
.single-product .entry-summary .woocommerce-product-details__short-description {
  margin: 14px 0 4px;
  padding-left: 14px;
  border-left: 2px solid rgba(201,162,39, 0.45);
  border-left-color: var(--hl-acc-40);
}

/* ---- G4-4 · the SIZE multiple-choice — icon-carried option tiles --------- */
/* Vial glyphs are inline SVG stroked in currentColor: rest = body gray
   (13.20:1), hover = gold (8.95:1), ACTIVE = near-black on solid gold
   (8.95:1 — the AA law; never white on gold). Fill level states relative
   pack size within the family — a true visual fact. */
.hl-sizechoice {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 4px;
}
.hl-sizechoice__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bpc-body);
  margin-right: 4px;
}
.hl-sizechoice__opts {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hl-sizeopt {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 16px 9px 12px;
  border: 1px solid var(--bpc-border);
  border-radius: 999px;
  background: transparent;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--bpc-foreground); /* label #F5EFE0 on bg = 18.31:1 — AAA */
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.hl-sizeopt .hl-sizeopt__vial { color: var(--bpc-body); transition: color 0.2s ease; }
a.hl-sizeopt:hover {
  border-color: var(--hl-acc);         /* linework may follow the GC accent */
  color: var(--bpc-primary);           /* hover TEXT stays brand gold — 8.95:1 AA */
  transform: translateY(-1px);
}
a.hl-sizeopt:hover .hl-sizeopt__vial { color: var(--hl-acc); } /* icon = non-text */
/* Active tile: SOLID BRAND GOLD stays brand-locked (AA law pair 8.95:1) —
   deliberately NOT the seasonal accent: GC accents are decorative here. */
.hl-sizeopt.is-active {
  background: var(--bpc-primary);
  border-color: var(--bpc-primary);
  color: var(--bpc-background);
}
.hl-sizeopt.is-active .hl-sizeopt__vial { color: var(--bpc-background); }
@media (prefers-reduced-motion: reduce) {
  .hl-sizeopt, a.hl-sizeopt:hover { transform: none; transition: none; }
}

/* ---- G4-5 · COA — the document panel (honest pending state, framed) ------ */
/* Same markup + copy as csf-coa.php; the K3 inline row grows into the Merit
   document-surface weight: veiled marble plate (the house document-plate
   exception to no-boxes), foil top edge, clipboard mark in a ring. Copy pairs
   computed against the LIGHTEST plausible plate tone (veil .72 over marble
   highlight ≈ #1A1A1C): gold CTA 6.75:1, body gray 10.37:1 — both AA. */
.single-product .csf-coa-block {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 44px 1fr;
  align-items: start;
  column-gap: 14px;
  row-gap: 4px;
  border: 1px solid rgba(201,162,39, 0.16);
  border-top: 0;
  border-radius: 12px;
  padding: 22px 20px 18px;
  margin-top: 22px;
  background:
    linear-gradient(rgba(8,8,9, 0.72), rgba(8,8,9, 0.84)),
    url('assets/textures/vt-marble-10.webp') center / cover no-repeat,
    var(--bpc-background-deeper);
}
.single-product .csf-coa-block::after { /* foil top edge (K3 vocabulary) */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: url('assets/textures/vt-foil-edge.webp') center / cover no-repeat;
}
/* The K3 15px inline clipboard grows into the panel mark. */
.single-product .csf-coa-block::before {
  content: '';
  display: block;
  width: 44px;
  height: 44px;
  margin: 0;
  grid-row: 1 / span 2;
  border: 1px solid rgba(201,162,39, 0.45);
  border-radius: 50%;
  background: url('assets/icons/lab-clipboard.svg') center / 22px no-repeat;
  vertical-align: initial;
}
.single-product .csf-coa-block .csf-coa-cta {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bpc-primary); /* gold on veiled plate ≈ 7.4:1 — AA */
  align-self: center;
}
.single-product .csf-coa-block .csf-coa-label {
  grid-column: 2;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--bpc-body); /* ≈ 11:1 on the veiled plate — AAA */
}
.single-product .csf-coa-block a.csf-coa-cta:hover { color: var(--bpc-primary-hover); }

/* ---- G4-6 · trust row — icon-carried operational labels ------------------ */
/* Three strings that already ship verbatim on this site (footer legal link +
   topstrip); licensed chemistry/commerce line icons. Labels effective
   ≈#A39F94 on #0A0A0B = 8.40:1 — AA (computed). */
.single-product .entry-summary .hl-pdp-trust {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 26px;
  margin: 18px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid rgba(201,162,39, 0.18);
  border-top-color: var(--hl-acc-18);
}
.single-product .hl-pdp-trust__item {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(201,196,184, 0.78);
}
.single-product .hl-pdp-trust__item::before {
  content: '';
  width: 17px;
  height: 17px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.95;
}
/* atom mark here — the flask already carries the RUO line above (one icon, one job) */
.single-product .hl-pdp-trust__item--ruo::before   { background-image: url('assets/icons/lab-atom.svg'); }
.single-product .hl-pdp-trust__item--ship::before  { background-image: url('assets/icons/shop-09.svg'); }
.single-product .hl-pdp-trust__item--track::before { background-image: url('assets/icons/shop-14.svg'); }

/* ---- G4-7 · buried Woo tabs retired — Merit sub-tabs live under the photo */
.single-product .woocommerce-tabs {
  display: none !important;
}

/* Fleet KEEP: Description / COA / RUO under the product photo */
.woocommerce-product-gallery .hl-pdp-subtabs {
  width: 100%;
  margin-top: 16px;
}
.hl-pdp-subtabs__nav {
  display: flex;
  gap: 8px;
  margin: 0 0 12px;
}
.hl-pdp-subtabs__btn {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 8px;
  border: 1px solid var(--bpc-border);
  border-radius: 10px;
  background: var(--bpc-card);
  color: var(--bpc-body) !important; /* Vegas: beats the global gold-control `button` color rule */
  font-family: var(--bpc-font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}
.hl-pdp-subtabs__btn::before {
  content: '';
  width: 18px;
  height: 18px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.hl-pdp-subtabs__btn--desc::before { background-image: url('assets/icons/lab-research.svg'); }
.hl-pdp-subtabs__btn--coa::before { background-image: url('assets/icons/lab-test-tube.svg'); }
.hl-pdp-subtabs__btn--ruo::before { background-image: url('assets/icons/lab-flask.svg'); }
.hl-pdp-subtabs__btn:hover {
  border-color: rgba(201,162,39, 0.45);
  color: var(--bpc-primary) !important;
}
.hl-pdp-subtabs__btn[aria-selected="true"] {
  background: var(--bpc-primary);
  border-color: var(--bpc-primary);
  color: var(--bpc-background) !important;
}
.hl-pdp-subtabs__btn[aria-selected="true"]::before { filter: brightness(0); }
.hl-pdp-subtabs__panel {
  background: var(--bpc-card);
  border: 1px solid var(--bpc-border);
  border-radius: 12px;
  padding: 18px 16px;
  color: var(--bpc-body);
  font-size: 14px;
  line-height: 1.75;
}
.hl-pdp-subtabs__panel[hidden] { display: none; }
.hl-pdp-subtabs__panel .csf-coa-block { margin-top: 0; }
@media (max-width: 720px) {
  .woocommerce-product-gallery .hl-pdp-subtabs {
    margin-bottom: 96px;
  }
  .hl-pdp-subtabs__btn { font-size: 10px; padding: 10px 4px; letter-spacing: 0.08em; }
  .hl-pdp-subtabs__btn::before { width: 15px; height: 15px; }
}

/* Catalog quick view */
ul.products .ct-media-container,
ul.products figure,
li.product .ct-media-container {
  position: relative;
}
.hl-qv-btn {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 14px 8px 34px;
  border: 1px solid rgba(201,162,39, 0.45);
  border-radius: 999px;
  background: rgba(10,10,11, 0.88);
  color: var(--bpc-primary) !important;
  font-family: var(--bpc-font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}
.hl-qv-btn::before {
  content: '';
  position: absolute;
  left: 12px;
  width: 16px;
  height: 16px;
  background: url('assets/icons/lab-monitor.svg') center / contain no-repeat;
}
.hl-qv-btn:hover {
  background: var(--bpc-primary);
  color: var(--bpc-background) !important;
}
.hl-qv-btn:hover::before { filter: brightness(0); }
.hl-qv {
  padding: 0;
  border: 0;
  background: transparent;
  max-width: min(920px, 94vw);
  width: 94vw;
  max-height: 90vh;
}
.hl-qv::backdrop { background: rgba(10,10,11, 0.82); }
.hl-qv__panel {
  position: relative;
  max-height: 90vh;
  overflow: auto;
  background:
    linear-gradient(rgba(8,8,9, 0.9), rgba(8,8,9, 0.94)),
    url('assets/art/vt-ambient-marble-wide.webp') center / cover no-repeat,
    var(--bpc-card);
  border: 1px solid rgba(201,162,39, 0.22);
  border-radius: 16px;
  padding: 28px 22px 22px;
}
.hl-qv__media img {
  display: block;
  width: 100%;
  max-height: 420px;
  height: auto;
  object-fit: contain;
  margin: 0 auto;
}
.hl-qv__close {
  position: absolute;
  top: 12px;
  right: 12px;
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid var(--bpc-border);
  border-radius: 999px;
  background: transparent;
  color: var(--bpc-body) !important;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}
.hl-qv__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 22px;
  align-items: start;
}
.hl-qv__title {
  margin: 0 0 8px;
  font-family: var(--bpc-font-display);
  color: var(--bpc-foreground);
  font-size: 22px;
}
.hl-qv__price { color: var(--bpc-primary); font-weight: 600; margin-bottom: 12px; }
.hl-qv__excerpt { color: var(--bpc-body); font-size: 14px; line-height: 1.7; }
.hl-qv .csf-atc-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  margin: 0 0 12px;
  color: var(--bpc-body);
  font-size: 13px;
  line-height: 1.45;
}
.hl-qv form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.hl-qv .csf-atc-consent { flex: 1 0 100%; }
.hl-qv form.cart .quantity,
.hl-qv form.cart .single_add_to_cart_button { flex: 0 0 auto; }
.hl-qv__full {
  display: inline-block;
  margin-top: 14px;
  color: var(--bpc-primary);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.hl-qv__status { color: var(--bpc-body); }
@media (max-width: 720px) {
  .hl-qv__layout { grid-template-columns: 1fr; }
}

/* ---- G4-8 · related products — the shop-grid band ------------------------ */
/* Full-bleed deeper well with a veiled marble underlay; cards reuse the
   archive dark-luxury grammar (feathered renders, gold price, ghost CTA).
   No category word on any card (layer disabled globally — PEPT-20 grammar). */
.hl-related {
  position: relative;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  margin-top: clamp(40px, 6vw, 72px);
  padding: clamp(36px, 5vw, 60px) clamp(20px, 4vw, 40px) clamp(30px, 4vw, 52px);
  background:
    linear-gradient(rgba(8,8,9, 0.86), rgba(8,8,9, 0.92)),
    url('assets/art/vt-ambient-marble-wide.webp') center 40% / cover no-repeat,
    var(--bpc-background-deeper);
}
.hl-related::before { /* foil edge into the band */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: url('assets/textures/vt-foil-edge.webp') center / cover no-repeat;
}
.hl-related__head {
  max-width: 1160px;
  margin: 0 auto clamp(20px, 3vw, 30px);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
}
.hl-related__title {
  margin: 0;
  font-size: clamp(22px, 2.4vw, 30px);
  letter-spacing: 0.05em;
  color: var(--bpc-foreground); /* 12.6:1 on the veiled band — AAA */
}
.hl-related__title::after {
  content: '';
  display: block;
  width: 56px;
  height: 1px;
  margin-top: 12px;
  background: linear-gradient(90deg, rgba(201,162,39, 0.8), transparent);
  background: linear-gradient(90deg, var(--hl-acc-40), transparent);
}
.hl-related__more {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--bpc-primary); /* ≈ 7.6:1 on the band — AA */
  white-space: nowrap;
}
.hl-related__more:hover { color: var(--bpc-primary-hover); }
.hl-related ul.products,
.hl-related [data-products] {
  max-width: 1160px;
  margin-inline: auto;
}
/* Card grammar (mirrors the archive rules — the shortcode wrapper may not
   carry [data-products], so the essentials are restated scoped). */
.hl-related ul.products li.product,
.hl-related [data-products] .product {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  text-align: center;
  align-items: center;
}
.hl-related ul.products li.product .ct-media-container img,
.hl-related ul.products li.product img {
  -webkit-mask-image: radial-gradient(78% 78% at 50% 48%, #000 48%, transparent 78%);
  mask-image: radial-gradient(78% 78% at 50% 48%, #000 48%, transparent 78%);
  transition: transform 0.5s ease;
}
.hl-related ul.products li.product:hover img { transform: scale(1.045); }
@media (prefers-reduced-motion: reduce) {
  .hl-related ul.products li.product:hover img { transform: none; }
}
.hl-related ul.products li.product .woocommerce-loop-product__title {
  font-size: 16px;
  letter-spacing: 0.04em;
  color: var(--bpc-foreground);
}
.hl-related ul.products li.product .price {
  color: var(--bpc-primary); /* ≈ 7.6:1 on the band — AA */
  font-weight: 600;
}
.hl-related ul.products li.product .button {
  background: transparent !important;
  border: 1px solid rgba(201,162,39, 0.45) !important;
  color: var(--bpc-primary) !important;
}
.hl-related ul.products li.product .button:hover {
  background: var(--bpc-primary) !important;
  border-color: var(--bpc-primary) !important;
  color: var(--bpc-background) !important; /* AA law — never white on gold */
}

/* ---- G4-9 · mobile rhythm (390) ------------------------------------------ */
@media (max-width: 899px) {
  .hl-pdp-adjnav__wrap { justify-content: space-between; }
  .hl-pdp-adjnav__link { max-width: 44vw; }
  .hl-related ul.products { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 12px; }
  .hl-related ul.products li.product { width: 100% !important; margin: 0 !important; }
}
@media (max-width: 559px) {
  .hl-sizechoice { gap: 8px; }
  .hl-sizeopt { padding: 8px 13px 8px 10px; font-size: 13px; }
  .single-product .csf-coa-block { grid-template-columns: 38px 1fr; padding: 18px 16px 15px; }
  .single-product .csf-coa-block::before { width: 38px; height: 38px; background-size: 19px; }
  .single-product .entry-summary .hl-pdp-trust { gap: 8px 18px; }
}

/* ==================== G5 HEADER (K3 pass 2, 2026-08-13) ====================
   The stock Blocksy bar (styled text wordmark) is retired — hidden, NOT
   unhooked: the node stays in the DOM so Blocksy's own JS + panels
   (#offcanvas, #search-modal) keep working; inc/hl-header.php prints the
   owned bar at wp_body_open right after the csf-topstrip.
   Fluid / transparent / symmetric: no plate, no slab — a legibility gradient
   that fades to nothing, a gold hairline, and the true-alpha client lockup
   dead-center overhanging the bar line (the identity, keyed for this black).
   On the homepage the bar is absolute and sits ON the hero video; interior
   pages keep it in flow with margin equal to the logo overhang. */
#header.ct-header { display: none !important; } /* stock bar retired */

.hl-header {
  position: relative;
  z-index: 60;
  font-family: var(--bpc-font-sans);
}
body.home .hl-header { position: absolute; left: 0; right: 0; } /* top:auto = directly under the topstrip, over the hero video */

.hl-header__bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  grid-template-areas: "left brand right";
  align-items: center;
  height: clamp(52px, 4.6vw, 68px);
  padding: 0 clamp(12px, 2vw, 32px);
  overflow: visible;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0));
  border-bottom: 1px solid rgba(201,162,39, 0.22);
}
.hl-header { overflow: visible; }

/* nav tabs — licensed Envato gold icons (assets/icons/) + small-caps labels */
.hl-header__tabs {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.2vw, 22px);
  flex-wrap: nowrap;
  min-width: 0;
}
.hl-header__tabs--left { grid-area: left; justify-self: start; }
.hl-header__tabs--right { grid-area: right; justify-self: end; }
.hl-header__tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 2px;
  color: var(--bpc-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
  text-decoration: none;
  transition: color 0.2s ease;
}
.hl-header__tab:hover { color: var(--bpc-primary); }
.hl-header__tab .hl-header__icon { opacity: 0.9; transition: opacity 0.2s ease; }
.hl-header__tab:hover .hl-header__icon { opacity: 1; }
.hl-header__icon { display: block; width: 20px; height: 20px; }

/* logo lives IN the grid (not position:absolute) so zoom cannot shove
   tabs through it. Slight downward offset = the overhang. */
.hl-header__brand {
  grid-area: brand;
  position: relative;
  top: 0;
  align-self: center;
  z-index: 2;
  display: block;
  line-height: 0;
  justify-self: center;
}
.hl-header__brand img {
  display: block;
  height: clamp(38px, 3.8vw, 54px);
  width: auto;
  max-width: min(34vw, 190px);
}

/* buyer quick actions — gold line icons; the cart count is a solid-gold
   chip, so it takes near-black text (AA gold law: 8.95:1) */
.hl-header__divider { width: 1px; height: 22px; margin-inline: 2px; background: rgba(201,162,39, 0.28); }
.hl-header__action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.hl-header__action:hover { background: rgba(201,162,39, 0.12); }
.hl-header__count {
  position: absolute;
  top: 1px;
  right: -2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--bpc-primary);
  color: var(--bpc-background) !important; /* near-black on gold — the AA law */
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

/* mobile furniture (hamburger + cart) is desktop-hidden; Blocksy binds both
   ct-toggle buttons to its own #offcanvas / #search-modal panels */
.hl-header__trigger, .hl-header__cartlink { display: none !important; }

/* focus parity with the React root's gold ring */
.hl-header a:focus-visible, .hl-header button:focus-visible {
  outline: 2px solid var(--bpc-primary);
  outline-offset: 3px;
}

/* interior: lockup hangs onto the marble title band — no black void between */
body:not(.home) .hl-header { margin-bottom: 0; }
body:not(.home):not(:has(.hero-section[data-type])) .hl-header {
  margin-bottom: clamp(16px, 2vw, 28px);
}

/* 720px — not 999. Zoom-in on a 1440 desktop (150% = 960 CSS px) used to
   flip this to the hamburger layout and look like a glitch. */
@media (max-width: 719px) {
  .hl-header__tabs { display: none !important; }
  .hl-header__bar {
    height: 56px;
    padding: 0 14px;
    grid-template-areas: "left brand right";
  }
  .hl-header__trigger, .hl-header__cartlink {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bpc-primary) !important;
    cursor: pointer;
  }
  .hl-header__trigger { grid-area: left; justify-self: start; }
  .hl-header__cartlink { grid-area: right; justify-self: end; }
  .hl-header__trigger svg { fill: currentColor; }
  .hl-header__trigger:hover, .hl-header__cartlink:hover { background: rgba(201,162,39, 0.12); }
  .hl-header__brand { top: 0; }
  .hl-header__brand img { height: 44px; max-width: none; }
  body:not(.home) .hl-header { margin-bottom: 0; }
  body:not(.home):not(:has(.hero-section[data-type])) .hl-header { margin-bottom: 12px; }
  /* keep the RUO strip one line so it doesn't shove the lockup down */
  .csf-topstrip {
    flex-direction: row;
    gap: 8px;
    padding: 5px 12px;
    font-size: 10px;
  }
  .csf-topstrip .csf-topstrip__right { display: none; }
}

/* ============================================================================
   VT CONTENT DESIGN SYSTEM — ported from blocksy-vegas-tides-child 1.0.6
   (Austin 08-20 audit: interior page content is authored with vt-* classes;
   the dark child must carry their layer. Chrome families excluded —
   .vt-nav/.vt-footer/.vt-hero/.vt-ticker/.vt-featured/.vt-cats stay retired;
   hl-header + csf-bigfoot + the React home own that chrome.)
   ========================================================================== */
:root {
  --bpc-border-gold: rgba(201, 162, 39, 0.22);
  --bpc-font-serif: 'Cormorant Garamond', serif;
  --vt-border: rgba(201,162,39,.22);
  --vt-glass: rgba(255,255,255,.045);
  --vt-glass-border: rgba(255,255,255,.10);
  --vt-gold-grad: linear-gradient(180deg,#F2E2A6 0%,#E6C766 35%,#C9A227 65%,#8A6D1F 100%);
}

/* let the bands run edge-to-edge even inside Blocksy's constrained content */
body.home .vt-band{ width:100vw; margin-left:calc(50% - 50vw); }


/* ── shared layout primitives ── */
.vt-rail{width:100%;max-width:1200px;margin:0 auto;padding-left:clamp(20px,4vw,48px);padding-right:clamp(20px,4vw,48px)}

.vt-band{position:relative;width:100%}

.vt-band, .vt-band *{ box-sizing:border-box; }

.vt-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--bpc-font-mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--bpc-primary-hover);background:var(--vt-glass);border:1px solid var(--vt-glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 16px;border-radius:999px}

.vt-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--vt-gold-grad);box-shadow:0 0 10px var(--bpc-primary)}

.vt-h2{font-family:var(--bpc-font-display) !important;font-weight:600;color:var(--bpc-foreground) !important;font-size:clamp(28px,3.6vw,46px);line-height:1.1;letter-spacing:.01em}

.vt-h2 em{font-style:normal;background:var(--vt-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.vt-lead{font-size:16.5px;line-height:1.65;max-width:60ch;color:var(--bpc-body)}

.vt-sectionhead{display:flex;flex-direction:column;gap:16px;align-items:flex-start;margin-bottom:40px}

.vt-sectionhead.is-center{align-items:center;text-align:center}


/* ── buttons ── */
.vt-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--bpc-font-sans) !important;font-weight:600;font-size:14.5px;letter-spacing:.02em;padding:14px 26px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s,color .25s;text-decoration:none}

.vt-btn--solid{background:var(--vt-gold-grad);color:#1a1505 !important;box-shadow:0 10px 30px rgba(201,162,39,.28)}

.vt-btn--solid:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(201,162,39,.42);color:#1a1505 !important}

.vt-btn--ghost{background:transparent;color:var(--bpc-foreground) !important;border-color:var(--vt-glass-border)}

.vt-btn--ghost:hover{border-color:var(--bpc-primary);color:var(--bpc-primary-hover) !important}

.vt-nav__logo{height:48px;width:auto;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}

.vt-nav__links{display:flex;gap:28px;font-size:13.5px;letter-spacing:.04em;color:var(--bpc-body)}

.vt-nav__links a{transition:color .2s;color:var(--bpc-body);text-decoration:none}

.vt-nav__links a:hover{color:var(--bpc-primary-hover)}

.vt-nav__right{display:flex;align-items:center;gap:14px}

.vt-nav__cta{font-size:13px;font-weight:600;color:#1a1505 !important;background:var(--vt-gold-grad);padding:9px 20px;border-radius:999px;text-decoration:none}

.vt-nav__cart{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;border:1px solid var(--vt-glass-border);color:var(--bpc-primary-hover)}

.vt-nav__cart svg{width:18px;height:18px}

.vt-nav__burger{display:none;width:40px;height:40px;border-radius:999px;border:1px solid var(--vt-glass-border);color:var(--bpc-foreground);align-items:center;justify-content:center}
@media(max-width:900px){

  .vt-nav__links{display:none}

  .vt-nav__cta{display:none}

  .vt-nav__burger{display:inline-flex}
}

.vt-hero__media{
  position:absolute;inset:0;z-index:0;overflow:hidden;
  background:#050506 url('assets/home/vegas-tides-homepage-hero-poster.webp') 82% center/cover no-repeat;
}

.vt-hero__video{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:cover;object-position:82% center;
}

.vt-hero__media::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(4,4,5,.92) 0%,rgba(4,4,5,.82) 34%,rgba(4,4,5,.38) 56%,rgba(4,4,5,.08) 78%);
}

.vt-hero__copy{position:relative;z-index:2}

.vt-hero__title{font-family:var(--bpc-font-display) !important;color:var(--bpc-foreground) !important;font-weight:600;line-height:1.07;letter-spacing:.01em;margin:22px 0 0;font-size:clamp(38px,5.4vw,72px)}

.vt-hero__title em{font-style:normal;display:inline-block;background:var(--vt-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.vt-hero__sub{font-size:17px;line-height:1.62;max-width:50ch;margin:22px 0 0;color:var(--bpc-body)}

.vt-hero__ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}

.vt-hero__trust{display:flex;gap:24px;margin-top:30px;flex-wrap:wrap}

.vt-hero__trust span{font-size:12.5px;letter-spacing:.03em;color:var(--bpc-body);opacity:.85;display:inline-flex;align-items:center;gap:8px}

.vt-hero__trust span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--bpc-primary)}

.vt-hero__ruo{margin-top:30px;font-family:var(--bpc-font-mono);font-size:11px;letter-spacing:.07em;color:rgba(201,196,184,.5)}

.vt-hero__art{position:relative;z-index:2;justify-self:center;align-self:stretch;display:flex;align-items:center;justify-content:center}

.vt-hero__vial{width:min(420px,92%);height:auto;-webkit-mask-image:radial-gradient(70% 78% at 50% 46%,#000 55%,transparent 86%);mask-image:radial-gradient(70% 78% at 50% 46%,#000 55%,transparent 86%);filter:drop-shadow(0 30px 60px rgba(0,0,0,.6))}
@media(max-width:900px){

  .vt-hero__media{background-position:80% center}

  .vt-hero__video{object-position:80% center}

  .vt-hero__media::after{
    background:linear-gradient(90deg,rgba(4,4,5,.90) 0%,rgba(4,4,5,.78) 58%,rgba(4,4,5,.30) 100%);
  }

  .vt-hero__copy{max-width:min(620px,78%)}
}
@media(max-width:520px){

  .vt-hero__media{background-position:80% center}

  .vt-hero__video{object-position:80% center}

  .vt-hero__media::after{
    background:
      linear-gradient(180deg,rgba(4,4,5,.78) 0%,rgba(4,4,5,.70) 52%,rgba(4,4,5,.28) 78%,rgba(4,4,5,.10) 100%),
      linear-gradient(90deg,rgba(4,4,5,.84) 0%,rgba(4,4,5,.64) 66%,rgba(4,4,5,.18) 100%);
  }

  .vt-hero__copy{max-width:100%}

  .vt-hero__title{font-size:clamp(36px,11.2vw,48px)}

  .vt-hero__sub{font-size:15px;line-height:1.55;max-width:32ch}

  .vt-hero__trust{gap:12px 18px;margin-top:24px}

  .vt-hero__ruo{max-width:34ch;margin-top:24px}
}
@media(prefers-reduced-motion:reduce){

  .vt-hero__video{display:none}
}

.vt-ticker__item{display:inline-flex;align-items:center;gap:10px;letter-spacing:.05em;color:var(--bpc-body);text-transform:uppercase;font-family:var(--bpc-font-mono);font-size:11.5px}

.vt-ticker__item svg{width:16px;height:16px;color:var(--bpc-primary)}

.vt-cats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}

.vt-cat{position:relative;border:1px solid var(--vt-border);border-radius:var(--bpc-radius);overflow:hidden;background:var(--bpc-card);transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;flex-direction:column;text-decoration:none}

.vt-cat:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(0,0,0,.5);border-color:var(--bpc-primary)}

.vt-cat:hover .vt-cat__img{transform:scale(1.04)}

.vt-cat__well{position:relative;aspect-ratio:1/1;overflow:hidden;background:#1a1a1c}

.vt-cat__img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .5s}

.vt-cat__well::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,18,20,0) 55%,var(--bpc-card) 100%)}

.vt-cat__body{position:relative;z-index:2;padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}

.vt-cat__title{font-family:var(--bpc-font-display) !important;font-size:20px;color:var(--bpc-foreground) !important;font-weight:600;letter-spacing:.02em;line-height:1.15}

.vt-cat__desc{font-size:13px;margin-top:8px;color:var(--bpc-body);opacity:.85;flex:1}

.vt-cat__link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--bpc-primary-hover);text-transform:uppercase;font-family:var(--bpc-font-mono)}
@media(max-width:980px){
.vt-cats__grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:540px){
.vt-cats__grid{grid-template-columns:1fr}
}

.vt-featured__mark{position:absolute;z-index:0;left:50%;top:-8%;transform:translateX(-50%);width:min(900px,90%);opacity:.04;pointer-events:none}

.vt-featured__foot{display:flex;justify-content:center;margin-top:44px}

/* Style the Woo [products] grid into the Manus photo-well card look */
.vt-featured__woo .woocommerce{margin:0}

.vt-featured__woo ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:22px;margin:0 !important;padding:0;list-style:none}

.vt-featured__woo ul.products::before,
.vt-featured__woo ul.products::after{display:none !important}

.vt-featured__woo ul.products li.product{width:auto !important;margin:0 !important;float:none !important;background:var(--bpc-card);border:1px solid var(--vt-border);border-radius:var(--bpc-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s,border-color .3s;padding:0;text-align:left}

.vt-featured__woo ul.products li.product:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(0,0,0,.5);border-color:var(--bpc-primary)}

.vt-featured__woo li.product a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;height:100%;text-decoration:none}

.vt-featured__woo li.product img{width:100%;aspect-ratio:1/1.06;object-fit:cover;margin:0 !important;background:#1a1a1c;border-radius:0}

.vt-featured__woo li.product .woocommerce-loop-product__title{font-family:var(--bpc-font-display) !important;font-size:19px;font-weight:600;color:var(--bpc-foreground) !important;letter-spacing:.01em;padding:20px 20px 0;margin:0}

.vt-featured__woo li.product .price{display:block;font-family:var(--bpc-font-mono) !important;font-size:16px;font-weight:500;color:var(--bpc-foreground) !important;padding:8px 20px 0;margin:0}

.vt-featured__woo li.product .price del{opacity:.5;font-size:12px}

.vt-featured__woo li.product .price ins{text-decoration:none}

/* "View product" CTA — csf-atc-gate already rewrites the featured-grid action to View product;
   style whatever button/link Woo renders to the Manus gold pill */
.vt-featured__woo li.product .button,
.vt-featured__woo li.product .added_to_cart{display:inline-flex;align-items:center;gap:6px;margin:14px 20px 22px !important;padding:10px 18px !important;font-family:var(--bpc-font-sans) !important;font-size:12.5px !important;font-weight:600;letter-spacing:.03em;color:var(--bpc-primary-hover) !important;background:transparent !important;border:1px solid var(--vt-glass-border) !important;border-radius:999px !important;width:max-content;transition:border-color .25s,color .25s}

.vt-featured__woo li.product .button:hover,
.vt-featured__woo li.product .added_to_cart:hover{border-color:var(--bpc-primary) !important;color:var(--bpc-foreground) !important}
@media(max-width:980px){
.vt-featured__woo ul.products{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:540px){
.vt-featured__woo ul.products{grid-template-columns:1fr}
}


/* ── 6. TRUST BAND ── */
.vt-trust{position:relative;isolation:isolate;overflow:hidden;background:var(--bpc-background-deeper);padding:100px 0}

.vt-trust__mark{position:absolute;z-index:0;right:-4%;top:50%;transform:translateY(-50%);width:min(640px,60%);opacity:.05;pointer-events:none}

.vt-trust__wave{position:absolute;z-index:0;left:-6%;bottom:-30%;width:min(560px,55%);opacity:.10;pointer-events:none;filter:drop-shadow(0 0 40px rgba(201,162,39,.3))}

.vt-trust .vt-rail{position:relative;z-index:2}

.vt-trust__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:42px}

.vt-tile{background:var(--vt-glass);border:1px solid var(--vt-glass-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--bpc-radius);padding:28px 24px;transition:transform .3s,border-color .3s}

.vt-tile:hover{transform:translateY(-5px);border-color:var(--bpc-primary)}

.vt-tile__icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:rgba(201,162,39,.12);color:var(--bpc-primary-hover);margin-bottom:16px}

.vt-tile__icon svg{width:21px;height:21px}

.vt-tile__title{font-family:var(--bpc-font-display) !important;font-size:17px;color:var(--bpc-foreground) !important;font-weight:600;letter-spacing:.01em}

.vt-tile__desc{font-size:13.5px;line-height:1.55;margin-top:8px;color:var(--bpc-body)}
@media(max-width:980px){
.vt-trust__grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:540px){
.vt-trust__grid{grid-template-columns:1fr}
}


/* ── 7. FAQ teaser ── */
.vt-faq{background:var(--bpc-background);padding:96px 0}

.vt-faq__layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}

.vt-faq__list{display:flex;flex-direction:column;gap:14px}

.vt-faq__item{border:1px solid var(--vt-border);border-radius:16px;background:var(--bpc-card);padding:22px 24px;transition:border-color .3s}

.vt-faq__item:hover{border-color:var(--bpc-primary)}

.vt-faq__q{font-family:var(--bpc-font-display) !important;font-size:17px;color:var(--bpc-foreground) !important;font-weight:600;letter-spacing:.01em}

.vt-faq__a{font-size:14px;line-height:1.6;margin-top:9px;color:var(--bpc-body)}
@media(max-width:880px){
.vt-faq__layout{grid-template-columns:1fr;gap:32px}
}


/* ── 8. RUO compliance band ── */
.vt-ruo{background:var(--bpc-background-deeper);padding:54px 0;border-top:1px solid var(--vt-border);border-bottom:1px solid var(--vt-border)}

.vt-ruo__inner{display:flex;align-items:center;gap:22px;justify-content:center;text-align:center;flex-wrap:wrap;max-width:880px;margin:0 auto;background:var(--vt-glass);border:1px solid var(--vt-glass-border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--bpc-radius);padding:30px 36px}

.vt-ruo__icon{flex:0 0 auto;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:rgba(201,162,39,.12);color:var(--bpc-primary-hover)}

.vt-ruo__icon svg{width:24px;height:24px}

.vt-ruo__text{font-family:var(--bpc-font-serif) !important;font-size:19px;line-height:1.5;color:var(--bpc-foreground) !important;letter-spacing:.01em}

.vt-ruo__text strong{color:var(--bpc-primary-hover) !important;font-weight:600}


/* ── 9. CLOSING CTA band ── */
.vt-cta{position:relative;isolation:isolate;overflow:hidden;background:#000;padding:110px 0}

.vt-cta__bg{position:absolute;inset:0;z-index:0;background:url('/wp-content/uploads/2026/06/hero-marble-bg-1920.webp') center/cover no-repeat;transform:scaleX(-1)}

.vt-cta__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 80% at 50% 50%,rgba(6,6,7,.55),rgba(6,6,7,.92))}

.vt-cta .vt-rail{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}

.vt-cta__title{font-family:var(--bpc-font-display) !important;font-weight:600;color:var(--bpc-foreground) !important;font-size:clamp(32px,4.6vw,58px);line-height:1.08;letter-spacing:.01em}

.vt-cta__title em{font-style:normal;background:var(--vt-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.vt-cta__sub{font-size:16.5px;line-height:1.6;max-width:54ch;color:var(--bpc-body)}

.vt-cta__btns{display:flex;gap:14px;margin-top:14px;flex-wrap:wrap;justify-content:center}

.vt-footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}

.vt-footer__brand img{height:42px;width:auto;margin-bottom:18px}

.vt-footer__brand p{font-size:13.5px;line-height:1.6;color:var(--bpc-body);max-width:34ch}

.vt-footer__col h2{font-family:var(--bpc-font-mono) !important;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bpc-primary-hover) !important;margin-bottom:16px}

.vt-footer__col a{display:block;font-size:14px;color:var(--bpc-body);margin-bottom:11px;transition:color .2s;text-decoration:none}

.vt-footer__col a:hover{color:var(--bpc-primary-hover)}

.vt-footer__micro{margin-top:48px;padding-top:26px;border-top:1px solid var(--vt-border);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center}

.vt-footer__ruo{font-family:var(--bpc-font-mono) !important;font-size:11px;letter-spacing:.05em;color:rgba(201,196,184,.55);max-width:62ch}

.vt-footer__copy{font-size:12px;color:rgba(201,196,184,.5)}
@media(max-width:880px){
.vt-footer__top{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:540px){
.vt-footer__top{grid-template-columns:1fr}
.vt-footer__micro{flex-direction:column;align-items:flex-start}
}
@media(max-width:768px){

  body.home .vt-footer{ padding-bottom:calc(34px + 72px); }
}


/* ── 9. CHECKOUT ── */
/* FIX the broken/invisible woocommerce-info bar (was light-gray bg + cream text) */
.woocommerce-info,
.woocommerce-message,
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info{
  background:var(--bpc-card) !important;
  color:var(--bpc-foreground) !important;
  border-top:0 !important;
  border-left:3px solid var(--bpc-primary) !important;
  border-radius:12px !important;
}

.woocommerce-info::before,
.woocommerce-message::before{ color:var(--bpc-primary) !important; }

.woocommerce-info a,
.woocommerce-message a{ color:var(--bpc-primary-hover) !important; }

/* full-bleed bands inside the constrained container */
body.page-id-145 .vt-band, body.page-id-146 .vt-band,
body.page-id-147 .vt-band, body.page-id-158 .vt-band{
  width:100vw; margin-left:calc(50% - 50vw);
}


/* ── content-page band rhythm ── */
.vt-cpage{ padding:clamp(54px,7vw,92px) 0; background:var(--bpc-background); }

.vt-cpage + .vt-cpage{ border-top:1px solid var(--vt-border); }

/* alternate band surface for a subtle two-tone reading rhythm */
.vt-about__supply, .vt-about__standards,
.vt-about__cta{ background:var(--bpc-background-deeper); }

/* reading rail for prose blocks (~70ch) */
.vt-prose{ max-width:70ch; }

.vt-prose p{ font-size:16.5px; line-height:1.72; color:var(--bpc-body); margin:0 0 18px; }

.vt-prose p:last-child{ margin-bottom:0; }

.vt-prose a{ color:var(--bpc-primary-hover); text-decoration:underline; text-underline-offset:3px; }

.vt-eyebrow--inline{ align-self:flex-start; }


/* ════════════ CONTACT (146) — two-column glass ════════════ */
.vt-contact{ display:grid; grid-template-columns:1.15fr .85fr; gap:26px; align-items:start; }

.vt-contact__form{ padding:34px 34px 30px; }

.vt-contact__formhead{ font-size:21px; }

.vt-contact__formsub{ margin:8px 0 22px; max-width:48ch; }

.vt-contact__panel{ display:flex; flex-direction:column; gap:22px; }

.vt-contact__ways, .vt-contact__help{ padding:28px 28px 26px; }

.vt-contact__list{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:18px; }

.vt-contact__row{ display:flex; gap:14px; align-items:flex-start; }

.vt-contact__ico{ flex:0 0 auto; width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border-radius:11px; background:rgba(201,162,39,.12); color:var(--bpc-primary-hover); }

.vt-contact__ico svg{ width:20px; height:20px; }

.vt-contact__rowtext{ display:flex; flex-direction:column; gap:3px; }

.vt-contact__rowtext strong{ font-family:var(--bpc-font-display); font-size:15px; color:var(--bpc-foreground); font-weight:600; letter-spacing:.01em; }

.vt-contact__rowtext span{ font-size:13.5px; line-height:1.55; color:var(--bpc-body); }

.vt-contact__helphead{ font-family:var(--bpc-font-display) !important; font-size:17px; color:var(--bpc-foreground) !important; font-weight:600; margin:0 0 14px; letter-spacing:.01em; }

.vt-contact__bullets{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }

.vt-contact__bullets li{ position:relative; padding-left:22px; font-size:14px; line-height:1.55; color:var(--bpc-body); }

.vt-contact__bullets li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%; background:var(--vt-gold-grad); }

.vt-contact__bullets a{ color:var(--bpc-primary-hover); }

.vt-contact__note{ font-size:12.5px; line-height:1.6; color:var(--bpc-body); opacity:.85; margin:18px 0 0; padding-top:16px; border-top:1px solid var(--vt-border); }

.vt-contact__policies{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:16px; }

.vt-contact__policies a{ font-family:var(--bpc-font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--bpc-primary-hover); text-decoration:none; }

.vt-contact__policies a:hover{ color:var(--bpc-foreground); }


/* — FluentForm skin inside the glass card — */
.vt-contact__form .fluentform{ margin:0; }

.vt-contact__form .ff-el-group{ margin-bottom:16px; }

.vt-contact__form .ff-el-input--label label{
  font-family:var(--bpc-font-mono) !important; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bpc-primary-hover) !important; margin-bottom:7px;
}

.vt-contact__form .ff-el-form-control,
.vt-contact__form input[type=text], .vt-contact__form input[type=email],
.vt-contact__form textarea{
  background:var(--bpc-background-deeper) !important; color:var(--bpc-foreground) !important;
  border:1px solid var(--bpc-border-gold) !important; border-radius:12px !important;
  min-height:48px; padding:12px 15px !important; font-family:var(--bpc-font-sans) !important; font-size:14.5px;
  width:100%; box-shadow:none !important;
}

.vt-contact__form textarea{ min-height:128px; resize:vertical; }

.vt-contact__form .ff-el-form-control:focus,
.vt-contact__form input:focus, .vt-contact__form textarea:focus{
  outline:none; border-color:var(--bpc-primary) !important; box-shadow:0 0 0 3px rgba(201,162,39,.18) !important;
}

.vt-contact__form .ff-el-form-control::placeholder{ color:rgba(201,196,184,.45); }

.vt-contact__form .ff-el-input--content .ff-name-field-wrapper{ gap:14px; }

.vt-contact__form .ff-btn-submit, .vt-contact__form button[type=submit]{
  background:var(--vt-gold-grad) !important; color:#1a1505 !important; border:none !important;
  border-radius:999px !important; padding:14px 30px !important; font-family:var(--bpc-font-sans) !important;
  font-weight:600 !important; font-size:14.5px; letter-spacing:.02em; cursor:pointer;
  box-shadow:0 10px 30px rgba(201,162,39,.28); transition:transform .25s,box-shadow .25s; margin-top:4px;
}

.vt-contact__form .ff-btn-submit:hover, .vt-contact__form button[type=submit]:hover{
  transform:translateY(-2px); box-shadow:0 16px 40px rgba(201,162,39,.42); color:#1a1505 !important;
}

.vt-contact__form .ff-message-success{
  background:rgba(201,162,39,.08) !important; border:1px solid var(--vt-border) !important;
  border-left:3px solid var(--bpc-primary) !important; border-radius:12px !important;
  color:var(--bpc-foreground) !important; padding:16px 18px !important;
}

.vt-contact__form .error, .vt-contact__form .text-danger, .vt-contact__form .ff-el-is-error .text-danger{ color:#E8896B !important; font-size:12.5px; }


/* ════════════ COA LIBRARY (158) — document UI ════════════ */
.vt-coa{ margin-top:8px; }

.vt-coa__toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }

.vt-coa__count{ font-family:var(--bpc-font-mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--bpc-primary-hover); }

.vt-coa__legend{ display:flex; gap:10px; }

.vt-badge{ display:inline-flex; align-items:center; gap:6px; font-family:var(--bpc-font-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; border:1px solid transparent; white-space:nowrap; }

.vt-badge::before{ content:""; width:6px; height:6px; border-radius:50%; }

.vt-badge--onfile{ color:#E6C766; background:rgba(201,162,39,.12); border-color:var(--bpc-border-gold); }

.vt-badge--onfile::before{ background:var(--vt-gold-grad); box-shadow:0 0 8px rgba(201,162,39,.6); }

.vt-badge--pending{ color:var(--bpc-body); background:rgba(255,255,255,.04); border-color:var(--vt-glass-border); }

.vt-badge--pending::before{ background:rgba(201,196,184,.5); }

.vt-coa__tablewrap{ background:var(--bpc-card); border:1px solid var(--vt-glass-border); border-radius:20px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.4); }

.vt-coa__table{ width:100%; border-collapse:collapse; margin:0; font-size:14px; }

.vt-coa__table thead th{
  font-family:var(--bpc-font-mono) !important; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--bpc-primary-hover); text-align:left; font-weight:500; padding:16px 20px;
  background:var(--bpc-background-deeper); border-bottom:1px solid var(--vt-border);
}

.vt-coa__th-action{ text-align:right !important; }

.vt-coa__table tbody td{ padding:15px 20px; border-bottom:1px solid var(--vt-border); color:var(--bpc-foreground); vertical-align:middle; }

.vt-coa__table tbody tr:last-child td{ border-bottom:0; }

.vt-coa__table tbody tr{ transition:background .2s; }

.vt-coa__table tbody tr:hover{ background:rgba(201,162,39,.045); }

.vt-coa__table td:first-child{ font-family:var(--bpc-font-display); font-weight:600; letter-spacing:.01em; color:var(--bpc-foreground); }

.vt-coa__table td:nth-child(2){ color:var(--bpc-body); font-size:13px; }

.vt-coa__table td:nth-child(4){ font-family:var(--bpc-font-mono); font-size:12.5px; color:var(--bpc-body); }

.vt-lot{ font-family:var(--bpc-font-mono); font-size:12.5px; letter-spacing:.04em; color:var(--bpc-primary-hover);
  background:rgba(201,162,39,.08); border:1px solid var(--bpc-border-gold); border-radius:7px; padding:3px 9px; white-space:nowrap; }

.vt-coa__table td:last-child{ text-align:right; }

.vt-coa__req{ font-family:var(--bpc-font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--bpc-primary-hover); text-decoration:none; white-space:nowrap; transition:color .2s; }

.vt-coa__req:hover{ color:var(--bpc-foreground); }

.vt-coa__foot{ font-size:13.5px; line-height:1.65; color:var(--bpc-body); margin:18px 0 0; max-width:78ch; }

.vt-coa__foot a{ color:var(--bpc-primary-hover); }

.vt-coa__grid{ margin-top:44px; grid-template-columns:repeat(3,1fr); }

.vt-coa__ruo{ margin-top:34px; font-family:var(--bpc-font-mono); font-size:11.5px; letter-spacing:.05em; color:rgba(201,196,184,.6); }


/* ════════════ FAQ (147) — glass <details> accordion ════════════ */
.vt-faqp{ display:flex; flex-direction:column; gap:42px; margin-top:6px; }

.vt-faqp__group{ display:flex; flex-direction:column; gap:14px; }

.vt-faqp__list{ display:flex; flex-direction:column; gap:12px; }

.vt-faq__item{ overflow:hidden; }

.vt-faq__item summary.vt-faq__q{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:var(--bpc-font-display) !important; font-size:16.5px; color:var(--bpc-foreground) !important;
  font-weight:600; letter-spacing:.01em; line-height:1.35; padding:2px 0; user-select:none;
}

.vt-faq__item summary::-webkit-details-marker{ display:none; }

.vt-faq__item summary:focus-visible{ outline:none; }

.vt-faq__item:focus-within{ border-color:var(--bpc-primary); }

/* the +/- toggle marker */
.vt-faq__mk{ flex:0 0 auto; position:relative; width:20px; height:20px; }

.vt-faq__mk::before, .vt-faq__mk::after{
  content:""; position:absolute; left:50%; top:50%; background:var(--bpc-primary-hover);
  transition:transform .3s ease, opacity .3s ease;
}

.vt-faq__mk::before{ width:12px; height:2px; transform:translate(-50%,-50%); }

.vt-faq__mk::after{ width:2px; height:12px; transform:translate(-50%,-50%); }

.vt-faq__item[open] .vt-faq__mk::after{ transform:translate(-50%,-50%) rotate(90deg); opacity:0; }

.vt-faq__item[open]{ border-color:var(--bpc-primary); }

.vt-faq__a{ margin-top:0; max-height:0; overflow:hidden; }

.vt-faq__item[open] .vt-faq__a{ max-height:none; margin-top:12px; }

.vt-faq__a p{ font-size:14.5px; line-height:1.65; color:var(--bpc-body); margin:0; }

.vt-faq__a a{ color:var(--bpc-primary-hover); }

/* smooth open animation (content reveal) */
.vt-faq__item[open] .vt-faq__a{ animation:vtFaqReveal .28s ease both; }

.vt-faqp__cta{ margin-top:46px; padding:26px 30px; background:var(--vt-glass); border:1px solid var(--vt-glass-border);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-radius:var(--bpc-radius); text-align:center; }

.vt-faqp__cta p{ font-family:var(--bpc-font-serif) !important; font-size:18px; line-height:1.5; color:var(--bpc-foreground); margin:0; }

.vt-faqp__cta a{ color:var(--bpc-primary-hover); font-weight:600; }


/* ════════════ ABOUT (145) — bands + ambient ════════════ */
.vt-about__operate{ position:relative; isolation:isolate; overflow:hidden; }

.vt-about__marble{ position:absolute; z-index:0; right:-6%; top:50%; transform:translateY(-50%);
  width:min(640px,58%); opacity:.06; pointer-events:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 40%); mask-image:linear-gradient(90deg,transparent,#000 40%); }

.vt-about__operate .vt-rail{ position:relative; z-index:2; }

.vt-about__operate .vt-trust__grid{ grid-template-columns:repeat(3,1fr); margin-top:38px; }

.vt-about__ctainner{ display:flex; flex-direction:column; align-items:center; gap:16px; max-width:60ch; margin-inline:auto; text-align:center; }
body.hl-p-about .vt-sectionhead {
  align-items: center;
  text-align: center;
}
body.hl-p-about .vt-lead,
body.hl-p-about .vt-band p,
body.hl-p-about .hl-sect p {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.vt-about__ctainner .vt-btn{ margin-top:6px; }
@media(max-width:900px){

  .vt-contact{ grid-template-columns:1fr; }

  .vt-coa__grid{ grid-template-columns:1fr !important; }

  .vt-about__operate .vt-trust__grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:640px){

  .vt-about__operate .vt-trust__grid{ grid-template-columns:1fr; }

  /* COA table → stacked cards on mobile */
  .vt-coa__table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

  .vt-coa__table, .vt-coa__table tbody, .vt-coa__table tr, .vt-coa__table td{ display:block; width:100%; }

  .vt-coa__tablewrap{ background:transparent; border:0; box-shadow:none; overflow:visible; }

  .vt-coa__table tr{ background:var(--bpc-card); border:1px solid var(--vt-glass-border); border-radius:16px; margin-bottom:14px; padding:6px 4px; }

  .vt-coa__table tbody td{ border-bottom:1px solid var(--vt-border); padding:11px 18px; display:flex; justify-content:space-between; gap:16px; align-items:center; text-align:right; }

  .vt-coa__table tbody tr td:last-child{ border-bottom:0; }

  .vt-coa__table tbody td::before{ content:attr(data-label); font-family:var(--bpc-font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--bpc-primary-hover); text-align:left; }

  .vt-coa__table td:first-child{ font-size:16px; }

  .vt-coa__table td:last-child{ text-align:right; }
}


/* ============================================================
   DPH hardening pass 1 (2026-07-04) — evidence-driven fixes.
   Each rule maps to a ledgered finding. Additive + reversible.
   ============================================================ */
/* G11-D02: disclaimer text was blended ~3.9:1 (< 4.5 AA); raise to ~6.5:1.
   Also serves compliance prominence (PEPT-15). */
.vt-footer__ruo { color: rgba(201,196,184,.78); }

.vt-footer__copy { color: rgba(201,196,184,.72); }

/* G21-D01: never stretch homepage product photos. */
.home .vt-featured__woo li.product img.wp-post-image {
  aspect-ratio: 4 / 5; object-fit: contain; height: auto;
}

/* G10-D03: 'View product' loop buttons to 44px */
ul.products li.product .button, .vt-featured__woo li.product .button {
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
}

/* G10-D03: footer link hit area to >=24px without changing the look */
.vt-footer__col a { padding-block: 4px; margin-bottom: 4px; }


/* ============================================================
   Austin live-review route-back (2026-07-16) — three approved
   visual fixes. Late + tightly scoped so they win over Blocksy's
   inline aspect-ratio stamps and the earlier hardening rules.
   Additive + reversible.
   ============================================================ */

/* R1 — Product photography is the frame. Use the original full-bleed marble
   photograph at its natural ratio: no added white canvas, no double frame,
   and no cropping of the cap, label, strength, or base. The card's overflow
   owns the rounded top corners. Applies to Home, Shop, categories, and related
   products so the rejected white-gutter treatment cannot reappear elsewhere. */
body ul.products li.product a.ct-media-container,
.home .vt-featured__woo li.product a.ct-media-container{
  display:block !important;overflow:hidden !important;
  aspect-ratio:921 / 1707 !important;background:transparent !important;
  line-height:0;
}

.home .vt-featured__woo li.product figure{
  display:block !important;width:100% !important;height:auto !important;
  aspect-ratio:921 / 1707 !important;overflow:hidden !important;
  margin:0 !important;line-height:0;
}

.home .vt-featured__woo li.product a.woocommerce-LoopProduct-link:not(.ct-media-container){
  height:auto !important;min-height:0 !important;aspect-ratio:auto !important;
  overflow:visible !important;background:transparent !important;
}

body ul.products li.product a.ct-media-container img,
.home .vt-featured__woo li.product figure img,
.home .vt-featured__woo li.product img,
.home .vt-featured__woo li.product img.wp-post-image{
  width:100% !important;height:auto !important;
  aspect-ratio:921 / 1707 !important;object-fit:cover !important;
  contain-intrinsic-size:none !important;content-visibility:visible !important;
  display:block;background:transparent !important;border-radius:0 !important;
}


/* Editorial pages use only the top 320px of their first content band. */
body.vt-inner-header--about .entry-content > .vt-band:first-child,
body.vt-inner-header--faq .entry-content > .vt-band:first-child,
body.vt-inner-header--contact .entry-content > .vt-band:first-child,
body.vt-inner-header--coa .entry-content > .vt-band:first-child{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:320px;background:var(--bpc-background);
}

body.vt-inner-header--about .entry-content > .vt-band:first-child::before,
body.vt-inner-header--faq .entry-content > .vt-band:first-child::before,
body.vt-inner-header--contact .entry-content > .vt-band:first-child::before,
body.vt-inner-header--coa .entry-content > .vt-band:first-child::before,
body.vt-inner-header--about .entry-content > .vt-band:first-child::after,
body.vt-inner-header--faq .entry-content > .vt-band:first-child::after,
body.vt-inner-header--contact .entry-content > .vt-band:first-child::after,
body.vt-inner-header--coa .entry-content > .vt-band:first-child::after{
  content:"";position:absolute;z-index:-2;inset:0 0 auto;height:320px;
  pointer-events:none;background-position:center;background-repeat:no-repeat;background-size:cover;
}

body.vt-inner-header--about .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/about-desktop.webp');}

body.vt-inner-header--faq .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/faq-desktop.webp');}

body.vt-inner-header--contact .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/contact-desktop.webp');}

body.vt-inner-header--coa .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/coa-desktop.webp');}

body.vt-inner-header--about .entry-content > .vt-band:first-child::after,
body.vt-inner-header--faq .entry-content > .vt-band:first-child::after,
body.vt-inner-header--contact .entry-content > .vt-band:first-child::after,
body.vt-inner-header--coa .entry-content > .vt-band:first-child::after{
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(6,6,7,.92) 0%,rgba(6,6,7,.88) 48%,rgba(6,6,7,.48) 76%,rgba(6,6,7,.64) 100%),
    linear-gradient(180deg,rgba(6,6,7,.18) 0%,rgba(6,6,7,.14) 56%,var(--bpc-background) 100%);
}

body.vt-inner-header--about .entry-content > .vt-band:first-child > .vt-rail,
body.vt-inner-header--faq .entry-content > .vt-band:first-child > .vt-rail,
body.vt-inner-header--contact .entry-content > .vt-band:first-child > .vt-rail,
body.vt-inner-header--coa .entry-content > .vt-band:first-child > .vt-rail{
  position:relative;z-index:1;
}

body.vt-inner-header--about .entry-content > .vt-band:first-child .vt-sectionhead,
body.vt-inner-header--faq .entry-content > .vt-band:first-child .vt-sectionhead,
body.vt-inner-header--contact .entry-content > .vt-band:first-child .vt-sectionhead,
body.vt-inner-header--coa .entry-content > .vt-band:first-child .vt-sectionhead{
  max-width:min(760px,58%);
}
@media(max-width:768px){

  body.vt-inner-header--about .entry-content > .vt-band:first-child,
  body.vt-inner-header--faq .entry-content > .vt-band:first-child,
  body.vt-inner-header--contact .entry-content > .vt-band:first-child,
  body.vt-inner-header--coa .entry-content > .vt-band:first-child{min-height:250px;}

  body.vt-inner-header--about .entry-content > .vt-band:first-child::before,
  body.vt-inner-header--faq .entry-content > .vt-band:first-child::before,
  body.vt-inner-header--contact .entry-content > .vt-band:first-child::before,
  body.vt-inner-header--coa .entry-content > .vt-band:first-child::before,
  body.vt-inner-header--about .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--faq .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--contact .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--coa .entry-content > .vt-band:first-child::after{height:250px;}

  body.vt-inner-header--about .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/about-mobile.webp');}

  body.vt-inner-header--faq .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/faq-mobile.webp');}

  body.vt-inner-header--contact .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/contact-mobile.webp');}

  body.vt-inner-header--coa .entry-content > .vt-band:first-child::before{background-image:url('assets/inner-headers/coa-mobile.webp');}

  body.vt-inner-header--about .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--faq .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--contact .entry-content > .vt-band:first-child::after,
  body.vt-inner-header--coa .entry-content > .vt-band:first-child::after{
    background:linear-gradient(180deg,rgba(6,6,7,.54) 0%,rgba(6,6,7,.66) 58%,var(--bpc-background) 100%);
  }

  body.vt-inner-header--about .entry-content > .vt-band:first-child .vt-sectionhead,
  body.vt-inner-header--faq .entry-content > .vt-band:first-child .vt-sectionhead,
  body.vt-inner-header--contact .entry-content > .vt-band:first-child .vt-sectionhead,
  body.vt-inner-header--coa .entry-content > .vt-band:first-child .vt-sectionhead{max-width:none;}
}

/* COA Library: the header band already carries the title — hide the content's
   duplicate H1 (eyebrow "Documentation" + lead stay). Austin 08-20 audit. */
body.page .vt-coa .vt-sectionhead .vt-h2,
body.hl-p-coa-library .vt-cpage .vt-sectionhead .vt-h2 { display: none; }
/* Intro band is empty after that copy was removed — don't leave a black hole
   between the gold lockup and the table. */
body.hl-p-coa-library .entry-content > .vt-cpage:not(.vt-cpage--after-library) {
  display: none;
}
body.hl-p-coa-library .hero-section[data-type] {
  margin-bottom: 0 !important;
}
body.hl-p-coa-library .vt-band-emblem {
  margin-top: 0;
  margin-bottom: 10px;
}

/* ============================================================================
   AUDIT FIX PASS (Austin 08-20, commerce auditor) — v2.0.9
   ========================================================================== */
/* Mobile catalog: two per row (was a single 15,000px column). */
@media (max-width: 719px) {
  [data-products].products, .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px 12px !important;
  }
  [data-products] .product .woocommerce-loop-product__title { font-size: 13px; }
  [data-products] .product .price { font-size: 12.5px; }
  /* keep the RUO sub-tab strip clear of the fixed assistant bubble */
  .woocommerce-product-gallery .hl-pdp-subtabs__nav { width: calc(100% - 56px); }
}
/* Variable products: premium dark select (raw Woo "Choose an option" retired). */
.single-product form.variations_form select,
.hl-qv select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding: 12px 42px 12px 14px;
  border: 1px solid rgba(201,162,39, 0.45);
  border-radius: 10px;
  background: var(--bpc-background)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C9A227' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")
    no-repeat right 14px center;
  color: var(--bpc-foreground);
  font-family: var(--bpc-font-sans);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
.single-product form.variations_form select:focus, .hl-qv select:focus { outline: 2px solid var(--bpc-primary); outline-offset: 2px; }
.single-product form.variations_form .reset_variations { color: var(--bpc-primary); font-size: 11px; }
/* Quick view: legible labels + no dead band in the form */
.hl-qv label, .hl-qv .variations th, .hl-qv .variations .label {
  color: var(--bpc-body) !important;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hl-qv table.variations { margin: 0 0 4px; }
.hl-qv table.variations td, .hl-qv table.variations th { padding: 4px 0; border: 0; }
.hl-qv form.cart { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.hl-qv .woocommerce-variation-add-to-cart { display: flex; gap: 10px; align-items: center; }
/* COA sub-tab: one panel treatment (no card-in-card) */
.hl-pdp-subtabs__panel .csf-coa-block {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
/* PDP meta: glyph rides inline with SKU/category, never its own line */
.single-product .product_meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
/* PDP trust row: tidy stacked list (no 2+1 orphan wrap) */
.hl-pdp-trust { flex-direction: column; align-items: flex-start; gap: 9px; }
/* Variation price echo: hide when Woo renders it empty */
.woocommerce-variation-price:empty, .woocommerce-variation-availability:empty { display: none; }

/* ============================================================================
   AUDIT FIX PASS 2 (Austin 08-20, home/gate auditor) — v2.1.0
   ========================================================================== */
/* Header: text-only nav tabs (mixed grey icon packs retired); gold-tint the
   three buyer action glyphs so one family remains. */
.hl-header__tab .hl-header__icon { display: none; }
.hl-header__action .hl-header__icon, .hl-header__cartlink .hl-header__icon {
  filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(500%) hue-rotate(5deg) brightness(95%) contrast(88%);
  opacity: 0.95;
}
/* Header legibility floor over the hero video */
.hl-header__bar { background: linear-gradient(to bottom, rgba(0,0,0,0.62), rgba(0,0,0,0.18) 78%, rgba(0,0,0,0)); }
/* Mobile: cart badge inside the viewport (was the only docW overflow) + real tap targets */
@media (max-width: 719px) {
  .hl-header__bar { padding: 0 10px; }
  .hl-header__cartlink { margin-right: 2px; }
  .hl-header__count { right: 0; top: 3px; }
  .hl-header__trigger { width: 46px; height: 46px; }
  /* hero: keep the vial (right of frame) in view */
  .vt-hero video, .vt-hero img { object-position: 76% 50% !important; }
  /* assistant bubble: smaller, above the bottom bar, off content */
  .csf-asst-bubble, .csf-asst-toggle, [class*="csf-asst"][class*="bubble"] {
    width: 46px !important; height: 46px !important;
    right: 10px !important; bottom: 74px !important;
  }
  /* footer rhythm: headings under the page's own scale, tighter groups */
  .csf-bigfoot__col h2 { font-size: 16px !important; margin-bottom: 12px !important; }
  .csf-bigfoot__col { margin-bottom: 18px; }
  .csf-bigfoot__wrap { row-gap: 10px; }
}
/* Footer: the logo already says Vegas Tides — drop the doubled serif name */
.csf-bigfoot__name { display: none; }

/* ---- Research gate page: a lock screen, not a storefront ---- */
body.page-id-457 .vt-band-emblem { display: none; }           /* no third mark */
body.page-id-457 .hero-section[data-type] { display: none; }  /* card carries the identity */
body.page-id-457 .hl-header__tabs,
body.page-id-457 .hl-header__action,
body.page-id-457 .hl-header__cartlink,
body.page-id-457 .hl-header__trigger { display: none !important; } /* chrome quiet on the lock */
body.page-id-457 .csf-bbar, body.page-id-457 [class*="csf-bottom-bar"], body.page-id-457 #csf-bbar { display: none !important; }
body.page-id-457 .prg-page { padding-top: clamp(16px, 3vw, 36px) !important; }
body.page-id-457 .prg-banner { margin-bottom: 16px !important; }
/* gate attestations: one control language (gold, dark-scheme) */
.prg-check input[type="checkbox"] { accent-color: #C9A227; color-scheme: dark; width: 17px; height: 17px; }

/* ---- Owned mobile menu (Blocksy offcanvas never bound to the custom bar) ---- */
.hl-mobilenav { display: none; }
@media (max-width: 719px) {
  .hl-header__bar { position: relative; z-index: 2; }
  .hl-mobilenav {
    display: block;
    position: fixed;
    left: 0; right: 0;
    top: 0;
    padding: 88px 22px 28px;
    bottom: 0;
    z-index: 1; /* inside .hl-header's stacking context, under the bar */
    background: rgba(6, 6, 7, 0.98);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    overflow-y: auto;
  }
  .hl-mobilenav[hidden] { display: none; }
  .hl-mobilenav__link {
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 4px 2px;
    border-bottom: 1px solid rgba(201,162,39, 0.16);
    color: var(--bpc-foreground);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
  }
  .hl-mobilenav__link:hover { color: var(--bpc-primary); }
  html.hl-mobilenav-open, html.hl-mobilenav-open body { overflow: hidden; }
}

/* ============================================================================
   PREMIUM PASS (Austin 08-20 evening) — 21st.dev treatments + licensed Envato
   icons on the interior pages. v2.1.2
   ========================================================================== */
/* Gold tint for the licensed Envato icon files (header calibration) */
.vt-ico-gold, .hl-icon-gold { filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(500%) hue-rotate(5deg) brightness(95%) contrast(88%); }

/* ShineBorder — 21st.dev dillionverma/shine-border port (public bundle 824) */
.vt-shine { position: relative; }
.vt-shine::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background-image: radial-gradient(transparent, transparent, #C9A227, transparent, transparent);
  background-size: 300% 300%;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  will-change: background-position;
  pointer-events: none;
}
@keyframes vt-shine { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }
@media (prefers-reduced-motion: no-preference) { .vt-shine::before { animation: vt-shine 14s infinite linear; } }

/* Interior reveal */
.hl-reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.65s ease, transform 0.65s ease; transition-delay: var(--hl-reveal-delay, 0ms); }
.hl-reveal.hl-in { opacity: 1; transform: none; }

/* ---- Affiliate portal: centered, aligned, iconed ---- */
.hl-p-affiliate-portal .entry-content > h1,
.hl-p-affiliate-portal .entry-content > h2 {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  color: var(--bpc-foreground);
  letter-spacing: 0.04em;
}
.hl-p-affiliate-portal .entry-content > h1 { font-size: clamp(26px, 2.6vw, 34px); padding-top: 34px; }
.hl-p-affiliate-portal .entry-content > h2 { font-size: clamp(21px, 2.1vw, 26px); margin-top: 54px; }
.hl-p-affiliate-portal .entry-content > h1::before,
.hl-p-affiliate-portal .entry-content > h2::before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  margin: 0 auto 12px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 40px;
}
/* licensed Envato marks: megaphone (e-commerce set) for the dashboard, clipboard (lab filled set) for the standard */
.hl-p-affiliate-portal .entry-content > h1::before { background-image: url('assets/icons/shop-24.svg'); filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(500%) hue-rotate(5deg) brightness(95%) contrast(88%); }
.hl-p-affiliate-portal .entry-content > h2::before { background-image: url('assets/icons/f-clipboard.png'); filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(500%) hue-rotate(5deg) brightness(95%) contrast(88%); }
.hl-p-affiliate-portal .entry-content > h1::after {
  content: "";
  display: block;
  width: 72px;
  height: 1px;
  margin: 16px auto 0;
  background: linear-gradient(90deg, transparent, rgba(201,162,39, 0.75), transparent);
}
.hl-p-affiliate-portal .entry-content > p {
  max-width: 62ch;
  margin: 16px auto 0;
  text-align: center;
  line-height: 1.75;
}
.hl-p-affiliate-portal .entry-content > h2::after { display: none !important; }
.hl-p-affiliate-portal .entry-content strong { color: var(--bpc-primary-hover); font-weight: 600; }
/* the sign-in card: centered, dark, shine ring */
.csf-aff-card {
  max-width: 480px;
  margin: 44px auto 20px !important;
  background: #121214 !important;
  border: 1px solid rgba(201,162,39, 0.22) !important;
  border-radius: 18px !important;
  padding: 30px 30px 26px !important;
  box-shadow: 0 24px 60px rgba(0,0,0, 0.45);
  text-align: left;
}
.csf-aff-card h2, .csf-aff-card h3 { text-align: left; margin-top: 0; color: var(--bpc-foreground); }
.csf-aff-card label { color: var(--bpc-body); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }
.csf-aff-card input[type="text"], .csf-aff-card input[type="email"], .csf-aff-card input[type="password"] {
  width: 100%;
  background: var(--bpc-background);
  border: 1px solid rgba(201,162,39, 0.28);
  border-radius: 10px;
  color: var(--bpc-foreground);
  padding: 11px 13px;
}
.csf-aff-card input:focus { outline: 2px solid var(--bpc-primary); outline-offset: 1px; }
.csf-aff-btn-primary, .csf-aff-card .button, .csf-aff-card input[type="submit"] {
  background: var(--bpc-primary) !important;
  color: var(--bpc-background) !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 11px 26px !important;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 12px;
}
.csf-aff-login { composes: none; }
.hl-p-affiliate-portal .csf-aff-card.csf-aff-login { border-radius: 18px; }
/* shine ring on the sign-in card */
.hl-p-affiliate-portal .csf-aff-login.vt-shine::before { border-radius: 18px; }
/* Dark card stays. Only the GC/WP login type is white. */
.hl-p-affiliate-portal .csf-aff-login h3,
.hl-p-affiliate-portal .csf-aff-login > p,
.hl-p-affiliate-portal .csf-aff-login .csf-aff-muted,
.hl-p-affiliate-portal #loginform label,
.hl-p-affiliate-portal #loginform .login-remember,
.hl-p-affiliate-portal #loginform .login-remember label {
  color: #FFFFFF !important;
}
.hl-p-affiliate-portal #loginform input[type="text"],
.hl-p-affiliate-portal #loginform input[type="password"],
.hl-p-affiliate-portal #loginform input.input {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* ---- Interior tiles/discs: licensed filled marks, slightly larger presence ---- */
.vt-tile__icon { width: 52px; height: 52px; border-radius: 15px; border: 1px solid rgba(201,162,39, 0.26); }
.vt-tile__icon svg { width: 24px; height: 24px; }
.vt-contact__ico { border: 1px solid rgba(201,162,39, 0.26); }
/* eyebrow dot → gold diamond (site motif) */
.vt-eyebrow .dot { width: auto; height: auto; background: none; border-radius: 0; }
.vt-eyebrow .dot::before { content: "◆"; font-size: 7px; color: var(--bpc-primary); line-height: 1; }

/* COA table: row hover + status chip polish */
.vt-coa__table tbody tr { transition: background 0.15s ease; }
.vt-coa__table tbody tr:hover { background: rgba(201,162,39, 0.05); }
.vt-badge--pending { border: 1px solid rgba(201,162,39, 0.30); }

.csf-aff-card input[type="checkbox"] { accent-color: #C9A227; color-scheme: dark; }

/* ============================================================================
   CSF TOPSTRIP MARQUEE (Austin 08-20): one scrolling banner — RUO · 🇺🇸 Product
   of the USA (highlighted) · Catalogued by chemistry · Honest documentation
   status. Seamless -50% loop; paused on hover; static under reduced motion.
   ========================================================================== */
.csf-topstrip.csf-topstrip--marquee {
  display: block;
  overflow: hidden;
  padding: 8px 0;
  background: var(--bpc-background-deeper, #060607);
  border-bottom: 1px solid rgba(201,162,39, 0.22);
  white-space: nowrap;
}
.csf-topstrip--marquee .csf-topstrip__track {
  display: inline-flex;
  align-items: center;
  width: max-content;
  animation: csf-topstrip-scroll 46s linear infinite;
  will-change: transform;
}
.csf-topstrip--marquee:hover .csf-topstrip__track { animation-play-state: paused; }
.csf-topstrip__half { display: inline-flex; align-items: center; }
.csf-topstrip__item {
  font-size: 11.5px;
  letter-spacing: 0.06em;
  color: var(--bpc-body, #C9C4B8);
  padding-right: 28px;
  text-transform: uppercase;
}
.csf-topstrip__sep {
  color: var(--bpc-primary, #C9A227);
  font-size: 8px;
  line-height: 1;
  padding-right: 28px;
}
.csf-topstrip__usa { color: var(--bpc-primary-hover, #E6C766); font-weight: 700; }
@keyframes csf-topstrip-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .csf-topstrip--marquee .csf-topstrip__track { animation: none; }
}
@media (max-width: 719px) {
  .csf-topstrip.csf-topstrip--marquee { padding: 6px 0; }
  .csf-topstrip--marquee .csf-topstrip__item { font-size: 10.5px; }
}

/* ==========================================================================
   SKU tidy (2026-08-20 sweep nit) — hl-sku-tidy.js toggles .hl-sku-empty on
   the PDP meta SKU row while a variable product shows the placeholder "N/A"
   (pre-selection). Row hides instead of publishing a placeholder value; it
   returns the moment Woo's variation JS writes a real SKU.
   ========================================================================== */
/* Blocksy's :is(.product:has([data-gallery]),.ct-quick-view-card) .product_meta>span {display:block}
   is (0,3,1) — outranks a plain (0,3,0) hide. Match the element + !important so the placeholder
   row stays hidden in the PDP summary AND the quick-view card until a real SKU lands. */
.product_meta > span.sku_wrapper.hl-sku-empty { display: none !important; }

/* ==========================================================================
   Contact panel text links (axe link-in-text-block HIGH, 2026-08-20 sweep):
   the policy links sat in running text in gold (#E6C766) with only 1.05:1
   against the body tone — distinguishable by color alone. Underline them so
   the cue does not depend on hue. Panel links only; nav/buttons untouched.
   ========================================================================== */
.vt-contact__panel a {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(201, 162, 39, 0.55);
}
.vt-contact__panel a:hover { text-decoration-color: currentColor; }

/* ==========================================================================
   Assistant widget contrast (160 axe color-contrast advisories, 2026-08-20
   sweep): the shared csf-assistant skin put WHITE text on the Vegas gold
   --bpc-primary head (~1.9:1) and 55%-opacity fine print on the dark card.
   Vegas override — the head takes the "solid-gold tile, near-black text" AA
   pattern already used for active size tiles; fine print lifts to a solid
   body tone. Shared library/assistant skin untouched.
   ========================================================================== */
.csf-asst-head,
.csf-asst-title,
.csf-asst-close { color: #0A0A0B; }
.csf-asst-close:hover { color: #000; }
.csf-asst-fine { color: var(--bpc-body, #C9C4B8); }
