/* ==========================================================================
   Nexgen Peptides — Design System CSS
   See design.md for token reference.
   ========================================================================== */

/* --- CSS Custom Properties --- */
:root {
  --brand-blue:       #1A3178;
  --deep-navy:        #0B1530;
  --midnight:         #060E22;
  --accent-gold:      #C9A84C;
  --accent-gold-dim:  rgba(201, 168, 76, 0.5);
  --accent-gold-glow: rgba(201, 168, 76, 0.15);
  --heritage-red:     #C5333A;
  --heritage-blue:    #3953A4;
  --off-white:        #FAF8F5;
  --warm-gray:        #8A8580;
  --near-black:       #1C1A17;
  --white:            #FFFFFF;
  --white-90:         rgba(255, 255, 255, 0.92);
  --white-60:         rgba(255, 255, 255, 0.60);
  --white-30:         rgba(255, 255, 255, 0.30);
  --white-12:         rgba(255, 255, 255, 0.12);
  --white-06:         rgba(255, 255, 255, 0.06);
  --blue-glow:        rgba(26, 49, 120, 0.35);

  /* Premium Neutrals */
  --charcoal:          #282828;

  /* Interactive Gold (brighter for hover/active) */
  --accent-gold-bright: #DC9814;

  /* Light Section Surfaces */
  --cream:             #F5F5F0;
  --card-light:        #F9F9F9;

  /* Motion — Apple-esque easing, prolonged durations for cinematic reveals */
  --ease-apple:        cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft:         cubic-bezier(0.22, 1, 0.36, 1);
  --ease-standard:     cubic-bezier(0.4, 0, 0.2, 1);
  --ease-gentle:       cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --dur-micro:         180ms;
  --dur-hover:         280ms;
  --dur-reveal:       1800ms;
  --dur-hero:         2400ms;
  --dur-slow:         2200ms;
  --stagger-step:     120ms;
}

/* --- Global Reset / Base --- */

/* Grain texture overlay — applied via ::before on dark sections */
.nexgen-grain {
  position: relative;
  overflow: hidden;
}
.nexgen-grain::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
.nexgen-grain > .elementor-container,
.nexgen-grain > * {
  position: relative;
  z-index: 1;
}

/* --- Typography --- */

/* --- Buttons --- */

/* --- Header (Post 76) ------------------------------------------------------
   Reuses: motion tokens (--dur-hover, --dur-micro, --ease-soft), color tokens
   (--midnight, --accent-gold, --white-90, --blue-glow, --accent-gold-dim,
   --accent-gold-bright, --deep-navy, --white-06, --white-12), .nexgen-grain,
   glassmorphism backdrop-filter idiom (cf. lines 408, 2257, 2792, 3443+),
   gold gradient hairline pattern (cf. footer-divider line 183).
   Class injection: scripts/add-header-classes.php (8 elements).
   Logo: site_logo option holds white-variant att 5687.
   ------------------------------------------------------------------------- */

/* Sticky wrapper — Elementor's location-header is the actual sticky element so
   .nexgen-header inner container is free to transition height/bg. */
.elementor-location-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
  width: 100% !important;
}

/* Outer header — midnight + ambient blue-glow + gold hairline at bottom */
.nexgen-header {
  background-color: var(--midnight) !important;
  background-image: radial-gradient(ellipse at 50% 0%, var(--blue-glow), transparent 60%) !important;
  background-position: 0 0 !important;
  background-repeat: no-repeat !important;
  height: 88px !important;
  min-height: 88px !important;
  position: relative;
  overflow: visible !important;
  transition-property: height, min-height, background-color, backdrop-filter, -webkit-backdrop-filter, box-shadow !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
  padding: 0 32px !important;
}
.nexgen-header > .e-con-inner,
.nexgen-header.e-con > .e-con-inner {
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  height: 100% !important;
  padding: 0 !important;
  position: relative;
  z-index: 1;
}
.nexgen-header::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim), transparent);
  pointer-events: none;
  opacity: 0.7;
  z-index: 2;
  transition: opacity var(--dur-hover) var(--ease-soft);
}

/* Scrolled state — collapsed glass surface, brighter hairline */
.nexgen-header.is-scrolled {
  height: 64px !important;
  min-height: 64px !important;
  background-color: rgba(6, 14, 34, 0.78) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  backdrop-filter: blur(12px) saturate(140%);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.nexgen-header.is-scrolled::after { opacity: 1; }

/* Logo column — vertically centered, transitions logo height on scroll */
.nexgen-header-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  height: 100% !important;
  padding: 0 !important;
}
.nexgen-header-logo .elementor-widget-theme-site-logo,
.nexgen-header-logo .elementor-widget-theme-site-logo .elementor-widget-container {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
}
.nexgen-header-logo .elementor-widget-theme-site-logo img {
  height: 40px !important;
  width: auto !important;
  max-width: 280px !important;
  display: block;
  transition-property: height, opacity !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-header.is-scrolled .nexgen-header-logo img {
  height: 28px !important;
}

/* Nav column — center-aligned, full-height flex */
.nexgen-header-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  height: 100% !important;
  padding: 0 !important;
}
.nexgen-header-nav > .elementor-widget-wrap,
.nexgen-header-nav > .e-con-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: 100% !important;
  height: 100% !important;
}

/* Top-level horizontal spacing — equal gaps.
   Scope ONLY the main ul (not nested dropdowns). Elementor puts
   --layout-horizontal / --main on <nav>, .elementor-nav-menu on <ul>.
   Rhythm is flex gap + identical padding on every top-level link
   (including Shop). No Shop-only padding-right — caret is hidden. */
.nexgen-header-nav nav.elementor-nav-menu--layout-horizontal > ul.elementor-nav-menu,
.nexgen-header-nav nav.elementor-nav-menu--main > ul.elementor-nav-menu {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-header-nav nav.elementor-nav-menu--main > ul.elementor-nav-menu > li,
.nexgen-header-nav nav.elementor-nav-menu--layout-horizontal > ul.elementor-nav-menu > li {
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important; /* dropdown absolute anchors here */
}
.nexgen-header-nav nav.elementor-nav-menu--main > ul.elementor-nav-menu > li > a.elementor-item,
.nexgen-header-nav nav.elementor-nav-menu--layout-horizontal > ul.elementor-nav-menu > li > a.elementor-item,
.nexgen-header-nav nav.elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > a.elementor-item,
.nexgen-header-nav nav.elementor-nav-menu--layout-horizontal > ul.elementor-nav-menu > li.menu-item-has-children > a.elementor-item {
  padding: 8px 12px !important;
  margin: 0 !important;
}

/*
 * CLS fix (NGS-216): Shop submenu is in-flow until footer JS adds
 * .nexgen-shop-megamenu (display:none; position:fixed). That shrinks the
 * Shop <li> and snaps About/COA/FAQ left. Keep dropdown out of flow from
 * first paint — megamenu open rules (higher specificity + class) still win.
 */
@media (min-width: 1025px) {
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > ul.sub-menu {
    position: absolute !important;
    left: 0 !important;
    top: 100% !important;
    width: max-content !important;
    max-width: none !important;
    margin: 0 !important;
    /* Closed until JS megamenu / Elementor open — must not size the Shop li */
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* Nav links — Outfit 500 14px UPPERCASE 1.5px tracking white-90 → gold */
.nexgen-nav-menu .elementor-nav-menu a.elementor-item,
.nexgen-header-nav .elementor-nav-menu a.elementor-item {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--white-90) !important;
  padding: 8px 12px !important;
  position: relative;
  text-decoration: none !important;
  transition-property: color !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-nav-menu .elementor-nav-menu a.elementor-item:hover,
.nexgen-nav-menu .elementor-nav-menu a.elementor-item:focus,
.nexgen-nav-menu .elementor-nav-menu a.elementor-item.elementor-item-active,
.nexgen-header-nav .elementor-nav-menu a.elementor-item:hover,
.nexgen-header-nav .elementor-nav-menu a.elementor-item:focus,
.nexgen-header-nav .elementor-nav-menu a.elementor-item.elementor-item-active {
  color: var(--accent-gold) !important;
}

/* Override Elementor's "grow" pointer animation to use accent-gold */
.nexgen-header-nav .elementor-nav-menu .e--pointer-grow .elementor-item:before,
.nexgen-header-nav .elementor-nav-menu .e--pointer-grow .elementor-item:after,
.nexgen-nav-menu .elementor-nav-menu .e--pointer-grow .elementor-item:before,
.nexgen-nav-menu .elementor-nav-menu .e--pointer-grow .elementor-item:after {
  background-color: var(--accent-gold) !important;
  background: var(--accent-gold) !important;
  height: 1px !important;
}

/* Active page indicator — gold dot above the link */
.nexgen-nav-menu .elementor-nav-menu a.elementor-item.elementor-item-active::before,
.nexgen-header-nav .elementor-nav-menu a.elementor-item.elementor-item-active::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 50%;
  width: 4px;
  height: 4px;
  background: var(--accent-gold);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 8px var(--accent-gold-glow);
  pointer-events: none;
}

/* Dropdown menu (sub-items) — match brand surface */
.nexgen-nav-menu .elementor-nav-menu--dropdown,
.nexgen-header-nav .elementor-nav-menu--dropdown {
  background-color: var(--deep-navy) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  overflow: hidden;
  margin-top: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}
.nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item,
.nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item {
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  padding: 12px 18px !important;
  border-bottom: 1px solid var(--white-12);
  color: var(--white-90) !important;
}
.nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item:last-child,
.nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item:last-child {
  border-bottom: none;
}
.nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item:hover,
.nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item:hover {
  background-color: var(--white-06) !important;
  color: var(--accent-gold) !important;
}

/* === Shop dropdown — light Lofree-style mega-menu (desktop only)
   Layout: US Finished (2-col formats|goals) + Global text columns on the left,
   three product image tiles on the right (large US Finished + stacked Global
   and Merch), slim footer row (Shop All · Stacks) below.
   JS adds .nexgen-shop-megamenu + injects figures/footer (wp_footer shim).
   Scoped to >=1025px; mobile drawer light theme in Header Round 15 (≤1024px).
   ====================================================================== */
@media (min-width: 1025px) {

  /* Full-width light panel — fixed below sticky header.
     Permanent grid + opacity/transform state model so the panel can
     transition open/close (display:none can't transition). */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    --nexgen-shop-panel-pad: max(32px, calc((100vw - 1100px) / 2));
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: var(--nexgen-header-offset, 88px) !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    /* Closed default — display:none so the entire subtree (incl. links/
       tiles that re-declare their own pointer-events/visibility) is removed
       from layout + hit-testing. visibility:hidden alone leaks hover because
       descendants override it; display:none cannot be overridden by children.
       The open state below flips this back to grid. */
    display: none !important;
    align-items: start !important;
    grid-template-columns:
      minmax(320px, 400px)
      minmax(180px, 220px)
      minmax(480px, 1.7fr) !important;
    grid-template-rows: 1fr auto !important;
    gap: 28px 40px !important;
    padding: 40px var(--nexgen-shop-panel-pad) 28px !important;
    background-color: var(--off-white) !important;
    background-image: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 0 !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08) !important;
    overflow: visible !important;
    z-index: 998 !important;
    pointer-events: none !important;
  }

  /* Open state — fade + slide down.
     IMPORTANT: only .nexgen-submenu-open (JS-managed) and aria-expanded
     (keyboard) drive the open state. We deliberately do NOT use :hover or
     :focus-within here because the panel is position:fixed and a DOM
     descendant of the Shop <li> — once pointer-events flip to auto on open,
     :hover on the <li> would stay true anywhere over the fixed panel's
     viewport footprint (the whole hero), sticking the menu open. The
     hover-delay JS shim owns open/close via .nexgen-submenu-open with a
     220ms close grace period. */
  /* Open — in layout (display:grid), pre-fade (opacity 0 / slid up 8px).
     JS adds .nexgen-submenu-open, then on the next frame .nexgen-submenu-visible
     to trigger the fade. display:none -> grid can't transition, hence the
     two-class handoff. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open > .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    display: grid !important;
    visibility: visible !important;
    opacity: 0 !important;
    transform: translateY(-12px) !important;
    pointer-events: auto !important;
    transition-property: opacity, transform !important;
    transition-duration: var(--dur-hover) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  /* Open + fully faded in */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  /* Softer exit — JS adds .nexgen-submenu-exiting before removing .nexgen-submenu-visible */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-exiting > .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    opacity: 0 !important;
    transform: translateY(-4px) !important;
    pointer-events: none !important;
  }

  /* Hide relocated top-level items (All, Stacks, Merch) */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-menu-hidden {
    display: none !important;
  }

  /* Text column placement */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global {
    grid-column: 2 !important;
    grid-row: 1 !important;
    border-left: 1px solid rgba(0, 0, 0, 0.08) !important;
    padding-left: 28px !important;
  }

  /* Column wrappers */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children {
    border-bottom: none !important;
    padding: 0 !important;
    overflow: visible !important;
    position: static !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global {
    padding-left: 28px !important;
  }

  /* Column headings — US Finished / Global (Cormorant + gold hairline) */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > a.elementor-sub-item {
    display: block !important;
    padding: 0 0 8px 0 !important;
    margin: 0 0 18px 0 !important;
    border-bottom: none !important;
    background: transparent !important;
    font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--near-black) !important;
    cursor: default !important;
    pointer-events: none !important;
    position: relative !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > a.elementor-sub-item::after {
    content: '' !important;
    display: block !important;
    width: 32px !important;
    height: 2px !important;
    background: var(--accent-gold) !important;
    margin-top: 8px !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > a.elementor-sub-item:hover {
    color: var(--near-black) !important;
    background: transparent !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > a.elementor-sub-item > .sub-arrow {
    display: none !important;
  }

  /* Inline subcategory lists — one item per stacked line (Global).
     US Finished overrides below to a 2-col formats|goals grid. */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu {
    display: block !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    gap: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    overflow: visible !important;
    z-index: auto !important;
  }

  /* US Finished — formats (left) | goals (right); JS adds .nexgen-shop-us-*
     + grid-row. dense + explicit rows keep goals top-aligned beside formats
     (default row-major auto-placement stacks goals under formats). */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us > .sub-menu {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    grid-auto-flow: dense !important;
    align-items: start !important;
    gap: 0 24px !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us > .sub-menu > li.nexgen-shop-us-format {
    grid-column: 1 !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us > .sub-menu > li.nexgen-shop-us-goal {
    grid-column: 2 !important;
  }

  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li {
    display: block !important;
    width: 100% !important;
    border-bottom: none !important;
    padding: 0 !important;
    position: static !important;
    /* Staggered fade-up — base (closed) state */
    opacity: 0 !important;
    transform: translateY(6px) !important;
    transition: opacity 320ms var(--ease-soft), transform 320ms var(--ease-soft) !important;
    transition-delay: calc(var(--i, 0) * 55ms + 60ms) !important;
  }
  /* Staggered fade-up — fires once .nexgen-submenu-visible is added (panel
     already in layout), never on :hover */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li {
    opacity: 1 !important;
    transform: none !important;
  }

  /* Column + footer stagger — split enter after panel fade (not one blob) */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-figures-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-footer-item {
    opacity: 0 !important;
    transform: translateY(10px) !important;
    transition-property: opacity, transform !important;
    transition-duration: 340ms !important;
    transition-timing-function: var(--ease-soft) !important;
    transition-delay: calc(var(--col-i, 0) * 70ms + 50ms) !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-figures-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-footer-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-figures-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-footer-item {
    opacity: 1 !important;
    transform: none !important;
  }

  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li > a.elementor-sub-item {
    display: block !important;
    padding: 11px 0 !important;
    margin: 0 !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0.15px !important;
    line-height: 1.4 !important;
    color: var(--near-black) !important;
    border-bottom: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    text-decoration: none !important;
    text-decoration-color: transparent !important;
    text-underline-offset: 4px !important;
    text-decoration-thickness: 1px !important;
    transition: color var(--dur-micro) var(--ease-soft), text-decoration-color var(--dur-micro) var(--ease-soft);
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li > a.elementor-sub-item:hover,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li > a.elementor-sub-item:focus {
    color: var(--accent-gold) !important;
    background-color: transparent !important;
    text-decoration: underline !important;
    text-decoration-color: var(--accent-gold) !important;
  }

  /* Image tile zone — right side */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-figures-item {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }

  .nexgen-shop-figures {
    display: grid !important;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: stretch !important;
    align-self: stretch !important;
    width: 100% !important;
    min-height: 300px !important;
    max-height: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .nexgen-shop-figures__stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    min-height: 0 !important;
    height: 100% !important;
    align-self: stretch !important;
  }

  .nexgen-shop-figure {
    --nexgen-shop-figure-caption: 68px;
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    border-radius: 16px !important;
    background: var(--off-white) !important;
    text-decoration: none !important;
    min-height: 0 !important;
    height: 100% !important;
    /* Beat global .sub-menu a { padding: 12px 18px } — figure tiles are
       <a> descendants of the megamenu .sub-menu and were inheriting that
       padding, leaving a visible strip on the left (and right) of the image. */
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: none !important;
    box-shadow:
      0 4px 20px rgba(6, 14, 34, 0.14),
      0 0 0 1px rgba(0, 0, 0, 0.06) !important;
    opacity: 0;
    transform: translateY(12px);
    transition-property: opacity, transform, box-shadow !important;
    transition-duration: 340ms, 340ms, var(--dur-hover) !important;
    transition-timing-function: var(--ease-soft), var(--ease-soft), var(--ease-soft) !important;
    transition-delay: calc(var(--col-i, 2) * 70ms + 80ms + var(--tile-i, 0) * 55ms), calc(var(--col-i, 2) * 70ms + 80ms + var(--tile-i, 0) * 55ms), 0ms !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open.nexgen-submenu-visible > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-figure,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > a[aria-expanded="true"] + .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-figure {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  .nexgen-shop-figure--large {
    grid-row: 1 / -1 !important;
    align-self: stretch !important;
    min-height: 0 !important;
  }
  .nexgen-shop-figure--small {
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }

  /* Gradient over the image only — fades into the solid caption band below */
  .nexgen-shop-figure::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--nexgen-shop-figure-caption) !important;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.48), transparent 40%) !important;
    z-index: 1 !important;
    pointer-events: none !important;
    transition-property: opacity !important;
    transition-duration: var(--dur-hover) !important;
    transition-timing-function: var(--ease-soft) !important;
  }

  /* Image fills top/left/right; caption band at bottom stays solid navy for labels */
  .nexgen-shop-figure__media {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--nexgen-shop-figure-caption) !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--deep-navy) !important;
    z-index: 0 !important;
    overflow: hidden !important;
  }
  .nexgen-shop-figure__media img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: 1px solid rgba(0, 0, 0, 0.1) !important;
    outline-offset: -1px !important;
    /* Slight overscale bleeds past edges — hides baked-in letterboxing in
       product PNGs that otherwise leaves a visible navy strip on the left. */
    transform: scale(1.06) !important;
    transform-origin: center center !important;
    transition-property: transform !important;
    transition-duration: var(--dur-hover) !important;
    transition-timing-function: var(--ease-soft) !important;
  }

  .nexgen-shop-figure__eyebrow {
    position: absolute !important;
    left: 18px !important;
    bottom: 42px !important;
    z-index: 2 !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--accent-gold) !important;
    pointer-events: none !important;
  }

  .nexgen-shop-figure__label {
    position: absolute !important;
    left: 18px !important;
    bottom: 16px !important;
    z-index: 2 !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    color: var(--near-black) !important;
    -webkit-text-fill-color: var(--near-black) !important;
    pointer-events: none !important;
    line-height: 1.2 !important;
    transition-property: color, -webkit-text-fill-color, transform !important;
    transition-duration: var(--dur-micro) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  .nexgen-shop-figure--large .nexgen-shop-figure__label {
    font-size: 18px !important;
  }
  .nexgen-shop-figure--small .nexgen-shop-figure__label {
    font-size: 14px !important;
    font-weight: 500 !important;
  }

  .nexgen-shop-figure:hover,
  .nexgen-shop-figure:focus-visible {
    transform: translateY(-3px) !important;
    box-shadow:
      0 22px 44px rgba(6, 14, 34, 0.22),
      0 10px 20px rgba(6, 14, 34, 0.1),
      0 0 0 1px rgba(201, 168, 76, 0.22) !important;
  }
  .nexgen-shop-figure:hover::after,
  .nexgen-shop-figure:focus-visible::after {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.62), transparent 44%) !important;
  }
  .nexgen-shop-figure:hover .nexgen-shop-figure__media img,
  .nexgen-shop-figure:focus-visible .nexgen-shop-figure__media img {
    transform: scale(1.12) !important;
  }
  .nexgen-shop-figure:hover .nexgen-shop-figure__label,
  .nexgen-shop-figure:focus-visible .nexgen-shop-figure__label {
    color: var(--accent-gold) !important;
    -webkit-text-fill-color: var(--accent-gold) !important;
    transform: translateY(-1px) !important;
  }
  .nexgen-shop-figure:active {
    transform: translateY(-2px) scale(0.96) !important;
  }
  .nexgen-shop-figure:focus-visible {
    outline: 2px solid var(--accent-gold) !important;
    outline-offset: 2px !important;
  }

  /* Hard reset — global header .sub-menu a padding must not touch figure tiles */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-figure,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .sub-menu .nexgen-shop-figure,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu .nexgen-shop-figures .nexgen-shop-figure {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: none !important;
    background: var(--off-white) !important;
    color: inherit !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    font-size: inherit !important;
    font-weight: inherit !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-figure:hover,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu .nexgen-shop-figures .nexgen-shop-figure:hover {
    background: var(--off-white) !important;
    color: inherit !important;
  }

  /* Footer row — Shop All · Stacks · Lab Foundation (text columns only) */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-footer-item {
    grid-column: 1 / 3 !important;
    grid-row: 2 !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }

  .nexgen-shop-footer {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    padding-top: 18px !important;
    margin-top: 4px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
  }
  .nexgen-shop-footer__sep {
    color: rgba(0, 0, 0, 0.28) !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 12px !important;
    line-height: 1 !important;
    user-select: none !important;
  }
  /* High-specificity path required: the header nav forces white link text on
     a.elementor-item/-sub-item, which otherwise wins over a bare
     `.nexgen-shop-footer a` rule and makes the footer invisible on the light
     panel. Scope through the full megamenu chain so the dark color wins. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a.elementor-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a.elementor-sub-item {
    font-family: 'Outfit', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--near-black) !important;
    -webkit-text-fill-color: var(--near-black) !important;
    text-decoration: none !important;
    text-decoration-color: transparent !important;
    text-underline-offset: 4px !important;
    transition: color var(--dur-micro) var(--ease-soft), text-decoration-color var(--dur-micro) var(--ease-soft);
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a:hover,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a:focus-visible,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a.elementor-item:hover,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a.elementor-sub-item:hover {
    color: var(--accent-gold) !important;
    -webkit-text-fill-color: var(--accent-gold) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--accent-gold) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu,
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu > li,
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us,
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-global,
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-figures-item,
    .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-footer-item,
    .nexgen-shop-figure,
    .nexgen-shop-figure__media img {
      transition: none !important;
      transform: none !important;
      opacity: 1 !important;
      transition-delay: 0ms !important;
    }
    .nexgen-shop-figure:hover,
    .nexgen-shop-figure:focus-visible,
    .nexgen-shop-figure:active {
      transform: none !important;
    }
  }
}
/* === End Shop mega-menu ============================================== */

/* CTA cluster — flex right, vertical center, gap */
.nexgen-header-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  height: 100% !important;
  gap: 8px !important;
  padding: 0 !important;
}
.nexgen-header-cta > .elementor-element {
  margin: 0 !important;
}

/* Account — convert to ghost text button per design.md */
.nexgen-header-account .elementor-button-wrapper {
  width: auto !important;
}
.nexgen-header-account a.elementor-button {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 8px 12px !important;
  text-decoration: none !important;
  text-decoration-color: var(--accent-gold-dim) !important;
  text-underline-offset: 4px !important;
  border-radius: 0 !important;
  transition-property: text-decoration-color, color, transform !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-header-account a.elementor-button:hover,
.nexgen-header-account a.elementor-button:focus {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--accent-gold-bright) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--accent-gold) !important;
  transform: none !important;
  box-shadow: none !important;
}
.nexgen-header-account .elementor-button-icon {
  color: var(--accent-gold) !important;
  margin-right: 6px !important;
  transition: color var(--dur-micro) var(--ease-soft);
}
.nexgen-header-account a.elementor-button:hover .elementor-button-icon {
  color: var(--accent-gold-bright) !important;
}

/* Mini-cart toggle — strip border box, monochrome icon, gold counter */
.nexgen-header-cart .elementor-menu-cart__toggle a,
.nexgen-header-cart .elementor-menu-cart__toggle button {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 8px 10px !important;
  color: var(--white-90) !important;
  text-decoration: none !important;
  transition-property: color, transform !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-header-cart .elementor-menu-cart__toggle a *,
.nexgen-header-cart .elementor-menu-cart__toggle button * {
  color: inherit !important;
}
.nexgen-header-cart .elementor-menu-cart__toggle a svg,
.nexgen-header-cart .elementor-menu-cart__toggle button svg {
  fill: currentColor !important;
  height: 22px !important;
  width: auto !important;
}
.nexgen-header-cart .elementor-menu-cart__toggle:hover a,
.nexgen-header-cart .elementor-menu-cart__toggle:hover button,
.nexgen-header-cart .elementor-menu-cart__toggle a:hover,
.nexgen-header-cart .elementor-menu-cart__toggle button:hover {
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
}
.nexgen-header-cart .elementor-button__counter {
  background-color: var(--accent-gold) !important;
  color: var(--midnight) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  border: none !important;
  box-shadow: 0 0 8px var(--accent-gold-glow);
}

/* Search icon — strip border, monochrome, gold lift on hover */
.nexgen-header-search .elementor-icon {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--white-90) !important;
  fill: var(--white-90) !important;
  padding: 8px 10px !important;
  transition-property: color, transform !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-header-search .elementor-icon:hover,
.nexgen-header-search:hover .elementor-icon {
  color: var(--accent-gold) !important;
  fill: var(--accent-gold) !important;
  transform: translateY(-1px);
}
.nexgen-header-search .elementor-icon svg path,
.nexgen-header-search .elementor-icon i {
  fill: currentColor !important;
  color: currentColor !important;
}
.nexgen-header-search .elementor-widget-container {
  display: flex;
  align-items: center;
}


/* ============================================================================
   Search popup — branded redesign (post 1055).
   Strategy:
   - Container 54f5fc9f -> .nexgen-search-popup (set via brand-search-popup.php)
   - Search widget c7aa89c -> .nexgen-search-form (same script)
   - In-widget styling overrides stripped at the JSON level so this CSS owns
     the complete visual treatment.
   - JS in wp_footer (below) injects .nexgen-search-chips + .nexgen-search-results
     and wires AJAX live search via WC Store API.
   ============================================================================ */

/* Backdrop — the outer popup wrapper. Elementor renders this as the scrim. */
#elementor-popup-modal-1055 {
  background-color: rgba(6, 14, 34, 0.65) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* The card — override Elementor's default white .dialog-widget-content. */
#elementor-popup-modal-1055 .dialog-widget-content,
#elementor-popup-modal-1055 .dialog-message {
  background-color: var(--midnight) !important;
  background-image: radial-gradient(ellipse 600px 240px at 50% 0%, var(--blue-glow), transparent 70%) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(201, 168, 76, 0.04) !important;
  max-width: 720px !important;
  width: calc(100vw - 32px) !important;
  position: relative;
  overflow: hidden;
  color: var(--white-90);
}

/* Grain overlay on the card surface. */
#elementor-popup-modal-1055 .dialog-widget-content::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.04;
  mix-blend-mode: overlay;
}

/* Entry motion — Elementor flips display, we animate in. */
#elementor-popup-modal-1055 .dialog-widget-content {
  animation: nexgen-search-rise var(--dur-hover) var(--ease-soft) both;
}
@keyframes nexgen-search-rise {
  from { opacity: 0; transform: translateY(8px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0)   scale(1);     }
}

/* Inner container — pads the popup body. Sits above grain. */
.nexgen-search-popup {
  position: relative;
  z-index: 1;
  padding: 48px 40px 36px !important;
}

/* Search form layout — input + submit on a row. Pill chrome stripped. */
.nexgen-search-form .e-search-form,
.nexgen-search-form form {
  display: flex;
  align-items: stretch;
  gap: 12px;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

/* Input wrapper — Elementor wraps the input in a div. Position context for glyph. */
.nexgen-search-form .e-search-input-wrapper {
  flex: 1 1 auto;
  position: relative;
  display: flex;
  align-items: stretch;
}

/* Search input. */
.nexgen-search-form input[type="search"],
.nexgen-search-form .e-search-input {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 14px 18px 14px 48px !important;
  font-family: 'Azo Sans', system-ui, -apple-system, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
  transition: border-color var(--dur-micro) var(--ease-soft),
              background-color var(--dur-micro) var(--ease-soft),
              box-shadow var(--dur-micro) var(--ease-soft);
}
.nexgen-search-form input[type="search"]::placeholder {
  color: rgba(255, 255, 255, 0.65) !important;
  opacity: 1 !important;
  font-style: normal;
  text-transform: none;
}
.nexgen-search-form input[type="search"]:hover {
  border-color: var(--white-30) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}
.nexgen-search-form input[type="search"]:focus,
.nexgen-search-form input[type="search"]:focus-visible {
  outline: none !important;
  border-color: var(--accent-gold-dim) !important;
  background: rgba(255, 255, 255, 0.09) !important;
  box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.18) !important;
}

/* Inline magnifier glyph rendered via mask, follows the focus state. */
/* Magnifier glyph — defaults bright enough to stand out against the grain layer. */
.nexgen-search-form .e-search-input-wrapper::before {
  content: '';
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  background-color: rgba(255, 255, 255, 0.85) !important;
  -webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
  transition: background-color var(--dur-micro) var(--ease-soft);
  z-index: 2;
}
.nexgen-search-form .e-search-input-wrapper:focus-within::before {
  background-color: var(--accent-gold);
}

/* Hide Elementor's built-in clear (×) icon + its own AJAX results container.
   We render our own .nexgen-search-results listbox below. */
.nexgen-search-form .e-fas-times,
.nexgen-search-form output.e-search-results-container,
.nexgen-search-form .e-search-results-container { display: none !important; }

/* Submit button — Brand Blue primary. */
.nexgen-search-form button[type="submit"],
.nexgen-search-form .e-search-submit {
  flex: 0 0 auto;
  background: var(--brand-blue) !important;
  background-color: var(--brand-blue) !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  font-family: 'Outfit', system-ui, -apple-system, sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  fill: var(--white) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
  cursor: pointer;
  transition: background-color var(--dur-micro) var(--ease-soft),
              border-color var(--dur-micro) var(--ease-soft),
              box-shadow var(--dur-micro) var(--ease-soft),
              transform var(--dur-micro) var(--ease-soft);
}
.nexgen-search-form button[type="submit"]:hover,
.nexgen-search-form .e-search-submit:hover {
  background: var(--deep-navy) !important;
  background-color: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35) !important;
  transform: translateY(-1px);
}
.nexgen-search-form button[type="submit"]:focus-visible {
  outline: 2px solid var(--accent-gold);
  outline-offset: 2px;
}

/* Close X — gold on hover, rotates. */
#elementor-popup-modal-1055 .dialog-close-button,
#elementor-popup-modal-1055 .dialog-lightbox-close-button,
#elementor-popup-modal-1055 i.eicon-close {
  color: var(--white-90) !important;
  fill: var(--white-90) !important;
  top: 18px !important;
  right: 18px !important;
  font-size: 16px !important;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  z-index: 2;
  transition: color var(--dur-micro) var(--ease-soft),
              background-color var(--dur-micro) var(--ease-soft),
              transform var(--dur-micro) var(--ease-soft);
}
#elementor-popup-modal-1055 .dialog-close-button:hover,
#elementor-popup-modal-1055 .dialog-lightbox-close-button:hover {
  color: var(--accent-gold) !important;
  fill: var(--accent-gold) !important;
  background-color: var(--white-06) !important;
  transform: rotate(90deg);
}

/* ----- Popular-category chips (server-rendered via wp_footer) ----- */
.nexgen-search-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  position: relative;
  z-index: 1;
}
.nexgen-search-chips[hidden] { display: none; }
.nexgen-search-chips__label {
  font-family: 'Outfit', system-ui, sans-serif;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #C9A84C !important;
  margin-right: 6px;
}
.nexgen-search-chip,
.nexgen-search-chip:link,
.nexgen-search-chip:visited {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.10) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 999px;
  padding: 8px 16px;
  font-family: 'Outfit', system-ui, sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #FFFFFF !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color var(--dur-micro) var(--ease-soft),
              border-color var(--dur-micro) var(--ease-soft),
              color var(--dur-micro) var(--ease-soft),
              transform var(--dur-micro) var(--ease-soft);
}
.nexgen-search-chip:hover,
.nexgen-search-chip:focus-visible {
  background: var(--accent-gold-glow) !important;
  border-color: var(--accent-gold-dim) !important;
  color: #C9A84C !important;
  transform: translateY(-1px);
  outline: none;
  text-decoration: none !important;
}

/* ----- AJAX live results dropdown (JS-injected) ----- */
.nexgen-search-results {
  position: relative;
  z-index: 1;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--white-12);
  max-height: 420px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--white-12) transparent;
}
.nexgen-search-results[hidden] { display: none; }
.nexgen-search-results::-webkit-scrollbar { width: 6px; }
.nexgen-search-results::-webkit-scrollbar-thumb { background: var(--white-12); border-radius: 3px; }

.nexgen-search-result,
.nexgen-search-result:link,
.nexgen-search-result:visited {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 8px;
  border-radius: 8px;
  text-decoration: none !important;
  color: #FFFFFF !important;
  cursor: pointer;
  transition: background-color var(--dur-micro) var(--ease-soft);
}
.nexgen-search-result:hover,
.nexgen-search-result[aria-selected="true"] {
  background: var(--white-06);
  text-decoration: none;
}
.nexgen-search-result__thumb {
  width: 56px;
  height: 56px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--white-06);
  border: 1px solid var(--white-12);
}
.nexgen-search-result__body {
  flex: 1 1 auto;
  min-width: 0;
}
.nexgen-search-result__title {
  font-family: 'Outfit', system-ui, sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: #FFFFFF !important;
  margin: 0 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nexgen-search-result__price {
  font-family: 'Outfit', system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #C9A84C !important;
  margin: 0;
}
.nexgen-search-result__cat {
  font-family: 'Outfit', system-ui, sans-serif;
  font-weight: 500;
  font-size: 11px;
  color: var(--white-60);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}

/* No-results / status states. */
.nexgen-search-status {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  color: var(--white-60);
  padding: 20px 8px 8px;
  text-align: center;
}
.nexgen-search-status em {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  color: var(--white-90);
  font-size: 17px;
}

/* "View all results" footer link inside dropdown. */
.nexgen-search-viewall {
  display: block;
  text-align: center;
  padding: 14px 8px 4px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: 15px;
  color: var(--accent-gold);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--accent-gold-dim);
  transition: text-decoration-color var(--dur-micro) var(--ease-soft);
}
.nexgen-search-viewall:hover { text-decoration-color: var(--accent-gold); color: var(--accent-gold); }

/* Subtle hint for keyboard hotkey, shown when popup is empty/idle. */
.nexgen-search-hint {
  position: absolute;
  bottom: 16px;
  right: 20px;
  font-family: 'Outfit', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.65) !important;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 1;
}
.nexgen-search-hint kbd {
  display: inline-block;
  padding: 2px 6px;
  margin: 0 2px;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.12) !important;
  color: #FFFFFF !important;
  font-family: inherit;
  font-size: 10px;
}

/* Mobile — stack input over button, full width, tighter padding. */
@media (max-width: 767px) {
  #elementor-popup-modal-1055 .dialog-widget-content {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    border-radius: 10px !important;
  }
  .nexgen-search-popup { padding: 36px 22px 24px !important; }
  .nexgen-search-form .e-search-form,
  .nexgen-search-form form {
    flex-direction: column;
    gap: 10px;
  }
  .nexgen-search-form input[type="search"] {
    font-size: 16px !important; /* prevents iOS zoom */
    padding: 14px 16px 14px 44px !important;
  }
  .nexgen-search-form .e-search-input-wrapper::before {
    left: 16px;
    width: 16px;
    height: 16px;
  }
  .nexgen-search-form button[type="submit"],
  .nexgen-search-form .e-search-submit {
    width: 100%;
    padding: 14px 24px !important;
    font-size: 14px !important;
  }
  .nexgen-search-result__thumb { width: 48px; height: 48px; }
  .nexgen-search-result__title { font-size: 14px; }
  .nexgen-search-hint { display: none; }
}

/* Side-cart drawer — Elementor Pro Menu Cart widget (built-in, no 3rd-party plugin).
   Targets Elementor's custom DOM (.elementor-menu-cart__product, __subtotal,
   __footer-buttons) and Elementor button modifier classes
   (.elementor-button--continue-shopping/--view-cart/--login-checkout/--checkout).
   Close (×) glyph is drawn by ::before/::after rotated bars; we drive it via
   the --cart-close-button-color / --cart-close-button-hover-color vars. */

/* Lightbox backdrop — semi-transparent scrim with subtle blur (page visible
   behind). Force full-viewport sizing because Elementor's default height:100%
   on the position:fixed container collapses to ~64px on this site (sticky
   header related) when scrolled, clipping the panel. */
.elementor-menu-cart__container {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 9999 !important;
  background-color: rgba(6, 14, 34, 0.55) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  color: var(--white-90) !important;
  overflow: hidden !important;
}

/* Right-side panel — opaque deep-navy. Anchor to viewport with position:fixed
   so it can't be clipped by the container. Internal overflow scrolls items. */
.elementor-menu-cart__main {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  height: 100vh !important;
  height: 100dvh !important;
  width: min(420px, 92vw) !important;
  max-width: 100vw !important;
  background-color: var(--deep-navy) !important;
  color: var(--white-90) !important;
  padding: 24px 28px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  z-index: 1 !important;
}

/* Drive Elementor's own CSS vars for icon-glyph colors. The close (×) and the
   per-item remove (×) are both drawn by ::before/::after diagonals controlled
   by these vars; the remove button's red ring is the border, also controlled
   by --remove-item-button-color. */
.elementor-menu-cart__container {
  --cart-close-button-color: rgba(255, 255, 255, 0.6);
  --cart-close-button-hover-color: var(--accent-gold);
  --remove-item-button-color: rgba(255, 255, 255, 0.3);
  --remove-item-button-hover-color: var(--heritage-red);
}

/* Force Outfit on text only — exclude icon-font elements so eicons / FA glyphs
   render correctly. */
.elementor-menu-cart__container *:not(svg):not(path):not(i):not([class*="eicon"]):not([class*="fa-"]) {
  font-family: 'Outfit', sans-serif !important;
}

/* Header bar — labels the drawer so close ≠ line-item remove */
.elementor-menu-cart__main::before {
  content: "Your Cart";
  display: block;
  box-sizing: border-box;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
  -webkit-font-smoothing: antialiased;
  color: var(--white) !important;
  padding: 4px 48px 16px 0 !important;
  margin: 0 0 4px !important;
  border-bottom: 1px solid var(--white-12) !important;
  text-wrap: balance;
}

/* Close panel — soft chip + larger Lucide X (dismiss drawer, not a line item) */
.elementor-menu-cart__container .elementor-menu-cart__close-button,
.elementor-menu-cart__close-button {
  position: absolute !important;
  top: 14px !important;
  right: 16px !important;
  z-index: 2;
  width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  border: none !important;
  border-radius: 999px !important;
  flex-shrink: 0;
  /* Soft surface chip — not a bare glyph competing with remove */
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10) !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  color: var(--cart-close-button-color, rgba(255, 255, 255, 0.72));
  transition: background-color var(--dur-micro) var(--ease-soft),
              box-shadow var(--dur-micro) var(--ease-soft),
              color var(--dur-micro) var(--ease-soft),
              transform var(--dur-micro) cubic-bezier(0.2, 0, 0, 1) !important;
}
/* Glyph lives on ::after so chip fill stays visible */
.elementor-menu-cart__container .elementor-menu-cart__close-button::before,
.elementor-menu-cart__close-button::before {
  content: none !important;
  display: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button::after,
.elementor-menu-cart__close-button::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  background-color: currentColor !important;
  background-image: none !important;
  border-radius: 0 !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: 18px 18px !important;
  mask-size: 18px 18px !important;
  transition: background-color var(--dur-micro) var(--ease-soft) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button:hover,
.elementor-menu-cart__container .elementor-menu-cart__close-button:focus,
.elementor-menu-cart__close-button:hover,
.elementor-menu-cart__close-button:focus {
  background-color: rgba(255, 255, 255, 0.14) !important;
  color: var(--cart-close-button-hover-color, var(--accent-gold)) !important;
  box-shadow: inset 0 0 0 1px rgba(201, 168, 76, 0.35) !important;
  transform: none !important;
  opacity: 1 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button:active,
.elementor-menu-cart__close-button:active {
  transform: scale(0.96) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__close-button:focus-visible,
.elementor-menu-cart__close-button:focus-visible {
  outline: 2px solid var(--accent-gold) !important;
  outline-offset: 2px !important;
}

/* Cart product list */
.elementor-menu-cart__container .elementor-menu-cart__products,
.elementor-menu-cart__container .widget_shopping_cart_content {
  padding: 0 !important;
  margin: 0 !important;
}

/* Cart product row */
.elementor-menu-cart__container .elementor-menu-cart__product {
  display: grid !important;
  grid-template-columns: 64px 1fr auto !important;
  grid-template-areas:
    "image name remove"
    "image price remove" !important;
  column-gap: 14px !important;
  row-gap: 4px !important;
  align-items: center !important;
  padding: 16px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--white-12) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-image {
  grid-area: image !important;
  margin: 0 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-image img {
  width: 64px !important;
  height: auto !important;
  border-radius: 4px !important;
  display: block !important;
  margin: 0 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-name {
  grid-area: name !important;
  margin: 0 !important;
  align-self: end !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-name a {
  color: var(--white-90) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  transition: color var(--dur-micro) var(--ease-soft) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-name a:hover {
  color: var(--accent-gold) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price {
  grid-area: price !important;
  margin: 0 !important;
  align-self: start !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price .quantity,
.elementor-menu-cart__container .elementor-menu-cart__product-price .product-quantity,
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-amount,
.elementor-menu-cart__container .elementor-menu-cart__product-price bdi,
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-currencySymbol {
  color: var(--white-60) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  background: transparent !important;
}
/* Remove line-item — quieter + smaller than panel close; 40px hit via pad */
.elementor-menu-cart__container .elementor-menu-cart__product-remove {
  grid-area: remove !important;
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 !important;
  align-self: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: visible !important;
  color: var(--remove-item-button-color, rgba(255, 255, 255, 0.35));
  transition: color var(--dur-micro) var(--ease-soft),
              background-color var(--dur-micro) var(--ease-soft) !important;
}
/* Kill Elementor circle + bar X; draw small Lucide glyph instead */
.elementor-menu-cart__container .elementor-menu-cart__product-remove::before {
  content: none !important;
  display: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-remove::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 12px !important;
  height: 12px !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  background-color: currentColor !important;
  border: none !important;
  border-radius: 0 !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E") !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  -webkit-mask-size: 12px 12px !important;
  mask-size: 12px 12px !important;
  transition: background-color var(--dur-micro) var(--ease-soft) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-remove:hover {
  color: var(--remove-item-button-hover-color, var(--heritage-red)) !important;
  background-color: rgba(197, 51, 58, 0.10) !important;
  border-radius: 999px !important;
}
/* Invisible hit layer — Elementor sets opacity:0; keep full 40×40 */
.elementor-menu-cart__container .elementor-menu-cart__product-remove > a,
.elementor-menu-cart__container .elementor-menu-cart__product-remove a.remove,
.elementor-menu-cart__container .elementor-menu-cart__product-remove a.remove_from_cart_button,
.elementor-menu-cart__container .elementor-menu-cart__product-remove a.elementor_remove_from_cart_button {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  border: none !important;
  background: transparent !important;
  font-size: 0 !important;
  z-index: 2 !important;
}
.elementor-menu-cart__container .elementor-menu-cart__product-image img {
  outline: 1px solid rgba(255, 255, 255, 0.10);
  outline-offset: -1px;
}
.elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-amount,
.elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount {
  font-variant-numeric: tabular-nums;
}

/* Subtotal row */
.elementor-menu-cart__container .elementor-menu-cart__subtotal {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 18px 0 !important;
  margin: 0 !important;
  border-top: 1px solid var(--white-12) !important;
  border-bottom: none !important;
  background: transparent !important;
  color: var(--white-90) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__subtotal strong {
  color: var(--white) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
}
.elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount,
.elementor-menu-cart__container .elementor-menu-cart__subtotal bdi,
.elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-currencySymbol {
  color: var(--accent-gold) !important;
  font-weight: 600 !important;
  font-size: 22px !important;
  letter-spacing: 0 !important;
  background: transparent !important;
}

/* Footer buttons — layout only on the active custom wrapper.
   functions.php hides the standard wrapper with display:none (no !important);
   forcing display on the bare class would un-hide both wrappers. */
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons.custom-mini-cart-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  padding-top: 18px !important;
  margin: 0 !important;
}

/* All Elementor buttons inside the drawer — secondary outline default */
/* Shared layout for all drawer buttons. Color/bg/border set per variant below. */
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button,
.elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping,
.elementor-menu-cart__container .elementor-button.elementor-button--view-cart,
.elementor-menu-cart__container .elementor-button.elementor-button--login-checkout,
.elementor-menu-cart__container .elementor-button.elementor-button--checkout {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-align: center !important;
  text-decoration: none !important;
  background-image: none !important;
  transform: none !important;
  transition: background-color var(--dur-hover) var(--ease-soft), border-color var(--dur-hover) var(--ease-soft), color var(--dur-hover) var(--ease-soft), transform var(--dur-micro) cubic-bezier(0.2, 0, 0, 1), box-shadow var(--dur-hover) var(--ease-soft) !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button:active,
.elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping:active,
.elementor-menu-cart__container .elementor-button.elementor-button--view-cart:active,
.elementor-menu-cart__container .elementor-button.elementor-button--login-checkout:active,
.elementor-menu-cart__container .elementor-button.elementor-button--checkout:active {
  transform: scale(0.96) !important;
}

/* Continue Shopping & View Cart — outline secondary on the panel.
   Deep-navy bg matches the panel surface, so the brand-blue border reads as
   the visible "outline." Subtle blue-tint fill on hover gives interactive cue. */
.elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping,
.elementor-menu-cart__container .elementor-button.elementor-button--view-cart {
  background: var(--deep-navy) !important;
  background-color: var(--deep-navy) !important;
  color: var(--white) !important;
  border: 1px solid var(--brand-blue) !important;
  font-size: 14px !important;
  padding: 12px 28px !important;
  box-shadow: none !important;
}
.elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button .elementor-button-text,
.elementor-menu-cart__container .elementor-button--continue-shopping .elementor-button-text,
.elementor-menu-cart__container .elementor-button--view-cart .elementor-button-text,
.elementor-menu-cart__container .elementor-button--login-checkout .elementor-button-text,
.elementor-menu-cart__container .elementor-button--checkout .elementor-button-text {
  color: inherit !important;
  text-decoration: none !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* Continue Shopping / View Cart hover — subtle blue-tint fill */
.elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping:hover,
.elementor-menu-cart__container .elementor-button.elementor-button--view-cart:hover {
  background: rgba(26, 49, 120, 0.18) !important;
  background-color: rgba(26, 49, 120, 0.18) !important;
  border-color: var(--brand-blue) !important;
  color: var(--white) !important;
}

/* Checkout / Login & Checkout — primary CTA matching the canonical hero +
   best-sellers + stacks pattern (deep-navy hover, gold-dim border, gold-glow
   shadow, translateY(-2px), cubic-bezier ease-out). See .nexgen-hero-cta. */
.elementor-menu-cart__container .elementor-button.elementor-button--login-checkout,
.elementor-menu-cart__container .elementor-button.elementor-button--checkout {
  background: var(--brand-blue) !important;
  background-color: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  font-size: 15px !important;
  padding: 14px 32px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.elementor-menu-cart__container .elementor-button.elementor-button--login-checkout:hover,
.elementor-menu-cart__container .elementor-button.elementor-button--checkout:hover {
  background: var(--deep-navy) !important;
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--white) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5), 0 0 16px var(--accent-gold-glow) !important;
}

/* Empty cart state */
.elementor-menu-cart__container .elementor-menu-cart__empty,
.elementor-menu-cart__container p.woocommerce-mini-cart__empty-message {
  color: var(--white-60) !important;
  text-align: center !important;
  padding: 40px 16px !important;
  font-size: 14px !important;
}

/* Reduced-motion guard */
@media (prefers-reduced-motion: reduce) {
  .elementor-menu-cart__container *,
  .elementor-menu-cart__close-button,
  .elementor-menu-cart__container .elementor-menu-cart__product-remove a,
  .elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button {
    transition: none !important;
    transform: none !important;
  }
}

/* Mobile drawer tightening */
@media (max-width: 767px) {
  .elementor-menu-cart__main {
    padding: 20px 18px !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__footer-buttons .elementor-button {
    padding: 12px 24px !important;
  }
  .elementor-menu-cart__container .elementor-button.elementor-button--login-checkout,
  .elementor-menu-cart__container .elementor-button.elementor-button--checkout {
    padding: 13px 28px !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount {
    font-size: 20px !important;
  }
}

/* ==========================================================================
   Side-cart drawer — DESKTOP light theme
   Off-white panel + near-black type for readable contrast on tablet/desktop.
   Mobile (<768px) keeps the dark drawer above.
   ========================================================================== */
@media (min-width: 768px) {
  /* Panel surface */
  .elementor-menu-cart__main {
    background-color: var(--off-white) !important;
    color: var(--near-black) !important;
    box-shadow: -16px 0 48px rgba(0, 0, 0, 0.22) !important;
  }

  .elementor-menu-cart__container {
    color: var(--near-black) !important;
    --cart-close-button-color: rgba(28, 26, 23, 0.62);
    --cart-close-button-hover-color: var(--deep-navy);
    --remove-item-button-color: rgba(28, 26, 23, 0.28);
    --remove-item-button-hover-color: var(--heritage-red);
  }

  /* Header bar on cream */
  .elementor-menu-cart__main::before {
    color: var(--near-black) !important;
    border-bottom-color: rgba(28, 26, 23, 0.12) !important;
  }

  /* Close chip on light surface */
  .elementor-menu-cart__container .elementor-menu-cart__close-button,
  .elementor-menu-cart__close-button {
    background-color: rgba(28, 26, 23, 0.06) !important;
    box-shadow: inset 0 0 0 1px rgba(28, 26, 23, 0.08) !important;
    color: var(--cart-close-button-color) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__close-button:hover,
  .elementor-menu-cart__container .elementor-menu-cart__close-button:focus,
  .elementor-menu-cart__close-button:hover,
  .elementor-menu-cart__close-button:focus {
    background-color: rgba(28, 26, 23, 0.10) !important;
    color: var(--cart-close-button-hover-color) !important;
    box-shadow: inset 0 0 0 1px rgba(11, 21, 48, 0.18) !important;
  }

  /* Product rows */
  .elementor-menu-cart__container .elementor-menu-cart__product {
    border-bottom-color: rgba(28, 26, 23, 0.12) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__product-image img {
    border: none !important;
    outline: 1px solid rgba(0, 0, 0, 0.10) !important;
    outline-offset: -1px !important;
    background: var(--white) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__product-name a {
    color: var(--near-black) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__product-name a:hover {
    color: var(--brand-blue) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__product-price .quantity,
  .elementor-menu-cart__container .elementor-menu-cart__product-price .product-quantity,
  .elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-amount,
  .elementor-menu-cart__container .elementor-menu-cart__product-price bdi,
  .elementor-menu-cart__container .elementor-menu-cart__product-price .woocommerce-Price-currencySymbol {
    color: rgba(28, 26, 23, 0.62) !important;
  }

  .elementor-menu-cart__container .elementor-menu-cart__product-remove:hover {
    background-color: rgba(197, 51, 58, 0.08) !important;
  }

  /* Subtotal — navy amount for AA contrast on cream */
  .elementor-menu-cart__container .elementor-menu-cart__subtotal {
    border-top-color: rgba(28, 26, 23, 0.12) !important;
    color: var(--near-black) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__subtotal strong {
    color: var(--near-black) !important;
  }
  .elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-amount,
  .elementor-menu-cart__container .elementor-menu-cart__subtotal bdi,
  .elementor-menu-cart__container .elementor-menu-cart__subtotal .woocommerce-Price-currencySymbol {
    color: var(--deep-navy) !important;
    -webkit-text-fill-color: var(--deep-navy) !important;
  }

  /* Continue Shopping / View Cart — charcoal outline on cream */
  .elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping,
  .elementor-menu-cart__container .elementor-button.elementor-button--view-cart {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--near-black) !important;
    -webkit-text-fill-color: var(--near-black) !important;
    border: 1px solid rgba(28, 26, 23, 0.28) !important;
    box-shadow: none !important;
  }
  .elementor-menu-cart__container .elementor-button.elementor-button--continue-shopping:hover,
  .elementor-menu-cart__container .elementor-button.elementor-button--view-cart:hover {
    background: var(--cream) !important;
    background-color: var(--cream) !important;
    border-color: var(--deep-navy) !important;
    color: var(--near-black) !important;
    -webkit-text-fill-color: var(--near-black) !important;
  }

  /* Checkout — brand blue primary; softer shadow on light surface */
  .elementor-menu-cart__container .elementor-button.elementor-button--login-checkout,
  .elementor-menu-cart__container .elementor-button.elementor-button--checkout {
    background: var(--brand-blue) !important;
    background-color: var(--brand-blue) !important;
    color: var(--white) !important;
    -webkit-text-fill-color: var(--white) !important;
    border: 1px solid var(--brand-blue) !important;
    box-shadow: 0 4px 16px rgba(11, 21, 48, 0.18) !important;
  }
  .elementor-menu-cart__container .elementor-button.elementor-button--login-checkout:hover,
  .elementor-menu-cart__container .elementor-button.elementor-button--checkout:hover {
    background: var(--deep-navy) !important;
    background-color: var(--deep-navy) !important;
    border-color: var(--accent-gold-dim) !important;
    color: var(--white) !important;
    -webkit-text-fill-color: var(--white) !important;
    box-shadow: 0 6px 24px rgba(11, 21, 48, 0.22), 0 0 12px var(--accent-gold-glow) !important;
  }

  /* Empty state */
  .elementor-menu-cart__container .elementor-menu-cart__empty,
  .elementor-menu-cart__container p.woocommerce-mini-cart__empty-message {
    color: rgba(28, 26, 23, 0.55) !important;
  }

}

/* Reduced-motion guard — suppress all header transitions */
@media (prefers-reduced-motion: reduce) {
  .elementor-location-header,
  .nexgen-header,
  .nexgen-header *,
  .nexgen-header::after,
  .nexgen-header-logo .elementor-widget-theme-site-logo img {
    transition: none !important;
  }
}

/* Responsive */
@media (max-width: 1024px) {
  .nexgen-header { height: 80px !important; min-height: 80px !important; padding: 0 24px !important; }
  .nexgen-header.is-scrolled { height: 60px !important; min-height: 60px !important; }
}
@media (max-width: 767px) {
  .nexgen-header { height: 64px !important; min-height: 64px !important; padding: 0 16px !important; }
  .nexgen-header.is-scrolled { height: 56px !important; min-height: 56px !important; }
  .nexgen-header-logo .elementor-widget-theme-site-logo img { height: 30px !important; max-width: 200px !important; }
  .nexgen-header.is-scrolled .nexgen-header-logo img { height: 24px !important; }
  .nexgen-header-cta { gap: 4px !important; }
  .nexgen-header-account a.elementor-button { font-size: 12px !important; padding: 6px 8px !important; }
  .nexgen-header-cart .elementor-menu-cart__toggle a svg,
  .nexgen-header-cart .elementor-menu-cart__toggle button svg { height: 20px !important; }
  .nexgen-header-search .elementor-icon { padding: 6px 8px !important; }
}

/* Header Round 2 — vertical centering, widget-level border kills, cart counter
   ------------------------------------------------------------------------- */

/* Each header column (e-con-full) defaults to flex-direction: column. With a
   single child widget, justify-content controls vertical placement; default is
   flex-start so the widget hugs the top. Center it. */
.nexgen-header-logo,
.nexgen-header-nav,
.nexgen-header-cta {
  justify-content: center !important;
}

/* Logo content — left-anchored on cross-axis */
.nexgen-header-logo { align-items: flex-start !important; }

/* Nav widget — vertically center the menu inside its widget container */
.nexgen-header-nav .elementor-widget-nav-menu,
.nexgen-header-nav .elementor-widget-nav-menu > .elementor-widget-container {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  height: auto !important;
  width: 100% !important;
}
/* Override the Elementor align_items: end setting that pins menu items low */
.nexgen-header-nav .elementor-nav-menu,
.nexgen-header-nav ul.elementor-nav-menu,
.nexgen-header-nav nav.elementor-nav-menu--main {
  align-items: center !important;
  display: flex !important;
  margin: 0 !important;
}
.nexgen-header-nav nav.elementor-nav-menu--main > ul {
  align-items: center !important;
  margin: 0 !important;
}

/* CTA cluster — right-anchored on cross-axis (column flex), row-aligned items */
.nexgen-header-cta { align-items: flex-end !important; }
.nexgen-header-cta > .elementor-element {
  display: flex !important;
  align-items: center !important;
  height: auto !important;
}

/* Search widget — strip widget-level border + box-shadow (set in widget settings) */
.nexgen-header-search,
.nexgen-header-search > .elementor-widget-container {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Account button — kill the heavy widget-level box-shadow that was on the button */
.nexgen-header-account,
.nexgen-header-account > .elementor-widget-container,
.nexgen-header-account a.elementor-button {
  box-shadow: none !important;
  border-radius: 0 !important;
}
.nexgen-header-account .elementor-widget-container { padding: 0 !important; }

/* Cart toggle widget-level wrapper — ensure no padding/border bleeds in */
.nexgen-header-cart,
.nexgen-header-cart > .elementor-widget-container {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Cart counter — broader selector; Elementor's class name varies by version */
.nexgen-header-cart .elementor-menu-cart__toggle [class*="counter"],
.nexgen-header-cart .elementor-menu-cart__toggle__counter,
.nexgen-header-cart .elementor-button__counter,
.nexgen-header-cart [class*="items-counter"],
.nexgen-header-cart [class*="-counter"]:not(.elementor-widget) {
  background-color: var(--accent-gold) !important;
  background: var(--accent-gold) !important;
  color: var(--midnight) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  border: none !important;
  box-shadow: 0 0 8px var(--accent-gold-glow);
}

/* The Elementor menu-cart toggle wrapper itself is .elementor-element.
   Override its inline padding so the icon doesn't sit in a wide box. */
.nexgen-header-cart .elementor-menu-cart__toggle {
  background: transparent !important;
}

/* Header Round 3 — CTA vertical-center fix + cart counter actual class
   (Elementor uses .elementor-button-icon-qty for WC menu cart toggle counter,
   not .elementor-button__counter.)
   ------------------------------------------------------------------------- */
.nexgen-header-cta {
  align-items: center !important;
  justify-content: flex-end !important;
}
.nexgen-header-cart .elementor-button-icon-qty {
  background-color: var(--accent-gold) !important;
  background: var(--accent-gold) !important;
  color: var(--midnight) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0 !important;
  border: none !important;
  box-shadow: 0 0 8px var(--accent-gold-glow);
}

/* Header Round 4 — mobile / tablet hamburger handling
   Round 2's `display: flex !important` on nav.elementor-nav-menu--main forced
   the inline menu visible at all widths, blocking Elementor's mobile breakpoint
   from hiding it. Restore the hide-below-tablet behavior, then style the
   hamburger toggle to match the brand.
   ------------------------------------------------------------------------- */

/* Hide inline menu below tablet breakpoint (Elementor default is <1025px). */
@media (max-width: 1024px) {
  .nexgen-header-nav nav.elementor-nav-menu--main,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--main {
    display: none !important;
  }
}

/* Hide hamburger toggle at desktop. */
@media (min-width: 1025px) {
  .nexgen-header-nav .elementor-menu-toggle {
    display: none !important;
  }
}

/* Toggle button — strip Elementor's default blue/white rectangle, monochrome */
.nexgen-header-nav .elementor-menu-toggle {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--white-90) !important;
  padding: 6px 8px !important;
  border-radius: 0 !important;
  transition-property: color, transform !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-header-nav .elementor-menu-toggle svg {
  fill: currentColor !important;
  height: 22px !important;
  width: auto !important;
}
.nexgen-header-nav .elementor-menu-toggle:hover,
.nexgen-header-nav .elementor-menu-toggle:focus {
  background: transparent !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
}

/* When toggle is open, the inline menu drops down as a panel — style it. */
@media (max-width: 1024px) {
  .nexgen-header-nav nav.elementor-nav-menu--dropdown.elementor-nav-menu__container,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    background-color: var(--off-white) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 12px !important;
    margin-top: 8px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
    padding: 8px 0 !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item {
    font-family: 'Outfit', sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--near-black) !important;
    padding: 14px 20px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item:last-child {
    border-bottom: none;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item:hover,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active {
    background-color: rgba(0, 0, 0, 0.04) !important;
    color: var(--accent-gold) !important;
  }
}

/* Header Round 5 — small-phone polish (≤480px)
   The Account button has both an icon and the text "MY ACCOUNT". At 375px the
   text wraps to two lines, breaking vertical alignment with the icons. Hide the
   button entirely on the smallest phones — the hamburger menu can include
   account links. */
@media (max-width: 480px) {
  .nexgen-header-cta > .nexgen-header-account {
    display: none !important;
  }
  .nexgen-header { padding: 0 12px !important; }
  .nexgen-header-cta { gap: 2px !important; }
  .nexgen-header-logo .elementor-widget-theme-site-logo img { max-width: 160px !important; }
}

/* Header Round 6 — dropdown colors + active pointer visibility
   Elementor's inline CSS on the nav-menu widget uses the widget's element-ID
   class (0,4,1 specificity) to set pointer/dropdown colors from globals. To
   win cleanly without referencing the brittle element ID, anchor selectors
   from .nexgen-header down through .nexgen-header-nav and .nexgen-nav-menu —
   that's 5+ classes + pseudo, which beats Elementor's defaults.
   Also: desktop sub-menu items use .elementor-sub-item (a separate class from
   top-level .elementor-item) — round 1 missed this.
   ------------------------------------------------------------------------- */

/* Pointer underline (active + hover "grow" animation) — must be gold, not the
   Elementor global that maps to a dark/invisible color on midnight bg. */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item:before,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item:after,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item.elementor-item-active:before,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item.elementor-item-active:after,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item:hover:before,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu .elementor-item:hover:after {
  background-color: var(--accent-gold) !important;
  background: var(--accent-gold) !important;
  height: 1px !important;
}

/* Desktop sub-menu (dropdown panel) — colors + chrome */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu ul.sub-menu {
  background-color: var(--deep-navy) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  margin-top: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
  padding: 4px 0 !important;
  overflow: hidden;
}

/* Desktop sub-menu items — Elementor uses .elementor-sub-item for dropdown anchors */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-sub-item,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu a.elementor-sub-item,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu a {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 12px 18px !important;
  color: var(--white-90) !important;
  background: transparent !important;
  background-color: transparent !important;
  border-bottom: 1px solid var(--white-12) !important;
  transition-property: color, background-color !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-soft) !important;
  display: block;
}
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu li:last-child > a {
  border-bottom: none !important;
}

.nexgen-header .nexgen-header-nav .nexgen-nav-menu a.elementor-sub-item:hover,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu a.elementor-sub-item:focus,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu a.elementor-sub-item.elementor-item-active,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu a:hover {
  background-color: var(--white-06) !important;
  color: var(--accent-gold) !important;
}

/* Indicator/highlight bg for sub-items if Elementor sets one — kill it */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu .menu-item-has-children > a::after {
  color: var(--white-60) !important;
}

/* Header Round 7 — desktop SHOP dropdown mega-menu layout
   Convert the single-column sub-menu into a 3-column grid so the panel
   doesn't extend the full height of the viewport. Each item becomes a tile.
   The WP menu stays the source of truth — adding/removing items just adjusts
   the grid (more items = more rows). Layout only kicks in at ≥1025px;
   mobile/tablet hamburger keeps the single-column list.
   ------------------------------------------------------------------------- */

@media (min-width: 1025px) {
  /* Sub-menu panel — multi-column grid + wider, centered under the trigger */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children.nexgen-submenu-open > .sub-menu {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2px;
    width: 480px;
    padding: 8px !important;
    border-radius: 12px !important;
    left: 50% !important;
    transform: translateX(-50%);
    margin-top: 12px !important;
  }

  /* List items — fill grid cells, no float/inline */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu li {
    display: block !important;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Items as tiles — no row divider, rounded corners, centered text */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu a.elementor-sub-item,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu li > a {
    border-bottom: none !important;
    border-radius: 6px !important;
    padding: 14px 10px !important;
    text-align: center !important;
    font-size: 12px !important;
    letter-spacing: 1.2px !important;
    line-height: 1.2 !important;
    white-space: nowrap;
  }
}

/* Header Round 8 — fix dropdown hover-gap deathzone
   Round 7's margin-top: 12px on .sub-menu created dead space between the SHOP
   trigger and the dropdown — crossing it loses :hover and the dropdown closes
   before the cursor reaches the items. Replace margin with a transparent
   ::before bridge that visually keeps the gap but is part of the .sub-menu
   subtree, so hovering it keeps the parent <li>:hover state alive.
   ------------------------------------------------------------------------- */

@media (min-width: 1025px) {
  /* Kill the margin-top from rounds 6 & 7 */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu {
    margin-top: 0 !important;
  }

  /* Push the visual panel down via top: calc() so the bridge has room above */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children.nexgen-submenu-open > .sub-menu {
    top: calc(100% + 12px) !important;
  }

  /* Invisible 12px bridge above the dropdown — catches mouse hover so the
     parent <li>:hover stays true while the cursor crosses the gap. */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu::before {
    content: '';
    position: absolute;
    left: 0; right: 0;
    top: -12px;
    height: 12px;
    background: transparent;
    pointer-events: auto;
  }
}

/* Header Round 9 — kill the dropdown gap entirely (bulletproof hover)
   The Round 8 bridge depended on the parent <li> being tall enough that the
   cursor can't slip out of :hover before reaching the bridge. In practice the
   <a class="elementor-item"> doesn't fill the full <li> height and a cursor
   moving fast can exit the hover area between the <a> bottom and the <li>
   bottom. Cleaner fix: no gap. The dropdown sits flush against the trigger,
   so there's literally nothing for the cursor to cross.
   ------------------------------------------------------------------------- */

@media (min-width: 1025px) {
  /* Remove the 12px offset and the bridge — dropdown is flush against trigger */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children.nexgen-submenu-open > .sub-menu {
    top: 100% !important;
    margin-top: 0 !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu::before {
    display: none !important;
  }

  /* Add a top padding-buffer INSIDE the panel for visual breathing room.
     The buffer is part of the panel's hover area, so it stays bridgeable. */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children.nexgen-submenu-open > .sub-menu {
    padding: 12px 8px 8px 8px !important;
  }
}

/* Shop mega-menu v2 — beat Round 6–9 global .sub-menu rules when the light
   panel class is present. Without these, the old 3-col navy grid leaks in.
   ------------------------------------------------------------------------- */
@media (min-width: 1025px) {
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .sub-menu {
    margin-top: 0 !important;
    overflow: visible !important;
  }

  /* Panel positioning when open — JS class only (never :hover; see note above
     about the fixed-position descendant sticky-hover trap).
     NOTE: intentionally no `transform` here — the open/visible rules near the
     top of the file own the slide-in transform so the fade isn't snapped. */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children.nexgen-submenu-open > .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    display: grid !important;
    top: var(--nexgen-header-offset, 88px) !important;
    left: 0 !important;
    width: 100% !important;
    padding: 40px max(32px, calc((100vw - 1100px) / 2)) 28px !important;
  }

  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children.nexgen-submenu-open > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu {
    display: block !important;
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    transform: none !important;
    grid-template-columns: none !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  /* Beat v2 single-column reset for US Finished 2-col formats|goals grid */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us:hover > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us:focus-within > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us.nexgen-submenu-open > .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.nexgen-shop-col-us > .sub-menu {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: dense !important;
    align-items: start !important;
    gap: 0 24px !important;
  }

  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu > li.menu-item-has-children > .sub-menu::before {
    display: none !important;
  }
}
/* ===== /Shop mega-menu v2 overrides ===================================== */

/* Header Round 10 — caret spacing + JS hover-delay support
   The dropdown was closing the instant the cursor exited the SHOP <a>'s box
   because Elementor's pure-CSS :hover trigger doesn't span the visual gap to
   the dropdown. The fix is JS: on mouseenter add `.nexgen-submenu-open`,
   on mouseleave start a 200ms close timer (cancelled if cursor re-enters
   the <li> or sub-menu). The class triggers the same display:grid CSS that
   :hover already does. JS shim is appended via add_action('wp_footer').

   Caret/sub-arrow: the .elementor-sub-item-toggle (or ::after caret) on the
   SHOP item creates extra whitespace to the right of "SHOP" so the spacing
   rhythm between HOME/SHOP/ABOUT US looks uneven. Tighten its margin/padding
   so the caret hugs the SHOP text.
   ------------------------------------------------------------------------- */

/* Caret/sub-arrow siblings only — do NOT zero padding on the SHOP <a>
   (.has-submenu). That collapsed Shop→About vs About→COA/FAQ gaps. */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-sub-item-toggle,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .sub-arrow {
  margin: 0 !important;
  padding: 0 !important;
}

/* Mobile drawer: keep Shop row padding aligned with sibling drawer links. */
@media (max-width: 1024px) {
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item-anchor.elementor-item.has-submenu {
    padding: 16px 20px !important;
    margin: 0 !important;
  }
}
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-item.has-submenu::after,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item::after {
  margin-left: 4px !important;
  color: var(--white-90) !important;
  font-size: 10px !important;
  transition: color var(--dur-micro) var(--ease-soft);
}
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children:hover > .elementor-item::after,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children.nexgen-submenu-open > .elementor-item::after {
  color: var(--accent-gold) !important;
}

/* Header Round 12 — hide SHOP caret without breaking the pointer underline
   Round 11 hid the ::after pseudo-element on .menu-item-has-children >
   .elementor-item, but that's the SAME pseudo-element Elementor uses for the
   "grow" pointer (gold underline) animation — so it killed the hover state.
   Round 12 only targets ELEMENT-based carets (sibling <a>/<span>/<i>),
   never the pseudo. If the pointer pseudo doubles as a caret in this
   Elementor build, we set its content to '' explicitly so the icon glyph
   doesn't render but the pointer animation can still drive the bg color.
   ------------------------------------------------------------------------- */

/* Element-based caret variants (separate sibling, not pseudo) */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .sub-arrow,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-sub-item-toggle,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-menu-toggle,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item .sub-arrow,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item > .elementor-menu-toggle,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item > .elementor-menu-toggle__icon,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item > i.fa,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item > i.fas,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item > i.eicon-caret-down {
  display: none !important;
  width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Equalize SHOP's <a> padding to match ABOUT US/COA/FAQ (same as top-level rule).
   Include .has-submenu so no older caret rule can zero desktop Shop padding. */
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > .elementor-item,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu .menu-item-has-children > a.elementor-item,
.nexgen-header .nexgen-header-nav .nexgen-nav-menu a.elementor-item-anchor.elementor-item.has-submenu {
  padding: 8px 12px !important;
  margin: 0 !important;
}

/* Header Round 13 — mobile hamburger reposition + drawer panel
   Closed: pin the hamburger column to the right edge so it sits next to the
   cart/search icons instead of floating mid-header.
   Open: convert the dropdown into a full-width vertical drawer below the
   sticky header. Round 2's blanket display:flex on .elementor-nav-menu
   leaked into the dropdown <ul>, forcing items into a thin horizontal strip;
   override that here with a column-direction rule scoped to the dropdown.
   ------------------------------------------------------------------------- */

@media (max-width: 1024px) {
  /* --- Closed: dock hamburger at the right edge ----------------------- */

  /* Move nav column to last visual position so layout becomes:
     logo | cart+search | hamburger. */
  .nexgen-header-nav { order: 99 !important; }

  /* Shrink nav column + CTA to content width; logo grows to fill the gap. */
  .nexgen-header-nav,
  .nexgen-header-cta {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
  }
  .nexgen-header-logo { flex: 1 1 auto !important; }

  .nexgen-header-nav .elementor-widget-nav-menu,
  .nexgen-header-nav .elementor-widget-nav-menu > .elementor-widget-container {
    width: auto !important;
    margin: 0 !important;
  }

  /* --- Open: full-width vertical drawer panel ------------------------- */

  /* Pin to viewport edges via position:fixed — the dropdown stops inheriting
     position from the now-tiny nav column on the right. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed !important;
    top: 64px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    background-color: var(--off-white) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 12px !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(0, 0, 0, 0.06);
    max-height: calc(100vh - 88px) !important;
    overflow-y: auto !important;
    z-index: 9999 !important;
  }

  /* Run the slide-in only when the drawer is actually open. Without the
     [aria-hidden="false"] guard, Elementor's close handler caused the
     animation to re-fire from opacity:0 during slideUp, producing a
     disappear → flash-back → disappear sequence on close. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] {
    animation: nexgenMobileDrawerIn var(--dur-hover) var(--ease-soft);
  }

  /* Tablet (768-1024) header is 80px; drawer top must follow. */
  @media (min-width: 768px) {
    .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
      top: 80px !important;
      max-height: calc(100vh - 104px) !important;
    }
  }

  /* Force items <ul> to stack vertically — antidote to Round 2's blanket
     display:flex (lines 493-499) without touching that desktop-load-bearing rule. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container ul.elementor-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container li.menu-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    padding: 16px 20px !important;
    min-height: 48px !important;
    color: var(--near-black) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
    transition-property: color, background-color !important;
    transition-duration: var(--dur-micro) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.menu-item:last-child > a.elementor-item {
    border-bottom: none !important;
  }
}

@keyframes nexgenMobileDrawerIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    animation: none !important;
  }
}

/* Header Round 14 — hide "My Account" nav item from the inline desktop nav (NGS-45).
   Item is added to main-menu-primary via scripts/add-mobile-account-menu-item.php
   so it appears in the mobile hamburger dropdown (≤1024px). Desktop ≥1025px
   already has the dedicated .nexgen-header-account button to the right of the
   nav, so suppress the duplicate from the inline horizontal menu. */
@media (min-width: 1025px) {
  /* Hide duplicate My Account in desktop inline nav (button exists in header). */
  .nexgen-header-nav .elementor-nav-menu--main li.nexgen-menu-account {
    display: none !important;
  }
}

/* Header Round 15 — make-interfaces-feel-better polish (mobile drawer + desktop nav)
   Backdrop scrim, scroll lock (JS), transition-based drawer open/close, row
   stagger, mobile Shop accordion styling, hamburger icon cross-fade, 40px hit
   areas, scale-on-press, focus-visible rings, megamenu figure outlines.
   ------------------------------------------------------------------------- */

/* Mobile nav backdrop — toggled via .is-visible in initMobileDrawer() */
.nexgen-mobile-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 998;
  background-color: rgba(6, 14, 34, 0.55);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-hover) var(--ease-soft);
}
.nexgen-mobile-nav-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}
html.nexgen-drawer-scroll-lock {
  overflow: hidden !important;
}

@media (max-width: 1024px) {
  /* Position (top / max-height) stays in Header Round 13 — do not override here. */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    border: none !important;
    box-shadow:
      0 24px 60px rgba(0, 0, 0, 0.14),
      0 0 0 1px rgba(0, 0, 0, 0.06) !important;
    opacity: 0 !important;
    transform: translateY(-8px) !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition-property: opacity, transform, visibility !important;
    transition-duration: var(--dur-hover) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] {
    animation: none !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    visibility: visible !important;
    pointer-events: auto !important;
    -webkit-tap-highlight-color: transparent;
  }

  /* In-drawer header — close control (JS injects .nexgen-mobile-drawer-header) */
  .nexgen-mobile-drawer-header {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }
  .nexgen-mobile-drawer-header.is-visible {
    display: flex;
  }
  .nexgen-mobile-drawer-title {
    font-family: 'Outfit', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--near-black) !important;
  }
  .nexgen-mobile-drawer-close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--near-black) !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 28px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transition-property: color, background-color, transform !important;
    transition-duration: var(--dur-micro) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  .nexgen-mobile-drawer-close:hover {
    color: var(--accent-gold) !important;
    background-color: rgba(0, 0, 0, 0.04) !important;
  }
  .nexgen-mobile-drawer-close:active {
    transform: scale(0.96) !important;
  }
  .nexgen-mobile-drawer-close:focus-visible {
    outline: 2px solid var(--accent-gold) !important;
    outline-offset: 2px !important;
  }

  /* Stagger top-level drawer rows once open */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li.menu-item {
    opacity: 0;
    transform: translateY(6px);
    transition-property: opacity, transform;
    transition-duration: 320ms;
    transition-timing-function: var(--ease-soft);
    transition-delay: calc(var(--i, 0) * 80ms);
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container[aria-hidden="false"] > ul > li.menu-item {
    opacity: 1;
    transform: none;
  }

  /* Hamburger — 40px hit area + icon cross-fade (open/close SVG both in DOM) */
  .nexgen-header-nav .elementor-menu-toggle {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
  }
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--open,
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close {
    position: absolute;
    transition-property: opacity, transform, filter;
    transition-duration: var(--dur-micro);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
  }
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--open {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close {
    opacity: 0;
    transform: scale(0.25);
    filter: blur(4px);
  }
  .nexgen-header-nav .elementor-menu-toggle[aria-expanded="true"] {
    color: var(--accent-gold) !important;
  }
  .nexgen-header-nav .elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__icon--open {
    opacity: 0;
    transform: scale(0.25);
    filter: blur(4px);
  }
  .nexgen-header-nav .elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__icon--close {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
  }
  .nexgen-header-nav .elementor-menu-toggle:active {
    transform: scale(0.96) !important;
  }

  /* CTA icons — 40px targets + press feedback */
  .nexgen-header-search .elementor-icon,
  .nexgen-header-cart .elementor-menu-cart__toggle a,
  .nexgen-header-cart .elementor-menu-cart__toggle button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .nexgen-header-search .elementor-icon:active,
  .nexgen-header-cart .elementor-menu-cart__toggle a:active,
  .nexgen-header-cart .elementor-menu-cart__toggle button:active {
    transform: scale(0.96) !important;
  }

  /* Mobile Shop accordion — chevron, nested panels, sentence-case sub-links */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-arrow,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .elementor-sub-item-toggle {
    display: none !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown .menu-item-has-children > a.elementor-item,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown .menu-item-has-children > a.elementor-sub-item {
    display: inline-flex !important;
    align-items: center !important;
    width: 100% !important;
    justify-content: flex-start !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a.elementor-item-anchor::after,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a.has-submenu::after,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a.elementor-sub-item.has-submenu::after {
    content: '' !important;
    display: block !important;
    width: 7px !important;
    height: 7px !important;
    margin-left: auto !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    border-top: none !important;
    border-left: none !important;
    background: transparent !important;
    background-color: transparent !important;
    transform: rotate(45deg) !important;
    flex-shrink: 0 !important;
    transition-property: transform, color !important;
    transition-duration: var(--dur-micro) !important;
    transition-timing-function: var(--ease-soft) !important;
    opacity: 0.85 !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a[aria-expanded="true"]::after,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children.nexgen-submenu-open-mobile > a::after {
    transform: rotate(-135deg) !important;
    color: var(--accent-gold) !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu {
    background-color: rgba(0, 0, 0, 0.03) !important;
    border: none !important;
    border-left: 2px solid var(--accent-gold-dim) !important;
    border-radius: 0 8px 8px 0 !important;
    margin: 0 16px 8px 24px !important;
    padding: 4px 0 !important;
    box-shadow: none !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu .sub-menu {
    margin-left: 16px !important;
    border-left-color: rgba(201, 168, 76, 0.35) !important;
    border-radius: 0 6px 6px 0 !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu li > a {
    text-transform: none !important;
    letter-spacing: 0.15px !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    color: var(--near-black) !important;
    padding: 12px 20px 12px 24px !important;
    min-height: 48px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
    transition-property: color, background-color !important;
    transition-duration: var(--dur-micro) !important;
    transition-timing-function: var(--ease-soft) !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu li:last-child > a.elementor-sub-item {
    border-bottom: none !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item:hover,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item.elementor-item-active,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .sub-menu li > a:hover {
    background-color: rgba(0, 0, 0, 0.04) !important;
    color: var(--accent-gold) !important;
  }

  /* Beat Header Round 6 global navy dropdown rules on mobile */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown {
    background-color: var(--off-white) !important;
    border: none !important;
    border-radius: 12px !important;
  }

  /* Top-level drawer rows — light theme hover (beats Round 6 global navy rules) */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item {
    color: var(--near-black) !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item:hover,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item:focus,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item:focus,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.highlighted,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-item.highlighted,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown a.elementor-sub-item.highlighted {
    background-color: rgba(0, 0, 0, 0.04) !important;
    background: rgba(0, 0, 0, 0.04) !important;
    color: var(--accent-gold) !important;
  }
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children > a[aria-expanded="true"],
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown .menu-item-has-children.nexgen-submenu-open-mobile > a {
    background-color: rgba(201, 168, 76, 0.08) !important;
    background: rgba(201, 168, 76, 0.08) !important;
    color: var(--accent-gold) !important;
  }

  /* My Account — distinct action row at drawer bottom (NGS-45) */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account {
    margin-top: 4px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item {
    gap: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    color: var(--near-black) !important;
    background-color: rgba(201, 168, 76, 0.06) !important;
    border-bottom: none !important;
    border-radius: 0 0 12px 12px !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item::before {
    content: '' !important;
    display: block !important;
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1A17' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    opacity: 0.85 !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item:hover,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item:focus-visible,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item.elementor-item-active {
    color: var(--accent-gold) !important;
    background-color: rgba(201, 168, 76, 0.1) !important;
  }
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown li.nexgen-menu-account > a.elementor-item:active {
    transform: scale(0.96) !important;
  }

  /* Focus rings — drawer + toggle */
  .nexgen-header-nav .elementor-menu-toggle:focus-visible,
  .nexgen-mobile-drawer-close:focus-visible,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-item:focus-visible,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown a.elementor-sub-item:focus-visible,
  .nexgen-header-search .elementor-icon:focus-visible,
  .nexgen-header-cart .elementor-menu-cart__toggle a:focus-visible,
  .nexgen-header-cart .elementor-menu-cart__toggle button:focus-visible {
    outline: 2px solid var(--accent-gold) !important;
    outline-offset: 2px !important;
  }
}

@media (min-width: 1025px) {
  /* Desktop nav — min 40px row height + subtle press */
  .nexgen-header-nav .elementor-nav-menu a.elementor-item {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 40px !important;
  }
  .nexgen-header-nav .elementor-nav-menu a.elementor-item:active {
    transform: scale(0.98);
  }
  .nexgen-header-nav .elementor-nav-menu .menu-item-has-children > a[aria-expanded="true"] {
    color: var(--accent-gold) !important;
  }

  /* CTA press feedback */
  .nexgen-header-search .elementor-icon,
  .nexgen-header-cart .elementor-menu-cart__toggle a,
  .nexgen-header-cart .elementor-menu-cart__toggle button,
  .nexgen-header-account a.elementor-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .nexgen-header-search .elementor-icon:active,
  .nexgen-header-cart .elementor-menu-cart__toggle a:active,
  .nexgen-header-cart .elementor-menu-cart__toggle button:active,
  .nexgen-header-account a.elementor-button:active {
    transform: scale(0.96) !important;
  }

  /* Cart qty — tabular numerals prevent badge width jitter */
  .nexgen-header-cart .elementor-button-icon-qty,
  .nexgen-header-cart .elementor-menu-cart__toggle [class*="counter"] {
    font-variant-numeric: tabular-nums !important;
  }

  /* Dropdown depth — shadow stack over heavy borders */
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .elementor-nav-menu--dropdown,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu .sub-menu,
  .nexgen-header .nexgen-header-nav .nexgen-nav-menu ul.sub-menu {
    border: none !important;
    box-shadow:
      0 12px 32px rgba(0, 0, 0, 0.45),
      0 0 0 1px rgba(255, 255, 255, 0.08) !important;
  }

  /* Megamenu light panel — soft depth */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu {
    box-shadow:
      0 16px 40px rgba(0, 0, 0, 0.1),
      0 0 0 1px rgba(0, 0, 0, 0.06) !important;
  }

  /* Figure tile image outline + click feedback — hover/active owned by megamenu block above */
  .nexgen-shop-figure:focus-visible {
    outline: 2px solid var(--accent-gold) !important;
    outline-offset: 2px !important;
  }

  /* Megamenu footer / sub-links — min tap height */
  .nexgen-header .nexgen-header-nav .elementor-nav-menu > li.menu-item-has-children > .elementor-nav-menu--dropdown.nexgen-shop-megamenu .nexgen-shop-footer a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 40px !important;
  }

  /* Focus rings — desktop nav + CTAs */
  .nexgen-header-nav .elementor-nav-menu a.elementor-item:focus-visible,
  .nexgen-header-nav .elementor-nav-menu a.elementor-sub-item:focus-visible,
  .nexgen-header-search .elementor-icon:focus-visible,
  .nexgen-header-cart .elementor-menu-cart__toggle a:focus-visible,
  .nexgen-header-cart .elementor-menu-cart__toggle button:focus-visible,
  .nexgen-header-account a.elementor-button:focus-visible,
  .nexgen-shop-figure:focus-visible {
    outline: 2px solid var(--accent-gold) !important;
    outline-offset: 2px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-mobile-nav-backdrop,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container,
  .nexgen-header .nexgen-header-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul > li.menu-item,
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--open,
  .nexgen-header-nav .elementor-menu-toggle .elementor-menu-toggle__icon--close {
    transition: none !important;
    animation: none !important;
    transform: none !important;
    filter: none !important;
  }
  .nexgen-header-nav .elementor-menu-toggle:active,
  .nexgen-header-search .elementor-icon:active,
  .nexgen-header-cart .elementor-menu-cart__toggle a:active,
  .nexgen-header-cart .elementor-menu-cart__toggle button:active,
  .nexgen-header-account a.elementor-button:active,
  .nexgen-header-nav .elementor-nav-menu a.elementor-item:active,
  .nexgen-shop-figure:active {
    transform: none !important;
  }
}
/* ===== /Header Round 15 ================================================= */

/* --- Footer --- */

/* Footer outer wrapper — deep navy + grain texture */
.nexgen-footer-outer {
  background-color: var(--deep-navy) !important;
  padding: 0 0 48px 0 !important;
  margin-top: 0 !important;
  position: relative;
  overflow: hidden;
}
/* Kill the newsletter bar's compensating negative margin now that outer margin is 0 */
.nexgen-footer-newsletter {
  margin-top: 0 !important;
}

/* Footer content grid — link columns + brand pillars */
.nexgen-footer-content {
  max-width: 1280px;
  margin: 0 auto;
}
.nexgen-footer-content .elementor-icon-list-text {
  transition: color 0.25s ease;
}

/* Brand stamp container — logo image + pillars tagline */
.nexgen-footer-brandstamp {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 32px 24px 12px 24px !important;
  gap: 24px !important;
  overflow: hidden !important;
  width: 100% !important;
}
/* "NG SYNDICATE" brand stamp — logo image */
.nexgen-brandstamp-ng {
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
.nexgen-brandstamp-ng .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-brandstamp-ng img {
  width: calc(100% - 48px) !important;
  max-width: 1200px !important;
  height: auto !important;
  margin: 0 auto !important;
  display: block !important;
}
/* Brand pillars tagline — spaced below logo */
.nexgen-footer-pillars {
  width: 100% !important;
  margin: 0 !important;
  margin-top: 24px !important;
  padding: 0 !important;
}
.nexgen-footer-pillars .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-footer-pillars .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 20px !important;
  letter-spacing: 8px !important;
  text-transform: uppercase !important;
  text-align: center !important;
  color: var(--accent-gold) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Footer divider — gradient fade */
.nexgen-footer-divider .elementor-divider-separator {
  background: linear-gradient(90deg, transparent, var(--white-12), transparent) !important;
  border: none !important;
  height: 1px !important;
}

/* Footer copyright */
.nexgen-footer-copyright {
  text-align: center;
}
.nexgen-footer-copyright .elementor-text-editor {
  color: var(--white-30) !important;
  font-size: 14px !important;
}

/* --- Newsletter: "Enlist in the Syndicate" ----------------------------------
   Footer Post 107, container 04e923a. Structure built idempotently by
   scripts/redesign-newsletter-enlist.php — re-run after any DB push.
   Reuses: .nexgen-grain (texture), .nexgen-trust-seal pattern (scaled wax seal),
           .nexgen-fade-in motion variants, FDA-card glassmorphism, primary button.
   -------------------------------------------------------------------------- */

/* Outer section — midnight bg + stacked gradients (dual glow + top/bottom rules)
   No pseudo-elements used here — .nexgen-grain::before already owns ::before for
   texture, and ::after is reserved for success-state fade. Four background
   layers give us glow + gold hairlines without extra DOM. */
.nexgen-footer-newsletter.nexgen-newsletter-enlist {
  background-color: var(--midnight) !important;
  background-image:
    radial-gradient(ellipse at 18% 28%, var(--blue-glow), transparent 55%),
    radial-gradient(ellipse at 85% 75%, var(--accent-gold-glow), transparent 60%),
    linear-gradient(90deg, transparent, var(--accent-gold-dim), transparent),
    linear-gradient(90deg, transparent, var(--accent-gold-dim), transparent);
  background-position: 0 0, 0 0, 0 0, 0 100%;
  background-size: auto, auto, 100% 1px, 100% 1px;
  background-repeat: no-repeat;
  padding: 96px 24px !important;
  margin: 0 !important;
  position: relative;
  overflow: hidden;
  width: 100%;
}

/* Two-column grid on .e-con-inner (Elementor's content wrapper) */
.nexgen-footer-newsletter.nexgen-newsletter-enlist > .e-con-inner {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 72px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}

/* Left column: copy stack ---------------------------------------------------- */
.nexgen-newsletter-left {
  position: relative;
  padding: 0 !important;
}
.nexgen-newsletter-left > .e-con-inner {
  padding: 0 !important;
  gap: 20px !important;
  max-width: none !important;
  align-items: flex-start !important;
}

/* Wax seal — reuses .nexgen-trust-seal structure, scaled to 92px, slow rotate */
.nexgen-newsletter-seal {
  position: absolute !important;
  top: -8px;
  right: 8px;
  width: 92px !important;
  height: 92px !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 3;
  pointer-events: none;
}
.nexgen-newsletter-seal > .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}
.nexgen-newsletter-seal-inner {
  position: relative;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%,
    var(--accent-gold-bright) 0%,
    var(--accent-gold) 55%,
    #8a7633 100%);
  box-shadow:
    0 8px 24px rgba(0,0,0,0.5),
    inset 0 2px 4px rgba(255,255,255,0.30),
    inset 0 -4px 10px rgba(0,0,0,0.25);
  display: grid;
  place-items: center;
  overflow: visible;
}
.nexgen-newsletter-seal-ring {
  position: absolute;
  inset: 5px;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  animation: nexgen-newsletter-seal-rotate 18s linear infinite;
}
.nexgen-newsletter-seal-ring text {
  font-family: 'Outfit', sans-serif;
  font-size: 7.5px;
  font-weight: 600;
  letter-spacing: 2px;
  fill: var(--midnight);
  text-transform: uppercase;
}
.nexgen-newsletter-seal-monogram {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 24px;
  letter-spacing: 1px;
  color: var(--midnight);
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}
@keyframes nexgen-newsletter-seal-rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .nexgen-newsletter-seal-ring { animation: none; }
}

/* Eyebrow — Tier 4 Outfit 600 gold uppercase */
.nexgen-newsletter-eyebrow {
  margin: 0 !important;
  padding: 0 !important;
  max-width: calc(100% - 110px);  /* keep eyebrow clear of the seal */
}
.nexgen-newsletter-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* Headline — Tier 1b Cormorant Garamond 600 */
.nexgen-newsletter-headline {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(32px, 4.2vw, 52px) !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--white) !important;
  margin: 0 !important;
  max-width: 520px;
}

/* Sub-headline — Outfit 400, muted */
.nexgen-newsletter-sub {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-sub .elementor-widget-container,
.nexgen-newsletter-sub p {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-sub p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: var(--white-60) !important;
  max-width: 480px;
}

/* Value checklist — Azo Sans with gold checkmark bullets */
.nexgen-newsletter-values {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-values .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-values ul {
  list-style: none !important;
  margin: 8px 0 0 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nexgen-newsletter-values li {
  position: relative;
  padding-left: 28px;
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--white-90) !important;
  max-width: 500px;
}
.nexgen-newsletter-values li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 5px;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A84C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* Right column: glassmorphism form card -------------------------------------- */
.nexgen-newsletter-form-card {
  background: rgba(255, 255, 255, 0.04) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  padding: 36px !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4) !important;
  position: relative;
  overflow: hidden;
}
.nexgen-newsletter-form-card > .e-con-inner {
  padding: 0 !important;
  gap: 14px !important;
  max-width: none !important;
}
/* Gold glint stripe across top of form card */
.nexgen-newsletter-form-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
  opacity: 0.7;
  pointer-events: none;
}

/* MC4WP form wrapper — reset + flex layout */
.nexgen-newsletter-form-wrap {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-form-wrap .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-form-wrap .mc4wp-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
}
.nexgen-newsletter-form-wrap .mc4wp-form-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-label {
  display: block;
  margin: 0;
  padding: 0;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
  padding: 0;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--white-60) !important;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 1px 0 0 0;
  accent-color: var(--accent-gold);
  flex: 0 0 16px;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent span {
  display: block;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent a,
.nexgen-newsletter-privacy a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
}
.nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent a:hover,
.nexgen-newsletter-privacy a:hover {
  color: var(--accent-gold-bright) !important;
}

/* Email input — per design.md Form Inputs on dark */
.nexgen-newsletter-form-wrap input[type="email"] {
  width: 100%;
  height: 52px;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 0 18px !important;
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 16px !important;
  color: var(--white-90) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.nexgen-newsletter-form-wrap input[type="email"]::placeholder {
  color: var(--white-30);
  font-family: 'Azo Sans', sans-serif;
}
.nexgen-newsletter-form-wrap input[type="email"]:hover {
  border-color: var(--white-30) !important;
  background: rgba(255,255,255,0.08) !important;
}
.nexgen-newsletter-form-wrap input[type="email"]:focus {
  outline: none;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 0 0 2px rgba(201, 168, 76, 0.25);
  background: rgba(255,255,255,0.08) !important;
}

/* Submit button — primary spec per design.md + gold arrow */
.nexgen-newsletter-form-wrap input[type="submit"] {
  width: 100%;
  height: 52px;
  background: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 0 24px !important;
  cursor: pointer;
  transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
  /* Append a gold arrow — use a pseudo trick via a sibling or background-image */
  position: relative;
}
.nexgen-newsletter-form-wrap input[type="submit"]:hover {
  background: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.4), 0 0 20px var(--accent-gold-glow);
  transform: translateY(-1px);
}
.nexgen-newsletter-form-wrap input[type="submit"]:active {
  transform: translateY(0);
}
/* Gold arrow overlay — positioned relative to the form via a ::after on the form */
.nexgen-newsletter-form-wrap .mc4wp-form::after {
  content: '→';
  position: absolute;
  right: 24px;
  bottom: 18px;
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  font-weight: 600;
  pointer-events: none;
  transition: transform 0.25s ease, color 0.25s ease;
}
.nexgen-newsletter-form-wrap .mc4wp-form { position: relative; }
.nexgen-newsletter-form-wrap .mc4wp-form:hover::after {
  transform: translateX(3px);
  color: var(--accent-gold-bright);
}

/* MC4WP response messages — styled to blend with the form card */
.nexgen-newsletter-form-wrap .mc4wp-response {
  margin-top: 8px;
  font-family: 'Azo Sans', sans-serif;
  font-size: 13px;
  color: var(--white-60);
}
.nexgen-newsletter-form-wrap .mc4wp-alert p {
  margin: 0;
  padding: 8px 12px;
  border-radius: 6px;
}
.nexgen-newsletter-form-wrap .mc4wp-success p {
  background: rgba(201, 168, 76, 0.12);
  border: 1px solid var(--accent-gold-dim);
  color: var(--accent-gold);
}
.nexgen-newsletter-form-wrap .mc4wp-error p {
  background: rgba(197, 51, 58, 0.12);
  border: 1px solid rgba(197, 51, 58, 0.4);
  color: var(--heritage-red);
}

/* Privacy micro-copy */
.nexgen-newsletter-privacy {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-privacy .elementor-widget-container,
.nexgen-newsletter-privacy p {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-newsletter-privacy p {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  color: var(--white-30) !important;
  letter-spacing: 0.3px;
  text-align: center;
  margin-top: 4px !important;
}

/* Post-submit success state — JS toggles .nexgen-newsletter-enlisted on form-card
   (see JS block at end of file). Fades out form, fades in Cormorant italic. */
.nexgen-newsletter-form-card.nexgen-newsletter-enlisted .nexgen-newsletter-form-wrap,
.nexgen-newsletter-form-card.nexgen-newsletter-enlisted .nexgen-newsletter-privacy {
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
  position: absolute;
  inset: 36px;
}
.nexgen-newsletter-success {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease 0.2s, transform 0.5s ease 0.2s;
  text-align: center;
  pointer-events: none;
}
.nexgen-newsletter-form-card.nexgen-newsletter-enlisted .nexgen-newsletter-success {
  opacity: 1;
  transform: translateY(0);
}
.nexgen-newsletter-success-rule {
  width: 72px;
  height: 2px;
  margin: 0 auto 18px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
}
.nexgen-newsletter-success-heading {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 26px;
  color: var(--accent-gold);
  line-height: 1.2;
  margin: 0 0 8px 0;
}
.nexgen-newsletter-success-sub {
  font-family: 'Azo Sans', sans-serif;
  font-size: 14px;
  color: var(--white-60);
  line-height: 1.5;
  margin: 0;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}

/* --- Newsletter responsive -------------------------------------------------- */
@media (max-width: 1024px) {
  .nexgen-footer-newsletter.nexgen-newsletter-enlist {
    padding: 72px 24px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-enlist > .e-con-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .nexgen-newsletter-seal {
    top: -16px;
    right: 0;
    width: 80px !important;
    height: 80px !important;
  }
  .nexgen-newsletter-seal-inner { width: 80px; height: 80px; }
  .nexgen-newsletter-seal-monogram { font-size: 22px; }
  .nexgen-newsletter-eyebrow { max-width: calc(100% - 96px); }
  .nexgen-newsletter-headline .elementor-heading-title {
    font-size: clamp(28px, 5vw, 42px) !important;
  }
  .nexgen-newsletter-form-card { padding: 28px !important; }
}
@media (max-width: 768px) {
  .nexgen-footer-newsletter.nexgen-newsletter-enlist {
    padding: 56px 20px !important;
  }
  .nexgen-newsletter-seal {
    position: relative !important;
    top: 0;
    right: auto;
    margin: 0 0 8px !important;
  }
  .nexgen-newsletter-eyebrow { max-width: 100%; }
  .nexgen-newsletter-headline .elementor-heading-title { font-size: 32px !important; }
  .nexgen-newsletter-sub p { font-size: 15px !important; }
  .nexgen-newsletter-form-card { padding: 24px !important; }
  .nexgen-newsletter-form-wrap input[type="email"],
  .nexgen-newsletter-form-wrap input[type="submit"] { height: 48px; }
}
@media (max-width: 428px) {
  .nexgen-footer-newsletter.nexgen-newsletter-enlist { padding: 48px 16px !important; }
  .nexgen-newsletter-headline .elementor-heading-title { font-size: 28px !important; }
  .nexgen-newsletter-values li { font-size: 14px !important; }
  .nexgen-newsletter-form-card { padding: 20px !important; }
  .nexgen-newsletter-seal { width: 72px !important; height: 72px !important; }
  .nexgen-newsletter-seal-inner { width: 72px; height: 72px; }
  .nexgen-newsletter-seal-monogram { font-size: 20px; }
}

/* --- Homepage Sections --- */
/* ==========================================================================
   All selectors use named CSS classes only — no Elementor element IDs.
   ========================================================================== */

/* ---------- Section 1: Hero — nexgen-section-hero ---------- */
/* Section height adapts to the image-slide's aspect ratio so background-size:
   cover fits the v3 banner exactly — no horizontal cropping (which clipped
   "USA" / "LONGEVITY" on the left edge) and no vertical dead space (which the
   prior @media (max-width:428px) `contain` rule introduced).
   Desktop image: 1584x672 → ratio 2.357 (calc(100vw / 2.357) sets section height)
   Mobile image:  1076x992 → ratio 1.085 (set inside the 768px media query)
   85vh is kept as a CEILING so very wide displays don't grow the hero past
   viewport — `min()` picks the smaller of the two. */
.nexgen-section-hero {
  background-color: var(--midnight);
  /* !important is required — Elementor sets min-height inline via CSS var */
  min-height: min(85vh, calc(100vw / 2.357)) !important;
  position: relative;
  overflow: hidden;
}
/* Image + video slides (Elementor inline min_height: 85vh) — match section
   so the carousel doesn't grow taller than the image slide and leave a
   midnight gap below the image. The video uses object-fit: contain so it
   letterboxes inside the shorter container — safe to shrink. */
.nexgen-section-hero .nexgen-hero-image-slide,
.nexgen-section-hero .nexgen-hero-video-slide {
  min-height: min(85vh, calc(100vw / 2.357)) !important;
  height: auto !important;
}
/* Blue glow radial behind slides */
.nexgen-section-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 30%, var(--blue-glow), transparent 70%);
}
.nexgen-section-hero > * {
  position: relative;
  z-index: 1;
}

/* Hero banner slide — clean background, Elementor image shows through */
.nexgen-hero-image-slide {
  position: relative;
  overflow: hidden;
}
/* NGS-25 bundle promo slide — portrait mobile artwork has the "MIX AND MATCH
   SAVINGS" eyebrow at the very top edge. Default "cover + center center"
   crops it off (image aspect 0.81 < slide aspect ~0.87 on 390x450 mobile).
   Anchor to top so the eyebrow survives. Selector must beat the existing
   `.nexgen-section-hero .nexgen-hero-image-slide` rule a few lines down
   that pins background-position: center center !important at max-width 768.
   Desktop is unaffected — landscape artwork overflows horizontally only. */
@media (max-width: 768px) {
  .nexgen-section-hero .nexgen-hero-image-slide.nexgen-hero-bundle-promo {
    background-position: 50% 0% !important;
  }
}
/* NGS-63 Memorial Day sale slide. Artwork must use the canonical hero
   dimensions (desktop 1584x672, mobile 1076x992) so it can share the same
   carousel height as the rest of the image slides. Do not add a per-slide
   min-height here; that makes later slides appear shifted up above the
   marquee. */
.nexgen-section-hero .nexgen-hero-image-slide.nexgen-hero-memorial-day-sale {
  background-position: center center !important;
  background-size: cover !important;
}
.nexgen-hero-memorial-day-sale .nexgen-hero-sale-code {
  position: absolute;
  right: clamp(32px, 9vw, 150px);
  bottom: clamp(34px, 5vw, 72px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 14px 26px;
  border: 1px solid rgba(201, 168, 76, 0.55);
  border-radius: 10px;
  background: rgba(6, 14, 34, 0.68);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.34);
  color: #FFFFEB;
  font-family: 'Outfit', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 1.6px;
  line-height: 1;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.nexgen-hero-memorial-day-sale .nexgen-hero-sale-code strong {
  color: var(--accent-gold);
  font-size: 25px;
  letter-spacing: 2.5px;
}
/* NGS-154 July 4 sale slide. Artwork must use the canonical hero
   dimensions (desktop 1584x672, mobile 1076x992). Copy is baked into
   the PNG — no overlay widget. */
.nexgen-section-hero .nexgen-hero-image-slide.nexgen-hero-july-4-sale {
  background-position: center center !important;
  background-size: cover !important;
}
/* CTA overlay on hero banner — class is on the widget wrapper itself */
.nexgen-hero-cta {
  position: relative;
  z-index: 2;
  text-align: center;
}
.nexgen-hero-cta .elementor-button {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: 8px !important;
  padding: 16px 40px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.nexgen-hero-cta .elementor-button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 0 16px var(--accent-gold-glow) !important;
  transform: translateY(-2px) !important;
}

/* ---------- Section 2: Best Sellers — nexgen-section-best-sellers ---------- */
.nexgen-section-best-sellers {
  background-color: var(--midnight) !important;
  padding-top: 80px;
  padding-bottom: 80px;
  position: relative;
  overflow: hidden;
}
/* Grain */
.nexgen-section-best-sellers::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
/* Blue glow rising from top */
.nexgen-section-best-sellers::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 0%, var(--blue-glow), transparent 60%);
}
.nexgen-section-best-sellers > * {
  position: relative;
  z-index: 1;
}
/* Centered header stack */
.nexgen-bestseller-header {
  text-align: center !important;
}
.nexgen-section-best-sellers .nexgen-premium-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 48px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.5px !important;
  color: var(--off-white) !important;
}
.nexgen-section-best-sellers .elementor-widget-heading .elementor-heading-title {
  color: var(--off-white) !important;
}

/* "View More Products" button spacing when below grid */
.nexgen-section-best-sellers > .e-con-inner > .elementor-widget-button {
  margin-top: 40px !important;
}
.nexgen-section-best-sellers .elementor-widget-button .elementor-button {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: 8px !important;
  padding: 16px 40px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.nexgen-section-best-sellers .elementor-widget-button .elementor-button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 0 16px var(--accent-gold-glow) !important;
  transform: translateY(-2px) !important;
}

/* ---------- Product Cards — nexgen-product-card ---------- */
/* Applied to loop template container. Renders everywhere products appear. */
.nexgen-product-card {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  overflow: hidden;
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.nexgen-product-card:hover {
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.4), 0 0 20px var(--accent-gold-glow);
  transform: translateY(-4px);
}
/* Product image hover zoom */
.nexgen-product-card .elementor-widget-image img,
.nexgen-product-card .elementor-widget-woocommerce-product-images img {
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  border-radius: 8px;
}
.nexgen-product-card:hover .elementor-widget-image img,
.nexgen-product-card:hover .elementor-widget-woocommerce-product-images img {
  transform: scale(1.06);
}
/* Title: DIN CONDENSED → Outfit, fix invisible dark text */
.nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
.nexgen-product-card .elementor-widget-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  line-height: 1.35 !important;
}
/* Price: gold, Outfit */
.nexgen-product-card .elementor-widget-woocommerce-product-price .elementor-widget-container,
.nexgen-product-card .elementor-widget-woocommerce-product-price .woocommerce-Price-amount {
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 22px !important;
}
.nexgen-product-card .elementor-widget-woocommerce-product-price del {
  color: var(--white-30) !important;
  font-size: 16px !important;
}
/* Rating stars */
.nexgen-product-card .elementor-widget-woocommerce-product-rating .elementor-star-rating {
  color: var(--accent-gold) !important;
}
/* Pin Add to Cart button to bottom of card */
.nexgen-product-card .elementor-widget-woocommerce-product-add-to-cart,
.nexgen-product-card .elementor-widget-wc-add-to-cart {
  margin-top: auto !important;
}
/* Add to Cart button — primary CTA style */
.nexgen-product-card .elementor-widget-woocommerce-product-add-to-cart .button,
.nexgen-product-card .elementor-widget-wc-add-to-cart .elementor-button {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 12px 28px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
  transition: all 0.25s ease !important;
  width: 100%;
  text-align: center;
}
.nexgen-product-card .elementor-widget-woocommerce-product-add-to-cart .button:hover,
.nexgen-product-card .elementor-widget-wc-add-to-cart .elementor-button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35) !important;
  transform: translateY(-1px) !important;
}
/* "View Cart" link after add-to-cart */
.nexgen-product-card .added_to_cart {
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}

/* Dual CTA — "View Details →" ghost link below Add to Cart.
   Styled both for a raw <a class="nexgen-view-details"> (fallback) and for
   an Elementor Button widget with _css_classes="nexgen-view-details"
   (actual loop-template implementation). All button chrome is stripped so
   it renders as a centered gold text link with underline. */
.nexgen-product-card .nexgen-view-details,
.nexgen-view-details {
  display: block;
  margin-top: 12px;
  text-align: center;
}
.nexgen-product-card .nexgen-view-details a,
.nexgen-product-card .nexgen-view-details .elementor-button,
.nexgen-product-card .elementor-widget-button.nexgen-view-details .elementor-button {
  display: inline-block;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  text-transform: none !important;
  color: var(--accent-gold) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--accent-gold-dim) !important;
  text-underline-offset: 4px !important;
  transition: text-decoration-color 0.2s ease, color 0.2s ease !important;
}
.nexgen-product-card .nexgen-view-details a:hover,
.nexgen-product-card .nexgen-view-details .elementor-button:hover,
.nexgen-product-card .elementor-widget-button.nexgen-view-details .elementor-button:hover {
  text-decoration-color: var(--accent-gold) !important;
  color: var(--accent-gold-bright) !important;
  transform: none !important;
  background: transparent !important;
}
/* Card internal spacing */
.nexgen-product-card > .elementor-widget-wrap,
.nexgen-product-card > .e-con-inner {
  padding: 16px !important;
  gap: 10px !important;
}

/* ---------- Section 3: Stacks Banner — nexgen-section-stacks ---------- */
.nexgen-section-stacks {
  background-color: var(--midnight) !important;
  padding-top: 100px;
  padding-bottom: 100px;
  position: relative;
  overflow: hidden;
}
.nexgen-section-stacks::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
.nexgen-section-stacks::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 40%, var(--blue-glow), transparent 65%);
}
.nexgen-section-stacks > * {
  position: relative;
  z-index: 1;
}
.nexgen-stacks-inner {
  max-width: 90vw !important;
  margin: 0 auto !important;
  text-align: center;
}
.nexgen-stacks-banner {
  margin: 28px 0 44px !important;
}
.nexgen-stacks-banner img {
  width: 100% !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5), 0 0 80px rgba(26, 49, 120, 0.2) !important;
}
.nexgen-section-stacks .nexgen-premium-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 44px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.5px !important;
  color: var(--off-white) !important;
}
.nexgen-section-stacks .nexgen-stacks-desc {
  color: var(--white-60) !important;
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  max-width: 640px !important;
  margin: 0 auto 40px !important;
}
.nexgen-section-stacks .elementor-widget-button .elementor-button {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.nexgen-section-stacks .elementor-widget-button .elementor-button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 0 16px var(--accent-gold-glow) !important;
  transform: translateY(-2px) !important;
}
/* Stack product rows */
.nexgen-stack-rows {
  width: 100% !important;
  max-width: 960px !important;
  margin: 48px auto 40px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  border: 1px solid var(--accent-gold-dim) !important;
  background: var(--midnight) !important;
}
.nexgen-stack-rows > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.nexgen-stack-row {
  padding: 22px 32px !important;
  background: var(--white-06) !important;
  transition: all 0.3s ease !important;
}
.nexgen-stack-row > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 32px !important;
}
.nexgen-stack-row:not(:last-child) {
  border-bottom: 1px solid var(--accent-gold-dim) !important;
}
.nexgen-stack-row:hover {
  background: var(--white-12) !important;
}
/* Image column — half of row width */
.nexgen-stack-row-img,
.nexgen-stack-row > .e-con-inner > .elementor-widget-image {
  flex: 0 0 30% !important;
  width: 30% !important;
  max-width: 30% !important;
}
.nexgen-stack-row-img img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5) !important;
}
/* Right side — description on top, price+btn on bottom */
.nexgen-stack-row-right,
.nexgen-stack-row > .e-con-inner > .e-con {
  flex: 1 1 0% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}
.nexgen-stack-row-right > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  height: 100% !important;
  text-align: center !important;
}
.nexgen-stack-row-name .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 20px !important;
  color: var(--off-white) !important;
  letter-spacing: 0.3px !important;
  line-height: 1.3 !important;
  text-align: center !important;
  width: 100% !important;
}
.nexgen-stack-row-desc,
.nexgen-stack-row-desc .elementor-widget-container {
  color: var(--white-60) !important;
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}
.nexgen-stack-row-desc .elementor-widget-container p {
  text-align: center !important;
}
/* Price + Button footer row */
.nexgen-stack-row-footer,
.nexgen-stack-row-right > .e-con-inner > .e-con {
  width: 100% !important;
  max-width: none !important;
}
.nexgen-stack-row-footer,
.nexgen-stack-row-footer.e-con {
  --flex-direction: column !important;
  --align-items: center !important;
  --justify-content: center !important;
  flex-direction: column !important;
  align-items: center !important;
}
.nexgen-stack-row-footer > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
}
.nexgen-stack-row-price .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 22px !important;
  color: var(--accent-gold) !important;
  white-space: nowrap !important;
}
/* Primary button per design.md */
.nexgen-section-stacks .nexgen-stack-row-cta .elementor-button,
.nexgen-stack-row-cta .elementor-button {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
}
.nexgen-section-stacks .nexgen-stack-row-cta .elementor-button:hover,
.nexgen-stack-row-cta .elementor-button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35) !important;
  transform: translateY(-1px) !important;
}

/* ---------- Section 3a: Vials Marquee (NGS-173) — nexgen-section-vials-marquee ----------
   Latest Products band on midnight: ~5 larger cards visible, native horizontal
   scroll (trackpad/touch/wheel) + slow seamless auto-loop (JS scrollLeft wrap). */
.nexgen-section-vials-marquee {
  background-color: var(--midnight) !important;
  padding: 72px 0 48px !important;
  position: relative;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.nexgen-section-vials-marquee::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.05;
  mix-blend-mode: overlay;
}
.nexgen-section-vials-marquee::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 55% 50% at 18% 20%,
    rgba(26, 49, 120, 0.28) 0%,
    transparent 65%);
}
.nexgen-section-vials-marquee > * {
  position: relative;
  z-index: 1;
}
/* Tighten the Elementor Latest Products block directly below this test band */
.nexgen-section-vials-marquee + .nexgen-section-latest {
  padding-top: 36px !important;
  padding-bottom: 56px !important;
}
.nexgen-section-vials-marquee + .nexgen-section-latest .nexgen-premium-heading .elementor-heading-title {
  margin-bottom: 20px !important;
  font-size: 28px !important;
  opacity: 0.72;
}
.nexgen-vials-marquee-inner {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.nexgen-vials-marquee {
  width: 100%;
}
.nexgen-vials-marquee__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 32px;
  padding: 0 clamp(20px, 4vw, 48px) 18px;
}
.nexgen-vials-marquee__intro {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 640px;
}
.nexgen-vials-marquee__eyebrow {
  margin: 0 0 10px;
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 2.8px;
  text-transform: uppercase;
  text-wrap: balance;
}
.nexgen-vials-marquee__title {
  margin: 0 0 10px;
  color: var(--off-white);
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(32px, 3.6vw, 44px);
  line-height: 1.15;
  letter-spacing: 0.3px;
  text-wrap: balance;
}
.nexgen-vials-marquee__lede {
  margin: 0;
  max-width: 46ch;
  color: var(--white-60);
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.55;
  text-wrap: pretty;
}
/* Shop All — high-contrast on midnight (Elementor link color can mute gold).
   Resting: off-white on midnight (~17:1). Hover: midnight on solid gold. */
.nexgen-vials-marquee__cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0 22px;
  border: 1px solid var(--accent-gold) !important;
  border-radius: 4px;
  background: transparent !important;
  color: var(--off-white) !important;
  -webkit-text-fill-color: var(--off-white) !important;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  text-decoration: none !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
  transition-property: background-color, border-color, color, transform, box-shadow;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-vials-marquee__cta-label {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}
.nexgen-vials-marquee__cta:hover,
.nexgen-vials-marquee__cta:focus-visible {
  background: var(--accent-gold) !important;
  border-color: var(--accent-gold) !important;
  color: var(--midnight) !important;
  -webkit-text-fill-color: var(--midnight) !important;
  outline: none;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.12) inset,
    0 8px 20px rgba(0, 0, 0, 0.28);
}
.nexgen-vials-marquee__cta:active {
  transform: scale(0.96);
}
.nexgen-vials-marquee__trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  padding: 0 clamp(20px, 4vw, 48px) 22px;
}
.nexgen-vials-marquee__trust-item {
  color: var(--white-60);
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}
.nexgen-vials-marquee__trust-sep {
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent-gold-dim);
  flex: 0 0 auto;
}
/* Native horizontal scroll — trackpad / touch / wheel (JS maps vertical wheel).
   No scroll-snap: it fights the continuous auto-loop float. */
.nexgen-vials-marquee__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--accent-gold-dim) transparent;
  padding-bottom: 4px;
  outline: none;
}
.nexgen-vials-marquee__viewport:focus-visible {
  box-shadow: inset 0 0 0 2px var(--accent-gold-glow);
}
.nexgen-vials-marquee__viewport::-webkit-scrollbar {
  height: 6px;
}
.nexgen-vials-marquee__viewport::-webkit-scrollbar-track {
  background: transparent;
}
.nexgen-vials-marquee__viewport::-webkit-scrollbar-thumb {
  background: var(--accent-gold-dim);
  border-radius: 3px;
}
.nexgen-vials-marquee__track {
  display: flex;
  align-items: stretch;
  gap: 16px;
  width: max-content;
  padding: 4px clamp(20px, 4vw, 48px) 10px;
}
/* Two identical sets — JS wraps scrollLeft at first-set width for seamless loop */
.nexgen-vials-marquee__set {
  display: flex;
  align-items: stretch;
  gap: 16px;
  flex: 0 0 auto;
}
/* Larger image-led cards — ~5 visible on desktop (~18.5vw + gap) */
.nexgen-vials-marquee__card {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  width: clamp(220px, 18.5vw, 280px);
  height: 320px;
  text-decoration: none;
  color: var(--off-white);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  background: var(--deep-navy);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.04) inset,
    0 8px 22px rgba(0, 0, 0, 0.28);
  overflow: hidden;
  transition-property: border-color, transform, box-shadow;
  transition-duration: 0.22s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-vials-marquee__card:hover,
.nexgen-vials-marquee__card:focus-visible {
  border-color: var(--accent-gold-dim);
  transform: translateY(-2px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 12px 28px rgba(0, 0, 0, 0.42),
    0 0 0 1px rgba(201, 168, 76, 0.14);
  outline: none;
}
.nexgen-vials-marquee__card:focus-visible {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 0 0 2px var(--accent-gold-glow),
    0 12px 28px rgba(0, 0, 0, 0.42);
}
.nexgen-vials-marquee__card:active {
  transform: translateY(0) scale(0.96);
}
.nexgen-vials-marquee__media {
  position: relative;
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  overflow: hidden;
  background: var(--deep-navy);
}
.nexgen-vials-marquee__img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center;
  border-radius: 0 !important;
  outline: none !important;
  transition-property: transform, opacity;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-vials-marquee__card:hover .nexgen-vials-marquee__img,
.nexgen-vials-marquee__card:focus-visible .nexgen-vials-marquee__img {
  transform: scale(1.03);
}
.nexgen-vials-marquee__meta {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  flex: 0 0 auto;
  min-height: 76px;
  padding: 12px 14px 14px;
  text-align: left;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(6, 14, 34, 0.72);
  pointer-events: none;
}
.nexgen-vials-marquee__name {
  display: -webkit-box;
  max-width: 100%;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.25;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  color: var(--off-white);
  text-wrap: balance;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.nexgen-vials-marquee__meta-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}
.nexgen-vials-marquee__dose {
  display: block;
  min-width: 0;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.2;
  letter-spacing: 1.1px;
  color: var(--accent-gold);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nexgen-vials-marquee__price {
  display: block;
  flex: 0 0 auto;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: 0.2px;
  color: var(--white-90);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .nexgen-section-vials-marquee {
    padding: 52px 0 36px !important;
  }
  .nexgen-vials-marquee__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 14px;
  }
  .nexgen-vials-marquee__title {
    font-size: 30px;
  }
  .nexgen-vials-marquee__lede {
    font-size: 13px;
  }
  .nexgen-vials-marquee__trust {
    padding-bottom: 16px;
    gap: 8px 12px;
  }
  .nexgen-vials-marquee__card {
    width: min(72vw, 240px);
    height: 300px;
  }
  .nexgen-vials-marquee__meta {
    min-height: 70px;
    padding: 10px 12px 12px;
  }
  .nexgen-vials-marquee__name {
    font-size: 12px;
    letter-spacing: 0.8px;
  }
  .nexgen-vials-marquee__track,
  .nexgen-vials-marquee__set {
    gap: 12px;
  }
  .nexgen-section-vials-marquee + .nexgen-section-latest {
    padding-top: 24px !important;
    padding-bottom: 40px !important;
  }
}

/* ---------- Section 3b: Latest Products — nexgen-section-latest ---------- */
.nexgen-section-latest {
  background-color: var(--midnight) !important;
  padding-top: 80px;
  padding-bottom: 80px;
  position: relative;
  overflow: hidden;
}
.nexgen-section-latest::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
.nexgen-section-latest > * {
  position: relative;
  z-index: 1;
}
.nexgen-latest-inner {
  text-align: center;
}
.nexgen-section-latest .nexgen-premium-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 44px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.5px !important;
  color: var(--off-white) !important;
  margin-bottom: 40px !important;
}
/* Carousel navigation arrows */
.nexgen-section-latest .elementor-swiper-button {
  color: var(--off-white) !important;
}
.nexgen-section-latest .swiper-pagination-bullet {
  background: var(--white-30) !important;
}
.nexgen-section-latest .swiper-pagination-bullet-active {
  background: var(--accent-gold) !important;
}

/* ---------- Section 4: Trust / Lab Tested — nexgen-section-trust ---------- */
/* Editorial 2-col spread on midnight: left = copy stack + 3-stat strip in
   Bebas Neue, right = stylized cream lab-report document card (kept bright
   on purpose — it's the one lit element in a moody scene). The section
   itself leans darker/deeper than before so the cream card reads as
   atmospheric contrast instead of out-of-place brightness.
   Replaces the earlier "frosted glass card + product image" pattern. */

.nexgen-section-trust {
  background-color: var(--midnight) !important;
  padding-top: 120px;
  padding-bottom: 120px;
  position: relative;
  overflow: hidden;
}
/* Grain — slightly denser than default for tactile darkroom feel */
.nexgen-section-trust::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.09;
  mix-blend-mode: overlay;
}
/* Ambient blue-glow radial behind the headline (left third only) — gives
   the left column atmospheric depth without washing out the right side. */
.nexgen-section-trust::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 55% at 22% 45%,
    var(--blue-glow) 0%,
    rgba(26, 49, 120, 0.12) 35%,
    transparent 70%);
  mix-blend-mode: screen;
}
.nexgen-section-trust > * {
  position: relative;
  z-index: 1;
}

/* --- Wrapper chrome kill -------------------------------------------------
   The Elementor inner container (`.nexgen-trust-inner`, ID 1cf9149) used to
   carry the legacy .nexgen-trust-card treatment (bg, border, radius, padding).
   Those Elementor-native settings could linger as ghost chrome after we
   stripped the class. Reset to layout-only so only the section bg shows. */
.nexgen-section-trust .nexgen-trust-inner {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* --- Left column: editorial copy stack ---------------------------------- */
.nexgen-section-trust .nexgen-trust-eyebrow .elementor-heading-title {
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}
.nexgen-section-trust .nexgen-trust-eyebrow {
  margin-bottom: 20px !important;
}
.nexgen-section-trust .nexgen-trust-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(40px, 4.2vw, 56px) !important;
  line-height: 1.08 !important;
  color: var(--white) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin: 0 0 24px 0 !important;
}
.nexgen-section-trust .nexgen-trust-lead p,
.nexgen-section-trust .nexgen-trust-lead .elementor-widget-container {
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
  max-width: 480px;
  margin: 0 !important;
}
.nexgen-section-trust .nexgen-trust-lead {
  margin-bottom: 40px !important;
}

/* 3-stat metric strip (rendered inside an HTML widget: .nexgen-trust-stats) */
.nexgen-trust-stats {
  display: flex;
  align-items: flex-start;
  gap: 0;
  border-top: 1px solid var(--white-12);
  padding-top: 28px;
}
.nexgen-trust-stat {
  flex: 1;
  padding: 0 24px;
  border-left: 1px solid var(--white-12);
}
.nexgen-trust-stat:first-child {
  border-left: none;
  padding-left: 0;
}
.nexgen-trust-stat-num {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 54px;
  color: var(--accent-gold);
  line-height: 0.95;
  letter-spacing: 1.5px;
  margin-bottom: 12px;
  /* Tabular feel — the label-like "ISO 17025" variant needs the same optical weight as the "99.7%" numeric variant. Bebas's uppercase alphanumerics align well without opentype features. */
}
.nexgen-trust-stat-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--white-60);
}

/* Ghost CTA — "Browse the Full COA Library →"
   Sits below the stat strip on the left. Matches the design-system Ghost /
   Text Button pattern: gold, Outfit 500, subtle underline, arrow slides on
   hover. Deliberately quiet — this section is brand proof first, link second. */
.nexgen-trust-cta-wrap {
  margin-top: 32px;
}
.nexgen-trust-cta,
.nexgen-trust-cta:link,
.nexgen-trust-cta:visited,
.nexgen-section-trust .nexgen-trust-cta,
.nexgen-section-trust .nexgen-trust-cta span {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold) !important;    /* beats any cascading section/theme link color */
  text-decoration: none;
  background-image: none !important;        /* neutralize any lingering underline-reveal gradient */
  transition:
    color 0.25s ease,
    border-color 0.25s ease;
}
.nexgen-section-trust .nexgen-trust-cta span {
  display: inline;                           /* spans render inline, not as flex */
}
.nexgen-trust-cta {
  border-bottom: 1px solid var(--accent-gold-dim);
  padding-bottom: 4px;
}
.nexgen-trust-cta:hover,
.nexgen-trust-cta:focus-visible,
.nexgen-section-trust .nexgen-trust-cta:hover,
.nexgen-section-trust .nexgen-trust-cta:hover span,
.nexgen-section-trust .nexgen-trust-cta:focus-visible,
.nexgen-section-trust .nexgen-trust-cta:focus-visible span {
  color: var(--accent-gold-bright) !important;
  border-color: var(--accent-gold-bright);
}
.nexgen-trust-cta-arrow {
  display: inline-block;
  font-size: 16px;
  line-height: 1;
  transform: translateX(0);
  transition: transform 0.25s var(--ease-soft, ease);
}
.nexgen-trust-cta:hover .nexgen-trust-cta-arrow,
.nexgen-trust-cta:focus-visible .nexgen-trust-cta-arrow {
  transform: translateX(4px);
}

/* --- Right column: stylized lab-report document card ------------------- */
.nexgen-trust-doc-wrap {
  position: relative;
  max-width: 520px;
  margin-left: auto;
}
.nexgen-trust-doc {
  background: var(--cream);
  border-radius: 12px;
  padding: 0;
  /* Deep, moody shadow — plants the card on the midnight floor so the bright
     cream reads as "lit object in a dark room" instead of "floating box." */
  box-shadow:
    0 40px 90px -20px rgba(0,0,0,0.75),
    0 18px 40px -10px rgba(0,0,0,0.55),
    0 0 0 1px rgba(255,255,255,0.04);
  overflow: hidden;
  position: relative;
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
}
.nexgen-trust-doc-letterhead {
  background: var(--brand-blue);
  color: var(--white);
  padding: 18px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.nexgen-trust-doc-monogram {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 22px;
  letter-spacing: 1px;
  color: var(--accent-gold);
}
.nexgen-trust-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  padding: 16px 28px;
  border-bottom: 1px dashed rgba(0,0,0,0.12);
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--medium-gray);
  text-transform: uppercase;
}
.nexgen-trust-doc-meta strong {
  color: var(--near-black);
  font-weight: 600;
  margin-left: 6px;
  letter-spacing: 1px;
}
.nexgen-trust-doc-chart {
  padding: 22px 28px 6px;
}
.nexgen-trust-doc-chart svg {
  display: block;
  width: 100%;
  height: auto;
}
.nexgen-trust-doc-chart-caption {
  margin-top: 4px;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--warm-gray);
  text-align: right;
}

/* Animated purity trace — a gold "pen" draws the HPLC curve over 3.2s on
   scroll-in, and when it crests the tallest peak at ~63% of the path length
   (timed at ~2.5s from reveal) the PURITY 99.7% annotation fades + scales
   in. The whole sequence piggybacks on the existing .nexgen-visible state
   applied to .nexgen-trust-doc-wrap by the IntersectionObserver — no new JS.
   pathLength="1000" on the SVG path normalizes the dash math. */
.nexgen-trust-doc-chart-trace {
  fill: none;
  stroke: var(--accent-gold-bright);
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
}
.nexgen-trust-doc-wrap.nexgen-visible .nexgen-trust-doc-chart-trace {
  animation: nexgen-trust-chart-trace 3.2s linear 600ms 1 forwards;
}
@keyframes nexgen-trust-chart-trace {
  to { stroke-dashoffset: 0; }
}

.nexgen-trust-doc-chart-annot {
  opacity: 0;
  transform-origin: 320px 32px;
  transform: scale(0.85);
}
.nexgen-trust-doc-wrap.nexgen-visible .nexgen-trust-doc-chart-annot {
  animation: nexgen-trust-chart-annot 0.55s var(--ease-apple) 2500ms 1 forwards;
}
@keyframes nexgen-trust-chart-annot {
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-trust-doc-chart-trace { stroke-dashoffset: 0; animation: none; }
  .nexgen-trust-doc-chart-annot { opacity: 1; transform: none; animation: none; }
}

.nexgen-trust-doc-rows {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 32px;
  padding: 14px 28px 22px;
}
.nexgen-trust-doc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--near-black);
  font-weight: 500;
}
.nexgen-trust-doc-row svg {
  color: var(--accent-gold-bright);
  flex-shrink: 0;
}
.nexgen-trust-doc-sig {
  padding: 14px 28px 32px;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.nexgen-trust-doc-sig svg {
  display: block;
  margin-bottom: 6px;
  color: var(--near-black);
}
.nexgen-trust-doc-sig-name {
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--medium-gray);
}

/* Gold wax-seal overlay — absolute, overlaps the card's bottom-right edge */
.nexgen-trust-seal {
  position: absolute;
  right: -28px;
  bottom: -28px;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 35%,
      var(--accent-gold-bright) 0%,
      var(--accent-gold) 55%,
      #8a7633 100%);
  box-shadow:
    0 8px 24px rgba(0,0,0,0.5),
    inset 0 2px 4px rgba(255,255,255,0.30),
    inset 0 -4px 10px rgba(0,0,0,0.25);
  display: grid;
  place-items: center;
  z-index: 3;
  overflow: visible;
}
.nexgen-trust-seal .nexgen-trust-seal-ring {
  position: absolute;
  inset: 6px;
  width: calc(100% - 12px);
  height: calc(100% - 12px);
  /* Continuous rotation matches the newsletter "Enlist" seal pattern
     (18s linear infinite). The seal container itself stays still; only the
     ring SVG (with the perimeter text) rotates — so the center NG monogram
     stays upright. */
  animation: nexgen-trust-seal-rotate 18s linear infinite;
  transform-origin: 50% 50%;
}
.nexgen-trust-seal-ring text {
  font-family: 'Outfit', sans-serif;
  font-size: 7.5px;                  /* matches newsletter seal spec — cleaner at small scale than 8.5 */
  font-weight: 600;
  letter-spacing: 1px;               /* reduced — textLength stretches the phrase to circumference */
  fill: var(--midnight);
  text-transform: uppercase;
}
@keyframes nexgen-trust-seal-rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .nexgen-trust-seal .nexgen-trust-seal-ring { animation: none; }
}
.nexgen-trust-seal-monogram {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 30px;
  letter-spacing: 1px;
  color: var(--midnight);
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}

/* ========================================================================
   TRUST — variant "terminal" : QC log terminal panel (right column)
   ------------------------------------------------------------------------
   Technical, raw-receipts aesthetic. No fake-document metaphor — just a
   monospace verification stream rendered on near-black. Champagne gold for
   prompts + PASS marks, white tones for body text. Design intent: "we opened
   a window into the QC backend." Matches design.md DNA (earned confidence,
   dark/moody, gold accent) while using typography as the sole visual device.

   Active when the redesign-trust-section.php $variant flag is 'terminal'.
   Swap to 'cream-doc' in the script + re-run to restore the prior artifact.
   Cream-doc CSS above is kept intact for clean revert.
   ======================================================================== */

.nexgen-trust-log-wrap {
  position: relative;
  max-width: 560px;
  margin-left: auto;
  /* Give the terminal a hair of atmospheric halo so it "emits" on midnight */
  filter: drop-shadow(0 24px 48px rgba(0, 0, 0, 0.6));
}

.nexgen-trust-log {
  position: relative;
  background: #04091A;                              /* deeper than --midnight for true-terminal feel */
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  overflow: hidden;
  font-family: 'JetBrains Mono', 'SF Mono', 'Menlo', monospace;
  color: rgba(255, 255, 255, 0.88);
  /* Scanline veil — subtle, 2% horizontal lines; switches terminal "on" */
  background-image:
    linear-gradient(rgba(255,255,255,0.018) 50%, transparent 50%);
  background-size: 100% 3px;
}

/* Soft top-edge gold bloom — signals a powered circuit */
.nexgen-trust-log::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--accent-gold-dim) 25%,
    var(--accent-gold-bright) 50%,
    var(--accent-gold-dim) 75%,
    transparent 100%);
  opacity: 0.7;
  z-index: 2;
}

/* --- Header strip -------------------------------------------------------- */
.nexgen-trust-log-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-trust-log-header-brand {
  font-weight: 600;
  color: var(--accent-gold-bright);
}
.nexgen-trust-log-header-sep {
  color: rgba(255, 255, 255, 0.15);
  font-weight: 400;
}
.nexgen-trust-log-header-title,
.nexgen-trust-log-header-ver {
  color: rgba(255, 255, 255, 0.55);
  font-weight: 400;
}
.nexgen-trust-log-header-live {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--accent-gold-bright);
}
.nexgen-trust-log-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent-gold-bright);
  box-shadow: 0 0 8px rgba(220, 152, 20, 0.8);
  animation: nexgen-trust-log-pulse 1.8s ease-in-out infinite;
}
@keyframes nexgen-trust-log-pulse {
  0%, 100% { opacity: 1;   transform: scale(1); }
  50%      { opacity: 0.35; transform: scale(0.75); }
}

/* --- Body / log lines ---------------------------------------------------- */
.nexgen-trust-log-body-wrap {
  padding: 22px 20px 26px;
  font-size: 13.5px;
  line-height: 1.85;
}

.nexgen-trust-log-line {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 14px;
  align-items: baseline;
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity 0.55s var(--ease-soft, cubic-bezier(0.4, 0, 0.2, 1)),
    transform 0.55s var(--ease-soft, cubic-bezier(0.4, 0, 0.2, 1));
  transition-delay: var(--lg-delay, 0s);
}
.nexgen-trust-log-wrap.nexgen-visible .nexgen-trust-log-line {
  opacity: 1;
  transform: translateY(0);
}
.nexgen-trust-log-time {
  color: rgba(255, 255, 255, 0.30);
  font-size: 11.5px;
  letter-spacing: 0.3px;
  font-weight: 400;
  white-space: nowrap;
}
.nexgen-trust-log-body {
  color: rgba(255, 255, 255, 0.80);
  white-space: nowrap;         /* monospace alignment — let overflow clip cleanly at narrow widths */
  overflow: hidden;
  text-overflow: clip;
}

/* Inline span styles inside log body */
.nexgen-trust-log .lg-prompt   { color: var(--accent-gold-bright); font-weight: 600; margin-right: 4px; }
.nexgen-trust-log .lg-cmd      { color: rgba(255, 255, 255, 0.92); font-weight: 500; }
.nexgen-trust-log .lg-flag     { color: rgba(255, 255, 255, 0.45); }
.nexgen-trust-log .lg-val      { color: var(--accent-gold); }
.nexgen-trust-log .lg-tick     { color: var(--accent-gold-dim); margin-right: 2px; }
.nexgen-trust-log .lg-num      { color: var(--accent-gold); font-weight: 500; }
.nexgen-trust-log .lg-pass     {
  color: var(--accent-gold-bright);
  font-weight: 600;
  letter-spacing: 0.5px;
}
.nexgen-trust-log .lg-verified {
  color: var(--accent-gold-bright);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.nexgen-trust-log .lg-dim      { color: rgba(255, 255, 255, 0.35); }

/* --- Trailing caret (blinking) ------------------------------------------ */
.nexgen-trust-log-caret {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding-left: 88px;
}
.nexgen-trust-log-caret-prompt {
  color: var(--accent-gold-bright);
  font-weight: 600;
  font-size: 13.5px;
}
.nexgen-trust-log-caret-block {
  display: inline-block;
  width: 8px;
  height: 16px;
  background: var(--accent-gold-bright);
  animation: nexgen-trust-log-caret 1.05s steps(2, end) infinite;
  transform: translateY(2px);
}
@keyframes nexgen-trust-log-caret {
  0%, 50%   { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* Respect reduced-motion preference: no pulse, no caret blink */
@media (prefers-reduced-motion: reduce) {
  .nexgen-trust-log-dot,
  .nexgen-trust-log-caret-block { animation: none; }
  .nexgen-trust-log-line        { opacity: 1; transform: none; transition: none; }
}

/* ========================================================================
   TRUST — variant "specimen" : museum-catalog vial plate (right column)
   ------------------------------------------------------------------------
   Single transparent-bg vial (shared nexgen-vial-transparent asset) floated
   on a deep midnight plate, lit from below by a soft gold halo, with four
   typographic corner annotations rendered like a curator's catalog entry.
   Thin gold "measurement marks" extend inward from each corner toward the
   vial for a technical-diagram feel. No card, no frame — the vial is the
   object and typography is its caption.

   Active when redesign-trust-section.php $variant === 'specimen'.
   ======================================================================== */

.nexgen-trust-specimen-wrap {
  position: relative;
  max-width: 580px;
  margin-left: auto;
}

.nexgen-trust-specimen-plate {
  position: relative;
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  /* Subtle vignette plate — slightly darker center than the section bg,
     with a faint gold-tinted inner ring (like a photography softbox outline). */
  background:
    radial-gradient(ellipse 70% 60% at 50% 60%,
      rgba(0,0,0,0.55) 0%,
      rgba(0,0,0,0.15) 55%,
      transparent 85%);
  overflow: visible;
}

/* Eyebrow ("SAMPLE SPECIMEN") floating at the top-center of the plate,
   flanked by thin gold rule marks. */
.nexgen-trust-specimen-eyebrow {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent-gold);
  white-space: nowrap;
  z-index: 3;
}
.nexgen-trust-specimen-eyebrow-mark {
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--accent-gold-dim);
}

/* Ambient gold halo behind the vial — the "lit" quality that makes the
   specimen read as staged under controlled photography lighting. */
.nexgen-trust-specimen-halo {
  position: absolute;
  left: 50%;
  top: 54%;
  width: 74%;
  height: 74%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle,
      var(--accent-gold-glow) 0%,
      rgba(201, 168, 76, 0.08) 30%,
      transparent 65%);
  filter: blur(6px);
  pointer-events: none;
  z-index: 1;
}

/* Pedestal: thin horizontal gold line with a centered bloom where the vial
   appears to rest. Anchors the vial vertically without needing a hard floor. */
.nexgen-trust-specimen-pedestal {
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 22%;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--accent-gold-dim) 30%,
    var(--accent-gold-bright) 50%,
    var(--accent-gold-dim) 70%,
    transparent 100%);
  opacity: 0.55;
  pointer-events: none;
  z-index: 1;
}
.nexgen-trust-specimen-pedestal::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 110px;
  height: 22px;
  transform: translate(-50%, 50%);
  background: radial-gradient(ellipse, rgba(220, 152, 20, 0.35) 0%, transparent 70%);
  filter: blur(4px);
}

/* The vial itself */
.nexgen-trust-specimen-img {
  position: relative;
  z-index: 2;
  display: block;
  max-width: 58%;
  width: auto;
  height: auto;
  max-height: 80%;
  object-fit: contain;
  /* Dramatic drop-shadow + faint gold kiss — edge-lit glass effect */
  filter:
    drop-shadow(0 20px 36px rgba(0, 0, 0, 0.75))
    drop-shadow(0 0 22px rgba(201, 168, 76, 0.22));
  /* Gentle idle float so the vial doesn't feel frozen */
  animation: nexgen-trust-specimen-float 8s ease-in-out infinite;
}
@keyframes nexgen-trust-specimen-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.nexgen-trust-specimen-img--missing {
  width: 30%;
  aspect-ratio: 1 / 2.4;
  background: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%);
  border: 1px dashed var(--white-12);
  border-radius: 6px;
}

/* --- Corner annotations -------------------------------------------------- */
.nexgen-trust-specimen-annot {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  font-family: 'Outfit', sans-serif;
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 0.7s var(--ease-soft, cubic-bezier(0.4, 0, 0.2, 1)),
    transform 0.7s var(--ease-soft, cubic-bezier(0.4, 0, 0.2, 1));
}
.nexgen-trust-specimen-wrap.nexgen-visible .nexgen-trust-specimen-annot {
  opacity: 1;
  transform: translateY(0);
}
/* Stagger the four corners on reveal */
.nexgen-trust-specimen-annot--tl { top: 38px;    left: 0;      transition-delay: 0.40s; }
.nexgen-trust-specimen-annot--tr { top: 38px;    right: 0;     transition-delay: 0.55s; text-align: right; }
.nexgen-trust-specimen-annot--bl { bottom: 18px; left: 0;      transition-delay: 0.70s; }
.nexgen-trust-specimen-annot--br { bottom: 18px; right: 0;     transition-delay: 0.85s; text-align: right; }
.nexgen-trust-specimen-annot--tr,
.nexgen-trust-specimen-annot--br { align-items: flex-end; }

/* Thin gold hairline pointing from the annotation toward the vial */
.nexgen-trust-specimen-annot-rule {
  position: absolute;
  top: 6px;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg,
    var(--accent-gold-dim) 0%,
    transparent 100%);
}
.nexgen-trust-specimen-annot--tl .nexgen-trust-specimen-annot-rule,
.nexgen-trust-specimen-annot--bl .nexgen-trust-specimen-annot-rule {
  left: 100%;
  margin-left: 6px;
}
.nexgen-trust-specimen-annot--tr .nexgen-trust-specimen-annot-rule,
.nexgen-trust-specimen-annot--br .nexgen-trust-specimen-annot-rule {
  right: 100%;
  margin-right: 6px;
  transform: scaleX(-1);
}

.nexgen-trust-specimen-annot-label {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--white-30);
}
.nexgen-trust-specimen-annot-value {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1.2px;
  color: var(--accent-gold);
  font-feature-settings: 'tnum' 1;    /* tabular figures for measurement feel */
}

/* Caption under the plate */
.nexgen-trust-specimen-caption {
  margin-top: 28px;
  text-align: center;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--white-60);
}

/* Reduced-motion — no float, no staggered reveal */
@media (prefers-reduced-motion: reduce) {
  .nexgen-trust-specimen-img   { animation: none; }
  .nexgen-trust-specimen-annot { opacity: 1; transform: none; transition: none; }
}

/* --- Trust section responsive -------------------------------------------- */
/* Force the inner wrapper to stack as column with copy-first, doc-second.
   Source order is already correct (copy column at index 0, doc at index 1),
   but Elementor's default responsive direction for this 2-col container was
   reversing the visual order on mobile. Explicit flex-direction + full-width
   children overrides whatever Elementor-injected rule was flipping it. */
@media (max-width: 1024px) {
  .nexgen-section-trust { padding-top: 88px; padding-bottom: 88px; }
  .nexgen-section-trust .nexgen-trust-inner {
    flex-direction: column !important;
    gap: 48px !important;
  }
  .nexgen-section-trust .nexgen-trust-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
  }
  .nexgen-trust-doc-wrap { margin-left: 0; max-width: none; }
  .nexgen-trust-doc-rows { grid-template-columns: 1fr 1fr; gap: 10px 24px; }
  .nexgen-trust-seal { width: 118px; height: 118px; right: -20px; bottom: -20px; }
  .nexgen-trust-seal-monogram { font-size: 26px; }
  .nexgen-trust-stat-num { font-size: 46px; }
  /* Terminal at 1024 */
  .nexgen-trust-log-wrap { margin-left: 0; max-width: none; }
  .nexgen-trust-log-body-wrap { font-size: 13px; padding: 20px 18px 24px; }
  .nexgen-trust-log-line { grid-template-columns: 68px 1fr; gap: 12px; }
  /* Specimen at 1024 */
  .nexgen-trust-specimen-wrap { margin-left: 0; max-width: none; }
  .nexgen-trust-specimen-annot-rule { width: 32px; }
  .nexgen-trust-specimen-annot-value { font-size: 13px; }
}
@media (max-width: 768px) {
  .nexgen-section-trust { padding-top: 56px; padding-bottom: 56px; }
  .nexgen-section-trust .nexgen-trust-lead { margin-bottom: 32px !important; }
  .nexgen-trust-stats { flex-wrap: wrap; gap: 24px 0; padding-top: 24px; }
  .nexgen-trust-stat { flex: 0 0 50%; padding: 0 18px; }
  .nexgen-trust-stat:first-child { padding-left: 0; }
  .nexgen-trust-stat:nth-child(2) { border-left: 1px solid var(--white-12); }
  .nexgen-trust-stat:nth-child(3) {
    flex: 0 0 100%;
    border-left: none;
    padding: 20px 0 0 0;
    margin-top: 4px;
    border-top: 1px solid var(--white-12);
  }
  .nexgen-trust-stat-num { font-size: 40px; letter-spacing: 1px; }
  .nexgen-trust-doc-letterhead { font-size: 10px; padding: 14px 20px; letter-spacing: 1.5px; }
  .nexgen-trust-doc-monogram { font-size: 18px; }
  .nexgen-trust-doc-meta { padding: 14px 20px; font-size: 10px; gap: 10px 18px; }
  .nexgen-trust-doc-chart { padding: 18px 20px 4px; }
  .nexgen-trust-doc-rows { padding: 12px 20px 18px; gap: 10px 24px; }
  .nexgen-trust-doc-sig { padding: 12px 20px 26px; }
  /* Terminal at 768 */
  .nexgen-trust-log-header { font-size: 10px; padding: 12px 16px; letter-spacing: 1.2px; gap: 8px; }
  .nexgen-trust-log-header-live { font-size: 10px; }
  .nexgen-trust-log-body-wrap { font-size: 12px; padding: 18px 16px 22px; line-height: 1.8; }
  .nexgen-trust-log-line { grid-template-columns: 60px 1fr; gap: 10px; }
  .nexgen-trust-log-time { font-size: 10.5px; }
  .nexgen-trust-log-body { white-space: normal; }   /* let body wrap on narrow widths */
  .nexgen-trust-log-caret { padding-left: 70px; }
  /* Specimen at 768 */
  .nexgen-trust-specimen-plate { aspect-ratio: 1 / 1; }
  .nexgen-trust-specimen-eyebrow { font-size: 9px; letter-spacing: 2.5px; gap: 10px; }
  .nexgen-trust-specimen-eyebrow-mark { width: 22px; }
  .nexgen-trust-specimen-img { max-width: 50%; max-height: 72%; }
  .nexgen-trust-specimen-annot--tl,
  .nexgen-trust-specimen-annot--tr { top: 30px; }
  .nexgen-trust-specimen-annot--bl,
  .nexgen-trust-specimen-annot--br { bottom: 14px; }
  .nexgen-trust-specimen-annot-rule { width: 24px; }
  .nexgen-trust-specimen-annot-label { font-size: 9px; letter-spacing: 1.5px; }
  .nexgen-trust-specimen-annot-value { font-size: 12px; letter-spacing: 1px; }
  .nexgen-trust-specimen-caption { font-size: 10px; letter-spacing: 2px; margin-top: 24px; }
}
@media (max-width: 428px) {
  .nexgen-trust-stats {
    flex-direction: column;
    border-top: none;
    padding-top: 0;
    gap: 0;
  }
  .nexgen-trust-stat {
    flex: 1 0 auto;
    border-left: none !important;
    border-top: 1px solid var(--white-12);
    padding: 16px 0 !important;
    margin-top: 0 !important;
  }
  .nexgen-trust-stat:first-child { border-top: none; padding-top: 0 !important; }
  .nexgen-trust-stat-num { font-size: 38px; letter-spacing: 1px; }
  .nexgen-trust-doc-rows { grid-template-columns: 1fr; }
  .nexgen-trust-seal { width: 92px; height: 92px; right: -12px; bottom: -12px; }
  .nexgen-trust-seal-monogram { font-size: 22px; }
  .nexgen-trust-seal-ring text { font-size: 7px; }
  /* Terminal at 428 */
  .nexgen-trust-log-header { font-size: 9.5px; padding: 10px 14px; gap: 6px; }
  .nexgen-trust-log-header-sep:nth-of-type(2) { display: none; }   /* collapse a sep to fit width */
  .nexgen-trust-log-header-ver { display: none; }                  /* drop version on small phones */
  .nexgen-trust-log-body-wrap { font-size: 11.5px; padding: 16px 14px 20px; }
  .nexgen-trust-log-line { grid-template-columns: 56px 1fr; gap: 8px; }
  .nexgen-trust-log-time { font-size: 10px; }
  .nexgen-trust-log-caret { padding-left: 64px; }
  /* Specimen at 428 — compact the corner hairlines away, stack tight */
  .nexgen-trust-specimen-img { max-width: 44%; max-height: 66%; }
  .nexgen-trust-specimen-annot-rule { display: none; }
  .nexgen-trust-specimen-annot-label { font-size: 8.5px; }
  .nexgen-trust-specimen-annot-value { font-size: 11px; }
  .nexgen-trust-specimen-eyebrow { font-size: 8.5px; letter-spacing: 2px; gap: 8px; }
  .nexgen-trust-specimen-eyebrow-mark { width: 16px; }
  .nexgen-trust-specimen-caption { font-size: 9.5px; letter-spacing: 1.5px; }
}

/* ---------- Section 5: Categories — "Three Paths. One Standard." ----------
   Editorial triptych redesign (2026-04-18). Three dark atmospheric cards,
   each a vertical portal with a Bebas numeral badge (CSS counter-driven),
   Cormorant category name, Outfit eyebrow meta, and gold ghost CTA.
   DB structure applied via scripts/redesign-product-categories.php. */
.nexgen-section-categories {
  background-color: var(--deep-navy) !important;
  padding-top: 96px;
  padding-bottom: 96px;
  position: relative;
  overflow: hidden;
}
/* Grain texture */
.nexgen-section-categories::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
/* Blue-glow radial behind the middle card — atmospheric depth */
.nexgen-section-categories > .e-con-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 55%, var(--blue-glow), transparent 65%);
  z-index: 0;
}
.nexgen-section-categories > * { position: relative; z-index: 1; }

/* ---- Header: eyebrow + headline ---- */
.nexgen-section-categories .nexgen-categories-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: var(--accent-gold) !important;
  margin-bottom: 14px !important;
  text-align: center;
}
.nexgen-section-categories .nexgen-categories-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(36px, 4.2vw, 56px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  margin-bottom: 52px !important;
  text-align: center;
}

/* ---- Grid — 3-col triptych ---- */
.nexgen-section-categories .nexgen-categories-grid > .e-con-inner,
.nexgen-section-categories .nexgen-categories-grid.e-con > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 32px !important;
  counter-reset: card !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  align-items: stretch !important;
}

/* ---- Card shell ---- */
/* The card is rendered in Elementor's "full" container mode (.e-con-full),
   meaning there is no .e-con-inner wrapper — the flex layout goes directly
   on the card element. Content stacks bottom-aligned; image is absolutely
   positioned and taken out of flex flow. */
.nexgen-section-categories .nexgen-category-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: flex-start !important;
  min-height: 620px !important;
  padding: 28px !important;
  gap: 10px !important;
  border-radius: 12px !important;
  border: 1px solid var(--white-06) !important;
  background: var(--midnight) !important;
  overflow: hidden !important;
  counter-increment: card !important;
  cursor: pointer;
  isolation: isolate;
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.35s ease,
              border-color 0.35s ease !important;
}
/* Boxed-mode fallback: if Elementor renders .e-con-inner for any reason,
   inherit the same flex layout so content still anchors to the bottom. */
.nexgen-section-categories .nexgen-category-card > .e-con-inner {
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  align-items: flex-start !important;
  min-height: 100% !important;
  padding: 0 !important;
  gap: 10px !important;
  width: 100% !important;
}

/* Gold accent bar — top edge of card (per-card tint via modifiers below) */
.nexgen-section-categories .nexgen-category-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent-gold), var(--accent-gold-dim), transparent);
  z-index: 3;
  opacity: 0.75;
  transition: opacity 0.3s ease;
}

/* Glass numeral badge — uses CSS counter so reordering cards in Elementor
   renumbers them automatically. Bebas Neue 28px gold on frosted glass disc. */
.nexgen-section-categories .nexgen-category-card::after {
  content: counter(card, decimal-leading-zero);
  position: absolute;
  top: 20px;
  left: 20px;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bebas Neue', 'Impact', sans-serif;
  font-weight: 400;
  font-size: 28px;
  letter-spacing: 2px;
  color: var(--accent-gold);
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 50%;
  z-index: 3;
  transition: border-color 0.3s ease, background 0.3s ease;
}

/* Vial image — transparent PNG (attachment 5618) floating in the upper
   two-thirds of the card. Absolute-positioned above content, with an
   atmospheric blue-glow radial underneath and a soft drop-shadow for
   grounding. No cover-fill, no brightness filter — the vial is already
   rendered on a dark textured surface and reads cleanly on deep-navy. */
.nexgen-section-categories .nexgen-category-card .elementor-widget-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 170px !important; /* just enough room for meta + name + CTA */
  margin: 0 !important;
  padding: 8px 8px 0 !important;
  z-index: 0 !important;
  pointer-events: none;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-image > .elementor-widget-container,
.nexgen-section-categories .nexgen-category-card .elementor-widget-image .elementor-image {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-image img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  /* Scale up the rendered image because the source PNG is a 1024x1024 square
     with ~30% transparent padding around the vial silhouette. Scaling the
     visible pixels makes the vial dominate the card instead of looking small
     inside its own whitespace. Transparent edges clip against card overflow. */
  transform: scale(1.45) !important;
  transform-origin: center 45% !important;
  filter: drop-shadow(0 28px 44px rgba(0,0,0,0.6))
          drop-shadow(0 2px 6px rgba(0,0,0,0.5)) !important;
  transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
/* Ambient blue-glow behind the vial — matches the edge-lit photography
   language in design.md § Atmospheric. */
.nexgen-section-categories .nexgen-category-card .elementor-widget-image::before {
  content: '';
  position: absolute;
  inset: 10% 15%;
  background: radial-gradient(ellipse at 50% 50%,
    rgba(26,49,120,0.35) 0%,
    rgba(26,49,120,0.12) 40%,
    transparent 70%);
  z-index: 0;
  pointer-events: none;
  transition: background 0.4s ease;
}
/* Subtle floor vignette under the vial for visual weight */
.nexgen-section-categories .nexgen-category-card .elementor-widget-image::after {
  content: '';
  position: absolute;
  left: 20%;
  right: 20%;
  bottom: 8%;
  height: 14px;
  background: radial-gradient(ellipse at 50% 50%,
    rgba(0,0,0,0.55) 0%,
    rgba(0,0,0,0.2) 50%,
    transparent 80%);
  filter: blur(6px);
  z-index: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

/* Meta eyebrow — injected text-editor widget (.nexgen-category-meta) */
.nexgen-section-categories .nexgen-category-card .elementor-widget-text-editor.nexgen-category-meta {
  position: relative !important;
  z-index: 2 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: flex-start;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-text-editor.nexgen-category-meta p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--white-60) !important;
  margin: 0 !important;
}

/* Category name — restyle the existing Elementor Button widget as a
   Cormorant heading with a gold ghost "View Protocol →" CTA stacked below.
   The anchor retains its href for the whole-card click handler. */
.nexgen-section-categories .nexgen-category-card .elementor-widget-button {
  position: relative !important;
  z-index: 2 !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button-wrapper {
  text-align: left !important;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(28px, 2.6vw, 40px) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.3px !important;
  text-transform: none !important;
  color: var(--white) !important;
  transition: color 0.25s ease !important;
}
.nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button .elementor-button-text {
  font-family: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
  text-transform: none !important;
}
/* Gold ghost CTA appended below the name via ::after */
.nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button::after {
  content: 'View Protocol →';
  display: block;
  margin-top: 12px;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
  text-decoration: underline;
  text-decoration-color: var(--accent-gold-dim);
  text-underline-offset: 4px;
  transition: color 0.3s ease, text-decoration-color 0.3s ease, transform 0.3s ease;
}

/* ---- Hover / focus states ---- */
.nexgen-section-categories .nexgen-category-card:hover,
.nexgen-section-categories .nexgen-category-card:focus-within {
  transform: translateY(-6px) !important;
  border-color: var(--white-12) !important;
  box-shadow:
    0 18px 40px rgba(0,0,0,0.45),
    0 0 48px rgba(26,49,120,0.25) !important;
}
.nexgen-section-categories .nexgen-category-card:hover::before,
.nexgen-section-categories .nexgen-category-card:focus-within::before {
  opacity: 1;
}
.nexgen-section-categories .nexgen-category-card:hover::after,
.nexgen-section-categories .nexgen-category-card:focus-within::after {
  border-color: var(--accent-gold-dim);
  background: rgba(0, 0, 0, 0.6);
}
.nexgen-section-categories .nexgen-category-card:hover .elementor-widget-image::before {
  background: radial-gradient(ellipse at 50% 50%,
    rgba(26,49,120,0.55) 0%,
    rgba(26,49,120,0.22) 40%,
    transparent 70%);
}
.nexgen-section-categories .nexgen-category-card:hover .elementor-widget-image img {
  transform: translateY(-6px) scale(1.5) !important;
  filter: drop-shadow(0 32px 52px rgba(0,0,0,0.65))
          drop-shadow(0 2px 6px rgba(0,0,0,0.55)) !important;
}
.nexgen-section-categories .nexgen-category-card:hover .elementor-widget-button .elementor-button,
.nexgen-section-categories .nexgen-category-card:focus-within .elementor-widget-button .elementor-button {
  color: var(--off-white) !important;
}
.nexgen-section-categories .nexgen-category-card:hover .elementor-widget-button .elementor-button::after,
.nexgen-section-categories .nexgen-category-card:focus-within .elementor-widget-button .elementor-button::after {
  color: var(--accent-gold-bright);
  text-decoration-color: var(--accent-gold);
  transform: translateX(4px);
}

/* ---- Per-category tint modifiers — gold always leads, second stop tints ---- */
.nexgen-section-categories .nexgen-category-card--body-composition::before,
.nexgen-section-categories .nexgen-category-card--weight-loss::before,
.nexgen-section-categories .nexgen-category-card--longevity::before {
  background: linear-gradient(90deg, var(--accent-gold), var(--brand-blue), transparent);
}
.nexgen-section-categories .nexgen-category-card--tissue-repair::before,
.nexgen-section-categories .nexgen-category-card--repair::before,
.nexgen-section-categories .nexgen-category-card--strength::before {
  background: linear-gradient(90deg, var(--accent-gold), rgba(197,51,58,0.55), transparent);
}
.nexgen-section-categories .nexgen-category-card--immune-resilience::before,
.nexgen-section-categories .nexgen-category-card--immunity::before,
.nexgen-section-categories .nexgen-category-card--foundation::before {
  background: linear-gradient(90deg, var(--accent-gold), var(--accent-gold-dim), transparent);
  opacity: 0.9;
}

/* ---------- Section 6: Three Tokens — nexgen-section-tokens ---------- */
/* "Delivered. Verified. Earned." editorial — transit stamp / challenge coin / dog tag.
   Midnight + grain + blue glow. Built by scripts/redesign-why-nexgen.php. */
.nexgen-section-tokens {
  background: var(--midnight) !important;
  background-image: none !important;
  padding-top: 110px !important;
  padding-bottom: 110px !important;
  margin-bottom: 0 !important;
  position: relative;
  overflow: hidden;
  /* Container query scope — layout responds to actual section width, not viewport.
     Fixes cramped rendering when DevTools is docked or viewport is narrow. */
  container-type: inline-size;
  container-name: tokens-section;
}
.nexgen-section-tokens::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
.nexgen-section-tokens::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, var(--blue-glow), transparent 70%);
}
.nexgen-section-tokens > * { position: relative; z-index: 1; }
.nexgen-section-tokens.e-con-full,
.nexgen-section-tokens {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0 !important;
}
/* Header stack — .nexgen-tokens-header is an e-con-full container, so children
   are direct. Style the container itself, not a non-existent .e-con-inner. */
.nexgen-tokens-header {
  max-width: 840px !important;
  margin: 0 auto 72px !important;
  padding: 0 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 16px !important;
}
.nexgen-tokens-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 !important;
}
.nexgen-tokens-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  /* cqi (container-query-inline) = 1% of section container width. Scales
     smoothly with section width instead of viewport. */
  font-size: clamp(28px, 5.5cqi, 56px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  margin: 0 !important;
  text-align: center !important;
  text-wrap: balance !important;
}
/* Gold hairline rule under headline */
.nexgen-tokens-rule .elementor-divider-separator,
.nexgen-tokens-rule .elementor-divider {
  border: none !important;
  background: transparent !important;
}
.nexgen-tokens-rule .elementor-widget-container {
  padding: 4px 0 0 !important;
}
.nexgen-tokens-rule .elementor-widget-container::after {
  content: '';
  display: block;
  width: 72px;
  height: 2px;
  margin: 0 auto;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
}
.nexgen-tokens-rule .elementor-divider-separator { display: none !important; }

/* 3-col row — .nexgen-tokens-row is e-con-full, so .nexgen-token children
   are direct. Style the row container itself. */
.nexgen-tokens-row {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 48px !important;
  flex-wrap: nowrap !important;
}
/* Gold gradient thread — bisects the shared 280px artifact zone (midline = 140px) */
.nexgen-tokens-row::before {
  content: '';
  position: absolute;
  top: 140px;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim) 16%, var(--accent-gold-dim) 84%, transparent);
  z-index: 0;
  pointer-events: none;
}

/* Single token column */
.nexgen-token {
  flex: 1 1 0 !important;
  max-width: 360px !important;
  padding: 0 !important;
  position: relative;
  z-index: 1;
  text-align: center !important;
}
/* Each token is a 4-row grid — artifact / eyebrow / title / body.
   Fixed row tracks mean every column aligns its widgets to the same y.
   .nexgen-token is e-con-full so widgets are DIRECT children — grid on the
   token itself, not a non-existent .e-con-inner. */
.nexgen-token {
  display: grid !important;
  grid-template-rows:
    280px                /* artifact zone — tallest artifact fits; midline @ 140px */
    auto                 /* eyebrow */
    minmax(2.4em, auto)  /* title — 2.4em covers 2-line titles without uneven push */
    auto !important;     /* body */
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  justify-items: center !important;
  align-items: start !important;
}

/* Artifact image — fixed-height centered zone */
.nexgen-token-artifact {
  height: 280px !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.nexgen-token-artifact .elementor-widget-container {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.nexgen-token-artifact img {
  display: block !important;
  margin: 0 auto !important;
  width: auto !important;
  height: auto !important;
  filter: drop-shadow(0 22px 44px rgba(0, 0, 0, 0.55));
}
/* Height-based sizing so transparent padding in the PNG sources doesn't shrink
   the visible artifact when aspect ratios vary. */
.nexgen-token--stamp .nexgen-token-artifact img { max-height: 240px !important; max-width: 100% !important; }
.nexgen-token--coin  .nexgen-token-artifact img { max-height: 260px !important; max-width: 100% !important; }
.nexgen-token--tag   .nexgen-token-artifact img { max-height: 260px !important; max-width: 100% !important; }

/* Typography under each artifact */
.nexgen-token-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 !important;
}
.nexgen-token-title .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(22px, 2.2cqi, 26px) !important;
  line-height: 1.2 !important;
  color: var(--off-white) !important;
  margin: 0 !important;
  letter-spacing: 0.2px !important;
  min-height: 2.4em !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  /* Prevent ugly hyphen breaks on compound words like "Lab-Tested" */
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  text-wrap: balance !important;
}
.nexgen-token-body,
.nexgen-token-body .elementor-widget-container {
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: var(--white-60) !important;
  max-width: 300px !important;
  margin: 4px auto 0 !important;
}
.nexgen-token-body p { margin: 0 !important; }

/* Hover micro-animations (desktop only) */
@media (min-width: 1025px) {
  .nexgen-token--coin:hover .nexgen-token-artifact { transform: rotate(5deg); }
  .nexgen-token--tag:hover  .nexgen-token-artifact { transform: translateY(6px) rotate(-2deg); }
  .nexgen-token--stamp:hover .nexgen-token-artifact { transform: rotate(-2deg); }
}

/* Container queries — respond to actual section width, not viewport.
   Below 900cqi the 3-col row crams too tight; stack vertically. */
@container tokens-section (max-width: 900px) {
  .nexgen-tokens-header { margin-bottom: 56px !important; }
  .nexgen-tokens-row::before { display: none !important; }
  .nexgen-tokens-row {
    flex-direction: column !important;
    gap: 64px !important;
    align-items: center !important;
  }
  .nexgen-token {
    max-width: 460px !important;
    width: 100% !important;
    /* Reset grid → flex when stacked; fixed artifact zone no longer needed */
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: center !important;
    grid-template-rows: none !important;
  }
  .nexgen-token-artifact { height: auto !important; }
  .nexgen-token-title .elementor-heading-title {
    min-height: 0 !important;
    display: block !important;
    font-size: 26px !important;
  }
  .nexgen-token-body, .nexgen-token-body .elementor-widget-container {
    max-width: 400px !important;
    font-size: 16px !important;
  }
  .nexgen-token--stamp .nexgen-token-artifact img { max-height: 220px !important; }
  .nexgen-token--coin  .nexgen-token-artifact img { max-height: 220px !important; }
  .nexgen-token--tag   .nexgen-token-artifact img { max-height: 240px !important; }
}

/* Note: an element can't query its own container, so section padding is set
   via a viewport media query below. All other descendant rules work fine here. */
@container tokens-section (max-width: 540px) {
  .nexgen-tokens-row { gap: 48px !important; padding: 0 16px !important; }
  .nexgen-tokens-header { margin-bottom: 40px !important; padding: 0 16px !important; }
  .nexgen-token-title .elementor-heading-title { font-size: 24px !important; }
  .nexgen-token-body, .nexgen-token-body .elementor-widget-container {
    font-size: 15px !important;
  }
  .nexgen-token--stamp .nexgen-token-artifact img { max-height: 180px !important; }
  .nexgen-token--coin  .nexgen-token-artifact img { max-height: 180px !important; }
  .nexgen-token--tag   .nexgen-token-artifact img { max-height: 200px !important; }
}

/* Section-level padding tightens on narrow viewports (self-container limitation) */
@media (max-width: 540px) {
  .nexgen-section-tokens {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}

/* Fallback for very old browsers (pre-container-query) — degrades via viewport. */
@supports not (container-type: inline-size) {
  @media (max-width: 900px) {
    .nexgen-tokens-row::before { display: none !important; }
    .nexgen-tokens-row {
      flex-direction: column !important;
      gap: 64px !important;
      align-items: center !important;
    }
    .nexgen-token {
      max-width: 460px !important;
      width: 100% !important;
      display: flex !important;
      flex-direction: column !important;
      gap: 12px !important;
      align-items: center !important;
      grid-template-rows: none !important;
    }
    .nexgen-token-artifact { height: auto !important; }
    .nexgen-token-title .elementor-heading-title {
      min-height: 0 !important;
      display: block !important;
    }
  }
}

/* iOS Safari minimal eyebrow-overflow fix (2026-05-05). Targets ONLY the eyebrow
   widget wrapper — does not change layout, display, flex, grid, or touch any
   Elementor wrapper. Just constrains width to parent and centers the widget +
   its text. Earlier attempt that altered layout/display rules collapsed the
   eyebrow/title/body widgets on iOS WebKit, so this version is intentionally
   the smallest possible change. */
@media (max-width: 768px) {
  .nexgen-section-tokens .nexgen-token-eyebrow {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }
}

/* ---------- Section 7: FDA Disclaimer Glass Card -----------------------------
   Relocated 2026-04-23 from its own top-level section into the FAQ section
   (see scripts/move-fda-into-faq.php). Selectors no longer scope to
   .nexgen-section-fda; card styles apply wherever the card renders.
   -------------------------------------------------------------------------- */
.nexgen-fda-card-wrap {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 0 !important;
}
.nexgen-fda-card {
  width: 100% !important;
  max-width: 860px !important;
  padding: 40px 48px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
  display: flex !important;
  flex-direction: column !important;
  gap: 16px;
}
.nexgen-fda-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--accent-gold);
  margin-bottom: 4px;
}
.nexgen-fda-card-header svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nexgen-fda-card-header span {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  line-height: 1;
}
.nexgen-fda-card-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: 0.3px !important;
  color: var(--white-90) !important;
  text-transform: none !important;
  margin: 0 !important;
}
.nexgen-fda-card-body,
.nexgen-fda-card-body .elementor-widget-container {
  color: var(--white-60) !important;
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}
.nexgen-fda-card-body p {
  margin: 0 !important;
  color: var(--white-60) !important;
}

/* --- Premium Heading (Cormorant Garamond — Tier 1b) --- */
.nexgen-premium-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0.3px !important;
  line-height: 1.2 !important;
}

/* --- Product Link Underlines — remove for premium feel --- */
.nexgen-product-card .elementor-widget-woocommerce-product-title a,
.nexgen-product-card .elementor-widget-heading a,
.nexgen-section-best-sellers .wc-block-components-product-name a,
.nexgen-section-best-sellers a.woocommerce-LoopProduct-link {
  text-decoration: none !important;
}
.nexgen-section-best-sellers .products a {
  text-decoration: none !important;
}

/* --- Gold Section Labels --- */
/* Reusable label above section headings: "SHOP THE COLLECTION", "QUALITY ASSURANCE", etc. */
.nexgen-section-label .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin-bottom: 4px !important;
}

/* --- Social Proof Bar — nexgen-social-proof-bar --- */
.nexgen-social-proof-bar {
  background: var(--brand-blue) !important;
  border-top: 1px solid var(--accent-gold-dim);
  border-bottom: 1px solid var(--accent-gold-dim);
  padding: 18px 0 !important;
  position: relative;
}
.nexgen-social-proof-bar .elementor-widget-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--off-white) !important;
}
.nexgen-social-proof-bar .elementor-icon {
  color: var(--accent-gold) !important;
}
.nexgen-social-proof-bar .elementor-icon svg {
  fill: var(--accent-gold) !important;
}

/* --- Testimonials — nexgen-section-testimonials --- */
.nexgen-section-testimonials {
  background: var(--deep-navy) !important;
  padding: 90px 0 !important;
  position: relative;
  overflow: hidden;
}
/* 3-column testimonial grid layout using CSS grid on the inner container */
.nexgen-section-testimonials > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0 32px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
}
/* Section label and heading span full width */
.nexgen-section-testimonials .nexgen-section-label,
.nexgen-section-testimonials .nexgen-premium-heading {
  grid-column: 1 / -1;
  text-align: center;
}
/* Each quote+name pair placed by child index (label=1, heading=2, q1=3, n1=4, q2=5, n2=6, q3=7, n3=8) */
.nexgen-section-testimonials > .e-con-inner > :nth-child(3) { grid-column: 1; grid-row: 3; }
.nexgen-section-testimonials > .e-con-inner > :nth-child(4) { grid-column: 1; grid-row: 4; }
.nexgen-section-testimonials > .e-con-inner > :nth-child(5) { grid-column: 2; grid-row: 3; }
.nexgen-section-testimonials > .e-con-inner > :nth-child(6) { grid-column: 2; grid-row: 4; }
.nexgen-section-testimonials > .e-con-inner > :nth-child(7) { grid-column: 3; grid-row: 3; }
.nexgen-section-testimonials > .e-con-inner > :nth-child(8) { grid-column: 3; grid-row: 4; }
/* Card-like visual treatment per quote */
.nexgen-section-testimonials .nexgen-testimonial-quote {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 12px 12px 0 0 !important;
  padding: 28px 24px 20px !important;
  margin-bottom: 0 !important;
  position: relative;
}
/* Otmens refresh: 5-star rating above each quote. Positioned absolutely so
   it doesn't displace the existing ::before quote-mark on the inner container. */
.nexgen-section-testimonials .nexgen-testimonial-quote::after {
  content: '★★★★★';
  display: block;
  position: absolute;
  top: 18px;
  right: 24px;
  color: var(--accent-gold);
  font-size: 14px;
  letter-spacing: 2px;
  line-height: 1;
  pointer-events: none;
}
/* Cormorant Garamond italic for the quote text (Tier 1b refinement).
   Text is a direct child text node of .nexgen-testimonial-quote (no inner
   wrapper in this Elementor build) — apply font styles to the widget itself
   and any inner text containers as a safety net. */
.nexgen-section-testimonials .nexgen-testimonial-quote,
.nexgen-section-testimonials .nexgen-testimonial-quote p,
.nexgen-section-testimonials .nexgen-testimonial-quote .elementor-widget-container,
.nexgen-section-testimonials .nexgen-testimonial-quote .elementor-text-editor {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 21px !important;
  line-height: 1.45 !important;
  color: var(--white-90) !important;
}
.nexgen-section-testimonials .nexgen-testimonial-quote .elementor-widget-container {
  text-align: left !important;
  font-size: 18px !important;
  padding-top: 40px;
}
.nexgen-section-testimonials .nexgen-testimonial-quote .elementor-widget-container::before {
  left: 0 !important;
  transform: none !important;
  font-size: 64px;
}
/* Name attribution card bottom */
.nexgen-section-testimonials .nexgen-testimonial-name {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-top: none !important;
  border-radius: 0 0 12px 12px !important;
  padding: 16px 24px 24px !important;
}
/* Responsive: stack on mobile */
@media (max-width: 768px) {
  .nexgen-section-testimonials > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 24px 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .nexgen-section-testimonials > .e-con-inner > * {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}
/* Grain */
.nexgen-section-testimonials::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
  mix-blend-mode: overlay;
}
.nexgen-section-testimonials > * {
  position: relative;
  z-index: 1;
}
/* Quote text — Cormorant Garamond for premium feel */
.nexgen-testimonial-quote .elementor-widget-container {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: 22px !important;
  font-style: italic !important;
  color: var(--white-90) !important;
  line-height: 1.6 !important;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  padding-top: 48px;
}
/* Gold opening quote mark */
.nexgen-testimonial-quote .elementor-widget-container::before {
  content: '\201C';
  font-family: 'Cormorant Garamond', serif;
  font-style: normal;
  font-size: 80px;
  color: var(--accent-gold-dim);
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  line-height: 1;
}
/* Customer name attribution */
.nexgen-testimonial-name .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
}
/* Testimonial card container */
.nexgen-testimonial-card {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  padding: 32px !important;
  transition: all 0.3s ease;
}
.nexgen-testimonial-card:hover {
  border-color: var(--accent-gold-dim) !important;
}

/* --- Gradient Section Dividers --- */
.nexgen-section-best-sellers,
.nexgen-section-stacks,
.nexgen-section-latest,
.nexgen-section-trust,
.nexgen-section-categories,
.nexgen-section-tokens,
.nexgen-section-testimonials {
  border-bottom: 1px solid transparent;
  background-clip: padding-box;
}
/* Subtle gradient line between sections */
.nexgen-section-best-sellers::after,
.nexgen-section-trust::after,
.nexgen-section-categories::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--white-12), transparent);
  z-index: 2;
}

/* --- Scroll Fade-In Animation (upgraded — Apple-esque easing, 6-step stagger)
       !important on transition to beat legacy `transition: all 0.3s !important`
       rules elsewhere in this file that would otherwise cap reveal speed. --- */
.nexgen-fade-in {
  opacity: 0;
  transform: translateY(40px);
  transition-property: opacity, transform, filter !important;
  transition-duration: var(--dur-reveal) !important;
  transition-timing-function: var(--ease-apple) !important;
  will-change: opacity, transform;
}
.nexgen-fade-in.nexgen-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1) rotate(0);
  filter: blur(0);
  will-change: auto;
}
/* Variants — apply alongside .nexgen-fade-in */
.nexgen-fade-in--scale      { transform: translateY(36px) scale(0.92); }
.nexgen-fade-in--blur       { filter: blur(14px); transform: translateY(22px); }
.nexgen-fade-in--left       { transform: translateX(-64px); }
.nexgen-fade-in--right      { transform: translateX(64px); }
.nexgen-fade-in--hero       { transition-duration: var(--dur-hero) !important; transform: translateY(72px); }
.nexgen-fade-in--slide-down { transform: translateY(-48px); }
.nexgen-fade-in--far        { transform: translateY(88px); transition-duration: var(--dur-slow) !important; }
.nexgen-fade-in--clip-up    { clip-path: inset(0 0 100% 0); transform: translateY(24px); }
.nexgen-fade-in--slow       { transition-duration: var(--dur-slow) !important; }
.nexgen-fade-in--rotate     { transform: translateY(40px) rotate(-2deg); transform-origin: left center; }

/* Staggered delay — 6 steps at the new --stagger-step cadence */
.nexgen-fade-in-delay-1 { transition-delay: calc(var(--stagger-step) * 1); }
.nexgen-fade-in-delay-2 { transition-delay: calc(var(--stagger-step) * 2); }
.nexgen-fade-in-delay-3 { transition-delay: calc(var(--stagger-step) * 3); }
.nexgen-fade-in-delay-4 { transition-delay: calc(var(--stagger-step) * 4); }
.nexgen-fade-in-delay-5 { transition-delay: calc(var(--stagger-step) * 5); }
.nexgen-fade-in-delay-6 { transition-delay: calc(var(--stagger-step) * 6); }

/* Auto-stagger: JS sets --stagger-i on each child inside a .nexgen-stagger-group */
.nexgen-stagger-group > .nexgen-fade-in,
.nexgen-stagger-group .nexgen-fade-in[style*="--stagger-i"] {
  transition-delay: calc(var(--stagger-i, 0) * var(--stagger-step));
}

/* --- Section accents --------------------------------------------------- */

/* Product card — refined hover + CTA slide-reveal */
.nexgen-product-card,
.nexgen-product-card .elementor-widget-woocommerce-product-image img {
  transition:
    transform  var(--dur-hover) var(--ease-soft),
    box-shadow var(--dur-hover) var(--ease-soft);
}
.nexgen-product-card:hover .elementor-widget-woocommerce-product-image img {
  transform: scale(1.04);
}
.nexgen-product-card .nexgen-view-details {
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity   var(--dur-hover) var(--ease-soft),
    transform var(--dur-hover) var(--ease-soft);
}
.nexgen-product-card:hover .nexgen-view-details,
.nexgen-product-card:focus-within .nexgen-view-details {
  opacity: 1;
  transform: translateY(0);
}

/* Trust seal — one-shot gold ring shimmer on reveal.
   Re-homed from the old .nexgen-trust-card (linear sweep) to the new wax
   seal (rotating conic sweep). Same "animated gold edge on reveal" feel,
   shape-appropriate to a circular seal. */
.nexgen-trust-seal::before {
  content: '';
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  padding: 2px;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    var(--accent-gold-dim) 70deg,
    var(--accent-gold-bright) 105deg,
    var(--accent-gold-dim) 140deg,
    transparent 220deg
  );
  -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;
  pointer-events: none;
  opacity: 0;
  transform: rotate(0deg);
}
.nexgen-trust-doc-wrap.nexgen-visible .nexgen-trust-seal::before {
  animation: nexgen-trust-seal-shimmer 2.2s var(--ease-apple) 500ms 1 both;
}
@keyframes nexgen-trust-seal-shimmer {
  0%   { transform: rotate(0deg);   opacity: 0; }
  12%  { opacity: 1; }
  88%  { opacity: 1; }
  100% { transform: rotate(360deg); opacity: 0; }
}

/* Why NexGen CTA cards — magnetic lift + gold icon pulse on reveal */
.call-to-grid .elementor-cta {
  transition:
    transform  var(--dur-hover) var(--ease-soft),
    box-shadow var(--dur-hover) var(--ease-soft),
    border-color var(--dur-hover) var(--ease-soft) !important;
}
.call-to-grid .elementor-cta:hover {
  transform: translateY(-4px);
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(201, 168, 76, 0.25),
    0 0 32px rgba(201, 168, 76, 0.15);
  border-color: rgba(201, 168, 76, 0.35) !important;
}
@keyframes nexgen-icon-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.call-to-grid .elementor-cta.nexgen-visible .elementor-cta__icon,
.call-to-grid .elementor-cta.nexgen-visible i {
  animation: nexgen-icon-pulse 700ms var(--ease-apple) 450ms 1 both;
  display: inline-block;
  transform-origin: center;
}

/* Footer brand stamp — gold accent line draw on reveal */
.nexgen-footer-brandstamp {
  position: relative;
}
.nexgen-footer-brandstamp::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -14px;
  transform: translateX(-50%);
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
  transition: width var(--dur-hero) var(--ease-apple) 200ms;
}
.nexgen-footer-brandstamp.nexgen-visible::after {
  width: 220px;
}

/* Buttons — global micro-interaction refinement (opacity/transform only) */
.nexgen-section-hero .elementor-button,
.nexgen-section-best-sellers .elementor-button,
.nexgen-section-categories .elementor-button,
.nexgen-section-tokens .elementor-button,
.nexgen-footer-outer .elementor-button {
  transition:
    transform        var(--dur-hover) var(--ease-soft),
    background-color var(--dur-hover) var(--ease-soft),
    color            var(--dur-hover) var(--ease-soft),
    box-shadow       var(--dur-hover) var(--ease-soft) !important;
}

/* Links in body copy — slow underline reveal.
   .nexgen-trust-cta is excluded — it has its own underline via border-bottom
   and the overlapping background-image was creating a muddy color blend that
   rendered the ghost link near-invisible on the midnight trust section. */
.nexgen-section-tokens a:not(.elementor-button),
.nexgen-section-trust a:not(.elementor-button):not(.nexgen-trust-cta),
.nexgen-section-best-sellers a:not(.elementor-button) {
  background-image: linear-gradient(var(--accent-gold), var(--accent-gold));
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size var(--dur-hover) var(--ease-soft);
}
.nexgen-section-tokens a:not(.elementor-button):hover,
.nexgen-section-trust a:not(.elementor-button):not(.nexgen-trust-cta):hover,
.nexgen-section-best-sellers a:not(.elementor-button):hover {
  background-size: 100% 1px;
}

/* --- Hero Carousel --- */

/* Video slide: fill full carousel width, dark bg fills gaps */
.nexgen-hero-video-slide {
  background-color: #060E22 !important;
  position: relative;
  width: 100% !important;
  min-width: 100% !important;
}
/* Force swiper slides to fill full viewport width */
.nexgen-section-hero .swiper-slide {
  width: 100% !important;
  min-width: 100% !important;
}
.nexgen-section-hero .swiper-wrapper {
  width: 100% !important;
}
.nexgen-section-hero .e-n-carousel {
  width: 100% !important;
}
/* Video container — JS moves this out of .e-con-inner to fill the outer slide */
.nexgen-hero-video-slide > .elementor-background-video-container {
  position: absolute !important;
  inset: 0 !important;
  overflow: hidden !important;
  z-index: 0 !important;
}
.nexgen-hero-video-slide .elementor-background-video-hosted {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}
/* Dark cinematic panel — wraps text content at bottom-left */
.nexgen-hero-video-slide > .e-con-inner {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  /* Panel sizing — fit content, don't stretch to fill slide */
  width: fit-content !important;
  max-width: 580px !important;
  min-width: 320px;
  /* Prevent flex stretching — force content height */
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  /* Pin to bottom-left — margin-top auto pushes down in column flex */
  margin: auto auto 40px 40px !important;
  /* Dark panel appearance */
  background: rgba(6, 14, 34, 0.7) !important;
  border: 1px solid var(--accent-gold) !important;
  border-radius: 12px !important;
  padding: 32px 40px !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Text fills the panel width */
.nexgen-hero-video-slide .nexgen-hero-label,
.nexgen-hero-video-slide .nexgen-hero-headline,
.nexgen-hero-video-slide .nexgen-hero-subheadline,
.nexgen-hero-video-slide .nexgen-hero-cta {
  max-width: 100%;
}
/* Video slide headline — slightly smaller for panel overlay */
.nexgen-hero-video-slide .nexgen-hero-headline .elementor-heading-title {
  font-size: 48px !important;
  letter-spacing: 2px !important;
}
@media (max-width: 768px) {
  /* Ensure slide has height for flex margin to work */
  .nexgen-hero-video-slide {
    min-height: 85vh !important;
  }
  /* Compact bottom-left card on mobile — must NOT cover the video. Width
     capped narrow (~190px) and typography compressed so the headline reads
     in 2 lines max. Lee Priest stays visible center/right of the slide. */
  .nexgen-hero-video-slide > .e-con-inner {
    max-width: 200px !important;
    width: fit-content !important;
    min-width: 0;
    border: 1px solid var(--accent-gold) !important;
    border-radius: 8px !important;
    padding: 10px 12px !important;
    margin: auto 12px 12px 12px !important;
  }
  .nexgen-hero-video-slide .nexgen-hero-label .elementor-heading-title {
    font-size: 8px !important;
    letter-spacing: 1px !important;
    margin-bottom: 3px !important;
  }
  .nexgen-hero-video-slide .nexgen-hero-headline .elementor-heading-title {
    font-size: 16px !important;
    letter-spacing: 1px !important;
    line-height: 1.05 !important;
  }
  .nexgen-hero-video-slide .nexgen-hero-subheadline,
  .nexgen-hero-video-slide .nexgen-hero-subheadline .elementor-widget-container,
  .nexgen-hero-video-slide .nexgen-hero-subheadline p {
    font-size: 10px !important;
    line-height: 1.3 !important;
    margin-top: 4px !important;
    margin-bottom: 8px !important;
  }
  .nexgen-hero-video-slide .nexgen-hero-cta .elementor-button {
    padding: 6px 14px !important;
    font-size: 10px !important;
    letter-spacing: 1.2px !important;
  }
}
/* Bottom-left gradient — protects text without darkening entire video */
.nexgen-hero-video-slide::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(
      to top,
      rgba(6, 14, 34, 0.85) 0%,
      rgba(6, 14, 34, 0.5) 35%,
      transparent 65%
    ),
    linear-gradient(
      to right,
      rgba(6, 14, 34, 0.4) 0%,
      transparent 50%
    ) !important;
}

/* --- Hero Content Overlay --- */
.nexgen-hero-headline .elementor-heading-title {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: 64px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  line-height: 1.05 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.nexgen-hero-subheadline .elementor-widget-container {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 18px !important;
  color: var(--white-90) !important;
  line-height: 1.6 !important;
  max-width: 480px;
  text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}
/* Gold accent label above hero headline */
.nexgen-hero-label .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin-bottom: 12px !important;
}
/* Responsive hero text */
@media (max-width: 768px) {
  .nexgen-hero-headline .elementor-heading-title {
    font-size: 42px !important;
    letter-spacing: 2px !important;
  }
  .nexgen-hero-subheadline .elementor-widget-container {
    font-size: 16px !important;
  }
}
@media (max-width: 428px) {
  .nexgen-hero-headline .elementor-heading-title {
    font-size: 34px !important;
    letter-spacing: 1.5px !important;
  }
}

/* Hero carousel nav — bottom cluster ‹ ••• › (NGS-212).
   JS moves Elementor prev/dots/next into .ngs-hero-nav on the hero section
   so we don't fight Elementor's sibling absolute positioning (and so
   overflow:hidden on the hero doesn't clip side-positioned controls). */
.nexgen-section-hero .elementor-widget-n-carousel .elementor-swiper-button,
.nexgen-section-hero .elementor-widget-n-carousel .swiper-pagination {
  opacity: 0;
  pointer-events: none;
}
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button,
.nexgen-section-hero .ngs-hero-nav .swiper-pagination {
  opacity: 1;
  pointer-events: auto;
}
.nexgen-section-hero .ngs-hero-nav {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  pointer-events: auto;
}
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.85) !important;
  --e-n-carousel-arrow-normal-color: rgba(255, 255, 255, 0.85);
  --e-n-carousel-arrow-hover-color: var(--accent-gold);
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  transition: color 0.2s ease;
}
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button:hover,
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button:focus {
  color: var(--accent-gold) !important;
  background: transparent !important;
}
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button svg,
.nexgen-section-hero .ngs-hero-nav .elementor-swiper-button i {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: 14px !important;
  height: 14px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  fill: currentColor !important;
}
.nexgen-section-hero .ngs-hero-nav .swiper-pagination {
  position: static !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: auto !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.nexgen-section-hero .ngs-hero-nav .swiper-pagination-bullet {
  width: 6px !important;
  height: 6px !important;
  margin: 0 4px !important;
  background: rgba(255, 255, 255, 0.4) !important;
  opacity: 1 !important;
  border-radius: 50% !important;
  transition: background 0.2s ease, width 0.2s ease;
}
.nexgen-section-hero .ngs-hero-nav .swiper-pagination-bullet-active {
  background: var(--accent-gold) !important;
  width: 16px !important;
  border-radius: 999px !important;
}
@media (max-width: 768px) {
  .nexgen-section-hero .ngs-hero-nav {
    bottom: 12px;
    gap: 6px;
    padding: 5px 8px;
  }
  .nexgen-section-hero .ngs-hero-nav .elementor-swiper-button {
    width: 26px !important;
    height: 26px !important;
  }
  .nexgen-section-hero .ngs-hero-nav .swiper-pagination-bullet {
    width: 5px !important;
    height: 5px !important;
    margin: 0 3px !important;
  }
  .nexgen-section-hero .ngs-hero-nav .swiper-pagination-bullet-active {
    width: 14px !important;
  }
}

/* Unmute toggle button */
.nexgen-unmute-btn {
  position: absolute !important;
  bottom: 20px !important;
  right: 20px !important;
  z-index: 10;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px;
  min-height: 42px;
  max-width: 42px;
  max-height: 42px;
  box-sizing: border-box;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255,255,255,0.35) !important;
  background: rgba(0,0,0,0.5) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
  overflow: hidden;
}
.nexgen-unmute-btn[style*="display:none"],
.nexgen-unmute-btn[style*="display: none"] { display: none !important; }
.nexgen-unmute-btn:hover {
  background: rgba(0,0,0,0.7) !important;
  border-color: rgba(255,255,255,0.6) !important;
  transform: scale(1.08);
}
.nexgen-unmute-btn svg {
  display: block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  pointer-events: none;
}

/* ---------- Section 8: Shop / Archive ---------- */
/* Product archive (shop page + /product-category/*) — light gallery grid with
   narrow dark hero + dark outro bands. Styles WooCommerce default product card
   markup (li.product) via named container classes; no element-ID selectors. */

/* Page-level cream background for shop + category archives */
body.woocommerce-shop,
body.tax-product_cat,
body.post-type-archive-product {
  background: var(--cream);
}

/* --- Shop hero band (narrow dark) --- */
.nexgen-shop-hero {
  background: var(--midnight);
  padding: 56px 24px 64px !important;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.nexgen-shop-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 40%, var(--blue-glow), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.nexgen-shop-hero > .e-con-inner,
.nexgen-shop-hero > .elementor-container {
  position: relative;
  z-index: 1;
  max-width: 960px;
}
.nexgen-shop-hero .nexgen-shop-hero-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 14px;
}
.nexgen-shop-hero .nexgen-shop-hero-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.15;
  color: var(--white);
  margin: 0 0 16px;
}
.nexgen-shop-hero .nexgen-shop-hero-sub .elementor-widget-container,
.nexgen-shop-hero .nexgen-shop-hero-sub p {
  font-family: 'Azo Sans', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.55;
  color: var(--white-60);
  max-width: 640px;
  margin: 0 auto;
}

/* --- Controls bar (pills + sort) --- */
.nexgen-shop-controls {
  background: var(--cream);
  padding: 20px 24px !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.nexgen-shop-controls > .e-con-inner,
.nexgen-shop-controls > .elementor-container {
  max-width: 1280px;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
}
/* Each shortcode widget inside the controls gets full width so its inner flex
   can center itself on the page. */
.nexgen-shop-controls .elementor-widget-shortcode {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* Pills */
.nexgen-shop-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
  max-width: 1000px;
}
.nexgen-shop-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 18px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #FFFFFF;
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition-property: transform, border-color, background, color !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-pill:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.20);
}
.nexgen-shop-pill:hover .nexgen-shop-pill-count {
  color: var(--accent-gold) !important;
}
.nexgen-shop-pill.is-active {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.20);
}
.nexgen-shop-pill.is-active:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
}
.nexgen-shop-pill-count {
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 11px;
  color: var(--warm-gray);
  letter-spacing: 0.5px;
  transition: color 0.25s ease;
}
.nexgen-shop-pill.is-active .nexgen-shop-pill-count {
  color: var(--accent-gold);
}

/* Origin tier pills — slightly larger padding for tier hierarchy */
.nexgen-shop-origin-pills {
  margin-bottom: 4px;
  gap: 10px;
}
.nexgen-shop-origin-pills .nexgen-shop-pill {
  padding: 12px 24px;
  font-size: 13px;
  letter-spacing: 1.5px;
}
.nexgen-shop-origin-pills .nexgen-shop-pill-label {
  font-weight: 600;
}

/* Sort */
.nexgen-shop-sort {
  display: flex;
  align-items: center;
}
.nexgen-shop-sort-field {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.nexgen-shop-sort-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-shop-sort-select {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--near-black);
  background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  padding: 10px 36px 10px 14px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%231C1A17' stroke-width='1.5' stroke-linecap='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  min-width: 180px;
  transition-property: border-color, box-shadow !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-standard) !important;
}
.nexgen-shop-sort-select:focus {
  outline: none;
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.15);
}

/* --- Grid body --- */
.nexgen-shop-grid {
  background: var(--cream);
  padding: 64px 24px 96px !important;
}
.nexgen-shop-grid > .e-con-inner,
.nexgen-shop-grid > .elementor-container {
  max-width: 1280px;
}

/* Hide any stray notices / result counts / default WC sort */
.nexgen-shop-grid .woocommerce-notices-wrapper:empty,
.nexgen-shop-grid .woocommerce-result-count,
.nexgen-shop-grid .woocommerce-ordering {
  display: none !important;
}

/* WooCommerce product grid */
.nexgen-shop-grid ul.products,
.nexgen-shop-grid .products {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.nexgen-shop-grid ul.products::before,
.nexgen-shop-grid ul.products::after {
  display: none !important;
}
.nexgen-shop-grid ul.products li.product {
  list-style: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 12px 12px 14px !important;
  background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 16px;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 6px 20px rgba(0, 0, 0, 0.06);
  clear: none !important;
  float: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  position: relative;
  -webkit-font-smoothing: antialiased;
  transition-property: transform, box-shadow, border-color, background !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-grid ul.products li.product:hover {
  transform: translateY(-4px);
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.04),
    0 14px 36px rgba(0, 0, 0, 0.10);
  border-color: rgba(0, 0, 0, 0.12);
  background: #FFFFFF;
}

/* Product image — full-bleed photo with bottom text overlay (no navy inset frame) */
.nexgen-shop-grid ul.products li.product a.woocommerce-loop-product__link,
.nexgen-shop-grid ul.products li.product a.woocommerce-LoopProduct-link {
  display: block !important;
  width: 100% !important;
  text-decoration: none !important;
  color: inherit !important;
  position: relative;
}
.nexgen-shop-grid .nexgen-shop-card-media {
  position: relative;
  width: calc(100% + 24px);
  margin: -12px -12px 0;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
  background: var(--cream);
}
.nexgen-shop-grid ul.products li.product img,
.nexgen-shop-grid ul.products li.product .attachment-woocommerce_thumbnail {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
  transition-property: transform !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-grid ul.products li.product:hover img {
  transform: scale(1.03);
}

/* Image overlay — white text on photo, light gradient scrim only */
.nexgen-shop-grid .nexgen-shop-card-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  padding: 40px 14px 12px;
  background: linear-gradient(
    180deg,
    rgba(6, 14, 34, 0) 0%,
    rgba(6, 14, 34, 0.32) 40%,
    rgba(6, 14, 34, 0.72) 100%
  );
  pointer-events: none;
}
.nexgen-shop-grid .nexgen-shop-card-overlay__copy {
  min-width: 0;
  flex: 1 1 auto;
}
.nexgen-shop-grid .nexgen-shop-card-overlay__title,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__title,
.nexgen-shop-grid ul.products li.product h2.nexgen-shop-card-overlay__title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 18px !important; /* was 14 — +2 steps for legibility on photo */
  line-height: 1.15 !important;
  color: #FFFFFF !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  text-wrap: balance;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  padding: 0 !important;
  margin: 0 0 4px !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nexgen-shop-grid .nexgen-shop-card-overlay__meta {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 13px; /* was 11 */
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.2px;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nexgen-shop-grid .nexgen-shop-card-overlay__price {
  flex: 0 0 auto;
  align-self: flex-end;
  text-align: right;
  pointer-events: none;
  color: #FFFFFF !important;
}
/* Force white through Woo price HTML (.price / .amount / bdi / currency) —
   theme + Elementor kit often set near-black on .woocommerce-Price-amount. */
.nexgen-shop-grid .nexgen-shop-card-overlay__price,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price *,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price *,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .woocommerce-Price-amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .woocommerce-Price-amount bdi,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .woocommerce-Price-currencySymbol,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price bdi {
  color: #FFFFFF !important;
}
/* First paint fallback if .price wrapper is missing (should be rare after PHP wrap). */
.nexgen-shop-grid .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price > .amount,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .amount {
  display: block !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price,
.nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price {
  display: flex !important;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important; /* match post–dose-switch look */
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  letter-spacing: 0 !important;
  margin: 0 !important;
  line-height: 1.15 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price .amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price .woocommerce-Price-amount {
  font-family: 'Outfit', sans-serif !important;
  font-weight: inherit !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  letter-spacing: inherit !important;
}
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price del,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price del *,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price del .amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price del .woocommerce-Price-amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price del bdi {
  color: rgba(255, 255, 255, 0.72) !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  margin: 0 !important;
  opacity: 1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins *,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins .amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins .woocommerce-Price-amount,
.nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins bdi {
  text-decoration: none !important;
  color: #F0D78C !important; /* near-white gold — readable on dark scrim */
  font-size: 14px !important;
  font-weight: 700 !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

/* On-sale badge — anchored to media frame */
.nexgen-shop-grid .nexgen-shop-card-media .onsale,
.nexgen-shop-grid ul.products li.product .onsale {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  left: auto !important;
  min-height: auto !important;
  min-width: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 5px 10px !important;
  background: rgba(197, 51, 58, 0.15) !important;
  color: var(--heritage-red) !important;
  border: 1px solid rgba(197, 51, 58, 0.3) !important;
  border-radius: 4px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 10px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  z-index: 2 !important;
}

/* Category eyebrow (injected via woocommerce_before_shop_loop_item_title hook — optional) */
.nexgen-shop-grid ul.products li.product .nexgen-card-eyebrow {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 8px;
}

/* White-body stack: Mix & Match always, then dose pills (or mid-gap for no-dose) */
.nexgen-shop-grid .nexgen-family-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 8px;
  margin: 12px 0 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(28, 26, 23, 0.09);
  min-width: 0;
}
/* No multi-dose pills: vertically center Mix & Match in the white body gap */
.nexgen-shop-grid .nexgen-family-card-body--no-doses {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  gap: 0;
}
.nexgen-shop-grid .nexgen-family-card-body--has-doses {
  justify-content: flex-start;
}
.nexgen-shop-grid .nexgen-family-card-selector {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
  width: 100%;
  min-height: 0;
}
.nexgen-shop-grid .nexgen-family-card-selector--empty {
  display: none;
}
.nexgen-shop-grid .nexgen-family-card-selector__format {
  width: 100%;
  min-width: 0;
}
.nexgen-shop-grid .nexgen-family-card-selector__format-label {
  display: none;
}
.nexgen-shop-grid .nexgen-family-card-selector__options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  align-items: stretch;
  gap: 5px;
  width: 100%;
}
/* Dose pills — equal-width cells filling the white body; height matches Mix & Match tiers */
.nexgen-shop-grid .nexgen-family-card-selector__option {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 36px; /* match .nexgen-shop-card-bundle__tier */
  padding: 8px 6px;
  background: linear-gradient(180deg, #FFFFFF 0%, var(--cream) 100%);
  border: 1px solid rgba(28, 26, 23, 0.16);
  border-radius: 6px;
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
  transition-property: background, border-color, color, box-shadow, transform;
  transition-duration: var(--dur-micro);
  transition-timing-function: var(--ease-standard);
}
.nexgen-shop-grid .nexgen-family-card-selector__option:hover:not(.is-active),
.nexgen-shop-grid .nexgen-family-card-selector__option:focus-visible:not(.is-active) {
  background: linear-gradient(180deg, #FFF9EB 0%, rgba(201, 168, 76, 0.22) 100%);
  border-color: var(--accent-gold);
  color: var(--deep-navy);
  box-shadow:
    0 0 0 1px rgba(201, 168, 76, 0.28),
    0 2px 6px rgba(201, 168, 76, 0.18);
  transform: translateY(-1px);
  outline: none;
}
.nexgen-shop-grid .nexgen-family-card-selector__option:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(26, 49, 120, 0.22);
}
.nexgen-shop-grid .nexgen-family-card-selector__option.is-active,
.nexgen-shop-grid .nexgen-family-card-selector__option.is-active:hover,
.nexgen-shop-grid .nexgen-family-card-selector__option.is-active:focus-visible {
  background: linear-gradient(180deg, #152448 0%, var(--deep-navy) 100%);
  border-color: var(--accent-gold);
  color: #FFFFFF;
  box-shadow:
    inset 0 0 0 1px rgba(201, 168, 76, 0.55),
    0 2px 8px rgba(11, 21, 48, 0.22);
  transform: none;
}
.nexgen-shop-grid .nexgen-family-card-selector__option.is-unavailable:not(.is-active) {
  color: var(--warm-gray);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  opacity: 0.68;
  background: var(--cream);
  box-shadow: none;
}
.nexgen-shop-grid .nexgen-family-card-selector__option.is-unavailable:not(.is-active):hover {
  background: var(--cream);
  border-color: rgba(28, 26, 23, 0.14);
  color: var(--warm-gray);
  box-shadow: none;
  transform: none;
}

/* Compact Mix & Match strip — desktop/tablet; hidden on mobile (NGS-220) */
.nexgen-shop-grid .nexgen-shop-card-bundle {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 5px;
  width: 100%;
  padding: 0;
  min-width: 0;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__eyebrow {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: var(--accent-gold);
  line-height: 1.2;
}
/*
 * One centered chip row. WooCommerce clearfix (::before/::after display:table)
 * must be killed — those pseudos become extra grid/flex items and cause the
 * empty leading cell + wrap (3 chips look like [hole][3][4] / [5+]).
 */
.nexgen-shop-grid .nexgen-shop-card-bundle__tiers {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 6px !important;
  width: 100% !important;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__tiers::before,
.nexgen-shop-grid .nexgen-shop-card-bundle__tiers::after {
  content: none !important;
  display: none !important;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__tier {
  display: inline-flex !important;
  flex: 1 1 0 !important;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 3px;
  max-width: 33.333%;
  width: auto;
  min-width: 0 !important;
  min-height: 36px;
  padding: 6px 4px;
  border-radius: 6px;
  background: rgba(26, 49, 120, 0.04);
  border: 1px solid rgba(28, 26, 23, 0.08);
  white-space: nowrap;
  float: none !important;
  clear: none !important;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__tier--best {
  background: linear-gradient(180deg, #152448 0%, var(--deep-navy) 100%);
  border-color: rgba(201, 168, 76, 0.45);
}
.nexgen-shop-grid .nexgen-shop-card-bundle__qty,
.nexgen-shop-grid .nexgen-shop-card-bundle__sep,
.nexgen-shop-grid .nexgen-shop-card-bundle__pct {
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__qty {
  color: var(--near-black);
}
.nexgen-shop-grid .nexgen-shop-card-bundle__sep {
  color: var(--warm-gray);
  font-weight: 600;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__tier--best .nexgen-shop-card-bundle__qty,
.nexgen-shop-grid .nexgen-shop-card-bundle__tier--best .nexgen-shop-card-bundle__sep {
  color: #FFFFFF;
}
.nexgen-shop-grid .nexgen-shop-card-bundle__pct {
  color: var(--brand-blue);
}
.nexgen-shop-grid .nexgen-shop-card-bundle__tier--best .nexgen-shop-card-bundle__pct {
  color: var(--accent-gold);
}
.nexgen-shop-grid .nexgen-shop-card-bundle__note {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 9px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.1px;
  color: #5C574F; /* high-contrast on cream/white (Rule 4.5) */
}

/* White-body title/price — info lives only in the image overlay */
.nexgen-shop-grid ul.products li.product > .woocommerce-loop-product__title,
.nexgen-shop-grid ul.products li.product > h2.woocommerce-loop-product__title,
.nexgen-shop-grid ul.products li.product > h2:not(.nexgen-shop-card-overlay__title),
.nexgen-shop-grid ul.products li.product > .price,
.nexgen-shop-grid ul.products li.product > .star-rating {
  display: none !important;
}

/* Fallback title only when overlay markup is absent */
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) .woocommerce-loop-product__title,
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) h2 {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  color: var(--near-black) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  padding: 0 !important;
  margin: 0 0 6px !important;
  text-wrap: balance;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 428px) {
  .nexgen-shop-grid .nexgen-family-card-body {
    margin: 10px 0 8px;
    padding-top: 6px;
    gap: 6px;
  }
  .nexgen-shop-grid .nexgen-family-card-selector__options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
  .nexgen-shop-grid .nexgen-family-card-selector__option {
    min-height: 30px !important;
    padding: 5px 3px !important;
    font-size: 10px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nexgen-shop-grid .nexgen-family-card-selector__option {
    transition: none;
  }
  .nexgen-shop-grid .nexgen-family-card-selector__option:hover:not(.is-active),
  .nexgen-shop-grid .nexgen-family-card-selector__option:focus-visible:not(.is-active) {
    transform: none;
  }
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions .button:active,
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.button:active,
  .nexgen-shop-grid ul.products li.product > .button:active,
  .nexgen-shop-grid ul.products li.product > a.add_to_cart_button:active {
    transform: none !important;
  }
}

/* Rating */
.nexgen-shop-grid ul.products li.product .star-rating {
  margin: 0 0 10px !important;
  font-size: 12px !important;
  color: var(--accent-gold) !important;
}

/* Price — fallback outside overlay (only when overlay markup is absent) */
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price {
  display: flex !important;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 17px !important;
  font-variant-numeric: tabular-nums;
  color: var(--near-black) !important;
  letter-spacing: 0 !important;
  margin: 0 0 12px !important;
}
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price .amount {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums;
  color: var(--near-black) !important;
  letter-spacing: 0 !important;
}
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price del {
  color: var(--warm-gray) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  margin: 0 !important;
  opacity: 0.75;
}
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price del .amount {
  color: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
}
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price ins {
  text-decoration: none !important;
  color: var(--heritage-red) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
}
.nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price ins .amount {
  color: inherit !important;
}

/* Dual card actions — blank.-style ADD + BUY NOW, pinned to card bottom */
.nexgen-shop-grid .nexgen-family-card-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: auto !important;
  width: 100%;
}
.nexgen-shop-grid .nexgen-family-card-actions:has(.nexgen-family-card-actions__soon) {
  grid-template-columns: 1fr;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions .button,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.button,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.add_to_cart_button,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.added_to_cart {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 11px 10px !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-align: center !important;
  min-height: 42px !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  cursor: pointer;
  transition-property: background-color, border-color, color, transform, box-shadow !important;
  transition-duration: 0.2s !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions .button:active,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.button:active {
  transform: scale(0.96) !important;
}
.nexgen-shop-grid .nexgen-family-card-actions__icon {
  display: block;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}
.nexgen-shop-grid .nexgen-family-card-actions__label {
  display: inline-block;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions__add,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.nexgen-family-card-actions__add {
  background-color: #FFFFFF !important;
  color: var(--near-black) !important;
  border: 1.5px solid rgba(28, 26, 23, 0.38) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06) !important;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions__add:hover,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.nexgen-family-card-actions__add:hover {
  background-color: #FFFFFF !important;
  border-color: var(--brand-blue) !important;
  color: var(--brand-blue) !important;
  box-shadow: 0 2px 6px rgba(26, 49, 120, 0.12) !important;
  transform: translateY(-1px) !important;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions__buy,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.nexgen-family-card-actions__buy,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions__soon,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.nexgen-family-card-actions__soon {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--brand-blue) !important;
  box-shadow: 0 2px 8px rgba(26, 49, 120, 0.22) !important;
}
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions__buy:hover,
.nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.nexgen-family-card-actions__buy:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px) !important;
}
/* Legacy single ATC fallback (non-custom templates) */
.nexgen-shop-grid ul.products li.product > .button,
.nexgen-shop-grid ul.products li.product > a.add_to_cart_button,
.nexgen-shop-grid ul.products li.product > a.product_type_simple,
.nexgen-shop-grid ul.products li.product > a.product_type_variable,
.nexgen-shop-grid ul.products li.product > a.product_type_grouped,
.nexgen-shop-grid ul.products li.product > a.product_type_external,
.nexgen-shop-grid ul.products li.product > a.added_to_cart {
  display: block !important;
  width: 100% !important;
  margin-top: auto !important;
  padding: 11px 16px !important;
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-align: center !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
  min-height: auto !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  cursor: pointer;
  transition-property: background-color, border-color, color, transform, box-shadow !important;
  transition-duration: 0.2s !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-grid ul.products li.product > .button:hover,
.nexgen-shop-grid ul.products li.product > a.add_to_cart_button:hover,
.nexgen-shop-grid ul.products li.product > a.product_type_simple:hover,
.nexgen-shop-grid ul.products li.product > a.product_type_variable:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px) !important;
}
.nexgen-shop-grid ul.products li.product > .button:active,
.nexgen-shop-grid ul.products li.product > a.add_to_cart_button:active {
  transform: scale(0.96) !important;
}
/* Defensive: kill any legacy ::before cart-icon background from prior custom_css */
.nexgen-shop-grid ul.products li.product .button::before,
.nexgen-shop-grid ul.products li.product a.add_to_cart_button::before,
.nexgen-shop-grid ul.products li.product .button::after,
.nexgen-shop-grid ul.products li.product a.add_to_cart_button::after {
  display: none !important;
  content: none !important;
}

/* COA chip (optional — shown when coa_purity exists) */
.nexgen-card-coa-chip {
  display: inline-block;
  padding: 3px 8px;
  background: var(--accent-gold-glow);
  color: var(--accent-gold);
  border: 1px solid var(--accent-gold-dim);
  border-radius: 4px;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  line-height: 1.4;
  margin-bottom: 8px;
}

/* --- Pagination --- */
.nexgen-shop-grid .woocommerce-pagination {
  margin: 56px 0 0 !important;
  text-align: center;
  border: none !important;
}
.nexgen-shop-grid .woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
  border: none !important;
}
.nexgen-shop-grid .woocommerce-pagination ul.page-numbers li {
  border: none !important;
}
.nexgen-shop-grid .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 8px;
  background: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-decoration: none !important;
  transition-property: border-color, background, color !important;
  transition-duration: var(--dur-micro) !important;
  transition-timing-function: var(--ease-standard) !important;
}
.nexgen-shop-grid .woocommerce-pagination .page-numbers:hover {
  border-color: rgba(0, 0, 0, 0.3);
}
.nexgen-shop-grid .woocommerce-pagination .page-numbers.current {
  background: var(--near-black);
  border-color: var(--near-black);
  color: var(--accent-gold);
}

/* --- Dark outro CTA band --- */
.nexgen-shop-cta {
  background: var(--deep-navy);
  padding: 80px 24px !important;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.nexgen-shop-cta > .e-con-inner,
.nexgen-shop-cta > .elementor-container {
  position: relative;
  z-index: 1;
  max-width: 720px;
}
.nexgen-shop-cta .nexgen-shop-cta-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.2;
  color: var(--white);
  margin: 0 0 28px;
}
.nexgen-shop-cta .nexgen-shop-cta-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}
.nexgen-shop-cta .nexgen-shop-cta-buttons a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: transparent;
  border: 1px solid var(--white-30);
  border-radius: 8px;
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition-property: background, border-color, transform !important;
  transition-duration: var(--dur-hover) !important;
  transition-timing-function: var(--ease-soft) !important;
}
.nexgen-shop-cta .nexgen-shop-cta-buttons a:hover {
  background: var(--white-06);
  border-color: var(--accent-gold-dim);
  transform: translateY(-1px);
}

/* The archive products widget is the sole child of .nexgen-shop-grid, so the
   section-level auto-tagger assigns it .nexgen-fade-in. Its height (3000px+)
   pushes the IntersectionObserver threshold out of natural first-view range
   and leaves it at opacity:0. Products inside have their own per-card reveal;
   the widget itself should never animate. Force it visible. */
.nexgen-shop-grid .elementor-widget-wc-archive-products {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: none !important;
}

/* --- Responsive: 1024px (large tablet) --- */
@media (max-width: 1024px) {
  .nexgen-shop-grid ul.products,
  .nexgen-shop-grid .products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
}


/* ================================================================
 * Desktop shop controls — editorial redesign (Direction A, 2026-04-26)
 * + NGS-173 sticky Origin/Categories sidebar (≥1025px)
 * ================================================================
 * Tablet (768–1024): dark controls bar with origin tabs; category/sort
 *   widgets in the bar stay hidden; stat strip shows count + Sort.
 * Desktop (≥1025): controls bar hidden; dedicated sticky left sidebar
 *   holds Origin + Categories; main column has stat strip + 3-col grid.
 * Mobile (≤767): drawer handles all filter UI.
 */

/* --- NGS-173: shop filter sidebar + three-column archive layout --- */
.nexgen-shop-layout {
  display: block;
  width: 100%;
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
}

.nexgen-shop-filter-column {
  display: none;
}

.nexgen-shop-filter-gutter {
  display: none;
}

.nexgen-shop-filter-sidebar {
  display: none;
}

.nexgen-shop-main {
  min-width: 0;
  width: 100%;
}

.nexgen-shop-filter-section {
  width: 100%;
}

.nexgen-shop-filter-section + .nexgen-shop-filter-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(12, 21, 48, 0.08);
}

.nexgen-shop-filter-heading {
  margin: 0 0 8px !important;
  padding: 0 0 7px !important;
  border-bottom: 2px solid var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 2.4px !important;
  text-transform: uppercase !important;
  color: var(--deep-navy) !important;
  line-height: 1.15 !important;
  text-align: left !important;
  text-wrap: balance;
  width: 100% !important;
}

.nexgen-shop-filter-nav--origins {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  width: 100%;
}

/* Two-column categories — shortens the tall filter stack */
.nexgen-shop-filter-nav--categories {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 2px 6px !important;
  width: 100%;
  align-items: stretch;
}

.nexgen-shop-filter-link {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  min-height: 34px;
  padding: 6px 9px !important;
  border-radius: 6px;
  text-decoration: none !important;
  text-align: left !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.1px !important;
  line-height: 1.2 !important;
  color: var(--near-black) !important;
  background: transparent;
  transition-property: background, color, box-shadow, transform;
  transition-duration: 0.18s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

.nexgen-shop-filter-nav--categories .nexgen-shop-filter-link {
  min-height: 32px;
  padding: 5px 8px !important;
  font-size: 12px !important;
}

.nexgen-shop-filter-link:hover {
  background: rgba(26, 49, 120, 0.06);
  color: var(--brand-blue) !important;
}

.nexgen-shop-filter-link:active {
  transform: scale(0.96);
}

.nexgen-shop-filter-link.is-active {
  background: var(--deep-navy);
  color: var(--white) !important;
  font-weight: 600 !important;
  box-shadow: inset 3px 0 0 0 var(--accent-gold);
}

.nexgen-shop-filter-link.is-active:hover {
  background: var(--brand-blue);
  color: var(--white) !important;
}

.nexgen-shop-filter-link-label {
  min-width: 0;
  flex: 1 1 auto;
  text-align: left !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Tablet+: sidebar owns Origins + Categories; hide legacy controls bar */
@media (min-width: 768px) {
  .nexgen-shop-controls {
    display: none !important;
  }

  .nexgen-shop-layout {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 20px 24px 0;
    box-sizing: border-box;
    align-self: stretch !important;
    flex: 1 1 auto;
  }

  /* Gutters unused — centering is place-items on a stretched rail */
  .nexgen-shop-filter-column > .nexgen-shop-filter-gutter {
    display: none !important;
  }

  .nexgen-shop-layout > .nexgen-shop-filter-column {
    display: grid !important;
    justify-items: center !important;
    align-content: start !important;
    justify-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .nexgen-shop-filter-column > .nexgen-shop-filter-sidebar,
  .nexgen-shop-layout .nexgen-shop-filter-sidebar {
    display: block !important;
    position: static !important;
    width: 300px !important;
    max-width: 300px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
    justify-self: center !important;
    float: none !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 14px 12px;
    background: var(--off-white);
    border: none;
    border-radius: 16px;
    box-shadow:
      0 0 0 1px rgba(12, 21, 48, 0.08),
      0 8px 24px rgba(6, 14, 34, 0.08);
    text-align: left !important;
  }

  .nexgen-shop-main {
    min-width: 0 !important;
    width: 100% !important;
  }

  .nexgen-shop-main .nexgen-shop-stat-strip {
    background: transparent;
    padding: 0 0 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    margin-bottom: 4px;
  }

  .nexgen-shop-main .nexgen-shop-grid {
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 4px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 96px !important;
  }

  .nexgen-shop-main .nexgen-shop-grid > .e-con-inner,
  .nexgen-shop-main .nexgen-shop-grid > .elementor-container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/*
 * Desktop shop shell:
 * 1) Break out of Elementor's centered/padded parent (fixes 225 vs 183 asymmetry)
 * 2) Equal 170px viewport gutters
 * 3) Narrower filter rail so 3-col product cards regain width
 * 4) Filter card centered in its rail via grid place-items
 *
 * 100vw breakouts include the vertical scrollbar gutter and create a slight
 * horizontal page scroll — clip X on shop archives so the page can't shimmy.
 */
html:has(body.post-type-archive-product),
html:has(body.tax-product_cat),
html:has(body.tax-product_tag),
html:has(body.woocommerce-shop),
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag,
body.woocommerce-shop {
  overflow-x: clip;
}

@media (min-width: 1025px) {
  .nexgen-shop-layout {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 320px minmax(0, 1fr) !important;
    column-gap: 24px !important;
    row-gap: 20px;
    align-items: start;
    justify-items: stretch !important;

    /* Full-viewport breakout from Elementor boxed parents.
       100lvw (large viewport) excludes the classic scrollbar overshoot that
       100vw causes; 100vw kept as fallback. */
    width: 100vw !important;
    width: 100lvw !important;
    max-width: 100vw !important;
    max-width: 100lvw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-left: calc(50% - 50lvw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50lvw) !important;
    padding: 24px 170px 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  /*
   * Rail is out of flow. JS sets height to the product-cards bottom (not
   * pagination / CTA). overflow:clip keeps paint inside that box; sticky on
   * the card still tracks page scroll and releases at that edge.
   */
  .nexgen-shop-layout > .nexgen-shop-filter-column {
    position: absolute !important;
    left: 170px !important;
    top: 24px !important;
    bottom: auto !important;
    width: 320px !important;
    max-width: 320px !important;
    height: 0 !important; /* JS replaces with cards-bottom height */
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
    overflow: clip !important;
    z-index: 2;
    pointer-events: none;
  }

  .nexgen-shop-filter-column > .nexgen-shop-filter-sidebar,
  .nexgen-shop-layout .nexgen-shop-filter-sidebar {
    pointer-events: auto;
    position: sticky !important;
    top: calc(var(--nexgen-header-offset, 88px) + 16px) !important;
    width: 300px !important;
    max-width: 300px !important;
    margin: 0 auto !important;
    /* Cap to the rail (product-cards height); scroll inside if taller */
    max-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  .nexgen-shop-layout > .nexgen-shop-main {
    grid-column: 2 !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
  }
}

@media (min-width: 768px) {
  /* --- Stat strip (count + Sort above the product grid) --- */
  .nexgen-shop-stat-strip {
    background: var(--cream);
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }
  .nexgen-shop-stat-strip-inner-wrap {
    max-width: 1280px;
    margin: 0 auto;
  }
  .nexgen-shop-stat-strip-count {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 13px;
    color: var(--medium-gray);
    letter-spacing: 0.3px;
  }
  .nexgen-shop-stat-strip-count strong {
    color: var(--near-black);
    font-weight: 600;
    font-feature-settings: "tnum" 1;
  }
  .nexgen-shop-stat-strip-controls {
    display: flex;
    align-items: center;
    gap: 28px;
  }
  .nexgen-shop-stat-strip-control {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
  }
  .nexgen-shop-stat-strip-control-label {
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 11px;
    color: var(--warm-gray);
    letter-spacing: 1.5px;
    text-transform: uppercase;
  }
  .nexgen-shop-stat-strip-select {
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    color: var(--near-black);
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.3px;
    padding: 4px 22px 4px 0;
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'><path d='M1 1L5 5L9 1' stroke='%231C1A17' stroke-width='1.5' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 4px center;
    transition: border-color 0.2s ease, color 0.2s ease;
  }
  .nexgen-shop-stat-strip-select:hover,
  .nexgen-shop-stat-strip-select:focus-visible {
    border-bottom-color: var(--accent-gold);
    color: var(--accent-gold-bright);
    outline: none;
  }
}

/* Mobile: hide the stat strip — drawer handles all filter UI ≤767px */
@media (max-width: 767px) {
  .nexgen-shop-stat-strip { display: none !important; }
}

/* --- Responsive: 768px (tablet) --- */
@media (max-width: 768px) {
  .nexgen-shop-hero {
    padding: 40px 16px 48px !important;
  }
  .nexgen-shop-controls {
    padding: 16px 16px !important;
  }
  .nexgen-shop-controls > .e-con-inner,
  .nexgen-shop-controls > .elementor-container {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .nexgen-shop-sort {
    justify-content: flex-end;
  }
  .nexgen-shop-sort-select {
    min-width: 160px;
  }
  .nexgen-shop-grid {
    padding: 48px 16px 72px !important;
  }
  .nexgen-shop-grid ul.products,
  .nexgen-shop-grid .products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  /* Mobile only: drop Mix & Match so cards stay short */
  .nexgen-shop-grid .nexgen-shop-card-bundle {
    display: none !important;
  }
  /* Mobile only: dose pills 2×2 (4-dose RETA etc. don't crush into one row) */
  .nexgen-shop-grid .nexgen-family-card-selector__options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
  .nexgen-shop-grid .nexgen-family-card-selector__option {
    min-height: 32px !important;
    padding: 6px 4px !important;
    font-size: 11px !important;
    border-radius: 5px !important;
  }
  /* Mobile only: smaller overlay type so name + dose aren't ellipsized away */
  .nexgen-shop-grid .nexgen-shop-card-overlay {
    gap: 6px;
    padding: 28px 10px 10px;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__title,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__title,
  .nexgen-shop-grid ul.products li.product h2.nexgen-shop-card-overlay__title {
    font-size: 12px !important;
    letter-spacing: 0.2px !important;
    line-height: 1.2 !important;
    margin-bottom: 2px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__meta {
    font-size: 10px !important;
    letter-spacing: 0.1px !important;
    line-height: 1.2 !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price *,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price *,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price > .amount,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .amount {
    font-size: 13px !important;
  }
  /* Mobile only: equal-height ADD + BUY NOW on one row */
  .nexgen-shop-grid .nexgen-family-card-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: stretch !important;
    gap: 6px !important;
  }
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions .button,
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.button,
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.add_to_cart_button,
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.added_to_cart {
    box-sizing: border-box !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 6px !important;
    font-size: 10px !important;
    letter-spacing: 0.5px !important;
    gap: 4px !important;
    align-self: stretch !important;
    white-space: nowrap !important;
    line-height: 1 !important;
  }
  /* Icons crowd the narrow cells — label-only on mobile */
  .nexgen-shop-grid .nexgen-family-card-actions__icon {
    display: none !important;
  }
  .nexgen-shop-cta {
    padding: 64px 16px !important;
  }
}

/* --- Responsive: 428px (small phone) --- */
@media (max-width: 428px) {
  .nexgen-shop-hero {
    padding: 32px 16px 40px !important;
  }
  .nexgen-shop-controls {
    padding: 12px 16px !important;
  }
  .nexgen-shop-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .nexgen-shop-pills::-webkit-scrollbar { display: none; }
  .nexgen-shop-pill {
    flex: 0 0 auto;
    padding: 8px 14px;
    font-size: 12px;
  }
  .nexgen-shop-sort-select {
    width: 100%;
    min-width: 0;
  }
  .nexgen-shop-grid {
    padding: 40px 16px 56px !important;
  }
  .nexgen-shop-grid ul.products,
  .nexgen-shop-grid .products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  .nexgen-shop-grid ul.products li.product {
    padding: 10px 10px 12px !important;
    border-radius: 14px;
  }
  .nexgen-shop-grid .nexgen-shop-card-media {
    width: calc(100% + 20px);
    margin: -10px -10px 0;
    border-radius: 14px 14px 0 0;
  }
  .nexgen-shop-grid ul.products li.product img,
  .nexgen-shop-grid ul.products li.product .attachment-woocommerce_thumbnail {
    padding: 0 !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay {
    padding: 24px 8px 8px;
    gap: 5px;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__title,
  .nexgen-shop-grid ul.products li.product h2.nexgen-shop-card-overlay__title {
    font-size: 11px !important;
    letter-spacing: 0.15px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__meta {
    font-size: 9px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price *,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price .price *,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price > .amount,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .woocommerce-Price-amount,
  .nexgen-shop-grid ul.products li.product .nexgen-shop-card-overlay__price > .amount {
    font-size: 12px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price del {
    font-size: 10px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins,
  .nexgen-shop-grid .nexgen-shop-card-overlay__price .price ins * {
    font-size: 12px !important;
  }
  .nexgen-shop-grid .nexgen-shop-card-bundle__tier {
    min-height: 34px;
    padding: 5px 6px;
    gap: 2px;
  }
  .nexgen-shop-grid .nexgen-shop-card-bundle__qty,
  .nexgen-shop-grid .nexgen-shop-card-bundle__sep,
  .nexgen-shop-grid .nexgen-shop-card-bundle__pct {
    font-size: 11px;
  }
  .nexgen-shop-grid .nexgen-shop-card-bundle__note {
    font-size: 8px;
  }
  .nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) .woocommerce-loop-product__title,
  .nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) h2 {
    font-size: 14px !important;
    margin-bottom: 4px !important;
  }
  .nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price {
    font-size: 15px !important;
    margin-bottom: 10px !important;
    gap: 6px;
  }
  .nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price del {
    font-size: 12px !important;
  }
  .nexgen-shop-grid ul.products li.product:not(:has(.nexgen-shop-card-overlay)) > .price ins {
    font-size: 15px !important;
  }
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions {
    gap: 6px !important;
  }
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions .button,
  .nexgen-shop-grid ul.products li.product .nexgen-family-card-actions a.button,
  .nexgen-shop-grid ul.products li.product > .button,
  .nexgen-shop-grid ul.products li.product > a.add_to_cart_button,
  .nexgen-shop-grid ul.products li.product > a.product_type_simple,
  .nexgen-shop-grid ul.products li.product > a.product_type_variable {
    box-sizing: border-box !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 6px !important;
    font-size: 10px !important;
    letter-spacing: 0.5px !important;
  }
  .nexgen-shop-grid ul.products li.product .onsale {
    top: 12px;
    right: 12px;
    padding: 3px 7px;
    font-size: 9px;
  }
  .nexgen-shop-cta {
    padding: 56px 16px !important;
  }
  .nexgen-shop-cta .nexgen-shop-cta-buttons {
    flex-direction: column;
    align-items: stretch;
  }
}


/* --- Single Product (PDP) ---
   Inspired by oathresearch.com structure, rendered through NexGen's brand lens.
   Architecture: light hero (cream) for product focus, dark supporting sections
   (deep-navy/midnight) for brand atmosphere. See design.md § Layout Patterns. */

body.single-product,
.single-product .site-content,
.single-product main {
  background: var(--cream);
}

.single-product .nexgen-hidden,
.elementor-element.nexgen-hidden {
  display: none !important;
}

/* Breadcrumb strip */
.nexgen-pdp-breadcrumb {
  background: var(--cream) !important;
  padding: 18px 0 6px !important;
}
.nexgen-pdp-breadcrumb .woocommerce-breadcrumb,
.nexgen-pdp-breadcrumb .elementor-widget-woocommerce-breadcrumb {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
  color: var(--warm-gray) !important;
}
.nexgen-pdp-breadcrumb a {
  color: var(--warm-gray) !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
.nexgen-pdp-breadcrumb a:hover { color: var(--accent-gold) !important; }

/* Hero split section (light) */
.nexgen-pdp-hero {
  background: var(--cream) !important;
  padding: 32px 0 90px !important;
  position: relative;
}
.nexgen-pdp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.025;
  mix-blend-mode: multiply;
}
.nexgen-pdp-hero > * { position: relative; z-index: 1; }
.nexgen-pdp-hero-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  align-items: start !important;
}

/*
 * Left PDP gallery card — EAEL Woo Product Images (Swiper), not WC FlexSlider.
 * Full-bleed main image (shop-card style). Thumbnail strip hidden. Multi-image
 * gets homepage-style .ngs-pdp-gallery-nav (‹ ••• ›) over the photo.
 */
.nexgen-pdp-card {
  background: var(--card-light) !important;
  border-radius: 12px !important;
  padding: 0 !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  position: sticky;
  top: 120px;
  overflow: hidden;
}
.nexgen-pdp-card .nexgen-pdp-gallery,
.nexgen-pdp-card .elementor-widget-eael-woo-product-images,
.nexgen-pdp-card .elementor-widget-container,
.nexgen-pdp-card .elementor-widget-wrap,
.nexgen-pdp-card .eael-single-product-images,
.nexgen-pdp-card .product_image_slider,
.nexgen-pdp-card .product_image_slider__container,
.nexgen-pdp-card .product_image_slider__container .swiper,
.nexgen-pdp-card .product_image_slider__container .swiper-wrapper,
.nexgen-pdp-card .product_image_slider__container .swiper-slide {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* Kill EAEL widget custom_css inset (.image_slider__image padding + #CED8F8 bg) */
.nexgen-pdp-card .image_slider__image,
.nexgen-pdp-card .swiper-wrapper .swiper-slide .image_slider__image,
.nexgen-pdp-gallery .image_slider__image {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
/* Main image: edge-to-edge, square crop like shop cards */
.nexgen-pdp-card .product_image_slider__container .swiper-slide img,
.nexgen-pdp-card .image_slider__image img,
.nexgen-pdp-card .product_image_slider__container img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  transition: transform 0.35s ease;
}
.nexgen-pdp-card:hover .product_image_slider__container .swiper-slide-active img {
  transform: scale(1.02);
}
/* Hide EAEL thumbnail strip (the white box under the hero image) */
.nexgen-pdp-card .product_image_slider__thumbs,
.nexgen-pdp-gallery .product_image_slider__thumbs {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
}
/* Stage for overlay nav */
.nexgen-pdp-card .product_image_slider__container,
.nexgen-pdp-card .product_image_slider__container .swiper {
  position: relative !important;
  overflow: hidden !important;
}
/* Hide stock EAEL arrows/pagination until JS parks them in the cluster */
.nexgen-pdp-card .product_image_slider__container > .swiper > .swiper-button-prev,
.nexgen-pdp-card .product_image_slider__container > .swiper > .swiper-button-next,
.nexgen-pdp-card .product_image_slider__container > .swiper > .swiper-pagination {
  opacity: 0;
  pointer-events: none;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-prev,
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-next,
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-pagination,
.nexgen-pdp-card .ngs-pdp-gallery-nav .ngs-pdp-gallery-nav__btn,
.nexgen-pdp-card .ngs-pdp-gallery-nav .ngs-pdp-gallery-nav__dots {
  opacity: 1;
  pointer-events: auto;
}

/* PDP gallery nav — homepage hero breadcrumb cluster language */
.nexgen-pdp-card .ngs-pdp-gallery-nav {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 6;
  display: none; /* JS shows when 2+ slides */
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  pointer-events: auto;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav.is-ready {
  display: flex;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-prev,
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-next,
.nexgen-pdp-card .ngs-pdp-gallery-nav__btn {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  width: 28px !important;
  height: 28px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border: none !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  transition: color 0.2s ease;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-prev:after,
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-next:after {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: inherit !important;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-prev:hover,
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-next:hover,
.nexgen-pdp-card .ngs-pdp-gallery-nav__btn:hover,
.nexgen-pdp-card .ngs-pdp-gallery-nav__btn:focus {
  color: var(--accent-gold) !important;
  outline: none;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-pagination,
.nexgen-pdp-card .ngs-pdp-gallery-nav__dots {
  position: static !important;
  width: auto !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-pagination-bullet,
.nexgen-pdp-card .ngs-pdp-gallery-nav__dot {
  appearance: none;
  border: none;
  width: 6px !important;
  height: 6px !important;
  margin: 0 4px !important;
  padding: 0;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.4) !important;
  opacity: 1 !important;
  cursor: pointer;
  transition: background 0.2s ease, width 0.2s ease, border-radius 0.2s ease;
}
.nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-pagination-bullet-active,
.nexgen-pdp-card .ngs-pdp-gallery-nav__dot.is-active {
  background: var(--accent-gold) !important;
  width: 16px !important;
  border-radius: 999px !important;
}
@media (max-width: 768px) {
  .nexgen-pdp-card .ngs-pdp-gallery-nav {
    bottom: 12px;
    gap: 6px;
    padding: 5px 8px;
  }
  .nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-prev,
  .nexgen-pdp-card .ngs-pdp-gallery-nav .swiper-button-next,
  .nexgen-pdp-card .ngs-pdp-gallery-nav__btn {
    width: 26px !important;
    height: 26px !important;
  }
}

/* Buy box */
.nexgen-pdp-buybox {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  padding: 8px 0 !important;
}
.nexgen-pdp-rating .elementor-star-rating,
.nexgen-pdp-rating .star-rating { color: var(--accent-gold) !important; }

/* Title Cormorant Garamond Tier 1b */
.nexgen-pdp-title .elementor-heading-title,
.nexgen-pdp-title .product_title,
.nexgen-pdp-title h1 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: 44px !important;
  line-height: 1.15 !important;
  letter-spacing: 0.2px !important;
  color: var(--near-black) !important;
  margin: 0 0 8px !important;
  text-transform: none !important;
}

/* Bundle discount ladder (PDP) — matches dose-selector card language:
   white shell, light option tiles, navy selected/best, Outfit type. */

.nexgen-pdp-bundle-ladder-wrap {
  margin: 4px 0 0 !important;
}
.nexgen-pdp-bundle-ladder {
  margin: 0 !important;
  padding: 10px !important;
  border-radius: 8px !important;
  background: var(--white) !important;
  border: 1px solid rgba(11, 21, 48, 0.22) !important;
  box-shadow: 0 1px 3px rgba(11, 21, 48, 0.05) !important;
}
.nexgen-pdp-bundle-ladder__head {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 6px 10px !important;
  margin: 0 0 8px !important;
}
.nexgen-pdp-bundle-ladder__eyebrow {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: var(--accent-gold) !important;
  margin: 0 !important;
}
.nexgen-pdp-bundle-ladder__helper {
  font-family: 'Outfit', sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: var(--warm-gray) !important;
  margin: 0 !important;
}
.nexgen-pdp-bundle-ladder__steps {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 6px !important;
  align-items: stretch !important;
}
.nexgen-pdp-bundle-ladder__step {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  min-height: 52px !important;
  background: var(--white) !important;
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 6px !important;
  padding: 8px !important;
  text-align: center !important;
  color: var(--near-black) !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}
.nexgen-pdp-bundle-ladder__step--dark {
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  color: var(--white) !important;
  box-shadow: inset 0 0 0 1px var(--accent-gold-dim) !important;
}
.nexgen-pdp-bundle-ladder__step--active:not(.nexgen-pdp-bundle-ladder__step--dark) {
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  transform: translateY(-1px) !important;
}
.nexgen-pdp-bundle-ladder__ribbon {
  position: absolute !important;
  top: -7px !important;
  right: 8px !important;
  left: auto !important;
  transform: none !important;
  background: var(--heritage-red) !important;
  color: var(--white) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 9px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  padding: 2px 7px !important;
  border-radius: 3px !important;
  white-space: nowrap !important;
}
.nexgen-pdp-bundle-ladder__chip-qty {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: var(--near-black) !important;
  line-height: 1.1 !important;
}
.nexgen-pdp-bundle-ladder__step--dark .nexgen-pdp-bundle-ladder__chip-qty {
  color: var(--white) !important;
}
.nexgen-pdp-bundle-ladder__chip-pct {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  color: var(--accent-gold) !important;
}
/* Legacy selectors kept harmless for older cached markup */
.nexgen-pdp-bundle-ladder__step-eyebrow,
.nexgen-pdp-bundle-ladder__qty,
.nexgen-pdp-bundle-ladder__items,
.nexgen-pdp-bundle-ladder__pct {
  display: none !important;
}

@media (max-width: 428px) {
  .nexgen-pdp-bundle-ladder {
    padding: 9px !important;
  }
  .nexgen-pdp-bundle-ladder__steps { gap: 6px !important; }
  .nexgen-pdp-bundle-ladder__step {
    min-height: 48px !important;
    padding: 7px 6px !important;
  }
  .nexgen-pdp-bundle-ladder__chip-qty { font-size: 12px !important; }
  .nexgen-pdp-bundle-ladder__chip-pct { font-size: 10px !important; }
}

/* Product group selector (PDP) — NGS-134, format-aware refresh
   Keeps origins isolated and separates delivery formats from dose choices. */
.nexgen-product-group-selector-wrap {
  margin: -4px 0 14px !important;
}
.nexgen-product-group-selector {
  width: 100% !important;
}
.nexgen-product-group-selector__context-label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 6px !important;
}
.nexgen-product-group-selector__groups {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
.nexgen-product-group-selector__format {
  background: var(--white) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 8px !important;
  padding: 10px !important;
  min-width: 0 !important;
}
.nexgen-product-group-selector__format.is-primary {
  border-color: rgba(11, 21, 48, 0.22) !important;
  box-shadow: 0 1px 3px rgba(11, 21, 48, 0.05) !important;
}
.nexgen-product-group-selector__format-head {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin: 0 0 8px !important;
}
.nexgen-product-group-selector__format-label {
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: var(--near-black) !important;
}
.nexgen-product-group-selector__format-head > span {
  font-family: 'Outfit', sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: var(--warm-gray) !important;
}
.nexgen-product-group-selector__options {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)) !important;
  gap: 6px !important;
}
/* Single-dose PDPs: one full-width pill so price/dose read at buybox scale
   (multi-dose stays auto-fit columns). */
.nexgen-product-group-selector--single .nexgen-product-group-selector__options {
  grid-template-columns: 1fr !important;
}
.nexgen-product-group-selector--single .nexgen-product-group-selector__option {
  width: 100% !important;
  min-height: 64px !important;
  padding: 12px 16px !important;
}

.nexgen-product-group-selector__option {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  min-width: 0 !important;
  min-height: 56px !important;
  padding: 9px 8px !important;
  background: var(--card-light) !important;
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 6px !important;
  color: var(--near-black) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
}
.nexgen-product-group-selector__option-dose {
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.2px !important;
  text-transform: uppercase !important;
  opacity: 0.85;
}
.nexgen-product-group-selector__option-price,
.nexgen-product-group-selector__option-price .amount,
.nexgen-product-group-selector__option-price .woocommerce-Price-amount {
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  color: inherit !important;
  opacity: 1;
  font-variant-numeric: tabular-nums;
}
.nexgen-product-group-selector__option:hover,
.nexgen-product-group-selector__option:focus-visible {
  background: var(--white) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--brand-blue) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}
.nexgen-product-group-selector__option.is-active {
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  color: var(--white) !important;
  cursor: default !important;
  box-shadow: inset 0 0 0 1px var(--accent-gold-dim) !important;
}
.nexgen-product-group-selector__option.is-active .nexgen-product-group-selector__option-price {
  color: var(--accent-gold) !important;
  opacity: 1;
}
.nexgen-product-group-selector__option.is-active .nexgen-product-group-selector__option-dose {
  opacity: 0.9;
}
@media (max-width: 428px) {
  .nexgen-product-group-selector__format {
    padding: 9px !important;
  }
  .nexgen-product-group-selector__format-head {
    align-items: center !important;
  }
  .nexgen-product-group-selector__format-head > span {
    font-size: 9px !important;
  }
  .nexgen-product-group-selector__option {
    min-height: 52px !important;
    padding: 8px 6px !important;
  }
  .nexgen-product-group-selector__option-dose {
    font-size: 11px !important;
  }
  .nexgen-product-group-selector__option-price,
  .nexgen-product-group-selector__option-price .amount,
  .nexgen-product-group-selector__option-price .woocommerce-Price-amount {
    font-size: 14px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nexgen-product-group-selector__option {
    transition: none !important;
  }
  .nexgen-product-group-selector__option:hover,
  .nexgen-product-group-selector__option:focus-visible {
    transform: none !important;
  }
}

/* Bundle nudge banner (cart) — NGS-25
   Renders at woocommerce_before_cart priority 6 (under the ambassador banner).
   Heritage-blue band with gold progress text. */
.nexgen-bundle-cart-nudge {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  background: var(--heritage-blue) !important;
  color: var(--white) !important;
  border-radius: 8px !important;
  padding: 12px 18px !important;
  margin: 0 0 18px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 0.2px !important;
}
.nexgen-bundle-cart-nudge__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--accent-gold) !important;
  flex: 0 0 auto !important;
}
.nexgen-bundle-cart-nudge__msg {
  flex: 1 1 auto !important;
}
.nexgen-bundle-cart-nudge__msg strong { color: var(--accent-gold) !important; }
@media (max-width: 428px) {
  .nexgen-bundle-cart-nudge {
    font-size: 13px !important;
    padding: 10px 14px !important;
    gap: 10px !important;
  }
}

/* Price */
.nexgen-pdp-price .price,
.nexgen-pdp-price .woocommerce-Price-amount {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 24px !important;
  color: var(--near-black) !important;
  letter-spacing: 0 !important;
}
.nexgen-pdp-price del,
.nexgen-pdp-price del .woocommerce-Price-amount {
  color: var(--warm-gray) !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  margin-right: 10px;
}
.nexgen-pdp-price ins,
.nexgen-pdp-price ins .woocommerce-Price-amount {
  color: var(--heritage-red) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
}

/* Reta oral spray — condensed PDP description card (NGS-187) */
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc {
  max-width: 560px;
  text-align: center;
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc p {
  margin: 0 0 10px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--near-black) !important;
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc__lead {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--medium-gray) !important;
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc__strength {
  font-size: 17px !important;
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc__bottle,
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc__directions {
  font-size: 15px !important;
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc strong {
  font-weight: 700;
  color: var(--near-black);
}
.single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc__fine {
  margin-top: 14px !important;
  font-size: 13.5px !important;
  line-height: 1.6 !important;
  color: var(--medium-gray) !important;
}
@media (max-width: 767px) {
  .single-product.product-reta-20mg-oral-spray .nexgen-pdp-description .nexgen-reta-oral-desc {
    text-align: left;
  }
}

/* Reta oral spray — Revital nano-encapsulation callout (NGS-158) */
.nexgen-pdp-nano-callout-wrap { margin: 0 0 16px !important; }
.nexgen-pdp-nano-callout {
  position: relative;
  padding: 20px 22px 18px;
  background: linear-gradient(135deg, rgba(11, 21, 48, 0.04) 0%, rgba(201, 168, 76, 0.08) 100%);
  border: 1px solid rgba(201, 168, 76, 0.22);
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(6, 14, 34, 0.06);
}
.nexgen-pdp-nano-callout__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 1.8px !important;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-pdp-nano-callout__title {
  margin: 0 0 8px !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 28px !important;
  line-height: 1.05 !important;
  font-weight: 600 !important;
  color: var(--near-black) !important;
  text-transform: none !important;
}
.nexgen-pdp-nano-callout__lead {
  margin: 0 0 14px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--near-black) !important;
  max-width: 560px;
}
.nexgen-pdp-nano-callout__points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
.nexgen-pdp-nano-callout__point {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
}
.nexgen-pdp-nano-callout__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--brand-blue);
}
.nexgen-pdp-nano-callout__icon svg {
  display: block;
}
.nexgen-pdp-nano-callout__copy {
  display: grid;
  gap: 3px;
}
.nexgen-pdp-nano-callout__copy strong {
  font-family: 'Outfit', sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: var(--near-black);
}
.nexgen-pdp-nano-callout__copy span {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--medium-gray);
}
.nexgen-pdp-nano-callout__fine {
  margin: 12px 0 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 11.5px !important;
  line-height: 1.5 !important;
  color: var(--warm-gray) !important;
}
@media (max-width: 767px) {
  .nexgen-pdp-nano-callout {
    padding: 16px 16px 14px;
  }
  .nexgen-pdp-nano-callout__title {
    font-size: 24px !important;
  }
  .nexgen-pdp-nano-callout__lead {
    font-size: 14px !important;
  }
}

/* Description — Azo Sans Tier 3 (denser for blank.-style scan length) */
.nexgen-pdp-description .elementor-widget-container,
.nexgen-pdp-description p {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--near-black) !important;
  max-width: 560px;
}
.nexgen-pdp-description p {
  margin: 0 0 10px !important;
}

/* In-buybox trust icon row */
.nexgen-pdp-trust-row-wrap { margin: 10px 0 4px !important; }
.nexgen-pdp-trust-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.nexgen-pdp-trust-pill {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px 8px;
  background: var(--white);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  text-align: center;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.nexgen-pdp-trust-pill:hover {
  border-color: var(--accent-gold-dim);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transform: translateY(-1px);
}
.nexgen-pdp-trust-pill svg {
  color: var(--brand-blue);
  stroke: var(--brand-blue);
}
.nexgen-pdp-trust-pill-label {
  font-family: 'Outfit', sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--near-black);
  line-height: 1.25;
}

/* Single compliance card — Research Use Only + optional lyophilized band inside.
   Research copy uses the original light-on-navy rules; lyo is an inner band only. */
.nexgen-pdp-disclaimer {
  margin-top: 18px !important;
  padding: 18px 20px !important;
  background: var(--deep-navy) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 10px !important;
  position: relative;
}
.nexgen-pdp-disclaimer .elementor-widget-container {
  padding: 0 !important;
  background: transparent !important;
}
.nexgen-pdp-disclaimer::before {
  content: 'RESEARCH USE ONLY';
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 1.8px;
  color: var(--accent-gold);
  margin-bottom: 8px;
}
.nexgen-pdp-disclaimer p,
.nexgen-pdp-disclaimer div,
.nexgen-pdp-disclaimer span {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  color: var(--white-60) !important;
  margin: 0 !important;
}
.nexgen-pdp-disclaimer strong,
.nexgen-pdp-disclaimer b {
  color: var(--white-90) !important;
  font-weight: 600 !important;
}

/* Lyophilized band — nested inside the same navy card (not a second shell) */
.nexgen-pdp-disclaimer .nexgen-pdp-lyo-notice {
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.nexgen-pdp-disclaimer .nexgen-pdp-lyo-notice__eyebrow {
  font-family: 'Outfit', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 1.8px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 8px !important;
}
.nexgen-pdp-disclaimer .nexgen-pdp-lyo-notice__body {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  color: var(--white-60) !important;
  margin: 0 !important;
}

/* Retired / hidden buybox widgets */
.nexgen-pdp-price--hidden,
.nexgen-pdp-lyo-notice-wrap--retired,
.nexgen-pdp-lyo-notice-wrap {
  display: none !important;
}

/* Hide stock quantity on PDP — customers don't need warehouse counts */
.nexgen-pdp-atc .stock,
.nexgen-pdp-buybox .stock,
.single-product .nexgen-pdp-buybox .availability {
  display: none !important;
}

/* Add-to-cart — shop-style dual Add + Buy Now */
.nexgen-pdp-atc { margin-top: 4px !important; }
.nexgen-pdp-bundle-ladder-wrap {
  margin: 2px 0 8px !important;
}
.nexgen-product-group-selector-wrap {
  margin: 4px 0 10px !important;
}
.nexgen-pdp-trust-row-wrap {
  margin: 4px 0 8px !important;
}
.nexgen-pdp-atc form.cart {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 10px !important;
}
.nexgen-pdp-atc .quantity {
  flex: 0 0 auto;
  margin: 0 !important;
}
.nexgen-pdp-atc .quantity input[type="number"],
.nexgen-pdp-atc .quantity .qty {
  background: var(--white) !important;
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 8px !important;
  padding: 12px 10px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  color: var(--near-black) !important;
  max-width: 84px;
  min-height: 48px;
  box-sizing: border-box;
}
.nexgen-pdp-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  flex: 1 1 220px;
  min-width: 0;
  margin: 0 !important;
}
.nexgen-pdp-atc .nexgen-pdp-actions .button,
.nexgen-pdp-atc .nexgen-pdp-actions button.single_add_to_cart_button,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__buy {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  min-height: 48px !important;
  white-space: nowrap;
  cursor: pointer;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition-property: background-color, border-color, color, transform, box-shadow !important;
  transition-duration: 0.2s !important;
  transition-timing-function: var(--ease-soft, cubic-bezier(0.2, 0, 0, 1)) !important;
}
.nexgen-pdp-atc .nexgen-pdp-actions .button:active,
.nexgen-pdp-atc .nexgen-pdp-actions button.single_add_to_cart_button:active,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__buy:active {
  transform: scale(0.97) !important;
}
.nexgen-pdp-actions .nexgen-family-card-actions__icon,
.nexgen-pdp-actions .nexgen-pdp-actions__icon {
  display: block;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}
.nexgen-pdp-actions__label {
  display: inline-block;
}
.nexgen-pdp-atc .nexgen-pdp-actions__add,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__add,
.nexgen-pdp-atc .nexgen-pdp-actions button.single_add_to_cart_button {
  background-color: #FFFFFF !important;
  color: var(--near-black) !important;
  border: 1.5px solid rgba(28, 26, 23, 0.38) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06) !important;
}
.nexgen-pdp-atc .nexgen-pdp-actions__add:hover,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__add:hover,
.nexgen-pdp-atc .nexgen-pdp-actions button.single_add_to_cart_button:hover {
  background-color: #FFFFFF !important;
  border-color: var(--brand-blue) !important;
  color: var(--brand-blue) !important;
  box-shadow: 0 2px 6px rgba(26, 49, 120, 0.12) !important;
  transform: translateY(-1px) !important;
}
.nexgen-pdp-atc .nexgen-pdp-actions__buy,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__buy {
  background-color: var(--brand-blue) !important;
  color: #ffffff !important;
  border: 1.5px solid var(--brand-blue) !important;
  box-shadow: 0 2px 8px rgba(26, 49, 120, 0.22) !important;
}
.nexgen-pdp-atc .nexgen-pdp-actions__buy:hover,
.nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__buy:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px) !important;
}

/* Horizontal Trust Strip (dark, after hero) */
.nexgen-pdp-trust-strip {
  background: var(--deep-navy) !important;
  padding: 36px 28px !important;
  position: relative;
  overflow: hidden;
}
.nexgen-pdp-trust-strip::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
}
.nexgen-pdp-trust-strip > * { position: relative; z-index: 1; }
.nexgen-pdp-trust-items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto;
}
.nexgen-pdp-trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 14px;
  background: var(--white-06);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  transition: border-color 0.25s ease, background 0.25s ease;
}
.nexgen-pdp-trust-item:hover {
  border-color: var(--accent-gold-dim);
  background: var(--accent-gold-glow);
}
.nexgen-pdp-trust-item svg {
  color: var(--accent-gold);
  stroke: var(--accent-gold);
  margin-bottom: 12px;
}
.nexgen-pdp-trust-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.5px;
  color: var(--white);
  margin-bottom: 4px;
}
.nexgen-pdp-trust-sub {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--white-60);
  line-height: 1.45;
}

/* NGS-206 — PDP Research Findings (Description → Research → References → COA) */
.nexgen-pdp-research-section.e-con,
.nexgen-pdp-research-section {
  --padding-top: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  padding: 0 !important;
}
.nexgen-pdp-research-section,
.nexgen-pdp-research {
  background: var(--deep-navy, #0B1220);
  color: var(--white-90, rgba(255,255,255,0.9));
  padding: 40px 28px;
}
.nexgen-pdp-research__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.nexgen-pdp-research__header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}
.nexgen-pdp-research__eyebrow {
  margin: 0 0 6px;
  font-family: Outfit, sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold, #C9A84C);
}
.nexgen-pdp-research__title {
  margin: 0;
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: clamp(26px, 3.6vw, 36px);
  color: #fff;
  line-height: 1.15;
}
.nexgen-pdp-research__summary,
.nexgen-pdp-research__finding,
.nexgen-pdp-research__limitations {
  font-family: Outfit, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--white-70, rgba(255,255,255,0.72));
}
.nexgen-pdp-research__summary {
  margin: 0 0 4px;
  max-width: 720px;
}
.nexgen-pdp-research__findings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0 14px;
}
.nexgen-pdp-research__card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  border: 1px solid rgba(201,168,76,0.28);
  background: rgba(255,255,255,0.03);
  padding: 16px 18px;
  border-radius: 2px;
  text-decoration: none !important;
  color: inherit;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
a.nexgen-pdp-research__card:hover,
a.nexgen-pdp-research__card:focus-visible {
  border-color: rgba(201,168,76,0.7);
  background: rgba(255,255,255,0.055);
  transform: translateY(-2px);
  outline: none;
}
.nexgen-pdp-research__card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: baseline;
  margin-bottom: 2px;
}
.nexgen-pdp-research__badge {
  display: inline-block;
  padding: 2px 7px;
  border: 1px solid rgba(201,168,76,0.55);
  color: var(--gold, #C9A84C);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.nexgen-pdp-research__model {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white-60, rgba(255,255,255,0.6));
}
.nexgen-pdp-research__card-title {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #fff;
}
.nexgen-pdp-research__card-journal {
  margin: 0;
  font-family: Outfit, sans-serif;
  font-size: 12px;
  color: var(--white-60, rgba(255,255,255,0.6));
}
.nexgen-pdp-research__finding {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nexgen-pdp-research__card-cta {
  margin-top: 4px;
  font-family: Outfit, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gold, #C9A84C);
}
.nexgen-pdp-research__limitations {
  margin: 0 0 8px;
  font-size: 13px;
}
.nexgen-pdp-research .nexgen-research-disclaimer {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.12);
  font-size: 12px;
  color: var(--white-60, rgba(255,255,255,0.6));
}
@media (max-width: 767px) {
  .nexgen-pdp-research-section,
  .nexgen-pdp-research {
    padding: 32px 18px;
  }
  .nexgen-pdp-research__findings {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.nexgen-newsletter-signup {
  display: grid;
  gap: 10px;
  max-width: 420px;
}
.nexgen-newsletter-signup input[type="email"] {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(0,0,0,0.25);
  color: #fff;
}
.nexgen-newsletter-signup label {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.45;
  color: rgba(255,255,255,0.75);
}
.nexgen-newsletter-signup button {
  justify-self: start;
  padding: 12px 18px;
  border: 0;
  background: #C9A84C;
  color: #111;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.nexgen-newsletter-status { min-height: 1.2em; font-size: 13px; }

.nexgen-trust-content {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 24px 72px;
  font-family: Outfit, sans-serif;
  line-height: 1.65;
}
.nexgen-trust-content h1 {
  font-family: "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: clamp(32px, 5vw, 44px);
}
.nexgen-trust-content h2 {
  margin-top: 1.75em;
  font-size: 1.15rem;
}
@media (max-width: 767px) {
  .nexgen-pdp-research-section,
  .nexgen-pdp-research { padding: 59px 18px; }
}

/* COA Section — matches Trust Strip / Related (deep-navy + subtle grain,
   no blue-glow wash). */
.nexgen-pdp-coa {
  background: var(--deep-navy) !important;
  padding: 64px 32px !important;
  position: relative;
  overflow: hidden;
}
.nexgen-pdp-coa::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
}
.nexgen-pdp-coa > * { position: relative; z-index: 1; }
.nexgen-pdp-coa-col {
  max-width: 1200px;
  margin: 0 auto;
}
/* COA Summary Card (rendered via [nexgen_coa_card] shortcode inside
   an html widget in the .nexgen-pdp-coa-col container). The original
   Elementor 2-col layout (reviews + COA) still sets .nexgen-pdp-coa-col
   to 50%; force it to full width now that reviews is .nexgen-hidden. */
.nexgen-pdp-coa .nexgen-pdp-coa-col,
.nexgen-pdp-coa > .e-con-inner > .nexgen-pdp-coa-col,
.nexgen-pdp-coa .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
  grid-column: 1 / -1 !important;
}
.nexgen-pdp-coa .nexgen-coa-card-wrap,
.nexgen-pdp-coa .nexgen-coa-card {
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.nexgen-coa-card {
  background: var(--white);
  border-radius: 14px;
  padding: 24px 28px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.nexgen-coa-card-main {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 1fr);
  gap: 26px;
  align-items: center;
}
.nexgen-coa-card-left { min-width: 0; }
.nexgen-coa-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(201, 168, 76, 0.14);
  color: var(--accent-gold);
  border: 1px solid var(--accent-gold-dim);
  border-radius: 999px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.nexgen-coa-pill svg {
  color: var(--accent-gold);
}
.nexgen-coa-heading {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: 26px !important;
  color: var(--near-black) !important;
  letter-spacing: 0.2px !important;
  line-height: 1.2 !important;
  margin: 0 0 6px !important;
  text-transform: none !important;
}
.nexgen-coa-desc {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--warm-gray);
  margin: 0;
  max-width: 380px;
}
.nexgen-coa-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 12px;
}
.nexgen-coa-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 11px;
  background: rgba(82, 132, 100, 0.12);
  color: #4F755D;
  border: 1px solid rgba(82, 132, 100, 0.16);
  border-radius: 7px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  line-height: 1;
  text-transform: uppercase;
}
.nexgen-coa-status-badge span {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.72;
  flex: 0 0 auto;
}

.nexgen-coa-card-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
}
.nexgen-coa-chips {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.nexgen-coa-chip {
  padding: 10px 12px;
  background: #F5F3EE;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
  text-align: center;
  min-width: 0;
}
.nexgen-coa-chip strong {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 15px;
  color: var(--near-black);
  line-height: 1.1;
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nexgen-coa-chip span {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 10px;
  color: var(--warm-gray);
  letter-spacing: 1px;
  text-transform: uppercase;
}

.nexgen-coa-card .nexgen-coa-view-btn {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 14px 22px !important;
  background: var(--accent-gold) !important;
  color: var(--near-black) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  width: auto !important;
  min-width: 0;
  align-self: stretch;
}
.nexgen-coa-card .nexgen-coa-view-btn:hover {
  /* Premium inversion on hover: near-black surface with gold text.
     Reads like a "challenge coin" state — changes value instead of
     hue, avoiding the fire-orange that --accent-gold-bright produces. */
  background: var(--near-black) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28) !important;
}
.nexgen-coa-card .nexgen-coa-view-btn:hover .nexgen-coa-chevron,
.nexgen-coa-card .nexgen-coa-view-btn:hover .nexgen-coa-arrow {
  color: var(--accent-gold);
}
.nexgen-coa-chevron,
.nexgen-coa-arrow {
  transition: transform 0.3s ease;
}
.nexgen-coa-view-btn:hover .nexgen-coa-arrow,
.nexgen-lab-view-btn:hover .nexgen-coa-arrow {
  transform: translateX(2px);
}

/* COA actions — View Certificate + Verify on site (Blank-style second CTA) */
.nexgen-coa-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}
.nexgen-coa-card-actions .nexgen-coa-view-btn,
.nexgen-coa-card-actions .nexgen-coa-verify-btn {
  flex: 1 1 160px;
}
.nexgen-coa-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 20px;
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid rgba(28, 26, 23, 0.1);
}
.nexgen-coa-card-footer__copy {
  flex: 1 1 220px;
  min-width: 0;
  max-width: 420px;
}
.nexgen-coa-card-footer__hint {
  margin: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  color: var(--warm-gray) !important;
}
/* Freedom Diagnostics search code — Blank-style quiet text line (not a CTA button) */
.nexgen-coa-card .nexgen-coa-search-code,
.nexgen-coa-search-code {
  display: block !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  color: var(--warm-gray) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.nexgen-coa-card-footer .nexgen-coa-search-code {
  margin: 0 !important;
}
.nexgen-coa-search-code__label,
.nexgen-coa-search-code__sep,
.nexgen-coa-search-code__lab {
  display: inline !important;
  color: var(--warm-gray) !important;
  font-weight: 400 !important;
}
/* Kill theme/Elementor button chrome — this is copyable text, not a button */
.nexgen-coa-card .nexgen-coa-search-code__value,
.nexgen-coa-search-code__value,
.nexgen-coa-card button.nexgen-coa-search-code__value {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: inherit !important;
  text-transform: none !important;
  text-align: left !important;
  color: var(--near-black) !important;
  cursor: pointer;
  text-decoration: underline !important;
  text-decoration-color: rgba(28, 26, 23, 0.22) !important;
  text-underline-offset: 2px;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.nexgen-coa-card .nexgen-coa-search-code__value:hover,
.nexgen-coa-card .nexgen-coa-search-code__value:focus-visible,
.nexgen-coa-search-code__value:hover,
.nexgen-coa-search-code__value:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  color: var(--brand-blue) !important;
  text-decoration-color: var(--brand-blue) !important;
  transform: none !important;
  outline: none !important;
}
.nexgen-coa-search-code__copied {
  display: none !important;
  margin-left: 8px;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--brand-blue) !important;
}
.nexgen-coa-search-code.is-copied .nexgen-coa-search-code__copied {
  display: inline !important;
}
.nexgen-coa-card .nexgen-coa-verify-btn {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 12px 18px !important;
  background: var(--white) !important;
  color: var(--deep-navy) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.3px !important;
  text-transform: uppercase !important;
  border: 1.5px solid rgba(11, 21, 48, 0.28) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  white-space: nowrap;
  min-width: 152px;
}
.nexgen-coa-card .nexgen-coa-verify-btn:hover,
.nexgen-coa-card .nexgen-coa-verify-btn:focus-visible {
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(6, 14, 34, 0.18) !important;
  outline: none;
}
.nexgen-coa-card .nexgen-coa-verify-btn .nexgen-coa-ext {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.nexgen-coa-card .nexgen-coa-verify-btn:hover .nexgen-coa-ext {
  transform: translate(1px, -1px);
}
.nexgen-coa-card[data-state="expanded"] .nexgen-coa-chevron {
  transform: rotate(180deg);
}

/* Collapsible PDF panel */
.nexgen-coa-pdf {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.35s ease 0.05s,
              margin-top 0.35s ease;
  margin-top: 0;
}
.nexgen-coa-card[data-state="expanded"] .nexgen-coa-pdf {
  max-height: 900px;
  opacity: 1;
  margin-top: 22px;
}
.nexgen-coa-pdf-inner {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #f5f5f5;
}
.nexgen-coa-pdf-inner iframe {
  display: block;
  width: 100%;
  height: 720px;
  border: 0;
  background: #f5f5f5;
}
.nexgen-coa-download {
  display: block;
  padding: 10px 16px;
  background: var(--near-black);
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none !important;
  text-align: center;
  transition: color 0.2s ease;
}
.nexgen-coa-download:hover {
  color: var(--accent-gold-bright) !important;
}

/* Hide the entire COA banner when this product has no COA PDF populated
   (body class set from child theme functions.php based on `certificate_pdf`). */
body.nexgen-no-coa .nexgen-pdp-coa,
body.nexgen-no-coa .nexgen-coa-block { display: none !important; }

/* ==========================================================================
   US PDP Lab Reports — stacked-rows layout (US products only).
   Renders inside the same .nexgen-coa-card shell as the global single-COA
   layout, but the inner structure is a vertical stack of rows. Each row
   has independent expand/collapse state via data-state on .nexgen-lab-row.
   Global products keep using .nexgen-coa-card-main (2-col grid above).
   Activated when shortcode renders the US branch (nexgen_is_us_finished_product).
   ========================================================================== */
.nexgen-coa-card-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.nexgen-coa-card-header .nexgen-coa-pill { margin-bottom: 6px; }
.nexgen-coa-card-header .nexgen-coa-heading { margin: 0 0 6px !important; }
.nexgen-coa-card-header .nexgen-coa-desc {
  max-width: 640px;
  margin: 0 0 10px;
}
.nexgen-lab-reports-list {
  display: flex;
  flex-direction: column;
}
.nexgen-lab-row {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, auto);
  gap: 18px;
  align-items: center;
  padding: 16px 0;
  border-top: 1px solid rgba(28, 26, 23, 0.08);
}
.nexgen-lab-row:first-child {
  border-top: none;
  padding-top: 4px;
}
.nexgen-lab-row-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.nexgen-lab-row-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: 20px !important;
  color: var(--near-black) !important;
  letter-spacing: 0.2px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-transform: none !important;
}
.nexgen-lab-row-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  max-width: 460px;
}
.nexgen-lab-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
/* Lab view button — variant of .nexgen-coa-view-btn at smaller scale.
   Same gold→inverted-black hover; less prominent so 2 buttons don't fight. */
.nexgen-coa-card .nexgen-lab-view-btn {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 11px 18px !important;
  background: var(--accent-gold) !important;
  color: var(--near-black) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
  width: auto !important;
  min-width: 152px;
  white-space: nowrap;
}
.nexgen-coa-card .nexgen-lab-view-btn:hover {
  background: var(--near-black) !important;
  color: var(--accent-gold) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28) !important;
}
.nexgen-coa-card .nexgen-lab-view-btn:hover .nexgen-coa-chevron,
.nexgen-coa-card .nexgen-lab-view-btn:hover .nexgen-coa-arrow {
  color: var(--accent-gold);
}
.nexgen-lab-row[data-state="expanded"] .nexgen-coa-chevron {
  transform: rotate(180deg);
}
/* Per-row PDF panel — collapses into the row, full card width when expanded.
   grid-column: 1/-1 spans both head and actions columns of the parent row. */
.nexgen-lab-row-pdf {
  grid-column: 1 / -1;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1),
              opacity 0.35s ease 0.05s,
              margin-top 0.35s ease;
  margin-top: 0;
}
.nexgen-lab-row[data-state="expanded"] .nexgen-lab-row-pdf {
  max-height: 900px;
  opacity: 1;
  margin-top: 16px;
}
.nexgen-lab-row-pdf-inner {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #f5f5f5;
}
.nexgen-lab-row-pdf-inner iframe {
  display: block;
  width: 100%;
  height: 720px;
  border: 0;
  background: #f5f5f5;
}

/* Lab Report detail pages — assay dossier for /lab-reports/{product}/ */
.nexgen-lab-report-page {
  background: var(--off-white);
  color: var(--near-black);
  -webkit-font-smoothing: antialiased;
}
.nexgen-lab-report-hero {
  padding: 64px 32px 40px;
  background:
    radial-gradient(ellipse 80% 50% at 12% 0%, rgba(201, 168, 76, 0.08), transparent 55%),
    var(--off-white);
}
.nexgen-lab-report-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto 28px;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  color: var(--warm-gray);
}
.nexgen-lab-report-breadcrumb a {
  color: var(--warm-gray);
  text-decoration: none;
}
.nexgen-lab-report-breadcrumb a:hover {
  color: var(--accent-gold);
}
.nexgen-lab-report-breadcrumb > * + *::before {
  content: '/';
  margin-right: 8px;
  color: rgba(28, 26, 23, 0.25);
}
.nexgen-lab-report-update-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto 28px;
  padding: 16px 18px;
  border-radius: 14px;
  background: rgba(201, 168, 76, 0.12);
  box-shadow: 0 1px 0 rgba(201, 168, 76, 0.28);
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
}
.nexgen-lab-report-update-banner > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(201, 168, 76, 0.22);
  color: var(--accent-gold);
  font-weight: 700;
}
.nexgen-lab-report-update-banner p {
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: var(--medium-gray);
}
.nexgen-lab-report-update-banner strong {
  color: var(--near-black);
}
.nexgen-lab-report-update-banner a {
  color: var(--accent-gold) !important;
  font-weight: 700;
  text-decoration: none !important;
}
.nexgen-lab-report-update-banner a:hover {
  color: var(--accent-gold-bright) !important;
}
.nexgen-lab-report-hero-grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.85fr) minmax(0, 1.05fr) minmax(260px, 0.85fr);
  gap: 36px;
  align-items: stretch;
  max-width: 1280px;
  margin: 0 auto;
}
.nexgen-lab-report-hero-media {
  margin: 0;
  display: flex;
  flex-direction: column;
  padding: 12px;
  border-radius: 20px;
  background: #fff;
  box-shadow:
    0 1px 0 rgba(28, 26, 23, 0.04),
    0 18px 48px rgba(6, 14, 34, 0.1);
}
.nexgen-lab-report-hero-img,
.nexgen-lab-report-hero-media-fallback {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 12px;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
  background:
    radial-gradient(circle at 30% 20%, rgba(201, 168, 76, 0.12), transparent 45%),
    #F5F3EE;
}
.nexgen-lab-report-hero-caption {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 12px;
  padding: 4px 4px 2px;
}
.nexgen-lab-report-hero-caption span {
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-hero-caption strong {
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--near-black);
}
.nexgen-lab-report-eyebrow {
  margin: 0 0 12px;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-lab-report-copy h1 {
  margin: 0 0 14px;
  max-width: 640px;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(40px, 4.6vw, 54px);
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--near-black);
  text-wrap: balance;
}
.nexgen-lab-report-subtitle {
  margin: 0 0 18px;
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  line-height: 1.45;
  color: var(--medium-gray);
}
.nexgen-lab-report-tested-pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  margin-bottom: 16px;
  border-radius: 6px;
  background: rgba(201, 168, 76, 0.14);
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.nexgen-lab-report-intro {
  max-width: 540px;
  margin: 0 0 24px;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--medium-gray);
  text-wrap: pretty;
}
.nexgen-lab-report-summary {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 24px;
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 80% 0%, rgba(201, 168, 76, 0.18), transparent 55%),
    var(--midnight);
  color: var(--white);
  box-shadow: 0 22px 48px rgba(6, 14, 34, 0.22);
}
.nexgen-lab-report-summary-purity {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.nexgen-lab-report-purity-value {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(40px, 5vw, 56px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--accent-gold);
  font-variant-numeric: tabular-nums;
}
.nexgen-lab-report-summary .nexgen-lab-report-purity-value {
  color: var(--accent-gold);
}
.nexgen-lab-report-purity-label {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.nexgen-lab-report-chip-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.nexgen-lab-report-chip {
  min-width: 0;
  padding: 12px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.nexgen-lab-report-chip--wide {
  grid-column: 1 / -1;
}
.nexgen-lab-report-chip strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: 'Outfit', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.15;
  color: var(--white);
  font-variant-numeric: tabular-nums;
}
.nexgen-lab-report-chip span {
  display: block;
  margin-top: 5px;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}
.nexgen-lab-report-trust-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nexgen-lab-report-trust-list li {
  position: relative;
  padding-left: 16px;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.72);
}
.nexgen-lab-report-trust-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent-gold);
}
.nexgen-lab-report-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
}
/* Beat WooCommerce / Hello Elementor default .button chrome on these CTAs. */
.nexgen-lab-report-page .nexgen-lab-report-primary-btn,
.nexgen-lab-report-page .nexgen-lab-report-product-link,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn,
.nexgen-lab-report-page button.nexgen-lab-report-primary-btn,
.nexgen-lab-report-page button.nexgen-lab-report-reveal-btn,
.nexgen-lab-report-page a.nexgen-lab-report-product-link {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 168px !important;
  min-height: 48px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 12px 22px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background-image: none !important;
  background-color: var(--accent-gold) !important;
  color: var(--near-black) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: 0 8px 20px rgba(201, 168, 76, 0.2) !important;
  cursor: pointer !important;
  transition-property: transform, background-color, color, box-shadow !important;
  transition-duration: 0.2s !important;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1) !important;
}
.nexgen-lab-report-page .nexgen-lab-report-primary-btn::before,
.nexgen-lab-report-page .nexgen-lab-report-primary-btn::after,
.nexgen-lab-report-page .nexgen-lab-report-product-link::before,
.nexgen-lab-report-page .nexgen-lab-report-product-link::after,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn::before,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn::after {
  content: none !important;
  display: none !important;
}
.nexgen-lab-report-page .nexgen-lab-report-product-link,
.nexgen-lab-report-page a.nexgen-lab-report-product-link {
  background-color: var(--near-black) !important;
  color: var(--white) !important;
  box-shadow: 0 8px 20px rgba(6, 14, 34, 0.16) !important;
}
.nexgen-lab-report-page .nexgen-lab-report-primary-btn:hover,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn:hover,
.nexgen-lab-report-page button.nexgen-lab-report-primary-btn:hover,
.nexgen-lab-report-page button.nexgen-lab-report-reveal-btn:hover {
  background-color: var(--near-black) !important;
  background-image: none !important;
  color: var(--accent-gold) !important;
  box-shadow: 0 10px 24px rgba(6, 14, 34, 0.18) !important;
  transform: none !important;
}
.nexgen-lab-report-page .nexgen-lab-report-product-link:hover,
.nexgen-lab-report-page a.nexgen-lab-report-product-link:hover {
  background-color: var(--deep-navy) !important;
  background-image: none !important;
  color: var(--accent-gold) !important;
  box-shadow: 0 10px 24px rgba(6, 14, 34, 0.2) !important;
  transform: none !important;
}
.nexgen-lab-report-page .nexgen-lab-report-primary-btn:active,
.nexgen-lab-report-page .nexgen-lab-report-product-link:active,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn:active,
.nexgen-lab-report-page button.nexgen-lab-report-primary-btn:active,
.nexgen-lab-report-page button.nexgen-lab-report-reveal-btn:active,
.nexgen-lab-report-page a.nexgen-lab-report-product-link:active {
  transform: scale(0.96) !important;
  box-shadow: 0 4px 12px rgba(6, 14, 34, 0.14) !important;
}
.nexgen-lab-report-page .nexgen-lab-report-primary-btn:focus-visible,
.nexgen-lab-report-page .nexgen-lab-report-product-link:focus-visible,
.nexgen-lab-report-page .nexgen-lab-report-reveal-btn:focus-visible {
  outline: 2px solid var(--accent-gold) !important;
  outline-offset: 3px !important;
}
.nexgen-lab-report-selector,
.nexgen-lab-report-batch-selector {
  max-width: 1280px;
  margin: 28px auto 0;
  padding: 18px 20px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow:
    0 1px 0 rgba(28, 26, 23, 0.05),
    0 14px 32px rgba(6, 14, 34, 0.05);
}
.nexgen-lab-report-selector-head {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 12px;
}
.nexgen-lab-report-selector-head span,
.nexgen-lab-report-batch-selector-label {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-selector-head p {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: var(--medium-gray);
}
.nexgen-lab-report-selector-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.nexgen-lab-report-selector-group {
  min-width: 0;
  padding: 12px;
  border-radius: 12px;
  background: #F5F3EE;
}
.nexgen-lab-report-selector-origin {
  display: block;
  margin: 0 0 10px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-lab-report-selector-options,
.nexgen-lab-report-batch-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nexgen-lab-report-selector-option,
.nexgen-lab-report-batch-option {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  min-width: 120px;
  min-height: 44px;
  padding: 10px 14px;
  border: 0;
  border-radius: 10px;
  background: #fff;
  color: var(--near-black) !important;
  text-decoration: none !important;
  box-shadow: 0 1px 0 rgba(28, 26, 23, 0.06);
  transition-property: transform, box-shadow, background-color, color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-lab-report-selector-option strong,
.nexgen-lab-report-batch-option strong {
  overflow-wrap: anywhere;
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;
}
.nexgen-lab-report-selector-option small,
.nexgen-lab-report-batch-option small {
  margin-top: 3px;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-selector-option:hover,
.nexgen-lab-report-batch-option:hover {
  box-shadow: 0 8px 18px rgba(6, 14, 34, 0.08);
  transform: translateY(-1px);
}
.nexgen-lab-report-selector-option.is-active,
.nexgen-lab-report-batch-option.is-active {
  background: rgba(82, 132, 100, 0.14);
  color: #315D42 !important;
  box-shadow: inset 0 0 0 1px rgba(82, 132, 100, 0.28);
}
.nexgen-lab-report-batch-selector {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-top: 14px;
}
.nexgen-lab-report-batch-option.is-latest:not(.is-active) {
  background: rgba(201, 168, 76, 0.1);
  box-shadow: inset 0 0 0 1px rgba(201, 168, 76, 0.28);
}
.nexgen-lab-report-details {
  max-width: 1280px;
  margin: 0 auto;
  padding: 28px 32px 96px;
}
.nexgen-lab-report-details-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.7fr);
  gap: 24px 48px;
  align-items: end;
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(28, 26, 23, 0.1);
}
.nexgen-lab-report-details-title {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(32px, 4vw, 42px);
  font-weight: 600;
  line-height: 1.1;
  color: var(--near-black);
  text-wrap: balance;
}
.nexgen-lab-report-details-lede {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--medium-gray);
  text-wrap: pretty;
}
.nexgen-lab-report-cards {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.nexgen-lab-report-batch-group {
  scroll-margin-top: 120px;
  padding: 8px 0 4px;
}
.nexgen-lab-report-batch-group + .nexgen-lab-report-batch-group {
  margin-top: 8px;
  padding-top: 28px;
  border-top: 1px solid rgba(28, 26, 23, 0.08);
}
.nexgen-lab-report-batch-head {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 16px;
  padding: 0 2px;
}
.nexgen-lab-report-batch-head > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.nexgen-lab-report-batch-head p {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 600;
  color: var(--near-black);
}
.nexgen-lab-report-batch-head > span {
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-batch-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(82, 132, 100, 0.14);
  color: #315D42;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.nexgen-lab-report-batch-badge.is-latest {
  background: rgba(201, 168, 76, 0.16);
  color: #8A6A1E;
}
.nexgen-lab-report-batch-group.is-active .nexgen-lab-report-batch-head p {
  color: var(--near-black);
}
.nexgen-lab-report-card {
  padding: 28px;
  border-radius: 18px;
  background: #fff;
  box-shadow:
    0 1px 0 rgba(28, 26, 23, 0.05),
    0 16px 36px rgba(6, 14, 34, 0.06);
  scroll-margin-top: 120px;
}
.nexgen-lab-report-card + .nexgen-lab-report-card {
  margin-top: 16px;
}
.nexgen-lab-report-card-top {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}
.nexgen-lab-report-card-eyebrow {
  margin: 0 0 8px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-lab-report-card h3 {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--near-black);
  text-wrap: balance;
}
.nexgen-lab-report-card-metric {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  min-width: 96px;
}
.nexgen-lab-report-card-metric strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 34px;
  font-weight: 600;
  line-height: 1;
  color: var(--near-black);
  font-variant-numeric: tabular-nums;
}
.nexgen-lab-report-card-metric span {
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-card-desc {
  max-width: 760px;
  margin: 0 0 20px;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--medium-gray);
  text-wrap: pretty;
}
.nexgen-lab-report-table {
  margin-bottom: 22px;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(28, 26, 23, 0.08);
}
.nexgen-lab-report-table > div {
  display: grid;
  grid-template-columns: minmax(140px, 0.32fr) minmax(0, 0.68fr);
  min-height: 54px;
}
.nexgen-lab-report-table > div + div {
  border-top: 1px solid rgba(28, 26, 23, 0.08);
}
.nexgen-lab-report-table span,
.nexgen-lab-report-table strong {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  font-family: 'Outfit', sans-serif;
}
.nexgen-lab-report-table span {
  background: #F5F3EE;
  color: var(--warm-gray);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.nexgen-lab-report-table strong {
  color: var(--near-black);
  font-size: 15px;
  font-weight: 500;
}
.nexgen-lab-report-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 20px;
}
.nexgen-lab-report-fact {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 120px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #F5F3EE;
}
.nexgen-lab-report-fact span {
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-lab-report-fact strong {
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--near-black);
}
.nexgen-lab-report-fact-num {
  font-variant-numeric: tabular-nums;
}
.nexgen-lab-report-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  align-items: center;
}
.nexgen-lab-report-download {
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.4px;
  color: var(--medium-gray) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.nexgen-lab-report-download:hover {
  color: var(--accent-gold) !important;
}
.nexgen-lab-report-card-pdf {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  margin-top: 0;
  transition-property: max-height, opacity, margin-top;
  transition-duration: 0.45s, 0.3s, 0.35s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1), ease, ease;
}
.nexgen-lab-report-card[data-state="expanded"] .nexgen-lab-report-card-pdf {
  max-height: 900px;
  opacity: 1;
  margin-top: 20px;
}
.nexgen-lab-report-card-pdf-inner {
  border-radius: 12px;
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  background: #f5f5f5;
}
.nexgen-lab-report-card-pdf-inner iframe {
  display: block;
  width: 100%;
  height: 720px;
  border: 0;
  background: #f5f5f5;
}
.nexgen-lab-report-pdf-modal[hidden] {
  display: none !important;
}
.nexgen-lab-report-pdf-modal {
  position: fixed;
  inset: 0;
  z-index: 100050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.nexgen-lab-report-pdf-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 14, 34, 0.62);
  border: 0;
  cursor: pointer;
}
.nexgen-lab-report-pdf-modal-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(920px, 100%);
  max-height: min(88vh, 960px);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(6, 14, 34, 0.35);
  overflow: hidden;
}
.nexgen-lab-report-pdf-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  background: var(--off-white);
}
.nexgen-lab-report-pdf-modal-head h2 {
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--near-black);
}
.nexgen-lab-report-pdf-modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--near-black);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition-property: background-color, transform;
  transition-duration: 0.2s;
}
.nexgen-lab-report-pdf-modal-close:hover {
  background: rgba(28, 26, 23, 0.06);
}
.nexgen-lab-report-pdf-modal-close:active {
  transform: scale(0.96);
}
.nexgen-lab-report-pdf-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  background: #f5f5f5;
}
.nexgen-lab-report-pdf-modal-body iframe {
  display: block;
  width: 100%;
  height: min(68vh, 720px);
  border: 0;
}
.nexgen-lab-report-pdf-modal-foot {
  padding: 12px 18px 16px;
  background: #fff;
}
body.nexgen-lab-report-modal-open {
  overflow: hidden;
}

@media (max-width: 1100px) {
  .nexgen-lab-report-hero-grid {
    grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.1fr);
  }
  .nexgen-lab-report-summary {
    grid-column: 1 / -1;
  }
  .nexgen-lab-report-chip-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .nexgen-lab-report-chip--wide {
    grid-column: auto;
  }
}

/* COA library page — full-bleed cream on page chrome only.
   Never touch .elementor-location-header / .nexgen-header / footer.
   (A prior transparent .e-con override beat .nexgen-header and washed the nav.) */
html:has(body.nexgen-coa-library-body),
html:has(body.page-id-787),
body.nexgen-coa-library-body,
body.page-id-787 {
  background-color: var(--off-white) !important;
  background-image: none !important;
}
body.nexgen-coa-library-body #page,
body.page-id-787 #page,
body.nexgen-coa-library-body .site,
body.page-id-787 .site,
body.nexgen-coa-library-body .site-content,
body.page-id-787 .site-content,
body.nexgen-coa-library-body .content-area,
body.page-id-787 .content-area,
body.nexgen-coa-library-body .site-main,
body.page-id-787 .site-main,
body.nexgen-coa-library-body #content,
body.page-id-787 #content,
body.nexgen-coa-library-body .page,
body.page-id-787 .page,
body.nexgen-coa-library-body .elementor[data-elementor-type="wp-page"],
body.page-id-787 .elementor[data-elementor-type="wp-page"],
body.nexgen-coa-library-body .elementor[data-elementor-type="wp-page"] .e-con,
body.page-id-787 .elementor[data-elementor-type="wp-page"] .e-con,
body.nexgen-coa-library-body .elementor[data-elementor-type="wp-page"] .e-con-inner,
body.page-id-787 .elementor[data-elementor-type="wp-page"] .e-con-inner,
body.nexgen-coa-library-body .nexgen-coa-library-page,
body.page-id-787 .nexgen-coa-library-page {
  background-color: var(--off-white) !important;
  background-image: none !important;
}

/* Keep header solid midnight on this light page (including scrolled glass). */
body.nexgen-coa-library-body .elementor-location-header .nexgen-header,
body.page-id-787 .elementor-location-header .nexgen-header,
body.nexgen-coa-library-body .nexgen-header,
body.page-id-787 .nexgen-header,
body.nexgen-coa-library-body .nexgen-header.is-scrolled,
body.page-id-787 .nexgen-header.is-scrolled {
  background-color: var(--midnight) !important;
  background-image: radial-gradient(ellipse at 50% 0%, var(--blue-glow), transparent 60%) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Kill Elementor wrapper LR padding so page gutters are owned by .nexgen-coa-library-* */
body.page-id-787 .nexgen-coa-library-page.e-con,
body.page-id-787 .nexgen-coa-library-page > .e-con-inner,
body.page-id-787 .nexgen-coa-library-shortcode,
body.nexgen-coa-library-body .nexgen-coa-library-page.e-con,
body.nexgen-coa-library-body .nexgen-coa-library-page > .e-con-inner,
body.nexgen-coa-library-body .nexgen-coa-library-shortcode {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none !important;
}

/* COA library page — grouped product-family index at /coas/ */
.nexgen-coa-library {
  background: transparent;
  color: var(--near-black);
  padding: 0 0 96px;
  -webkit-font-smoothing: antialiased;
}
.nexgen-coa-library-hero {
  display: grid;
  gap: 36px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 64px 32px 36px;
  background:
    radial-gradient(ellipse 70% 45% at 8% 0%, rgba(201, 168, 76, 0.08), transparent 55%);
}
.nexgen-coa-library-eyebrow {
  margin: 0 0 12px;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-coa-library-hero h1 {
  max-width: 900px;
  margin: 0 0 16px;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--near-black);
  text-wrap: balance;
}
.nexgen-coa-library-intro {
  max-width: 720px;
  margin: 0;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--medium-gray);
  text-wrap: pretty;
}
/* Assay ledger — matches product lab-report dossier (rounded, soft shadow) */
.nexgen-coa-library-ledger {
  display: grid;
  grid-template-columns: minmax(240px, 0.95fr) minmax(0, 1.35fr);
  gap: 0;
  align-items: stretch;
  border: 0;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow:
    0 1px 0 rgba(28, 26, 23, 0.04),
    0 18px 48px rgba(6, 14, 34, 0.1);
}
.nexgen-coa-library-ledger__purity {
  position: relative;
  padding: 28px 28px 30px;
  border-right: 0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(201, 168, 76, 0.12), transparent 55%),
    #fff;
}
.nexgen-coa-library-ledger__kicker {
  margin: 0 0 10px;
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-coa-library-ledger__figure {
  margin: 0 0 12px;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(48px, 6vw, 68px);
  line-height: 0.95;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--near-black);
  font-variant-numeric: tabular-nums;
}
.nexgen-coa-library-ledger__note {
  margin: 0;
  max-width: 30ch;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--warm-gray);
  text-wrap: pretty;
}
.nexgen-coa-library-ledger__facts {
  list-style: none;
  margin: 0;
  padding: 18px;
  display: grid;
  gap: 10px;
  background:
    radial-gradient(ellipse at 80% 0%, rgba(201, 168, 76, 0.18), transparent 55%),
    var(--midnight);
}
.nexgen-coa-library-ledger__facts li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 18px;
  row-gap: 4px;
  align-items: baseline;
  margin: 0;
  padding: 14px 16px;
  border: 0;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.nexgen-coa-library-ledger__facts li:last-child {
  border-bottom: 0;
}
.nexgen-coa-library-ledger__label {
  grid-column: 1;
  grid-row: 1;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-coa-library-ledger__value {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  line-height: 1;
  font-weight: 600;
  color: var(--off-white);
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.nexgen-coa-library-ledger__meta {
  grid-column: 1;
  grid-row: 2;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.62);
}
/* Legacy card/stats markup (inert if reappears) */
.nexgen-coa-library-info-cards,
.nexgen-coa-library-stats {
  display: none !important;
}
.nexgen-coa-library-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto 30px;
  padding: 0 32px;
}
.nexgen-coa-library-search-input {
  width: 100%;
  min-height: 52px;
  border: 0 !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--near-black) !important;
  box-shadow:
    0 1px 0 rgba(28, 26, 23, 0.04),
    0 10px 28px rgba(6, 14, 34, 0.06) !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  padding: 14px 18px !important;
}
.nexgen-coa-library-search-input:focus {
  border-color: transparent !important;
  outline: 2px solid rgba(201, 168, 76, 0.35) !important;
  outline-offset: 2px;
}
.nexgen-coa-library-result-count {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--warm-gray);
  white-space: nowrap;
}
.nexgen-coa-library-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
.nexgen-coa-library-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(28, 26, 23, 0.1);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(6, 14, 34, 0.07);
}
.nexgen-coa-library-card.is-hidden {
  display: none !important;
}
.nexgen-coa-library-card-image {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #F5F3EE;
  border-bottom: 1px solid rgba(28, 26, 23, 0.08);
  overflow: hidden;
}
.nexgen-coa-library-card-image img,
.nexgen-coa-library-card-image .nexgen-coa-library-card-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
}
.nexgen-coa-library-card-body {
  padding: 24px;
}
.nexgen-coa-library-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  justify-content: space-between;
  margin: 0 0 12px;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-coa-library-card h2 {
  text-wrap: balance;
  margin: 0 0 10px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 32px;
  line-height: 1.12;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--near-black);
}
.nexgen-coa-library-card p {
  margin: 0 0 18px;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--medium-gray);
}
.nexgen-coa-library-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
}
.nexgen-coa-library-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 7px 10px;
  border: 1px solid rgba(201, 168, 76, 0.34);
  border-radius: 6px;
  background: rgba(201, 168, 76, 0.1);
  color: var(--near-black);
  font-family: 'Outfit', sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
}
.nexgen-coa-library-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}
.nexgen-coa-library-facts div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(28, 26, 23, 0.08);
  border-radius: 8px;
  background: #F5F3EE;
}
.nexgen-coa-library-facts span {
  display: block;
  margin: 0 0 6px;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-coa-library-facts strong {
  font-variant-numeric: tabular-nums;
  display: block;
  overflow-wrap: anywhere;
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  line-height: 1.25;
  font-weight: 600;
  color: var(--near-black);
}
.nexgen-coa-library-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  width: 100%;
  margin: 0;
  padding: 12px 18px;
  border-radius: 8px;
  background: var(--near-black);
  color: var(--white) !important;
  font-family: 'Outfit', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none !important;
  transition-property: transform, background, color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}
.nexgen-coa-library-primary:hover {
  transform: translateY(-1px);
  background: var(--deep-navy);
  color: var(--accent-gold) !important;
}
.nexgen-coa-library-primary:active {
  transform: scale(0.96);
}
.nexgen-coa-library-variants {
  margin: 0 0 14px;
}
.nexgen-coa-library-variants > span {
  display: block;
  margin: 0 0 8px;
  font-family: 'Outfit', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--warm-gray);
}
.nexgen-coa-library-variant-groups {
  display: grid;
  gap: 8px;
}
.nexgen-coa-library-variant-group {
  min-width: 0;
}
.nexgen-coa-library-variant-group small {
  display: block;
  margin: 0 0 5px;
  font-family: 'Outfit', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.2px;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--accent-gold);
}
.nexgen-coa-library-variant-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
/* Kill Woo/theme button chrome — keep compact pill chips like the original <a> pills */
.nexgen-coa-library button.nexgen-coa-library-variant-btn,
.nexgen-coa-library .nexgen-coa-library-variant-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 5px 9px !important;
  border: 1px solid rgba(28, 26, 23, 0.12) !important;
  border-radius: 6px !important;
  background: #fff !important;
  background-image: none !important;
  color: var(--medium-gray) !important;
  box-shadow: none !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.2px !important;
  text-align: center !important;
  text-transform: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  cursor: pointer !important;
  overflow-wrap: anywhere;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease !important;
}
.nexgen-coa-library button.nexgen-coa-library-variant-btn:hover,
.nexgen-coa-library .nexgen-coa-library-variant-btn:hover {
  border-color: var(--accent-gold) !important;
  background: #fff !important;
  color: var(--near-black) !important;
  box-shadow: none !important;
}
.nexgen-coa-library button.nexgen-coa-library-variant-btn.is-selected,
.nexgen-coa-library button.nexgen-coa-library-variant-btn[aria-pressed="true"],
.nexgen-coa-library .nexgen-coa-library-variant-btn.is-selected,
.nexgen-coa-library .nexgen-coa-library-variant-btn[aria-pressed="true"] {
  border-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.12) !important;
  color: var(--near-black) !important;
  box-shadow: none !important;
}
.nexgen-coa-library button.nexgen-coa-library-variant-btn:focus,
.nexgen-coa-library .nexgen-coa-library-variant-btn:focus {
  outline: none !important;
  box-shadow: none !important;
}
.nexgen-coa-library button.nexgen-coa-library-variant-btn:focus-visible,
.nexgen-coa-library .nexgen-coa-library-variant-btn:focus-visible {
  outline: 2px solid rgba(201, 168, 76, 0.55) !important;
  outline-offset: 2px !important;
}
.nexgen-coa-library-empty {
  max-width: 1280px;
  margin: 24px auto 0;
  padding: 0 32px;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 16px;
  color: var(--medium-gray);
}
.nexgen-coa-library-empty[hidden] {
  display: none !important;
}
@media (max-width: 1024px) {
  .nexgen-coa-library-ledger {
    grid-template-columns: 1fr;
  }
  .nexgen-coa-library-ledger__purity {
    border-right: 0;
    border-bottom: 0;
    box-shadow: inset 0 -1px 0 rgba(28, 26, 23, 0.06);
  }
  .nexgen-coa-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .nexgen-coa-library {
    padding-bottom: 70px;
  }
  .nexgen-coa-library-hero {
    padding: 48px 16px 28px; /* 16px gutter — match header */
    gap: 24px;
  }
  .nexgen-coa-library-hero h1 {
    font-size: 40px;
  }
  .nexgen-coa-library-intro {
    font-size: 16px;
  }
  .nexgen-coa-library-ledger {
    border-radius: 18px;
  }
  .nexgen-coa-library-ledger__purity {
    padding: 22px 20px;
  }
  .nexgen-coa-library-ledger__facts {
    padding: 14px;
  }
  .nexgen-coa-library-ledger__facts li {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .nexgen-coa-library-ledger__value {
    grid-column: 1;
    grid-row: auto;
    margin-top: 2px;
    text-align: left;
    font-size: 24px;
  }
  .nexgen-coa-library-toolbar {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 0 16px;
  }
  .nexgen-coa-library-result-count {
    white-space: normal;
  }
  .nexgen-coa-library-grid {
    grid-template-columns: 1fr;
    padding: 0 16px;
  }
  .nexgen-coa-library-empty {
    padding: 0 16px;
  }
  .nexgen-coa-library-card-body {
    padding: 16px;
  }
  .nexgen-coa-library-variants a,
  .nexgen-coa-library-variant-btn {
    min-height: 40px !important;
  }
  .nexgen-coa-library-facts {
    grid-template-columns: 1fr;
  }
  .nexgen-lab-report-selector,
  .nexgen-lab-report-batch-selector {
    padding: 16px;
  }
  .nexgen-lab-report-batch-selector {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .nexgen-lab-report-selector-groups {
    grid-template-columns: 1fr;
  }
  .nexgen-lab-report-selector-option,
  .nexgen-lab-report-batch-option {
    flex: 1 1 100%;
  }
}

/*
 * PDP modality rail — light editorial strip under COAs.
 * Off-white canvas, vertical format cards, photography-first. No navy shell.
 */
.nexgen-modality-rail-section:not(:has(.nexgen-modality-rail)) {
  display: none !important;
}
.nexgen-modality-rail-section {
  background: var(--off-white) !important;
  padding: 0 !important;
}
.nexgen-modality-rail {
  position: relative;
  overflow: hidden;
  padding: 80px 32px 96px;
  color: var(--near-black);
  background: var(--off-white);
  -webkit-font-smoothing: antialiased;
}
.nexgen-modality-rail::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.03;
  mix-blend-mode: multiply;
}
.nexgen-modality-rail::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  z-index: 1;
  width: min(220px, 40%);
  height: 2px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
  pointer-events: none;
}
.nexgen-modality-rail__inner {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.nexgen-modality-rail__head {
  display: block;
  max-width: 560px;
  margin: 0 auto 48px;
  padding: 0;
  border: 0;
  text-align: center;
}
.nexgen-modality-rail__eyebrow {
  margin: 0 0 14px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 1.8px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
}
.nexgen-modality-rail__title {
  margin: 0 0 14px !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: 0.2px !important;
  color: var(--near-black) !important;
  text-transform: none !important;
  text-wrap: balance;
}
.nexgen-modality-rail__lede {
  margin: 0 auto !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--warm-gray) !important;
  max-width: 42ch;
  text-wrap: pretty;
}
.nexgen-modality-rail__grid {
  display: grid;
  /* Cap multi-card tracks so 1:1 media never becomes full-rail tall. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 320px));
  gap: 20px;
  justify-content: center;
}
.nexgen-modality-rail__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: 340px;
  width: 100%;
  margin-inline: auto;
  padding: 0;
  overflow: hidden;
  text-decoration: none !important;
  color: var(--off-white) !important;
  border-radius: 18px;
  background:
    radial-gradient(circle at 88% 0%, rgba(38, 68, 145, 0.35), transparent 42%),
    linear-gradient(160deg, var(--deep-navy) 0%, #071127 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.08) inset,
    0 14px 32px rgba(6, 14, 34, 0.14),
    0 0 0 1px rgba(6, 14, 34, 0.08);
  transition-property: transform, box-shadow;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
  animation: nexgen-modality-rail-in 0.55s cubic-bezier(0.2, 0, 0, 1) both;
  animation-delay: var(--rail-delay, 0ms);
}
/* Solo modality — horizontal feature card fills the rail width without
   blowing up into a tall square. */
.nexgen-modality-rail__grid:has(> .nexgen-modality-rail__card:only-child) {
  max-width: 820px;
  margin-inline: auto;
  grid-template-columns: 1fr;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child {
  flex-direction: row;
  align-items: stretch;
  max-width: none;
  margin-inline: 0;
  min-height: 300px;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__media {
  flex: 0 0 42%;
  width: 42%;
  max-width: 360px;
  aspect-ratio: auto;
  max-height: none;
  min-height: 300px;
  align-self: stretch;
}
/* Blue panel: stretch copy across the full body, not a cramped left stack. */
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
  width: 100%;
  min-width: 0;
  padding: 36px 40px 28px;
  box-sizing: border-box;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__format {
  font-size: 12px !important;
  letter-spacing: 2px !important;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__dose {
  display: block;
  margin-top: 12px;
  font-size: clamp(42px, 4.8vw, 56px) !important;
  line-height: 1.05 !important;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__price,
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__price .amount,
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__price .woocommerce-Price-amount {
  display: block;
  margin-top: 10px;
  font-size: 18px !important;
  font-weight: 500 !important;
  color: rgba(250, 248, 245, 0.82) !important;
}
.nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: space-between;
  align-self: stretch;
  width: 100%;
  margin-top: 28px;
  min-height: 52px;
  padding: 16px 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 13px !important;
  letter-spacing: 1.6px !important;
  box-sizing: border-box;
}
.nexgen-modality-rail__card:hover,
.nexgen-modality-rail__card:focus-visible {
  transform: translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.1) inset,
    0 22px 44px rgba(6, 14, 34, 0.22),
    0 0 0 1px rgba(201, 168, 76, 0.5);
  outline: none;
}
.nexgen-modality-rail__card:active {
  transform: scale(0.96);
}
.nexgen-modality-rail__media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: 340px;
  border-radius: 0;
  overflow: hidden;
  background: #0a1530;
  flex-shrink: 0;
}
.nexgen-modality-rail__media::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.nexgen-modality-rail__img,
.nexgen-modality-rail__img-fallback {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition-property: transform;
  transition-duration: 0.45s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-modality-rail__img-fallback {
  background:
    radial-gradient(circle at 30% 30%, rgba(201, 168, 76, 0.28), transparent 55%),
    #0a1530;
}
.nexgen-modality-rail__card:hover .nexgen-modality-rail__img,
.nexgen-modality-rail__card:focus-visible .nexgen-modality-rail__img {
  transform: scale(1.04);
}
.nexgen-modality-rail__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  padding: 18px 20px 20px;
}
.nexgen-modality-rail__format {
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
}
.nexgen-modality-rail__dose {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  color: var(--white) !important;
  font-variant-numeric: tabular-nums;
}
.nexgen-modality-rail__price,
.nexgen-modality-rail__price .amount,
.nexgen-modality-rail__price .woocommerce-Price-amount {
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: rgba(250, 248, 245, 0.72) !important;
  font-variant-numeric: tabular-nums;
}
.nexgen-modality-rail__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  min-height: 40px;
  padding: 0;
  border: 0;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.3px !important;
  text-transform: uppercase !important;
  color: var(--off-white) !important;
  white-space: nowrap;
  transition-property: color, transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-modality-rail__card:hover .nexgen-modality-rail__cta,
.nexgen-modality-rail__card:focus-visible .nexgen-modality-rail__cta {
  color: var(--accent-gold) !important;
  transform: translateX(3px);
}
@keyframes nexgen-modality-rail-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 900px) {
  .nexgen-modality-rail__grid {
    grid-template-columns: 1fr;
    max-width: 380px;
    margin: 0 auto;
    gap: 16px;
  }
  /* Keep solo card horizontal a bit longer on tablet, then stack. */
  .nexgen-modality-rail__grid:has(> .nexgen-modality-rail__card:only-child) {
    max-width: 640px;
  }
}
@media (max-width: 768px) {
  .nexgen-modality-rail {
    padding: 56px 20px 72px;
  }
  .nexgen-modality-rail__head {
    margin-bottom: 36px;
  }
  .nexgen-modality-rail__title {
    font-size: 34px !important;
  }
  .nexgen-modality-rail__dose {
    font-size: 24px !important;
  }
  .nexgen-modality-rail__body {
    padding: 16px 18px 18px;
  }
  .nexgen-modality-rail__grid:has(> .nexgen-modality-rail__card:only-child) {
    max-width: 380px;
  }
  .nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child {
    flex-direction: column;
    min-height: 0;
  }
  .nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__media {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    aspect-ratio: 1 / 1;
    max-height: 340px;
    min-height: 0;
  }
  .nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__body {
    padding: 16px 18px 18px;
    gap: 6px;
  }
  .nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__dose {
    font-size: 24px !important;
  }
  .nexgen-modality-rail__grid > .nexgen-modality-rail__card:only-child .nexgen-modality-rail__cta {
    margin-top: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nexgen-modality-rail__card,
  .nexgen-modality-rail__img,
  .nexgen-modality-rail__cta {
    animation: none !important;
    transition: none !important;
  }
  .nexgen-modality-rail__card:hover,
  .nexgen-modality-rail__card:focus-visible,
  .nexgen-modality-rail__card:active {
    transform: none;
  }
  .nexgen-modality-rail__card:hover .nexgen-modality-rail__img {
    transform: none;
  }
  .nexgen-modality-rail__card:hover .nexgen-modality-rail__cta {
    transform: none;
  }
}

/* Related products section */
.nexgen-pdp-related {
  background: var(--midnight) !important;
  padding: 90px 32px !important;
  position: relative;
  overflow: hidden;
}
.nexgen-pdp-related::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
}
.nexgen-pdp-related > * { position: relative; z-index: 1; }
.nexgen-pdp-related .elementor-widget-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: 38px !important;
  color: var(--white) !important;
  text-transform: none !important;
  letter-spacing: 0.3px !important;
}
.nexgen-pdp-related .elementor-widget-button .elementor-button {
  background: transparent !important;
  color: var(--accent-gold) !important;
  border: 1px solid var(--white-12) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
  border-radius: 8px !important;
  transition: all 0.25s ease !important;
}
.nexgen-pdp-related .elementor-widget-button .elementor-button:hover {
  border-color: var(--white-30) !important;
  background: var(--white-06) !important;
}
/* Product card titles inside related-products MUST keep the product-card scale,
   not inherit the section heading's Cormorant 38px. Higher specificity wins over
   `.nexgen-pdp-related .elementor-widget-heading .elementor-heading-title` above. */
.nexgen-pdp-related .nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
.nexgen-pdp-related .nexgen-product-card .elementor-widget-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

/* PDP related-products GRID wrapper (rendered by [nexgen_pdp_related] which
   invokes Elementor template 211 once per slot). Without this, the rendered
   cards stack vertically because the wrapper isn't an Elementor Loop Grid
   widget — it's a plain div containing 4 self-rendered loop-item templates. */
.nexgen-pdp-related-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
}
.nexgen-pdp-related-grid .nexgen-pdp-related-item {
  display: flex !important;
  flex-direction: column !important;
}
.nexgen-pdp-related-grid .nexgen-pdp-related-item > .elementor,
.nexgen-pdp-related-grid .nexgen-pdp-related-item > .elementor-element,
.nexgen-pdp-related-grid .nexgen-pdp-related-item .nexgen-product-card {
  height: 100% !important;
}

/* Tablet: 2 columns */
@media (max-width: 1024px) {
  .nexgen-pdp-related-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px !important;
  }
}
/* Mobile: 1 column */
@media (max-width: 600px) {
  .nexgen-pdp-related-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

/* ============================================================================
   CART / CHECKOUT REDESIGN
   Mirrors the dark navy / glass / gold-accent treatment proven on the
   account page (see body.woocommerce-account block further down). Pure CSS,
   scoped to body.woocommerce-cart and body.woocommerce-checkout. Targets the
   stock WC DOM (classic shortcode + cart-block paths in parallel).

   See the project plan for the section-by-section spec. Rule of thumb:
   - All values use --tokens from :root above
   - All form fields adopt the .woocommerce-account pattern (lines ~9890+)
   - Glass card surface mirrors #customer_login > div
   - Notices reuse the account notice palette (gold/blue/red left-border)
   ============================================================================ */

/* === SHARED BASE (Cart + Checkout) === */

/* NGS-19: hide footer on cart + active checkout (keep visible on order-received) */
body.woocommerce-cart .nexgen-footer-outer,
body.woocommerce-checkout:not(.woocommerce-order-received) .nexgen-footer-outer {
  display: none !important;
}

body.woocommerce-cart,
body.woocommerce-checkout {
  background: var(--midnight) !important;
}
body.woocommerce-cart::before,
body.woocommerce-checkout::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.04;
  mix-blend-mode: overlay;
}

body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-cart #content,
body.woocommerce-checkout #content,
body.woocommerce-cart .elementor-section-wrap > .elementor-section,
body.woocommerce-checkout .elementor-section-wrap > .elementor-section,
body.woocommerce-cart .elementor-widget-theme-post-content,
body.woocommerce-checkout .elementor-widget-theme-post-content {
  background: transparent !important;
}

body.woocommerce-cart .entry-header,
body.woocommerce-cart .page-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .page-header {
  display: none !important;
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 90px 32px 110px;
  color: var(--white-90);
}

/* Hero eyebrow ::before — gold uppercase label centered above the form/card */
body.woocommerce-cart .woocommerce::before,
body.woocommerce-checkout .woocommerce::before {
  display: block;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  text-align: center;
  margin: 0 auto 14px;
}
body.woocommerce-cart .woocommerce::before {
  content: 'YOUR CART';
}
body.woocommerce-checkout .woocommerce::before {
  content: 'SECURE CHECKOUT';
}

/* Optional .nexgen-cc-hero wrapper if the client opts to add a real hero band
   above the shortcode (Elementor heading widget can use these classes). */
.nexgen-cc-hero {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
  padding: 0 16px;
  position: relative;
}
.nexgen-cc-hero-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 600;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1.15;
  letter-spacing: 0.3px;
  color: var(--white);
  margin: 0 0 16px;
}
.nexgen-cc-hero-sub {
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.55;
  color: var(--white-60);
  margin: 0 auto 24px;
  max-width: 540px;
}
.nexgen-cc-hero::after {
  content: '';
  display: block;
  width: 100%;
  max-width: 320px;
  height: 1px;
  margin: 0 auto;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim), transparent);
}

/* Form labels — Outfit 500 13px UPPERCASE white-60 */
body.woocommerce-cart label,
body.woocommerce-checkout label,
body.woocommerce-cart .woocommerce-form-row label,
body.woocommerce-checkout .woocommerce-form-row label,
body.woocommerce-cart .form-row label,
body.woocommerce-checkout .form-row label {
  display: block;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--white-60) !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}
body.woocommerce-cart .required,
body.woocommerce-checkout .required,
body.woocommerce-cart abbr.required,
body.woocommerce-checkout abbr.required {
  color: var(--accent-gold) !important;
  text-decoration: none !important;
  border: 0 !important;
}

body.woocommerce-cart .form-row,
body.woocommerce-checkout .form-row,
body.woocommerce-cart .woocommerce-form-row,
body.woocommerce-checkout .woocommerce-form-row {
  margin: 0 0 22px !important;
  padding: 0 !important;
  display: block;
}
body.woocommerce-cart .woocommerce-form-row--first,
body.woocommerce-checkout .woocommerce-form-row--first,
body.woocommerce-cart .woocommerce-form-row--last,
body.woocommerce-checkout .woocommerce-form-row--last,
body.woocommerce-cart .form-row-first,
body.woocommerce-checkout .form-row-first,
body.woocommerce-cart .form-row-last,
body.woocommerce-checkout .form-row-last {
  width: 100% !important;
  float: none !important;
}
body.woocommerce-checkout .woocommerce-billing-fields .form-row-first,
body.woocommerce-checkout .woocommerce-shipping-fields .form-row-first {
  width: calc(50% - 12px) !important;
  float: left !important;
  margin-right: 24px !important;
}
body.woocommerce-checkout .woocommerce-billing-fields .form-row-last,
body.woocommerce-checkout .woocommerce-shipping-fields .form-row-last {
  width: calc(50% - 12px) !important;
  float: left !important;
}
body.woocommerce-checkout .woocommerce-billing-fields .form-row-wide,
body.woocommerce-checkout .woocommerce-shipping-fields .form-row-wide {
  clear: both !important;
}

body.woocommerce-cart input[type="text"],
body.woocommerce-cart input[type="email"],
body.woocommerce-cart input[type="password"],
body.woocommerce-cart input[type="tel"],
body.woocommerce-cart input[type="url"],
body.woocommerce-cart input[type="number"],
body.woocommerce-cart input[type="search"],
body.woocommerce-cart select,
body.woocommerce-cart textarea,
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="url"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout input[type="search"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
  width: 100% !important;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 13px 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--white-90) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color var(--dur-micro) var(--ease-standard),
              box-shadow var(--dur-micro) var(--ease-standard),
              background var(--dur-micro) var(--ease-standard);
  -webkit-appearance: none;
  appearance: none;
}
body.woocommerce-cart select,
body.woocommerce-checkout select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23C9A84C' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 12px 8px !important;
  padding-right: 40px !important;
}
body.woocommerce-cart input::placeholder,
body.woocommerce-cart textarea::placeholder,
body.woocommerce-checkout input::placeholder,
body.woocommerce-checkout textarea::placeholder {
  color: var(--white-30) !important;
  opacity: 1;
}
body.woocommerce-cart input:hover,
body.woocommerce-cart select:hover,
body.woocommerce-cart textarea:hover,
body.woocommerce-checkout input:hover,
body.woocommerce-checkout select:hover,
body.woocommerce-checkout textarea:hover {
  border-color: var(--white-30) !important;
}
body.woocommerce-cart input:focus,
body.woocommerce-cart select:focus,
body.woocommerce-cart textarea:focus,
body.woocommerce-checkout input:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus {
  border-color: var(--brand-blue) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.4) !important;
  outline: none !important;
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  font-size: 26px !important;
  line-height: 1.2 !important;
  color: var(--white) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 0 28px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid transparent;
  background-image: linear-gradient(transparent, transparent), linear-gradient(90deg, var(--accent-gold-dim), transparent);
  background-size: 100% calc(100% - 1px), 100% 1px;
  background-position: 0 0, 0 100%;
  background-repeat: no-repeat;
}

/* Primary CTA — apply-coupon, place-order, proceed-to-checkout */
body.woocommerce-cart button[name="apply_coupon"],
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart a.checkout-button,
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button.checkout_coupon_button,
body.woocommerce-checkout button[name="apply_coupon"],
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .button {
  display: inline-block !important;
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-align: center !important;
  cursor: pointer;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
  transition: all 0.25s ease !important;
  -webkit-appearance: none;
  appearance: none;
}
body.woocommerce-cart button[name="apply_coupon"]:hover,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
body.woocommerce-cart a.checkout-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout button.checkout_coupon_button:hover,
body.woocommerce-checkout button[name="apply_coupon"]:hover,
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), 0 0 16px var(--accent-gold-glow) !important;
}

/* Force WooCommerce price wrappers (Price-amount, bdi, currency symbol, strong)
   to inherit the dark-context text colors. WC ships these with theme-default
   colors that get inherited from Hello Elementor and end up dark on our dark
   backgrounds. Safer to inherit explicitly than to set per-context colors. */
body.woocommerce-cart .woocommerce-Price-amount,
body.woocommerce-cart .woocommerce-Price-currencySymbol,
body.woocommerce-cart .woocommerce-Price-amount bdi,
body.woocommerce-cart .shop_table bdi,
body.woocommerce-cart .shop_table strong,
body.woocommerce-cart .cart_totals strong,
body.woocommerce-checkout .woocommerce-Price-amount,
body.woocommerce-checkout .woocommerce-Price-currencySymbol,
body.woocommerce-checkout .woocommerce-Price-amount bdi,
body.woocommerce-checkout .shop_table bdi,
body.woocommerce-checkout .shop_table strong,
body.woocommerce-checkout #order_review strong {
  color: inherit !important;
  font-weight: inherit;
}

/* Cart totals shipping row — "Flat rate: $15.00" + "Shipping to CA." paragraph
   were inheriting a darker color via the shipping_method li / p chain. */
body.woocommerce-cart .cart_totals .shipping td,
body.woocommerce-cart .cart_totals .shipping td *,
body.woocommerce-cart .cart_totals .shipping ul#shipping_method li,
body.woocommerce-cart .cart_totals .shipping ul#shipping_method li label,
body.woocommerce-cart .cart_totals .shipping p,
body.woocommerce-cart .cart_totals .shipping p strong {
  color: var(--white-90) !important;
}
body.woocommerce-cart .cart_totals .shipping p {
  color: var(--white-60) !important;
}
body.woocommerce-cart .cart_totals .shipping p strong {
  color: var(--white-90) !important;
}

/* Coupon code placeholder text on dark glass */
body.woocommerce-cart #coupon_code::placeholder,
body.woocommerce-checkout #coupon_code::placeholder {
  color: var(--white-30) !important;
  opacity: 1;
}

/* Notices */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart ul.woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout ul.woocommerce-error,
body.woocommerce-checkout .woocommerce-NoticeGroup-checkout > * {
  list-style: none !important;
  background: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid var(--white-12) !important;
  border-left-width: 3px !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  margin: 0 0 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--white-90) !important;
  display: flex;
  align-items: center;
  gap: 12px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message {
  border-left-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.08) !important;
}
body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-info {
  border-left-color: var(--brand-blue) !important;
  background: rgba(26, 49, 120, 0.18) !important;
}
/* Checkout's "Have a coupon?" notice — switch from brand-blue to gold accent
   so it doesn't compete with the brand-blue place-order CTA. The "Have a
   coupon?" hint text bumps to off-white (#FFFFEB) to match the cart_totals
   labels and improve readability against the dark glass surface. */
body.woocommerce-checkout .woocommerce-info {
  border-color: rgba(201, 168, 76, 0.35) !important;
  border-left-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.07) !important;
  color: #FFFFEB !important;
  -webkit-text-fill-color: #FFFFEB !important;
}
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-info * {
  color: #FFFFEB !important;
  -webkit-text-fill-color: #FFFFEB !important;
}
body.woocommerce-checkout .woocommerce-info a {
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}
body.woocommerce-checkout .woocommerce-info a:hover {
  color: var(--accent-gold-bright) !important;
  -webkit-text-fill-color: var(--accent-gold-bright) !important;
}
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-cart ul.woocommerce-error,
body.woocommerce-checkout ul.woocommerce-error {
  border-left-color: var(--heritage-red) !important;
  background: rgba(197, 51, 58, 0.12) !important;
  flex-direction: column;
  align-items: flex-start;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-error::before {
  display: none !important;
}
body.woocommerce-cart .woocommerce-message a,
body.woocommerce-cart .woocommerce-info a,
body.woocommerce-cart .woocommerce-error a,
body.woocommerce-checkout .woocommerce-message a,
body.woocommerce-checkout .woocommerce-info a,
body.woocommerce-checkout .woocommerce-error a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper {
  margin: 0 0 24px !important;
}

/* BlockUI / processing overlay */
body.woocommerce-cart .blockUI.blockOverlay,
body.woocommerce-checkout .blockUI.blockOverlay {
  background: rgba(6, 14, 34, 0.6) !important;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  opacity: 1 !important;
  cursor: wait;
}
body.woocommerce-cart .blockUI.blockOverlay::before,
body.woocommerce-checkout .blockUI.blockOverlay::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 32px;
  height: 32px;
  margin: -16px 0 0 -16px;
  border: 2px solid transparent;
  border-top-color: var(--accent-gold);
  border-right-color: var(--accent-gold);
  border-radius: 50%;
  animation: nexgen-cc-spin 0.8s linear infinite;
}
@keyframes nexgen-cc-spin {
  to { transform: rotate(360deg); }
}

/* === CART-SPECIFIC ===
   The site's cart page renders via the EAEL (Essential Addons for Elementor)
   WooCommerce Cart widget (.eael-woo-cart body class). EAEL provides its
   own 2-column grid on .e-cart__container with .e-cart__column-start /
   -column-end as the column wrappers. We override its default proportions
   to match the rest of the site and skip applying any grid to .woocommerce
   itself (which is the inner wrapper, not the column host). */

body.woocommerce-cart .e-cart__container {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 420px) !important;
  gap: 40px !important;
  align-items: start !important;
  width: 100% !important;
}
body.woocommerce-cart .e-cart__column-start {
  grid-column: 1 !important;
  width: auto !important;
  max-width: none !important;
}
body.woocommerce-cart .e-cart__column-end {
  grid-column: 2 !important;
  width: auto !important;
  max-width: none !important;
  position: sticky;
  top: 110px;
  align-self: start;
}

/* EAEL wraps every cart sub-section (table, coupon row, totals) in a div
   with its own white background + padding. Strip them so the dark glass
   surface comes from .woocommerce-cart-form / .cart_totals only. */
body.woocommerce-cart .e-cart-section,
body.woocommerce-cart .e-shop-table,
body.woocommerce-cart .e-cart-coupon,
body.woocommerce-cart .e-cart-totals,
body.woocommerce-cart .e-cart-shipping,
body.woocommerce-cart .e-cart-buttons,
body.woocommerce-cart .e-cart__cart-totals,
body.woocommerce-cart .e-cart-section.shop_table {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* The third child of .woocommerce-cart-form is the coupon row wrapper, which
   inherits .e-cart-section + .shop_table classes. Re-add the top-divider rule
   that the .coupon selector targets. */
body.woocommerce-cart .woocommerce-cart-form > .coupon.e-cart-section {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--white-06) !important;
}

body.woocommerce-cart .woocommerce-cart-form {
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 32px 36px;
}
body.woocommerce-cart .cart-collaterals {
  width: auto !important;
  max-width: none !important;
}
body.woocommerce-cart .cart_totals {
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 32px 32px 28px;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
}

body.woocommerce-cart table.shop_table.cart {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-collapse: collapse !important;
  margin: 0 !important;
}
body.woocommerce-cart table.shop_table.cart thead th {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--white-12) !important;
  color: var(--white-60) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  padding: 0 12px 16px !important;
  text-align: left;
}
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--white-06) !important;
}
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item:last-of-type {
  border-bottom: 0 !important;
}
body.woocommerce-cart table.shop_table.cart tbody td {
  background: transparent !important;
  border: 0 !important;
  padding: 20px 12px !important;
  vertical-align: middle !important;
  color: var(--white-90);
}

body.woocommerce-cart table.shop_table.cart td.product-remove {
  width: 32px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: var(--accent-gold-glow) !important;
  border: 1px solid var(--accent-gold-dim) !important;
  border-radius: 50%;
  color: var(--accent-gold) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-align: center;
  text-decoration: none !important;
  transition: background var(--dur-micro) var(--ease-standard),
              border-color var(--dur-micro) var(--ease-standard),
              color var(--dur-micro) var(--ease-standard);
}
body.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover {
  background: rgba(197, 51, 58, 0.18) !important;
  border-color: var(--heritage-red) !important;
  color: var(--heritage-red) !important;
}

body.woocommerce-cart table.shop_table.cart td.product-thumbnail {
  width: 72px !important;
}
body.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
  width: 64px !important;
  height: 64px !important;
  object-fit: cover;
  border-radius: 8px !important;
  border: 1px solid var(--white-06) !important;
  display: block;
}

body.woocommerce-cart table.shop_table.cart td.product-name a,
body.woocommerce-cart table.shop_table.cart th.product-name a,
body.woocommerce-cart table.shop_table.cart [data-title="Product"] a {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--white-90) !important;
  text-decoration: none !important;
  transition: color var(--dur-micro) var(--ease-standard);
}
body.woocommerce-cart table.shop_table.cart td.product-name a:hover,
body.woocommerce-cart table.shop_table.cart th.product-name a:hover,
body.woocommerce-cart table.shop_table.cart [data-title="Product"] a:hover {
  color: var(--accent-gold) !important;
}
body.woocommerce-cart table.shop_table.cart dl.variation {
  margin: 6px 0 0 !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  color: var(--white-60) !important;
}
body.woocommerce-cart table.shop_table.cart dl.variation dt,
body.woocommerce-cart table.shop_table.cart dl.variation dd {
  display: inline;
  margin: 0;
  padding: 0;
}

body.woocommerce-cart table.shop_table.cart td.product-price,
body.woocommerce-cart table.shop_table.cart td.product-subtotal {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--white-90) !important;
  font-variant-numeric: tabular-nums;
}
body.woocommerce-cart table.shop_table.cart td.product-subtotal {
  font-weight: 600 !important;
  font-size: 16px !important;
}

body.woocommerce-cart table.shop_table.cart td.product-quantity input.qty {
  width: 72px !important;
  text-align: center !important;
  padding: 10px 8px !important;
  -moz-appearance: textfield;
}
body.woocommerce-cart table.shop_table.cart td.product-quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart table.shop_table.cart td.product-quantity input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
body.woocommerce-cart table.shop_table.cart td.product-quantity .quantity label {
  display: none !important;
}

body.woocommerce-cart table.shop_table.cart tbody tr:has(button[name="update_cart"]) {
  display: none !important;
}

/* NGS-41: WebToffee cart "Don't forget" upsell — title + price only.
   Shop-grid rules set near-black on loop titles/prices; override on dark cart. */
html body .wt-related-products .woocommerce-LoopProduct-link,
html body .wt-related-products .woocommerce-loop-product__link,
html body .wt-related-products .woocommerce-loop-product__title,
html body .wt-related-products .price,
html body .wt-related-products .price * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

html body .wt-related-products .add_to_cart_button,
html body .wt-related-products .button {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
}

body.woocommerce-cart .woocommerce-cart-form .coupon {
  display: flex !important;
  align-items: stretch;
  gap: 12px;
  margin: 24px 0 0 !important;
  padding: 20px 0 0 !important;
  border-top: 1px solid var(--white-06);
  width: 100%;
}
body.woocommerce-cart #coupon_code {
  flex: 1 1 auto;
  max-width: 320px;
}
body.woocommerce-cart .woocommerce-cart-form > #coupon_code,
body.woocommerce-cart .woocommerce-cart-form > input#coupon_code {
  display: inline-block;
  flex: 0 0 auto;
  max-width: 320px;
  margin-right: 12px;
  margin-top: 24px;
}

body.woocommerce-cart .cart_totals h2 {
  text-align: left;
}
body.woocommerce-cart .cart_totals table.shop_table {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-collapse: collapse !important;
  margin: 0 !important;
  width: 100%;
}
body.woocommerce-cart .cart_totals table.shop_table tr {
  border-bottom: 1px solid var(--white-06);
}
body.woocommerce-cart .cart_totals table.shop_table tr:last-child {
  border-bottom: 0;
  border-top: 1px solid var(--accent-gold-dim);
}
/* WC's shop_table_responsive class hides <th> at narrower widths and renders
   the label via td::before { content: attr(data-title) }. Inside EAEL's cart
   widget that responsive switch fires earlier than expected. Force <th>
   visible AND suppress the duplicate td::before label so we have one
   styleable label that always wins. */
body.woocommerce-cart .cart_totals table.shop_table_responsive thead,
body.woocommerce-cart .cart_totals table.shop_table_responsive tbody th {
  display: revert !important;
}
body.woocommerce-cart .cart_totals table.shop_table tbody tr > th,
body.woocommerce-cart .cart_totals table.shop_table_responsive tbody tr > th {
  display: table-cell !important;
  visibility: visible !important;
}
body.woocommerce-cart .cart_totals table.shop_table tbody tr > td::before,
body.woocommerce-cart .cart_totals table.shop_table_responsive tbody tr > td::before {
  content: none !important;
  display: none !important;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table tbody tr > th,
body.woocommerce-cart .cart_totals table.shop_table tr.cart-subtotal > th,
body.woocommerce-cart .cart_totals table.shop_table tr.shipping > th,
body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals > th {
  background: transparent !important;
  border: 0 !important;
  padding: 14px 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: #FFFFEB !important;
  -webkit-text-fill-color: #FFFFEB !important;
  text-align: left;
  vertical-align: top;
  opacity: 1 !important;
}
body.woocommerce-cart .cart_totals table.shop_table td {
  background: transparent !important;
  border: 0 !important;
  padding: 14px 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--white-90) !important;
  text-align: right;
  font-variant-numeric: tabular-nums;
  vertical-align: top;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .elementor-widget-woocommerce-cart .cart_totals tr.order-total th {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
}
/* Defensive override against Hello Elementor's `* { color: rgb(0,0,0) !important }`
   reset rule and against any EAEL nth-child rules. Universal-selector !important
   on the parent CAN beat our targeted rules in some browsers; we stack
   specificity here to defeat it. */
body.woocommerce-cart .cart_totals table.shop_table tr > th {
  color: #FFFFEB !important;
  -webkit-text-fill-color: #FFFFEB !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr.order-total > th {
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
}
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total td strong,
body.woocommerce-cart .cart_totals .order-total td bdi {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: var(--white) !important;
}

body.woocommerce-cart .cart_totals .shipping ul#shipping_method {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
body.woocommerce-cart .cart_totals .shipping ul#shipping_method li {
  margin: 0 0 6px;
  padding: 0;
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 14px;
  color: var(--white-90);
}
body.woocommerce-cart .cart_totals .shipping ul#shipping_method li label {
  display: inline !important;
  font-family: inherit !important;
  font-weight: 400 !important;
  font-size: inherit !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-cart .cart_totals .shipping p {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--white-60);
  margin: 8px 0 6px;
}
body.woocommerce-cart .cart_totals .shipping a.shipping-calculator-button,
body.woocommerce-cart .cart_totals .shipping [aria-controls="shipping-calculator-form"] {
  color: var(--accent-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.5px !important;
}
body.woocommerce-cart .cart_totals #shipping-calculator-form {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--white-06);
}
body.woocommerce-cart .cart_totals #shipping-calculator-form p {
  margin: 0 0 14px !important;
  color: var(--white-90);
  font-family: inherit;
  font-size: inherit;
}
body.woocommerce-cart .cart_totals #shipping-calculator-form button[name="calc_shipping"] {
  background: transparent !important;
  border: 1px solid var(--white-12) !important;
  color: var(--accent-gold) !important;
  border-radius: 8px !important;
  padding: 10px 22px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background var(--dur-hover) var(--ease-soft),
              border-color var(--dur-hover) var(--ease-soft);
}
body.woocommerce-cart .cart_totals #shipping-calculator-form button[name="calc_shipping"]:hover {
  background: var(--white-06) !important;
  border-color: var(--white-30) !important;
}

body.woocommerce-cart .cart_totals .wc-proceed-to-checkout,
body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 24px 0 0 !important;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: block !important;
  width: 100% !important;
}

body.woocommerce-cart .cart-empty.woocommerce-info,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block,
body.woocommerce-cart .wc-block-cart__empty-cart__title {
  text-align: center !important;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  font-size: clamp(28px, 4vw, 36px) !important;
  color: var(--white) !important;
  line-height: 1.25 !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 56px 24px !important;
  border: 0 !important;
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.woocommerce-cart .cart-empty.woocommerce-info::before {
  display: none !important;
}
body.woocommerce-cart .return-to-shop {
  text-align: center;
  margin-top: 32px;
}
body.woocommerce-cart .return-to-shop a.button {
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  transition: all 0.25s ease;
}
body.woocommerce-cart .return-to-shop a.button:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), 0 0 16px var(--accent-gold-glow);
}

/* NGS-210 — hide stale WT Smart Coupons "available coupon" promo cards on
   cart (e.g. legacy "Buy 3 Reta 60mg, Get 1 Free"). Manual coupon field
   (.woocommerce-cart-form .coupon / #coupon_code) stays visible. */
body.woocommerce-cart .wt_coupon_wrapper {
  display: none !important;
}

/* Webtoffee Smart Coupons promo card styles (account/email surfaces; cart
   wrapper is hidden above). Gold reserved for "Free" + code chip. */
body.woocommerce-cart .wt_sc_single_coupon,
body.woocommerce-cart .wt_sc_single_coupon.minimal_outline,
body.woocommerce-cart .wt_sc_single_coupon.cart_page,
body.woocommerce-cart .wt_sc_single_coupon.active-coupon {
  background: var(--white-06) !important;
  border: 1px solid var(--accent-gold-dim) !important;
  border-radius: 10px !important;
  color: var(--white-90) !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  box-shadow: none !important;
}
/* Make all descendants inherit by default; gold is added back surgically below */
body.woocommerce-cart .wt_sc_single_coupon * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}
/* Headline "Free" stays gold — it's the value moment */
body.woocommerce-cart .wt_sc_single_coupon .wt-coupon-amount,
body.woocommerce-cart .wt_sc_single_coupon [class*="wt-coupon-amount"],
body.woocommerce-cart .wt_sc_single_coupon [class*="coupon-amount"],
body.woocommerce-cart .wt_sc_single_coupon [class*="discount-amount"],
body.woocommerce-cart .wt_sc_single_coupon .wt_sc_coupon_amount,
body.woocommerce-cart .wt_sc_single_coupon .amount {
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
}
/* Subtitle/title ("Buy X Get X/Y") — soft off-white instead of gold */
body.woocommerce-cart .wt_sc_single_coupon .wt-coupon-title,
body.woocommerce-cart .wt_sc_single_coupon .wt_sc_coupon_type,
body.woocommerce-cart .wt_sc_single_coupon .discount_type,
body.woocommerce-cart .wt_sc_single_coupon h3,
body.woocommerce-cart .wt_sc_single_coupon h4 {
  color: var(--white-60) !important;
  -webkit-text-fill-color: var(--white-60) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.3px !important;
}
body.woocommerce-cart .wt_sc_single_coupon .wt-coupon-description,
body.woocommerce-cart .wt_sc_single_coupon .wbte_sc_coupon_layout_expired_text,
body.woocommerce-cart .wt_sc_single_coupon p,
body.woocommerce-cart .wt_sc_single_coupon span {
  color: var(--white-90) !important;
  -webkit-text-fill-color: var(--white-90) !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
}

/* Corner-triangle decoration — toned down to a neutral ribbon corner */
body.woocommerce-cart .wt_sc_single_coupon .wbte_sc_corner_circle,
body.woocommerce-cart .wt_sc_single_coupon [class*="corner_circle"],
body.woocommerce-cart .wt_sc_single_coupon [class*="corner-circle"] {
  background-color: var(--accent-gold) !important;
  background: var(--accent-gold) !important;
  opacity: 1;
}
/* Discount code chip ("Buy 3 Reta 60mg, Get 1 Free") — small gold-text pill on
   subtle dark surface (replaces the gold-on-gold overlay) */
body.woocommerce-cart .wt_sc_single_coupon .wt_sc_coupon_code,
body.woocommerce-cart .wt_sc_single_coupon .wt-coupon-code,
body.woocommerce-cart .wt_sc_single_coupon code {
  background-color: rgba(0, 0, 0, 0.25) !important;
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 6px !important;
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px !important;
  padding: 6px 12px !important;
}

/* Apply-coupon CTA — keep brand-blue primary treatment for actionable
   affordance, not gold (gold here would compete with the headline) */
body.woocommerce-cart .wt_sc_single_coupon a.wt_apply_coupon,
body.woocommerce-cart .wt_sc_single_coupon button {
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 6px !important;
  padding: 8px 16px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background var(--dur-hover) var(--ease-soft);
}
body.woocommerce-cart .wt_sc_single_coupon a.wt_apply_coupon:hover,
body.woocommerce-cart .wt_sc_single_coupon button:hover {
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
}

/* WT Smart Coupons inline-style sweep — neutralise the orange #D9622B that the
   plugin sprays into inline styles so it inherits our card colours */
body.woocommerce-cart .wt_sc_single_coupon [style*="#D9622B"],
body.woocommerce-cart .wt_sc_single_coupon [style*="#d9622b"] {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

/* === CHECKOUT-SPECIFIC === */

body.woocommerce-checkout form.checkout_coupon {
  background: var(--white-06) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12) !important;
  border-radius: 10px !important;
  padding: 24px !important;
  margin: 0 0 32px !important;
}
body.woocommerce-checkout form.checkout_coupon[style*="block"],
body.woocommerce-checkout form.checkout_coupon:not([style*="none"]) {
  display: flex;
  align-items: stretch;
  gap: 12px;
}
body.woocommerce-checkout form.checkout_coupon .form-row {
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 1 auto;
  max-width: 320px;
}
body.woocommerce-checkout form.checkout_coupon .form-row.form-row-last {
  flex: 0 0 auto;
}
body.woocommerce-checkout form.checkout_coupon input[name="coupon_code"] {
  display: block;
  width: 100% !important;
  min-width: 0;
}
body.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"] {
  display: inline-block !important;
  width: auto !important;
  white-space: nowrap;
}

body.woocommerce-checkout form.woocommerce-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
  grid-template-areas:
    "billing review-h"
    "billing review";
  grid-template-rows: auto 1fr;
  gap: 0 40px;
  align-items: start;
}
body.woocommerce-checkout form.woocommerce-checkout .col2-set {
  grid-area: billing;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 36px 40px;
  width: 100% !important;
  max-width: none !important;
  display: block;
}
body.woocommerce-checkout form.woocommerce-checkout .col2-set::after {
  content: '';
  display: table;
  clear: both;
}
body.woocommerce-checkout form.woocommerce-checkout .col2-set .col-1,
body.woocommerce-checkout form.woocommerce-checkout .col2-set .col-2 {
  width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 0 32px !important;
}
body.woocommerce-checkout form.woocommerce-checkout .col2-set .col-2:last-child {
  margin-bottom: 0 !important;
}
body.woocommerce-checkout form.woocommerce-checkout #order_review_heading {
  grid-area: review-h;
  margin: 0 !important;
  padding: 36px 40px 0 !important;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-bottom: 0 !important;
  border-radius: 12px 12px 0 0;
  z-index: 2;
}
body.woocommerce-checkout form.woocommerce-checkout #order_review {
  grid-area: review;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-top: 0 !important;
  border-radius: 0 0 12px 12px;
  padding: 0 40px 36px;
  margin-top: -1px;
  align-self: start;
}

body.woocommerce-checkout #ship-to-different-address {
  display: flex !important;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px !important;
  padding: 0;
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  font-size: 22px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--white) !important;
  border: 0 !important;
  background: transparent !important;
}
body.woocommerce-checkout #ship-to-different-address .woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  margin: 0 !important;
  padding: 0 !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: inherit !important;
  cursor: pointer;
}
body.woocommerce-checkout #ship-to-different-address-checkbox {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--accent-gold);
  cursor: pointer;
  background: var(--white-06) !important;
  border: 1px solid var(--white-30) !important;
  border-radius: 4px !important;
  -webkit-appearance: auto !important;
  appearance: auto !important;
}

body.woocommerce-checkout textarea#order_comments {
  min-height: 96px !important;
  resize: vertical;
}

/* Select2 (country / state) — match the dark input treatment */
body.woocommerce-checkout .select2-container--default .select2-selection--single,
body.woocommerce-cart .select2-container--default .select2-selection--single {
  height: auto !important;
  min-height: 48px !important;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 0 16px !important;
  display: flex;
  align-items: center;
  outline: none !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--white-90) !important;
  line-height: 1.4 !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  padding: 12px 0 !important;
  background: transparent !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__placeholder,
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--white-30) !important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow,
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 12px;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b,
body.woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--accent-gold) transparent transparent transparent !important;
}
body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
body.woocommerce-cart .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--brand-blue) !important;
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.4) !important;
}

.select2-container--open .select2-dropdown,
.select2-dropdown.select2-dropdown--below,
.select2-dropdown.select2-dropdown--above {
  background: var(--deep-navy) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.select2-search--dropdown .select2-search__field {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 6px !important;
  color: var(--white-90) !important;
  padding: 8px 12px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
}
.select2-results__option {
  color: var(--white-90) !important;
  background: transparent !important;
  padding: 10px 14px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 15px !important;
}
.select2-results__option--highlighted,
.select2-results__option--highlighted[aria-selected],
li.select2-results__option--highlighted {
  background: var(--white-06) !important;
  color: var(--accent-gold) !important;
}
.select2-results__option[aria-selected="true"] {
  background: rgba(26, 49, 120, 0.4) !important;
  color: var(--white) !important;
}

body.woocommerce-checkout #order_review table.shop_table {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-collapse: collapse !important;
  margin: 0 !important;
  width: 100%;
}
body.woocommerce-checkout #order_review table.shop_table thead th {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--white-12) !important;
  color: var(--white-60) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  padding: 0 0 14px !important;
  text-align: left;
}
body.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item td {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--white-06) !important;
  padding: 14px 0 !important;
  vertical-align: top;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--white-90) !important;
  font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item .product-quantity {
  color: var(--accent-gold) !important;
  font-weight: 600 !important;
  margin-left: 4px;
}
body.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item dl.variation {
  margin: 6px 0 0 !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 13px !important;
  color: var(--white-60) !important;
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr {
  border: 0;
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr th {
  background: transparent !important;
  border: 0 !important;
  padding: 14px 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--white-60) !important;
  text-align: left;
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr td {
  background: transparent !important;
  border: 0 !important;
  padding: 14px 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--white-90) !important;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total {
  border-top: 1px solid var(--accent-gold-dim);
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  color: var(--accent-gold) !important;
}
body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td,
body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td strong,
body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td bdi {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: var(--white) !important;
}

/* Advanced Coupons — store credits redeem accordion (checkout order review).
   Cream light callout on dark checkout so converted credit is hard to miss
   between order total and payment (mirrors .nexgen-service-cart-nudge). */
body.woocommerce-checkout #order_review #acfw-checkout-ui-block,
body.woocommerce-checkout #order_review .acfw-checkout-ui-block {
  margin: 28px 0 0 !important;
  padding: 20px 0 0 !important;
  border-top: 1px solid var(--white-12);
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordions {
  margin: 0;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion {
  border: 1px solid rgba(201, 168, 76, 0.45) !important;
  border-radius: 8px !important;
  overflow: hidden;
  background: var(--cream, #F5F5F0) !important;
  margin: 0 !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05) !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion:last-child {
  border-bottom: 1px solid rgba(201, 168, 76, 0.45) !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion > h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 12px;
  padding: 12px 14px !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--near-black, #1C1A17) !important;
  cursor: pointer;
  transition: color var(--dur-hover) var(--ease-soft),
              background var(--dur-hover) var(--ease-soft);
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion.show > h3 {
  color: var(--accent-gold, #C9A84C) !important;
  background: rgba(201, 168, 76, 0.10) !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion h3 .acfw-accordion-title {
  flex: 1 1 auto;
  color: inherit !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion h3 .nexgen-store-credit-tip {
  flex: 1 0 100%;
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--warm-gray, #8A8580) !important;
  line-height: 1.35 !important;
  cursor: pointer;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion h3 .caret {
  position: static !important;
  top: auto !important;
  margin: 0 !important;
  flex-shrink: 0;
  line-height: 1;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion h3 .caret img {
  display: block;
  width: 12px;
  height: auto;
  /* Charcoal caret on cream surface */
  filter: brightness(0) saturate(100%) invert(10%) sepia(8%) saturate(600%) hue-rotate(5deg) brightness(95%) contrast(95%);
  transition: transform 0.3s ease;
  transform: rotate(-90deg);
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion.show h3 .caret img {
  transform: rotate(0);
  filter: brightness(0) saturate(100%) invert(77%) sepia(29%) saturate(638%) hue-rotate(6deg) brightness(91%) contrast(89%);
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion .acfw-accordion-inner {
  background: transparent !important;
  overflow: hidden;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion .acfw-accordion-content {
  padding: 14px 14px 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--near-black, #1C1A17) !important;
  background: var(--cream, #F5F5F0) !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-accordion .acfw-accordion-content p {
  margin: 0 0 10px;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-store-credit-user-balance {
  margin: 0 0 8px !important;
  color: var(--near-black, #1C1A17) !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-store-credit-user-balance strong {
  color: var(--accent-gold, #C9A84C) !important;
  font-weight: 600 !important;
}
body.woocommerce-checkout #order_review .acfw-checkout-ui-block .acfw-store-credit-instructions {
  margin: 0 0 14px !important;
  color: var(--warm-gray, #8A8580) !important;
  font-size: 13px !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field {
  margin: 0 !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field::after {
  content: "";
  display: table;
  clear: both;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row {
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-first {
  float: left;
  width: calc(100% - 120px) !important;
  padding-right: 12px !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-last {
  float: right;
  width: 108px !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-last label {
  display: none !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field input.input-text {
  width: 100% !important;
  min-height: 48px !important;
  background: #FFFFFF !important;
  color: var(--near-black, #1C1A17) !important;
  border: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 8px !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .button {
  display: block !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 12px 16px !important;
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  transition: all 0.25s ease !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .button:hover {
  background: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  transform: translateY(-1px) !important;
}
body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field p.invalid-message {
  margin: 8px 0 0 !important;
  color: #B91C1C !important;
  font-size: 13px !important;
}

body.woocommerce-checkout #payment {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 28px 0 0 !important;
  padding: 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
  background: rgba(0, 0, 0, 0.2) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 10px !important;
  padding: 16px 18px !important;
  margin: 0 0 12px !important;
  list-style: none !important;
  transition: border-color var(--dur-hover) var(--ease-soft),
              background var(--dur-hover) var(--ease-soft);
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:has(input[type="radio"]:checked) {
  border-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.10) !important;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method label {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--white) !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--accent-gold);
  cursor: pointer;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method img {
  margin: 0 0 0 4px !important;
  vertical-align: middle;
  max-height: 28px;
  width: auto;
}
body.woocommerce-checkout #payment .payment_box {
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 16px 18px !important;
  margin: 14px 0 0 !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--white-90) !important;
}
body.woocommerce-checkout #payment .payment_box::before {
  display: none !important;
}
body.woocommerce-checkout #payment .payment_box p {
  margin: 0 0 10px;
}
body.woocommerce-checkout #payment .payment_box p:last-child {
  margin-bottom: 0;
}

body.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
body.woocommerce-checkout .nexgen-checkout-privacy .woocommerce-privacy-policy-text {
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
  color: var(--white-60) !important;
}
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
body.woocommerce-checkout .nexgen-checkout-privacy .woocommerce-privacy-policy-text a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* Hard spacer — margins collapse inside WC .form-row / floated payment layout. */
body.woocommerce-checkout .nexgen-place-order-gap {
  display: block !important;
  clear: both !important;
  width: 100% !important;
  height: 24px !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
body.woocommerce-checkout .nexgen-checkout-privacy {
  display: block !important;
  clear: both !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-checkout .nexgen-checkout-privacy .woocommerce-privacy-policy-text p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Checkout disclaimer block: "Please read" + age + card/Venmo checkboxes
   (functions.php → custom_checkout_disclaimer_checkbox). */
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers {
  margin: 18px 0 0 !important;
  padding: 0 !important;
}
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers__heading {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
}
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers .form-row.terms {
  margin: 0 0 14px !important;
}
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers .form-row.terms:last-child {
  margin-bottom: 0 !important;
}
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers__card[hidden],
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers__venmo[hidden] {
  display: none !important;
  margin: 0 !important;
}

/* Venmo Pro "place order first" payment_box — content moved to Please-read checkbox. */
body.woocommerce-checkout #payment .payment_method_venmo .payment_box {
  display: none !important;
}

/* Custom disclaimer checkbox (functions.php hook at woocommerce-review-order-
   before-submit). Match by proximity using :has(). */
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers .form-row.terms:not([hidden]) label {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  color: var(--white-90) !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer;
}
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers__descriptor {
  color: var(--accent-gold) !important;
  font-weight: 700 !important;
}
body.woocommerce-checkout #payment input[type="checkbox"][name*="disclaimer"],
body.woocommerce-checkout #payment p:has(input[type="checkbox"]):not([hidden]) input[type="checkbox"],
body.woocommerce-checkout #payment .nexgen-checkout-disclaimers input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--accent-gold);
  cursor: pointer;
  flex-shrink: 0;
}

body.woocommerce-checkout #payment .place-order {
  margin: 16px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-checkout #payment .place-order #place_order {
  display: block !important;
  width: 100% !important;
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}
body.woocommerce-checkout form.checkout.processing #place_order {
  opacity: 0.7 !important;
  pointer-events: none;
  position: relative;
}
body.woocommerce-checkout form.checkout.processing #place_order::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-left: 10px;
  border: 2px solid transparent;
  border-top-color: var(--white);
  border-right-color: var(--white);
  border-radius: 50%;
  vertical-align: middle;
  animation: nexgen-cc-spin 0.8s linear infinite;
}

/* Defensive focus / active state — kill any browser-default focus ring or
   gold-tinted glow that EAEL or Hello Elementor might add on hover/active.
   Match design.md: the only hover effect is the deep-navy bg + lift + soft
   dark shadow. No gold border, no gold glow, no extra ring. */
body.woocommerce-cart button[name="apply_coupon"]:focus,
body.woocommerce-cart button[name="apply_coupon"]:focus-visible,
body.woocommerce-cart button[name="apply_coupon"]:active,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus-visible,
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:active,
body.woocommerce-cart a.checkout-button:focus,
body.woocommerce-cart a.checkout-button:focus-visible,
body.woocommerce-cart a.checkout-button:active,
body.woocommerce-cart .return-to-shop a.button:focus,
body.woocommerce-cart .return-to-shop a.button:focus-visible,
body.woocommerce-checkout #place_order:focus,
body.woocommerce-checkout #place_order:focus-visible,
body.woocommerce-checkout #place_order:active,
body.woocommerce-checkout button[name="apply_coupon"]:focus,
body.woocommerce-checkout button[name="apply_coupon"]:focus-visible,
body.woocommerce-checkout button[name="apply_coupon"]:active {
  outline: none !important;
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), 0 0 16px var(--accent-gold-glow) !important;
}

/* === RESPONSIVE === */

@media (max-width: 1024px) {
  body.woocommerce-cart .e-cart__container {
    display: block !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    grid-template-rows: none !important;
  }
  body.woocommerce-cart .e-cart__column-start,
  body.woocommerce-cart .e-cart__column-end {
    width: 100% !important;
    grid-column: auto !important;
    grid-row: auto !important;
    margin-bottom: 32px;
  }
  body.woocommerce-checkout form.woocommerce-checkout {
    display: block !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    grid-template-rows: none !important;
  }
  body.woocommerce-checkout form.woocommerce-checkout .col2-set,
  body.woocommerce-checkout form.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout form.woocommerce-checkout #order_review {
    grid-area: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    margin-bottom: 32px;
  }
  body.woocommerce-checkout form.woocommerce-checkout #order_review {
    margin-bottom: 0;
  }
  body.woocommerce-cart .e-cart__column-end,
  body.woocommerce-checkout form.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout form.woocommerce-checkout #order_review {
    position: static !important;
    top: auto !important;
  }
  body.woocommerce-checkout form.woocommerce-checkout .col2-set,
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart_totals {
    padding: 28px 28px;
  }
  body.woocommerce-checkout form.woocommerce-checkout #order_review_heading {
    padding: 28px 28px 0;
  }
  body.woocommerce-checkout form.woocommerce-checkout #order_review {
    padding: 0 28px 28px;
  }
}

@media (max-width: 768px) {
  body.woocommerce-cart .woocommerce,
  body.woocommerce-checkout .woocommerce {
    padding: 56px 16px 80px;
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart_totals,
  body.woocommerce-checkout form.woocommerce-checkout .col2-set {
    padding: 24px 20px;
  }
  body.woocommerce-checkout form.woocommerce-checkout #order_review_heading {
    padding: 24px 20px 0;
  }
  body.woocommerce-checkout form.woocommerce-checkout #order_review {
    padding: 0 20px 24px;
  }
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-first,
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-last,
  body.woocommerce-checkout .woocommerce-shipping-fields .form-row-first,
  body.woocommerce-checkout .woocommerce-shipping-fields .form-row-last {
    width: 100% !important;
    float: none !important;
    margin-right: 0 !important;
  }
  body.woocommerce-cart table.shop_table.cart thead {
    display: none;
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
    display: block;
    padding: 16px 0;
    border-bottom: 1px solid var(--white-12) !important;
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td {
    display: block;
    padding: 6px 0 !important;
    text-align: right;
    border: 0 !important;
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td::before {
    content: attr(data-title) ":";
    float: left;
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--white-60);
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td.product-remove,
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td.product-thumbnail {
    text-align: left;
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td.product-remove::before,
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item th.product-name::before {
    display: none;
  }
  body.woocommerce-cart table.shop_table.cart tbody tr.cart_item th.product-name {
    display: block;
    text-align: left;
    padding: 6px 0 !important;
    font-family: 'Outfit', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: var(--white-90);
  }
  body.woocommerce-cart .woocommerce-cart-form .coupon {
    flex-direction: column;
  }
  body.woocommerce-cart #coupon_code {
    max-width: none;
    width: 100% !important;
  }
  body.woocommerce-cart button[name="apply_coupon"] {
    width: 100% !important;
  }
  body.woocommerce-checkout form.checkout_coupon input[name="coupon_code"] {
    min-width: 0;
    width: 100% !important;
    margin-bottom: 12px;
  }
  body.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"] {
    width: 100% !important;
  }
  body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-first,
  body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-last {
    float: none !important;
    width: 100% !important;
    padding-right: 0 !important;
  }
  body.woocommerce-checkout #order_review .acfw-redeem-store-credit-form-field .form-row-last {
    margin-top: 12px !important;
  }
  .nexgen-cc-hero {
    margin-bottom: 36px;
  }
}

/* Venmo Pro thank-you page — the wc-venmo-pro plugin renders the "Send $X to
   nxgenpep" link with an inline `style="color: #3396cd"` (Venmo blue). On our
   dark-themed order-received page that blue is the only non-brand colour;
   override to brand gold. Inline style + !important is the only way to beat
   the plugin's hardcoded inline color. */
body.woocommerce-order-received .payment_method_venmo a,
body.woocommerce-order-received .payment_method_venmo a[style*="#3396cd"],
body.woocommerce-order-received .payment_method_venmo p.fw-bold a,
body.woocommerce-checkout .payment_method_venmo a,
body.woocommerce-checkout .payment_method_venmo p.fw-bold a {
  color: var(--accent-gold) !important;
  -webkit-text-fill-color: var(--accent-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}
body.woocommerce-order-received .payment_method_venmo a:hover,
body.woocommerce-checkout .payment_method_venmo a:hover {
  color: var(--accent-gold-bright) !important;
  -webkit-text-fill-color: var(--accent-gold-bright) !important;
}

/* End Cart / Checkout module */

/* --- Why NexGen card overflow fix --- */
.call-to-grid .elementor-cta__content {
  overflow: visible !important;
  min-height: auto !important;
}
.call-to-grid .elementor-cta {
  min-height: auto !important;
  height: auto !important;
}

/* (nexgen-footer-main replaced by nexgen-footer-outer — see Footer section above) */

/* ============================================================
   OTMENS REFRESH SECTIONS
   New sections added 2026-04-14 to improve homepage rhythm.
   Adapts structural patterns from otmens.com through NexGen's
   dark-first premium design system (see design.md).
   - nexgen-how-it-works: 3-step process narrative
   - nexgen-trust-strip: qualitative credential strip
   ============================================================ */

/* --- How It Works (3-step process) --- */
.nexgen-how-it-works {
  background-color: var(--midnight) !important;
  padding-top: 110px !important;
  padding-bottom: 110px !important;
  position: relative;
  overflow: hidden;
}
.nexgen-how-it-works::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
}
.nexgen-how-it-works > .e-con-inner,
.nexgen-how-it-works .e-con-inner {
  position: relative;
  z-index: 1;
}
.nexgen-how-it-works .nexgen-how-eyebrow {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  text-align: center;
  margin-bottom: 18px;
}
.nexgen-how-it-works .nexgen-how-heading .elementor-heading-title,
.nexgen-how-it-works .elementor-widget-heading.nexgen-how-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 36px !important;
  line-height: 1.25 !important;
  letter-spacing: 0.5px !important;
  color: var(--white) !important;
  text-align: center;
  margin: 0 auto 60px !important;
  text-transform: none !important;
}
.nexgen-how-it-works .nexgen-how-row {
  display: flex;
  gap: 48px;
  align-items: stretch;
  justify-content: center;
  position: relative;
  margin: 0 auto;
  max-width: 1200px;
}
.nexgen-how-it-works .nexgen-how-step {
  flex: 1 1 0;
  position: relative;
  padding: 40px 28px 32px;
  text-align: center;
}
.nexgen-how-it-works .nexgen-how-step::before {
  content: attr(data-step);
  display: block;
  position: absolute;
  top: -10px;
  left: 0;
  right: 0;
  text-align: center;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 92px;
  line-height: 1;
  letter-spacing: 4px;
  color: var(--accent-gold);
  pointer-events: none;
  z-index: 0;
}
.nexgen-how-it-works .nexgen-how-step-inner {
  position: relative;
  z-index: 1;
}
.nexgen-how-it-works .nexgen-how-step-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.3;
  color: var(--off-white);
  margin: 52px 0 14px;
}
.nexgen-how-it-works .nexgen-how-step-desc {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--white-60);
  max-width: 320px;
  margin: 0 auto;
}
/* Gold connector lines between columns (desktop only) */
.nexgen-how-it-works .nexgen-how-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 90px;
  right: -24px;
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim), transparent);
  pointer-events: none;
}

/* --- Trust Credential Strip (qualitative social proof band) --- */
.nexgen-trust-strip {
  background-color: var(--deep-navy) !important;
  padding-top: 60px !important;
  padding-bottom: 60px !important;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  position: relative;
}
.nexgen-trust-strip::before,
.nexgen-trust-strip::after {
  content: '';
  position: absolute;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--white-12), transparent);
  pointer-events: none;
}
.nexgen-trust-strip::before { top: 0; }
.nexgen-trust-strip::after { bottom: 0; }
.nexgen-trust-strip .nexgen-trust-row {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
}
.nexgen-trust-strip .nexgen-trust-item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.nexgen-trust-strip .nexgen-trust-icon {
  width: 32px;
  height: 32px;
  color: var(--accent-gold);
  display: block;
  flex-shrink: 0;
}
.nexgen-trust-strip .nexgen-trust-icon svg {
  width: 100%;
  height: 100%;
  stroke: var(--accent-gold);
  fill: none;
  stroke-width: 1.5;
}
.nexgen-trust-strip .nexgen-trust-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--white);
  line-height: 1.3;
}
.nexgen-trust-strip .nexgen-trust-sub {
  font-family: 'Azo Sans', 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.5;
  color: var(--white-60);
  max-width: 200px;
}

/* --- Benefits Portal (animated typewriter + G-rating + 4-card grid) ---
   Sits between nexgen-social-proof-bar and nexgen-section-stacks on the
   homepage. Cards deep-link into /product-category/{pillar}/ archives.
   Follows the otmens refresh pattern (midnight bg + grain + blue glow). */
.nexgen-benefits-portal {
  background-color: var(--midnight) !important;
  padding-top: 110px !important;
  padding-bottom: 110px !important;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.nexgen-benefits-portal::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.06;
}
.nexgen-benefits-portal::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 40%, var(--blue-glow), transparent 70%);
}
.nexgen-benefits-portal > .e-con-inner,
.nexgen-benefits-portal .e-con-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  align-items: center;
}

.nexgen-benefits-portal .nexgen-benefits-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin-bottom: 22px !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

.nexgen-benefits-portal .nexgen-benefits-heading {
  margin-bottom: 18px !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(36px, 5vw, 56px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.3px !important;
  color: var(--white) !important;
  text-align: center !important;
  text-transform: none !important;
}
.nexgen-benefits-portal .nexgen-benefits-type-static {
  color: inherit;
}
.nexgen-benefits-portal .nexgen-benefits-type-rotate {
  color: var(--accent-gold);
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  white-space: nowrap;
}
.nexgen-benefits-portal .nexgen-benefits-type-caret {
  display: inline-block;
  width: 3px;
  height: 0.85em;
  margin-left: 5px;
  background: var(--accent-gold);
  transform: translateY(4px);
  animation: nexgen-benefits-caret 1.1s steps(2) infinite;
}
@keyframes nexgen-benefits-caret {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

.nexgen-benefits-portal .nexgen-benefits-tagline,
.nexgen-benefits-portal .nexgen-benefits-tagline p {
  font-family: 'Outfit', 'Azo Sans', sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
  color: var(--white-60) !important;
  max-width: 620px;
  margin: 0 auto 34px !important;
  text-align: center !important;
}

/* Compact 4-icon trust badge bar sitting under the Peptides-For heading.
   Reuses the .nexgen-trust-row / .nexgen-trust-item / .nexgen-trust-icon /
   .nexgen-trust-label classes from the standalone .nexgen-trust-strip
   section, scoped here to shrink them for the tighter Peptides-For slot.
   No .nexgen-trust-sub in this variant — items are icon + label only. */
.nexgen-benefits-portal .nexgen-benefits-trust {
  width: 100%;
  max-width: 720px;
  margin: 0 auto 28px !important;
}
.nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-row {
  display: flex;
  gap: 28px;
  max-width: 720px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-item {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
}
.nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-icon {
  width: 26px;
  height: 26px;
  color: var(--accent-gold);
  display: block;
  flex-shrink: 0;
}
.nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-icon svg {
  width: 100%;
  height: 100%;
  stroke: var(--accent-gold);
  fill: none;
  stroke-width: 1.5;
}
.nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--white);
  line-height: 1.3;
}

.nexgen-benefits-portal .nexgen-benefits-trust-row {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 0 auto 44px !important;
}
.nexgen-benefits-portal .nexgen-benefits-stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: var(--accent-gold);
}
.nexgen-benefits-portal .nexgen-benefits-trust-text {
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.3px;
  color: var(--white-90);
}
.nexgen-benefits-portal .nexgen-benefits-trust-text strong {
  font-weight: 600;
  color: var(--white);
}
.nexgen-benefits-portal .nexgen-benefits-trust-sep {
  color: var(--accent-gold-dim);
  margin: 0 4px;
}

.nexgen-benefits-portal .nexgen-benefits-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 !important;
}
.nexgen-benefits-portal .nexgen-benefits-grid > .elementor-widget-html {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-benefits-portal .nexgen-benefits-grid > .elementor-widget-html > .elementor-widget-container {
  height: 100%;
}

.nexgen-benefits-portal .nexgen-benefits-card {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 16px;
  padding: 20px 22px;
  background: var(--white-06);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  text-decoration: none !important;
  color: inherit;
  height: 100%;
  position: relative;
  overflow: visible;
  transition:
    transform 0.45s cubic-bezier(0.23, 1, 0.32, 1),
    box-shadow 0.45s cubic-bezier(0.23, 1, 0.32, 1),
    border-color 0.3s ease,
    background-color 0.3s ease;
}
.nexgen-benefits-portal .nexgen-benefits-card:hover {
  background: var(--deep-navy);
  border-color: var(--accent-gold-dim);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.45),
    0 0 0 1px var(--accent-gold-dim) inset;
  transform: translateY(-4px);
}
.nexgen-benefits-portal .nexgen-benefits-card-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.3px;
  color: var(--white-90);
  text-align: left;
  line-height: 1.25;
  transition: color 0.3s ease;
}
.nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-title {
  color: var(--white);
}
.nexgen-benefits-portal .nexgen-benefits-card-accent {
  color: var(--accent-gold);
  font-weight: 600;
  transition: color 0.3s ease;
}
.nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-accent {
  color: var(--accent-gold-bright);
}

/* --- Product parallax: the vial's layout box stays small (so card height
       is stable and grid columns don't shift), but transform: scale lets
       the image *visually* overflow to look like a proper product shot.
       drop-shadow() follows the PNG silhouette. Hover adds lift + tilt
       on top of the baseline scale. --- */
.nexgen-benefits-portal .nexgen-benefits-card-img {
  width: 52px;
  height: 68px;
  object-fit: contain;
  flex-shrink: 0;
  transform: scale(2.5);
  transform-origin: center center;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.45));
  transition:
    transform 0.55s cubic-bezier(0.23, 1, 0.32, 1),
    filter 0.45s ease;
  will-change: transform, filter;
  position: relative;
  z-index: 1;
}
.nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-img {
  transform: scale(2.8) translateY(-4px) rotate(-3deg);
  filter:
    drop-shadow(0 12px 22px rgba(0, 0, 0, 0.6))
    drop-shadow(0 0 26px rgba(201, 168, 76, 0.4));
}

.nexgen-benefits-portal .nexgen-benefits-card-arrow {
  color: var(--accent-gold);
  flex-shrink: 0;
  transition:
    transform 0.35s cubic-bezier(0.23, 1, 0.32, 1),
    color 0.3s ease;
}
.nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-arrow {
  transform: translateX(6px);
  color: var(--accent-gold-bright);
}

/* Reduced motion: freeze caret and hover transforms */
@media (prefers-reduced-motion: reduce) {
  .nexgen-benefits-portal .nexgen-benefits-type-caret { animation: none; opacity: 1; }
  .nexgen-benefits-portal .nexgen-benefits-card:hover { transform: none; }
  .nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-arrow { transform: none; }
  .nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-img { transform: none; }
}

/* Tablet */
@media (max-width: 1024px) {
  .nexgen-benefits-portal .nexgen-benefits-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 720px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .nexgen-benefits-portal {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
  .nexgen-benefits-portal .nexgen-benefits-heading {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  .nexgen-benefits-portal .nexgen-benefits-tagline,
  .nexgen-benefits-portal .nexgen-benefits-tagline p {
    font-size: 16px !important;
  }
  .nexgen-benefits-portal .nexgen-benefits-trust-row {
    flex-direction: column !important;
    gap: 6px !important;
  }
  .nexgen-benefits-portal .nexgen-benefits-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    gap: 14px;
  }
  .nexgen-benefits-portal .nexgen-benefits-card {
    padding: 18px 20px;
  }
  .nexgen-benefits-portal .nexgen-benefits-card-img {
    width: 42px;
    height: 56px;
    transform: scale(2.2);
  }
  .nexgen-benefits-portal .nexgen-benefits-card:hover .nexgen-benefits-card-img {
    transform: scale(2.45) translateY(-3px) rotate(-3deg);
  }
}

/* ============================================================
   ABOUT US — Editorial Brand Story (Post 13)
   8 chapters: hero, origin, pullquote, standard, kinship, process, promise, close
   Dark-first with two cream breath interstitials at CH3 and CH7.
   Motion system classes (.nexgen-fade-in + variants) applied via SECTION_CONFIG auto-tagger.
   ============================================================ */

/* Shared About page body background — let page show true midnight under hero */
body.page-id-13 { background: var(--midnight); }

/* ---------- CH1: Cold Open Hero — nexgen-about-hero ---------- */
.nexgen-about-hero {
  position: relative;
  min-height: calc(100vh - 110px);
  padding: 0 !important;
  background: var(--midnight);
  overflow: hidden;
}
.nexgen-about-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6,14,34,0.35) 0%, rgba(6,14,34,0.75) 70%, var(--midnight) 100%);
  z-index: 1;
  pointer-events: none;
}
.nexgen-about-hero .elementor-container,
.nexgen-about-hero > .e-con-inner {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
}
.nexgen-about-hero-image-wrap { position: absolute !important; inset: 0 !important; z-index: 0 !important; }
.nexgen-about-hero-image-wrap img {
  width: 100%; height: 100%; object-fit: cover; object-position: center center;
  display: block;
}
.nexgen-about-hero-content {
  padding: 0 clamp(24px, 6vw, 96px) clamp(56px, 9vh, 120px);
  max-width: 780px;
}
.nexgen-about-hero-rule {
  width: 56px; height: 2px;
  background: linear-gradient(90deg, var(--accent-gold), var(--accent-gold-dim));
  margin: 0 0 20px;
}
.nexgen-about-hero-content { position: absolute !important; bottom: 0; left: 0; z-index: 3 !important; max-width: 1100px !important; }
/* Force 50/50 splits in origin + kinship (Elementor nested inner containers don't auto-split in flex row) */
.nexgen-about-origin > .e-con-inner > .e-con,
.nexgen-about-origin > .elementor-container > .elementor-element-populated,
.nexgen-about-kinship > .e-con-inner > .e-con,
.nexgen-about-kinship > .elementor-container > .elementor-element-populated {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  align-items: center !important;
  gap: clamp(40px, 5vw, 72px) !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.nexgen-about-origin > .e-con-inner > .e-con > .e-con,
.nexgen-about-kinship > .e-con-inner > .e-con > .e-con {
  width: 100% !important;
  min-width: 0 !important;
}
.nexgen-about-hero-kicker .elementor-heading-title,
.nexgen-about-hero-kicker p {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: clamp(18px, 1.8vw, 22px) !important;
  color: var(--accent-gold) !important;
  letter-spacing: 0.5px !important;
  margin: 0 0 18px !important;
  line-height: 1.3 !important;
}
.nexgen-about-hero-headline .elementor-heading-title {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(40px, 7vw, 84px) !important;
  line-height: 0.95 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  margin: 0 !important;
}
.nexgen-about-hero-headline .elementor-heading-title strong,
.nexgen-about-hero-headline .elementor-heading-title b {
  font-weight: 400 !important;
  color: var(--accent-gold) !important;
}

/* ---------- CH2: Origin — nexgen-about-origin ---------- */
.nexgen-about-origin {
  position: relative;
  background: var(--deep-navy);
  padding: clamp(72px, 12vh, 130px) 0 !important;
  overflow: hidden;
}
.nexgen-about-origin.nexgen-grain::before { opacity: 0.04; }
.nexgen-about-origin .e-con-inner,
.nexgen-about-origin > .elementor-container {
  position: relative; z-index: 2;
}
.nexgen-about-origin-label .elementor-heading-title,
.nexgen-about-origin-label p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 14px !important;
}
.nexgen-about-origin-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  line-height: 1.15 !important;
  color: var(--white) !important;
  margin: 0 0 24px !important;
}
.nexgen-about-origin-body .elementor-widget-container p,
.nexgen-about-origin-body p {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.7 !important;
  color: var(--white-90) !important;
  max-width: 540px;
}
.nexgen-about-origin-body p + p { margin-top: 18px !important; }
.nexgen-about-origin-image img {
  display: block;
  width: 100%;
  max-width: 520px;
  border-radius: 4px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.55);
}

/* ---------- CH3: Pull Quote Interstitial — nexgen-about-pullquote (cream breath #1) ---------- */
.nexgen-about-pullquote {
  background: var(--cream) !important;
  padding: clamp(96px, 16vh, 180px) 0 !important;
  position: relative;
  overflow: hidden;
}
.nexgen-about-pullquote::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.035;
  pointer-events: none;
  z-index: 0;
}
.nexgen-about-pullquote .e-con-inner,
.nexgen-about-pullquote > .elementor-container {
  position: relative; z-index: 1;
}
.nexgen-about-pullquote-rule {
  width: 72px; height: 2px;
  background: linear-gradient(90deg, var(--accent-gold), var(--accent-gold-dim), transparent);
  margin: 0 auto 36px;
}
.nexgen-about-pullquote-text .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(32px, 4.8vw, 64px) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.2px !important;
  color: var(--near-black) !important;
  text-align: center !important;
  max-width: 900px;
  margin: 0 auto !important;
  font-style: italic !important;
}
.nexgen-about-pullquote-rule-bottom {
  width: 72px; height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim), var(--accent-gold));
  margin: 36px auto 0;
}

/* ---------- CH4: The Standard — nexgen-about-standard ---------- */
.nexgen-about-standard {
  position: relative;
  background: var(--midnight);
  padding: clamp(90px, 14vh, 160px) 0 !important;
  overflow: hidden;
}
/* Position the NG Syndicate vial as a LARGE right-side focal element.
   Stats + heading shift to the left half so the vial has its own room. */
.nexgen-about-standard-bg {
  position: absolute !important;
  top: 50%;
  right: 4vw;
  left: auto !important;
  transform: translateY(-50%) !important;
  width: clamp(220px, 24vw, 340px) !important;
  height: auto !important;
  z-index: 2 !important;
  opacity: 0.95;
  pointer-events: none;
  filter: drop-shadow(0 24px 50px rgba(0,0,0,0.65)) drop-shadow(0 0 100px rgba(26,49,120,0.55));
}
.nexgen-about-standard-bg img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  filter: none;
}
.nexgen-about-standard-bg .elementor-widget-container {
  height: auto !important;
}
/* Stats + heading anchor to the left to yield the right side to the vial */
.nexgen-about-standard > .e-con-inner,
.nexgen-about-standard > .elementor-container {
  align-items: flex-start !important;
  padding-right: clamp(260px, 28vw, 400px) !important;
}
.nexgen-about-standard .nexgen-about-standard-label,
.nexgen-about-standard .nexgen-about-standard-label .elementor-heading-title {
  text-align: left !important;
  margin-left: 0 !important;
}
.nexgen-about-standard .nexgen-about-standard-heading,
.nexgen-about-standard .nexgen-about-standard-heading .elementor-heading-title {
  text-align: left !important;
  margin-left: 0 !important;
  max-width: 880px !important;
}
.nexgen-about-standard .nexgen-about-standard-stats {
  max-width: 880px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.nexgen-about-standard .nexgen-about-stat { text-align: left !important; padding: 0 16px 0 0; }
.nexgen-about-standard .nexgen-about-stat:first-child { padding-left: 0 !important; }
.nexgen-about-standard .nexgen-about-standard-stats::before { left: 33%; }
.nexgen-about-standard .nexgen-about-standard-stats::after { left: 66%; }
.nexgen-about-standard::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, var(--blue-glow), transparent 75%);
  z-index: 1;
  pointer-events: none;
}
.nexgen-about-standard .e-con-inner,
.nexgen-about-standard > .elementor-container {
  position: relative; z-index: 2;
}
.nexgen-about-standard-label .elementor-heading-title,
.nexgen-about-standard-label p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  text-align: center !important;
  margin: 0 0 16px !important;
}
.nexgen-about-standard-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(32px, 4.2vw, 52px) !important;
  line-height: 1.15 !important;
  color: var(--white) !important;
  text-align: center !important;
  margin: 0 auto clamp(56px, 8vh, 96px) !important;
  max-width: 820px;
}
/* Standard section layout: center label+heading+stats in a vertical column */
.nexgen-about-standard > .e-con-inner,
.nexgen-about-standard > .elementor-container {
  align-items: center !important;
  flex-direction: column !important;
}
.nexgen-about-standard > .e-con-inner > .elementor-element,
.nexgen-about-standard > .elementor-container > .elementor-element {
  width: 100%;
}
.nexgen-about-standard-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
}
.nexgen-about-standard-stats::before,
.nexgen-about-standard-stats::after {
  content: '';
  position: absolute;
  top: 10%; bottom: 10%;
  width: 1px;
  background: linear-gradient(180deg, transparent, var(--white-12), transparent);
}
.nexgen-about-standard-stats::before { left: 33.33%; }
.nexgen-about-standard-stats::after { left: 66.66%; }
.nexgen-about-stat { text-align: center; padding: 0 24px; }
.nexgen-about-stat-numeral {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(40px, 4.5vw, 64px) !important;
  line-height: 1 !important;
  letter-spacing: 1.5px !important;
  color: var(--accent-gold) !important;
  margin: 0 0 12px !important;
  display: block;
}
.nexgen-about-stat-label {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--white-90) !important;
  margin: 0 0 8px !important;
}
.nexgen-about-stat-sub {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--white-60) !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ---------- CH5: Kinship — nexgen-about-kinship ---------- */
.nexgen-about-kinship {
  position: relative;
  background: var(--deep-navy);
  padding: clamp(72px, 12vh, 130px) 0 !important;
  overflow: hidden;
}
.nexgen-about-kinship.nexgen-grain::before { opacity: 0.04; }
.nexgen-about-kinship .e-con-inner,
.nexgen-about-kinship > .elementor-container {
  position: relative; z-index: 2;
}
.nexgen-about-kinship-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
}
.nexgen-about-kinship-label .elementor-heading-title,
.nexgen-about-kinship-label p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 14px !important;
}
.nexgen-about-kinship-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(28px, 3.4vw, 42px) !important;
  line-height: 1.2 !important;
  color: var(--white) !important;
  margin: 0 0 24px !important;
}
.nexgen-about-kinship-body .elementor-widget-container p,
.nexgen-about-kinship-body p {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.7 !important;
  color: var(--white-90) !important;
  max-width: 460px;
}
.nexgen-about-kinship-body p + p { margin-top: 18px !important; }

/* ---------- CH6: The Process (timeline) — nexgen-about-process ---------- */
.nexgen-about-process {
  position: relative;
  background: var(--midnight);
  padding: clamp(90px, 14vh, 160px) 0 !important;
  overflow: hidden;
}
.nexgen-about-process.nexgen-grain::before { opacity: 0.05; }
.nexgen-about-process .e-con-inner,
.nexgen-about-process > .elementor-container {
  position: relative; z-index: 2;
}
.nexgen-about-process-label .elementor-heading-title,
.nexgen-about-process-label p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  text-align: center !important;
  margin: 0 0 16px !important;
}
.nexgen-about-process-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(32px, 4.2vw, 52px) !important;
  line-height: 1.15 !important;
  color: var(--white) !important;
  text-align: center !important;
  margin: 0 auto clamp(48px, 8vh, 90px) !important;
  max-width: 820px;
}
/* Process section container layout: center label/heading/steps vertically */
.nexgen-about-process > .e-con-inner,
.nexgen-about-process > .elementor-container {
  align-items: center !important;
  flex-direction: column !important;
}
.nexgen-about-process > .e-con-inner > .elementor-element,
.nexgen-about-process > .elementor-container > .elementor-element {
  width: 100%;
}
.nexgen-about-process-steps {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  gap: clamp(32px, 4vh, 48px);
  position: relative;
}
.nexgen-about-process-step {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) clamp(240px, 24vw, 320px);
  gap: clamp(20px, 2.5vw, 40px);
  align-items: start;
  position: relative;
  padding-left: 56px;
}
.nexgen-about-process-step::before {
  /* gold node dot in the padding-left gutter, vertically aligned with num */
  content: '';
  position: absolute;
  left: 20px; top: 22px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--accent-gold);
  box-shadow: 0 0 0 6px rgba(201,168,76,0.12), 0 0 24px var(--accent-gold-glow);
  z-index: 2;
}
.nexgen-about-process-step:not(:last-child)::after {
  /* thin vertical connector rule in the padding gutter (does not overlap numerals) */
  content: '';
  position: absolute;
  left: 25px;
  top: 44px;
  bottom: calc(-1 * clamp(20px, 2.5vh, 48px));
  width: 2px;
  background: linear-gradient(180deg, var(--accent-gold-dim), rgba(201,168,76,0.05));
  z-index: 1;
}
.nexgen-about-process-step-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 6px;
}
.nexgen-about-process-step-num {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: 64px !important;
  line-height: 1 !important;
  letter-spacing: 2px !important;
  color: var(--accent-gold) !important;
  margin: 0 !important;
  align-self: start;
}
.nexgen-about-process-step-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: 28px !important;
  line-height: 1.2 !important;
  color: var(--white) !important;
  margin: 0 !important;
}
.nexgen-about-process-step-text,
.nexgen-about-process-step-text p {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--white-90) !important;
  margin: 0 !important;
  max-width: 520px;
}
.nexgen-about-process-step-img {
  align-self: start;
}
.nexgen-about-process-step-img img {
  display: block;
  width: 100%;
  max-width: 320px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.55);
  margin-left: auto;
}

/* ---------- CH7: The Promise (cream breath #2) — nexgen-about-promise ---------- */
.nexgen-about-promise {
  background: var(--cream) !important;
  padding: clamp(96px, 16vh, 180px) 0 !important;
  position: relative;
  overflow: hidden;
}
.nexgen-about-promise::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.035;
  pointer-events: none;
  z-index: 0;
}
.nexgen-about-promise .e-con-inner,
.nexgen-about-promise > .elementor-container {
  position: relative; z-index: 1;
}
.nexgen-about-promise-label .elementor-heading-title,
.nexgen-about-promise-label p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold-bright) !important;
  text-align: center !important;
  margin: 0 0 24px !important;
}
.nexgen-about-promise-text .elementor-widget-container p,
.nexgen-about-promise-text p {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(24px, 3.2vw, 34px) !important;
  line-height: 1.35 !important;
  color: var(--near-black) !important;
  text-align: center !important;
  max-width: 720px;
  margin: 0 auto !important;
}
.nexgen-about-promise-text em,
.nexgen-about-promise-text strong {
  font-style: italic;
  font-weight: 600;
  border-bottom: 2px solid var(--accent-gold);
  padding-bottom: 2px;
}

/* ---------- CH8: Close + CTA — nexgen-about-close ---------- */
.nexgen-about-close {
  position: relative;
  min-height: 80vh;
  padding: clamp(120px, 18vh, 200px) 0 !important;
  background: var(--midnight);
  overflow: hidden;
}
.nexgen-about-close-bg {
  position: absolute !important; inset: 0 !important;
  z-index: 0 !important;
  opacity: 0.45;
}
.nexgen-about-close-bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: center center;
  display: block;
}
.nexgen-about-close::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(26,49,120,0.25), rgba(6,14,34,0.75) 70%);
  z-index: 1;
  pointer-events: none;
}
.nexgen-about-close .e-con-inner,
.nexgen-about-close > .elementor-container {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.nexgen-about-close-rule {
  width: 56px; height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
  margin: 0 auto 32px;
}
.nexgen-about-close-headline .elementor-heading-title {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(40px, 6vw, 72px) !important;
  line-height: 1 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  text-align: center !important;
  margin: 0 0 16px !important;
}
.nexgen-about-close-sub .elementor-widget-container p,
.nexgen-about-close-sub p {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-style: italic !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  line-height: 1.4 !important;
  color: var(--white-60) !important;
  text-align: center !important;
  max-width: 640px;
  margin: 0 auto 40px !important;
}
.nexgen-about-close-cta {
  display: flex !important;
  justify-content: center !important;
  background: transparent !important;
}
.nexgen-about-close-cta a {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--midnight) !important;
  background: var(--accent-gold) !important;
  border: 1px solid var(--accent-gold) !important;
  border-radius: 2px !important;
  padding: 18px 44px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
  transition-property: color, background-color, border-color, transform, box-shadow !important;
  transition-duration: 320ms !important;
  transition-timing-function: var(--ease-soft, cubic-bezier(0.22, 1, 0.36, 1)) !important;
}
.nexgen-about-close-cta a:hover {
  color: var(--accent-gold) !important;
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(11, 21, 48, 0.50) !important;
}

/* ---------- About Us Responsive ---------- */
@media (max-width: 1024px) {
  .nexgen-about-origin .elementor-container,
  .nexgen-about-origin > .e-con-inner,
  .nexgen-about-kinship .elementor-container,
  .nexgen-about-kinship > .e-con-inner {
    grid-template-columns: 1fr !important;
    gap: 48px !important;
  }
  .nexgen-about-origin > .e-con-inner > .e-con,
  .nexgen-about-origin > .elementor-container > .elementor-element-populated,
  .nexgen-about-kinship > .e-con-inner > .e-con,
  .nexgen-about-kinship > .elementor-container > .elementor-element-populated {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 36px !important;
    max-width: 680px !important;
  }
  .nexgen-about-origin > .e-con-inner > .e-con > .e-con,
  .nexgen-about-kinship > .e-con-inner > .e-con > .e-con {
    max-width: 100% !important;
  }
  .nexgen-about-process-step {
    grid-template-columns: 88px 1fr;
  }
  .nexgen-about-process-step-img {
    grid-column: 1 / -1;
    margin-top: 20px;
  }
  .nexgen-about-process-step-img img { max-width: 420px; margin: 0 auto; }
  .nexgen-about-process-step:not(:last-child)::after {
    bottom: calc(-1 * clamp(40px, 6vh, 72px) + 20px);
  }
  .nexgen-about-standard-stats { grid-template-columns: 1fr; gap: 40px; }
  .nexgen-about-standard-stats::before,
  .nexgen-about-standard-stats::after { display: none; }
}

@media (max-width: 768px) {
  .nexgen-about-hero { min-height: 90vh; }
  .nexgen-about-hero-content { padding: 0 24px 64px; }
  .nexgen-about-hero-headline { font-size: clamp(36px, 9vw, 56px) !important; letter-spacing: 2px !important; }
  .nexgen-about-origin > .e-con-inner,
  .nexgen-about-origin > .elementor-container,
  .nexgen-about-pullquote > .e-con-inner,
  .nexgen-about-pullquote > .elementor-container,
  .nexgen-about-standard > .e-con-inner,
  .nexgen-about-standard > .elementor-container,
  .nexgen-about-kinship > .e-con-inner,
  .nexgen-about-kinship > .elementor-container,
  .nexgen-about-process > .e-con-inner,
  .nexgen-about-process > .elementor-container,
  .nexgen-about-promise > .e-con-inner,
  .nexgen-about-promise > .elementor-container,
  .nexgen-about-close > .e-con-inner,
  .nexgen-about-close > .elementor-container {
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .nexgen-about-origin,
  .nexgen-about-kinship { padding: 64px 20px !important; }
  .nexgen-about-origin-image,
  .nexgen-about-kinship-image {
    max-width: min(100%, 420px) !important;
    margin: 4px auto 0 !important;
  }
  .nexgen-about-origin-image img,
  .nexgen-about-kinship-image img {
    width: 100% !important;
    height: auto !important;
  }
  .nexgen-about-origin-body p,
  .nexgen-about-kinship-body p { font-size: 16px !important; }
  .nexgen-about-pullquote,
  .nexgen-about-promise { padding: 80px 20px !important; }
  .nexgen-about-pullquote-text { font-size: clamp(26px, 6.4vw, 40px) !important; }
  .nexgen-about-promise-text p { font-size: 22px !important; }
  .nexgen-about-standard { padding: 72px 20px !important; }
  .nexgen-about-standard-heading { font-size: clamp(26px, 6vw, 36px) !important; margin-bottom: 48px !important; }
  .nexgen-about-stat-numeral { font-size: 56px !important; }
  .nexgen-about-process { padding: 72px 20px !important; }
  .nexgen-about-process-heading { font-size: clamp(26px, 6vw, 36px) !important; margin-bottom: 40px !important; }
  .nexgen-about-process-step { grid-template-columns: 72px 1fr; }
  .nexgen-about-process-step::before { left: 30px; }
  .nexgen-about-process-step:not(:last-child)::after { left: 35px; }
  .nexgen-about-process-step-num { font-size: 52px !important; padding-left: 0; }
  .nexgen-about-process-step-title { font-size: 22px !important; }
  .nexgen-about-process-step-text p { font-size: 15px !important; }
  .nexgen-about-close { min-height: 70vh; padding: 96px 20px !important; }
  .nexgen-about-close-headline { font-size: clamp(32px, 8vw, 48px) !important; letter-spacing: 2px !important; }
}

@media (max-width: 428px) {
  .nexgen-about-hero-content,
  .nexgen-about-origin > .e-con-inner,
  .nexgen-about-origin > .elementor-container,
  .nexgen-about-pullquote > .e-con-inner,
  .nexgen-about-pullquote > .elementor-container,
  .nexgen-about-standard > .e-con-inner,
  .nexgen-about-standard > .elementor-container,
  .nexgen-about-kinship > .e-con-inner,
  .nexgen-about-kinship > .elementor-container,
  .nexgen-about-process > .e-con-inner,
  .nexgen-about-process > .elementor-container,
  .nexgen-about-promise > .e-con-inner,
  .nexgen-about-promise > .elementor-container,
  .nexgen-about-close > .e-con-inner,
  .nexgen-about-close > .elementor-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .nexgen-about-origin,
  .nexgen-about-pullquote,
  .nexgen-about-standard,
  .nexgen-about-kinship,
  .nexgen-about-process,
  .nexgen-about-promise,
  .nexgen-about-close {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .nexgen-about-hero-headline { font-size: 36px !important; letter-spacing: 1.5px !important; }
  .nexgen-about-pullquote-text { font-size: 24px !important; }
  .nexgen-about-promise-text p { font-size: 19px !important; }
  .nexgen-about-stat-numeral { font-size: 48px !important; }
  .nexgen-about-close-headline { font-size: 32px !important; }
  .nexgen-about-close-cta a { padding: 16px 32px !important; font-size: 14px !important; }
}

/* Reduced motion: disable About hover lift + transform transitions */
@media (prefers-reduced-motion: reduce) {
  .nexgen-about-close-cta a:hover { transform: none; }
}

/* Full-bleed close section: image fills 100vw width and 100% of section height. Negative top/bottom escape the section's vertical padding; section's overflow:hidden clips the excess back to the section bounds. */
.nexgen-about-close {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.nexgen-about-close-bg {
  top: -300px !important;
  bottom: -300px !important;
  left: calc(50% - 50vw) !important;
  right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}
.nexgen-about-close-bg img {
  max-width: 100vw !important;
}

/* ============================================================
   END ABOUT US
   ============================================================ */

/* ============================================================
   CONTACT US — NGS-215 layout v4 (page-id-17)
   No hero. Copy left | form + Blank-style info cards right.
   ============================================================ */

body.page-id-17 {
  background: var(--midnight);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.page-id-17 .elementor[data-elementor-type="wp-page"] {
  background: transparent;
}

/* ---------- Main split: text LEFT | form RIGHT (wide) ---------- */
body.page-id-17 .nexgen-contact-main.e-con,
body.page-id-17 .nexgen-contact-main {
  position: relative;
  background: var(--midnight);
  padding: clamp(48px, 6vw, 80px) clamp(20px, 4vw, 48px) 40px !important;
  max-width: min(1400px, 94vw) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  /* Beat Elementor flex-column stacking */
  display: grid !important;
  grid-template-columns: minmax(280px, 1fr) minmax(360px, 1.2fr) !important;
  column-gap: clamp(40px, 5vw, 72px) !important;
  row-gap: 32px !important;
  align-items: start !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  --flex-direction: row;
  --container-widget-width: 100%;
  --container-widget-flex-grow: 0;
  --container-widget-flex-shrink: 1;
  --container-widget-flex-basis: auto;
}
.nexgen-contact-main.nexgen-grain::before { opacity: 0.035; }
/* Let nested children participate in the parent grid */
body.page-id-17 .nexgen-contact-main > .e-con-inner,
body.page-id-17 .nexgen-contact-main > .elementor-container {
  display: contents !important;
}
body.page-id-17 .nexgen-contact-main > .nexgen-contact-copy,
body.page-id-17 .nexgen-contact-main > .nexgen-contact-form-card,
body.page-id-17 .nexgen-contact-main > .nexgen-contact-right,
body.page-id-17 .nexgen-contact-main > .e-con-inner > .nexgen-contact-copy,
body.page-id-17 .nexgen-contact-main > .e-con-inner > .nexgen-contact-form-card,
body.page-id-17 .nexgen-contact-main > .e-con-inner > .nexgen-contact-right {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 0 1 auto !important;
  flex-basis: auto !important;
  align-self: start !important;
  position: relative !important;
}

/* Left copy (combined former hero + Direct line) */
.nexgen-contact-copy-label .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 1.6px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 14px !important;
}
.nexgen-contact-copy-heading .elementor-heading-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  font-size: clamp(32px, 4vw, 44px) !important;
  line-height: 1.12 !important;
  color: var(--white) !important;
  margin: 0 0 18px !important;
  text-wrap: balance;
}
.nexgen-contact-copy-body .elementor-widget-container p,
.nexgen-contact-copy-body p {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--white-60) !important;
  margin: 0 0 14px !important;
  text-wrap: pretty;
}
.nexgen-contact-copy-body p:last-child { margin-bottom: 0 !important; }
.nexgen-contact-email-wrap { margin-top: 24px !important; }
.nexgen-contact-email,
.nexgen-contact-email:link,
.nexgen-contact-email:visited {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--accent-gold) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--accent-gold-dim);
  transition-property: color, border-color;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-contact-email:hover,
.nexgen-contact-email:focus-visible {
  color: var(--white) !important;
  border-bottom-color: rgba(255, 255, 255, 0.4);
}

.nexgen-contact-form-card {
  background: var(--off-white) !important;
  background-color: var(--off-white) !important;
  border-radius: 12px !important;
  padding: clamp(28px, 3.5vw, 36px) !important;
  overflow: hidden !important;
  isolation: isolate;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.18),
    0 12px 32px rgba(0, 0, 0, 0.28),
    0 28px 64px rgba(0, 0, 0, 0.2);
}
/* Kill Elementor/WPForms white surfaces that bleed as a strip under the form */
body.page-id-17 .nexgen-contact-copy,
body.page-id-17 .nexgen-contact-info-section,
body.page-id-17 .nexgen-contact-info-section.e-con,
body.page-id-17 .nexgen-contact-main > .e-con-inner,
body.page-id-17 .nexgen-contact-info-section > .e-con-inner,
body.page-id-17 .nexgen-contact-form-card > .e-con-inner,
body.page-id-17 .nexgen-contact-form-card .elementor-widget-container,
body.page-id-17 .nexgen-contact-form-card .wpforms-container,
body.page-id-17 .nexgen-contact-form-card .wpforms-container-full,
body.page-id-17 .nexgen-contact-info,
body.page-id-17 .nexgen-contact-info .elementor-widget-container,
body.page-id-17 .elementor-widget-html.nexgen-contact-info {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
body.page-id-17 .nexgen-contact-form-card .wpforms-recaptcha-container {
  background: transparent !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 100% !important;
}
.nexgen-contact-form-heading .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  color: var(--near-black) !important;
  margin: 0 0 20px !important;
  text-wrap: balance;
}
.nexgen-contact-form-card .elementor-widget-wpforms,
.nexgen-contact-form { margin: 0 !important; }

.nexgen-contact-form-card .wpforms-container,
.nexgen-contact-form-card .wpforms-container-full { margin: 0 !important; }
.nexgen-contact-form-card .wpforms-field {
  padding: 0 0 16px !important;
  float: none !important;
  clear: both !important;
}
.nexgen-contact-form-card .wpforms-field-label,
.nexgen-contact-form-card legend.wpforms-field-label {
  display: block !important;
  float: none !important;
  width: 100% !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  color: var(--near-black) !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
}
.nexgen-contact-form-card .wpforms-field-sublabel {
  display: block !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  color: var(--warm-gray) !important;
  margin: 6px 0 0 !important;
}
.nexgen-contact-form-card .wpforms-required-label { color: var(--heritage-red) !important; }
.nexgen-contact-form-card fieldset {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}
.nexgen-contact-form-card input[type="text"],
.nexgen-contact-form-card input[type="email"],
.nexgen-contact-form-card input[type="tel"],
.nexgen-contact-form-card input[type="number"],
.nexgen-contact-form-card input[type="url"],
.nexgen-contact-form-card select,
.nexgen-contact-form-card textarea {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 48px !important;
  background: #fff !important;
  border: 1px solid #E0DCD7 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: var(--near-black) !important;
  padding: 12px 16px !important;
  transition-property: border-color, box-shadow;
  transition-duration: 160ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-contact-form-card textarea {
  min-height: 140px !important;
  resize: vertical;
}
.nexgen-contact-form-card input::placeholder,
.nexgen-contact-form-card textarea::placeholder {
  color: var(--warm-gray) !important;
  opacity: 1 !important;
}
.nexgen-contact-form-card input:focus,
.nexgen-contact-form-card input:focus-visible,
.nexgen-contact-form-card select:focus,
.nexgen-contact-form-card select:focus-visible,
.nexgen-contact-form-card textarea:focus,
.nexgen-contact-form-card textarea:focus-visible {
  outline: none !important;
  border-color: rgba(26, 49, 120, 0.45) !important;
  box-shadow: 0 0 0 2px rgba(26, 49, 120, 0.4) !important;
}

/* Name First | Last — kill WPForms float zigzag */
.nexgen-contact-form-card .wpforms-field-name .wpforms-field-row,
.nexgen-contact-form-card .wpforms-field-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}
.nexgen-contact-form-card .wpforms-field-row::before,
.nexgen-contact-form-card .wpforms-field-row::after {
  content: none !important;
  display: none !important;
}
.nexgen-contact-form-card .wpforms-field-row-block,
.nexgen-contact-form-card .wpforms-one-half,
.nexgen-contact-form-card .wpforms-first {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
}
.nexgen-contact-form-card .wpforms-submit-container {
  margin-top: 8px !important;
  padding: 0 !important;
}
.nexgen-contact-form-card button[type="submit"],
.nexgen-contact-form-card .wpforms-submit,
.nexgen-contact-form-card input[type="submit"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  min-width: 160px !important;
  padding: 14px 28px !important;
  background: var(--charcoal) !important;
  background-image: none !important;
  border: none !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12) !important;
  transition-property: transform, background-color, opacity;
  transition-duration: 160ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-contact-form-card button[type="submit"]:hover,
.nexgen-contact-form-card .wpforms-submit:hover,
.nexgen-contact-form-card input[type="submit"]:hover {
  background: #1a1a1a !important;
}
.nexgen-contact-form-card button[type="submit"]:active,
.nexgen-contact-form-card .wpforms-submit:active,
.nexgen-contact-form-card input[type="submit"]:active {
  transform: scale(0.96);
}
.nexgen-contact-form-card .wpforms-error,
.nexgen-contact-form-card .wpforms-error-label,
.nexgen-contact-form-card label.wpforms-error {
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  color: var(--heritage-red) !important;
}
.nexgen-contact-form-card .wpforms-confirmation-container-full,
.nexgen-contact-form-card .wpforms-confirmation-container {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  color: var(--near-black) !important;
}

/* Contact info — full-width centered band under the two columns */
body.page-id-17 .nexgen-contact-info-section.e-con,
body.page-id-17 .nexgen-contact-info-section {
  background: var(--midnight);
  padding: 8px clamp(20px, 4vw, 48px) clamp(72px, 10vw, 120px) !important;
  max-width: min(1400px, 94vw) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.page-id-17 .nexgen-contact-info-section > .e-con-inner,
body.page-id-17 .nexgen-contact-info-section > .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.nexgen-contact-info { margin: 0 !important; width: 100% !important; }
.nexgen-contact-info-panel {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  text-align: left;
}
.nexgen-contact-info-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--white);
  margin: 0 0 22px;
  text-align: center;
}
.nexgen-contact-info-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  align-items: stretch;
}
.nexgen-contact-info-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: var(--deep-navy);
  border: 1px solid var(--white-12);
  border-radius: 10px;
  padding: 26px 28px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  min-height: 148px;
  height: 100%;
  box-sizing: border-box;
}
.nexgen-contact-info-icon-wrap {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--white-06);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-gold);
  margin-top: 2px;
}
.nexgen-contact-info-icon { display: block; }
.nexgen-contact-info-card-body {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
}
.nexgen-contact-info-label {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 8px;
}
.nexgen-contact-info-primary,
a.nexgen-contact-info-primary,
p.nexgen-contact-info-primary {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 17px !important;
  line-height: 1.35 !important;
  color: var(--white) !important;
  margin: 0 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
a.nexgen-contact-info-primary,
a.nexgen-contact-info-email {
  display: inline !important;
  color: var(--white) !important;
  border-bottom: 1px solid var(--accent-gold-dim);
  transition-property: color, border-color;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
a.nexgen-contact-info-primary:hover,
a.nexgen-contact-info-primary:focus-visible,
a.nexgen-contact-info-email:hover,
a.nexgen-contact-info-email:focus-visible {
  color: var(--accent-gold) !important;
  border-bottom-color: var(--accent-gold);
}
.nexgen-contact-info-secondary {
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  color: var(--white-60);
  margin: 8px 0 0;
}

/* Hide legacy hero if leftover in cache */
.nexgen-contact-hero { display: none !important; }

@media (max-width: 900px) {
  body.page-id-17 .nexgen-contact-main.e-con,
  body.page-id-17 .nexgen-contact-main {
    grid-template-columns: 1fr !important;
  }
  .nexgen-contact-info-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  body.page-id-17 .nexgen-contact-main.e-con,
  body.page-id-17 .nexgen-contact-main,
  body.page-id-17 .nexgen-contact-info-section.e-con,
  body.page-id-17 .nexgen-contact-info-section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .nexgen-contact-form-card {
    padding: 24px 20px !important;
  }
  .nexgen-contact-form-card .wpforms-field-name .wpforms-field-row,
  .nexgen-contact-form-card .wpforms-field-row {
    grid-template-columns: 1fr !important;
  }
  .nexgen-contact-form-card button[type="submit"],
  .nexgen-contact-form-card .wpforms-submit,
  .nexgen-contact-form-card input[type="submit"] {
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-contact-form-card button[type="submit"]:active,
  .nexgen-contact-form-card .wpforms-submit:active,
  .nexgen-contact-form-card input[type="submit"]:active {
    transform: none;
  }
}

/* ============================================================
   END CONTACT US
   ============================================================ */

/* --- Responsive: Tablet (max-width: 768px) --- */

@media (max-width: 768px) {
  .nexgen-section-best-sellers,
  .nexgen-section-stacks,
  .nexgen-section-latest,
  .nexgen-section-trust,
  .nexgen-section-categories,
  .nexgen-section-tokens,
  .nexgen-section-testimonials {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  /* How It Works — tablet: stack, hide connectors */
  .nexgen-how-it-works {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
  .nexgen-how-it-works .nexgen-how-row {
    flex-direction: column;
    gap: 24px;
  }
  .nexgen-how-it-works .nexgen-how-step::after {
    display: none;
  }
  .nexgen-how-it-works .nexgen-how-step::before {
    font-size: 72px;
    top: 0;
  }
  .nexgen-how-it-works .nexgen-how-step-title {
    margin-top: 36px;
  }
  .nexgen-how-it-works .nexgen-how-heading .elementor-heading-title,
  .nexgen-how-it-works .elementor-widget-heading.nexgen-how-heading .elementor-heading-title {
    font-size: 28px !important;
    margin-bottom: 36px !important;
  }
  /* Trust Credential Strip — tablet: 2x2 grid */
  .nexgen-trust-strip {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  .nexgen-trust-strip .nexgen-trust-row {
    flex-wrap: wrap;
    gap: 40px 24px;
  }
  .nexgen-trust-strip .nexgen-trust-item {
    flex: 0 0 calc(50% - 12px);
  }
  /* Compact badge bar in the Peptides-For slot — tablet: 2x2, tighter gap */
  .nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-row {
    gap: 22px 18px;
  }
  .nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-item {
    flex: 0 0 calc(50% - 10px);
  }
  .nexgen-section-stacks .nexgen-premium-heading .elementor-heading-title {
    font-size: 34px !important;
  }
  .nexgen-section-stacks .nexgen-stacks-desc {
    font-size: 16px !important;
  }
  /* Stack rows: stack vertically on tablet/mobile.
     Rows are Elementor e-con-full containers (no .e-con-inner child),
     so the flex rules must target .nexgen-stack-row itself. */
  .nexgen-stack-row,
  .nexgen-stack-row > .e-con-inner {
    flex-direction: column !important;
    gap: 14px !important;
    align-items: center !important;
  }
  .nexgen-stack-row {
    padding: 14px !important;
  }
  .nexgen-stack-row-img,
  .nexgen-stack-row > .e-con-inner > .elementor-widget-image {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .nexgen-stack-row-img img {
    width: 100% !important;
    max-width: 360px !important;
    height: auto !important;
    margin: 0 auto !important;
    display: block !important;
  }
  .nexgen-stack-row-right,
  .nexgen-stack-row > .e-con-inner > .e-con {
    width: 100% !important;
    max-width: 100% !important;
  }
  .nexgen-stack-row-right > .e-con-inner {
    align-items: center !important;
    text-align: center !important;
    gap: 8px !important;
  }
  .nexgen-stack-row-name .elementor-heading-title {
    font-size: 18px !important;
  }
  .nexgen-stack-row-desc,
  .nexgen-stack-row-desc .elementor-widget-container {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  .nexgen-stack-row-desc .elementor-widget-container p {
    text-align: center !important;
    margin-bottom: 0 !important;
  }
  .nexgen-stack-row-price .elementor-heading-title {
    font-size: 20px !important;
  }
  .nexgen-stack-row-footer > .e-con-inner {
    gap: 8px !important;
  }
  .nexgen-stack-row-footer > .e-con-inner {
    justify-content: center !important;
  }
  .nexgen-fda-card {
    padding: 28px 24px !important;
  }
  .nexgen-fda-card-heading .elementor-heading-title {
    font-size: 16px !important;
  }
  .nexgen-fda-card-body,
  .nexgen-fda-card-body .elementor-widget-container {
    font-size: 13px !important;
  }
  /* Categories — tablet: reduce card height + tighten type */
  .nexgen-section-categories .nexgen-categories-grid > .e-con-inner {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
  .nexgen-section-categories .nexgen-category-card,
  .nexgen-section-categories .nexgen-category-card > .e-con-inner {
    min-height: 440px !important;
  }
  .nexgen-section-categories .nexgen-category-card > .e-con-inner {
    padding: 22px !important;
  }
  .nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button {
    font-size: 28px !important;
  }
  .nexgen-section-categories .nexgen-categories-headline .elementor-heading-title {
    margin-bottom: 36px !important;
  }
  /* Mobile (single-col, taller cards so the vial has room to present) */
  @media (max-width: 767px) {
    .nexgen-section-categories .nexgen-categories-grid > .e-con-inner {
      grid-template-columns: 1fr !important;
      gap: 16px !important;
    }
    .nexgen-section-categories .nexgen-category-card,
    .nexgen-section-categories .nexgen-category-card > .e-con-inner {
      min-height: 440px !important;
    }
    .nexgen-section-categories .nexgen-category-card::after {
      width: 48px;
      height: 48px;
      font-size: 24px;
      top: 16px;
      left: 16px;
    }
    .nexgen-section-categories .nexgen-category-card {
      padding: 20px !important;
    }
    /* Tighter bottom reservation so the vial area is bigger on mobile. */
    .nexgen-section-categories .nexgen-category-card .elementor-widget-image {
      bottom: 160px !important;
      padding: 16px 16px 0 !important;
    }
    .nexgen-section-categories .nexgen-category-card .elementor-widget-button .elementor-button {
      font-size: 26px !important;
    }
  }
  .call-to-grid .elementor-cta__title {
    font-size: 18px !important;
  }
  /* Social proof bar: 2x2 grid on tablet */
  .nexgen-social-proof-bar .elementor-container {
    flex-wrap: wrap !important;
  }
  .nexgen-social-proof-bar .elementor-container > .elementor-column,
  .nexgen-social-proof-bar .elementor-container > .e-con {
    flex-basis: 50% !important;
    max-width: 50% !important;
    margin-bottom: 12px;
  }
  /* Testimonial cards single column */
  .nexgen-section-testimonials .elementor-container {
    flex-direction: column !important;
  }
  /* Best Sellers: 2-column grid on mobile */
  .nexgen-section-best-sellers .elementor-loop-container.elementor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    grid-auto-rows: auto !important;
  }
  /* Scale card content for smaller cards */
  .nexgen-product-card > .elementor-widget-wrap,
  .nexgen-product-card > .e-con-inner {
    padding: 12px !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }
  /* Cap product image height and center */
  .nexgen-product-card .elementor-widget-image,
  .nexgen-product-card .elementor-widget-woocommerce-product-images {
    text-align: center !important;
  }
  .nexgen-product-card .elementor-widget-image img,
  .nexgen-product-card .elementor-widget-woocommerce-product-images img {
    max-height: 160px !important;
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    display: inline-block !important;
  }
  /* Tighter title line-height */
  .nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
  .nexgen-product-card .elementor-widget-heading .elementor-heading-title {
    line-height: 1.2 !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: 14px !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-price .woocommerce-Price-amount {
    font-size: 16px !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-add-to-cart .button,
  .nexgen-product-card .elementor-widget-wc-add-to-cart .elementor-button {
    font-size: 12px !important;
    padding: 10px 16px !important;
  }
  /* Testimonial quote smaller */
  .nexgen-testimonial-quote .elementor-widget-container,
  .nexgen-testimonial-quote .elementor-text-editor {
    font-size: 18px !important;
  }
  /* Footer brand stamp: stack vertically on tablet */
  .nexgen-footer-brandstamp {
    flex-direction: column !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 24px 0 16px 0 !important;
  }
  .nexgen-footer-pillars .elementor-heading-title {
    text-align: center !important;
  }
}

/* --- Responsive: Mobile (max-width: 767px) --- */

@media (max-width: 767px) {
  .nexgen-footer-pillars .elementor-heading-title {
    font-size: 16px !important;
    letter-spacing: 4px !important;
    text-align: center !important;
    white-space: nowrap !important;
  }
}

/* --- Responsive: Small Phone (max-width: 428px) --- */

@media (max-width: 428px) {
  .nexgen-section-best-sellers .elementor-widget-heading .elementor-heading-title,
  .nexgen-section-categories .elementor-widget-heading .elementor-heading-title {
    font-size: 36px !important;
  }
  /* How It Works — mobile */
  .nexgen-how-it-works {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
  .nexgen-how-it-works .nexgen-how-step::before {
    font-size: 60px;
  }
  .nexgen-how-it-works .nexgen-how-step-title {
    font-size: 20px;
    margin-top: 28px;
  }
  .nexgen-how-it-works .nexgen-how-step-desc {
    font-size: 15px;
  }
  /* Trust Credential Strip — small phone: single column stack */
  .nexgen-trust-strip .nexgen-trust-row {
    flex-direction: column;
    gap: 32px;
  }
  .nexgen-trust-strip .nexgen-trust-item {
    flex: 0 0 auto;
    width: 100%;
  }
  .nexgen-trust-strip .nexgen-trust-label {
    font-size: 15px;
    letter-spacing: 1.2px;
  }
  /* Compact badge bar in Peptides-For slot — small phone: keep 2x2, tighten */
  .nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-row {
    gap: 18px 14px;
  }
  .nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-icon {
    width: 24px;
    height: 24px;
  }
  .nexgen-benefits-portal .nexgen-benefits-trust .nexgen-trust-label {
    font-size: 11px;
    letter-spacing: 1.2px;
  }
  .nexgen-section-stacks .nexgen-premium-heading .elementor-heading-title {
    font-size: 28px !important;
  }
  .nexgen-stacks-banner {
    margin: 20px 0 32px !important;
  }
  .nexgen-stacks-banner img {
    border-radius: 8px !important;
  }
  .nexgen-stack-row,
  .nexgen-stack-row > .e-con-inner {
    gap: 10px !important;
  }
  .nexgen-stack-row {
    padding: 10px !important;
  }
  .nexgen-stack-row-img img {
    max-width: 147px !important;
  }
  .nexgen-stack-row-right > .e-con-inner {
    gap: 6px !important;
  }
  .nexgen-stack-row-name .elementor-heading-title {
    font-size: 16px !important;
  }
  .nexgen-stack-row-desc,
  .nexgen-stack-row-desc .elementor-widget-container {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }
  .nexgen-stack-row-price .elementor-heading-title {
    font-size: 18px !important;
  }
  .nexgen-section-stacks .nexgen-stack-row-cta .elementor-button,
  .nexgen-stack-row-cta .elementor-button {
    padding: 12px 24px !important;
    font-size: 13px !important;
  }
  .nexgen-stack-row-footer > .e-con-inner {
    flex-direction: column !important;
    gap: 12px !important;
  }
  /* Best Sellers: tighter grid on small phones */
  .nexgen-section-best-sellers .elementor-loop-container.elementor-grid {
    gap: 12px !important;
  }
  .nexgen-product-card .elementor-widget-image img,
  .nexgen-product-card .elementor-widget-woocommerce-product-images img {
    max-height: 140px !important;
  }
  .nexgen-product-card > .elementor-widget-wrap,
  .nexgen-product-card > .e-con-inner {
    padding: 10px !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: 13px !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-price .woocommerce-Price-amount {
    font-size: 15px !important;
  }
  .nexgen-product-card .elementor-widget-woocommerce-product-add-to-cart .button,
  .nexgen-product-card .elementor-widget-wc-add-to-cart .elementor-button {
    font-size: 11px !important;
    padding: 8px 12px !important;
  }
  /* Hero CTA button — tighter padding on small screens */
  .nexgen-hero-cta .elementor-button {
    padding: 12px 28px !important;
    font-size: 14px !important;
  }
  /* Social proof: single column */
  .nexgen-social-proof-bar .elementor-container > .elementor-column,
  .nexgen-social-proof-bar .elementor-container > .e-con {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
}

/* Tablet/mobile (≤768px): use the mobile-banner aspect ratio (1076:992 ≈ 1.085)
   so background-size: cover fits the image without cropping any baked-in text
   and without leaving dead space at the top/bottom of the slide. */
@media (max-width: 768px) {
  .nexgen-section-hero {
    min-height: calc(100vw / 1.085) !important;
  }
  /* Override Elementor inline 85vh on the image slide so it matches section */
  .nexgen-section-hero .nexgen-hero-image-slide {
    min-height: calc(100vw / 1.085) !important;
    height: auto !important;
    background-size: cover !important;
    background-position: center center !important;
    background-color: var(--midnight) !important;
  }
  /* Video slide can stay tall — text panel needs height. But cap at section. */
  .nexgen-section-hero .nexgen-hero-video-slide {
    min-height: calc(100vw / 1.085) !important;
  }
  .nexgen-hero-memorial-day-sale .nexgen-hero-sale-code {
    right: 50%;
    bottom: clamp(22px, 6vw, 34px);
    transform: translateX(50%);
    gap: 12px;
    padding: 11px 17px;
    font-size: 12px;
    letter-spacing: 1.1px;
    white-space: nowrap;
  }
  .nexgen-hero-memorial-day-sale .nexgen-hero-sale-code strong {
    font-size: 18px;
    letter-spacing: 1.8px;
  }
}

/* ---------- Scrolling Marquee Strip — nexgen-marquee ---------- */
.nexgen-marquee-wrap {
  background: var(--midnight);
  overflow: hidden;
  padding: 18px 0;
  border-top: 1px solid var(--white-06);
  border-bottom: 1px solid var(--white-06);
  position: relative;
}
.nexgen-marquee-track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  animation: nexgen-marquee-scroll 30s linear infinite;
  will-change: transform;
}
.nexgen-marquee-wrap:hover .nexgen-marquee-track {
  animation-play-state: paused;
}
.nexgen-marquee-item {
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 17px;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  padding: 0 48px;
  flex-shrink: 0;
}
.nexgen-marquee-star {
  color: var(--white-30);
  font-size: 12px;
  vertical-align: middle;
  margin-right: 6px;
}
.nexgen-social-proof-bar {
  background-color: var(--midnight) !important;
}
@keyframes nexgen-marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@media (max-width: 767px) {
  .nexgen-marquee-item {
    font-size: 13px;
    letter-spacing: 2px;
    padding: 0 32px;
  }
  .nexgen-marquee-wrap {
    padding: 14px 0;
  }
}
/* --- PDP Responsive Overrides --- */
@media (max-width: 1024px) {
  .nexgen-pdp-hero-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .nexgen-pdp-coa .nexgen-coa-card-wrap {
    width: 100%;
    max-width: 1100px;
  }
  .nexgen-pdp-card {
    position: static !important;
    top: auto !important;
    padding: 0 !important;
  }
  .nexgen-pdp-title .elementor-heading-title,
  .nexgen-pdp-title .product_title,
  .nexgen-pdp-title h1 {
    font-size: 36px !important;
  }
}
@media (max-width: 768px) {
  .nexgen-pdp-breadcrumb {
    padding: 16px 20px 6px !important;
  }
  .nexgen-pdp-hero {
    padding: 24px 20px 64px !important;
  }
  .nexgen-pdp-title .elementor-heading-title,
  .nexgen-pdp-title .product_title,
  .nexgen-pdp-title h1 {
    font-size: 32px !important;
  }
  .nexgen-pdp-trust-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .nexgen-pdp-trust-items {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .nexgen-pdp-trust-strip {
    padding: 40px 20px !important;
  }
  .nexgen-pdp-coa {
    padding: 48px 20px !important;
  }
  .nexgen-coa-card {
    padding: 22px 22px;
  }
  .nexgen-coa-card-main {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .nexgen-coa-heading { font-size: 22px !important; }
  .nexgen-coa-chips { gap: 6px; }
  .nexgen-coa-chip { padding: 8px 6px; }
  .nexgen-coa-chip strong { font-size: 13px; }
  .nexgen-coa-chip span { font-size: 9px; letter-spacing: 0.6px; }
  .nexgen-coa-pdf-inner iframe { height: 520px; }
  /* US PDP Lab Reports — stack head/actions, full-width button, smaller pills */
  .nexgen-lab-row {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 0;
  }
  .nexgen-lab-row-actions { justify-content: stretch; }
  .nexgen-coa-card .nexgen-lab-view-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
  .nexgen-coa-card-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .nexgen-coa-card-footer__hint {
    max-width: none;
  }
  .nexgen-coa-card .nexgen-coa-verify-btn,
  .nexgen-coa-card-actions .nexgen-coa-verify-btn,
  .nexgen-coa-card-actions .nexgen-coa-view-btn {
    width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 auto;
  }
  .nexgen-lab-row-title { font-size: 19px !important; }
  .nexgen-lab-row-chips { max-width: none; gap: 6px; }
  .nexgen-lab-row-pdf-inner iframe { height: 520px; }
  .nexgen-pdp-related {
    padding: 64px 20px !important;
  }
  .nexgen-pdp-related .elementor-widget-heading .elementor-heading-title {
    font-size: 28px !important;
  }
  .nexgen-pdp-related .nexgen-product-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
  .nexgen-pdp-related .nexgen-product-card .elementor-widget-heading .elementor-heading-title {
    font-size: 16px !important;
  }
  .nexgen-pdp-atc form.cart {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .nexgen-pdp-atc .quantity,
  .nexgen-pdp-atc .quantity input[type="number"],
  .nexgen-pdp-atc .quantity .qty {
    max-width: none;
    width: 100%;
  }
  .nexgen-pdp-actions {
    width: 100%;
    flex: 1 1 auto;
  }
  .nexgen-pdp-atc .nexgen-pdp-actions .button,
  .nexgen-pdp-atc .nexgen-pdp-actions button.single_add_to_cart_button,
  .nexgen-pdp-atc .nexgen-pdp-actions button.nexgen-pdp-actions__buy {
    min-width: 0 !important;
    width: 100% !important;
  }
  .nexgen-lab-report-hero {
    padding: 48px 20px 32px;
  }
  .nexgen-lab-report-hero-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .nexgen-lab-report-hero-media {
    max-width: 420px;
    margin: 0 auto;
    width: 100%;
  }
  .nexgen-lab-report-copy h1 {
    font-size: 40px;
  }
  .nexgen-lab-report-hero-actions {
    flex-direction: column;
  }
  .nexgen-lab-report-page .nexgen-lab-report-primary-btn,
  .nexgen-lab-report-page .nexgen-lab-report-product-link,
  .nexgen-lab-report-page .nexgen-lab-report-reveal-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
  .nexgen-lab-report-batch-selector {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .nexgen-lab-report-details {
    padding: 16px 20px 64px;
  }
  .nexgen-lab-report-details-head {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .nexgen-lab-report-card {
    padding: 22px;
  }
  .nexgen-lab-report-card-top {
    flex-direction: column;
  }
  .nexgen-lab-report-card-metric {
    align-items: flex-start;
  }
  .nexgen-lab-report-table > div {
    grid-template-columns: 1fr;
  }
  .nexgen-lab-report-card-pdf-inner iframe,
  .nexgen-lab-report-pdf-modal-body iframe {
    height: 520px;
  }
  .nexgen-lab-report-pdf-modal {
    padding: 12px;
  }
}
@media (max-width: 428px) {
  .nexgen-pdp-breadcrumb {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .nexgen-pdp-hero {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .nexgen-pdp-card {
    padding: 0 !important;
  }
  .nexgen-pdp-title .elementor-heading-title,
  .nexgen-pdp-title .product_title,
  .nexgen-pdp-title h1 {
    font-size: 28px !important;
  }
  .nexgen-pdp-trust-pill {
    padding: 10px 6px 8px;
  }
  .nexgen-pdp-trust-pill-label {
    font-size: 9.5px;
    letter-spacing: 0.5px;
  }
  /* US PDP Lab Reports — keep 3-up chips, but smaller iframe + tighter title */
  .nexgen-lab-row-title { font-size: 18px !important; }
  .nexgen-lab-row-pdf-inner iframe { height: 480px; }
  .nexgen-lab-report-copy h1 {
    font-size: 34px;
  }
  .nexgen-lab-report-chip-grid {
    grid-template-columns: 1fr;
  }
  .nexgen-lab-report-card h2 {
    font-size: 28px;
  }
  .nexgen-lab-report-breadcrumb {
    font-size: 12px;
  }
}

/* --- Global reduced-motion guard --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .nexgen-fade-in {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
  .nexgen-marquee-track { animation: none !important; }
  /* Vials strip: keep native horizontal scroll; JS skips auto-scroll when reduced-motion */
  .nexgen-vials-marquee__viewport {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .nexgen-hero-image-slide { background-position: center center !important; }
}

/* === TRIAL: Desert sky/dirt footer background (2026-04-23) ==================
   Revert: delete this entire block + delete footer-bg-desert.jpg upload.
   -------------------------------------------------------------------------- */
.nexgen-footer-outer {
  background-image: url('/wp-content/uploads/2026/04/footer-bg-desert-v2.jpg') !important;
  background-size: cover !important;
  background-position: center bottom !important;
  background-repeat: no-repeat !important;
  background-color: var(--midnight) !important;
  padding-top: 64px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-enlist {
  background: transparent !important;
  background-image: none !important;
}
.nexgen-footer-brandstamp {
  display: none !important;
}
/* Hide the Elementor divider widget between the nav bar and the copyright
   pill — its hairline reads as an unwanted line on top of the desert image. */
.nexgen-footer-outer .elementor-widget-divider,
.nexgen-footer-outer .nexgen-footer-divider {
  display: none !important;
}

/* Kill the grain-noise overlay on the condensed newsletter section so the
   desert background shows through cleanly (otherwise the section's bounds
   render as a faint rectangle against the unfiltered surroundings). */
.nexgen-footer-newsletter.nexgen-newsletter-condensed.nexgen-grain::before,
.nexgen-footer-newsletter.nexgen-newsletter-enlist::before,
.nexgen-footer-newsletter.nexgen-newsletter-enlist::after {
  display: none !important;
  content: none !important;
}
/* Trim the heavy 96px section padding so the desert image is the full footer
   visual, not a section block sitting on top of it. */
.nexgen-footer-newsletter.nexgen-newsletter-condensed {
  padding-top: 64px !important;
  padding-bottom: 48px !important;
}

/* --- Condensed newsletter (left-column only) ---------------------------------
   Transforms the 2-col Enlist layout into a single left column ~560px wide so
   the footer's right half stays clear for the desert image. Triggered by the
   `nexgen-newsletter-condensed` sentinel class added by
   scripts/condense-newsletter-enlist.php.
   -------------------------------------------------------------------------- */
.nexgen-footer-newsletter.nexgen-newsletter-condensed > .e-con-inner {
  display: block !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-left {
  max-width: 560px !important;
  position: relative !important;
  padding: 36px 40px 32px !important;
  background: rgba(11, 21, 48, 0.55) !important;   /* --deep-navy ~55% opacity */
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.35) !important;
}
/* Override Elementor's inner-content padding which fights our card padding */
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-left > .e-con-inner {
  padding: 0 !important;
  max-width: none !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal {
  width: 72px !important;
  height: 72px !important;
  top: 24px !important;
  right: 24px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-inner {
  width: 72px !important;
  height: 72px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-ring text {
  font-size: 6.5px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-monogram {
  font-size: 20px !important;
}
/* Condensed form: email + ENLIST on row 1, consent checkbox full-width on row 2.
   (A single flex row crushed the email field once the consent label was added.) */
.nexgen-footer-newsletter.nexgen-newsletter-condensed form.mc4wp-form,
.nexgen-footer-newsletter.nexgen-newsletter-condensed .mc4wp-form-fields {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: stretch !important;
  max-width: 560px !important;
  margin-top: 8px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-label {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  width: auto !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-label input[type="email"] {
  width: 100% !important;
  display: block !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed input[type="email"] {
  width: 100% !important;
  height: 52px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed input[type="submit"] {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: auto !important;
  height: 52px !important;
  padding: 0 28px !important;
  white-space: nowrap !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-consent {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  color: var(--white-60) !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-consent input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  margin: 1px 0 0 0 !important;
  accent-color: var(--accent-gold);
  flex: 0 0 16px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-consent span {
  display: block !important;
}
/* Hide the old form-card's ::after gold arrow since the card is gone */
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-form-card::after,
.nexgen-footer-newsletter.nexgen-newsletter-condensed .mc4wp-form::after {
  display: none !important;
}
/* Tighter privacy line */
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-privacy {
  margin-top: 10px !important;
  max-width: 560px !important;
}
.nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-privacy p {
  font-size: 12px !important;
  color: var(--white-60) !important;
  margin: 0 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.6) !important;
}
/* Mobile: match page gutters (header uses 16px). Condensed e-con-inner's
   24px + enlist section side padding was stacking to ~40px and crushing
   the email/ENLIST row. One 16px outer gutter; card keeps its own pad. */
@media (max-width: 767px) {
  .nexgen-footer-newsletter.nexgen-newsletter-enlist.nexgen-newsletter-condensed,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed.nexgen-newsletter-enlist {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-left {
    padding: 24px 20px !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal {
    position: static !important;
    margin-bottom: 16px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed form.mc4wp-form,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .mc4wp-form-fields {
    grid-template-columns: 1fr !important;
    max-width: none !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-label,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed input[type="submit"],
  .nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-consent {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed input[type="submit"] {
    width: 100% !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-privacy {
    max-width: none !important;
  }
}

/* --- FDA card inside FAQ section ---------------------------------------------
   The FDA disclaimer lives inside the FAQ section now (no longer a standalone
   top-level section). This block sets the spacing between the FAQ accordion
   and the FDA card. Card dimensions are inherited from existing
   .nexgen-fda-card rules in Section 7 (860px max-width, 40×48 padding).
   -------------------------------------------------------------------------- */
.nexgen-section-faq > .nexgen-fda-in-faq {
  margin-top: 56px !important;
  padding: 0 24px !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.nexgen-section-faq > .nexgen-fda-in-faq .nexgen-fda-card {
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 767px) {
  .nexgen-section-faq > .nexgen-fda-in-faq {
    margin-top: 40px !important;
  }
}
/* --- Horizon Bar — collapsed nav row above the carving ----------------------
   Treats .nexgen-footer-content as a thin full-width strip with a vertical
   navy fade + gold hairlines top/bottom. The two icon-lists collapse from
   stacked columns into inline rows. Carved NG SYNDICATE in the desert
   image stays uncovered below.
   -------------------------------------------------------------------------- */
.nexgen-footer-content {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px 36px !important;
  position: relative;
  padding: 10px 16px !important;
  margin: 8px auto 0 !important;
  width: fit-content !important;
  max-width: calc(100% - 48px) !important;
  background: rgba(11, 21, 48, 0.55) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35) !important;
}
.nexgen-footer-content > .e-con-inner {
  display: contents !important;
}

/* Each icon-list widget loses its column treatment */
.nexgen-footer-content .elementor-widget-icon-list {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}
.nexgen-footer-content .elementor-widget-icon-list .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
.nexgen-footer-content .elementor-icon-list-items {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.nexgen-footer-content .elementor-icon-list-item {
  margin: 0 !important;
  padding: 6px 4px !important;     /* keeps tap zone ≥44px tall */
}
.nexgen-footer-content .elementor-icon-list-item a {
  padding: 0 !important;
  display: inline-block !important;
  text-decoration: none !important;
}
.nexgen-footer-content .elementor-icon-list-text {
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: var(--white-90) !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.5);
  transition: color 0.2s ease !important;
}
.nexgen-footer-content .elementor-icon-list-item:hover .elementor-icon-list-text {
  color: var(--accent-gold) !important;
}
/* Hide any list bullet/check icon — clean text bar */
.nexgen-footer-content .elementor-icon-list-icon { display: none !important; }

/* --- Copyright — its own line, lowered, with soft radial scrim --------------- */
.nexgen-footer-copyright {
  margin: 220px auto 0 !important;
  text-align: center !important;
  position: relative !important;
  padding: 12px 28px !important;
  width: fit-content !important;
  max-width: calc(100% - 48px) !important;
  background: rgba(11, 21, 48, 0.55) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.30) !important;
}
.nexgen-footer-copyright .elementor-text-editor,
.nexgen-footer-copyright p {
  color: var(--white-60) !important;
  font-size: 13px !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.6) !important;
  margin: 0 !important;
}
.nexgen-footer-copyright a {
  color: var(--white-90) !important;
}

/* === Desktop twin-pill merge: nav + copyright pinned flush at the bottom ===
   Mirrors the mobile (≤428px) merge so both viewports read as a single
   glass pill divided by a hairline at the bottom of the desert backdrop.
   Wrapped in min-width: 768px so the 767px and 428px breakpoints below
   are completely unaffected — these rules don't even exist below 768. */
@media (min-width: 768px) {
  .nexgen-footer-outer > .e-con-inner {
    position: static !important;
    /* Preserve the natural inner height at 1280 desktop (978) so removing
       nav+copyright from flow doesn't shrink the outer / shift the desert
       backdrop. Newsletter top is independent of this — it's anchored to
       outer's padding-top, which we don't touch. */
    min-height: 978px !important;
  }
  .nexgen-footer-content {
    position: absolute !important;
    left: 50% !important;
    bottom: 54px !important;             /* 18 floor + 36 locked cr height */
    transform: translateX(-50%) !important;
    width: clamp(540px, 50vw, 900px) !important;
    max-width: calc(100% - 48px) !important;
    margin: 0 !important;
    padding: 6px 8px !important;          /* tighter sides so glass hugs labels */
    gap: 10px 16px !important;            /* tighter inter-widget gap */
    border-radius: 14px 14px 0 0 !important;
    border-bottom: none !important;
    box-shadow: 0 -6px 16px rgba(0, 0, 0, 0.20) !important;
    z-index: 2;
  }
  .nexgen-footer-content .elementor-icon-list-items {
    gap: 3px 10px !important;
  }
  .nexgen-footer-content .elementor-icon-list-item {
    padding: 5px 2px !important;
  }
  .nexgen-footer-content .elementor-icon-list-text {
    font-size: 10px !important;           /* was 13; -23% */
    letter-spacing: 0.9px !important;     /* was 1.2; -25% */
  }
  .nexgen-footer-copyright {
    position: absolute !important;
    left: 50% !important;
    bottom: 18px !important;
    transform: translateX(-50%) !important;
    width: clamp(540px, 50vw, 900px) !important;
    max-width: calc(100% - 48px) !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 4px 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0 0 14px 14px !important;
    border-top: 1px solid var(--white-12) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.20) !important;
    z-index: 2;
  }
  .nexgen-footer-copyright .elementor-text-editor,
  .nexgen-footer-copyright p {
    font-size: 10px !important;           /* was 13; -23% */
  }
}

/* Responsive */
@media (max-width: 767px) {
  .nexgen-footer-content {
    gap: 8px 16px !important;
    padding: 8px 14px !important;
    margin-top: 8px !important;        /* match desktop lift */
  }
  .nexgen-footer-content .elementor-icon-list-items {
    gap: 4px 14px !important;
  }
  .nexgen-footer-content .elementor-icon-list-text {
    font-size: 12px !important;
    letter-spacing: 1px !important;
  }
  .nexgen-footer-copyright {
    margin-top: 160px !important;      /* match desktop drop */
    padding: 12px 22px !important;
  }
  .nexgen-footer-copyright .elementor-text-editor,
  .nexgen-footer-copyright p {
    font-size: 12px !important;
  }

  /* --- Tablet twin-pill merge: nav + copyright pinned flush at the bottom ---
     Mirrors the mobile (≤428px) and desktop (≥768px) merges so the tablet
     range (429–767px) reads the same way. Every property here is also set in
     the @media (max-width: 428px) block below, so mobile keeps its own values
     by source order; desktop is in a separate @media and untouched. */

  /* Use the mobile portrait desert image so tablet doesn't show a zoomed-in
     middle-strip of the landscape v2 image. Mobile (428) block re-sets these
     to the same values, so mobile is unaffected. */
  .nexgen-footer-outer {
    background-image: url('/wp-content/uploads/2026/04/footer-bg-desert-mobile.jpg') !important;
    background-size: 100% auto !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
    background-color: var(--midnight) !important;
    padding-bottom: 280px !important;
  }

  .nexgen-footer-outer > .e-con-inner {
    position: static !important;
    min-height: 720px !important;     /* roomier desert strip for tablet */
  }

  /* Override the default 767 sizing so labels fit one row of pill width */
  .nexgen-footer-content {
    position: absolute !important;
    left: 24px !important;
    right: 24px !important;
    bottom: 60px !important;          /* 16 floor + 44 cr height */
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 6px 12px !important;     /* tighter than default 8x14 */
    gap: 8px 18px !important;          /* tighter inter-widget */
    border-radius: 12px 12px 0 0 !important;
    border-bottom: none !important;
    box-shadow: 0 -6px 16px rgba(0, 0, 0, 0.18) !important;
    z-index: 2;
  }
  .nexgen-footer-content .elementor-icon-list-items {
    gap: 4px 12px !important;
  }
  .nexgen-footer-content .elementor-icon-list-item {
    padding: 5px 4px !important;
  }
  .nexgen-footer-content .elementor-icon-list-text {
    font-size: 11px !important;
    letter-spacing: 0.8px !important;
  }

  .nexgen-footer-copyright {
    position: absolute !important;
    left: 24px !important;
    right: 24px !important;
    bottom: 16px !important;
    transform: none !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    width: auto !important;
    max-width: none !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0 0 12px 12px !important;
    border-top: 1px solid var(--white-12) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18) !important;
    z-index: 2;
  }
}

/* --- Mobile (≤428px): explicit desert-bg rules ------------------------------
   The footer-outer bg already renders on mobile via the rules above, but
   force-anchor the dirt to the bottom + use scroll attachment so iOS Safari
   renders consistently. background-size: cover keeps a vertical strip
   centered on the carved wordmark. */
@media (max-width: 428px) {
  /* --- Background image (portrait 9:16) ----------------------------------- */
  .nexgen-footer-outer {
    background-image: url('/wp-content/uploads/2026/04/footer-bg-desert-mobile.jpg') !important;
    background-size: 100% auto !important;
    background-position: center bottom !important;
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
    background-color: var(--midnight) !important;
    padding-bottom: 280px !important;   /* reserve dirt strip so carved NG SYNDICATE has full clearance below the copyright pill */
  }
  /* --- Newsletter card: compact (Option A) -------------------------------- */
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-left {
    padding: 20px 22px !important;
    max-width: 100% !important;
  }
  /* Eyebrow + headline are the only widgets that visually reach the seal — give
     them a per-row max-width to clear it. Form + checklist span the full width. */
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-eyebrow,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-headline {
    max-width: calc(100% - 72px) !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal {
    position: absolute !important;             /* override 767px static rule */
    width: 56px !important;
    height: 56px !important;
    top: 16px !important;
    right: 16px !important;
    margin: 0 !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-inner {
    width: 56px !important;
    height: 56px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-ring text {
    font-size: 5.5px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-seal-monogram {
    font-size: 16px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-headline .elementor-heading-title {
    font-size: clamp(24px, 8vw, 32px) !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-sub p,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-sub .elementor-text-editor {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-values .elementor-text-editor li,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .nexgen-newsletter-values .elementor-text-editor ul {
    font-size: 13px !important;
  }
  /* Form: override the 767px stack → email + ENLIST on one row again */
  .nexgen-footer-newsletter.nexgen-newsletter-condensed form.mc4wp-form,
  .nexgen-footer-newsletter.nexgen-newsletter-condensed .mc4wp-form-fields {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-label {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed input[type="submit"] {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    padding: 0 18px !important;
  }
  .nexgen-footer-newsletter.nexgen-newsletter-condensed label.nexgen-mc4wp-consent {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
  }
  /* --- Bottom nav pill: pinned flush above copyright (twin-pill merge) ----- */
  .nexgen-footer-content {
    gap: 2px 8px !important;
    padding: 4px 10px !important;
    /* Pin to the bottom of .nexgen-footer-outer, flush with the copyright pill.
       bottom = 16px floor + 40px copyright slot (text fits one line at the stretched width). */
    position: absolute !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 56px !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    border-radius: 12px 12px 0 0 !important;
    border-bottom: none !important;
    box-shadow: 0 -6px 16px rgba(0, 0, 0, 0.18) !important;
    z-index: 2;
  }
  .nexgen-footer-content .elementor-icon-list-items {
    gap: 2px 8px !important;
  }
  .nexgen-footer-content .elementor-icon-list-item {
    padding: 3px 4px !important;
  }
  .nexgen-footer-content .elementor-icon-list-text {
    font-size: 10px !important;
    letter-spacing: 0.6px !important;
  }
  /* --- Copyright pill: pin to absolute bottom of footer -------------------- */
  /* Force the inner container to static so the copyright's absolute anchor
     bubbles up to .nexgen-footer-outer (which is position:relative). */
  .nexgen-footer-outer > .e-con-inner {
    position: static !important;
    /* Preserve current natural inner height (~893px) so the outer/desert backdrop
       and newsletter top stay identical after nav leaves the flow. */
    min-height: 880px !important;
  }
  .nexgen-footer-copyright {
    position: absolute !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 16px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    height: 40px !important;          /* lock height so wrap variance can't reopen the seam */
    margin: 0 !important;
    padding: 6px 16px !important;     /* shrink padding so locked height comfortably holds 1 line */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0 0 12px 12px !important;
    border-top: 1px solid var(--white-12) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18) !important;
    z-index: 2;
  }
  .nexgen-footer-copyright .elementor-text-editor,
  .nexgen-footer-copyright p {
    font-size: 12px !important;
  }
}

/* === END TRIAL BLOCK ====================================================== */

/* ==========================================================================
   FAQ Section — "Field Manual" Editorial Split (Option A)
   ---------------------------------------------------------------------------
   Two-column section mirroring .nexgen-section-trust:
     - Left column (.nexgen-faq-copy):  eyebrow → Cormorant headline → gold
                                        hairline rule → Azo lead → mailto CTA.
     - Right column (.nexgen-faq-accordion-col): the nested-accordion widget
       with class .nexgen-faq, restyled borderless with hairline dividers,
       Cormorant questions, chevron icon, and a 2px gold left accent on open.
   Shared with PDP via .nexgen-section-faq--pdp modifier.
   ========================================================================== */

.nexgen-section-faq {
  background-color: var(--deep-navy) !important;
  padding-top: 112px;
  padding-bottom: 112px;
  position: relative;
  overflow: hidden;
}
.nexgen-section-faq::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.05;
  mix-blend-mode: overlay;
}
/* Left-biased blue-glow — back-lights the editorial copy column */
.nexgen-section-faq::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 55% at 22% 45%,
    var(--blue-glow) 0%,
    rgba(26, 49, 120, 0.12) 35%,
    transparent 70%);
  mix-blend-mode: screen;
}
.nexgen-section-faq > * {
  position: relative;
  z-index: 1;
}

/* === Two-column grid ==================================================== */
.nexgen-faq-grid {
  display: grid !important;
  grid-template-columns: 40% 60% !important;
  gap: 64px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 24px !important;
}

/* === Left column — .nexgen-faq-copy ===================================== */
.nexgen-faq-copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}
.nexgen-faq-copy > * { margin: 0 !important; }

/* Eyebrow */
.nexgen-section-faq .nexgen-faq-eyebrow .elementor-heading-title {
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  text-align: left !important;
  line-height: 1 !important;
  margin: 0 !important;
}

/* Headline — Cormorant, left-aligned, editorial */
.nexgen-section-faq .nexgen-faq-headline .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(34px, 4vw, 52px) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  text-transform: none !important;
  text-align: left !important;
  text-wrap: balance;
  margin: 0 !important;
}

/* Gold hairline rule under headline — inject via .nexgen-faq-rule::after so it
   doesn't depend on Elementor's exact widget wrapper structure */
.nexgen-faq-rule .elementor-divider-separator,
.nexgen-faq-rule .elementor-divider {
  border: none !important;
  background: transparent !important;
  display: none !important;
}
.nexgen-faq-rule {
  position: relative !important;
  height: 2px !important;
  margin: 8px 0 !important;
  padding: 0 !important;
}
.nexgen-faq-rule::after {
  content: '';
  display: block;
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg,
    var(--accent-gold) 0%,
    var(--accent-gold-dim) 60%,
    transparent 100%);
}

/* Lead paragraph */
.nexgen-faq-lead,
.nexgen-faq-lead .elementor-widget-container {
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
}
.nexgen-faq-lead p {
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
  max-width: 380px !important;
  margin: 0 !important;
}

/* Mailto CTA — ghost/text button */
.nexgen-faq-cta {
  margin-top: 4px !important;
}
.nexgen-faq-cta .elementor-button,
.nexgen-faq-cta a.elementor-button-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--accent-gold-dim) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--accent-gold) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  line-height: 1.6 !important;
  transition: color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.nexgen-faq-cta .elementor-button::before,
.nexgen-faq-cta a.elementor-button-link::before {
  content: '→';
  margin-right: 10px;
  font-size: 16px;
  line-height: 1;
}
.nexgen-faq-cta .elementor-button:hover,
.nexgen-faq-cta a.elementor-button-link:hover,
.nexgen-faq-cta .elementor-button:focus-visible,
.nexgen-faq-cta a.elementor-button-link:focus-visible {
  color: var(--accent-gold-bright) !important;
  border-bottom-color: var(--accent-gold-bright) !important;
  transform: translateX(2px);
  outline: none;
}
.nexgen-faq-cta .elementor-button .elementor-button-content-wrapper,
.nexgen-faq-cta .elementor-button .elementor-button-text {
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
}

/* === Right column — accordion, restyled ================================= */
.nexgen-faq-accordion-col {
  width: 100% !important;
}

/* Override widget max-width — we're living inside the grid now */
.nexgen-faq.elementor-widget-n-accordion,
.nexgen-faq {
  max-width: 640px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  /* Override Elementor nested-accordion CSS variables (source: widget-nested-accordion.min.css).
     Kills default 1px gray border-box on each summary, puts icon on the right, removes default
     padding so our own padding wins. */
  --n-accordion-border-width: 0 !important;
  --n-accordion-border-style: none !important;
  --n-accordion-border-color: transparent !important;
  --n-accordion-title-icon-order: 2 !important;
  --n-accordion-padding: 0 !important;
  --n-accordion-icon-size: 14px !important;
  --n-accordion-icon-gap: 0 12px !important;
  --n-accordion-icon-normal-color: var(--accent-gold-dim) !important;
  --n-accordion-icon-hover-color: var(--accent-gold) !important;
  --n-accordion-icon-active-color: var(--accent-gold) !important;
}
.nexgen-faq .e-n-accordion {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Items — no boxes; single hairline between items only */
.nexgen-faq .e-n-accordion-item {
  position: relative;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  transition: padding-left 0.25s ease;
}
.nexgen-faq .e-n-accordion-item + .e-n-accordion-item {
  border-top: 1px solid var(--white-12) !important;
}

/* 2px gold left-accent bar — slides in on open */
.nexgen-faq .e-n-accordion-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--accent-gold);
  transition: width 0.25s ease;
  pointer-events: none;
}
.nexgen-faq .e-n-accordion-item[open]::before {
  width: 2px;
}
.nexgen-faq .e-n-accordion-item[open] {
  padding-left: 16px !important;
}

/* Question row (summary) */
.nexgen-faq .e-n-accordion-item-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding: 28px 4px 28px 4px !important;
  margin: 0 !important;
  cursor: pointer;
  list-style: none;
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-size: clamp(19px, 1.6vw, 22px) !important;
  line-height: 1.3 !important;
  letter-spacing: 0.2px !important;
  color: var(--white-90) !important;
  background: transparent !important;
  transition: color 0.25s ease;
}
.nexgen-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.nexgen-faq .e-n-accordion-item-title::marker { content: ''; }
.nexgen-faq .e-n-accordion-item-title:hover,
.nexgen-faq .e-n-accordion-item-title:focus-visible {
  color: var(--off-white) !important;
  outline: none;
}
.nexgen-faq .e-n-accordion-item[open] > .e-n-accordion-item-title {
  color: var(--accent-gold) !important;
}
.nexgen-faq .e-n-accordion-item-title-header,
.nexgen-faq .e-n-accordion-item-title-text {
  flex: 1 1 auto;
  font: inherit !important;
  color: inherit !important;
  text-align: left;
}

/* Chevron icon — right-pointing, rotates down on open */
.nexgen-faq .e-n-accordion-item-title-icon {
  position: relative;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-gold-dim);
  transition: color 0.25s ease, transform 0.25s ease;
}
.nexgen-faq .e-n-accordion-item-title-icon svg,
.nexgen-faq .e-n-accordion-item-title-icon i {
  display: none !important;
}
/* Draw chevron via a single rotated square pseudo-element with two borders */
.nexgen-faq .e-n-accordion-item-title-icon::before {
  content: '';
  width: 8px;
  height: 8px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
  position: relative;
  left: -2px;
}
.nexgen-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon,
.nexgen-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
  color: var(--accent-gold);
}
.nexgen-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon::before {
  transform: rotate(135deg);
  top: -2px;
}

/* Answer body — Azo Sans Tier 3 */
.nexgen-faq .e-n-accordion-item-content,
.nexgen-faq .e-n-accordion-item > .e-con {
  padding: 0 4px 32px 4px !important;
  margin: 0 !important;
  background: transparent !important;
}
.nexgen-faq .e-n-accordion-item-content p,
.nexgen-faq .e-n-accordion-item > .e-con p,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor p,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor ul li,
.nexgen-faq .e-n-accordion-item > .e-con ul li {
  font-family: 'Azo Sans', sans-serif !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--white-60) !important;
  max-width: 560px;
  margin: 0 0 12px 0 !important;
}
.nexgen-faq .e-n-accordion-item-content p:last-child,
.nexgen-faq .e-n-accordion-item > .e-con p:last-child,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor p:last-child {
  margin-bottom: 0 !important;
}
.nexgen-faq .e-n-accordion-item-content a,
.nexgen-faq .e-n-accordion-item > .e-con a,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
  text-decoration-color: var(--accent-gold-dim);
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.nexgen-faq .e-n-accordion-item-content a:hover,
.nexgen-faq .e-n-accordion-item > .e-con a:hover,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor a:hover {
  color: var(--accent-gold-bright) !important;
  text-decoration-color: var(--accent-gold-bright);
}
.nexgen-faq .e-n-accordion-item-content strong,
.nexgen-faq .e-n-accordion-item > .e-con strong,
.nexgen-faq .e-n-accordion-item .elementor-widget-text-editor strong {
  color: var(--white-90) !important;
  font-weight: 600;
}

/* Reveal animation on the answer container */
.nexgen-faq .e-n-accordion-item[open] > .e-n-accordion-item-content,
.nexgen-faq .e-n-accordion-item[open] > .e-con {
  animation: nexgen-faq-reveal 0.35s ease both;
}
@keyframes nexgen-faq-reveal {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* === Responsive ========================================================= */
@media (max-width: 1024px) {
  .nexgen-faq-grid {
    grid-template-columns: 44% 56% !important;
    gap: 48px !important;
  }
  .nexgen-faq.elementor-widget-n-accordion,
  .nexgen-faq { max-width: 100% !important; }
}

@media (max-width: 767px) {
  .nexgen-section-faq {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .nexgen-faq-grid {
    grid-template-columns: 1fr !important;
    gap: 48px !important;
  }
  .nexgen-faq-copy {
    max-width: 560px !important;
    margin: 0 auto !important;
    text-align: left;
  }
  .nexgen-section-faq .nexgen-faq-headline .elementor-heading-title {
    font-size: 28px !important;
  }
  .nexgen-faq-lead p { max-width: none !important; }
  .nexgen-faq.elementor-widget-n-accordion,
  .nexgen-faq { max-width: 100% !important; }
  /* Questions drop to Outfit on mobile so rows stay compact */
  .nexgen-faq .e-n-accordion-item-title {
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    padding: 22px 4px !important;
  }
  .nexgen-faq .e-n-accordion-item[open] { padding-left: 12px !important; }
  .nexgen-faq .e-n-accordion-item-content p,
  .nexgen-faq .e-n-accordion-item > .e-con p,
  .nexgen-faq .e-n-accordion-item .elementor-widget-text-editor p {
    font-size: 16px !important;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .nexgen-faq .e-n-accordion-item[open] > .e-n-accordion-item-content,
  .nexgen-faq .e-n-accordion-item[open] > .e-con {
    animation: none !important;
  }
  .nexgen-faq .e-n-accordion-item-title-icon,
  .nexgen-faq .e-n-accordion-item-title-icon::before,
  .nexgen-faq .e-n-accordion-item,
  .nexgen-faq .e-n-accordion-item::before,
  .nexgen-faq-cta .elementor-button {
    transition: none !important;
  }
}
/* === /FAQ Accordion ======================================================= */

/* Homepage FAQ teaser CTA (NGS-216) — design.md secondary button → /faq/ */
.nexgen-section-faq .nexgen-faq-all-cta {
  margin-top: 28px !important;
}
.nexgen-section-faq .nexgen-faq-all-cta .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 12px 28px !important;
  background: transparent !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  box-shadow: none !important;
  transition-property: transform, background-color, border-color, color;
  transition-duration: 160ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-section-faq .nexgen-faq-all-cta .elementor-button:hover,
.nexgen-section-faq .nexgen-faq-all-cta .elementor-button:focus-visible {
  background: var(--white-06) !important;
  border-color: var(--white-30) !important;
  color: var(--accent-gold) !important;
  outline: none;
}
.nexgen-section-faq .nexgen-faq-all-cta .elementor-button:active {
  transform: scale(0.96);
}
.nexgen-section-faq--pdp .nexgen-faq-all-cta { display: none !important; }

/* ==========================================================================
   FAQ PAGE — NGS-216 (Field Manual language + category tabs)
   Matches homepage .nexgen-section-faq / .nexgen-faq: Cormorant questions,
   Azo answers, hairline rows, gold open accent. Tabs are Tier-4 Outfit UI.
   ========================================================================== */

body.page-id-15 {
  background: var(--deep-navy);
}
body.page-id-15 .elementor[data-elementor-type="wp-page"] {
  background: transparent;
}

/* Page surfaces — one atmosphere only (hero). Body stays flat so glows don't stack. */
body.page-id-15 .nexgen-faq-page-hero.e-con,
body.page-id-15 .nexgen-faq-page-hero,
body.page-id-15 .nexgen-faq-page-body.e-con,
body.page-id-15 .nexgen-faq-page-body {
  position: relative;
  background: var(--deep-navy) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body.page-id-15 .nexgen-faq-page-hero {
  overflow: hidden;
  padding: clamp(72px, 10vw, 112px) clamp(20px, 4vw, 48px) 32px !important;
  text-align: center;
}
body.page-id-15 .nexgen-faq-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.05;
  mix-blend-mode: overlay;
}
body.page-id-15 .nexgen-faq-page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 55% 50% at 50% 28%,
    var(--blue-glow) 0%,
    rgba(26, 49, 120, 0.12) 40%,
    transparent 72%);
  mix-blend-mode: screen;
}
body.page-id-15 .nexgen-faq-page-hero > * {
  position: relative;
  z-index: 1;
}
.nexgen-faq-page-hero.nexgen-grain::before { opacity: 0; } /* hero::before owns grain */
body.page-id-15 .nexgen-faq-page-body {
  overflow: visible;
  padding: 8px clamp(20px, 4vw, 48px) clamp(96px, 12vw, 140px) !important;
}
body.page-id-15 .nexgen-faq-page-body::before,
body.page-id-15 .nexgen-faq-page-body::after {
  content: none !important;
  display: none !important;
}

/* Inner column width — editorial, not cramped card strip */
.nexgen-faq-page-hero .e-con-inner,
.nexgen-faq-page-body .e-con-inner,
.nexgen-faq-page-shell {
  max-width: 760px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-id-15 .nexgen-faq-page-widget,
body.page-id-15 .nexgen-faq-page-widget .elementor-widget-container {
  background: transparent !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.nexgen-faq-page-shell {
  -webkit-font-smoothing: antialiased;
}

/* Staggered enter — hero chunks then tabs */
.nexgen-faq-page-eyebrow,
.nexgen-faq-page-title,
.nexgen-faq-page-lead,
.nexgen-faq-page-tabs,
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item {
  animation: nexgen-faq-page-rise 420ms cubic-bezier(0.2, 0, 0, 1) both;
}
.nexgen-faq-page-eyebrow { animation-delay: 40ms; }
.nexgen-faq-page-title { animation-delay: 120ms; }
.nexgen-faq-page-lead { animation-delay: 200ms; }
.nexgen-faq-page-tabs { animation-delay: 280ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(1) { animation-delay: 60ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(2) { animation-delay: 140ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(3) { animation-delay: 220ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(4) { animation-delay: 300ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(5) { animation-delay: 380ms; }
.nexgen-faq-page-panel.is-active .nexgen-faq-page-item:nth-child(n+6) { animation-delay: 420ms; }
@keyframes nexgen-faq-page-rise {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.nexgen-faq-page-eyebrow .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold) !important;
  margin: 0 0 16px !important;
  line-height: 1 !important;
}
.nexgen-faq-page-title .elementor-heading-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  font-size: clamp(34px, 4.5vw, 52px) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.3px !important;
  color: var(--off-white) !important;
  text-transform: none !important;
  margin: 0 0 18px !important;
  text-wrap: balance;
}
.nexgen-faq-page-lead .elementor-widget-container p,
.nexgen-faq-page-lead p {
  font-family: 'Azo Sans', sans-serif !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
  margin: 0 auto !important;
  max-width: 36rem;
  text-wrap: pretty;
}

/* Category tabs — underline nav (Blank clarity, NG tokens) */
.nexgen-faq-page-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 4px;
  border-bottom: 1px solid var(--white-12);
  margin: 0 0 8px;
  padding: 0;
}
.nexgen-faq-page-tab {
  appearance: none;
  -webkit-appearance: none;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  margin: 0 0 -1px !important;
  min-height: 48px;
  min-width: 44px;
  padding: 14px 16px;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--white-30);
  cursor: pointer;
  box-shadow: none !important;
  transition-property: color, border-color, transform;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-tab:hover,
.nexgen-faq-page-tab:focus-visible {
  color: var(--off-white);
  outline: none;
}
.nexgen-faq-page-tab.is-active,
.nexgen-faq-page-tab[aria-selected="true"] {
  color: var(--off-white);
  font-weight: 500; /* same weight as idle — active = underline only */
  border-bottom-color: var(--accent-gold) !important;
}
.nexgen-faq-page-tab:active {
  transform: scale(0.96);
}

.nexgen-faq-page-panel {
  display: none;
}
.nexgen-faq-page-panel.is-active {
  display: block;
}

/* Accordion — Field Manual hairlines (no navy cards) */
.nexgen-faq-page-accordion {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.nexgen-faq-page-item {
  position: relative;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  transition-property: padding-left;
  transition-duration: 250ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-item + .nexgen-faq-page-item {
  border-top: 1px solid var(--white-12);
}
.nexgen-faq-page-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--accent-gold);
  transition-property: width;
  transition-duration: 250ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
  pointer-events: none;
}
.nexgen-faq-page-item.is-open::before {
  width: 2px;
}
.nexgen-faq-page-item.is-open {
  padding-left: 16px;
}

.nexgen-faq-page-trigger {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  min-height: 56px;
  padding: 28px 4px;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-align: left;
  cursor: pointer;
  color: var(--white-90);
  transition-property: color, transform;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-trigger:hover,
.nexgen-faq-page-trigger:focus-visible {
  color: var(--off-white);
  outline: none;
}
.nexgen-faq-page-item.is-open > .nexgen-faq-page-trigger {
  color: var(--accent-gold);
}
.nexgen-faq-page-trigger:active {
  transform: scale(0.96);
}
.nexgen-faq-page-question {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.3;
  letter-spacing: 0.2px;
  text-transform: none;
  text-wrap: balance;
  flex: 1;
  min-width: 0;
}
.nexgen-faq-page-toggle {
  position: relative;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  color: var(--accent-gold-dim);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition-property: color;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-trigger:hover .nexgen-faq-page-toggle,
.nexgen-faq-page-item.is-open .nexgen-faq-page-toggle {
  color: var(--accent-gold);
}
.nexgen-faq-page-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition-property: opacity, transform, filter;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-icon svg {
  display: block;
  /* optical center for +/- glyphs */
  transform: translateY(0.5px);
}
.nexgen-faq-page-icon--plus {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}
.nexgen-faq-page-icon--minus {
  opacity: 0;
  transform: scale(0.25);
  filter: blur(4px);
}
.nexgen-faq-page-trigger[aria-expanded="true"] .nexgen-faq-page-icon--plus {
  opacity: 0;
  transform: scale(0.25);
  filter: blur(4px);
}
.nexgen-faq-page-trigger[aria-expanded="true"] .nexgen-faq-page-icon--minus {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}

.nexgen-faq-page-answer {
  overflow: hidden;
}
.nexgen-faq-page-answer[hidden] {
  display: none !important;
}
.nexgen-faq-page-answer-inner {
  padding: 0 4px 24px 0;
  max-width: 40rem;
  animation: nexgen-faq-page-answer-in 200ms cubic-bezier(0.2, 0, 0, 1) both;
}
@keyframes nexgen-faq-page-answer-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.nexgen-faq-page-answer-inner p,
.nexgen-faq-page-answer-inner li {
  font-family: 'Azo Sans', sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.65;
  color: var(--white-90);
  margin: 0 0 12px;
  text-wrap: pretty;
}
.nexgen-faq-page-answer-inner p:last-child,
.nexgen-faq-page-answer-inner li:last-child { margin-bottom: 0; }
.nexgen-faq-page-answer-inner ol {
  margin: 0 0 12px;
  padding-left: 1.25rem;
}
.nexgen-faq-page-answer-inner a {
  color: var(--accent-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--accent-gold-dim);
  transition-property: color, text-decoration-color;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.nexgen-faq-page-answer-inner a:hover,
.nexgen-faq-page-answer-inner a:focus-visible {
  color: var(--accent-gold-bright);
  text-decoration-color: var(--accent-gold);
}
.nexgen-faq-page-answer-inner strong {
  color: var(--off-white);
  font-weight: 600;
}

/* Short labels only on small screens (markup from ngs-216-faq-page.php) */
.nexgen-faq-page-tab-label--short { display: none; }

@media (max-width: 600px) {
  /* One row, equal type — short labels from markup, never font-size:0 hacks */
  .nexgen-faq-page-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between;
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
  }
  .nexgen-faq-page-tab {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    text-align: center;
    padding: 12px 4px !important;
    font-size: 11px !important;
    letter-spacing: 0.8px !important;
    line-height: 1.2 !important;
    min-height: 44px;
  }
  .nexgen-faq-page-tab-label--full { display: none; }
  .nexgen-faq-page-tab-label--short { display: inline; }
  .nexgen-faq-page-trigger {
    padding: 22px 2px;
    gap: 16px;
  }
  .nexgen-faq-page-answer-inner p,
  .nexgen-faq-page-answer-inner li {
    font-size: 16px;
  }
  .nexgen-faq-page-lead .elementor-widget-container p,
  .nexgen-faq-page-lead p {
    font-size: 16px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-faq-page-eyebrow,
  .nexgen-faq-page-title,
  .nexgen-faq-page-lead,
  .nexgen-faq-page-tabs,
  .nexgen-faq-page-panel.is-active .nexgen-faq-page-item,
  .nexgen-faq-page-answer-inner,
  .nexgen-faq-page-tab,
  .nexgen-faq-page-trigger,
  .nexgen-faq-page-icon,
  .nexgen-faq-page-item {
    animation: none !important;
    transition: none !important;
  }
  .nexgen-faq-page-tab:active,
  .nexgen-faq-page-trigger:active,
  .nexgen-section-faq .nexgen-faq-all-cta .elementor-button:active {
    transform: none;
  }
}

/* === END FAQ PAGE NGS-216 ================================================= */

/* === Pantheon Landing (Powerhouse Gym Bethlehem) ============================

/* Hide the default WordPress page title on the Pantheon page — the hero
   already provides the title visually. Body class is added by the
   nexgen_pantheon_body_class filter in the child theme. */
body.nexgen-page-pantheon .page-header,
body.nexgen-page-pantheon .entry-title,
body.nexgen-page-pantheon .entry-header { display: none !important; }

   /pantheon partnership landing page. All sections use nexgen-pantheon-* named
   classes set via build-pantheon-page.php. Motion variants assigned in the
   SECTION_CONFIG block below. Dark-first per design.md.
   ========================================================================== */

/* Page wrapper — guarantee dark page background even on default template */
body.page-template-default.page :is(.elementor[data-elementor-type="wp-page"]) [class*="nexgen-pantheon-"]{
  font-family: 'Outfit', system-ui, sans-serif;
}

/* Shared section frame: generous vertical padding, max-width container */
.nexgen-pantheon-hero,
.nexgen-pantheon-coupon,
.nexgen-pantheon-intro,
.nexgen-pantheon-trust,
.nexgen-pantheon-gym,
.nexgen-pantheon-how,
.nexgen-pantheon-cta,
.nexgen-pantheon-faq,
.nexgen-pantheon-outro {
  background: var(--midnight);
  color: var(--white-90);
  padding-block: clamp(56px, 9vw, 120px) !important;
  padding-inline: clamp(20px, 5vw, 64px) !important;
  position: relative;
  overflow: hidden;
}
.nexgen-pantheon-hero > .e-con-inner,
.nexgen-pantheon-hero > .elementor-container,
.nexgen-pantheon-coupon > .e-con-inner,
.nexgen-pantheon-coupon > .elementor-container,
.nexgen-pantheon-intro > .e-con-inner,
.nexgen-pantheon-intro > .elementor-container,
.nexgen-pantheon-trust > .e-con-inner,
.nexgen-pantheon-trust > .elementor-container,
.nexgen-pantheon-gym > .e-con-inner,
.nexgen-pantheon-gym > .elementor-container,
.nexgen-pantheon-how > .e-con-inner,
.nexgen-pantheon-how > .elementor-container,
.nexgen-pantheon-cta > .e-con-inner,
.nexgen-pantheon-cta > .elementor-container,
.nexgen-pantheon-faq > .e-con-inner,
.nexgen-pantheon-faq > .elementor-container,
.nexgen-pantheon-outro > .e-con-inner,
.nexgen-pantheon-outro > .elementor-container {
  max-width: 1280px !important;
  margin-inline: auto !important;
  position: relative;
  z-index: 1;
}

/* Soft section-to-section borders */
.nexgen-pantheon-coupon,
.nexgen-pantheon-intro,
.nexgen-pantheon-gym,
.nexgen-pantheon-how,
.nexgen-pantheon-faq,
.nexgen-pantheon-outro {
  border-top: 1px solid var(--white-12);
}

/* Typography — hero */
.nexgen-pantheon-hero {
  background: radial-gradient(ellipse at 50% 30%, var(--blue-glow), transparent 65%), var(--midnight) !important;
  text-align: center;
}
.nexgen-pantheon-h1 .elementor-heading-title {
  font-family: 'Bebas Neue', sans-serif !important;
  font-weight: 400 !important;
  font-size: clamp(40px, 7vw, 72px) !important;
  letter-spacing: clamp(1.5px, 0.3vw, 3px) !important;
  line-height: 1.05 !important;
  color: var(--white) !important;
  text-transform: uppercase !important;
  margin-block: 12px 18px !important;
}
.nexgen-pantheon-sub .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 500 !important;
  font-style: italic !important;
  font-size: clamp(24px, 3.4vw, 40px) !important;
  line-height: 1.25 !important;
  color: var(--accent-gold) !important;
  margin-block: 0 28px !important;
}
.nexgen-pantheon-lede .elementor-widget-container,
.nexgen-pantheon-lede {
  max-width: 720px !important;
  margin-inline: auto !important;
}
.nexgen-pantheon-lede p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: clamp(16px, 1.4vw, 18px) !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
  margin: 0;
}

/* Eyebrow + glass badges */
.nexgen-pantheon-eyebrow,
.nexgen-pantheon-eyebrow-h .elementor-heading-title {
  text-align: center;
  margin-bottom: 18px;
}
.nexgen-pantheon-eyebrow-h .elementor-heading-title {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  font-size: 12px !important;
  color: var(--accent-gold) !important;
}
.nexgen-pantheon-hero .nexgen-glass-badge {
  display: inline-block;
  background: rgba(0,0,0,0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  padding: 8px 18px;
  color: var(--accent-gold);
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}
.nexgen-pantheon-badges {
  list-style: none;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 32px 0 0;
  padding: 0;
}
.nexgen-pantheon-badges li { margin: 0; }
.nexgen-pantheon-badges .nexgen-glass-badge {
  color: var(--white-90);
}

/* Coupon callout card */
.nexgen-pantheon-coupon { text-align: center; }
.nexgen-pantheon-coupon-card {
  display: inline-block;
  max-width: 640px;
  width: 100%;
  margin-inline: auto;
  padding: 36px clamp(20px, 4vw, 48px);
  background: linear-gradient(160deg, rgba(201,168,76,0.08), rgba(201,168,76,0.02));
  border: 1px solid var(--accent-gold-dim);
  border-radius: 12px;
  position: relative;
  box-sizing: border-box;
}
.nexgen-pantheon-coupon-card::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px dashed rgba(201,168,76,0.25);
  border-radius: 8px;
  pointer-events: none;
}
.nexgen-pantheon-coupon-eyebrow {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin-bottom: 16px;
}
.nexgen-pantheon-coupon-code {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(36px, 6.2vw, 64px);
  letter-spacing: 2px;
  line-height: 1;
  color: var(--white);
  margin: 8px 0 18px;
  word-break: keep-all;
  white-space: nowrap;
}
.nexgen-pantheon-coupon-meta {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  color: var(--white-60);
  line-height: 1.6;
}
.nexgen-pantheon-coupon-meta strong { color: var(--white-90); font-weight: 600; }

/* Display headings (Cormorant) used across intro/trust/gym/how/cta/faq/outro */
.nexgen-pantheon-display .elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600 !important;
  font-size: clamp(28px, 4vw, 48px) !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  color: var(--white) !important;
  text-align: center !important;
  margin-bottom: 28px !important;
}

/* Brand intro body */
.nexgen-pantheon-intro { text-align: center; }
.nexgen-pantheon-intro p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--white-90);
  max-width: 720px;
  margin-inline: auto;
}

/* Trust pillars 3-card grid */
.nexgen-pantheon-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 12px;
}
.nexgen-pantheon-trust-card {
  background: var(--white-06);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 28px 24px;
  transition: transform 0.3s var(--ease-soft), border-color 0.3s var(--ease-soft), box-shadow 0.3s var(--ease-soft);
}
.nexgen-pantheon-trust-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent-gold-dim);
  box-shadow: 0 12px 32px rgba(0,0,0,0.35);
}
.nexgen-pantheon-trust-card h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: 0.5px;
  color: var(--accent-gold);
  margin: 0 0 12px;
}
.nexgen-pantheon-trust-card p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--white-90);
  margin: 0;
}

/* Gym co-brand block */
.nexgen-pantheon-gym { text-align: center; }
.nexgen-pantheon-gym-tagline {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(20px, 2.4vw, 28px);
  color: var(--accent-gold);
  margin: 0 0 32px;
}
.nexgen-pantheon-gym-info dl {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 40px;
  max-width: 880px;
  margin: 12px auto 0;
  text-align: left;
}
.nexgen-pantheon-gym-info div {
  border-top: 1px solid var(--white-12);
  padding-top: 18px;
}
.nexgen-pantheon-gym-info dt {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 6px;
}
.nexgen-pantheon-gym-info dd {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--white-90);
  margin: 0;
}
.nexgen-pantheon-gym-info a { color: var(--white); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--accent-gold-dim); }

/* Gym multi-location grid (Bethlehem + East Norriton) */
.nexgen-pantheon-gym-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  max-width: 1080px;
  margin: 16px auto 0;
}
.nexgen-pantheon-gym-card {
  background: var(--white-06);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 32px 28px;
  text-align: left;
  transition: transform 0.3s var(--ease-soft), border-color 0.3s var(--ease-soft), box-shadow 0.3s var(--ease-soft);
}
.nexgen-pantheon-gym-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent-gold-dim);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}
.nexgen-pantheon-gym-card-eyebrow {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin-bottom: 8px;
}
.nexgen-pantheon-gym-card-name {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  color: var(--white);
  margin: 0 0 24px;
}
.nexgen-pantheon-gym-card-info {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 0;
}
.nexgen-pantheon-gym-card-info > div {
  border-top: 1px solid var(--white-12);
  padding-top: 14px;
}
.nexgen-pantheon-gym-card-info dt {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin: 0 0 4px;
}
.nexgen-pantheon-gym-card-info dd {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: var(--white-90);
  margin: 0;
}
.nexgen-pantheon-gym-card-info a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--accent-gold-dim);
}

/* The Pantheon Powerhouse — pro shop callout (gold-accented, distinct from gym cards) */
.nexgen-pantheon-proshop {
  max-width: 880px;
  margin: 36px auto 0;
  padding: 32px clamp(24px, 4vw, 44px);
  background: linear-gradient(160deg, rgba(201, 168, 76, 0.10), rgba(201, 168, 76, 0.02));
  border: 1px solid var(--accent-gold-dim);
  border-radius: 12px;
  text-align: center;
  position: relative;
}
.nexgen-pantheon-proshop::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px dashed rgba(201, 168, 76, 0.22);
  border-radius: 8px;
  pointer-events: none;
}
.nexgen-pantheon-proshop-eyebrow {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-gold);
  margin-bottom: 12px;
  position: relative;
}
.nexgen-pantheon-proshop-name {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 600;
  font-style: italic;
  font-size: clamp(28px, 3.6vw, 40px);
  line-height: 1.15;
  color: var(--white);
  margin: 0 0 16px;
  position: relative;
}
.nexgen-pantheon-proshop-body {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  color: var(--white-90);
  max-width: 640px;
  margin: 0 auto;
  position: relative;
}
.nexgen-pantheon-proshop-body code {
  background: rgba(201, 168, 76, 0.18);
  border: 1px solid var(--accent-gold-dim);
  color: var(--accent-gold);
  padding: 2px 8px;
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.92em;
}

/* How to redeem — numbered steps */
.nexgen-pantheon-how-steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 0;
  padding: 0;
}
.nexgen-pantheon-how-steps li {
  background: var(--white-06);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 28px 24px;
  position: relative;
}
.nexgen-pantheon-how-num {
  display: block;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 36px;
  letter-spacing: 2px;
  color: var(--accent-gold);
  margin-bottom: 10px;
}
.nexgen-pantheon-how-steps h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 18px;
  color: var(--white);
  margin: 0 0 10px;
}
.nexgen-pantheon-how-steps p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--white-90);
  margin: 0;
}
.nexgen-pantheon-how-steps code {
  background: rgba(201,168,76,0.15);
  border: 1px solid var(--accent-gold-dim);
  color: var(--accent-gold);
  padding: 2px 8px;
  border-radius: 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.92em;
}

/* The 3 CTAs grid */
.nexgen-pantheon-cta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 16px;
}
.nexgen-pantheon-cta-card {
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 28px 24px 24px;
  text-decoration: none !important;
  color: var(--white-90) !important;
  transition: transform 0.3s var(--ease-soft), border-color 0.3s var(--ease-soft), box-shadow 0.3s var(--ease-soft);
  position: relative;
  overflow: hidden;
}
.nexgen-pantheon-cta-card:hover {
  transform: translateY(-6px);
  border-color: var(--accent-gold);
  box-shadow: 0 16px 40px rgba(0,0,0,0.45);
}
.nexgen-pantheon-cta-img {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at 50% 60%, var(--blue-glow), transparent 70%);
  border-radius: 8px;
  margin-bottom: 18px;
}
.nexgen-pantheon-cta-img img {
  max-height: 100%;
  max-width: 80%;
  object-fit: contain;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,0.45));
}
.nexgen-pantheon-cta-card h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 28px;
  letter-spacing: 1.5px;
  color: var(--white);
  margin: 0 0 10px;
  text-transform: uppercase;
}
.nexgen-pantheon-cta-card p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--white-60);
  margin: 0 0 22px;
  flex: 1;
}
.nexgen-pantheon-cta-button {
  align-self: flex-start;
  font-family: 'Outfit', sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--accent-gold);
  border-bottom: 1px solid var(--accent-gold-dim);
  padding-bottom: 4px;
  transition: color 0.2s var(--ease-soft), border-color 0.2s var(--ease-soft);
}
.nexgen-pantheon-cta-card:hover .nexgen-pantheon-cta-button {
  color: var(--accent-gold-bright);
  border-color: var(--accent-gold);
}

/* FAQ accordion (native <details>) */
.nexgen-pantheon-faq-list {
  max-width: 880px;
  margin: 0 auto;
}
.nexgen-pantheon-faq-list details {
  border-top: 1px solid var(--white-12);
  padding: 18px 0;
}
.nexgen-pantheon-faq-list details:last-child { border-bottom: 1px solid var(--white-12); }
.nexgen-pantheon-faq-list summary {
  list-style: none;
  cursor: pointer;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 17px;
  color: var(--white);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.nexgen-pantheon-faq-list summary::-webkit-details-marker { display: none; }
.nexgen-pantheon-faq-list summary::after {
  content: '+';
  color: var(--accent-gold);
  font-family: 'Bebas Neue', sans-serif;
  font-size: 28px;
  line-height: 1;
  transition: transform 0.2s var(--ease-soft);
}
.nexgen-pantheon-faq-list details[open] summary::after { transform: rotate(45deg); }
.nexgen-pantheon-faq-list details p {
  margin: 12px 0 0;
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: var(--white-90);
}

/* Outro */
.nexgen-pantheon-outro { text-align: center; }
.nexgen-pantheon-outro p {
  font-family: 'Azo Sans', system-ui, sans-serif;
  font-size: 16px;
  color: var(--white-90);
  max-width: 640px;
  margin-inline: auto;
}
.nexgen-pantheon-outro strong {
  color: var(--accent-gold);
  font-weight: 600;
  letter-spacing: 1.5px;
}

/* Mobile collapse */
@media (max-width: 900px) {
  .nexgen-pantheon-trust-grid,
  .nexgen-pantheon-how-steps,
  .nexgen-pantheon-cta-grid,
  .nexgen-pantheon-gym-grid { grid-template-columns: 1fr; }
  .nexgen-pantheon-gym-info dl { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .nexgen-pantheon-coupon-code { letter-spacing: 2px; }
  .nexgen-pantheon-cta-card h3 { font-size: 24px; }
}
/* === /Pantheon Landing ==================================================== */

/* ================================================================
 * Mobile filter drawer (2026-04-26)
 * ================================================================
 * On viewports ≤767px, the desktop .nexgen-shop-controls bar is
 * hidden and replaced by a single trigger bar + bottom-sheet drawer
 * rendered from functions.php (wp_footer). Filter pills inside the
 * drawer are the same URL-driven <a href> markup as the desktop
 * shortcodes. */

/* Hide drawer machinery on tablet+ — desktop controls bar handles it. */
@media (min-width: 768px) {
  .nexgen-mobile-filter-bar,
  .nexgen-mobile-filter-backdrop,
  .nexgen-mobile-filter-drawer { display: none !important; }
}

@media (max-width: 767px) {

  /* Replace the desktop controls bar entirely. */
  .nexgen-shop-controls { display: none !important; }

  /* --- Trigger bar --- */
  .nexgen-mobile-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    background: var(--cream);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  }

  .nexgen-mobile-filter-bar .nexgen-mobile-filter-trigger {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 16px !important;
    min-height: 44px !important;
    width: auto !important;
    background: #FFFFFF !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    border-radius: 999px !important;
    color: var(--near-black) !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: border-color 0.2s ease, background 0.2s ease !important;
  }
  .nexgen-mobile-filter-bar .nexgen-mobile-filter-trigger:hover,
  .nexgen-mobile-filter-bar .nexgen-mobile-filter-bar .nexgen-mobile-filter-trigger:focus-visible {
    border-color: var(--accent-gold-dim);
    outline: none;
  }
  .nexgen-mobile-filter-bar .nexgen-mobile-filter-trigger:focus-visible {
    box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.15);
  }
  .nexgen-mobile-filter-icon {
    color: var(--accent-gold);
    flex: 0 0 auto;
  }
  .nexgen-mobile-filter-label {
    line-height: 1;
  }
  .nexgen-mobile-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    margin-left: 4px;
    background: var(--deep-navy);
    color: var(--off-white);
    border-radius: 999px;
    font-family: 'Outfit', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
  }

  /* Sort dropdown inside the bar — compact override for mobile. */
  .nexgen-mobile-filter-bar-sort .nexgen-shop-sort-field {
    gap: 0;
  }
  .nexgen-mobile-filter-bar-sort .nexgen-shop-sort-label {
    display: none;
  }
  .nexgen-mobile-filter-bar-sort .nexgen-shop-sort-select {
    min-width: 0;
    padding: 10px 32px 10px 14px;
    font-size: 13px;
    background-position: right 10px center;
  }

  /* --- Backdrop --- */
  .nexgen-mobile-filter-backdrop {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(6, 14, 34, 0.6);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.2s ease;
  }
  .nexgen-mobile-filter-backdrop.is-open { opacity: 1; }

  /* --- Drawer + sliding panel --- */
  .nexgen-mobile-filter-drawer {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: flex-end;
    pointer-events: none;
  }
  .nexgen-mobile-filter-drawer.is-open { pointer-events: auto; }

  .nexgen-mobile-filter-panel {
    width: 100%;
    max-height: 85vh;
    background: var(--cream);
    border-radius: 16px 16px 0 0;
    padding: 8px 20px 24px;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25);
    overflow: hidden;
  }
  .nexgen-mobile-filter-drawer.is-open .nexgen-mobile-filter-panel {
    transform: translateY(0);
  }

  .nexgen-mobile-filter-handle {
    width: 44px;
    height: 4px;
    margin: 6px auto 12px;
    background: rgba(0, 0, 0, 0.18);
    border-radius: 999px;
  }

  .nexgen-mobile-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }
  .nexgen-mobile-filter-title {
    margin: 0;
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 18px;
    letter-spacing: 0.3px;
    color: var(--near-black);
    line-height: 1.2;
  }
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    color: var(--near-black) !important;
    cursor: pointer !important;
    flex: 0 0 auto !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
  }
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-close:hover,
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-close:focus-visible {
    background: rgba(0, 0, 0, 0.04);
    color: var(--accent-gold-bright);
    border-color: rgba(0, 0, 0, 0.08);
    outline: none;
  }

  .nexgen-mobile-filter-body {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 18px 0 8px;
  }

  .nexgen-mobile-filter-section + .nexgen-mobile-filter-section {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }
  .nexgen-mobile-filter-section-label {
    display: block;
    margin-bottom: 12px;
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--accent-gold);
  }

  /* In-drawer pills: wrap nicely, full-justify, generous tap targets.
     The shortcodes render `.nexgen-shop-pills` markup; we override only
     within the drawer scope so the desktop styling stays intact. */
  .nexgen-mobile-filter-section .nexgen-shop-pills {
    flex-wrap: wrap;
    justify-content: flex-start;
    overflow: visible;
    max-width: none;
    gap: 8px;
    padding-bottom: 0;
  }
  .nexgen-mobile-filter-section .nexgen-shop-pill {
    flex: 0 0 auto;
    padding: 11px 16px;
    font-size: 12px;
    letter-spacing: 1.2px;
    min-height: 44px;
  }
  .nexgen-mobile-filter-section .nexgen-shop-origin-pills .nexgen-shop-pill {
    padding: 11px 16px;
    font-size: 12px;
    letter-spacing: 1.2px;
  }

  .nexgen-mobile-filter-footer {
    flex: 0 0 auto;
    padding-top: 16px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-apply {
    display: block !important;
    width: 100% !important;
    padding: 14px 24px !important;
    background: var(--deep-navy) !important;
    color: var(--off-white) !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    min-height: 0 !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
  }
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-apply:hover,
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-drawer .nexgen-mobile-filter-apply:focus-visible {
    background: var(--midnight);
    outline: none;
  }
  .nexgen-mobile-filter-drawer .nexgen-mobile-filter-apply:focus-visible {
    box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.3);
  }
}

/* Reduced-motion: skip slide animation, just fade. */
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .nexgen-mobile-filter-panel {
    transition: opacity 0.15s linear !important;
    transform: none !important;
    opacity: 0;
  }
  .nexgen-mobile-filter-drawer.is-open .nexgen-mobile-filter-panel {
    opacity: 1;
  }
  .nexgen-mobile-filter-backdrop { transition: opacity 0.15s linear !important; }
}

/* --- My Account (Post 23) --------------------------------------------------
   Plain [woocommerce_my_account] shortcode page. Pure CSS redesign — no
   template overrides, no PHP hooks. Scoped to body.woocommerce-account so
   logged-out (login/register cards) and logged-in (sidebar dashboard, orders,
   addresses, edit-account) both inherit the dark-glass treatment.

   WC core body classes used:
     .woocommerce-account            — any my-account endpoint
     .logged-out / .logged-in        — WP core, drives card-vs-dashboard layout
     .woocommerce-edit-account       — endpoint-specific (no special handling)
     .woocommerce-orders             — endpoint-specific (no special handling)
   ------------------------------------------------------------------------- */

/* Page chrome ------------------------------------------------------------- */
body.woocommerce-account {
  background-color: var(--midnight) !important;
  background-image: radial-gradient(ellipse at 50% 22%, var(--blue-glow), transparent 65%);
  background-attachment: fixed;
}
body.woocommerce-account::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.05;
  mix-blend-mode: overlay;
}
body.woocommerce-account .site,
body.woocommerce-account .site-content,
body.woocommerce-account main,
body.woocommerce-account #content,
body.woocommerce-account .entry-content,
body.woocommerce-account .site-main,
body.woocommerce-account article {
  background: transparent !important;
}

/* Constrain my-account content to a centred card column. Hello Elementor's
   default container pads to ~1140px; we tighten to 1100px and add breathing
   room top/bottom. */
body.woocommerce-account .site-content,
body.woocommerce-account #content {
  padding-top: 90px !important;
  padding-bottom: 110px !important;
  position: relative;
  z-index: 1;
}
body.woocommerce-account .site-main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 32px;
}

/* Page title — "My account". Hello Elementor renders this as .page-title or
   h1.entry-title. Style as Tier 1b Cormorant display with gold hairline. */
body.woocommerce-account .page-title,
body.woocommerce-account h1.entry-title,
body.woocommerce-account .entry-header .entry-title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 600 !important;
  font-style: normal !important;
  font-size: clamp(34px, 5vw, 52px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  color: var(--white-90) !important;
  text-align: center !important;
  margin: 0 0 56px !important;
  padding: 0 !important;
  text-transform: none !important;
  position: relative;
}
body.woocommerce-account .page-title::after,
body.woocommerce-account h1.entry-title::after,
body.woocommerce-account .entry-header .entry-title::after {
  content: '';
  display: block;
  width: 72px;
  height: 1px;
  margin: 20px auto 0;
  background: linear-gradient(90deg, transparent, var(--accent-gold-dim), var(--accent-gold), var(--accent-gold-dim), transparent);
}

/* Logged-out: two-column login/register layout ---------------------------- */
body.woocommerce-account.logged-out #customer_login,
body.woocommerce-account .u-columns.col2-set {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin: 0 auto !important;
  padding: 0 !important;
  max-width: 980px;
}
body.woocommerce-account .u-columns::before,
body.woocommerce-account .u-columns::after {
  display: none !important;
}
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2,
body.woocommerce-account #customer_login .col-1,
body.woocommerce-account #customer_login .col-2 {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  /* NOTE: padding intentionally omitted — controlled by
     `#customer_login > div { padding: 52px 56px }` (and the mobile @media
     override). Setting padding: 0 here previously beat the card rule via
     !important and zeroed out the inner spacing. */
}

/* Login + Register card surface — dark glass treatment */
body.woocommerce-account #customer_login > div {
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 52px 56px;
  /* Flex column so the form inside can fill remaining height — required for
     button-row alignment between the Login and Register cards. */
  display: flex;
  flex-direction: column;
  transition: border-color var(--dur-hover) var(--ease-soft),
              transform var(--dur-hover) var(--ease-soft),
              box-shadow var(--dur-hover) var(--ease-soft);
}

/* Inner forms become flex columns that fill remaining card height. The button
   row gets margin-top: auto so it sticks to the bottom in BOTH cards — keeps
   the LOG IN and REGISTER buttons on the same Y line even though Login has a
   "Remember me" row that Register doesn't. */
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
body.woocommerce-account form.woocommerce-form-login p.form-row:has(button.woocommerce-form-login__submit),
body.woocommerce-account form.woocommerce-form-register p.form-row:has(button.woocommerce-form-register__submit) {
  margin-top: auto !important;
}

/* Move the Register privacy notice to AFTER the submit button via flex order
   (it sits before the button in the DOM). Lost-password is already after the
   button in the DOM, so no order tweak needed for the Login form. */
body.woocommerce-account form.woocommerce-form-register .woocommerce-privacy-policy-text {
  order: 2;
  margin: 18px 0 0 !important;
}
body.woocommerce-account #customer_login > div:hover {
  border-color: var(--accent-gold-dim);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

/* Card titles "Login" / "Register" — Cormorant display with gold underline */
body.woocommerce-account #customer_login h2,
body.woocommerce-account .u-column1 > h2,
body.woocommerce-account .u-column2 > h2 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  font-size: 30px !important;
  line-height: 1.2 !important;
  color: var(--white) !important;
  text-align: center !important;
  margin: 0 0 32px !important;
  padding: 0 0 16px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  position: relative;
}
body.woocommerce-account #customer_login h2::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
}

/* Form rows ---------------------------------------------------------------- */
body.woocommerce-account .woocommerce-form .form-row,
body.woocommerce-account .woocommerce-form-row {
  margin: 0 0 22px !important;
  padding: 0 !important;
  display: block;
}
body.woocommerce-account .woocommerce-form-row--first,
body.woocommerce-account .woocommerce-form-row--last {
  width: 100% !important;
  float: none !important;
}

/* Form labels — Tier 4: Outfit 500 13px uppercase white-60.
   Do NOT use bare `form label` — that restyles the sitewide footer
   MC4WP consent checkbox (nexgen-mc4wp-consent) when viewing /my-account/. */
body.woocommerce-account .woocommerce-form label,
body.woocommerce-account .woocommerce-form-row label,
body.woocommerce-account .woocommerce-MyAccount-content form label {
  display: block;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--white-60) !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}
/* Footer enlist consent — keep sentence-case microcopy even on account pages */
body.woocommerce-account .nexgen-footer-newsletter label.nexgen-mc4wp-consent,
body.woocommerce-account .nexgen-newsletter-form-wrap label.nexgen-mc4wp-consent {
  display: flex !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--white-60) !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-account .required {
  color: var(--accent-gold) !important;
  text-decoration: none !important;
  border: 0 !important;
}

/* Form inputs — design.md dark-bg spec */
body.woocommerce-account .woocommerce-form input[type="text"],
body.woocommerce-account .woocommerce-form input[type="email"],
body.woocommerce-account .woocommerce-form input[type="password"],
body.woocommerce-account .woocommerce-form input[type="tel"],
body.woocommerce-account .woocommerce-form input[type="url"],
body.woocommerce-account .woocommerce-form input[type="number"],
body.woocommerce-account .woocommerce-form select,
body.woocommerce-account .woocommerce-form textarea,
body.woocommerce-account form.lost_reset_password input[type="text"],
body.woocommerce-account form.lost_reset_password input[type="password"],
body.woocommerce-account form.edit-account input[type="text"],
body.woocommerce-account form.edit-account input[type="email"],
body.woocommerce-account form.edit-account input[type="password"],
body.woocommerce-account form.woocommerce-EditAccountForm input,
body.woocommerce-account form.woocommerce-address-fields input[type="text"],
body.woocommerce-account form.woocommerce-address-fields input[type="email"],
body.woocommerce-account form.woocommerce-address-fields input[type="tel"],
body.woocommerce-account form.woocommerce-address-fields select,
body.woocommerce-account .woocommerce-Input--text {
  width: 100% !important;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 13px 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--white-90) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color var(--dur-micro) var(--ease-standard),
              box-shadow var(--dur-micro) var(--ease-standard),
              background var(--dur-micro) var(--ease-standard);
  -webkit-appearance: none;
  appearance: none;
}
body.woocommerce-account .woocommerce-form input::placeholder,
body.woocommerce-account form input::placeholder,
body.woocommerce-account form textarea::placeholder {
  color: var(--white-30) !important;
  opacity: 1;
}
body.woocommerce-account .woocommerce-form input:hover,
body.woocommerce-account form input:hover,
body.woocommerce-account form select:hover,
body.woocommerce-account form textarea:hover {
  border-color: var(--white-30) !important;
}
body.woocommerce-account .woocommerce-form input:focus,
body.woocommerce-account .woocommerce-form select:focus,
body.woocommerce-account .woocommerce-form textarea:focus,
body.woocommerce-account form input:focus,
body.woocommerce-account form select:focus,
body.woocommerce-account form textarea:focus {
  border-color: var(--brand-blue) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.4) !important;
  outline: none !important;
}

/* Native password-toggle eye icon (browser-supplied) — invert for dark bg */
body.woocommerce-account .woocommerce-form input[type="password"]::-ms-reveal {
  filter: invert(1) opacity(0.6);
}

/* Submit buttons — primary brand-blue */
body.woocommerce-account .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form-register__submit,
body.woocommerce-account form.lost_reset_password button[type="submit"],
body.woocommerce-account form.edit-account button[type="submit"],
body.woocommerce-account .woocommerce-EditAccountForm button[type="submit"],
body.woocommerce-account .woocommerce-address-fields button[type="submit"],
body.woocommerce-account .woocommerce-MyAccount-content button.button,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button {
  display: inline-block !important;
  width: 100% !important;
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-align: center !important;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  margin-top: 8px !important;
  transition: background var(--dur-hover) var(--ease-soft),
              border-color var(--dur-hover) var(--ease-soft),
              transform var(--dur-hover) var(--ease-soft),
              box-shadow var(--dur-hover) var(--ease-soft);
}
body.woocommerce-account .woocommerce-form-login__submit:hover,
body.woocommerce-account .woocommerce-form-register__submit:hover,
body.woocommerce-account form.lost_reset_password button[type="submit"]:hover,
body.woocommerce-account form.edit-account button[type="submit"]:hover,
body.woocommerce-account .woocommerce-EditAccountForm button[type="submit"]:hover,
body.woocommerce-account .woocommerce-address-fields button[type="submit"]:hover,
body.woocommerce-account .woocommerce-MyAccount-content button.button:hover,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button:hover {
  background: var(--deep-navy) !important;
  border-color: var(--deep-navy) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 0 24px var(--accent-gold-glow);
}

/* "Remember me" checkbox + label */
body.woocommerce-account .woocommerce-form-login__rememberme {
  display: flex !important;
  align-items: center;
  gap: 10px;
  font-family: 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--white-60) !important;
  margin: 0 0 4px !important;
  cursor: pointer;
}
body.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--accent-gold);
  cursor: pointer;
}
body.woocommerce-account .woocommerce-form-login__rememberme span {
  color: var(--white-60);
  font-family: inherit !important;
  font-size: inherit !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Lost-password link + privacy link — gold ghost button */
body.woocommerce-account .woocommerce-LostPassword,
body.woocommerce-account .lost_password {
  margin: 18px 0 0 !important;
  text-align: center;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  /* Match privacy-policy-text height so LOG IN and REGISTER buttons sit on
     the same Y line (button-rows have margin-top: auto pushing them up). */
  min-height: 80px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 4px;
}
body.woocommerce-account .woocommerce-LostPassword a,
body.woocommerce-account .lost_password a,
body.woocommerce-account .woocommerce-privacy-policy-link {
  color: var(--accent-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 4px;
  text-decoration-color: var(--accent-gold-dim);
  text-decoration-thickness: 1px;
  transition: color var(--dur-micro) var(--ease-standard),
              text-decoration-color var(--dur-micro) var(--ease-standard);
}
body.woocommerce-account .woocommerce-LostPassword a:hover,
body.woocommerce-account .lost_password a:hover,
body.woocommerce-account .woocommerce-privacy-policy-link:hover {
  color: var(--accent-gold-bright) !important;
  text-decoration-color: var(--accent-gold-bright);
}

/* Register privacy notice */
body.woocommerce-account .woocommerce-privacy-policy-text {
  margin: 8px 0 22px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--white-60) !important;
  /* Pair with .woocommerce-LostPassword min-height for cross-form alignment. */
  min-height: 80px;
}
body.woocommerce-account .woocommerce-privacy-policy-text p {
  margin: 0 !important;
  color: inherit !important;
}

/* Lost-password / set-password single-column endpoint */
body.woocommerce-account .woocommerce-ResetPassword,
body.woocommerce-account form.lost_reset_password {
  max-width: 520px;
  margin: 0 auto !important;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 48px 40px !important;
}
body.woocommerce-account form.lost_reset_password p:first-of-type {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  color: var(--white-60) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  margin: 0 0 24px !important;
}

/* Logged-in dashboard ----------------------------------------------------- */
@media (min-width: 769px) {
  body.woocommerce-account.logged-in .woocommerce {
    display: grid !important;
    grid-template-columns: 240px 1fr;
    gap: 32px;
    align-items: start;
  }
}

/* Sidebar nav — dark glass card */
body.woocommerce-account .woocommerce-MyAccount-navigation {
  width: auto !important;
  grid-column: 1 / 2;
  max-width: none !important;
  float: none !important;
  margin: 0 !important;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 12px;
  position: sticky;
  top: 110px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  white-space: nowrap;
  color: var(--white-60) !important;
  text-decoration: none !important;
  border-left: 3px solid transparent;
  border-radius: 0 6px 6px 0;
  transition: color var(--dur-hover) var(--ease-soft),
              background var(--dur-hover) var(--ease-soft),
              border-left-color var(--dur-hover) var(--ease-soft);
}
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  color: var(--accent-gold-bright) !important;
  background: var(--white-06);
  border-left-color: var(--accent-gold-dim);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--white-90) !important;
  background: var(--white-06);
  border-left-color: var(--accent-gold) !important;
}

/* Dashboard content card */
body.woocommerce-account .woocommerce-MyAccount-content {
  width: auto !important;
  grid-column: 2 / 3;
  min-width: 0;
  max-width: none !important;
  float: none !important;
  margin: 0 !important;
  background: var(--white-06);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid var(--white-12);
  border-radius: 12px;
  padding: 48px 40px;
  min-height: 320px;
}
body.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type,
body.woocommerce-account .woocommerce-MyAccount-content p {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--white-90) !important;
  margin: 0 0 16px;
}
body.woocommerce-account .woocommerce-MyAccount-content p strong {
  color: var(--white) !important;
  font-weight: 600;
}
body.woocommerce-account .woocommerce-MyAccount-content p a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--accent-gold-dim);
}
body.woocommerce-account .woocommerce-MyAccount-content p a:hover {
  color: var(--accent-gold-bright) !important;
  text-decoration-color: var(--accent-gold-bright);
}

/* Section headings inside the dashboard content */
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3,
body.woocommerce-account .woocommerce-Address h3 {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  text-transform: none !important;
  color: var(--white) !important;
  margin: 0 0 24px !important;
  padding: 0 0 14px !important;
  letter-spacing: 0.5px !important;
  line-height: 1.3 !important;
  position: relative;
}
body.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-size: 26px !important;
}
body.woocommerce-account .woocommerce-MyAccount-content h3,
body.woocommerce-account .woocommerce-Address h3 {
  font-size: 20px !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
}
body.woocommerce-account .woocommerce-MyAccount-content h2::after,
body.woocommerce-account .woocommerce-MyAccount-content h3::after,
body.woocommerce-account .woocommerce-Address h3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, var(--accent-gold), var(--accent-gold-dim), transparent);
}

/* Order tables */
body.woocommerce-account .woocommerce-orders-table,
body.woocommerce-account table.woocommerce-MyAccount-orders,
body.woocommerce-account table.woocommerce-table--order-details,
body.woocommerce-account table.account-orders-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border: 1px solid var(--white-12);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.2);
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  margin: 0 0 24px !important;
}
body.woocommerce-account .woocommerce-orders-table thead th,
body.woocommerce-account table.account-orders-table thead th,
body.woocommerce-account table.woocommerce-table--order-details thead th {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: var(--accent-gold) !important;
  background: rgba(0, 0, 0, 0.3) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--white-12) !important;
  padding: 16px 18px !important;
  text-align: left !important;
}
body.woocommerce-account .woocommerce-orders-table tbody td,
body.woocommerce-account table.account-orders-table tbody td,
body.woocommerce-account table.woocommerce-table--order-details tbody td {
  border: 0 !important;
  border-bottom: 1px solid var(--white-12) !important;
  padding: 16px 18px !important;
  font-size: 15px !important;
  color: var(--white-90) !important;
  vertical-align: middle;
}
body.woocommerce-account .woocommerce-orders-table tbody tr:last-child td,
body.woocommerce-account table.account-orders-table tbody tr:last-child td {
  border-bottom: 0 !important;
}
body.woocommerce-account .woocommerce-orders-table tbody tr:hover td {
  background: var(--white-06);
}
body.woocommerce-account .woocommerce-orders-table tfoot th,
body.woocommerce-account table.woocommerce-table--order-details tfoot th {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  color: var(--white-60) !important;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 14px 18px !important;
  border: 0 !important;
  border-top: 1px solid var(--white-12) !important;
  background: rgba(0, 0, 0, 0.2);
}
body.woocommerce-account .woocommerce-orders-table tfoot td,
body.woocommerce-account table.woocommerce-table--order-details tfoot td {
  font-weight: 600 !important;
  color: var(--white-90) !important;
  padding: 14px 18px !important;
  border: 0 !important;
  border-top: 1px solid var(--white-12) !important;
  background: rgba(0, 0, 0, 0.2);
}
body.woocommerce-account .woocommerce-orders-table .woocommerce-Price-amount {
  color: var(--white) !important;
  font-weight: 600;
}

/* Order status pill */
body.woocommerce-account .woocommerce-orders-table__cell-order-status {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-status::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
  background: var(--accent-gold);
  box-shadow: 0 0 8px var(--accent-gold-dim);
}

/* "View order" / "Pay" / "Cancel" inline action buttons in the orders table */
body.woocommerce-account .woocommerce-orders-table .button,
body.woocommerce-account .woocommerce-orders-table a.button {
  display: inline-block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 8px 16px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  background: transparent !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 6px !important;
  color: var(--accent-gold) !important;
  text-decoration: none !important;
  transition: all var(--dur-hover) var(--ease-soft);
  box-shadow: none !important;
}
body.woocommerce-account .woocommerce-orders-table .button:hover,
body.woocommerce-account .woocommerce-orders-table a.button:hover {
  background: var(--white-06) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
  transform: none !important;
}

/* Pagination */
body.woocommerce-account .woocommerce-pagination {
  margin: 24px 0 0 !important;
}
body.woocommerce-account .woocommerce-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-account .woocommerce-pagination ul.page-numbers li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-account .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  color: var(--white-60) !important;
  background: transparent !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px;
  text-decoration: none !important;
  transition: all var(--dur-hover) var(--ease-soft);
}
body.woocommerce-account .woocommerce-pagination .page-numbers:hover {
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
  background: var(--white-06) !important;
}
body.woocommerce-account .woocommerce-pagination .page-numbers.current {
  background: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
  color: var(--white) !important;
}

/* Address blocks (My Addresses page) */
body.woocommerce-account .woocommerce-Addresses,
body.woocommerce-account .u-columns.woocommerce-Addresses,
body.woocommerce-account .woocommerce-Addresses.col2-set {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 0 !important;
}
body.woocommerce-account .woocommerce-Addresses::before,
body.woocommerce-account .woocommerce-Addresses::after {
  display: none !important;
}
body.woocommerce-account .woocommerce-Address {
  width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
body.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 16px !important;
}
body.woocommerce-account .woocommerce-Address-title .edit {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  color: var(--accent-gold) !important;
  text-decoration: none !important;
  padding: 6px 14px !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 6px;
  transition: all var(--dur-hover) var(--ease-soft);
}
body.woocommerce-account .woocommerce-Address-title .edit:hover {
  background: var(--white-06);
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
}
body.woocommerce-account address {
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-style: normal !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--white-90) !important;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--white-12);
  border-radius: 8px;
  padding: 20px 22px !important;
  margin: 0 !important;
}


/* Address-block heading sits next to the gold "Add" pill in a flex row */
body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-Address-title h3 {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
  color: var(--white-90) !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}
body.woocommerce-account .woocommerce-Address-title h2::after,
body.woocommerce-account .woocommerce-Address-title h3::after {
  display: none !important;
}

/* Order details — totals row links */
body.woocommerce-account .woocommerce-MyAccount-content .order-actions a,
body.woocommerce-account .woocommerce-customer-details a {
  color: var(--accent-gold) !important;
}

/* Notices */
body.woocommerce-account .woocommerce-notices-wrapper {
  margin: 0 0 32px !important;
}
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-error,
body.woocommerce-account ul.woocommerce-error {
  list-style: none !important;
  background: rgba(0, 0, 0, 0.35) !important;
  border: 1px solid var(--white-12) !important;
  border-left-width: 3px !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  margin: 0 0 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  color: var(--white-90) !important;
  display: flex;
  align-items: center;
  gap: 12px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
body.woocommerce-account .woocommerce-message {
  border-left-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.08) !important;
}
body.woocommerce-account .woocommerce-info {
  border-left-color: var(--brand-blue) !important;
  background: rgba(26, 49, 120, 0.18) !important;
}
body.woocommerce-account .woocommerce-error,
body.woocommerce-account ul.woocommerce-error {
  border-left-color: var(--heritage-red) !important;
  background: rgba(197, 51, 58, 0.12) !important;
}
body.woocommerce-account .woocommerce-message::before,
body.woocommerce-account .woocommerce-info::before,
body.woocommerce-account .woocommerce-error::before,
body.woocommerce-account ul.woocommerce-error li::before {
  display: none !important;
}
body.woocommerce-account .woocommerce-message a,
body.woocommerce-account .woocommerce-info a,
body.woocommerce-account .woocommerce-error a {
  color: var(--accent-gold) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.woocommerce-account .woocommerce-message .button,
body.woocommerce-account .woocommerce-info .button {
  margin-left: auto !important;
  width: auto !important;
  padding: 8px 16px !important;
  font-size: 12px !important;
}

/* Edit-account form — fieldset spacing */
body.woocommerce-account form.edit-account fieldset,
body.woocommerce-account form.woocommerce-EditAccountForm fieldset {
  margin: 24px 0 !important;
  padding: 24px !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.2);
}
body.woocommerce-account form.edit-account fieldset legend,
body.woocommerce-account form.woocommerce-EditAccountForm fieldset legend {
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: var(--accent-gold) !important;
  padding: 0 12px;
}
body.woocommerce-account form.edit-account em,
body.woocommerce-account form.woocommerce-EditAccountForm em {
  font-style: normal !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  color: var(--white-30) !important;
  display: block;
  margin-top: 6px;
}
body.woocommerce-account form.edit-account p,
body.woocommerce-account form.woocommerce-EditAccountForm p {
  margin-bottom: 22px !important;
}

/* Sidebar nav icons — switched from background-image to mask-image so we get
   exact colour control via background-color (white-60 default, --accent-gold
   active, --accent-gold-bright on hover). Filter-chain approximation produced
   yellow-green; mask-image gives the real brand gold. The mask URLs are the
   same icons8 silhouettes the plugin already loads, so no extra assets. */
body.woocommerce-account .woocommerce-MyAccount-navigation a::before {
  content: '' !important;
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  flex: 0 0 auto;
  background-image: none !important;
  background-color: var(--white-60);
  filter: none !important;
  opacity: 0.75;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transition: background-color var(--dur-hover) var(--ease-soft),
              opacity var(--dur-hover) var(--ease-soft);
}
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover::before {
  background-color: var(--accent-gold-bright);
  opacity: 1;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::before {
  background-color: var(--accent-gold);
  opacity: 1;
}

/* Per-endpoint mask shapes (icons8 URLs already cached by the plugin). */
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--dashboard"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/box.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/box.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--orders"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/purchase-order.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/purchase-order.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--downloads"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/download.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/download.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--edit-address"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/home.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/home.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--edit-account"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/user.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/user.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--affiliate-area"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/handshake.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/handshake.png");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--customer-logout"] a::before {
  -webkit-mask-image: url("https://img.icons8.com/ios-filled/50/000000/logout-rounded.png");
  mask-image: url("https://img.icons8.com/ios-filled/50/000000/logout-rounded.png");
}

/* Custom SVG masks for endpoints the plugin doesn't ship (Coupons, Credits).
   SVG fill colour doesn't matter for mask-image — only alpha is used. */
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--wt-smart-coupon"] a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z'/%3E%3C/svg%3E");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--wt-store-credit"] a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z'/%3E%3C/svg%3E");
}

/* My Syndicate Points (LPFW my-points) + Service Verification — custom SVG masks */
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--my-points"] a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
}
body.woocommerce-account .woocommerce-MyAccount-navigation li[class*="--service-verification"] a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1.06 13.54l-3.18-3.18 1.41-1.41 1.77 1.77 4.24-4.24 1.41 1.41-5.65 5.65z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1.06 13.54l-3.18-3.18 1.41-1.41 1.77 1.77 4.24-4.24 1.41 1.41-5.65 5.65z'/%3E%3C/svg%3E");
}

/* The actual <form> elements inside the glass cards have a default border + bg
   from the theme/plugin. Strip them so the only visible card surface is the
   outer glass treatment on #customer_login > div. */
body.woocommerce-account form.woocommerce-form,
body.woocommerce-account form.woocommerce-form-login,
body.woocommerce-account form.woocommerce-form-register,
body.woocommerce-account form.woocommerce-EditAccountForm,
body.woocommerce-account form.lost_reset_password,
body.woocommerce-account form.woocommerce-address-fields {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Misc cleanup — kill default WC margins/borders that fight the layout */
body.woocommerce-account .woocommerce {
  background: transparent !important;
  border: 0 !important;
}
body.woocommerce-account hr {
  border: 0 !important;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--white-12), transparent);
  margin: 32px 0 !important;
}

/* ===========================================================================
   NGS — My Account light surfaces (logged-in only)
   Email-inspired light cards on the dark page. Page background, page title,
   and logged-out login/register/lost-password cards stay dark. Only the
   logged-in nav + content containers and their descendants flip to light.
   Tokens mirror the defensive-light email palette
   (email-templates/loyalty5-login-required-2026-05-06.html) + design.md.
   =========================================================================== */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  --acct-surface: #ffffff;
  --acct-surface-muted: #faf8f5;
  --acct-text: #1c1a17;
  --acct-text-muted: #8a8580;
  --acct-border: rgba(0, 0, 0, 0.08);
  --acct-border-strong: rgba(0, 0, 0, 0.14);
  --acct-inset: #f5f5f0;
}

/* --- Shell cards ------------------------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
  background-color: var(--acct-surface-muted) !important;
  background-image: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: 1px solid var(--acct-border) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  opacity: 1 !important;
  isolation: isolate;
  z-index: 2;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
  background-color: var(--acct-surface) !important;
  background-image: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: 1px solid var(--acct-border) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  opacity: 1 !important;
  position: relative;
  isolation: isolate;
  z-index: 1;
}
/* Kill dark-glass bleed on nav list items when sticky overlaps content */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul,
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li,
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
  background-color: transparent;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover {
  background-color: rgba(201, 168, 76, 0.08) !important;
}

/* --- Navigation links + icons ----------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
  color: var(--acct-text-muted) !important;
  border-left-color: transparent;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover {
  color: var(--accent-gold-bright) !important;
  background: rgba(201, 168, 76, 0.08) !important;
  border-left-color: var(--accent-gold-dim);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--acct-text) !important;
  background: rgba(201, 168, 76, 0.08) !important;
  border-left-color: var(--accent-gold) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a::before {
  background-color: var(--acct-text-muted);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a:hover::before {
  background-color: var(--accent-gold-bright);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a::before {
  background-color: var(--accent-gold);
}

/* --- Content typography + links --------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content > p:first-of-type,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content p,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content li {
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content p strong,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content strong,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content b {
  color: var(--acct-text) !important;
  font-weight: 600;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content p a {
  color: var(--accent-gold) !important;
  text-decoration-color: var(--accent-gold-dim);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content p a:hover {
  color: var(--accent-gold-bright) !important;
  text-decoration-color: var(--accent-gold-bright);
}

/* Section headings inside content */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content h2,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content h3,
body.woocommerce-account.logged-in .woocommerce-Address h3 {
  color: var(--acct-text) !important;
}
/* Address-block title heading (sits next to the gold "Add" pill) */
body.woocommerce-account.logged-in .woocommerce-Address-title h2,
body.woocommerce-account.logged-in .woocommerce-Address-title h3 {
  color: var(--acct-text) !important;
}

/* --- Order tables ----------------------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-orders-table,
body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders,
body.woocommerce-account.logged-in table.woocommerce-table--order-details,
body.woocommerce-account.logged-in table.account-orders-table {
  border: 1px solid var(--acct-border) !important;
  background: var(--acct-surface-muted) !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table thead th,
body.woocommerce-account.logged-in table.account-orders-table thead th,
body.woocommerce-account.logged-in table.woocommerce-table--order-details thead th {
  color: var(--accent-gold) !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--acct-border) !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table tbody td,
body.woocommerce-account.logged-in table.account-orders-table tbody td,
body.woocommerce-account.logged-in table.woocommerce-table--order-details tbody td {
  border-bottom: 1px solid var(--acct-border) !important;
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table tbody tr:hover td {
  background: rgba(0, 0, 0, 0.03) !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table tfoot th,
body.woocommerce-account.logged-in table.woocommerce-table--order-details tfoot th {
  color: var(--acct-text-muted) !important;
  border-top: 1px solid var(--acct-border) !important;
  background: #ffffff !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table tfoot td,
body.woocommerce-account.logged-in table.woocommerce-table--order-details tfoot td {
  color: var(--acct-text) !important;
  border-top: 1px solid var(--acct-border) !important;
  background: #ffffff !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table .woocommerce-Price-amount {
  color: var(--acct-text) !important;
}
/* Order status pill dot keeps gold */
body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status {
  color: var(--acct-text) !important;
}
/* Inline action buttons in orders table */
body.woocommerce-account.logged-in .woocommerce-orders-table .button,
body.woocommerce-account.logged-in .woocommerce-orders-table a.button {
  border: 1px solid var(--acct-border-strong) !important;
  color: var(--accent-gold) !important;
}
body.woocommerce-account.logged-in .woocommerce-orders-table .button:hover,
body.woocommerce-account.logged-in .woocommerce-orders-table a.button:hover {
  background: rgba(201, 168, 76, 0.08) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
}

/* --- Pagination ------------------------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-pagination .page-numbers {
  color: var(--acct-text-muted) !important;
  border: 1px solid var(--acct-border) !important;
}
body.woocommerce-account.logged-in .woocommerce-pagination .page-numbers:hover {
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
  background: rgba(201, 168, 76, 0.08) !important;
}
body.woocommerce-account.logged-in .woocommerce-pagination .page-numbers.current {
  background: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
  color: #ffffff !important;
}

/* --- Address blocks --------------------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-Address-title .edit {
  border: 1px solid var(--acct-border-strong) !important;
  color: var(--accent-gold) !important;
}
body.woocommerce-account.logged-in .woocommerce-Address-title .edit:hover {
  background: rgba(201, 168, 76, 0.08) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--accent-gold-bright) !important;
}
body.woocommerce-account.logged-in address {
  color: var(--acct-text) !important;
  background: var(--acct-inset) !important;
  border: 1px solid var(--acct-border) !important;
}

/* --- Forms inside content card ---------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form label,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form label,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form-row label {
  color: var(--acct-text-muted) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="text"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="email"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="password"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="tel"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="url"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="number"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="date"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form select,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form textarea,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.edit-account input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-EditAccountForm input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-address-fields input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-address-fields select,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Input--text {
  background: #ffffff !important;
  border: 1px solid var(--acct-border-strong) !important;
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input::placeholder,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form input::placeholder,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form textarea::placeholder {
  color: var(--acct-text-muted) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input:hover,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form input:hover,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form select:hover,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form textarea:hover {
  border-color: var(--accent-gold-dim) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input:focus,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form select:focus,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form textarea:focus,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form input:focus,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form select:focus,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form textarea:focus {
  border-color: var(--brand-blue) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.18) !important;
}
/* Date input native picker icon reads better in light mode here */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input[type="date"] {
  color-scheme: light;
}
/* Edit-account fieldsets */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.edit-account fieldset,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset {
  border: 1px solid var(--acct-border) !important;
  background: var(--acct-inset) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.edit-account em,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-EditAccountForm em {
  color: var(--acct-text-muted) !important;
}

/* --- Notices inside content card -------------------------------------- */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-message,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content ul.woocommerce-error {
  background: #ffffff !important;
  border: 1px solid var(--acct-border) !important;
  color: var(--acct-text) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-message {
  border-left-color: var(--accent-gold) !important;
  background: rgba(201, 168, 76, 0.06) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info {
  border-left-color: var(--brand-blue) !important;
  background: rgba(26, 49, 120, 0.04) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-error,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content ul.woocommerce-error {
  border-left-color: var(--heritage-red) !important;
  background: rgba(197, 51, 58, 0.04) !important;
  color: var(--heritage-red) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-message a,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-info a {
  color: var(--accent-gold) !important;
}

/* --- Plugin / custom endpoint blocks inside content ------------------- */
/* Service Verification widget (NGS-172) — was tuned for dark cards */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget p {
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget b,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget strong {
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget__footer {
  border-color: var(--acct-border) !important;
  color: var(--acct-text-muted) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-service-verification__status--verified {
  color: var(--accent-gold) !important;
}

/* Advanced Loyalty (My Syndicate Points) + WebToffee My Coupons:
   broad light-theme catch-all for plugin-injected text/borders/inputs that
   render inside the content card. Keeps gold accents, flips dark text/bg. */
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .acfw,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .acfw-,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .lpfw,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"],
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt-"] {
  color: var(--acct-text);
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] h1,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] h2,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] h3,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] h4,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] h1,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] h2,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] h3,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] h4,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon h1,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon h2,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon h3,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon h4 {
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] table,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] table,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table {
  background: var(--acct-surface-muted) !important;
  border: 1px solid var(--acct-border) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] table th,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] table th,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table th,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table th {
  color: var(--acct-text-muted) !important;
  background: #ffffff !important;
  border-bottom: 1px solid var(--acct-border) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] table td,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] table td,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table td,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table td {
  color: var(--acct-text) !important;
  border-bottom: 1px solid var(--acct-border) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] select,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] textarea,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] select,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] textarea,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon select,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] input,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] select {
  background: #ffffff !important;
  border: 1px solid var(--acct-border-strong) !important;
  color: var(--acct-text) !important;
}
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] a,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] a,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon a,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] a {
  color: var(--accent-gold);
}

/* Mobile (≤768px) ---------------------------------------------------------- */
@media (max-width: 768px) {
  body.woocommerce-account .site-content,
  body.woocommerce-account #content {
    padding-top: 56px !important;
    padding-bottom: 72px !important;
  }
  body.woocommerce-account .site-main {
    padding: 0 20px;
  }
  body.woocommerce-account .page-title,
  body.woocommerce-account h1.entry-title,
  body.woocommerce-account .entry-header .entry-title {
    margin-bottom: 36px !important;
  }
  body.woocommerce-account.logged-out #customer_login,
  body.woocommerce-account .u-columns.col2-set,
  body.woocommerce-account .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  body.woocommerce-account #customer_login > div,
  body.woocommerce-account .woocommerce-MyAccount-content,
  body.woocommerce-account .woocommerce-MyAccount-navigation,
  body.woocommerce-account form.lost_reset_password {
    padding: 28px 22px !important;
  }
  body.woocommerce-account #customer_login h2 {
    font-size: 26px !important;
    margin-bottom: 24px !important;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation {
    position: static;
    margin: 0 0 20px;
    padding: 8px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 6px;
    padding: 4px;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation a {
    border-left: 0 !important;
    border-bottom: 2px solid transparent;
    border-radius: 6px;
    padding: 10px 16px;
    white-space: nowrap;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    border-left: 0 !important;
    border-bottom-color: var(--accent-gold) !important;
  }

  /* Mobile order tables — collapse to card list */
  body.woocommerce-account .woocommerce-orders-table {
    display: block;
    border: 0;
    background: transparent;
  }
  body.woocommerce-account .woocommerce-orders-table thead {
    display: none;
  }
  body.woocommerce-account .woocommerce-orders-table tbody,
  body.woocommerce-account .woocommerce-orders-table tr {
    display: block;
  }
  body.woocommerce-account .woocommerce-orders-table tr {
    margin-bottom: 14px;
    border: 1px solid var(--white-12);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.2);
    padding: 8px 14px;
  }
  body.woocommerce-account .woocommerce-orders-table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 0 !important;
    border-bottom: 1px solid var(--white-12) !important;
  }
  body.woocommerce-account .woocommerce-orders-table tbody td:last-child {
    border-bottom: 0 !important;
  }
  body.woocommerce-account .woocommerce-orders-table tbody td::before {
    content: attr(data-title);
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--accent-gold);
  }
}

/* Reduced motion — respect user preference */
@media (prefers-reduced-motion: reduce) {
  body.woocommerce-account #customer_login > div,
  body.woocommerce-account .woocommerce-form-login__submit,
  body.woocommerce-account .woocommerce-form-register__submit,
  body.woocommerce-account .woocommerce-MyAccount-navigation a {
    transition: none !important;
  }
  body.woocommerce-account #customer_login > div:hover {
    transform: none !important;
  }
}
/* === Sitewide hard-gate additions ============================================
   Top notice paragraph above the Login + Register cards, plus styling for the
   new register form fields that the existing input rules don't cover:
     - <input type="date"> (calendar picker icon needs color-scheme: dark)
     - <select> chevron (existing rule strips appearance, leaving no caret)
     - 21+ confirmation checkbox row
     - First/Last name two-column pair on the register form
   Renders only on /my-account/ thanks to body.woocommerce-account scope.
   ============================================================================ */

/* ============================================================================
   Cookie consent banner — NGS-194
   Fixed bottom bar; pairs with mu-plugins/nexgen-cookie-consent.php
   ============================================================================ */

body.ngs-cookie-consent-visible {
  padding-bottom: clamp(120px, 18vw, 160px) !important;
}

.nexgen-cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  background: var(--midnight);
  border-top: 1px solid var(--accent-gold-dim);
  box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45);
  padding: 16px clamp(16px, 3vw, 32px);
  animation: ngsCookieConsentIn 0.35s var(--ease-standard, ease) both;
}

@keyframes ngsCookieConsentIn {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nexgen-cookie-consent {
    animation: none;
  }
}

.nexgen-cookie-consent__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px 28px;
  flex-wrap: wrap;
}

.nexgen-cookie-consent__text {
  flex: 1 1 320px;
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--white-60);
}

.nexgen-cookie-consent__text a {
  color: var(--accent-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.nexgen-cookie-consent__text a:hover,
.nexgen-cookie-consent__text a:focus {
  color: var(--accent-gold-bright);
}

.nexgen-cookie-consent__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  appearance: none !important;
  width: auto !important;
  min-height: 44px !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  padding: 11px 22px !important;
  box-shadow: none !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: background var(--dur-micro, 0.15s) ease,
              border-color var(--dur-micro, 0.15s) ease,
              color var(--dur-micro, 0.15s) ease;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn--reject {
  background: transparent !important;
  background-color: transparent !important;
  border-color: var(--white-30) !important;
  color: var(--white-90) !important;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn--reject:hover,
.nexgen-cookie-consent .nexgen-cookie-consent__btn--reject:focus {
  border-color: var(--white-60) !important;
  background: var(--white-06) !important;
  background-color: var(--white-06) !important;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn--accept {
  background: var(--charcoal) !important;
  background-color: var(--charcoal) !important;
  border-color: var(--charcoal) !important;
  color: var(--white) !important;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn--accept:hover,
.nexgen-cookie-consent .nexgen-cookie-consent__btn--accept:focus {
  background: var(--deep-navy) !important;
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
}

.nexgen-cookie-consent .nexgen-cookie-consent__btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

@media (max-width: 640px) {
  body.ngs-cookie-consent-visible {
    padding-bottom: clamp(88px, 20vw, 110px) !important;
  }

  .nexgen-cookie-consent {
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
  }

  .nexgen-cookie-consent__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .nexgen-cookie-consent__text {
    flex: none;
    font-size: 13px;
    line-height: 1.45;
  }

  .nexgen-cookie-consent__actions {
    width: 100%;
    flex-direction: row;
    gap: 10px;
  }

  .nexgen-cookie-consent .nexgen-cookie-consent__btn {
    flex: 1 1 0;
    width: auto !important;
    padding: 10px 12px !important;
    font-size: 11px !important;
    text-align: center;
  }
}

/* Top notice — Tier 1b Cormorant display, centered above both cards */
body.woocommerce-account .nexgen-gate-notice {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  font-style: normal !important;
  font-size: clamp(20px, 2.4vw, 26px) !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  color: var(--white-90) !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 720px !important;
  margin: 0 auto 48px !important;
  padding: 0 !important;
  align-self: center !important;
  box-sizing: border-box !important;
}

/* Date input — match the dark input spec and force the native calendar picker
   icon to render in light mode rather than the default black-on-dark look */
body.woocommerce-account .woocommerce-form input[type="date"] {
  width: 100% !important;
  background: var(--white-06) !important;
  border: 1px solid var(--white-12) !important;
  border-radius: 8px !important;
  padding: 13px 16px !important;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--white-90) !important;
  color-scheme: dark;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color var(--dur-micro) var(--ease-standard),
              box-shadow var(--dur-micro) var(--ease-standard),
              background var(--dur-micro) var(--ease-standard);
}
body.woocommerce-account .woocommerce-form input[type="date"]:hover {
  border-color: var(--white-30) !important;
}
body.woocommerce-account .woocommerce-form input[type="date"]:focus {
  border-color: var(--brand-blue) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 0 0 3px rgba(26, 49, 120, 0.4) !important;
}
body.woocommerce-account .woocommerce-form input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1) opacity(0.6);
  cursor: pointer;
}

/* Select chevron — existing rule already strips appearance; add the caret back */
body.woocommerce-account .woocommerce-form select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23C9A84C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='1.5 1.5 6 6 10.5 1.5'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 12px 8px !important;
  padding-right: 44px !important;
  cursor: pointer;
}
body.woocommerce-account .woocommerce-form select option {
  background: var(--deep-navy);
  color: var(--white-90);
}

/* First Name + Last Name pair — two columns on the register form only.
   The earlier rule at line ~12358 forces every form-row to width:100% which
   defeats WC's stock --first/--last float layout. Restore a 16px two-column
   grid for the register name pair, scoped via :has() so login is unaffected. */
body.woocommerce-account form.woocommerce-form-register {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  column-gap: 16px;
  row-gap: 0;
}
body.woocommerce-account form.woocommerce-form-register > * {
  grid-column: 1 / -1;
}
body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-first-name {
  grid-column: 1 / 2;
}
body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-last-name {
  grid-column: 2 / 3;
}
/* Override WC stock .form-row-first/.form-row-last (width:48%; float) so the
   inputs fill their grid cell instead of getting squeezed to ~80px. */
body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-first-name,
body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-last-name {
  width: 100% !important;
  float: none !important;
}

/* 21+ confirmation checkbox row — flex layout matches the Login "Remember me"
   pattern and reuses the gold accent-color for the native checkbox */
body.woocommerce-account .nexgen-gate-row-age-confirm {
  margin: 6px 0 18px !important;
}
body.woocommerce-account .nexgen-gate-row-age-confirm label.checkbox {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  font-family: 'Azo Sans', 'Outfit', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--white-90) !important;
  cursor: pointer;
  margin: 0 !important;
}
body.woocommerce-account .nexgen-gate-row-age-confirm input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--accent-gold);
  cursor: pointer;
  flex-shrink: 0;
}
body.woocommerce-account .nexgen-gate-row-age-confirm span {
  color: var(--white-90) !important;
  font-family: inherit !important;
  font-size: inherit !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Mobile: stack First/Last name pair, tighten notice spacing */
@media (max-width: 600px) {
  body.woocommerce-account .nexgen-gate-notice {
    font-size: 18px !important;
    margin: 0 auto 32px !important;
    padding: 0 12px;
  }
  body.woocommerce-account form.woocommerce-form-register {
    grid-template-columns: 1fr;
  }
  body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-first-name,
  body.woocommerce-account form.woocommerce-form-register > .nexgen-gate-row-last-name {
    grid-column: 1 / -1;
  }
}
/* --- Tabbed single-card layout (Login OR Register, not both) --- */

/* Gate stack — WP core adds body.logged-in but NOT body.logged-out, so the
   old `.logged-out` scope never matched on Hello Elementor. When the login
   form is present, force a centered column so notice / tabs / card stack
   instead of sitting side-by-side. Logged-in dashboard keeps its own grid. */
body.woocommerce-account:has(#customer_login) .woocommerce {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
}

/* Reinforce logged-in grid after gate/login layout rules — desktop only. */
@media (min-width: 769px) {
  body.woocommerce-account.logged-in .woocommerce {
    display: grid !important;
    grid-template-columns: 240px 1fr;
    gap: 32px;
    align-items: start;
  }
}

/* ===========================================================================
   NGS — My Account mobile (logged-in, ≤768px)
   Placed after gate rules so display:block wins over desktop grid on mobile.
   =========================================================================== */
@media (max-width: 768px) {
  body.woocommerce-account.logged-in .site-main,
  body.woocommerce-account.logged-in .page-content {
    overflow-x: clip;
    max-width: 100%;
  }

  body.woocommerce-account.logged-in .woocommerce {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
  }

  /* Page title + card spacing — tighten dark gap above light surfaces */
  body.woocommerce-account.logged-in .site-content,
  body.woocommerce-account.logged-in #content {
    padding-top: 48px !important;
  }

  body.woocommerce-account.logged-in .page-title,
  body.woocommerce-account.logged-in h1.entry-title,
  body.woocommerce-account.logged-in .entry-header .entry-title {
    font-size: clamp(26px, 7vw, 34px) !important;
    text-wrap: balance;
    margin: 0 0 24px !important;
  }

  body.woocommerce-account.logged-in .page-title::after,
  body.woocommerce-account.logged-in h1.entry-title::after,
  body.woocommerce-account.logged-in .entry-header .entry-title::after {
    margin-top: 14px;
  }

  body.woocommerce-account.logged-in .woocommerce {
    margin-top: -8px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    position: static;
    margin: 0;
    padding: 8px 12px 0 !important;
    border-radius: 12px 12px 0 0;
    border-bottom: 1px solid var(--acct-border) !important;
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.6) inset,
      0 8px 24px rgba(0, 0, 0, 0.12);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    margin-top: 0;
    padding: 24px 18px !important;
    overflow-x: clip;
    border-radius: 0 0 12px 12px;
    border-top: 0 !important;
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.8) inset,
      0 8px 24px rgba(0, 0, 0, 0.12);
  }

  /* Horizontal nav strip */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 4px;
    padding: 4px 8px 8px;
    mask-image: linear-gradient(to right, transparent, #000 16px, #000 calc(100% - 16px), transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 16px, #000 calc(100% - 16px), transparent);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
    border-left: 0 !important;
    border-bottom: 2px solid transparent;
    border-radius: 6px 6px 0 0;
    padding: 10px 12px;
    min-height: 44px;
    white-space: nowrap;
    gap: 0;
    font-size: 12px !important;
    letter-spacing: 0.6px !important;
    color: var(--acct-text-muted) !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a::before {
    display: none !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a {
    border-left: 0 !important;
    border-bottom: 2px solid var(--accent-gold) !important;
    background-color: rgba(201, 168, 76, 0.12) !important;
    color: var(--acct-text) !important;
    font-weight: 600 !important;
  }

  /* Dashboard greeting + readable body links on white */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content > p:first-of-type {
    text-wrap: pretty;
    color: var(--acct-text-muted) !important;
    margin-bottom: 20px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content > p:first-of-type strong {
    color: var(--acct-text) !important;
    font-weight: 600;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content > p:first-of-type strong::after {
    content: '\A';
    white-space: pre;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content p a,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content li a:not(.button):not(.woocommerce-Button) {
    color: var(--brand-blue) !important;
    text-decoration-color: rgba(26, 49, 120, 0.35);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content p a:hover,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content li a:not(.button):not(.woocommerce-Button):hover {
    color: #152663 !important;
    text-decoration-color: var(--brand-blue);
  }

  /* Content typography */

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content h2 {
    font-size: clamp(22px, 5vw, 26px) !important;
    text-wrap: balance;
    margin-bottom: 20px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content h3 {
    font-size: clamp(18px, 4.5vw, 22px) !important;
    text-wrap: balance;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content p,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content li {
    font-size: 15px !important;
  }

  /* Order tables — card list v2 (designed summary cards, not label rows) */
  body.woocommerce-account.logged-in .woocommerce-orders-table,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders,
  body.woocommerce-account.logged-in table.account-orders-table {
    display: block;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table thead,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders thead,
  body.woocommerce-account.logged-in table.account-orders-table thead {
    display: none;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table tbody,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders tbody,
  body.woocommerce-account.logged-in table.account-orders-table tbody {
    display: block;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table tr,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders tr,
  body.woocommerce-account.logged-in table.account-orders-table tr {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "order-status order-number"
      "order-date order-date"
      "order-total order-total"
      "order-actions order-actions";
    gap: 0;
    margin-bottom: 14px;
    border: 1px solid var(--acct-border) !important;
    border-left: 1px solid var(--acct-border) !important;
    border-radius: 8px;
    background: var(--acct-surface-muted) !important;
    padding: 14px 16px 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table tbody td,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders tbody td,
  body.woocommerce-account.logged-in table.account-orders-table tbody td {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 !important;
    border-bottom: 0 !important;
    color: var(--acct-text) !important;
    font-variant-numeric: tabular-nums;
  }

  /* Hide responsive-table field labels — card hierarchy replaces them */
  body.woocommerce-account.logged-in .woocommerce-orders-table tbody td::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders tbody td::before,
  body.woocommerce-account.logged-in table.account-orders-table tbody td::before {
    content: none !important;
    display: none !important;
  }

  /* Header row: status (left) + order number (right) */
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status {
    grid-area: order-status;
    justify-content: flex-start !important;
    align-self: center;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding-bottom: 6px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status::before {
    content: '' !important;
    display: inline-block !important;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 8px;
    flex: 0 0 auto;
    background: var(--accent-gold);
    box-shadow: none;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status:has(.status-completed)::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status:has(.status-completed)::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status:has(.status-completed)::before {
    background: #2d6a4f;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status:has(.status-cancelled)::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status:has(.status-cancelled)::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status:has(.status-cancelled)::before,
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status:has(.status-failed)::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status:has(.status-failed)::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status:has(.status-failed)::before {
    background: #8a8580;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status:has(.status-processing)::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status:has(.status-processing)::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status:has(.status-processing)::before,
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status:has(.status-on-hold)::before,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status:has(.status-on-hold)::before,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status:has(.status-on-hold)::before {
    background: var(--accent-gold);
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-status mark.order-status,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status mark.order-status,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-status mark.order-status {
    background: transparent !important;
    color: inherit !important;
    font: inherit !important;
    padding: 0 !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-number,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-number {
    grid-area: order-number;
    justify-content: flex-end !important;
    align-self: center;
    font-family: 'Outfit', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--acct-text-muted) !important;
    padding-bottom: 6px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-number a,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number a,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-number a {
    color: var(--acct-text-muted) !important;
    text-decoration: none !important;
  }

  /* Date subtitle */
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-date,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-date,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-date {
    grid-area: order-date;
    justify-content: flex-start !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    color: var(--acct-text-muted) !important;
    padding-bottom: 10px !important;
  }

  /* Total summary line */
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-total,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-total {
    grid-area: order-total;
    justify-content: flex-start !important;
    flex-wrap: wrap;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    padding-bottom: 12px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--acct-text) !important;
    margin-right: 4px;
  }

  /* CTA zone — no label, divider above button */
  body.woocommerce-account.logged-in .woocommerce-orders-table__cell-order-actions,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-orders-table__cell-order-actions,
  body.woocommerce-account.logged-in .woocommerce-orders-table tbody td.order-actions,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders tbody td.order-actions,
  body.woocommerce-account.logged-in table.account-orders-table tbody td.order-actions {
    grid-area: order-actions;
    flex-direction: column;
    align-items: stretch;
    padding-top: 12px !important;
    margin-top: 0;
    border-top: 1px solid var(--acct-border) !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table .woocommerce-Price-amount,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .woocommerce-Price-amount,
  body.woocommerce-account.logged-in table.account-orders-table .woocommerce-Price-amount {
    font-variant-numeric: tabular-nums;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table .button,
  body.woocommerce-account.logged-in .woocommerce-orders-table a.button,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .button,
  body.woocommerce-account.logged-in table.account-orders-table .button {
    display: block !important;
    width: 100% !important;
    min-height: 48px;
    padding: 12px 16px !important;
    text-align: center;
    box-sizing: border-box;
    border-radius: 8px !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    background: var(--brand-blue) !important;
    border: 1px solid var(--brand-blue) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    box-shadow: none !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table .button:hover,
  body.woocommerce-account.logged-in .woocommerce-orders-table a.button:hover,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .button:hover,
  body.woocommerce-account.logged-in table.account-orders-table .button:hover {
    background: #152663 !important;
    border-color: #152663 !important;
    color: #ffffff !important;
  }

  body.woocommerce-account.logged-in .woocommerce-orders-table .button:active,
  body.woocommerce-account.logged-in .woocommerce-orders-table a.button:active,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .button:active,
  body.woocommerce-account.logged-in table.account-orders-table .button:active {
    transform: scale(0.96);
  }

  body.woocommerce-account.logged-in .woocommerce-pagination ul.page-numbers {
    justify-content: center;
    flex-wrap: wrap;
  }

  body.woocommerce-account.logged-in .woocommerce-pagination .page-numbers {
    min-width: 44px;
    min-height: 44px;
  }

  /* Addresses */
  body.woocommerce-account.logged-in .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-Address {
    border: 1px solid var(--acct-border);
    border-radius: 8px;
    padding: 16px;
    background: var(--acct-surface-muted);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  body.woocommerce-account.logged-in .woocommerce-Address-title {
    margin-bottom: 12px !important;
  }

  body.woocommerce-account.logged-in .woocommerce-Address-title .edit {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 44px;
    margin-top: 12px !important;
    padding: 10px 16px !important;
    box-sizing: border-box;
    text-align: center;
  }

  body.woocommerce-account.logged-in address {
    width: 100%;
    box-sizing: border-box;
    font-style: normal;
    line-height: 1.6;
  }

  /* Forms */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form input,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form select,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-form textarea,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form input,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form select,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form textarea {
    width: 100% !important;
    min-height: 48px;
    padding: 14px 16px !important;
    box-sizing: border-box;
    border-radius: 8px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.edit-account fieldset,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form.woocommerce-EditAccountForm fieldset {
    width: 100%;
    padding: 20px 16px !important;
    margin-bottom: 20px;
    border-radius: 8px;
    box-sizing: border-box;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content form fieldset legend {
    font-family: 'Outfit', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    color: var(--accent-gold) !important;
    padding: 0 8px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content button.button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"] {
    width: 100% !important;
    min-height: 48px;
    border-radius: 8px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content button.button:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Button:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"]:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button:active {
    transform: scale(0.96);
  }

  /* Loyalty / ACFW React app + Ant Design tabs */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content #lpfw_my_points_app,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .antd-app-wrapper,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"],
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] {
    max-width: 100%;
    overflow-x: clip;
    background: transparent !important;
  }

  /* Kill floating white-square artifacts from Ant tabs nav overflow / edge masks */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-operations,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-operations-hidden,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-more {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    pointer-events: none !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-wrap::before,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-wrap::after {
    display: none !important;
    box-shadow: none !important;
    opacity: 0 !important;
    width: 0 !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav {
    max-width: 100%;
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-nav-list {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 4px;
    max-width: 100%;
    padding-bottom: 2px;
    mask-image: linear-gradient(to right, transparent, #000 12px, #000 calc(100% - 12px), transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12px, #000 calc(100% - 12px), transparent);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-tab {
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 10px 12px !important;
    min-height: 44px;
    font-family: 'Outfit', sans-serif !important;
    font-size: 12px !important;
    letter-spacing: 0.4px;
    color: var(--acct-text-muted) !important;
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-tab-active .ant-tabs-tab-btn {
    color: var(--acct-text) !important;
    font-weight: 600 !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-ink-bar {
    height: 2px !important;
    background: var(--accent-gold) !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-content,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-tabs-tabpane {
    max-width: 100%;
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px;
    margin: 0 !important;
    max-width: 100%;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-col,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-col-11,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-col-1 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-redeem .form-wrap,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-wrap {
    max-width: 100%;
    padding: 16px;
    border: 1px solid var(--acct-border);
    border-radius: 8px;
    background: var(--acct-surface-muted);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .equal-sign {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: auto !important;
    padding: 0 !important;
    font-size: 18px;
    font-weight: 600;
    color: var(--acct-text-muted);
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .min-max-points-desc,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-worth-text,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-expiry-text,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .expiry-note {
    font-size: 13px !important;
    line-height: 1.5 !important;
    color: var(--acct-text-muted) !important;
    text-wrap: pretty;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-balance {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--acct-border);
    border-radius: 8px;
    background: var(--acct-surface-muted);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .view-store-credits-link {
    display: block !important;
    width: 100%;
    margin-top: 12px !important;
    text-align: center;
    font-size: 14px !important;
    color: var(--brand-blue) !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] nav,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] ul[class*="nav"],
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] nav,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] ul[class*="nav"],
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .acfw-nav,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .lpfw-nav {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    max-width: 100%;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--acct-border);
    mask-image: linear-gradient(to right, transparent, #000 12px, #000 calc(100% - 12px), transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12px, #000 calc(100% - 12px), transparent);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] form,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] form,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-redeem form {
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] input,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] input,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] select,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] select,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-redeem input {
    width: 100% !important;
    max-width: 100%;
    min-height: 48px;
    padding: 14px 16px !important;
    box-sizing: border-box;
    border-radius: 8px;
    font-variant-numeric: tabular-nums;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] .button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] .button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-redeem button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-btn {
    width: 100% !important;
    min-height: 48px;
    box-sizing: border-box;
    border-radius: 8px;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] button:disabled,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] button:disabled,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-redeem button:disabled,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-btn:disabled,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-btn-disabled {
    background: var(--acct-inset) !important;
    border-color: var(--acct-border) !important;
    color: var(--acct-text-muted) !important;
    opacity: 1 !important;
    cursor: not-allowed;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] button:active:not(:disabled),
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] button:active:not(:disabled),
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-btn:active:not(:disabled) {
    transform: scale(0.96);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .lpfw-responsive-table,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .user-points-history table,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .user-coupons table {
    display: block;
    width: 100% !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* WebToffee coupons — card list */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt_coupon_wrapper,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-mycoupons,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-used-coupons,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] {
    max-width: 100%;
    overflow-x: clip;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table {
    display: block;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table thead,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table thead {
    display: none;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table tbody,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table tr,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table tbody,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table tr {
    display: block;
    width: 100%;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table tr,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table tr {
    margin-bottom: 12px;
    padding: 14px 16px;
    border: 1px solid var(--acct-border) !important;
    border-radius: 8px;
    background: var(--acct-surface-muted) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon table td,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] table td {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0 !important;
    border: 0 !important;
    font-variant-numeric: tabular-nums;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon code,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="wt_sc"] code,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wt-smart-coupon .coupon-code {
    font-family: ui-monospace, 'SF Mono', Menlo, monospace;
    font-size: 13px;
    padding: 4px 10px;
    border-radius: 6px;
    background: var(--acct-inset);
    border: 1px solid var(--acct-border);
    letter-spacing: 0.5px;
  }

  /* Service verification */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-service-verification,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget {
    max-width: 100%;
    overflow-x: clip;
    font-size: 15px !important;
    line-height: 1.65 !important;
    text-wrap: pretty;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-service-verification button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-service-verification .button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-vfyps-widget input[type="submit"] {
    width: 100% !important;
    min-height: 48px;
    margin-top: 12px;
  }

  /* Micro-polish — typography, numerals, motion */
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content h2,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content h3,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title h2,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
    text-wrap: balance;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content p,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content li,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .nexgen-service-verification p {
    text-wrap: pretty;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Price-amount,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content time,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .points-balance,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .user-points-history td {
    font-variant-numeric: tabular-nums;
  }

  body.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Button,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation a {
    transition: transform 0.12s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content button.button:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .woocommerce-Button:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"]:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button:active,
  body.woocommerce-account.logged-in .woocommerce-orders-table .button:active,
  body.woocommerce-account.logged-in .woocommerce-orders-table a.button:active,
  body.woocommerce-account.logged-in table.woocommerce-MyAccount-orders .button:active,
  body.woocommerce-account.logged-in table.account-orders-table .button:active,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="acfw"] button:active:not(:disabled),
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content [class*="lpfw"] button:active:not(:disabled),
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .ant-btn:active:not(:disabled) {
    transform: none !important;
  }
}

/* Collapse the two-column grid into a single centered column.
   Prefer :has(#customer_login) — `.logged-out` is unreliable on this theme. */
body.woocommerce-account:has(#customer_login) #customer_login,
body.woocommerce-account.logged-out #customer_login,
body.woocommerce-account .u-columns.col2-set {
  display: block !important;
  width: 100% !important;
  max-width: 520px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  float: none !important;
}
body.woocommerce-account:has(#customer_login) #customer_login > div,
body.woocommerce-account.logged-out #customer_login > div,
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2 {
  margin: 0 auto !important;
  max-width: 520px;
  width: 100% !important;
  float: none !important;
}

/* Visibility switch: default = Login visible, Register hidden.
   `.gate-show-register` on body flips it. */
body.woocommerce-account .u-column2,
body.woocommerce-account #customer_login .col-2 {
  display: none !important;
}
body.woocommerce-account.gate-show-register .u-column1,
body.woocommerce-account.gate-show-register #customer_login .col-1 {
  display: none !important;
}
body.woocommerce-account.gate-show-register .u-column2,
body.woocommerce-account.gate-show-register #customer_login .col-2 {
  display: block !important;
}

/* The tab strip itself */
/* NGS-172 — Service Verification (My Account endpoint) */
body.woocommerce-account .nexgen-service-verification {
  max-width: 720px;
  margin: 0 auto;
}
body.woocommerce-account .nexgen-service-verification__status--verified {
  color: var(--accent-gold, #c9a84c);
  font-weight: 600;
}
body.woocommerce-account .nexgen-service-verification__widget {
  margin-top: 24px;
}

body.woocommerce-account .nexgen-vfyps-widget {
  color: var(--off-white, rgba(255, 255, 255, 0.9));
  font-family: 'Outfit', sans-serif;
  font-size: 15px;
  line-height: 1.65;
}
body.woocommerce-account .nexgen-vfyps-widget p {
  color: var(--off-white, rgba(255, 255, 255, 0.9));
}
body.woocommerce-account .nexgen-vfyps-widget b,
body.woocommerce-account .nexgen-vfyps-widget strong {
  color: var(--white, #ffffff);
  font-weight: 600;
}
body.woocommerce-account .nexgen-vfyps-widget ul {
  margin: 12px 0 0;
  padding-left: 1.25rem;
}
body.woocommerce-account .nexgen-vfyps-widget li {
  margin-bottom: 8px;
}
body.woocommerce-account .nexgen-vfyps-widget a {
  color: var(--accent-gold, #c9a84c);
  text-decoration: underline;
  text-decoration-color: var(--accent-gold-dim, rgba(201, 168, 76, 0.5));
  text-underline-offset: 3px;
}
body.woocommerce-account .nexgen-vfyps-widget a:hover {
  color: var(--accent-gold-bright, #dc9814);
  text-decoration-color: var(--accent-gold, #c9a84c);
}
body.woocommerce-account .nexgen-vfyps-widget__footer {
  border-color: var(--white-12, rgba(255, 255, 255, 0.12)) !important;
  color: var(--white-60, rgba(255, 255, 255, 0.6));
}

/* NGS-172 — Cart / checkout service-member promo (light email-style card) */
.nexgen-service-cart-nudge {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
  background: var(--cream, #F5F5F0) !important;
  color: var(--near-black, #1C1A17) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  margin: 0 0 12px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05) !important;
}
.nexgen-service-cart-nudge__body {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.nexgen-service-cart-nudge__eyebrow {
  display: inline !important;
  margin: 0 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: var(--accent-gold, #C9A84C) !important;
}
.nexgen-service-cart-nudge__eyebrow::after {
  content: " · " !important;
  color: var(--warm-gray, #8A8580) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.nexgen-service-cart-nudge__msg {
  margin: 0 !important;
  color: var(--near-black, #1C1A17) !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}
.nexgen-service-cart-nudge__msg strong {
  color: var(--accent-gold, #C9A84C) !important;
  font-weight: 600 !important;
}
.nexgen-service-cart-nudge__fine {
  margin: 4px 0 0 !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  color: var(--warm-gray, #8A8580) !important;
}
.nexgen-service-cart-nudge__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  background: var(--brand-blue, #1A3178) !important;
  color: var(--white, #FFFFFF) !important;
  border: 1px solid var(--brand-blue, #1A3178) !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.2px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(26, 49, 120, 0.2) !important;
  transition: all 0.25s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.nexgen-service-cart-nudge__btn:hover {
  background-color: var(--deep-navy, #0A1628) !important;
  border-color: var(--deep-navy, #0A1628) !important;
  color: var(--white, #FFFFFF) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(10, 22, 40, 0.24) !important;
}
body.woocommerce-account .nexgen-service-verify-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  background: var(--brand-blue) !important;
  color: var(--white) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  padding: 12px 24px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
  transition: all 0.25s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  width: auto !important;
  min-width: 150px !important;
}
body.woocommerce-account .nexgen-service-verify-btn:hover {
  background-color: var(--deep-navy) !important;
  border-color: var(--accent-gold-dim) !important;
  color: var(--white) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35), 0 0 16px var(--accent-gold-glow) !important;
}
body.woocommerce-cart .wc-proceed-to-checkout .nexgen-service-cart-nudge {
  margin-bottom: 12px !important;
}
@media (min-width: 480px) {
  .nexgen-service-cart-nudge {
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
  }
  .nexgen-service-cart-nudge__btn {
    width: auto !important;
    min-width: 0 !important;
    max-width: 42% !important;
    flex-shrink: 0 !important;
    padding: 8px 10px !important;
    font-size: 10px !important;
    letter-spacing: 1px !important;
  }
}
@media (max-width: 428px) {
  .nexgen-service-cart-nudge {
    padding: 9px 10px !important;
  }
  .nexgen-service-cart-nudge__msg {
    font-size: 12px !important;
  }
  .nexgen-service-cart-nudge__fine {
    font-size: 10px !important;
  }
}

body.woocommerce-account .nexgen-gate-tabs {
  display: flex !important;
  justify-content: center !important;
  align-items: baseline !important;
  gap: 32px;
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 auto 36px !important;
  padding: 0 !important;
  border: 0 !important;
  box-sizing: border-box !important;
  align-self: center !important;
}
body.woocommerce-account .nexgen-gate-tab {
  flex: 0 0 auto;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  padding: 8px 4px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: var(--white-30);
  cursor: pointer;
  position: relative;
  transition: color var(--dur-micro) var(--ease-standard);
}
body.woocommerce-account .nexgen-gate-tab:hover {
  color: var(--white-60);
}
body.woocommerce-account .nexgen-gate-tab.is-active {
  color: var(--white) !important;
}
body.woocommerce-account .nexgen-gate-tab.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-gold), transparent);
}

/* Hide the inner card titles ("Login" / "Register" h2) — the tab strip is
   now the visible heading. Keep them in DOM for screen readers. The host
   theme doesn't add body.logged-out, so scope by #customer_login + columns. */
body.woocommerce-account #customer_login h2,
body.woocommerce-account .u-columns.col2-set h2,
body.woocommerce-account .u-column1 > h2,
body.woocommerce-account .u-column2 > h2 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Suppress the gold underline that the h2 rule painted */
body.woocommerce-account #customer_login h2::after {
  display: none !important;
}

/* Disable the card hover lift — it makes less sense on a centered single card */
body.woocommerce-account #customer_login > div:hover {
  transform: none !important;
  border-color: var(--white-12) !important;
  box-shadow: none !important;
}

/* Tab strip on mobile — keep size readable but trim spacing */
@media (max-width: 600px) {
  body.woocommerce-account .nexgen-gate-tabs {
    gap: 24px;
    margin: 0 auto 24px !important;
  }
  body.woocommerce-account .nexgen-gate-tab {
    font-size: 24px;
  }
}

/* === /Sitewide hard-gate additions ========================================= */

/* --- /My Account ---------------------------------------------------------- */

