/*
Theme Name: GnomeArms Tactical
Theme URI: https://gnomearms.com
Author: GnomeArms
Author URI: https://gnomearms.com
Description: A tactical firearms retail theme for GnomeArms.com featuring FFL Cockpit and FFL Checkout plugin integration. Built with a Green Tritium and Blaze Orange color scheme for a professional tactical aesthetic.
Version: 1.41.13
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
License URI: https://gnomearms.com/license
Text Domain: gnomearms
Tags: e-commerce, firearms, tactical, ffl, woocommerce, dark
WC requires at least: 7.0
WC tested up to: 9.0
*/

/* =============================================
   CSS CUSTOM PROPERTIES — GNOMEARMS TACTICAL
   ============================================= */

:root {
  /* Brand Colors */
  --tritium:        #AAFF00;   /* Green Tritium – neon sight glow          */
  --tritium-dim:    #6DB800;   /* Dimmed tritium for secondary use         */
  --tritium-dark:   #2A4800;   /* Deep tritium for subtle backgrounds      */
  --blaze:          #FF6200;   /* Blaze Orange – safety / highlight        */
  --blaze-hot:      #FF8C00;   /* Brighter blaze for hover states          */
  --blaze-dim:      #B34500;   /* Dimmed blaze for secondary use           */

  /* Neutrals / Dark Tactical */
  --black:          #090A07;   /* Near-black, slight green cast            */
  --dark-1:         #111410;   /* Primary surface                          */
  --dark-2:         #191C17;   /* Card / panel surface                     */
  --dark-3:         #21251F;   /* Elevated surface                         */
  --dark-4:         #2E3329;   /* Border / divider                         */
  --steel:          #4A5244;   /* Mid-grey with olive cast                 */
  --muted:          #8A9082;   /* Body text secondary                      */
  --light:          #D4D9CE;   /* Body text primary                        */
  --white:          #F0F4EC;   /* Near-white                               */

  /* Typography */
  --font-display:   'Bebas Neue', 'Barlow Condensed', sans-serif;
  --font-body:      'Barlow', 'Segoe UI', sans-serif;
  --font-condensed: 'Barlow Condensed', sans-serif;
  --font-mono:      'Courier Prime', 'Courier New', monospace;

  /* Spacing */
  --space-xs:   4px;
  --space-sm:   8px;
  --space-md:   16px;
  --space-lg:   24px;
  --space-xl:   40px;
  --space-2xl:  64px;
  --space-3xl:  96px;

  /* Layout */
  --container:      1280px;
  --container-wide: 1520px;
  --radius-sm:      3px;
  --radius-md:      6px;
  --radius-lg:      12px;
  --nav-height:     72px;
  --topbar-height:  36px;

  /* Effects */
  --glow-tritium:  0 0 8px rgba(170, 255, 0, 0.6), 0 0 20px rgba(170, 255, 0, 0.3);
  --glow-blaze:    0 0 8px rgba(255, 98, 0, 0.6),  0 0 20px rgba(255, 98, 0, 0.3);
  --shadow-card:   0 4px 24px rgba(0, 0, 0, 0.6), 0 1px 4px rgba(0,0,0,0.4);
  --shadow-float:  0 8px 48px rgba(0, 0, 0, 0.8);
  --transition:    0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =============================================
   RESET & BASE
   ============================================= */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-color: var(--dark-1);
  color: var(--light);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  min-height: 100vh;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(0,0,0,0.04) 2px,
      rgba(0,0,0,0.04) 4px
    );
  pointer-events: none;
  z-index: 0;
}

a {
  color: var(--tritium);
  text-decoration: none;
  transition: color var(--transition);
}
a:hover { color: var(--blaze); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--white);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 1rem; }

p { margin-bottom: var(--space-md); }
p:last-child { margin-bottom: 0; }

input, select, textarea, button {
  font-family: var(--font-body);
  font-size: 1rem;
}

/* =============================================
   UTILITY CLASSES
   ============================================= */

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--space-lg);
}

.container--wide {
  max-width: var(--container-wide);
}

.section { padding: var(--space-3xl) 0; }
.section--sm { padding: var(--space-2xl) 0; }

.text-tritium  { color: var(--tritium); }
.text-blaze    { color: var(--blaze); }
.text-muted    { color: var(--muted); }

.text-center   { text-align: center; }

.tag {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--radius-sm);
  background: var(--dark-4);
  color: var(--muted);
}
.tag--tritium {
  background: rgba(170,255,0,0.12);
  color: var(--tritium);
  border: 1px solid rgba(170,255,0,0.3);
}
.tag--blaze {
  background: rgba(255,98,0,0.12);
  color: var(--blaze);
  border: 1px solid rgba(255,98,0,0.3);
}
.tag--new   { background: var(--blaze);    color: var(--black); font-weight: 800; }
.tag--sale  { background: var(--tritium);  color: var(--black); font-weight: 800; }

/* =============================================
   BUTTONS
   ============================================= */

.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 28px;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.08);
  opacity: 0;
  transition: opacity var(--transition);
}
.btn:hover::before { opacity: 1; }

.btn--primary {
  background: var(--blaze);
  color: var(--black);
  border-color: var(--blaze);
}
.btn--primary:hover {
  background: var(--blaze-hot);
  border-color: var(--blaze-hot);
  color: var(--black);
  box-shadow: var(--glow-blaze);
  transform: translateY(-1px);
}

.btn--secondary {
  background: transparent;
  color: var(--tritium);
  border-color: var(--tritium);
}
.btn--secondary:hover {
  background: rgba(170,255,0,0.1);
  color: var(--tritium);
  box-shadow: var(--glow-tritium);
  transform: translateY(-1px);
}

.btn--ghost {
  background: transparent;
  color: var(--light);
  border-color: var(--dark-4);
}
.btn--ghost:hover {
  border-color: var(--steel);
  color: var(--white);
}

.btn--sm { padding: 8px 18px; font-size: 0.8rem; }
.btn--lg { padding: 16px 40px; font-size: 1.1rem; }
.btn--full { width: 100%; justify-content: center; }

/* =============================================
   GA PRODUCT CARD — CUSTOM LOOP TEMPLATE
   ============================================= */

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  writing-mode: horizontal-tb !important;
}

.ga-product-card {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex !important;
  flex-direction: column !important;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}

.ga-product-card:hover {
  border-color: var(--tritium);
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.5);
}

.ga-product-card__inner {
  display: block;
  text-decoration: none;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__image-wrap {
  position: relative;
  background: var(--dark-3);
  height: 180px;
  overflow: hidden;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__image {
  width: 100% !important;
  height: 180px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__badges {
  position: absolute;
  top: 8px;
  left: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  writing-mode: horizontal-tb !important;
}

.ga-badge {
  display: inline-block;
  padding: 2px 8px;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  writing-mode: horizontal-tb !important;
}

.ga-badge--sale     { background: var(--tritium); color: var(--black); }
.ga-badge--featured { background: var(--blaze); color: var(--black); }
.ga-badge--ffl      { background: var(--blaze-dim); color: var(--white); }

.ga-product-card__info {
  padding: 12px 14px 8px;
  flex: 1;
  display: flex;
  flex-direction: column;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__brand {
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--tritium);
  margin-bottom: 4px;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__title {
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--light) !important;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
}

.ga-product-card__stars {
  margin-bottom: 6px;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__price {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--tritium);
  margin-top: auto;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__price del {
  color: var(--muted);
  font-size: 0.85rem;
  margin-right: 6px;
}

.ga-product-card__price ins {
  text-decoration: none;
}

.ga-product-card__footer {
  padding: 0 14px 14px;
  writing-mode: horizontal-tb !important;
}

.ga-product-card__footer .button,
.ga-product-card__footer a.button,
.ga-add-to-cart-btn {
  display: block !important;
  width: 100% !important;
  padding: 10px 16px !important;
  text-align: center !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: nowrap !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--blaze) !important;
  color: var(--black) !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  transition: background var(--transition) !important;
  text-decoration: none !important;
}

.ga-product-card__footer .button:hover,
.ga-add-to-cart-btn:hover {
  background: var(--blaze-hot) !important;
  color: var(--black) !important;
}

/* =============================================
   WOOCOMMERCE PRODUCT LOOP / SHOP GRID
   ============================================= */

/* Product grid layout */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
}

/* Individual product card */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-md) !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  width: auto !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  transition: all var(--transition) !important;
  writing-mode: horizontal-tb !important;
}

.woocommerce ul.products li.product:hover {
  border-color: var(--tritium) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4) !important;
}

/* Product image */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
  width: 100% !important;
  height: 200px !important;
  object-fit: contain !important;
  object-position: center !important;
  background: var(--dark-3) !important;
  display: block !important;
  margin: 0 !important;
  writing-mode: horizontal-tb !important;
}

/* Product info area */
.woocommerce ul.products li.product .woocommerce-loop-product__link,
.woocommerce ul.products li.product > a:first-child {
  display: block !important;
  writing-mode: horizontal-tb !important;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: var(--light) !important;
  padding: 12px 14px 4px !important;
  margin: 0 !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-wrap: break-word !important;
  line-height: 1.3 !important;
}

/* Product price */
.woocommerce ul.products li.product .price {
  color: var(--tritium) !important;
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  padding: 4px 14px 10px !important;
  display: block !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}

.woocommerce ul.products li.product .price del {
  color: var(--muted) !important;
  font-size: 0.85rem !important;
  margin-right: 6px !important;
}

/* Add to Cart button */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button {
  display: block !important;
  width: calc(100% - 28px) !important;
  margin: 0 14px 14px !important;
  padding: 10px 16px !important;
  text-align: center !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  background: var(--blaze) !important;
  color: var(--black) !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  margin-top: auto !important;
}

.woocommerce ul.products li.product .button:hover {
  background: var(--blaze-hot) !important;
}

/* Sale badge */
.woocommerce ul.products li.product .onsale {
  background: var(--tritium) !important;
  color: var(--black) !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  border-radius: var(--radius-sm) !important;
  writing-mode: horizontal-tb !important;
}

/* Stars */
.woocommerce ul.products li.product .star-rating {
  padding: 0 14px 4px !important;
  writing-mode: horizontal-tb !important;
}

/* WooCommerce button override */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--blaze);
  color: var(--black);
  border: 2px solid var(--blaze);
  border-radius: var(--radius-sm);
  padding: 10px 24px;
  transition: all var(--transition);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: var(--blaze-hot);
  border-color: var(--blaze-hot);
  color: var(--black);
  box-shadow: var(--glow-blaze);
}
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--tritium);
  border-color: var(--tritium);
  color: var(--black);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: #c8ff00;
  border-color: #c8ff00;
  box-shadow: var(--glow-tritium);
}

/* =============================================
   TOPBAR
   ============================================= */

.site-topbar {
  height: var(--topbar-height);
  background: var(--black);
  border-bottom: 1px solid var(--dark-4);
  display: flex;
  align-items: center;
  font-size: 0.78rem;
  font-family: var(--font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  position: relative;
  z-index: 100;
}

.site-topbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  color: var(--muted);
}

.topbar-left a {
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.topbar-left a:hover { color: var(--tritium); }

.topbar-center {
  color: var(--tritium);
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: 0.72rem;
  text-align: center;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.topbar-right a {
  color: var(--muted);
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 5px;
}
.topbar-right a:hover { color: var(--blaze); }

/* =============================================
   NAVIGATION
   ============================================= */

.site-header {
  position: sticky;
  top: 0;
  z-index: 500;
  background: rgba(17, 20, 16, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--dark-4);
}

.site-header::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--tritium-dim), transparent);
  opacity: 0.5;
}

.header-inner {
  height: var(--nav-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-xl);
}

/* Logo */
.site-logo {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-shrink: 0;
  text-decoration: none;
}

.logo-mark {
  width: 48px;
  height: 48px;
  position: relative;
}

.logo-mark svg {
  width: 100%;
  height: 100%;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.logo-name {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
}

.logo-name span { color: var(--blaze); }

.logo-tagline {
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tritium);
  margin-top: 2px;
}

/* Primary nav */
.primary-nav {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: center;
}

.primary-nav ul {
  display: flex;
  align-items: center;
  gap: 2px;
}

.primary-nav > ul > li {
  position: relative;
}

.primary-nav > ul > li > a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--light);
  border-radius: var(--radius-sm);
  transition: all var(--transition);
}

.primary-nav > ul > li > a:hover,
.primary-nav > ul > li.current-menu-item > a,
.primary-nav > ul > li.current-menu-ancestor > a {
  color: var(--tritium);
  background: rgba(170,255,0,0.07);
}

.primary-nav > ul > li > a .nav-arrow {
  font-size: 0.65rem;
  transition: transform var(--transition);
  opacity: 0.6;
}

.primary-nav > ul > li:hover > a .nav-arrow {
  transform: rotate(180deg);
}

/* Dropdown */
.primary-nav .sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 240px;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-top: 2px solid var(--tritium);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  box-shadow: var(--shadow-float);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: all var(--transition);
  z-index: 600;
}

.primary-nav > ul > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.primary-nav .sub-menu li a {
  display: block;
  padding: 10px 18px;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--light);
  border-left: 2px solid transparent;
  transition: all var(--transition);
}

.primary-nav .sub-menu li a:hover {
  color: var(--tritium);
  border-left-color: var(--tritium);
  background: rgba(170,255,0,0.05);
  padding-left: 22px;
}

.primary-nav .sub-menu li + li {
  border-top: 1px solid var(--dark-4);
}

/* Header actions */
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-shrink: 0;
}

.header-search-toggle,
.header-account,
.header-ffl-cockpit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  color: var(--muted);
  cursor: pointer;
  transition: all var(--transition);
  text-decoration: none;
  font-size: 1rem;
}

.header-search-toggle:hover,
.header-account:hover {
  color: var(--tritium);
  border-color: var(--tritium);
  background: rgba(170,255,0,0.07);
  box-shadow: var(--glow-tritium);
}

.header-ffl-cockpit {
  background: rgba(255,98,0,0.1);
  border-color: rgba(255,98,0,0.3);
  color: var(--blaze);
  width: auto;
  padding: 0 16px;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  gap: 6px;
}

.header-ffl-cockpit:hover {
  background: var(--blaze);
  color: var(--black);
  border-color: var(--blaze);
  box-shadow: var(--glow-blaze);
}

.cart-icon-wrap {
  position: relative;
}

.cart-count {
  position: absolute;
  top: -6px;
  right: -6px;
  background: var(--blaze);
  color: var(--black);
  font-size: 0.6rem;
  font-weight: 800;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  letter-spacing: 0;
}

/* Mobile menu toggle */
.mobile-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  background: none;
  border: none;
  z-index: 600;
  position: relative;
}

.mobile-menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--light);
  transition: all var(--transition);
}

/* Search popover — V36 cross-browser-safe anchored under magnifying glass.
   V31-V35 used display:none → display:block + CSS animation on .active.
   This works in Firefox but Chrome/Webkit has a known issue where
   toggling display simultaneously with starting an animation can fail
   silently — the class flips but the animation stays at opacity:0.
   V36 uses visibility + opacity + pointer-events instead, which is the
   industry-standard pattern for popovers and works identically across
   all browsers. No animation keyword — just transitions. */
.header-search-wrap {
  position: relative;
  display: inline-flex;
  z-index: 10;
}

.header-search-bar {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 320px;
  width: 360px;
  max-width: 92vw;
  background: var(--dark-1);
  border: 1px solid rgba(255, 98, 0, 0.3);
  border-radius: var(--radius-sm);
  padding: var(--space-sm);
  box-shadow: var(--shadow-float);
  z-index: 1000;
  /* Hidden state: invisible, non-interactive, slightly offset */
  visibility: hidden;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  /* Transition visibility with a delay so it stays hidden until fully faded.
     Opacity and transform transition immediately. */
  transition:
    opacity 0.16s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.16s cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0s linear 0.16s;
}

.header-search-bar::before {
  content: '';
  position: absolute;
  top: -6px;
  right: 18px;
  width: 10px;
  height: 10px;
  background: var(--dark-1);
  border-top: 1px solid rgba(255, 98, 0, 0.3);
  border-left: 1px solid rgba(255, 98, 0, 0.3);
  transform: rotate(45deg);
}

.header-search-bar.active {
  /* Visible state: reveal immediately, enable interactions, reset offset */
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition:
    opacity 0.16s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.16s cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0s linear 0s;
}

/* =============================================
   HERO SECTION
   ============================================= */

.hero {
  position: relative;
  min-height: calc(100vh - var(--nav-height) - var(--topbar-height));
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--black);
}

.hero-bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse at 60% 50%, rgba(170,255,0,0.04) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 80%, rgba(255,98,0,0.06) 0%, transparent 50%);
}

.hero-bg-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.18;
  filter: grayscale(30%);
}

.hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(170,255,0,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(170,255,0,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 700px;
}

.hero-eyebrow {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}

.hero-eyebrow-line {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tritium);
}

.hero-eyebrow-line::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--tritium);
  box-shadow: var(--glow-tritium);
}

.hero-title {
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 900;
  line-height: 1.05;
  margin-bottom: var(--space-lg);
}

.hero-title .highlight {
  color: var(--blaze);
  position: relative;
}

.hero-subtitle {
  font-size: 1.1rem;
  color: var(--muted);
  margin-bottom: var(--space-xl);
  max-width: 560px;
  line-height: 1.7;
}

.hero-actions {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  margin-bottom: var(--space-xl);
}

.hero-stats {
  display: flex;
  gap: var(--space-xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--dark-4);
}

.hero-stat-value {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  color: var(--tritium);
  line-height: 1;
  text-shadow: var(--glow-tritium);
}

.hero-stat-label {
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
}

.hero-badge {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

/* =============================================
   TICKER / ANNOUNCEMENT BAR
   ============================================= */

.site-ticker {
  background: var(--dark-3);
  border-bottom: 1px solid var(--dark-4);
  border-top: 1px solid var(--dark-4);
  overflow: hidden;
  height: 34px;
  display: flex;
  align-items: center;
}

.ticker-label {
  /* V41.2: The orange "NEWS" label box is hidden — scrolling ticker text
     is retained. The markup is left in place in header.php so the label
     can be re-enabled in a future release by removing this override. */
  display: none !important;
}

.ticker-track {
  display: flex;
  gap: var(--space-3xl);
  animation: ticker 40s linear infinite;
  white-space: nowrap;
  padding: 0 var(--space-xl);
}

.ticker-item {
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.ticker-item a {
  color: var(--tritium);
}

.ticker-sep {
  color: var(--dark-4);
  margin: 0 var(--space-xl);
}

@keyframes ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* =============================================
   CATEGORY TILES
   ============================================= */

.section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-xl);
  margin-bottom: var(--space-2xl);
}

.section-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--tritium);
  margin-bottom: var(--space-sm);
  display: flex;
  align-items: center;
  gap: 8px;
}

.section-label::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background: var(--tritium);
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
}

.category-grid--wide {
  grid-template-columns: repeat(6, 1fr);
}

.cat-tile {
  position: relative;
  aspect-ratio: 3/2;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: pointer;
  transition: all var(--transition-slow);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-decoration: none;
}

.cat-tile:hover {
  border-color: var(--tritium);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.6), var(--glow-tritium);
}

.cat-tile--featured {
  grid-row: span 1;
  aspect-ratio: 3/2;
}

.cat-tile-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  transition: transform var(--transition-slow);
  filter: grayscale(20%);
}

.cat-tile:hover .cat-tile-image {
  transform: scale(1.04);
  filter: grayscale(0%);
}

.cat-tile-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.92) 0%,
    rgba(0,0,0,0.4) 50%,
    rgba(0,0,0,0.1) 100%
  );
  transition: all var(--transition-slow);
}

.cat-tile:hover .cat-tile-overlay {
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.95) 0%,
    rgba(0,0,0,0.5) 60%,
    rgba(0,0,0,0.15) 100%
  );
}

.cat-tile-content {
  position: relative;
  z-index: 2;
  padding: var(--space-lg);
}

.cat-tile-icon {
  font-size: 1.8rem;
  margin-bottom: var(--space-sm);
  filter: drop-shadow(0 0 8px rgba(170,255,0,0.5));
}

.cat-tile-name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 4px;
}

.cat-tile-count {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: var(--tritium);
}

.cat-tile-arrow {
  position: absolute;
  top: var(--space-lg);
  right: var(--space-lg);
  width: 32px;
  height: 32px;
  background: rgba(170,255,0,0.1);
  border: 1px solid rgba(170,255,0,0.3);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tritium);
  font-size: 0.85rem;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: all var(--transition);
}

.cat-tile:hover .cat-tile-arrow {
  opacity: 1;
  transform: translate(0, 0);
}

/* =============================================
   PRODUCT TILES / CARDS
   ============================================= */

.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
}

.product-card {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: all var(--transition-slow);
  display: flex;
  flex-direction: column;
  position: relative;
}

.product-card:hover {
  border-color: var(--dark-3);
  transform: translateY(-4px);
  box-shadow: var(--shadow-float);
}

.product-card-badges {
  position: absolute;
  top: var(--space-md);
  left: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
}

.product-card-image {
  aspect-ratio: 4/3;
  background: var(--dark-3);
  overflow: hidden;
  position: relative;
}

.product-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.product-card:hover .product-card-image img {
  transform: scale(1.04);
}

.product-card-image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  opacity: 0.3;
}

.product-card-actions {
  position: absolute;
  bottom: var(--space-md);
  left: var(--space-md);
  right: var(--space-md);
  display: flex;
  gap: var(--space-sm);
  opacity: 0;
  transform: translateY(8px);
  transition: all var(--transition);
}

.product-card:hover .product-card-actions {
  opacity: 1;
  transform: translateY(0);
}

.product-card-body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.product-card-brand {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--tritium);
  margin-bottom: 4px;
}

.product-card-name {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: var(--space-sm);
  line-height: 1.2;
}

.product-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: var(--space-md);
}

.product-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-top: auto;
  padding-top: var(--space-md);
  border-top: 1px solid var(--dark-4);
}

.product-card-price {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--tritium);
}

.product-card-price-old {
  font-family: var(--font-display);
  font-size: 0.85rem;
  color: var(--steel);
  text-decoration: line-through;
  margin-top: 2px;
}

.product-card-atc {
  width: 40px;
  height: 40px;
  background: var(--blaze);
  color: var(--black);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: all var(--transition);
  flex-shrink: 0;
}

.product-card-atc:hover {
  background: var(--blaze-hot);
  box-shadow: var(--glow-blaze);
  transform: scale(1.05);
}

/* FFL Transfer indicator */
.ffl-required-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blaze);
  background: rgba(255,98,0,0.08);
  border: 1px solid rgba(255,98,0,0.25);
  padding: 3px 8px;
  border-radius: var(--radius-sm);
}

/* =============================================
   FEATURED BANNER
   ============================================= */

.featured-banner {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  min-height: 320px;
  display: flex;
  align-items: center;
}

.featured-banner-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.25;
  filter: grayscale(40%);
}

.featured-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--dark-2) 40%, transparent);
  z-index: 1;
}

.featured-banner-content {
  position: relative;
  z-index: 2;
  padding: var(--space-2xl);
  max-width: 560px;
}

.featured-banner-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--blaze);
  margin-bottom: var(--space-md);
}

.featured-banner-title {
  font-size: 2.2rem;
  margin-bottom: var(--space-md);
}

.featured-banner-desc {
  color: var(--muted);
  margin-bottom: var(--space-xl);
}

/* =============================================
   FFL SERVICES SECTION
   ============================================= */

.ffl-section {
  background: var(--dark-2);
  border-top: 1px solid var(--dark-4);
  border-bottom: 1px solid var(--dark-4);
}

.ffl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}

.ffl-card {
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  padding: var(--space-xl);
  position: relative;
  overflow: hidden;
  transition: all var(--transition-slow);
}

.ffl-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--blaze);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-slow);
}

.ffl-card:hover::before { transform: scaleX(1); }

.ffl-card:hover {
  border-color: rgba(255,98,0,0.3);
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}

.ffl-card-icon {
  font-size: 2.5rem;
  margin-bottom: var(--space-lg);
}

.ffl-card-title {
  font-size: 1.2rem;
  margin-bottom: var(--space-sm);
  color: var(--white);
}

.ffl-card-desc {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: var(--space-lg);
}

.ffl-card-link {
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blaze);
  display: flex;
  align-items: center;
  gap: 6px;
  transition: gap var(--transition);
}

.ffl-card-link:hover {
  color: var(--blaze-hot);
  gap: 10px;
}

/* =============================================
   TRUST BAR / FEATURES ROW
   ============================================= */

.trust-bar {
  background: var(--black);
  border-top: 1px solid var(--dark-4);
  border-bottom: 1px solid var(--dark-4);
  padding: var(--space-xl) 0;
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-lg);
  text-align: center;
}

.trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-lg);
  position: relative;
}

.trust-item + .trust-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 25%;
  height: 50%;
  width: 1px;
  background: var(--dark-4);
}

.trust-icon {
  font-size: 1.8rem;
  color: var(--tritium);
  filter: drop-shadow(0 0 8px rgba(170,255,0,0.4));
}

.trust-label {
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--light);
}

.trust-sublabel {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}

/* =============================================
   BRANDS MARQUEE
   ============================================= */

.brands-section {
  background: var(--dark-2);
  border-bottom: 1px solid var(--dark-4);
  padding: var(--space-xl) 0;
  overflow: hidden;
}

.brands-label {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: var(--space-lg);
}

.brands-track {
  display: flex;
  gap: var(--space-3xl);
  animation: ticker 30s linear infinite;
}

.brand-item {
  flex-shrink: 0;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--steel);
  transition: color var(--transition);
  white-space: nowrap;
}

.brand-item:hover { color: var(--white); }

/* =============================================
   PAGE HERO (inner pages)
   ============================================= */

.page-hero {
  background: var(--black);
  border-bottom: 1px solid var(--dark-4);
  padding: var(--space-2xl) 0;
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(170,255,0,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(170,255,0,0.03) 1px, transparent 1px);
  background-size: 40px 40px;
}

.page-hero-content {
  position: relative;
  z-index: 1;
}

.page-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: var(--space-md);
}

.page-hero-breadcrumb a { color: var(--tritium-dim); }
.page-hero-breadcrumb a:hover { color: var(--tritium); }

/* =============================================
   SIDEBAR LAYOUT
   ============================================= */

.content-sidebar-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

/* Filter Sidebar */
.filter-sidebar {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-lg));
}

.filter-panel {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--space-md);
}

.filter-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md) var(--space-lg);
  background: var(--dark-3);
  border-bottom: 1px solid var(--dark-4);
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--light);
  transition: color var(--transition);
}

.filter-panel-header:hover { color: var(--tritium); }

.filter-panel-body {
  padding: var(--space-md) var(--space-lg);
}

.filter-option {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 6px 0;
  cursor: pointer;
  font-size: 0.88rem;
  color: var(--muted);
  transition: color var(--transition);
}

.filter-option:hover { color: var(--light); }

.filter-option input[type="checkbox"] {
  accent-color: var(--tritium);
  width: 14px;
  height: 14px;
}

.filter-option-count {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--steel);
}

/* Price range slider */
.price-range {
  padding: var(--space-sm) 0;
}

.price-range input[type="range"] {
  width: 100%;
  accent-color: var(--tritium);
}

.price-range-values {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: var(--space-sm);
}

/* =============================================
   SHOP TOOLBAR
   ============================================= */

.shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-lg);
}

.shop-toolbar-count {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.shop-toolbar-count span {
  color: var(--tritium);
  font-weight: 700;
}

.shop-toolbar-right {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

.sort-select {
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  color: var(--light);
  padding: 8px 12px;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: border-color var(--transition);
}

.sort-select:focus {
  outline: none;
  border-color: var(--tritium);
}

.view-toggle {
  display: flex;
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.view-toggle-btn {
  width: 36px;
  height: 36px;
  background: var(--dark-3);
  border: none;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition);
  font-size: 0.85rem;
}

.view-toggle-btn:hover,
.view-toggle-btn.active {
  background: var(--dark-4);
  color: var(--tritium);
}

/* =============================================
   FFL COCKPIT INTEGRATION
   ============================================= */

.ffl-cockpit-wrap {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.ffl-cockpit-header {
  background: var(--black);
  padding: var(--space-lg) var(--space-xl);
  border-bottom: 1px solid var(--dark-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
}

.ffl-cockpit-title {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blaze);
}

.ffl-cockpit-body {
  padding: var(--space-xl);
}

/* FFL Checkout overrides */
.ffl-checkout-section {
  background: var(--dark-3);
  border: 1px solid rgba(255,98,0,0.2);
  border-radius: var(--radius-md);
  padding: var(--space-xl);
  margin: var(--space-xl) 0;
}

.ffl-checkout-section h3 {
  color: var(--blaze);
  margin-bottom: var(--space-md);
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.ffl-dealer-search input {
  width: 100%;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  padding: 12px 18px;
  color: var(--white);
  font-size: 1rem;
  margin-bottom: var(--space-md);
  transition: border-color var(--transition);
}

.ffl-dealer-search input:focus {
  outline: none;
  border-color: var(--blaze);
  box-shadow: 0 0 0 2px rgba(255,98,0,0.15);
}

.ffl-dealer-result {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  padding: var(--space-md) var(--space-lg);
  margin-bottom: var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: all var(--transition);
}

.ffl-dealer-result:hover,
.ffl-dealer-result.selected {
  border-color: var(--blaze);
  background: rgba(255,98,0,0.05);
}

/* =============================================
   WOOCOMMERCE - PRODUCT SINGLE
   ============================================= */

.woocommerce div.product {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2xl);
  align-items: start;
}

.woocommerce div.product div.images {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.woocommerce div.product div.summary {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-lg));
}

.woocommerce div.product .product_title {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: var(--space-md);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 900;
  color: var(--tritium);
  text-shadow: var(--glow-tritium);
}

.woocommerce .star-rating span::before,
.woocommerce .star-rating::before {
  color: var(--blaze);
}

.woocommerce div.product form.cart .qty {
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  color: var(--white);
  border-radius: var(--radius-sm);
  padding: 10px 16px;
  font-family: var(--font-display);
  font-size: 1rem;
  text-align: center;
  width: 80px;
}

.woocommerce div.product form.cart .qty:focus {
  outline: none;
  border-color: var(--tritium);
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--dark-4);
  margin-bottom: 0;
  padding: 0;
  display: flex;
  gap: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 12px 20px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border-bottom-color: var(--tritium);
  background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--tritium);
}

.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-top: none;
  padding: var(--space-xl);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
}

/* =============================================
   WOOCOMMERCE - CART & CHECKOUT
   ============================================= */

.woocommerce-cart table.cart,
.woocommerce-checkout .shop_table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-cart table.cart th,
.woocommerce-checkout .shop_table th {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid var(--dark-4);
  background: var(--dark-3);
  text-align: left;
}

.woocommerce-cart table.cart td,
.woocommerce-checkout .shop_table td {
  padding: var(--space-md);
  border-bottom: 1px solid var(--dark-4);
  color: var(--light);
  vertical-align: middle;
}

.woocommerce-cart table.cart tr:last-child td,
.woocommerce-checkout .shop_table tr:last-child td {
  border-bottom: none;
}

/* Checkout form */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-md);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  color: var(--white);
  padding: 10px 16px;
  width: 100%;
  transition: border-color var(--transition);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  outline: none;
  border-color: var(--tritium);
  box-shadow: 0 0 0 2px rgba(170,255,0,0.1);
}

.woocommerce form .form-row label {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}

/* Order review */
#order_review {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  padding: var(--space-xl);
}

/* =============================================
   CONTENT BLOCKS / PAGES
   ============================================= */

.wp-content {
  max-width: 800px;
}

.wp-content h1, .wp-content h2, .wp-content h3 { margin-bottom: var(--space-md); margin-top: var(--space-xl); }
.wp-content h2::after {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--blaze);
  margin-top: 8px;
}

.wp-content ul { list-style: disc; padding-left: var(--space-xl); margin-bottom: var(--space-md); }
.wp-content ol { list-style: decimal; padding-left: var(--space-xl); margin-bottom: var(--space-md); }
.wp-content li { margin-bottom: var(--space-sm); color: var(--muted); }

.wp-content blockquote {
  border-left: 3px solid var(--blaze);
  padding-left: var(--space-lg);
  margin: var(--space-xl) 0;
  color: var(--muted);
  font-style: italic;
}

.wp-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: var(--space-xl);
}

.wp-content table th {
  background: var(--dark-3);
  padding: var(--space-sm) var(--space-md);
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--dark-4);
  text-align: left;
}

.wp-content table td {
  padding: var(--space-sm) var(--space-md);
  border-bottom: 1px solid var(--dark-4);
  color: var(--light);
}

/* =============================================
   NOTICES & ALERTS
   ============================================= */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.notice {
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-lg);
  margin-bottom: var(--space-lg);
  border: 1px solid transparent;
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.woocommerce-message {
  background: rgba(170,255,0,0.08);
  border-color: rgba(170,255,0,0.3);
  color: var(--tritium);
}

.woocommerce-info {
  background: rgba(255,98,0,0.08);
  border-color: rgba(255,98,0,0.3);
  color: var(--blaze);
}

.woocommerce-error {
  background: rgba(220,50,50,0.1);
  border-color: rgba(220,50,50,0.3);
  color: #ff6b6b;
}

/* =============================================
   FOOTER
   ============================================= */

.site-footer {
  background: var(--black);
  border-top: 1px solid var(--dark-4);
  padding-top: var(--space-3xl);
}

.footer-main {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--space-3xl);
  padding-bottom: var(--space-3xl);
  border-bottom: 1px solid var(--dark-4);
}

.footer-brand p {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.7;
  margin-top: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.footer-socials {
  display: flex;
  gap: var(--space-sm);
}

.footer-social-link {
  width: 40px;
  height: 40px;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: 0.9rem;
  transition: all var(--transition);
}

.footer-social-link:hover {
  background: rgba(170,255,0,0.08);
  border-color: var(--tritium);
  color: var(--tritium);
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xl);
}

.footer-col-title {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--light);
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--dark-4);
}

.footer-col ul {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.footer-col ul li a {
  font-size: 0.88rem;
  color: var(--muted);
  transition: color var(--transition);
  display: flex;
  align-items: center;
  gap: 6px;
}

.footer-col ul li a:hover { color: var(--tritium); }

.footer-bottom {
  padding: var(--space-xl) 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  flex-wrap: wrap;
}

.footer-legal {
  font-size: 0.78rem;
  color: var(--steel);
  line-height: 1.6;
  max-width: 600px;
}

.footer-legal a { color: var(--muted); }
.footer-legal a:hover { color: var(--tritium); }

.footer-compliance {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.footer-badge {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}

/* =============================================
   PAGINATION
   ============================================= */

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-2xl) 0;
}

ul.page-numbers {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: var(--space-2xl) 0;
  list-style: none;
  width: 100%;
  margin: 0;
}

ul.page-numbers li {
  display: inline-block;
  float: none;
  width: auto;
  min-width: 0;
}

ul.page-numbers li a,
ul.page-numbers li span.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--muted);
  transition: all var(--transition);
}

ul.page-numbers li a:hover,
ul.page-numbers li span.current {
  background: var(--tritium);
  border-color: var(--tritium);
  color: var(--black);
}

/* =============================================
   MOBILE / RESPONSIVE
   ============================================= */

@media (max-width: 1200px) {
  .product-grid { grid-template-columns: repeat(3, 1fr); }
  .category-grid { grid-template-columns: repeat(3, 1fr); }
  .category-grid--wide { grid-template-columns: repeat(4, 1fr); }
  .trust-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-links { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px) {
  .content-sidebar-layout { grid-template-columns: 1fr; }
  .filter-sidebar { position: static; }
  .woocommerce div.product { grid-template-columns: 1fr; }
  .footer-main { grid-template-columns: 1fr; }
  .ffl-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  :root { --nav-height: auto; }

  /* ── Hide entire topbar on mobile ── */
  .site-topbar { display: none; }

  /* ── Header: clean single row ── */
  .header-inner {
    height: auto !important;
    padding: 8px 0 !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
  }

  /* Logo: compact */
  .site-logo {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
  .logo-mark { width: 32px !important; height: 32px !important; }
  .logo-name { font-size: 1.05rem !important; }
  .logo-tagline { display: none !important; }

  /* Actions: only show search, cart, hamburger */
  .header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    flex-shrink: 0 !important;
  }

  /* Hide account and FFL Cockpit button completely on mobile */
  .header-account { display: none !important; }
  .header-ffl-cockpit { display: none !important; }

  /* ── Hamburger: clearly visible ── */
  .mobile-menu-toggle {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    cursor: pointer !important;
    padding: 10px !important;
    background: var(--dark-3) !important;
    border: 1px solid var(--dark-4) !important;
    border-radius: 4px !important;
    flex-shrink: 0 !important;
    z-index: 600 !important;
  }

  .mobile-menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 2px !important;
    background: var(--white) !important;
    border-radius: 2px !important;
  }

  /* Nav overlay */
  .primary-nav { display: none !important; }
  .primary-nav.mobile-open {
    display: flex !important;
    flex-direction: column !important;
    position: fixed !important;
    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    background: var(--dark-1) !important;
    z-index: 1000 !important;
    padding: var(--space-xl) !important;
    overflow-y: auto !important;
  }

  .primary-nav.mobile-open ul {
    flex-direction: column !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .primary-nav.mobile-open ul li a {
    font-size: 1.1rem !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid var(--dark-3) !important;
    display: block !important;
    width: 100% !important;
  }

  .primary-nav.mobile-open .sub-menu {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    box-shadow: none !important;
    background: var(--dark-2) !important;
    padding: 0 0 0 16px !important;
    border-radius: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  /* ── Shop grid: 2 columns on mobile ── */
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.75em !important;
  }

  .woocommerce ul.products li.product a img,
  .ga-product-card__image {
    height: 140px !important;
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product h2 {
    font-size: 0.75rem !important;
  }

  /* ── General grids ── */
  .product-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .category-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .trust-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .ffl-grid { grid-template-columns: 1fr !important; }
  .footer-links { grid-template-columns: 1fr 1fr !important; }
  .hero-badge { display: none !important; }

  /* ── WooCommerce sidebar: stack above products ── */
  .content-sidebar-layout { grid-template-columns: 1fr !important; }
  .filter-sidebar { position: static !important; width: 100% !important; }

  /* ── Pagination ── */
  ul.page-numbers { gap: 4px !important; padding: var(--space-lg) 0 !important; }
  ul.page-numbers li a,
  ul.page-numbers li span.page-numbers { width: 34px !important; height: 34px !important; font-size: 0.8rem !important; }
}

@media (max-width: 480px) {
  /* Single column shop on very small screens */
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .product-grid { grid-template-columns: 1fr; }
  .category-grid { grid-template-columns: 1fr 1fr; }
  .footer-links { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-item + .trust-item::before { display: none; }

  /* Smaller product images on tiny screens */
  .woocommerce ul.products li.product a img,
  .ga-product-card__image {
    height: 120px !important;
  }
}

/* =============================================
   ADMIN BAR OFFSET
   ============================================= */

.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

/* =============================================
   V21 — RESPONSIVE HEADER REFINEMENTS
   Layered on top of V20 mobile rules so the desktop
   header (served when wp_is_mobile()===false) degrades
   cleanly at narrow viewports — tablets in portrait,
   foldables, narrowed windows, unrecognized UAs, etc.
   ============================================= */

/* Mobile drawer hamburger button (lives in .header-actions, hidden by default) */
.mega-mobile-toggle {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 10px;
  background: var(--dark-3);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all var(--transition);
}
.mega-mobile-toggle:hover {
  border-color: var(--tritium);
  box-shadow: var(--glow-tritium);
}
.mega-mobile-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--white);
  border-radius: 2px;
}

/* Drawer overlay */
.mega-mobile-drawer {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--dark-1);
  z-index: 9999;
  overflow-y: auto;
  padding: var(--space-lg);
}
.mega-mobile-drawer.is-open { display: block; }
.mega-mobile-drawer__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--dark-4);
}
.mega-mobile-drawer__brand {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 900;
  color: var(--white);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.mega-mobile-drawer__brand span { color: var(--blaze); }
.mega-mobile-drawer__close {
  background: none;
  border: none;
  color: var(--light);
  font-size: 1.4rem;
  cursor: pointer;
  padding: 8px;
}
.mega-mobile-drawer__group { border-bottom: 1px solid var(--dark-4); }
.mega-mobile-drawer__group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mega-mobile-drawer__group-link {
  display: block;
  flex: 1;
  padding: 13px 0;
  color: var(--light);
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.mega-mobile-drawer__group-link:hover { color: var(--tritium); }
.mega-mobile-drawer__group-toggle {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 8px 12px;
  font-size: 0.85rem;
  transition: transform var(--transition);
}
.mega-mobile-drawer__sub {
  display: none;
  padding: 0 0 var(--space-sm) var(--space-md);
}
.mega-mobile-drawer__sub.is-open { display: block; }
.mega-mobile-drawer__sub a {
  display: block;
  padding: 8px 0;
  color: var(--muted);
  text-decoration: none;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--dark-2);
}
.mega-mobile-drawer__sub a:hover { color: var(--white); }

/* ── ≤ 980px: tablet portrait + narrow desktop ── */
@media (max-width: 980px) {
  /* Hide the horizontal mega-nav, reveal the hamburger */
  .mega-nav { display: none !important; }
  .mega-mobile-toggle { display: flex !important; }

  /* Tighten header row */
  .header-inner {
    height: 64px !important;
    gap: var(--space-md) !important;
  }
  .header-actions { gap: var(--space-sm) !important; }

  /* FFL Cockpit collapses to icon-only */
  .header-ffl-cockpit {
    width: 40px !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  .header-ffl-cockpit span { display: none !important; }

  /* Topbar: allow graceful wrap, drop the centered FFL line which always overflows first */
  .site-topbar {
    height: auto !important;
    padding: 6px 0 !important;
  }
  .site-topbar .container {
    flex-wrap: wrap !important;
    gap: 4px var(--space-sm) !important;
    justify-content: center !important;
  }
  .topbar-center { display: none !important; }
  .topbar-left,
  .topbar-right {
    gap: var(--space-sm) !important;
    flex-wrap: wrap !important;
    font-size: 0.7rem !important;
    justify-content: center !important;
  }
}

/* ── ≤ 640px: phones — drop topbar entirely, slim everything ── */
@media (max-width: 640px) {
  .site-topbar { display: none !important; }

  /* Ticker compacts */
  .site-ticker { height: 30px !important; }
  .ticker-label {
    font-size: 0.66rem !important;
    padding: 0 10px !important;
  }
  .ticker-item { font-size: 0.7rem !important; }

  /* Header row: trim padding, drop redundant items */
  .header-inner {
    padding: 6px 0 !important;
    gap: var(--space-sm) !important;
    height: auto !important;
  }
  .header-ffl-cockpit { display: none !important; }
  .header-account { display: none !important; }
  .header-actions { gap: 4px !important; }

  .header-search-toggle,
  .cart-icon-wrap {
    width: 38px !important;
    height: 38px !important;
  }
  .mega-mobile-toggle {
    width: 38px !important;
    height: 38px !important;
    padding: 9px !important;
  }

  /* Logo trims */
  .site-logo {
    gap: var(--space-sm) !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
  }
  .logo-mark { width: 32px !important; height: 32px !important; }
  .logo-name { font-size: 1.05rem !important; }
  .logo-tagline { display: none !important; }

  /* Hard guard against any horizontal overflow propagating from header bits */
  html, body { overflow-x: hidden; }
  .site-wrapper, .site-header, .header-inner { max-width: 100%; }
}

/* ── ≤ 380px: very narrow / older phones ── */
@media (max-width: 380px) {
  .header-inner { padding: 4px 0 !important; }
  .logo-name { font-size: 0.95rem !important; }
  .header-search-toggle,
  .cart-icon-wrap,
  .mega-mobile-toggle {
    width: 36px !important;
    height: 36px !important;
    font-size: 0.9rem !important;
  }
  .ticker-label { font-size: 0.6rem !important; padding: 0 8px !important; }
  .ticker-item { font-size: 0.65rem !important; }
}

/* =============================================
   SCROLLBAR STYLING
   ============================================= */

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--dark-1); }
::-webkit-scrollbar-thumb { background: var(--dark-4); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--steel); }

/* =============================================
   SELECTION
   ============================================= */

::selection {
  background: rgba(170,255,0,0.25);
  color: var(--white);
}

/* =================================================================
   V29 — MOBILE-FRIENDLY FILTER UX
   Desktop unchanged (>1024px). ≤1024px: sidebar hidden, products
   at top, sticky mobile bar with Filters + Sort buttons. Filters
   slide in as full-height left drawer. Sort slides in the same way.
   ================================================================= */

.ga-filters { position: relative; }

/* Keyword search box */
.ga-search {
  position: relative;
  display: flex;
  align-items: center;
}

.ga-search-icon {
  position: absolute;
  /* V41.3: pulled the icon inboard so its right edge sits well clear of the
     input's left padding. Reduced hit-area so the visible glyph is snug. */
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ga-input-placeholder);
  font-size: 0.85rem;
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* V41.1: icon is a clickable submit button. V41.3: keep hit-area
     tight (2px) so the visible icon never bleeds into the text zone. */
  cursor: pointer;
  padding: 2px;
  transition: color var(--transition);
  pointer-events: auto;
  z-index: 2;
}
.ga-search-icon:hover,
.ga-search-icon:focus {
  color: var(--orange);
  outline: none;
}
.ga-search-icon:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 1px;
  border-radius: 2px;
}

/* V41.3 AGGRESSIVE FIX:
   Scope the padding rule tightly so the catch-all input block later in the
   stylesheet (which was overwriting padding: 10px 16px) can no longer steal
   our left padding. We use .ga-search .ga-search-input to bump specificity
   above the single-class catch-all and then set padding explicitly.
   Also adopts the Contact Us aesthetic: taller field, full-width box, light
   grey placeholder, consistent border treatment. */
.ga-search .ga-search-input,
.filter-panel .ga-search-input {
  width: 100%;
  padding: 10px 14px 10px 44px;
  background: var(--ga-input-bg);
  border: 1px solid var(--ga-input-border);
  border-radius: var(--radius-sm);
  color: var(--ga-input-text);
  font-size: 0.95rem;
  line-height: 1.4;
  font-family: var(--font-body);
  box-sizing: border-box;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition);
  -webkit-appearance: none;
  appearance: none;
}

.ga-search .ga-search-input::placeholder,
.filter-panel .ga-search-input::placeholder {
  color: var(--ga-input-placeholder);
  opacity: 1;
}

.ga-search .ga-search-input:hover,
.filter-panel .ga-search-input:hover {
  background: var(--ga-input-bg-hover);
  border-color: var(--ga-input-border-hover);
}

.ga-search .ga-search-input:focus,
.filter-panel .ga-search-input:focus {
  outline: none;
  background: var(--ga-input-bg-focus);
  border-color: var(--ga-input-border-focus);
  color: var(--ga-input-text-strong);
  box-shadow: var(--ga-input-glow-focus);
}

/* Price inputs row */
.ga-price-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

/* V41.3: Price inputs now inherit the unified Contact Us aesthetic.
   Tight specificity (.filter-panel .ga-price-input) so the catch-all
   block further down can't bulldoze our padding/background. */
.filter-panel .ga-price-input,
.ga-price-row .ga-price-input {
  flex: 1;
  min-width: 0;
  padding: 10px 12px;
  background: var(--ga-input-bg);
  border: 1px solid var(--ga-input-border);
  border-radius: var(--radius-sm);
  color: var(--ga-input-text);
  font-size: 0.95rem;
  line-height: 1.4;
  font-family: var(--font-body);
  box-sizing: border-box;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition);
  -webkit-appearance: none;
  appearance: none;
}

.filter-panel .ga-price-input::placeholder,
.ga-price-row .ga-price-input::placeholder {
  color: var(--ga-input-placeholder);
  opacity: 1;
}

.filter-panel .ga-price-input:hover,
.ga-price-row .ga-price-input:hover {
  background: var(--ga-input-bg-hover);
  border-color: var(--ga-input-border-hover);
}

.filter-panel .ga-price-input:focus,
.ga-price-row .ga-price-input:focus {
  outline: none;
  background: var(--ga-input-bg-focus);
  border-color: var(--ga-input-border-focus);
  color: var(--ga-input-text-strong);
  box-shadow: var(--ga-input-glow-focus);
}

/* Disabled filter option (count is zero) */
.filter-option--disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.filter-option--disabled input { pointer-events: none; }

/* Clear all button panel */
.filter-panel--clear {
  background: transparent;
  border: 0;
  padding: 0;
  margin-top: var(--space-md);
}

.filter-panel--clear .btn i { margin-right: 6px; }

/* Loading spinner overlay on the product grid */
.ga-loading {
  position: relative;
  pointer-events: none;
}

.ga-loading::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(15, 17, 14, 0.6);
  z-index: 10;
}

.ga-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  border: 3px solid var(--dark-4);
  border-top-color: var(--blaze);
  border-radius: 50%;
  z-index: 11;
  animation: ga-spin 0.8s linear infinite;
}

@keyframes ga-spin { to { transform: rotate(360deg); } }

/* Empty state */
.ga-no-products {
  text-align: center;
  padding: var(--space-3xl) var(--space-lg);
  color: var(--muted);
}

.ga-no-products i {
  font-size: 2.5rem;
  color: var(--dark-4);
  margin-bottom: var(--space-md);
  display: block;
}

.ga-no-products p {
  font-size: 1rem;
  margin-bottom: var(--space-md);
}

/* AJAX pagination — matches the tactical look */
.ga-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: var(--space-lg) 0;
  justify-content: center;
}

.ga-pagination .page-numbers li { display: inline-block; }

.ga-pagination .page-numbers a,
.ga-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: 3px;
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: all var(--transition);
}

.ga-pagination .page-numbers a:hover {
  background: var(--dark-3);
  border-color: var(--blaze);
  color: var(--blaze);
}

.ga-pagination .page-numbers .current {
  background: var(--blaze);
  border-color: var(--blaze);
  color: var(--black);
}

.ga-pagination .page-numbers .dots {
  background: transparent;
  border-color: transparent;
}

/* ===== V28 SHOW ALL / SHOW LESS (universal) ===== */

/* Collapsible filter panels — overflow items hidden until "Show all" is clicked */
.ga-filter-overflow { display: none; }

[data-ga-collapsible-panel].ga-panel-expanded .ga-filter-overflow { display: flex; }

.ga-show-all-btn {
  margin-top: var(--space-sm);
  padding: 6px 10px;
  background: transparent;
  border: 1px solid var(--dark-4);
  border-radius: 3px;
  color: var(--muted);
  font-size: 0.75rem;
  font-family: var(--font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--transition);
  width: 100%;
}

.ga-show-all-btn:hover {
  border-color: var(--blaze);
  color: var(--blaze);
}

/* =================================================================
   V29 — MOBILE FILTER DRAWER + STICKY BAR + SORT SHEET
   ================================================================= */

/* -------- Desktop defaults: mobile chrome hidden -------- */
.ga-mobile-bar,
.ga-mobile-backdrop,
.ga-drawer-header,
.ga-drawer-footer,
.ga-sort-sheet { display: none; }

/* Body lock for mobile drawer — only active when class is applied */
body.ga-drawer-locked { overflow: hidden; }

/* -------- Mobile + small tablet (≤1024px) -------- */
@media (max-width: 1024px) {

    /* Kill the two-column layout so products take full width.
       Uses !important to override the old V21 rule at the same breakpoint
       which collapsed the sidebar into a stacked column above products. */
    .content-sidebar-layout {
        display: block !important;
        grid-template-columns: none !important;
    }

    /* Hide the sidebar by default; it becomes a drawer on trigger.
       !important flags beat the legacy V21 responsive rules that set
       position:static and width:100% with !important (which would
       otherwise keep the sidebar stacked above products on mobile). */
    .filter-sidebar {
        display: flex !important;
        flex-direction: column;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 88% !important;
        max-width: 380px !important;
        height: 100dvh;
        max-height: 100vh;
        background: var(--dark-1);
        z-index: 1001;
        transform: translateX(-100%);
        transition: transform 0.28s ease-out;
        box-shadow: 4px 0 20px rgba(0,0,0,0.6);
        overflow: hidden; /* Inner body scrolls instead */
    }

    .filter-sidebar.ga-drawer-open { transform: translateX(0) !important; }

    /* Drawer header (close button + title) */
    .ga-drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: var(--space-md) var(--space-lg);
        background: var(--dark-2);
        border-bottom: 1px solid var(--dark-4);
        flex-shrink: 0;
    }

    .ga-drawer-title {
        font-family: var(--font-display);
        font-size: 0.95rem;
        font-weight: 800;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--white);
    }

    .ga-drawer-close {
        background: transparent;
        border: 0;
        color: var(--muted);
        padding: 6px 10px;
        cursor: pointer;
        font-size: 1.15rem;
        line-height: 1;
        transition: color var(--transition);
    }

    .ga-drawer-close:hover { color: var(--blaze); }

    /* Scrollable filter area */
    .ga-drawer-body {
        flex: 1;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: var(--space-md) var(--space-lg);
    }

    /* Apply button pinned to bottom of drawer */
    .ga-drawer-footer {
        display: block;
        padding: var(--space-md) var(--space-lg);
        background: var(--dark-2);
        border-top: 1px solid var(--dark-4);
        flex-shrink: 0;
    }

    .ga-drawer-apply {
        font-family: var(--font-display);
        font-size: 0.85rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        font-weight: 800;
    }

    /* Backdrop behind drawer */
    .ga-mobile-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.65);
        z-index: 1000;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.28s ease-out;
    }

    .ga-mobile-backdrop.is-open {
        opacity: 1;
        pointer-events: auto;
    }

    /* Sticky mobile filter/sort bar */
    .ga-mobile-bar {
        display: flex;
        gap: 0;
        position: sticky;
        top: 0;
        z-index: 50;
        padding: 0;
        margin: 0 0 var(--space-md) 0;
        background: var(--dark-2);
        border: 1px solid var(--dark-4);
        border-radius: var(--radius-md);
        overflow: hidden;
    }

    .ga-mobile-bar-btn {
        flex: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 10px 12px;
        background: transparent;
        border: 0;
        color: var(--light);
        font-family: var(--font-display);
        font-size: 0.82rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        cursor: pointer;
        transition: color var(--transition);
    }

    .ga-mobile-bar-btn + .ga-mobile-bar-btn {
        border-left: 1px solid var(--dark-4);
    }

    .ga-mobile-bar-btn:hover,
    .ga-mobile-bar-btn:focus-visible {
        color: var(--blaze);
    }

    .ga-mobile-bar-btn i { font-size: 0.85rem; }

    .ga-mobile-bar-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 22px;
        height: 22px;
        padding: 0 7px;
        margin-left: 4px;
        background: var(--blaze);
        color: var(--black);
        border-radius: 999px;
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0;
    }

    /* Sort sheet — slides in same as filter drawer (left) for consistency */
    .ga-sort-sheet {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: 0;
        width: 88%;
        max-width: 380px;
        height: 100dvh;
        max-height: 100vh;
        background: var(--dark-1);
        z-index: 1001;
        transform: translateX(-100%);
        transition: transform 0.28s ease-out;
        box-shadow: 4px 0 20px rgba(0,0,0,0.6);
        overflow: hidden;
    }

    .ga-sort-sheet.ga-drawer-open { transform: translateX(0); }

    .ga-sort-sheet .ga-drawer-header { display: flex; }

    .ga-sort-options {
        flex: 1;
        overflow-y: auto;
        padding: var(--space-sm) 0;
    }

    .ga-sort-option {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 14px var(--space-lg);
        background: transparent;
        border: 0;
        border-bottom: 1px solid var(--dark-3);
        color: var(--light);
        font-family: var(--font-body);
        font-size: 0.95rem;
        text-align: left;
        cursor: pointer;
        transition: background var(--transition);
    }

    .ga-sort-option:hover,
    .ga-sort-option:focus-visible {
        background: var(--dark-2);
    }

    .ga-sort-option.is-active {
        color: var(--blaze);
        font-weight: 700;
    }

    .ga-sort-option.is-active i { color: var(--blaze); }

    /* Hide the desktop sort dropdown on mobile — mobile uses the sheet */
    .shop-toolbar .woocommerce-ordering { display: none; }

    /* Also hide the desktop view-toggle on mobile to save real estate */
    .shop-toolbar .view-toggle { display: none; }

    /* Give the shop-toolbar a cleaner mobile look (result count only) */
    .shop-toolbar {
        padding-top: 0;
        padding-bottom: var(--space-sm);
    }
}

/* =============================================
   V31 — UNIFIED FFL COCKPIT AESTHETIC
   -----
   Every text/number/search/select input and every
   secondary action button adopts the FFL Cockpit
   button recipe (already loved in the header):

     - Background: rgba(255,98,0,0.10)  (10% blaze tint)
     - Border:     1px solid rgba(255,98,0,0.30) (narrow outline)
     - Text:       var(--blaze) on inputs
     - Hover/focus: full blaze fill with glow

   Applied across: header search popover, cart coupon,
   cart quantity, checkout billing/shipping, WooCommerce
   account forms, filter sidebar search/price inputs,
   contact forms (WPBakery/Contact Form 7/generic WP
   comment form), search widgets, login, register.
   ============================================= */

/* ------- V31 design tokens (V34 UPDATE for readability) -------
   V31-V33 used rgba(255,98,0,0.10) as background, which composites
   as a muddy brown over the deep black page body. V34 switches to
   opaque dark-2 so the background is always a clean, readable dark
   gray regardless of what surface the input sits on. The blaze
   identity is preserved through the border, placeholder color, and
   typed text color.

   V35 UPDATE: placeholder color changed from faded blaze to muted
   light (rgba of --light token) for better readability. Faded blaze
   on dark-2 was hard to read — too close to background luminance.
   Muted light gives clearly-distinguishable "this is placeholder,
   not content" signal and reads well. Blaze identity preserved via
   border and typed-text color. */
:root {
  --ga-input-bg:           var(--dark-2);
  --ga-input-bg-hover:     var(--dark-3);
  --ga-input-bg-focus:     var(--dark-3);
  --ga-input-border:       rgba(255, 98, 0, 0.30);
  --ga-input-border-hover: rgba(255, 98, 0, 0.50);
  --ga-input-border-focus: var(--blaze);
  --ga-input-text:         var(--blaze);
  --ga-input-text-strong:  var(--blaze-hot);
  --ga-input-placeholder:  rgba(212, 217, 206, 0.55);
  --ga-input-glow-focus:   0 0 0 3px rgba(255, 98, 0, 0.18), 0 0 12px rgba(255, 98, 0, 0.25);
}

/* ------- Unified input selector list -------
   Any element matching these selectors gets the
   FFL Cockpit treatment. Intentionally broad to
   catch page-builder forms (WPBakery, CF7) and
   plugin-injected markup without special-casing. */
.ga-input,

/* Header search (popover) */
.search-form__input,
.header-search-bar input[type="search"],
.header-search-bar input[type="text"],

/* WooCommerce cart */
.woocommerce-cart input#coupon_code,
.woocommerce-cart table.cart input.qty,
.woocommerce-cart .cart-collaterals input[type="text"],
.woocommerce-cart .cart-collaterals input[type="number"],
.woocommerce-cart .woocommerce-shipping-calculator input[type="text"],
.woocommerce-cart .woocommerce-shipping-calculator select,

/* WooCommerce checkout */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout-payment input[type="text"],
.woocommerce-checkout #customer_details input,
.woocommerce-checkout #customer_details select,
.woocommerce-checkout #customer_details textarea,

/* WooCommerce account pages (login, register, edit) */
.woocommerce-account input.input-text,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"],
.woocommerce-account select,
.woocommerce-account textarea,
.woocommerce form.login input.input-text,
.woocommerce form.register input.input-text,
.woocommerce form.lost_reset_password input.input-text,
.woocommerce form.woocommerce-form-login input.input-text,
.woocommerce form.woocommerce-form-register input.input-text,
.woocommerce form.checkout_coupon input.input-text,

/* Product page quantity input */
.woocommerce div.product form.cart .qty,

/* Filter sidebar */
.ga-search-input,
.ga-price-input,
.ga-filter-input,
.ffl-dealer-search input,

/* Search widget */
.widget_search input[type="search"],
.widget_product_search input[type="search"],

/* Generic WordPress forms (comments, etc.) */
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea,

/* WPBakery Page Builder forms (Contact Us page) */
.wpb_content_element input[type="text"],
.wpb_content_element input[type="email"],
.wpb_content_element input[type="tel"],
.wpb_content_element input[type="url"],
.wpb_content_element input[type="number"],
.wpb_content_element input[type="search"],
.wpb_content_element select,
.wpb_content_element textarea,

/* Contact Form 7 (common plugin) */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="search"],
.wpcf7 select,
.wpcf7 textarea,

/* Catch-all fallback inside main content area —
   any bare form field that doesn't match above */
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="text"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="email"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="tel"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="url"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="number"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="search"],
.site-main form:not(.woocommerce-ordering):not(.search-form) textarea {
  background: var(--ga-input-bg);
  border: 1px solid var(--ga-input-border);
  border-radius: var(--radius-sm);
  color: var(--ga-input-text);
  font-family: var(--font-body);
  font-size: 1rem;
  padding: 10px 16px;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition);
  -webkit-appearance: none;
  appearance: none;
  line-height: 1.4;
  width: 100%;
  box-sizing: border-box;
  caret-color: var(--blaze-hot);
}

/* Hover state — slightly warmer fill */
.ga-input:hover,
.search-form__input:hover,
.header-search-bar input[type="search"]:hover,
.header-search-bar input[type="text"]:hover,
.woocommerce-cart input#coupon_code:hover,
.woocommerce-cart table.cart input.qty:hover,
.woocommerce-cart .cart-collaterals input[type="text"]:hover,
.woocommerce-cart .cart-collaterals input[type="number"]:hover,
.woocommerce-cart .woocommerce-shipping-calculator input[type="text"]:hover,
.woocommerce-cart .woocommerce-shipping-calculator select:hover,
.woocommerce-checkout .form-row input.input-text:hover,
.woocommerce-checkout .form-row select:hover,
.woocommerce-checkout .form-row textarea:hover,
.woocommerce-account input.input-text:hover,
.woocommerce-account input[type="text"]:hover,
.woocommerce-account input[type="email"]:hover,
.woocommerce-account input[type="password"]:hover,
.woocommerce-account input[type="tel"]:hover,
.woocommerce-account select:hover,
.woocommerce-account textarea:hover,
.woocommerce form.login input.input-text:hover,
.woocommerce form.register input.input-text:hover,
.woocommerce div.product form.cart .qty:hover,
.ga-search-input:hover,
.ga-price-input:hover,
.ga-filter-input:hover,
.widget_search input[type="search"]:hover,
.wpb_content_element input[type="text"]:hover,
.wpb_content_element input[type="email"]:hover,
.wpb_content_element input[type="tel"]:hover,
.wpb_content_element input[type="url"]:hover,
.wpb_content_element input[type="number"]:hover,
.wpb_content_element input[type="search"]:hover,
.wpb_content_element select:hover,
.wpb_content_element textarea:hover,
.wpcf7 input[type="text"]:hover,
.wpcf7 input[type="email"]:hover,
.wpcf7 input[type="tel"]:hover,
.wpcf7 input[type="url"]:hover,
.wpcf7 input[type="number"]:hover,
.wpcf7 input[type="search"]:hover,
.wpcf7 select:hover,
.wpcf7 textarea:hover {
  background: var(--ga-input-bg-hover);
  border-color: rgba(255, 98, 0, 0.45);
}

/* Focus state — solid blaze border + glow */
.ga-input:focus,
.search-form__input:focus,
.header-search-bar input[type="search"]:focus,
.header-search-bar input[type="text"]:focus,
.woocommerce-cart input#coupon_code:focus,
.woocommerce-cart table.cart input.qty:focus,
.woocommerce-cart .cart-collaterals input[type="text"]:focus,
.woocommerce-cart .cart-collaterals input[type="number"]:focus,
.woocommerce-cart .woocommerce-shipping-calculator input[type="text"]:focus,
.woocommerce-cart .woocommerce-shipping-calculator select:focus,
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-account input.input-text:focus,
.woocommerce-account input[type="text"]:focus,
.woocommerce-account input[type="email"]:focus,
.woocommerce-account input[type="password"]:focus,
.woocommerce-account input[type="tel"]:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus,
.woocommerce form.login input.input-text:focus,
.woocommerce form.register input.input-text:focus,
.woocommerce div.product form.cart .qty:focus,
.ga-search-input:focus,
.ga-price-input:focus,
.ga-filter-input:focus,
.ffl-dealer-search input:focus,
.widget_search input[type="search"]:focus,
.wpb_content_element input[type="text"]:focus,
.wpb_content_element input[type="email"]:focus,
.wpb_content_element input[type="tel"]:focus,
.wpb_content_element input[type="url"]:focus,
.wpb_content_element input[type="number"]:focus,
.wpb_content_element input[type="search"]:focus,
.wpb_content_element select:focus,
.wpb_content_element textarea:focus,
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="search"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  background: var(--ga-input-bg-focus);
  border-color: var(--ga-input-border-focus);
  color: var(--ga-input-text-strong);
  box-shadow: var(--ga-input-glow-focus);
}

/* Placeholder — half-transparent blaze */
.ga-input::placeholder,
.search-form__input::placeholder,
.header-search-bar input[type="search"]::placeholder,
.header-search-bar input[type="text"]::placeholder,
.woocommerce-cart input#coupon_code::placeholder,
.woocommerce-cart .cart-collaterals input::placeholder,
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder,
.woocommerce-account input.input-text::placeholder,
.woocommerce-account input[type="text"]::placeholder,
.woocommerce-account input[type="email"]::placeholder,
.woocommerce-account input[type="password"]::placeholder,
.woocommerce-account input[type="tel"]::placeholder,
.woocommerce-account textarea::placeholder,
.ga-search-input::placeholder,
.ga-price-input::placeholder,
.ga-filter-input::placeholder,
.widget_search input[type="search"]::placeholder,
.wpb_content_element input::placeholder,
.wpb_content_element textarea::placeholder,
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: var(--ga-input-placeholder);
  opacity: 1;
}

/* Autofill override — browsers force yellow bg on autofilled inputs;
   we push it back to our aesthetic with a long inset shadow hack */
.ga-input:-webkit-autofill,
.search-form__input:-webkit-autofill,
.woocommerce-cart input#coupon_code:-webkit-autofill,
.woocommerce-checkout input:-webkit-autofill,
.woocommerce-account input:-webkit-autofill,
.wpb_content_element input:-webkit-autofill,
.wpcf7 input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--dark-1) inset, 0 0 0 1px var(--ga-input-border) inset;
  -webkit-text-fill-color: var(--ga-input-text);
  caret-color: var(--blaze-hot);
  transition: background-color 9999s ease-in-out 0s;
}

/* Disabled/readonly — muted */
.ga-input:disabled,
.ga-input[readonly],
.woocommerce-cart table.cart input.qty:disabled,
.woocommerce-checkout .form-row input.input-text:disabled,
.wpb_content_element input:disabled,
.wpcf7 input:disabled {
  background: var(--dark-2);
  border-color: var(--dark-4);
  color: var(--muted);
  cursor: not-allowed;
}

/* =============================================
   V31 — HEADER SEARCH POPOVER INTERIOR
   ============================================= */

.header-search-bar .search-form {
  width: 100%;
}

.header-search-bar .search-form__inner {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  gap: 0;
}

.header-search-bar .search-form__input {
  flex: 1;
  min-width: 0;
  padding: 11px 14px;
  font-size: 0.95rem;
  border-right: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.header-search-bar .search-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ga-input-bg);
  border: 1px solid var(--ga-input-border);
  border-left: none;
  color: var(--blaze);
  padding: 0 14px;
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  border-top-right-radius: var(--radius-sm);
  border-bottom-right-radius: var(--radius-sm);
  min-width: 46px;
}

.header-search-bar .search-form__submit:hover,
.header-search-bar .search-form__submit:focus-visible {
  background: var(--blaze);
  color: var(--black);
  border-color: var(--blaze);
  outline: none;
}

.header-search-bar .search-form__submit svg {
  display: block;
  width: 18px;
  height: 18px;
}

/* Mobile: center popover under the viewport rather than off-screen right */
@media (max-width: 640px) {
  .header-search-bar {
    position: fixed;
    top: auto;
    right: 12px;
    left: 12px;
    width: auto;
    min-width: 0;
    max-width: none;
  }
  .header-search-bar::before { right: 24px; }
}

/* =============================================
   V31 — CART PAGE POLISH
   ============================================= */

/* Cart actions cell: align coupon row */
.woocommerce-cart table.cart td.actions {
  padding: var(--space-md);
  background: var(--dark-2);
}

.woocommerce-cart .coupon {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.woocommerce-cart .coupon label {
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.woocommerce-cart input#coupon_code {
  min-width: 200px;
  max-width: 260px;
  flex: 1 1 200px;
}

/* Cart qty input — center text, display font, suppress spinners */
.woocommerce-cart table.cart td.product-quantity { min-width: 120px; }
.woocommerce-cart table.cart input.qty {
  width: 80px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 1rem;
  padding: 10px 12px;
}

/* Suppress native number spinners */
.woocommerce-cart table.cart input.qty::-webkit-outer-spin-button,
.woocommerce-cart table.cart input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce-cart table.cart input.qty,
.woocommerce div.product form.cart .qty {
  -moz-appearance: textfield;
}

/* Cart totals panel */
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
}

.woocommerce-cart .cart_totals h2,
.woocommerce-cart .cross-sells h2 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: var(--space-md);
}

.woocommerce-cart .shipping-calculator-button {
  color: var(--tritium);
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color var(--transition);
}

.woocommerce-cart .shipping-calculator-button:hover {
  color: var(--tritium-dim);
  text-decoration: underline;
}

/* =============================================
   V31 — UNIFIED BUTTON AESTHETIC (FFL COCKPIT STYLE)
   -----
   Secondary action buttons across the site adopt the
   same recipe. Primary CTAs (Proceed to Checkout,
   Add to Cart) remain tritium for visual hierarchy.
   ============================================= */

.ga-btn-cockpit,

/* Apply Coupon button (cart) */
.woocommerce-cart button[name="apply_coupon"],
.woocommerce-cart .button[name="apply_coupon"],
.woocommerce-cart input.button[name="apply_coupon"],

/* Update Cart button (cart) */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .button[name="update_cart"],
.woocommerce-cart input.button[name="update_cart"],

/* Checkout coupon apply */
.checkout_coupon button[type="submit"],
.checkout_coupon .button,

/* WooCommerce account "Save" buttons etc. */
.woocommerce-account .woocommerce-Button,
.woocommerce-account button[type="submit"],
.woocommerce form.login button[type="submit"],
.woocommerce form.register button[type="submit"],
.woocommerce form.lost_reset_password button[type="submit"],

/* Shipping calculator submit */
.woocommerce-shipping-calculator button[type="submit"],

/* Generic WordPress submit button (comments, search widget) */
#commentform input[type="submit"],
.widget_search input[type="submit"],

/* WPBakery contact form submit */
.wpb_content_element input[type="submit"],
.wpb_content_element button[type="submit"],

/* Contact Form 7 submit */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.wpcf7-submit,

/* Generic content submits */
.site-main form:not(.woocommerce-ordering):not(.search-form) button[type="submit"],
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ga-input-bg);
  border: 1px solid var(--ga-input-border);
  color: var(--blaze);
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);
  text-decoration: none;
  line-height: 1.2;
}

.ga-btn-cockpit:hover,
.ga-btn-cockpit:focus-visible,
.woocommerce-cart button[name="apply_coupon"]:hover,
.woocommerce-cart button[name="apply_coupon"]:focus-visible,
.woocommerce-cart button[name="update_cart"]:hover,
.woocommerce-cart button[name="update_cart"]:focus-visible,
.woocommerce-cart input.button[name="apply_coupon"]:hover,
.woocommerce-cart input.button[name="update_cart"]:hover,
.checkout_coupon button[type="submit"]:hover,
.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account button[type="submit"]:hover,
.woocommerce form.login button[type="submit"]:hover,
.woocommerce form.register button[type="submit"]:hover,
.woocommerce-shipping-calculator button[type="submit"]:hover,
#commentform input[type="submit"]:hover,
.widget_search input[type="submit"]:hover,
.wpb_content_element input[type="submit"]:hover,
.wpb_content_element button[type="submit"]:hover,
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover,
.wpcf7-submit:hover,
.site-main form:not(.woocommerce-ordering):not(.search-form) button[type="submit"]:hover,
.site-main form:not(.woocommerce-ordering):not(.search-form) input[type="submit"]:hover {
  background: var(--blaze);
  border-color: var(--blaze);
  color: var(--black);
  box-shadow: var(--glow-blaze);
  outline: none;
}

.woocommerce-cart button[name="update_cart"]:disabled,
.woocommerce-cart input.button[name="update_cart"]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--ga-input-bg);
  color: var(--blaze);
  box-shadow: none;
}

/* =============================================
   V31 — WOOCOMMERCE NOTICES (cart messages)
   ============================================= */

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-message,
.woocommerce-info {
  background: var(--dark-2);
  border: 1px solid var(--tritium-dark);
  border-left: 3px solid var(--tritium);
  color: var(--light);
  padding: var(--space-md) var(--space-md) var(--space-md) 3em !important;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.95rem;
  margin-bottom: var(--space-md);
  position: relative;
}

.woocommerce-cart .woocommerce-error,
.woocommerce-error {
  background: var(--dark-2);
  border: 1px solid var(--blaze-dim);
  border-left: 3px solid var(--blaze);
  color: var(--light);
  padding: var(--space-md) var(--space-md) var(--space-md) 3em;
  border-radius: var(--radius-sm);
  position: relative;
}

.woocommerce-cart .woocommerce-message .button,
.woocommerce-cart .woocommerce-info .button,
.woocommerce-message .button,
.woocommerce-info .button {
  background: transparent;
  border: 1px solid var(--tritium);
  color: var(--tritium);
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: var(--radius-sm);
  margin-left: var(--space-sm);
  transition: background var(--transition), color var(--transition);
}

.woocommerce-cart .woocommerce-message .button:hover,
.woocommerce-cart .woocommerce-info .button:hover,
.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
  background: var(--tritium);
  color: var(--black);
}

/* =============================================
   V31 — RESPONSIVE FIXES
   ============================================= */

@media (max-width: 640px) {
  .woocommerce-cart .coupon {
    flex-direction: column;
    align-items: stretch;
  }
  .woocommerce-cart input#coupon_code {
    max-width: none;
    width: 100%;
  }
  .woocommerce-cart button[name="apply_coupon"],
  .woocommerce-cart button[name="update_cart"] {
    width: 100%;
  }
}

/* =============================================
   V32 — FFL CHECKOUT PLUGIN INTEGRATION
   -----
   The FFL Checkout plugin injects its own markup
   into the WooCommerce checkout page (FFL dealer
   selector, tooltips, search, map, result cards).
   Out of the box, this markup uses cream yellow
   tooltips, white inputs, and bright-green result
   cards — none of which match the tactical theme.

   Classes identified via browser DevTools:
     #ffl-required-notice
     #ffl_checkout_notice / .ffl_checkout_notice
     #ffl_container
     #ffl_search_fields
     .ffl_checkout_columns / .ffl_checkout_column
     #ffl-name-search
     #ffl-map / .ffl-map-resize / .mapboxgl-map
     #ffl-click-instructions
     .ffl-list-container
     .ffl-hide

   We override with !important because the plugin
   itself uses !important on several of its rules.
   ============================================= */

/* ---------- REQUIRED notice banner (was cream yellow) ---------- */
#ffl-required-notice {
  background: var(--dark-2) !important;
  color: var(--blaze) !important;
  border: 1px solid var(--blaze-dim) !important;
  border-left: 3px solid var(--blaze) !important;
  padding: var(--space-md) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  margin-bottom: var(--space-md) !important;
  animation: none !important; /* kill the olive-pulse animation */
  text-align: left !important;
}

#ffl-required-notice b {
  color: var(--blaze-hot) !important;
  font-weight: 700 !important;
}

/* ---------- FFL helper notice boxes (cream yellow → tactical dark) ---------- */
#ffl_checkout_notice,
.ffl_checkout_notice,
#ffl_checkout_notice_ammo {
  background: var(--dark-2) !important;
  color: var(--light) !important;
  border: 1px solid var(--dark-4) !important;
  border-left: 3px solid var(--tritium) !important;
  padding: var(--space-md) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  line-height: 1.55 !important;
  color: var(--light) !important;
  margin-bottom: var(--space-md) !important;
  text-align: left !important;
}

#ffl_checkout_notice b,
.ffl_checkout_notice b {
  color: var(--tritium) !important;
}

#ffl_checkout_notice a,
.ffl_checkout_notice a,
#ffl_checkout_notice u,
.ffl_checkout_notice u {
  color: var(--tritium) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

#ffl_checkout_notice a:hover,
.ffl_checkout_notice a:hover {
  color: var(--tritium-dim) !important;
}

/* ---------- FFL container wrapper ---------- */
#ffl_container {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* ---------- Section header "SELECT YOUR PREFERRED FFL DEALER" ---------- */
#ffl_container h3,
#ffl_container .ffl-section-title {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  margin: 0 0 var(--space-md) 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

/* ---------- "Click here for in-store pickup" button (was beige/tan) ---------- */
#ffl_container .ffl-pickup-btn,
#ffl_container button[type="button"]:not([name="apply_coupon"]):not([name="update_cart"]),
.ffl-pickup-link,
.ffl-local-pickup,
a.ffl-pickup-btn {
  display: block !important;
  width: 100% !important;
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  padding: 12px 20px !important;
  border-radius: var(--radius-sm) !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  background-image: none !important;
  box-shadow: none !important;
  margin: var(--space-sm) 0 !important;
}

#ffl_container .ffl-pickup-btn:hover,
.ffl-pickup-link:hover,
.ffl-local-pickup:hover,
a.ffl-pickup-btn:hover,
#ffl_container button[type="button"]:hover:not([name="apply_coupon"]):not([name="update_cart"]) {
  background: var(--blaze) !important;
  color: var(--black) !important;
  border-color: var(--blaze) !important;
  box-shadow: var(--glow-blaze) !important;
}

/* ---------- Search fields row (Zip / Radius / Find FFL) ---------- */
#ffl_search_fields,
.ffl_search_fields {
  margin-bottom: var(--space-md) !important;
}

#ffl_search_fields .ffl_checkout_columns,
.ffl_checkout_columns {
  display: flex !important;
  gap: var(--space-sm) !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
}

#ffl_search_fields .ffl_checkout_column,
.ffl_checkout_column {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

/* Specific column widths: zip narrow, radius medium, find wider */
#ffl_search_fields .ffl_checkout_column:nth-child(1) { flex: 1 1 30% !important; }
#ffl_search_fields .ffl_checkout_column:nth-child(2) { flex: 1 1 35% !important; }
#ffl_search_fields .ffl_checkout_column:nth-child(3) { flex: 1 1 30% !important; }

/* ---------- All FFL inputs (Zip, Radius, FFL Name) ---------- */
#ffl_container input[type="text"],
#ffl_container input[type="number"],
#ffl_container input[type="search"],
#ffl_container select,
#ffl-name-search,
#ffl-zip-search,
#ffl-radius-search {
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  padding: 10px 14px !important;
  border-radius: var(--radius-sm) !important;
  height: auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition) !important;
  caret-color: var(--blaze-hot) !important;
  line-height: 1.3 !important;
  text-align: left !important;
  min-height: 42px !important;
}

#ffl_container input[type="text"]:hover,
#ffl_container input[type="number"]:hover,
#ffl_container select:hover,
#ffl-name-search:hover,
#ffl-zip-search:hover,
#ffl-radius-search:hover {
  background: var(--ga-input-bg-hover) !important;
  border-color: rgba(255,98,0,0.45) !important;
}

#ffl_container input[type="text"]:focus,
#ffl_container input[type="number"]:focus,
#ffl_container select:focus,
#ffl-name-search:focus,
#ffl-zip-search:focus,
#ffl-radius-search:focus {
  outline: none !important;
  background: var(--ga-input-bg-focus) !important;
  border-color: var(--blaze) !important;
  color: var(--blaze-hot) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

#ffl_container input::placeholder,
#ffl-name-search::placeholder,
#ffl-zip-search::placeholder,
#ffl-radius-search::placeholder {
  color: var(--ga-input-placeholder) !important;
  opacity: 1 !important;
}

/* Select arrow custom — replace default dropdown arrow */
#ffl_container select,
#ffl-radius-search {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FF6200' d='M6 8.5L1.5 4h9z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  padding-right: 32px !important;
}

/* ---------- "Find FFL" button ---------- */
#ffl_container #ffl-search-btn,
#ffl_container input[type="submit"],
#ffl_container button[type="submit"],
.ffl-find-btn,
#ffl-find-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 10px 20px !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  width: 100% !important;
  min-height: 42px !important;
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  background-image: none !important;
  box-shadow: none !important;
}

#ffl_container #ffl-search-btn:hover,
#ffl_container input[type="submit"]:hover,
#ffl_container button[type="submit"]:hover,
.ffl-find-btn:hover,
#ffl-find-btn:hover {
  background: var(--blaze) !important;
  color: var(--black) !important;
  border-color: var(--blaze) !important;
  box-shadow: var(--glow-blaze) !important;
}

/* ---------- FFL Map container ---------- */
#ffl-map,
.ffl-map-resize {
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  margin-top: var(--space-md) !important;
}

.mapboxgl-map {
  border-radius: var(--radius-md) !important;
}

.mapboxgl-ctrl-attrib {
  background: rgba(17,20,16,0.85) !important;
  color: var(--muted) !important;
}

.mapboxgl-ctrl-attrib a {
  color: var(--tritium) !important;
}

/* ---------- "Click on FFL to confirm" instruction ---------- */
#ffl-click-instructions,
.ffl-click-instructions {
  color: var(--muted) !important;
  font-style: italic !important;
  font-size: 0.85rem !important;
  padding: var(--space-sm) 0 !important;
  text-align: center !important;
}

/* ---------- FFL result cards (list items — was bright green) ---------- */
.ffl-list-container {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-sm) !important;
  margin-top: var(--space-md) !important;
  max-height: 400px !important;
  overflow-y: auto !important;
}

.ffl-list-container .ffl-dealer-card,
.ffl-list-container .ffl-result,
.ffl-list-container > div,
.ffl-list-container > li,
.ffl-list-item,
.ffl-result-item {
  background: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  border-left: 3px solid var(--steel) !important;
  color: var(--light) !important;
  padding: var(--space-md) !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  transition: background var(--transition), border-color var(--transition), transform var(--transition) !important;
  font-family: var(--font-body) !important;
  background-image: none !important;
  list-style: none !important;
}

.ffl-list-container .ffl-dealer-card:hover,
.ffl-list-container .ffl-result:hover,
.ffl-list-container > div:hover,
.ffl-list-container > li:hover,
.ffl-list-item:hover,
.ffl-result-item:hover {
  background: var(--dark-3) !important;
  border-color: var(--dark-4) !important;
  border-left-color: var(--blaze) !important;
}

/* Selected / active result card */
.ffl-list-container .ffl-dealer-card.selected,
.ffl-list-container .ffl-result.active,
.ffl-list-container .ffl-result.selected,
.ffl-list-container > div.selected,
.ffl-list-container > li.selected,
.ffl-list-container > div.active,
.ffl-result-item.selected,
.ffl-result-item.active {
  background: rgba(170, 255, 0, 0.08) !important;
  border: 1px solid var(--tritium) !important;
  border-left: 3px solid var(--tritium) !important;
  box-shadow: 0 0 0 1px rgba(170, 255, 0, 0.25) !important;
}

/* Dealer card inner elements */
.ffl-list-container b,
.ffl-list-container strong,
.ffl-list-container .ffl-dealer-name,
.ffl-list-item b,
.ffl-list-item strong {
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  display: block !important;
  margin-bottom: 4px !important;
}

.ffl-list-container address,
.ffl-list-container .ffl-dealer-address {
  color: var(--muted) !important;
  font-style: normal !important;
  font-size: 0.88rem !important;
  line-height: 1.4 !important;
}

/* Map marker popups (Mapbox) */
.mapboxgl-popup-content {
  background: var(--dark-2) !important;
  color: var(--light) !important;
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-body) !important;
  padding: var(--space-sm) var(--space-md) !important;
  box-shadow: var(--shadow-float) !important;
}

.mapboxgl-popup-tip {
  border-top-color: var(--dark-2) !important;
  border-bottom-color: var(--dark-2) !important;
}

.mapboxgl-popup-close-button {
  color: var(--muted) !important;
  font-size: 1.2rem !important;
  padding: 2px 8px !important;
}

.mapboxgl-popup-close-button:hover {
  background: transparent !important;
  color: var(--blaze) !important;
}

/* ---------- BILLING DETAILS section heading ---------- */
.woocommerce-checkout #customer_details h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
#order_review_heading {
  font-family: var(--font-display) !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  margin: 0 0 var(--space-md) 0 !important;
  padding-bottom: var(--space-sm) !important;
  border-bottom: 1px solid var(--dark-4) !important;
}

/* ---------- "Returning customer" / "Have a coupon" info bars ---------- */
.woocommerce-checkout .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
  background: var(--dark-2) !important;
  border: 1px solid var(--blaze-dim) !important;
  border-left: 3px solid var(--blaze) !important;
  color: var(--blaze) !important;
  padding: var(--space-md) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-display) !important;
  font-size: 0.88rem !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  margin-bottom: var(--space-md) !important;
}

.woocommerce-checkout .woocommerce-info a,
.woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--blaze-hot) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 700 !important;
}

.woocommerce-checkout .woocommerce-info a:hover {
  color: var(--white) !important;
}

/* Hide the weird mixed-color rendering — force single color on the whole string */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
  color: var(--blaze) !important;
}

/* ---------- Labels in checkout form ---------- */
.woocommerce-checkout .form-row label,
.woocommerce-checkout .form-row .required {
  font-family: var(--font-display) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin-bottom: 6px !important;
  display: block !important;
}

.woocommerce-checkout .form-row .required,
.woocommerce-checkout .form-row abbr.required {
  color: var(--blaze) !important;
  text-decoration: none !important;
}


/* =============================================
   V33 — SELECT2 DROPDOWN RETHEME + QTY SPINNER
   -----
   WooCommerce bundles Select2 to replace native
   <select> elements with a rich custom dropdown
   component. Select2 creates its own markup
   (<span class="select2-container">) that ignores
   native select CSS. V33 themes all the Select2
   parts so Country/State/etc. match the site.

   Target classes come from Select2 v4.x (what
   WooCommerce ships). Rules intentionally use
   !important to override Select2's default CSS
   which also ships with !important in places.
   ============================================= */

/* ---------- The selection "box" (closed state) ---------- */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  border-radius: var(--radius-sm) !important;
  min-height: 42px !important;
  height: auto !important;
  padding: 4px 4px !important;
  box-shadow: none !important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  color: var(--blaze) !important;
  font-family: var(--font-body) !important;
}

.select2-container--default .select2-selection--single:hover,
.select2-container--default .select2-selection--multiple:hover {
  background: var(--ga-input-bg-hover) !important;
  border-color: rgba(255, 98, 0, 0.45) !important;
}

/* Focused / open state (Select2 adds .select2-container--open or --focus) */
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple {
  outline: none !important;
  background: var(--ga-input-bg-focus) !important;
  border-color: var(--blaze) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

/* ---------- Rendered text inside the box ---------- */
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--blaze) !important;
  line-height: 32px !important;
  padding-left: 12px !important;
  padding-right: 32px !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
}

.select2-container--default.select2-container--open .select2-selection--single .select2-selection__rendered,
.select2-container--default.select2-container--focus .select2-selection--single .select2-selection__rendered {
  color: var(--blaze-hot) !important;
}

/* Placeholder text inside the box ("Select a country...") */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--ga-input-placeholder) !important;
}

/* ---------- Dropdown arrow (right side of the box) ---------- */
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  width: 32px !important;
  top: 0 !important;
  right: 4px !important;
  background: transparent !important;
  border: none !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
  /* Replace the default 5-point triangle with our blaze caret */
  border: none !important;
  width: 10px !important;
  height: 10px !important;
  margin-left: -5px !important;
  margin-top: -2px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FF6200' d='M6 8.5L1.5 4h9z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
  top: 50% !important;
  left: 50% !important;
}

/* Arrow rotates when open */
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  transform: translate(-50%, -50%) rotate(180deg) !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
}

/* ---------- The dropdown panel that floats below (when open) ---------- */
.select2-container--default .select2-dropdown {
  background: var(--dark-1) !important;
  border: 1px solid rgba(255, 98, 0, 0.3) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: var(--shadow-float) !important;
  overflow: hidden !important;
  margin-top: 4px !important;
}

.select2-container--default .select2-dropdown--above {
  margin-top: 0 !important;
  margin-bottom: 4px !important;
  border-bottom: 1px solid rgba(255, 98, 0, 0.3) !important;
}

/* ---------- Search box inside the dropdown (the "type to filter" field) ---------- */
.select2-container--default .select2-search--dropdown {
  padding: var(--space-sm) !important;
  background: var(--dark-2) !important;
  border-bottom: 1px solid var(--dark-4) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--blaze) !important;
  padding: 8px 12px !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  box-shadow: none !important;
  outline: none !important;
  caret-color: var(--blaze-hot) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--blaze) !important;
  background: var(--ga-input-bg-focus) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field::placeholder {
  color: var(--ga-input-placeholder) !important;
}

/* ---------- The option list in the dropdown ---------- */
.select2-container--default .select2-results > .select2-results__options {
  max-height: 280px !important;
  background: var(--dark-1) !important;
  padding: 4px 0 !important;
}

/* Each option row */
.select2-container--default .select2-results__option {
  padding: 8px 14px !important;
  color: var(--light) !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
  transition: background var(--transition), color var(--transition) !important;
  background: transparent !important;
}

/* Hover / keyboard-highlight */
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: rgba(255, 98, 0, 0.12) !important;
  color: var(--blaze-hot) !important;
}

/* Already-selected option (shown with different background) */
.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option--selected {
  background: rgba(170, 255, 0, 0.08) !important;
  color: var(--tritium) !important;
  font-weight: 600 !important;
}

/* Both highlighted AND selected — blaze with lift */
.select2-container--default .select2-results__option--highlighted[aria-selected=true],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selected {
  background: rgba(255, 98, 0, 0.18) !important;
  color: var(--blaze-hot) !important;
}

/* "No results found" message */
.select2-container--default .select2-results__option.select2-results__message {
  color: var(--muted) !important;
  font-style: italic !important;
}

/* Group headers in option list (e.g., "North America" > "United States") */
.select2-container--default .select2-results__group {
  background: var(--dark-2) !important;
  color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 6px 14px !important;
}

/* ---------- Disabled select ---------- */
.select2-container--default.select2-container--disabled .select2-selection--single,
.select2-container--default.select2-container--disabled .select2-selection--multiple {
  background: var(--dark-2) !important;
  border-color: var(--dark-4) !important;
  color: var(--muted) !important;
  cursor: not-allowed !important;
}

/* ---------- Multi-select pills (tags) ---------- */
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: rgba(255, 98, 0, 0.15) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  border-radius: var(--radius-sm) !important;
  padding: 2px 8px !important;
  margin: 4px 4px 0 0 !important;
  font-family: var(--font-body) !important;
  font-size: 0.85rem !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  color: var(--blaze) !important;
  margin-right: 4px !important;
  cursor: pointer !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
  color: var(--white) !important;
  background: var(--blaze) !important;
  border-radius: 2px !important;
}

/* Multi-select search field (inline, no separate dropdown) */
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
  color: var(--blaze) !important;
  background: transparent !important;
  border: none !important;
  padding: 0 4px !important;
  font-family: var(--font-body) !important;
}

/* =============================================
   V33 — FORTIFIED NATIVE NUMBER SPINNER SUPPRESSION
   -----
   The cart quantity field was still showing native
   spinner arrows in V32. This is broader coverage
   applied to ALL quantity-like inputs regardless of
   what type= attribute WooCommerce set.
   ============================================= */

/* Suppress webkit spinner arrows on ANY number input in cart / checkout / product */
.woocommerce input.qty,
.woocommerce input[name="quantity"],
.woocommerce-cart input.qty,
.woocommerce-checkout input.qty,
.woocommerce div.product form.cart .qty,
input.qty[type="number"],
input.qty[type="text"] {
  -moz-appearance: textfield !important;
}

.woocommerce input.qty::-webkit-outer-spin-button,
.woocommerce input.qty::-webkit-inner-spin-button,
.woocommerce input[name="quantity"]::-webkit-outer-spin-button,
.woocommerce input[name="quantity"]::-webkit-inner-spin-button,
.woocommerce-cart input.qty::-webkit-outer-spin-button,
.woocommerce-cart input.qty::-webkit-inner-spin-button,
.woocommerce-checkout input.qty::-webkit-outer-spin-button,
.woocommerce-checkout input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .qty::-webkit-inner-spin-button,
input.qty[type="number"]::-webkit-outer-spin-button,
input.qty[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  display: none !important;
}

/* =============================================
   V33 — SHIPMENT DETAIL TEXT (cart totals)
   ============================================= */

.woocommerce-cart .cart_totals .shipping ul,
.woocommerce-cart .cart_totals .shipping-full-address,
.cart_totals .woocommerce-shipping-destination {
  color: var(--light) !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce-cart .cart_totals .shipping strong,
.cart_totals .woocommerce-shipping-destination strong {
  color: var(--white) !important;
  font-weight: 700 !important;
}

.woocommerce-cart .shipping-calculator-form,
.cart_totals .shipping-calculator-form {
  margin-top: var(--space-md) !important;
  padding-top: var(--space-md) !important;
  border-top: 1px solid var(--dark-4) !important;
}

.woocommerce-cart .cart_totals label {
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin-bottom: 6px !important;
  display: block !important;
}


/* =============================================
   V34 — ADD TO CART POLISH, SPINNER FIX, ORDER DROPDOWN
   -----
   Three focused improvements:
   1. Soften Add to Cart buttons — rounded corners,
      subtle shadow, hover lift. Still orange (UX
      industry convention for buy CTAs), just less
      blocky and more inviting.
   2. Fix native number-input spinner arrows on
      price filter inputs (V33 missed these).
   3. Style the WooCommerce ordering dropdown
      ("Relevance" / "Price: Low to High" etc.)
      on shop pages — it's a plain native select
      that V33 Select2 retheme doesn't touch.
   ============================================= */

/* ---------- Soften Add to Cart buttons ---------- */
.ga-add-to-cart-btn,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .button.product_type_simple,
.woocommerce ul.products li.product .button.product_type_variable,
.woocommerce ul.products li.product .button.product_type_grouped,
.woocommerce ul.products li.product .button.product_type_external,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .added_to_cart,
.ga-product-card__footer .button {
  display: block !important;
  width: 100% !important;
  padding: 11px 18px !important;
  text-align: center !important;
  font-family: var(--font-display) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  background: var(--blaze) !important;
  color: var(--black) !important;
  border: 1px solid var(--blaze) !important;
  border-radius: var(--radius-md) !important;
  cursor: pointer !important;
  text-decoration: none !important;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  transition:
    background var(--transition),
    transform var(--transition),
    box-shadow var(--transition),
    border-color var(--transition) !important;
  position: relative !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.ga-add-to-cart-btn:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce ul.products li.product a.button:hover,
.ga-product-card__footer .button:hover {
  background: var(--blaze-hot) !important;
  color: var(--black) !important;
  border-color: var(--blaze-hot) !important;
  transform: translateY(-1px) !important;
  box-shadow:
    0 4px 10px rgba(255, 98, 0, 0.35),
    0 2px 4px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

.ga-add-to-cart-btn:active,
.woocommerce ul.products li.product .add_to_cart_button:active,
.woocommerce ul.products li.product a.button:active,
.ga-product-card__footer .button:active {
  transform: translateY(0) !important;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.3),
    inset 0 1px 2px rgba(0, 0, 0, 0.2) !important;
  transition: all 0.08s ease !important;
}

/* Focus state for keyboard navigation */
.ga-add-to-cart-btn:focus-visible,
.woocommerce ul.products li.product .add_to_cart_button:focus-visible,
.woocommerce ul.products li.product a.button:focus-visible,
.ga-product-card__footer .button:focus-visible {
  outline: none !important;
  box-shadow:
    0 0 0 3px rgba(255, 98, 0, 0.35),
    0 4px 10px rgba(255, 98, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

/* =============================================
   V34 — PRICE FILTER + FILTER INPUT SPINNER FIX
   ============================================= */

.ga-price-input,
.ga-filter-input,
input.ga-price-input[type="number"],
input.ga-filter-input[type="number"],
.filter-panel input[type="number"],
.filter-sidebar input[type="number"] {
  -moz-appearance: textfield !important;
}

.ga-price-input::-webkit-outer-spin-button,
.ga-price-input::-webkit-inner-spin-button,
.ga-filter-input::-webkit-outer-spin-button,
.ga-filter-input::-webkit-inner-spin-button,
.filter-panel input[type="number"]::-webkit-outer-spin-button,
.filter-panel input[type="number"]::-webkit-inner-spin-button,
.filter-sidebar input[type="number"]::-webkit-outer-spin-button,
.filter-sidebar input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  display: none !important;
}

/* =============================================
   V34 — WOOCOMMERCE ORDERING DROPDOWN
   -----
   The "Relevance / Price: Low to High / Newest"
   dropdown on shop pages is a native <select>
   that V33's Select2 retheme doesn't affect.
   Give it the same tactical treatment.
   ============================================= */

.woocommerce-ordering select,
.woocommerce-ordering select.orderby,
form.woocommerce-ordering select,
.shop-toolbar .woocommerce-ordering select {
  background-color: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--blaze) !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  padding: 9px 36px 9px 14px !important;
  cursor: pointer !important;
  min-width: 180px !important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FF6200' d='M6 8.5L1.5 4h9z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 12px 12px !important;
  box-shadow: none !important;
  height: auto !important;
  line-height: 1.4 !important;
}

.woocommerce-ordering select:hover,
.woocommerce-ordering select.orderby:hover {
  background-color: var(--ga-input-bg-hover) !important;
  border-color: rgba(255, 98, 0, 0.50) !important;
}

.woocommerce-ordering select:focus,
.woocommerce-ordering select.orderby:focus {
  outline: none !important;
  background-color: var(--ga-input-bg-focus) !important;
  border-color: var(--blaze) !important;
  color: var(--blaze-hot) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

/* Style the dropdown options — browser-limited but we can try */
.woocommerce-ordering select option,
.woocommerce-ordering select.orderby option {
  background: var(--dark-1) !important;
  color: var(--light) !important;
  padding: 8px !important;
}

/* =============================================
   V34 — AUTOFILL OVERRIDE FOR NEW DARK-2 BASE
   ============================================= */

.ga-input:-webkit-autofill,
.search-form__input:-webkit-autofill,
.woocommerce-cart input#coupon_code:-webkit-autofill,
.woocommerce-checkout input:-webkit-autofill,
.woocommerce-account input:-webkit-autofill,
.wpb_content_element input:-webkit-autofill,
.wpcf7 input:-webkit-autofill,
#ffl_container input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--dark-2) inset, 0 0 0 1px var(--ga-input-border) inset !important;
  -webkit-text-fill-color: var(--blaze) !important;
  caret-color: var(--blaze-hot) !important;
  transition: background-color 9999s ease-in-out 0s !important;
}

/* =============================================
   V35 — QTY +/-, PLACEHOLDER READABILITY, WPCF7 SUBMIT, CHECKBOXES
   -----
   Focused fixes for end-to-end user experience:
   1. Horizontal quantity +/- buttons (was stacking
      vertically in V34) + final nuclear spinner kill
   2. Placeholder color enforced site-wide as muted
      light (V35 token changed, this block reinforces
      with aggressive overrides for FFL plugin, WPCF7,
      and any place using hardcoded placeholder colors)
   3. Additional FFL Checkout ID variants (#ffl-zip-code,
      #ffl-radius, #ffl-name without -search suffix)
   4. WPCF7 Send Message button styling (V31-V34 missed
      it due to plugin injecting post-theme-CSS rules)
   5. Checkout checkbox polish ("Create an account?" etc.)
   ============================================= */

/* =============================================
   V35 — QUANTITY +/- BUTTONS (HORIZONTAL LAYOUT)
   ============================================= */

/* Container: make it flex so +/- buttons sit beside the input */
.woocommerce .quantity,
.woocommerce-cart table.cart .quantity,
.woocommerce div.product form.cart .quantity,
.quantity {
  display: inline-flex !important;
  align-items: stretch !important;
  flex-direction: row !important;
  gap: 0 !important;
  max-width: 140px !important;
  margin: 0 auto !important;
}

/* +/- buttons: square, flush against input, FFL Cockpit aesthetic */
.woocommerce .qty-minus,
.woocommerce .qty-plus,
button.qty-minus,
button.qty-plus,
.quantity .qty-minus,
.quantity .qty-plus {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  height: auto !important;
  padding: 0 !important;
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-display) !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  transition: background var(--transition), color var(--transition), border-color var(--transition) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  user-select: none !important;
}

.woocommerce .qty-minus,
button.qty-minus,
.quantity .qty-minus {
  border-top-left-radius: var(--radius-sm) !important;
  border-bottom-left-radius: var(--radius-sm) !important;
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  border-right: none !important;
}

.woocommerce .qty-plus,
button.qty-plus,
.quantity .qty-plus {
  border-top-right-radius: var(--radius-sm) !important;
  border-bottom-right-radius: var(--radius-sm) !important;
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  border-left: none !important;
}

.woocommerce .qty-minus:hover,
.woocommerce .qty-plus:hover,
button.qty-minus:hover,
button.qty-plus:hover,
.quantity .qty-minus:hover,
.quantity .qty-plus:hover {
  background: var(--blaze) !important;
  color: var(--black) !important;
  border-color: var(--blaze) !important;
}

.woocommerce .qty-minus:active,
.woocommerce .qty-plus:active,
button.qty-minus:active,
button.qty-plus:active {
  background: var(--blaze-hot) !important;
  border-color: var(--blaze-hot) !important;
}

.woocommerce .qty-minus:focus-visible,
.woocommerce .qty-plus:focus-visible,
button.qty-minus:focus-visible,
button.qty-plus:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(255, 98, 0, 0.35) !important;
  z-index: 2 !important;
}

/* Input between the buttons: flush, center-aligned, no radius on own corners */
.woocommerce .quantity input.qty,
.woocommerce-cart .quantity input.qty,
.quantity input.qty,
.quantity input[type="number"] {
  flex: 1 1 auto !important;
  width: 60px !important;
  min-width: 50px !important;
  max-width: 80px !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  text-align: center !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  padding: 10px 4px !important;
  box-sizing: border-box !important;
  -moz-appearance: textfield !important;
}

/* =============================================
   V35 — NUCLEAR NATIVE SPINNER SUPPRESSION
   -----
   V33 and V34 both tried to kill the browser's
   native number-input spinner arrows. This final
   approach uses multiple techniques simultaneously
   so at least one wins regardless of browser/
   specificity peculiarities.
   ============================================= */

input.qty,
input[type="number"].qty,
input.qty[type="number"],
input.qty[type="text"],
.woocommerce input.qty,
.woocommerce-cart input.qty,
.woocommerce-checkout input.qty,
.woocommerce div.product form.cart input.qty,
.quantity input {
  -moz-appearance: textfield !important;
  appearance: textfield !important;
  -webkit-appearance: textfield !important;
}

input.qty::-webkit-inner-spin-button,
input.qty::-webkit-outer-spin-button,
input[type="number"].qty::-webkit-inner-spin-button,
input[type="number"].qty::-webkit-outer-spin-button,
.woocommerce input.qty::-webkit-inner-spin-button,
.woocommerce input.qty::-webkit-outer-spin-button,
.quantity input::-webkit-inner-spin-button,
.quantity input::-webkit-outer-spin-button,
.ga-price-input::-webkit-inner-spin-button,
.ga-price-input::-webkit-outer-spin-button,
.ga-filter-input::-webkit-inner-spin-button,
.ga-filter-input::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* =============================================
   V35 — PLACEHOLDER COLOR REINFORCEMENT
   -----
   V35 token change cascades to most inputs, but
   the FFL Checkout plugin block (V32) and the
   earlier cart/checkout blocks had hardcoded
   placeholder colors with !important. These must
   be explicitly overridden to the new muted-light.
   ============================================= */

.ga-input::placeholder,
.search-form__input::placeholder,
.header-search-bar input[type="search"]::placeholder,
.header-search-bar input[type="text"]::placeholder,
.woocommerce-cart input#coupon_code::placeholder,
.woocommerce-cart .cart-collaterals input::placeholder,
.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder,
.woocommerce-account input.input-text::placeholder,
.woocommerce-account input[type="text"]::placeholder,
.woocommerce-account input[type="email"]::placeholder,
.woocommerce-account input[type="password"]::placeholder,
.woocommerce-account input[type="tel"]::placeholder,
.woocommerce-account textarea::placeholder,
.ga-search-input::placeholder,
.ga-price-input::placeholder,
.ga-filter-input::placeholder,
.widget_search input[type="search"]::placeholder,
.widget_product_search input[type="search"]::placeholder,
.wpb_content_element input::placeholder,
.wpb_content_element textarea::placeholder,
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder,
#ffl_container input::placeholder,
#ffl_container textarea::placeholder,
#ffl-name-search::placeholder,
#ffl-zip-search::placeholder,
#ffl-zip-code::placeholder,
#ffl-radius-search::placeholder,
#ffl-radius::placeholder,
#ffl-name::placeholder,
.ffl_checkout_column input::placeholder,
.select2-container--default .select2-search--dropdown .select2-search__field::placeholder,
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--ga-input-placeholder) !important;
  opacity: 1 !important;
  font-style: normal !important;
}

/* =============================================
   V35 — FFL CHECKOUT ID VARIANTS
   -----
   The FFL Checkout plugin uses slightly different
   IDs than V32 targeted (e.g., #ffl-zip-code instead
   of #ffl-zip-search). Add the alternates so all
   known variants are covered.
   ============================================= */

#ffl-zip-code,
#ffl-radius,
#ffl-name,
.ffl_checkout_column input[type="text"],
.ffl_checkout_column input[type="number"],
.ffl_checkout_column input[type="search"],
.ffl_checkout_column select,
.ffl_checkout_column textarea {
  background: var(--ga-input-bg) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  padding: 10px 14px !important;
  border-radius: var(--radius-sm) !important;
  height: auto !important;
  width: 100% !important;
  min-height: 42px !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition) !important;
  caret-color: var(--blaze-hot) !important;
  line-height: 1.3 !important;
}

#ffl-zip-code:hover,
#ffl-radius:hover,
#ffl-name:hover,
.ffl_checkout_column input:hover,
.ffl_checkout_column select:hover {
  background: var(--ga-input-bg-hover) !important;
  border-color: var(--ga-input-border-hover) !important;
}

#ffl-zip-code:focus,
#ffl-radius:focus,
#ffl-name:focus,
.ffl_checkout_column input:focus,
.ffl_checkout_column select:focus {
  outline: none !important;
  background: var(--ga-input-bg-focus) !important;
  border-color: var(--blaze) !important;
  color: var(--blaze-hot) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

/* Apply custom dropdown arrow to #ffl-radius too */
#ffl-radius,
.ffl_checkout_column select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23FF6200' d='M6 8.5L1.5 4h9z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  padding-right: 32px !important;
}

/* Style select options so they read well in the native dropdown */
#ffl-radius option,
.ffl_checkout_column select option {
  background: var(--dark-1) !important;
  color: var(--light) !important;
  padding: 8px !important;
}

/* =============================================
   V35 — WPCF7 SEND MESSAGE BUTTON (AGGRESSIVE)
   -----
   Contact Form 7 injects its own CSS file after
   the theme's styles in some configurations. V31's
   styling had !important but plugin's inline styles
   or later-loaded CSS may have been overriding.
   V35 uses multiple specificity angles + attribute
   selectors to ensure the Send Message button
   adopts the FFL Cockpit aesthetic.
   ============================================= */

.wpcf7 .wpcf7-submit,
.wpcf7 input.wpcf7-submit,
.wpcf7 input[type="submit"],
form.wpcf7-form .wpcf7-submit,
form.wpcf7-form input[type="submit"],
form.wpcf7-form button[type="submit"],
input.wpcf7-form-control.wpcf7-submit,
input.wpcf7-form-control.has-spinner.wpcf7-submit,
.wpcf7-form .wpcf7-submit[type="submit"],
.wpb_content_element .wpcf7 input[type="submit"],
.wpb_content_element .wpcf7-form input[type="submit"] {
  display: inline-block !important;
  background: var(--ga-input-bg) !important;
  background-color: var(--ga-input-bg) !important;
  background-image: none !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 11px 28px !important;
  border-radius: var(--radius-sm) !important;
  cursor: pointer !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  text-decoration: none !important;
  min-width: 140px !important;
  min-height: 42px !important;
}

.wpcf7 .wpcf7-submit:hover,
.wpcf7 input.wpcf7-submit:hover,
.wpcf7 input[type="submit"]:hover,
form.wpcf7-form .wpcf7-submit:hover,
form.wpcf7-form input[type="submit"]:hover,
form.wpcf7-form button[type="submit"]:hover,
input.wpcf7-form-control.wpcf7-submit:hover {
  background: var(--blaze) !important;
  background-color: var(--blaze) !important;
  color: var(--black) !important;
  border-color: var(--blaze) !important;
  box-shadow: var(--glow-blaze) !important;
}

.wpcf7 .wpcf7-submit:focus-visible,
.wpcf7 input.wpcf7-submit:focus-visible,
form.wpcf7-form input[type="submit"]:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255, 98, 0, 0.35), var(--glow-blaze) !important;
}

.wpcf7 .wpcf7-submit:disabled,
.wpcf7 input.wpcf7-submit:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* Hide the Cloudflare Turnstile widget's default bg if it shows up mismatched */
.wpcf7 .wpcf7-form-control-wrap[data-name*="cf-turnstile"] iframe,
.wpcf7 .cf-turnstile {
  border-radius: var(--radius-sm) !important;
}

/* =============================================
   V35 — CHECKOUT CHECKBOX POLISH
   -----
   "Create an account?" and similar checkboxes
   on the checkout and account pages get proper
   blaze accent color so they don't look like
   raw browser defaults.
   ============================================= */

.woocommerce-checkout input[type="checkbox"],
.woocommerce input[type="checkbox"],
.woocommerce-account input[type="checkbox"],
body.woocommerce input[type="checkbox"]:not(.filter-option input),
.woocommerce-form-login input[type="checkbox"],
#payment input[type="radio"],
.woocommerce-checkout input[type="radio"] {
  accent-color: var(--blaze) !important;
  width: 16px !important;
  height: 16px !important;
  cursor: pointer !important;
  margin-right: 8px !important;
  vertical-align: middle !important;
}

.woocommerce-checkout .form-row.create-account,
.woocommerce-checkout #ship-to-different-address {
  padding: var(--space-sm) 0 !important;
}

.woocommerce-checkout .form-row.create-account label,
.woocommerce-checkout #ship-to-different-address label,
.woocommerce-form-login label.woocommerce-form__label-for-checkbox {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: var(--font-display) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  cursor: pointer !important;
}

.woocommerce-checkout .form-row.create-account label:hover,
.woocommerce-form-login label.woocommerce-form__label-for-checkbox:hover {
  color: var(--light) !important;
}

/* =============================================
   V35 — PAYMENT METHOD RADIO BUTTONS
   -----
   The checkout payment method section ("Credit
   Card", "Bank Transfer", etc.) uses radio inputs
   in a list. Give it tactical styling.
   ============================================= */

.woocommerce-checkout #payment,
.woocommerce-checkout #payment.woocommerce-checkout-payment {
  background: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-md) !important;
  padding: var(--space-md) !important;
}

.woocommerce-checkout #payment ul.payment_methods {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
  background: var(--dark-1) !important;
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-sm) !important;
  padding: var(--space-sm) var(--space-md) !important;
  margin-bottom: var(--space-sm) !important;
  list-style: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: var(--font-display) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: var(--light) !important;
  cursor: pointer !important;
  padding-left: 4px !important;
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  color: var(--light) !important;
  border-radius: var(--radius-sm) !important;
  padding: var(--space-md) !important;
  margin-top: var(--space-sm) !important;
}

.woocommerce-checkout #payment div.payment_box::before {
  display: none !important;
}

.woocommerce-checkout #payment .terms,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  padding: var(--space-sm) 0 !important;
  color: var(--muted) !important;
  font-size: 0.9rem !important;
}

/* Place Order button at the bottom of checkout */
.woocommerce-checkout #place_order,
.woocommerce-checkout button#place_order {
  display: inline-block !important;
  width: 100% !important;
  background: var(--tritium) !important;
  color: var(--black) !important;
  border: 1px solid var(--tritium) !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 16px 28px !important;
  border-radius: var(--radius-md) !important;
  cursor: pointer !important;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition) !important;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  margin-top: var(--space-md) !important;
}

.woocommerce-checkout #place_order:hover,
.woocommerce-checkout button#place_order:hover {
  background: var(--tritium-dim) !important;
  border-color: var(--tritium-dim) !important;
  transform: translateY(-1px) !important;
  box-shadow:
    0 4px 10px rgba(170, 255, 0, 0.35),
    0 2px 4px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

/* =============================================
   V35 — ORDER REVIEW TABLE (CHECKOUT RIGHT PANEL)
   ============================================= */

.woocommerce-checkout-review-order-table,
.woocommerce-checkout table.shop_table {
  background: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  border-radius: var(--radius-md) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.shop_table th {
  background: var(--dark-3) !important;
  color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--dark-4) !important;
  text-align: left !important;
}

.woocommerce-checkout-review-order-table td,
.woocommerce-checkout table.shop_table td {
  color: var(--light) !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--dark-4) !important;
  background: transparent !important;
  vertical-align: middle !important;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout table.shop_table tfoot th,
.woocommerce-checkout table.shop_table tfoot td {
  background: var(--dark-3) !important;
  font-weight: 700 !important;
  color: var(--white) !important;
}

.woocommerce-checkout-review-order-table tr:last-child td,
.woocommerce-checkout table.shop_table tr:last-child td {
  border-bottom: none !important;
}

.woocommerce-checkout-review-order-table .amount,
.woocommerce-checkout table.shop_table .amount {
  color: var(--tritium) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
}

/* =============================================
   V35 — BREADCRUMBS POLISH
   ============================================= */

.woocommerce-breadcrumb,
.ga-breadcrumbs,
nav.woocommerce-breadcrumb {
  font-family: var(--font-display) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  margin-bottom: var(--space-md) !important;
}

.woocommerce-breadcrumb a,
.ga-breadcrumbs a {
  color: var(--muted) !important;
  text-decoration: none !important;
  transition: color var(--transition) !important;
}

.woocommerce-breadcrumb a:hover,
.ga-breadcrumbs a:hover {
  color: var(--blaze) !important;
}



/* =============================================
   V37 — FFL LIST CARDS, TOOLTIP, ORDER TABLE, FORTIS
   -----
   Four targeted fixes based on DevTools-verified selectors:

   1. FFL dealer result cards — V32 used wrong selectors
      (.ffl-list-container .ffl-dealer-card). Actual
      plugin markup is #ffl-list > div > button.ffl-list-div.
   2. Yellow "First and Last name" tooltip — p#first_last_notice
      with .notice class, not yet covered.
   3. Order summary table labels (SUBTOTAL, SHIPMENT, SALES TAX,
      TOTAL) — V35 targeted td but the labels are in th.
   4. Fortis payment form — uses CSS custom properties
      (--colorFieldBackground etc.) so redefining those at
      container level themes the whole form via variable cascade.
      More robust than !important specificity battles.
   ============================================= */

/* =============================================
   V37 — FFL DEALER RESULT CARDS
   ============================================= */

#ffl-list,
ul#ffl-list {
  list-style: none !important;
  padding: 0 !important;
  margin: var(--space-md) 0 0 0 !important;
  max-height: 400px !important;
  overflow-y: auto !important;
  background: transparent !important;
  display: block !important;
}

#ffl-list > div,
ul#ffl-list > div {
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  list-style: none !important;
}

/* Each dealer card (the <button> inside each wrapper div) */
#ffl-list button,
#ffl-list .ffl-list-div,
#ffl-list div button,
button.ffl-list-div {
  display: block !important;
  width: 100% !important;
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  background-image: none !important;
  color: var(--light) !important;
  border: 1px solid var(--dark-4) !important;
  border-left: 3px solid var(--steel) !important;
  border-radius: var(--radius-sm) !important;
  padding: var(--space-md) !important;
  text-align: left !important;
  line-height: 1.45 !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  font-weight: normal !important;
  cursor: pointer !important;
  transition: background var(--transition), border-color var(--transition), transform var(--transition) !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

#ffl-list button:hover,
#ffl-list .ffl-list-div:hover,
#ffl-list div button:hover,
button.ffl-list-div:hover {
  background: var(--dark-3) !important;
  background-color: var(--dark-3) !important;
  border-color: var(--dark-4) !important;
  border-left-color: var(--blaze) !important;
}

/* Selected / active dealer card */
#ffl-list button.selected,
#ffl-list .ffl-list-div.selected,
#ffl-list div button.selected,
#ffl-list button.active,
#ffl-list button[aria-selected="true"],
button.ffl-list-div.selected,
button.ffl-list-div.active {
  background: rgba(170, 255, 0, 0.08) !important;
  background-color: rgba(170, 255, 0, 0.08) !important;
  border: 1px solid var(--tritium) !important;
  border-left: 3px solid var(--tritium) !important;
  box-shadow: 0 0 0 1px rgba(170, 255, 0, 0.25) !important;
}

/* Dealer name (usually the first line, often in <b> or <strong>) */
#ffl-list button b,
#ffl-list button strong,
#ffl-list button h3,
#ffl-list button h4,
#ffl-list .ffl-list-div b,
#ffl-list .ffl-list-div strong,
button.ffl-list-div b,
button.ffl-list-div strong {
  display: block !important;
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin-bottom: 4px !important;
  line-height: 1.3 !important;
}

/* Dealer address / phone / supporting text */
#ffl-list button address,
#ffl-list button p,
#ffl-list button span,
#ffl-list button div,
#ffl-list .ffl-list-div address,
#ffl-list .ffl-list-div p,
#ffl-list .ffl-list-div span,
button.ffl-list-div address,
button.ffl-list-div p,
button.ffl-list-div span {
  color: var(--light) !important;
  font-style: normal !important;
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
  font-weight: normal !important;
  display: block !important;
  background: transparent !important;
}

/* Small details like phone number get slightly muted */
#ffl-list button small,
button.ffl-list-div small {
  color: var(--muted) !important;
  font-size: 0.85rem !important;
}

/* =============================================
   V37 — YELLOW TOOLTIP / NOTICE FIX
   -----
   p#first_last_notice with class="notice" — the cream
   yellow "The First and Last name below help the FFL..."
   helper text on the checkout billing form.
   ============================================= */

p#first_last_notice,
#first_last_notice,
p.notice#first_last_notice,
.woocommerce-billing-fields__field-wrapper p.notice,
.woocommerce-shipping-fields__field-wrapper p.notice,
.shipping_address p.notice,
.billing_address p.notice,
#customer_details p.notice,
.woocommerce-checkout p.notice:not(.woocommerce-info):not(.woocommerce-error):not(.woocommerce-message) {
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  color: var(--light) !important;
  border: 1px solid var(--dark-4) !important;
  border-left: 3px solid var(--tritium) !important;
  border-radius: var(--radius-sm) !important;
  padding: var(--space-md) !important;
  font-family: var(--font-body) !important;
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
  animation: none !important;
  margin-bottom: var(--space-md) !important;
  margin-top: 0 !important;
  text-align: left !important;
  box-shadow: none !important;
}

#first_last_notice b,
#first_last_notice strong,
.woocommerce-billing-fields p.notice b,
.woocommerce-billing-fields p.notice strong {
  color: var(--white) !important;
  font-weight: 700 !important;
}

#first_last_notice a,
#first_last_notice u,
.woocommerce-billing-fields p.notice a,
.woocommerce-billing-fields p.notice u {
  color: var(--tritium) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* =============================================
   V37 — ORDER SUMMARY TABLE (SUBTOTAL, SHIPMENT, TAX, TOTAL)
   -----
   WooCommerce renders order totals as <tr> with <th>
   for label and <td> for value. V35 styled td but
   labels live in th — hence the faded appearance.
   ============================================= */

/* All label cells — SUBTOTAL, SHIPMENT, SALES TAX, etc. */
.woocommerce-checkout-review-order-table tr.cart_subtotal th,
.woocommerce-checkout-review-order-table tr.shipping th,
.woocommerce-checkout-review-order-table tr.tax-total th,
.woocommerce-checkout-review-order-table tr.fee th,
.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout table.shop_table tr.cart_subtotal th,
.woocommerce-checkout table.shop_table tr.shipping th,
.woocommerce-checkout table.shop_table tr.tax-total th,
.woocommerce-checkout table.shop_table tr.fee th,
.woocommerce-cart table.cart_totals tr.cart-subtotal th,
.woocommerce-cart table.cart_totals tr.shipping th,
.woocommerce-cart table.cart_totals tr.tax-total th,
.woocommerce-cart table.cart_totals tr.order-total th {
  color: var(--light) !important;
  font-family: var(--font-display) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  padding: 12px 16px !important;
  text-align: left !important;
  border-bottom: 1px solid var(--dark-4) !important;
}

/* All value cells */
.woocommerce-checkout-review-order-table tr.cart_subtotal td,
.woocommerce-checkout-review-order-table tr.shipping td,
.woocommerce-checkout-review-order-table tr.tax-total td,
.woocommerce-checkout-review-order-table tr.fee td,
.woocommerce-checkout table.shop_table tr.cart_subtotal td,
.woocommerce-checkout table.shop_table tr.shipping td,
.woocommerce-checkout table.shop_table tr.tax-total td,
.woocommerce-checkout table.shop_table tr.fee td {
  color: var(--light) !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--dark-4) !important;
  background: transparent !important;
  font-weight: 500 !important;
  text-align: right !important;
}

/* Value amounts (the dollar figures) — tritium green for visual hierarchy */
.woocommerce-checkout-review-order-table tr.cart_subtotal td .amount,
.woocommerce-checkout-review-order-table tr.shipping td .amount,
.woocommerce-checkout-review-order-table tr.tax-total td .amount,
.woocommerce-checkout-review-order-table tr.fee td .amount,
.woocommerce-checkout table.shop_table tr.cart_subtotal td .amount,
.woocommerce-checkout table.shop_table tr.shipping td .amount,
.woocommerce-checkout table.shop_table tr.tax-total td .amount,
.woocommerce-checkout table.shop_table tr.fee td .amount {
  color: var(--tritium) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
  font-size: 0.95rem !important;
}

/* TOTAL row — most prominent */
.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout-review-order-table tr.order-total td,
.woocommerce-checkout table.shop_table tr.order-total th,
.woocommerce-checkout table.shop_table tr.order-total td {
  background: var(--dark-3) !important;
  border-top: 2px solid var(--dark-4) !important;
  border-bottom: none !important;
  padding: 16px !important;
}

.woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout table.shop_table tr.order-total th {
  color: var(--white) !important;
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
}

.woocommerce-checkout-review-order-table tr.order-total td,
.woocommerce-checkout-review-order-table tr.order-total td .amount,
.woocommerce-checkout-review-order-table tr.order-total .amount,
.woocommerce-checkout table.shop_table tr.order-total td,
.woocommerce-checkout table.shop_table tr.order-total td .amount,
.woocommerce-checkout table.shop_table tr.order-total .amount {
  color: var(--tritium) !important;
  font-size: 1.2rem !important;
  font-weight: 800 !important;
  font-family: var(--font-display) !important;
  text-align: right !important;
}

/* Product rows in order review table */
.woocommerce-checkout-review-order-table .cart_item,
.woocommerce-checkout table.shop_table .cart_item {
  background: transparent !important;
}

.woocommerce-checkout-review-order-table .cart_item td.product-name,
.woocommerce-checkout-review-order-table td.product-name,
.woocommerce-checkout table.shop_table td.product-name {
  color: var(--light) !important;
  font-weight: 500 !important;
  text-align: left !important;
}

.woocommerce-checkout-review-order-table .cart_item td.product-total,
.woocommerce-checkout-review-order-table td.product-total {
  color: var(--tritium) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
  text-align: right !important;
}

.woocommerce-checkout-review-order-table .product-quantity,
.woocommerce-checkout-review-order-table strong.product-quantity {
  color: var(--blaze) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
}

/* Shipping method label in the shipping row */
.woocommerce-checkout-review-order-table tr.shipping td ul,
.woocommerce-checkout table.shop_table tr.shipping td ul,
.woocommerce-checkout-review-order-table tr.shipping td .woocommerce-shipping-methods {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce-checkout-review-order-table tr.shipping td ul li,
.woocommerce-checkout table.shop_table tr.shipping td ul li {
  color: var(--light) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* =============================================
   V37 — FORTIS PAYMENT FORM (VIA CSS VARIABLE CASCADE)
   -----
   Fortis's payment form uses CSS custom properties
   for theming. By redefining those variables within
   the payment container's scope, the whole form re-
   themes through natural variable cascade. This is
   cleaner and more robust than !important overrides.
   ============================================= */

/* Redefine Fortis CSS variables at the payment container scope */
.woocommerce-checkout .payment_box,
.woocommerce-checkout #payment,
.woocommerce-checkout #form-main,
.woocommerce-checkout [id^="fortis_"],
.woocommerce-checkout .payment_box * {
  --colorFieldBackground: var(--dark-3);
  --colorFieldBorder: rgba(255, 98, 0, 0.30);
  --colorFieldBorderFocus: var(--blaze);
  --colorFieldText: var(--blaze);
  --colorText: var(--light);
  --colorTextSecondary: var(--muted);
  --colorBackground: var(--dark-2);
  --colorBackgroundAlt: var(--dark-3);
  --colorPrimary: var(--tritium);
  --colorPrimaryText: var(--black);
  --colorButtonBackground: var(--tritium);
  --colorButtonText: var(--black);
  --colorButtonBackgroundHover: var(--tritium-dim);
  --colorBorder: var(--dark-4);
  --colorSuccess: var(--tritium);
  --colorError: var(--blaze);
  --colorWarning: var(--blaze-hot);
  --bs-body-bg: var(--dark-2);
  --bs-body-color: var(--light);
  --bs-body-font-family: var(--font-body);
  --fontFamily: var(--font-body);
  --body-bg: var(--dark-2);
  --body-color: var(--light);
}

/* Payment box container */
.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout ul.payment_methods li div.payment_box {
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  border: 1px solid var(--dark-4) !important;
  color: var(--light) !important;
  padding: var(--space-md) !important;
  margin-top: var(--space-sm) !important;
  border-radius: var(--radius-sm) !important;
}

.woocommerce-checkout #payment div.payment_box::before {
  display: none !important;
}

/* Fortis inline form container */
.payment_box form#form-main,
.payment_box #form-main,
#form-main,
.payment_box form {
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  color: var(--light) !important;
  padding: 0 !important;
  font-family: var(--font-body) !important;
}

/* Fortis sections (card details, billing, etc.) */
.payment_box #form-main section,
#form-main section,
.payment_box form section {
  background: transparent !important;
  color: var(--light) !important;
  padding: var(--space-sm) 0 !important;
}

/* Fortis columns (Bulma grid) */
.payment_box .columns,
.payment_box .column,
#form-main .columns,
#form-main .column {
  color: var(--light) !important;
  background: transparent !important;
}

/* Fortis text inputs — card number, expiry, CVV, zip, etc. */
.payment_box #form-main input[type="text"],
.payment_box #form-main input[type="number"],
.payment_box #form-main input[type="tel"],
.payment_box #form-main input[type="email"],
.payment_box #form-main .input,
#form-main input[type="text"],
#form-main input[type="number"],
#form-main input[type="tel"],
#form-main .input,
.payment_box .input {
  background: var(--dark-3) !important;
  background-color: var(--dark-3) !important;
  border: 1px solid var(--ga-input-border) !important;
  color: var(--blaze) !important;
  border-radius: var(--radius-sm) !important;
  padding: 10px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  min-height: 42px !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.payment_box #form-main input:hover,
#form-main input:hover {
  background: var(--dark-3) !important;
  border-color: rgba(255, 98, 0, 0.50) !important;
}

.payment_box #form-main input:focus,
#form-main input:focus,
.payment_box #form-main input.is-focused,
#form-main input.is-focused {
  outline: none !important;
  background: var(--dark-3) !important;
  border-color: var(--blaze) !important;
  color: var(--blaze-hot) !important;
  box-shadow: var(--ga-input-glow-focus) !important;
}

.payment_box #form-main input::placeholder,
#form-main input::placeholder,
.payment_box input::placeholder {
  color: var(--ga-input-placeholder) !important;
  opacity: 1 !important;
}

/* Fortis labels */
.payment_box #form-main label,
.payment_box #form-main .label,
.payment_box #form-main .field-label,
#form-main label,
#form-main .label,
.payment_box label,
.payment_box .label {
  color: var(--muted) !important;
  font-family: var(--font-display) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
  display: block !important;
}

/* Fortis headings (CREDIT CARD, etc.) */
.payment_box #form-main h1,
.payment_box #form-main h2,
.payment_box #form-main h3,
.payment_box #form-main h4,
.payment_box #form-main .title,
.payment_box #form-main .subtitle,
.payment_box .card-brand-label,
#form-main h1,
#form-main h2,
#form-main h3,
#form-main h4,
.payment_box h1,
.payment_box h2,
.payment_box h3,
.payment_box h4 {
  color: var(--white) !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  margin: 0 0 var(--space-sm) 0 !important;
  background: transparent !important;
}

/* Fortis "Pay Now" button (was bright blue) */
.payment_box #submit-button input[type="submit"],
.payment_box #submit-button button,
.payment_box #form-main #submit-button input,
.payment_box #form-main #submit-button button,
.payment_box #form-main button[type="submit"],
.payment_box #form-main input[type="submit"],
#form-main button[type="submit"],
#form-main input[type="submit"],
#form-main #submit-button input[type="submit"],
.payment_box .button.is-primary,
#form-main .button.is-primary {
  background: var(--tritium) !important;
  background-color: var(--tritium) !important;
  background-image: none !important;
  color: var(--black) !important;
  border: 1px solid var(--tritium) !important;
  font-family: var(--font-display) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 14px 28px !important;
  border-radius: var(--radius-md) !important;
  cursor: pointer !important;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
  width: 100% !important;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition) !important;
  min-height: 48px !important;
}

.payment_box #submit-button input[type="submit"]:hover,
.payment_box #form-main button[type="submit"]:hover,
.payment_box #form-main input[type="submit"]:hover,
#form-main button[type="submit"]:hover,
#form-main input[type="submit"]:hover,
#form-main #submit-button input[type="submit"]:hover {
  background: var(--tritium-dim) !important;
  background-color: var(--tritium-dim) !important;
  border-color: var(--tritium-dim) !important;
  transform: translateY(-1px) !important;
  box-shadow:
    0 4px 10px rgba(170, 255, 0, 0.35),
    0 2px 4px rgba(0, 0, 0, 0.4) !important;
}

/* Fortis amounts display (subtotal/tax/total on the right side of widget) */
#amount_subtotal,
#amount_tax,
#amount_surcharge,
#amount_total,
.payment_box [id^="amount_"],
.payment_box [id^="amount-"] {
  color: var(--light) !important;
  font-family: var(--font-body) !important;
  background: transparent !important;
}

#amount_total {
  color: var(--tritium) !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
  font-family: var(--font-display) !important;
}

/* Fortis card_single_field wrapper (shown in DevTools with its own vars) */
#card_single_field,
.payment_box #card_single_field,
.payment_box [class*="card_single_field"] {
  background: var(--dark-3) !important;
  background-color: var(--dark-3) !important;
  border: 1px solid var(--ga-input-border) !important;
  border-radius: var(--radius-sm) !important;
  padding: 2px !important;
}

/* Fortis checkbox ("Remember my credit card number") */
.payment_box input[type="checkbox"],
#form-main input[type="checkbox"] {
  accent-color: var(--blaze) !important;
  width: 16px !important;
  height: 16px !important;
  cursor: pointer !important;
}

/* Fortis G Pay / Apple Pay buttons — leave branded but add dark container */
.payment_box .gpay-button,
.payment_box .apple-pay-button,
#form-main .gpay-button,
#form-main .apple-pay-button,
#digital-wallet-container {
  background: transparent !important;
}

/* Card brand logos (Visa, Mastercard, etc.) */
.payment_box img[src*="visa"],
.payment_box img[src*="mastercard"],
.payment_box img[src*="amex"],
.payment_box img[src*="discover"],
.payment_box .card-brands img,
.payment_box .brand-icons img {
  filter: brightness(0.92) contrast(1.1) !important;
  opacity: 0.95 !important;
}

/* Fortis alert/error messages */
.payment_box .alert,
.payment_box .alert-danger,
#form-main .alert,
#form-main .alert-danger,
.payment_box .errors,
.payment_box .server-errors {
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  border: 1px solid var(--blaze-dim) !important;
  border-left: 3px solid var(--blaze) !important;
  color: var(--blaze) !important;
  padding: var(--space-sm) var(--space-md) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-body) !important;
}

/* Fortis helper/secondary text */
.payment_box small,
#form-main small,
.payment_box .help,
#form-main .help,
.payment_box p,
#form-main p {
  color: var(--muted) !important;
  font-size: 0.88rem !important;
}

/* Fortis p-tag totals (may differ from #amount_total) */
.payment_box .total-amount,
#form-main .total-amount,
#form-main p#total {
  color: var(--tritium) !important;
  font-weight: 700 !important;
  font-family: var(--font-display) !important;
}



/* -------- Extra-small phones (V29 mobile drawer overrides) -------- */
@media (max-width: 480px) {
    .filter-sidebar,
    .ga-sort-sheet {
        width: 100% !important;
        max-width: none !important;
    }
}


/* =============================================
   V38 — CHECKOUT LAYOUT + SHOP GRID FIXES
   -----
   1. Kill the WooCommerce default ::before info icon on
      "Returning customer?" and "Have a coupon?" toggles
      — it rendered as blue ghost letters ("RET", "HAVE")
      layered behind the real text because the default
      blue color (#1e85be) was leaking through the icon
      font fallback.
   2. Make the yellow #first_last_notice helper span the
      full width of the billing grid so FIRST NAME and
      LAST NAME sit side-by-side directly below it
      (was: notice in left cell, first_name in right cell,
      last_name wrapping under notice).
   3. Promote the 4-col desktop / 2-col mobile shop grid
      and pagination fixes from site-level Additional CSS
      into the theme so they travel with the theme file.
   ============================================= */

/* ---------- 1. Remove blue ::before icon on info toggles ---------- */
.woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-form-coupon-toggle .woocommerce-info::before {
    content: none !important;
    display: none !important;
}

.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-form-coupon-toggle .woocommerce-info a {
    text-shadow: none !important;
    padding-left: var(--space-md) !important; /* no icon → reclaim left pad */
}

/* ---------- 2. Helper note spans full billing grid ---------- */
.woocommerce-checkout #first_last_notice,
.woocommerce-checkout p#first_last_notice,
.woocommerce-checkout p.notice#first_last_notice,
.woocommerce-billing-fields__field-wrapper #first_last_notice,
.woocommerce-billing-fields__field-wrapper p.notice,
.woocommerce-shipping-fields__field-wrapper p.notice {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

/* Ensure first/last name take one grid cell each (reset any legacy
   form-row-first/form-row-last floats that can fight the grid) */
.woocommerce-checkout #billing_first_name_field,
.woocommerce-checkout #billing_last_name_field,
.woocommerce-checkout #shipping_first_name_field,
.woocommerce-checkout #shipping_last_name_field,
.woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-billing-fields__field-wrapper .form-row-last,
.woocommerce-shipping-fields__field-wrapper .form-row-first,
.woocommerce-shipping-fields__field-wrapper .form-row-last {
    grid-column: auto !important;
    width: auto !important;
    float: none !important;
    margin-right: 0 !important;
    clear: none !important;
}

/* Mobile: stack billing fields full-width under the notice */
@media (max-width: 768px) {
    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr !important;
    }
}

/* ---------- 3. Shop grid: 4 desktop / 2 mobile + pagination ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    /* V41.2: `dense` auto-packs items so a hidden/phantom first child
       never leaves an empty grid slot in row 1 column 1 of the shop.
       Also `list-style: none` to kill any residual bullet on li.product. */
    grid-auto-flow: row dense !important;
    gap: 1.5em !important;
    padding: 0 !important;
    list-style: none !important;
}

/* V41.2: Any direct child of ul.products that isn't a .product — e.g.
   notice wrappers injected by plugins, empty li stubs, or layout
   spacers — is suppressed so it can't steal a grid cell. Kept as a
   defensive rule; safe even if nothing phantom is present. */
.woocommerce ul.products > :not(.product),
.woocommerce-page ul.products > :not(.product) {
    display: none !important;
}

.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce ul.products li.product a,
.ga-product-card__image-wrap {
    height: auto !important;
    overflow: visible !important;
    display: block !important;
}

.woocommerce ul.products li.product a img,
.ga-product-card__image {
    height: 160px !important;
    width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
    background: #1a1a1a !important;
}

/* Pagination */
body .woocommerce nav.woocommerce-pagination {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
}

body .woocommerce nav.woocommerce-pagination ul.page-numbers {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 1em !important;
    list-style: none !important;
    width: auto !important;
}

body .woocommerce nav.woocommerce-pagination ul.page-numbers li {
    display: inline-block !important;
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
}

/* Shop grid mobile */
@media (max-width: 768px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75em !important;
    }

    .woocommerce ul.products li.product a img,
    .ga-product-card__image {
        height: 120px !important;
    }
}


/* =============================================
   V39 — FFL SELECTED STATE VISUAL CONFIRMATION
   -----
   The FFL Checkout plugin adds the class
   `.selectedFFLDivButton` to the clicked FFL card
   (confirmed via DevTools on live checkout). V37
   styled `.selected`/`.active`/`[aria-selected]` —
   none of which the plugin actually uses, so the
   selection was invisible.

   V39 targets the real class and makes the
   selected dealer unmistakably obvious:
   - Tritium-green border + outer glow
   - "✓ SELECTED — FIREARM SHIPS HERE" banner
     anchored at the bottom of the card
   - ✓ prefix on the dealer name
   - Unselected dealers fade to 45% opacity with
     grayscale so the choice is visually locked in
     (still clickable, brightens on hover)
   ============================================= */

/* Selected FFL card — strong visual treatment */
button.ffl-list-div.selectedFFLDivButton,
#ffl-list button.selectedFFLDivButton {
    border: 2px solid var(--tritium) !important;
    border-left: 4px solid var(--tritium) !important;
    background: rgba(170, 255, 0, 0.10) !important;
    background-color: rgba(170, 255, 0, 0.10) !important;
    box-shadow:
        0 0 0 2px rgba(170, 255, 0, 0.20),
        0 0 24px rgba(170, 255, 0, 0.25) !important;
    position: relative !important;
    padding-bottom: 48px !important; /* room for the banner */
    transition: all 0.2s ease-out !important;
}

/* "✓ SELECTED — FIREARM SHIPS HERE" banner across the card bottom */
button.ffl-list-div.selectedFFLDivButton::after {
    content: "\2713  SELECTED \2014 FIREARM SHIPS HERE" !important;
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    padding: 10px 16px !important;
    background: var(--tritium) !important;
    color: var(--black) !important;
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    font-size: 0.80rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm) !important;
    line-height: 1.2 !important;
}

/* Green checkmark prefix on the dealer name */
button.ffl-list-div.selectedFFLDivButton b::before,
button.ffl-list-div.selectedFFLDivButton strong::before {
    content: "\2713 " !important;
    color: var(--tritium) !important;
    font-weight: 900 !important;
    margin-right: 4px !important;
}

/* De-emphasize unselected cards once a selection is made
   (modern browsers, :has() is supported in Chrome 105+,
   Safari 15.4+, Firefox 121+) */
#ffl-list:has(.selectedFFLDivButton) > div:not(:has(.selectedFFLDivButton)) button.ffl-list-div {
    opacity: 0.45 !important;
    filter: grayscale(30%) !important;
    transition: opacity 0.2s ease, filter 0.2s ease !important;
}

/* Unselected cards come back to full vividness on hover so the
   customer can still review + switch their choice */
#ffl-list:has(.selectedFFLDivButton) > div:not(:has(.selectedFFLDivButton)) button.ffl-list-div:hover {
    opacity: 1 !important;
    filter: none !important;
}

/* Hide the pink "Click on an FFL dealer below..." prompt
   once a selection is made — its work is done and it
   competes visually with the green confirmation banner */
.ffl_checkout_wrap:has(#ffl-list .selectedFFLDivButton) .ffl-prompt-message,
.ffl_checkout_wrap:has(#ffl-list .selectedFFLDivButton) p.ffl_checkout_notice--prompt {
    display: none !important;
}


/* =============================================
   V40 — PIN GNOME ARMS FFL VIA CSS FLEX ORDER
   -----
   V39's PHP filter didn't match the g-ffl-checkout
   plugin's actual hook name, so Gnome Arms stayed
   at position #3. V40 uses a presentation-layer pin
   that's guaranteed to work regardless of the
   plugin's internal hook conventions.

   The FFL Checkout plugin renders each dealer card
   as a <div id="{ffl-number}"> wrapper containing a
   <button class="ffl-list-div">. Because each FFL
   license is a stable globally-unique identifier,
   we can target the Gnome Arms wrapper by exact id
   and give it flex-order:-1 to pop it to the top.

   If/when the correct PHP hook name is identified
   the filter in functions.php will also reorder on
   the server side — both approaches are complementary
   and safely idempotent.
   ============================================= */

/* Make the FFL list a flex column so `order` applies */
#ffl-list,
ul#ffl-list {
    display: flex !important;
    flex-direction: column !important;
}

/* All children get default order; the home dealer gets a lower
   order value so it floats to the top regardless of distance */
#ffl-list > div {
    order: 0 !important;
}

#ffl-list > div[id="5-83-037-07-9D-04736"],
#ffl-list > div#\35 -83-037-07-9D-04736 {
    order: -1 !important;
    position: relative !important;
}

/* "HOME DEALER" corner badge on the Gnome Arms card so
   customers see it's the store itself (not just some
   algorithmic top result). Sits top-right, above the
   document icon already in the plugin markup. */
#ffl-list > div[id="5-83-037-07-9D-04736"]::before,
#ffl-list > div#\35 -83-037-07-9D-04736::before {
    content: "HOME DEALER" !important;
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    z-index: 3 !important;
    padding: 3px 8px !important;
    background: var(--blaze) !important;
    color: var(--black) !important;
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    font-size: 0.65rem !important;
    letter-spacing: 0.10em !important;
    text-transform: uppercase !important;
    border-radius: 2px !important;
    box-shadow: 0 0 10px rgba(255, 98, 0, 0.45) !important;
    pointer-events: none !important;
}

/* Nudge the plugin's own document icon inward on the home card
   so it doesn't collide with the HOME DEALER badge */
#ffl-list > div[id="5-83-037-07-9D-04736"] button.ffl-list-div img[align="right"],
#ffl-list > div#\35 -83-037-07-9D-04736 button.ffl-list-div img[align="right"] {
    margin-top: 28px !important;
}

/* When the home dealer is also the selected one, adjust the
   badge so it doesn't clash with the tritium border treatment */
#ffl-list > div[id="5-83-037-07-9D-04736"]:has(.selectedFFLDivButton)::before,
#ffl-list > div#\35 -83-037-07-9D-04736:has(.selectedFFLDivButton)::before {
    background: var(--tritium) !important;
    box-shadow: 0 0 10px rgba(170, 255, 0, 0.55) !important;
}

/* =================================================================
   V41.3 — FFL SERVICES PAGE TEMPLATE
   ================================================================= */

.ffl-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
  margin-bottom: var(--space-2xl);
}
@media (max-width: 900px) {
  .ffl-services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .ffl-services-grid { grid-template-columns: 1fr; }
}

.ffl-service-card {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.ffl-service-card:hover {
  border-color: rgba(255, 98, 0, 0.45);
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
}
.ffl-service-card__icon {
  font-size: 1.6rem;
  color: var(--blaze);
  margin-bottom: var(--space-xs);
}
.ffl-service-card__title {
  font-size: 1.05rem;
  margin: 0;
  color: var(--white);
}
.ffl-service-card__desc {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.ffl-service-card__fee {
  margin-top: var(--space-md);
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--tritium);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--dark-4);
}

/* Process steps */
.ffl-process-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-2xl) 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}
.ffl-process-steps > li {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-lg);
  align-items: start;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  padding: var(--space-lg) var(--space-xl);
}
.ffl-process-steps__num {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--blaze);
  line-height: 1;
  letter-spacing: 0.04em;
}
.ffl-process-steps h3 {
  margin: 0 0 var(--space-xs) 0;
  font-size: 1.05rem;
  color: var(--white);
}
.ffl-process-steps p {
  margin: 0;
  color: var(--muted);
  font-size: 0.93rem;
  line-height: 1.55;
}
@media (max-width: 600px) {
  .ffl-process-steps > li { grid-template-columns: 56px 1fr; padding: var(--space-md); }
  .ffl-process-steps__num { font-size: 1.6rem; }
}

/* FFL info card */
.ffl-info-card {
  background: rgba(255, 98, 0, 0.05);
  border: 1px solid rgba(255, 98, 0, 0.25);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--space-xl);
  margin-bottom: var(--space-2xl);
  align-items: start;
}
.ffl-info-card__icon {
  font-size: 2.4rem;
  color: var(--blaze);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  width: 64px;
  background: rgba(255, 98, 0, 0.10);
  border-radius: var(--radius-md);
}
.ffl-info-card__body h3 {
  color: var(--blaze);
  margin: 0 0 var(--space-md) 0;
}
.ffl-info-card__dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--space-xs) var(--space-lg);
  margin: 0 0 var(--space-md) 0;
}
.ffl-info-card__dl dt {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  color: var(--muted);
  padding-top: 2px;
}
.ffl-info-card__dl dd {
  margin: 0;
  color: var(--white);
  font-family: var(--font-mono);
  font-size: 0.98rem;
  letter-spacing: 0.04em;
}
.ffl-info-card__note {
  color: var(--muted);
  font-size: 0.88rem;
  margin: 0;
}
.ffl-info-card__note a {
  color: var(--blaze);
  text-decoration: underline;
}
@media (max-width: 600px) {
  .ffl-info-card { grid-template-columns: 1fr; padding: var(--space-lg); }
  .ffl-info-card__dl { grid-template-columns: 1fr; gap: 2px 0; }
  .ffl-info-card__dl dd { margin-bottom: var(--space-sm); }
}

/* What to bring */
.ffl-bring-card {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  margin-bottom: var(--space-2xl);
}
.ffl-bring-card h3 {
  margin: 0 0 var(--space-md) 0;
  color: var(--white);
  font-size: 1.05rem;
}
.ffl-bring-card h3 i {
  color: var(--tritium);
  margin-right: var(--space-sm);
}
.ffl-bring-card ul {
  margin: 0;
  padding: 0 0 0 var(--space-lg);
  color: var(--muted);
  line-height: 1.7;
}

/* FAQ */
.ffl-faq {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-bottom: var(--space-2xl);
}
.ffl-faq__item {
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-md);
  padding: 0;
  transition: border-color var(--transition);
}
.ffl-faq__item[open] { border-color: rgba(255, 98, 0, 0.35); }
.ffl-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: var(--space-md) var(--space-lg);
  font-weight: 600;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  user-select: none;
}
.ffl-faq__item summary::-webkit-details-marker { display: none; }
.ffl-faq__item summary::after {
  content: "\002B";
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--blaze);
  transition: transform var(--transition);
  line-height: 1;
}
.ffl-faq__item[open] summary::after { content: "\2212"; }
.ffl-faq__item p {
  margin: 0;
  padding: 0 var(--space-lg) var(--space-md) var(--space-lg);
  color: var(--muted);
  line-height: 1.65;
  font-size: 0.94rem;
}

/* CTA */
.ffl-cta-card {
  text-align: center;
  background: var(--dark-2);
  border: 1px solid var(--dark-4);
  border-radius: var(--radius-lg);
  padding: var(--space-2xl);
  margin-top: var(--space-2xl);
}
.ffl-cta-card h3 { margin: 0 0 var(--space-sm) 0; }
.ffl-cta-card__actions {
  display: flex;
  gap: var(--space-md);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--space-lg);
}

/* =================================================================
   V41.3 — SITE-WIDE FORM AESTHETIC AUDIT
   Drives consistency with the Contact Us form aesthetic:
   - adequate field height (10–12px vertical padding, 1.4 line-height)
   - light grey placeholder (var(--ga-input-placeholder))
   - consistent border + focus treatment (orange glow)
   - unified box-sizing so widths are predictable

   Strategy: Bump specificity on a second pass so individual plugin
   stylesheets (WooCommerce, Contact Form 7, WPBakery) can't reassert
   their defaults. Uses the same :root tokens defined for .ga-input
   so Contact Us and checkout/account/cart always match.
   ================================================================= */

/* Newsletter signup + any generic email / subscribe widget */
.widget_newsletter input[type="email"],
.widget_newsletter input[type="text"],
.ga-newsletter input[type="email"],
.ga-newsletter input[type="text"],
.footer-newsletter input[type="email"],
.footer-newsletter input[type="text"],
.site-footer input[type="email"],
.site-footer input[type="text"],
.site-footer input[type="search"],
.site-footer textarea,
/* MailPoet / Mailchimp / Jetpack subscribe forms */
.mailpoet_form input[type="text"],
.mailpoet_form input[type="email"],
.mailpoet_form textarea,
.mc4wp-form input[type="text"],
.mc4wp-form input[type="email"],
.mc4wp-form textarea,
.jetpack_subscription_widget input[type="text"],
.jetpack_subscription_widget input[type="email"],
/* WooCommerce coupon + login inputs where selector list missed them */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-MyAccount-content input.input-text,
.woocommerce-MyAccount-content select,
.woocommerce-MyAccount-content textarea,
/* Gravity Forms (common FFL-site plugin) */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select,
/* Elementor forms */
.elementor-form input[type="text"],
.elementor-form input[type="email"],
.elementor-form input[type="tel"],
.elementor-form input[type="url"],
.elementor-form input[type="number"],
.elementor-form textarea,
.elementor-form select,
/* Ninja Forms */
.nf-form-cont input[type="text"],
.nf-form-cont input[type="email"],
.nf-form-cont input[type="tel"],
.nf-form-cont input[type="url"],
.nf-form-cont input[type="number"],
.nf-form-cont textarea,
.nf-form-cont select {
  background: var(--ga-input-bg) \!important;
  border: 1px solid var(--ga-input-border) \!important;
  border-radius: var(--radius-sm) \!important;
  color: var(--ga-input-text) \!important;
  font-family: var(--font-body) \!important;
  font-size: 1rem \!important;
  line-height: 1.4 \!important;
  padding: 10px 16px \!important;
  box-sizing: border-box \!important;
  width: 100%;
  -webkit-appearance: none \!important;
  appearance: none \!important;
  transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition) \!important;
}

.widget_newsletter input[type="email"]::placeholder,
.widget_newsletter input[type="text"]::placeholder,
.ga-newsletter input::placeholder,
.footer-newsletter input::placeholder,
.site-footer input::placeholder,
.site-footer textarea::placeholder,
.mailpoet_form input::placeholder,
.mailpoet_form textarea::placeholder,
.mc4wp-form input::placeholder,
.mc4wp-form textarea::placeholder,
.jetpack_subscription_widget input::placeholder,
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder,
.elementor-form input::placeholder,
.elementor-form textarea::placeholder,
.nf-form-cont input::placeholder,
.nf-form-cont textarea::placeholder,
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder,
.woocommerce-MyAccount-content input.input-text::placeholder,
.woocommerce-MyAccount-content textarea::placeholder {
  color: var(--ga-input-placeholder) \!important;
  opacity: 1 \!important;
}

.widget_newsletter input:focus,
.ga-newsletter input:focus,
.footer-newsletter input:focus,
.site-footer input:focus,
.site-footer textarea:focus,
.mailpoet_form input:focus,
.mailpoet_form textarea:focus,
.mc4wp-form input:focus,
.mc4wp-form textarea:focus,
.jetpack_subscription_widget input:focus,
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus,
.elementor-form input:focus,
.elementor-form textarea:focus,
.elementor-form select:focus,
.nf-form-cont input:focus,
.nf-form-cont textarea:focus,
.nf-form-cont select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-MyAccount-content input.input-text:focus,
.woocommerce-MyAccount-content select:focus,
.woocommerce-MyAccount-content textarea:focus {
  outline: none \!important;
  background: var(--ga-input-bg-focus) \!important;
  border-color: var(--ga-input-border-focus) \!important;
  color: var(--ga-input-text-strong) \!important;
  box-shadow: var(--ga-input-glow-focus) \!important;
}

/* Labels above inputs — consistent sizing & spacing */
.wpcf7-form label,
.wpb_content_element label,
.gform_wrapper label,
.elementor-field-label,
.woocommerce form .form-row label,
.woocommerce-MyAccount-content label {
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: var(--light);
  font-weight: 600;
  margin-bottom: 6px;
  display: block;
}

/* Required asterisk — blaze, not crimson */
.wpcf7-form label .wpcf7-not-valid-tip,
.gform_wrapper .gfield_required,
.elementor-mark-required .elementor-field-label::after,
.woocommerce form .form-row abbr.required,
.woocommerce-MyAccount-content abbr.required {
  color: var(--blaze) \!important;
}

/* Submit buttons across plugin forms — match .btn--primary look */
.wpcf7 input[type="submit"],
.wpcf7-submit,
.gform_wrapper .gform_button,
.elementor-form button[type="submit"],
.elementor-form .elementor-button,
.nf-form-cont input[type="submit"],
.mc4wp-form input[type="submit"],
.mailpoet_form .mailpoet_submit,
.jetpack_subscription_widget input[type="submit"] {
  background: var(--blaze) \!important;
  color: var(--black) \!important;
  border: 0 \!important;
  border-radius: var(--radius-sm) \!important;
  padding: 12px 28px \!important;
  font-family: var(--font-display) \!important;
  font-weight: 800 \!important;
  letter-spacing: 0.06em \!important;
  text-transform: uppercase \!important;
  font-size: 0.92rem \!important;
  cursor: pointer \!important;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition) \!important;
  box-shadow: 0 2px 10px rgba(255, 98, 0, 0.25) \!important;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7-submit:hover,
.gform_wrapper .gform_button:hover,
.elementor-form button[type="submit"]:hover,
.elementor-form .elementor-button:hover,
.nf-form-cont input[type="submit"]:hover,
.mc4wp-form input[type="submit"]:hover,
.mailpoet_form .mailpoet_submit:hover,
.jetpack_subscription_widget input[type="submit"]:hover {
  background: var(--blaze-hot) \!important;
  transform: translateY(-1px) \!important;
  box-shadow: 0 6px 18px rgba(255, 98, 0, 0.40) \!important;
}

/* Help text / descriptions under fields */
.wpcf7-form .wpcf7-form-control-wrap + .desc,
.gform_wrapper .gfield_description,
.elementor-field-description,
.woocommerce form .form-row .description {
  color: var(--muted) \!important;
  font-size: 0.85rem \!important;
  margin-top: 6px \!important;
}


/* =============================================
   V41.5 - SEARCH SUBMIT BUTTON
   Styles the generic WooCommerce / widget search
   submit button to match the dark theme.
   ============================================= */

.search-form .search-submit,
.woocommerce-product-search button[type="submit"],
form.search-form button[type="submit"] {
  background: var(--dark-2) !important;
  background-color: var(--dark-2) !important;
  border: 1px solid var(--tritium) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--tritium) !important;
  padding: 10px 14px !important;
  cursor: pointer !important;
  transition: background var(--transition), box-shadow var(--transition) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.search-form .search-submit:hover,
.woocommerce-product-search button[type="submit"]:hover,
form.search-form button[type="submit"]:hover {
  background: rgba(170,255,0,0.10) !important;
  box-shadow: var(--glow-tritium) !important;
}

.search-form .search-submit svg,
.woocommerce-product-search button svg {
  fill: var(--tritium) !important;
  color: var(--tritium) !important;
}


/* =============================================
   V41.5 - WOOCOMMERCE NOTICE MOBILE FIXES
   Stacks notice text above button on small screens.
   ============================================= */

@media (max-width: 768px) {
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 14px 14px 14px 18px !important;
    font-size: 0.875rem !important;
    word-break: break-word !important;
  }

  .woocommerce-message .button,
  .woocommerce-info .button,
  .woocommerce-error .button {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    text-align: center !important;
    padding: 10px 14px !important;
    font-size: 0.8rem !important;
  }

  .woocommerce-message::before,
  .woocommerce-info::before,
  .woocommerce-error::before {
    display: none !important;
  }
}


/* =============================================
   V41.5 - PRICE FILTER APPLY - iOS TOUCH FIX
   touch-action:manipulation disables the 300ms
   tap delay so the handler fires on iPhone.
   The touchend binding lives in filters.js.
   ============================================= */

[data-ga-price-apply] {
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 1 !important;
}


/* =============================================
   V41.6 - FFL PROCESS STEPS GRID
   Desktop: 4-column horizontal layout.
   Mobile: 2-column grid so cards are readable.
   Replaces the inline style that had no
   responsive breakpoint.
   ============================================= */

.ffl-process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-lg);
  margin-bottom: var(--space-3xl);
}

@media (max-width: 768px) {
  .ffl-process-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--space-md) !important;
  }
}

@media (max-width: 480px) {
  .ffl-process-grid {
    grid-template-columns: 1fr !important;
  }

  .ffl-process-grid .ffl-card {
    text-align: left !important;
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
  }
}


/* ============================================================
   MY ACCOUNT — Navigation sidebar
   Apply display font + theme treatment to WC account nav
   ============================================================ */

.woocommerce-MyAccount-navigation ul {
    list-style: none \!important;
    padding: 0 \!important;
    margin: 0 0 var(--space-lg) \!important;
}

.woocommerce-MyAccount-navigation ul li a {
    font-family: var(--font-display) \!important;
    font-size: 1.1rem \!important;
    letter-spacing: 0.08em \!important;
    text-transform: uppercase \!important;
    color: var(--light-1) \!important;
    text-decoration: none \!important;
    display: block \!important;
    padding: 8px 0 8px 12px \!important;
    border-left: 3px solid transparent \!important;
    transition: color 0.2s ease, border-color 0.2s ease \!important;
}

.woocommerce-MyAccount-navigation ul li a:hover {
    color: var(--tritium) \!important;
    border-left-color: var(--tritium) \!important;
}

.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
    color: var(--tritium) \!important;
    border-left-color: var(--tritium) \!important;
}
