/*
Theme Name: Picket Post Armory
Theme URI: https://picketpostarmory.com
Author: Picket Post Armory LLC
Author URI: https://picketpostarmory.com
Description: Custom WooCommerce theme for Picket Post Armory — personal protection, field gear, and emergency preparedness. Gilbert, AZ.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: Proprietary
Text Domain: ppa

Protect. Prepare. Prevail.
*/

/* ═══════════════════════════════════════════════════════
   DESIGN TOKENS — Brand identity (LOCKED)
   ═══════════════════════════════════════════════════════ */
:root {
  /* Colors */
  --ppa-base: #0C0E10;
  --ppa-parchment: #EDE4D0;
  --ppa-teal: #4EA8A0;
  --ppa-teal-hover: #5BBAB2;
  --ppa-teal-soft: rgba(78,168,160,0.10);
  --ppa-gold: #C4943A;
  --ppa-gold-dim: rgba(196,148,58,0.28);
  --ppa-surface: #0C0E10;
  --ppa-surface-hover: rgba(78, 168, 160, 0.08);
  --ppa-glass-teal-weak: rgba(78, 168, 160, 0.06);
  --ppa-glass-teal: rgba(78, 168, 160, 0.12);
  --ppa-glass-teal-strong: rgba(78, 168, 160, 0.2);
  --ppa-glass-border: rgba(78, 168, 160, 0.28);
  --ppa-line: rgba(196,148,58,0.10);
  --ppa-text-dim: rgba(237,228,208,0.72);
  --ppa-text-mid: rgba(237,228,208,0.88);
  --ppa-text-bright: rgba(237,228,208,0.85);

  /* Light theme overrides */
  --ppa-light-bg: #EDE4D0;
  --ppa-light-surface: #F5F0E4;
  --ppa-light-text: #1A1D20;
  --ppa-light-text-mid: #4A4A42;
  --ppa-light-text-light: #8A8578;
  --ppa-light-line: rgba(26,29,32,0.08);

  /* Typography */
  --ppa-font-display: 'Cormorant Garamond', Georgia, serif;
  --ppa-font-brand: 'Audiowide', cursive;
  --ppa-font-ui: 'Barlow Condensed', sans-serif;
  --ppa-font-body: 'Barlow', sans-serif;

  /* Price typography — unified product-price treatment (2026-07-18).
     Every product price on the site reads as Cormorant Garamond 600 /
     #6BC4BC; size scales per context. Struck MSRP = same font, dimmed
     same-hue, line-through. Per-surface rules point at these tokens. */
  --ppa-price-font: var(--ppa-font-display);
  --ppa-price-weight: 600;
  --ppa-price-color: #6BC4BC;
  --ppa-price-strike: rgba(107, 196, 188, 0.5);
  /* Cart and checkout render on a parchment panel, so the dark-theme teal
     above only reaches 1.6:1 there. Deep teal on parchment measures 5.6:1
     (WCAG AA). Use this token on any LIGHT surface. */
  --ppa-price-color-on-light: #096459;
  --ppa-price-strike-on-light: rgba(9, 100, 89, 0.55);

  /* Layout */
  --ppa-nav-h: 72px;
  --ppa-max-w: 1440px;
  --ppa-content-w: 1280px;
}

/* ═══════════════════════════════════════════════════════
   LIGHT MODE — parchment token set (2026-07-18)
   Approved palette: samples/light-mode-preview.html + light-mode-toggle-preview.html.
   The whole theme already routes color through the --ppa-* tokens above
   (600+ var() refs), so a mode flip is a pure TOKEN SWAP — no layout change,
   no new elements. Dark stays the :root default (the no-JS / FOUC-fallback
   face; a head script sets data-theme before paint). These same token NAMES
   are simply redefined to parchment values under [data-theme="light"].
   Nav / footer / mid-page bands are DARK ANCHORS (obsidian in BOTH modes) —
   their token context is reset to dark values further down so they keep bright
   teal + parchment ink, never deep parchment-teal on an obsidian island.
   ═══════════════════════════════════════════════════════ */
:root[data-theme="light"] {
  --ppa-base: #EDE4D0;              /* parchment canvas */
  --ppa-parchment: #1A1D20;         /* ink token (legacy name): dark ink on parchment */
  --ppa-teal: #0C8074;              /* deep teal — WCAG AA on parchment/cream */
  --ppa-teal-hover: #008F7A;
  --ppa-teal-soft: rgba(12,128,116,0.10);
  --ppa-gold: #C4943A;
  --ppa-gold-dim: rgba(196,148,58,0.45);
  --ppa-surface: #F7F2E7;           /* lifted cream card */
  --ppa-surface-hover: rgba(12,128,116,0.06);
  --ppa-glass-teal-weak: rgba(12,128,116,0.05);
  --ppa-glass-teal: rgba(12,128,116,0.09);
  --ppa-glass-teal-strong: rgba(12,128,116,0.16);
  --ppa-glass-border: rgba(12,128,116,0.28);
  /* [PARCHMENT-FIRST 2026-07-24] Both deepened -- owner audit: hairlines/text at the old
     values were too faint/borderline to pass AA against parchment. --ppa-line only ever
     gets LIGHTER on translucent overlays, so widening it here is a pure win, no downside;
     accent teal (--ppa-teal / --ppa-glass-border above) is intentionally left alone -- large
     surfaces = parchment, ink = text, teal/gold stay small accents, not big washes. */
  --ppa-line: rgba(26,29,32,0.22);
  --ppa-text-dim: #3A3A34;
  --ppa-text-mid: rgba(26,29,32,0.86);
  --ppa-text-bright: rgba(26,29,32,0.82);
  --ppa-price-color: #008F7A;       /* AA-large teal for the large price */
  --ppa-price-strike: rgba(0,143,122,0.5);
}
/* Dark anchors inside light mode — reset the island's token context to the
   dark values so the obsidian nav/footer keep bright teal + parchment ink.
   (Mid-page band selectors are added when the homepage is themed.) */
:root[data-theme="light"] .mr-nav,
:root[data-theme="light"] .ppa-footer {
  --ppa-base: #0C0E10;
  --ppa-parchment: #EDE4D0;
  --ppa-teal: #5BBAB2;
  --ppa-teal-hover: #6BC4BC;
  --ppa-surface: #0C0E10;
  --ppa-line: rgba(196,148,58,0.14);
  --ppa-text-dim: rgba(237,228,208,0.72);
  --ppa-text-mid: rgba(237,228,208,0.88);
  --ppa-text-bright: rgba(237,228,208,0.85);
  --ppa-price-color: #6BC4BC;
}

/* ── Unified price typography — base ──────────────────────────────
   One family + weight for every WooCommerce price span site-wide
   (PDP, cards, cart, mini-cart, checkout, account, order tables).
   Per-surface rules below add color + size. Summary panels keep
   their existing color so contrast is never regressed. */
.woocommerce-Price-amount {
  font-family: var(--ppa-price-font);
  font-weight: var(--ppa-price-weight);
}
/* Generic struck/MSRP WooCommerce price -> dim same-hue */
del .woocommerce-Price-amount {
  color: var(--ppa-price-strike);
  font-weight: 500;
}
/* [DN-033 2026-08-11] .ppa-psl-price rules deleted with single-product-shipping.js, the
   JS injector that was the only thing emitting that class. The PDP shipping line is now
   server-rendered as .ppa-pdp-shipping in woocommerce/single-product.php. */

/* ═══════════════════════════════════════════════════════
   RESET
   ═══════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; font-size: 16px; scroll-padding-top: 80px; }
body {
  font-family: var(--ppa-font-body);
  font-size: 16px;
  background: var(--ppa-base);
  color: var(--ppa-parchment);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
img { display: block; max-width: 100%; height: auto; }
ul, ol { list-style: none; }
input, select, textarea { font-family: inherit; }

/* ═══════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════ */
.ppa-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(12,14,16,0.97);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--ppa-gold-dim);
  height: var(--ppa-nav-h);
}
.ppa-nav-inner {
  max-width: var(--ppa-max-w); margin: 0 auto; height: 100%;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 24px;
}
.ppa-nav-logo {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 0; line-height: 1; flex-shrink: 0; text-decoration: none;
}
.ppa-nav-logo-top {
  font-family: var(--ppa-font-brand); font-size: clamp(13px, 1.6vw, 15px);
  color: var(--ppa-parchment); letter-spacing: 0.14em;
}
.ppa-nav-logo-bottom {
  font-family: var(--ppa-font-brand); font-size: clamp(20px, 2.5vw, 28px);
  color: var(--ppa-gold); letter-spacing: 0.08em; margin-top: -1px;
}
.ppa-nav-links {
  display: flex; align-items: center; gap: 0; height: 100%;
}
.ppa-nav-link {
  font-family: var(--ppa-font-ui); font-size: 14px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ppa-parchment); padding: 0 14px; height: 100%;
  display: flex; align-items: center; position: relative;
  transition: color 0.2s ease; white-space: nowrap;
  text-decoration: none;
}
.ppa-nav-link:hover,
.ppa-nav-link.active,
.ppa-nav-link--active { color: var(--ppa-parchment); }
.ppa-nav-link.active::after,
.ppa-nav-link--active::after {
  content: ''; position: absolute; bottom: 0; left: 14px; right: 14px;
  height: 2px; background: var(--ppa-teal);
}
.ppa-nav-link--start {
  color: var(--ppa-teal) !important; font-weight: 600;
}
.ppa-nav-link--start:hover { color: var(--ppa-teal-hover) !important; }
.ppa-nav-link--site { color: var(--ppa-text-dim); }
.ppa-nav-link--site:hover { color: var(--ppa-teal); }

/* Nav hover shimmer — contained teal gradient sweep */
.ppa-nav-link { position: relative; overflow: hidden; }
.ppa-nav-link::before {
  content: ''; position: absolute; top: 0; left: -100%; width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(78,200,192,0.5) 40%, rgba(78,200,192,0.5) 60%, transparent 100%);
  transition: left 0s; pointer-events: none;
}
.ppa-nav-link:hover::before {
  left: 160%; transition: left 0.7s ease;
}

/* Nav utilities */
.ppa-nav-utils { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.ppa-nav-btn {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  transition: opacity 0.2s ease;
}
.ppa-nav-btn svg {
  width: 20px; height: 20px; stroke: var(--ppa-parchment);
  opacity: 0.5; fill: none; transition: opacity 0.2s ease;
}
.ppa-nav-btn:hover svg { opacity: 1; }

/* Utility text links (Intel, Signal) */
.ppa-nav-util-link {
  font-family: var(--ppa-font-ui);
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ppa-text-dim);
  padding: 0 6px;
  transition: color 0.2s ease;
  text-decoration: none;
  white-space: nowrap;
}
.ppa-nav-util-link:hover { color: var(--ppa-teal); }

/* ── Price Range Chips ── */
.ppa-price-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.ppa-price-chip {
  display: inline-block;
  font-family: var(--ppa-font-ui);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 6px 12px;
  border: 1px solid var(--ppa-line);
  color: var(--ppa-text-mid);
  background: transparent;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.ppa-price-chip:hover {
  border-color: var(--ppa-teal);
  color: var(--ppa-teal);
}
.ppa-price-chip.active {
  background: var(--ppa-teal);
  border-color: var(--ppa-teal);
  color: #fff;
}
.ppa-price-chip--clear {
  border-color: rgba(196,148,58,0.3);
  color: var(--ppa-gold);
}
.ppa-price-chip--clear:hover {
  border-color: var(--ppa-gold);
  color: var(--ppa-gold);
}

/* ── Subcategory Card Grid (MidwayUSA-style) ── */
.ppa-subcat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--ppa-line);
}
.ppa-subcat-card {
  display: flex; flex-direction: row; align-items: center;
  gap: 16px;
  padding: 18px 22px;
  background: var(--ppa-surface);
  border: 1px solid var(--ppa-line);
  text-decoration: none;
  transition: all 0.2s ease;
  position: relative; overflow: hidden;
}
/* Shimmer sweep on subcategory cards — matched to nav shimmer */
.ppa-subcat-card::before {
  content: ''; position: absolute;
  top: 0; left: -100%; width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(78,200,192,0.5) 40%, rgba(78,200,192,0.5) 60%, transparent 100%);
  pointer-events: none; z-index: 1;
  transition: left 0s;
}
.ppa-subcat-card:hover::before {
  left: 160%; transition: left 0.7s ease;
}
.ppa-subcat-card:hover {
  border-color: var(--ppa-teal);
  background: rgba(78,168,160,0.04);
}
/* Subcategory sample image */
.ppa-subcat-img {
  width: 56px; height: 56px; flex-shrink: 0;
  background: #e8e0d0; border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ppa-subcat-img img {
  width: 100%; height: 100%; object-fit: contain;
  mix-blend-mode: multiply;
}
.ppa-subcat-name {
  font-family: var(--ppa-font-ui);
  font-size: 13px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ppa-parchment);
  margin-bottom: 4px;
}
.ppa-subcat-count {
  font-family: var(--ppa-font-body);
  font-size: 11px; color: var(--ppa-text-dim);
}
.ppa-subcat-arrow {
  position: absolute; right: 16px; top: 50%;
  transform: translateY(-50%);
  color: var(--ppa-teal); font-size: 16px;
  opacity: 0; transition: opacity 0.2s, transform 0.2s;
}
.ppa-subcat-card:hover .ppa-subcat-arrow {
  opacity: 1; transform: translateY(-50%) translateX(4px);
}
@media (max-width: 768px) {
  .ppa-subcat-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .ppa-subcat-card { padding: 12px 14px; }
}

/* ── Brands Page Grid ── */
.ppa-brands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  max-width: var(--ppa-content-w);
  margin: 0 auto;
  padding: 0 24px 60px;
}
.ppa-brand-card {
  display: flex; flex-direction: column; justify-content: center;
  padding: 20px 24px;
  background: var(--ppa-surface);
  border: 1px solid var(--ppa-line);
  text-decoration: none;
  position: relative; overflow: hidden;
  transition: all 0.25s ease;
  min-height: 80px;
}
.ppa-brand-card:hover {
  border-color: var(--ppa-teal);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
/* Brand color accent bar at bottom */
.ppa-brand-card-accent {
  position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: var(--brand-accent, var(--ppa-surface));
  transition: height 0.25s ease;
}
.ppa-brand-card:hover .ppa-brand-card-accent { height: 4px; }
/* Brand shimmer — matched to nav */
.ppa-brand-card::before {
  content: ''; position: absolute;
  top: 0; left: -100%; width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(78,200,192,0.5) 40%, rgba(78,200,192,0.5) 60%, transparent 100%);
  pointer-events: none; z-index: 1;
  transition: left 0s;
}
.ppa-brand-card:hover::before {
  left: 160%; transition: left 0.7s ease;
}
.ppa-brand-card-name {
  font-family: var(--ppa-font-ui);
  font-size: 14px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ppa-parchment);
  margin-bottom: 4px;
}
.ppa-brand-card-count {
  font-family: var(--ppa-font-body);
  font-size: 12px; color: var(--ppa-text-dim);
}
.ppa-brand-card-usa {
  position: absolute; top: 12px; right: 12px;
  font-size: 14px;
}
@media (max-width: 768px) {
  .ppa-brands-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .ppa-brand-card { padding: 14px 16px; min-height: 60px; }
}

/* ── Sidebar Brand Checkboxes ── */
.ppa-filter-brand-link::before {
  content: '';
  width: 14px; height: 14px; flex-shrink: 0;
  border: 1.5px solid var(--ppa-text-dim);
  margin-right: 10px;
  transition: all 0.15s ease;
}
.ppa-filter-brand-link:hover::before {
  border-color: var(--ppa-teal);
}
.ppa-filter-brand-link.active::before {
  background: var(--ppa-teal);
  border-color: var(--ppa-teal);
  box-shadow: inset 0 0 0 2px var(--ppa-surface);
}

/* ── Search Overlay ── */
.ppa-search-overlay {
  position: fixed; inset: 0; z-index: 300;
  background: rgba(12,14,16,0.95);
  backdrop-filter: blur(16px);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 120px;
  opacity: 0; pointer-events: none;
  transition: opacity 0.25s ease;
}
.ppa-search-overlay.open { opacity: 1; pointer-events: auto; }
.ppa-search-overlay-inner {
  width: 90%; max-width: 600px;
  position: relative;
}
.ppa-search-overlay-form {
  display: flex; align-items: center; gap: 12px;
  background: var(--ppa-surface);
  border: 1px solid var(--ppa-teal);
  padding: 16px 20px;
}
.ppa-search-overlay-form input[type="search"] {
  flex: 1; background: transparent; border: none; outline: none;
  font-family: var(--ppa-font-body); font-size: 18px;
  color: var(--ppa-parchment);
}
.ppa-search-overlay-form input[type="search"]::placeholder {
  color: var(--ppa-text-dim);
}
.ppa-search-overlay-close {
  position: absolute; top: -40px; right: 0;
  background: none; border: none; cursor: pointer;
  color: var(--ppa-text-mid); font-size: 28px;
  transition: color 0.15s;
}
.ppa-search-overlay-close:hover { color: var(--ppa-parchment); }

/* Hamburger */
.ppa-hamburger {
  display: none; width: 44px; height: 44px;
  align-items: center; justify-content: center;
}
.ppa-hamburger span {
  display: block; width: 22px; height: 2px;
  background: var(--ppa-parchment); position: relative;
  transition: background 0.2s ease;
}
.ppa-hamburger span::before,
.ppa-hamburger span::after {
  content: ''; position: absolute; left: 0; width: 100%; height: 2px;
  background: var(--ppa-parchment); transition: transform 0.3s ease;
}
.ppa-hamburger span::before { top: -7px; }
.ppa-hamburger span::after { top: 7px; }
.ppa-hamburger.open span { background: transparent; }
.ppa-hamburger.open span::before { transform: rotate(45deg); top: 0; }
.ppa-hamburger.open span::after { transform: rotate(-45deg); top: 0; }

/* ═══════════════════════════════════════════════════════
   MEGA MENU
   ═══════════════════════════════════════════════════════ */
/* Animated border property */
@property --ppa-border-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.ppa-mega-hex-canvas {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
  pointer-events: none !important;
  display: block;
}
.ppa-mega > *:not(.ppa-mega-hex-canvas) {
  position: relative;
  z-index: 5;
}
/* Mobile: hide hex canvas (nav mega doesn't show on mobile anyway) */
@media (max-width: 900px) {
  .ppa-mega-hex-canvas { display: none !important; }
}
.ppa-mega {
  position: fixed; top: var(--ppa-nav-h);
  left: 50%; transform: translateX(-50%);
  width: 920px;
  background: #000000;
  border: 1.5px solid rgba(78,168,160,0.1);
  box-shadow: 0 24px 60px rgba(0,0,0,0.6), 0 0 40px rgba(78,168,160,0.15), inset 0 0 80px rgba(78,168,160,0.05);
  backdrop-filter: blur(20px);
  padding: 0;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 60;
  overflow: hidden; /* No scrollbars */
  max-height: calc(100vh - var(--ppa-nav-h) - 20px);
}
.ppa-mega.visible {
  opacity: 1; visibility: visible; pointer-events: auto;
  border: 1px solid transparent;
}
.ppa-mega.hex-built {
  border-image: conic-gradient(from var(--ppa-border-angle, 0deg),
    transparent 0%, transparent 10%,
    rgba(78,168,160,0.6) 18%,
    rgba(78,220,210,0.9) 25%,
    rgba(78,168,160,0.6) 32%,
    transparent 40%, transparent 100%) 1;
  animation: ppaBorderTrace 8s linear infinite;
}
@keyframes ppaBorderTrace {
  from { --ppa-border-angle: 0deg; }
  to { --ppa-border-angle: 360deg; }
}
/* Scan line removed — orphan keyframe fragment cleaned */
.ppa-mega--start { width: 720px; }

.ppa-mega-layout { display: grid; grid-template-columns: 1fr 180px; gap: 24px; }
.ppa-mega-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px 24px; }
.ppa-mega-group-label {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.35em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 10px;
  padding-bottom: 8px; border-bottom: 1px solid var(--ppa-line);
}
.ppa-mega-group--soon { opacity: 0.4; }
.ppa-mega-soon-badge {
  font-size: 8px; letter-spacing: 0.2em; color: var(--ppa-gold);
  background: rgba(196,148,58,0.12); padding: 2px 6px; margin-left: 4px;
}
.ppa-mega-sublink {
  font-family: var(--ppa-font-ui); font-size: 14px;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ppa-text-dim); padding: 8px 0;
  transition: color 0.15s ease; text-decoration: none; display: block;
}
.ppa-mega-sublink:hover { color: var(--ppa-parchment); }
.ppa-mega-sublink--soon { opacity: 0.4; cursor: default; }

.ppa-mega-sidebar { border-left: 1px solid var(--ppa-line); padding-left: 20px; }
.ppa-mega-brand-label {
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.5em;
  color: var(--ppa-gold); margin-bottom: 12px;
}
.ppa-mega-brand {
  display: block; font-family: var(--ppa-font-ui); font-size: 13px;
  font-weight: 600; color: var(--ppa-text-mid); padding: 5px 0;
  transition: color 0.15s ease; text-decoration: none;
}
.ppa-mega-brand:hover { color: var(--ppa-parchment); }
.ppa-mega-article {
  display: block; font-family: var(--ppa-font-body); font-size: 13px;
  color: var(--ppa-teal); padding: 4px 0;
  transition: color 0.15s ease; text-decoration: none;
}
.ppa-mega-article:hover { color: var(--ppa-teal-hover); }
.ppa-mega-shopall {
  display: block; padding-top: 16px; margin-top: 16px;
  border-top: 1px solid var(--ppa-line);
  font-family: var(--ppa-font-ui); font-size: 12px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-teal); text-decoration: none;
  transition: color 0.15s ease;
}
.ppa-mega-shopall:hover { color: var(--ppa-teal-hover); }

/* Start Here panel */
.ppa-mega-start { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.ppa-mega-start-link {
  display: block; font-family: var(--ppa-font-ui); font-size: 13px;
  font-weight: 600; color: var(--ppa-text-bright); padding: 8px 0;
  text-decoration: none; letter-spacing: 0.1em; text-transform: uppercase;
}
.ppa-mega-start-link:hover { color: var(--ppa-teal); }
.ppa-mega-start-talk {
  font-family: var(--ppa-font-body); font-size: 13px;
  color: var(--ppa-teal); text-decoration: none;
}
.ppa-mega-start-talk:hover { color: var(--ppa-teal-hover); }
.ppa-mega-tagline {
  grid-column: 1 / -1; margin-top: 8px; padding-top: 16px;
  border-top: 1px solid var(--ppa-line);
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: 14px; color: var(--ppa-text-dim); line-height: 1.6;
}

/* ── New mega panel elements (trust, ask) ── */

.ppa-mega-trust {
  padding: 16px 36px; border-bottom: 1px solid var(--ppa-line);
  font-family: var(--ppa-font-display); font-size: 17px; font-style: italic;
  color: var(--ppa-text-mid); line-height: 1.5;
  background: rgba(237,228,208,0.02);
}
.ppa-mega-ask {
  padding: 10px 28px; border-top: 1px solid var(--ppa-line);
  background: rgba(78,168,160,0.02); text-align: center;
}
.ppa-mega-ask a {
  font-family: var(--ppa-font-display); font-size: 16px; font-style: italic;
  color: var(--ppa-teal); text-decoration: none; transition: color 0.15s;
}
.ppa-mega-ask a:hover { color: var(--ppa-teal-hover); }
.ppa-mega-layout { padding: 28px 36px; }

/* Inline search bar */
.ppa-nav-search {
  display: flex; align-items: center; gap: 8px;
  padding: 0; background: transparent;
  border: none;
  flex: 0 1 260px; height: 40px;
  margin-left: 16px;
}
.ppa-nav-search:focus-within .ppa-nav-search-input {
  border-bottom-color: var(--ppa-teal);
}
.ppa-nav-search-input {
  border-bottom: 1px solid rgba(237,228,208,0.1) !important;
  padding-bottom: 4px;
  transition: border-color 0.2s;
}
.ppa-nav-search-input {
  flex: 1; font-family: var(--ppa-font-body); font-size: 14px;
  color: var(--ppa-parchment); background: none; border: none; outline: none;
}
.ppa-nav-search-input::placeholder { color: rgba(237,228,208,0.3); }
/* Mobile search button — hidden on desktop, shown on mobile */
.ppa-nav-search-mobile { display: none; background: none; border: none; cursor: pointer; }
@media (max-width: 1100px) { .ppa-nav-search { display: none; } .ppa-nav-util-link { display: none; } .ppa-nav-search-mobile { display: flex; } }

/* Brands link gold */
.ppa-nav-link--brands { color: var(--ppa-gold) !important; }

/* Nav utils spacing */
.ppa-nav-utils { margin-left: 16px !important; }

/* Cart count badge */
.ppa-nav-cart-count {
  position: absolute; top: 4px; right: 2px;
  min-width: 16px; height: 16px; padding: 0 4px;
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 700;
  line-height: 16px; text-align: center;
  color: var(--ppa-base); background: var(--ppa-teal); border-radius: 8px;
}

/* ═══════════════════════════════════════════════════════
   MOBILE NAV
   ═══════════════════════════════════════════════════════ */
.ppa-mobile-overlay {
  display: none; position: fixed; inset: 0; top: var(--ppa-nav-h);
  background: rgba(12,14,16,0.98); z-index: 45;
  overflow-y: auto; padding: 24px;
  transform: translateX(-100%); transition: transform 0.3s ease;
}
.ppa-mobile-overlay.open { transform: translateX(0); }
.ppa-mobile-item { border-bottom: 1px solid var(--ppa-line); }
.ppa-mobile-trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 16px 0; font-family: var(--ppa-font-ui); font-size: 14px;
  font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-parchment); min-height: 44px;
}
.ppa-mobile-trigger svg {
  width: 16px; height: 16px; stroke: var(--ppa-gold); fill: none;
  transition: transform 0.2s ease;
}
.ppa-mobile-trigger.open svg { transform: rotate(180deg); }
.ppa-mobile-subs { display: none; padding: 0 0 16px 16px; }
.ppa-mobile-subs.open { display: block; }
.ppa-mobile-sublink {
  font-family: var(--ppa-font-ui); font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ppa-text-dim); padding: 10px 0; min-height: 44px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  text-decoration: none;
}
.ppa-mobile-sublink:hover { color: var(--ppa-teal); }
/* Per-leaf in-stock count (right-aligned, muted, not uppercased) */
.ppa-mobile-ct {
  flex: none;
  font-family: var(--ppa-font-ui); font-weight: 500; font-size: 11px;
  letter-spacing: 0.04em; text-transform: none;
  color: rgba(237, 228, 208, 0.62); /* AA-contrast muted count */
  font-variant-numeric: tabular-nums;
}
.ppa-mobile-sublink.ppa-mobile-shopall {
  color: var(--ppa-teal); font-weight: 600; margin-top: 2px;
}
.ppa-mobile-group-label {
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ppa-gold); padding: 12px 0 4px; margin-top: 6px;
  border-top: 1px solid rgba(196, 148, 58, 0.14);
}
.ppa-mobile-group-label:first-child { border-top: 0; margin-top: 0; padding-top: 4px; }
.ppa-mobile-sitelink {
  display: flex; align-items: center; padding: 16px 0;
  font-family: var(--ppa-font-ui); font-size: 14px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-text-mid); min-height: 44px; text-decoration: none;
}
.ppa-mobile-sitelink:hover { color: var(--ppa-teal); }
.ppa-mobile-start {
  border-bottom: 1px solid rgba(78,168,160,0.2);
}
.ppa-mobile-start a {
  display: flex; align-items: center; padding: 18px 0;
  font-family: var(--ppa-font-ui); font-size: 15px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-teal); text-decoration: none; min-height: 44px;
}

/* ═══════════════════════════════════════════════════════
   TYPOGRAPHY
   ═══════════════════════════════════════════════════════ */
.ppa-eyebrow {
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 600;
  letter-spacing: 0.5em; text-transform: uppercase;
  color: var(--ppa-gold);
}
.ppa-heading-1 {
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: clamp(38px, 5vw, 64px); font-weight: 400;
  color: var(--ppa-parchment); line-height: 1.1;
}
.ppa-heading-2 {
  font-family: var(--ppa-font-display);
  font-size: clamp(28px, 3.5vw, 42px); font-weight: 400;
  line-height: 1.15;
}
.ppa-section-label {
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 600;
  letter-spacing: 0.5em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 20px;
}
.ppa-body { font-family: var(--ppa-font-body); font-size: 15px; line-height: 1.7; }

/* ═══════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════ */
.ppa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  padding: 14px 28px; transition: background 0.15s ease, color 0.15s ease;
  text-decoration: none; cursor: pointer; border: none;
}
.ppa-btn--primary { background: rgba(78,168,160,0.12); color: var(--ppa-parchment); border: 1px solid var(--ppa-teal); transition: background 0.22s ease, transform 0.22s ease; }
.ppa-btn--primary:hover { background: rgba(78,168,160,0.22); transform: translateY(-2px); }
.ppa-btn--outline {
  background: transparent; color: var(--ppa-teal);
  border: 1px solid var(--ppa-teal);
}
.ppa-btn--outline:hover { background: var(--ppa-teal-soft); }

/* ── Hero CTA — gold border + teal shimmer sweep ── */
.ppa-hero-cta {
  display: inline-block;
  text-decoration: none;
  background: linear-gradient(135deg, rgba(78,168,160,0.08) 0%, rgba(78,168,160,0.18) 50%, rgba(78,168,160,0.08) 100%);
  border: 1px solid var(--ppa-gold);
  color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui);
  font-size: 20px; letter-spacing: 0.35em;
  text-transform: uppercase;
  padding: 20px 56px;
  cursor: pointer;
  position: relative; overflow: hidden;
  transition: background 0.35s, box-shadow 0.35s;
  white-space: nowrap;
  margin-top: 12px; margin-bottom: 8px;
}
.ppa-hero-cta::before {
  content: ''; position: absolute;
  top: 0; left: -100%; width: 70%; height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(78,200,192,0.4) 25%,
    rgba(78,200,192,0.85) 50%,
    rgba(78,200,192,0.4) 75%,
    transparent 100%
  );
  pointer-events: none; z-index: 1;
  animation: ppaCtaSweep 3.5s ease-in-out infinite;
}
@keyframes ppaCtaSweep {
  0%   { left: -100%; opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { left: 160%; opacity: 0; }
}
.ppa-hero-cta:hover {
  background: linear-gradient(135deg, rgba(78,168,160,0.12) 0%, rgba(78,168,160,0.28) 50%, rgba(78,168,160,0.12) 100%);
  box-shadow: 0 0 12px rgba(196,148,58,0.25), inset 0 0 8px rgba(196,148,58,0.06);
}

/* ═══════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════ */
.ppa-footer {
  background: var(--ppa-base); color: var(--ppa-parchment);
  padding: 48px 24px 32px;
}
.ppa-footer-inner { max-width: var(--ppa-content-w); margin: 0 auto; }
.ppa-footer-newsletter {
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
  padding-bottom: 32px; border-bottom: 1px solid var(--ppa-line);
  margin-bottom: 32px;
}
.ppa-footer-newsletter-label {
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: 24px; white-space: nowrap;
}
.ppa-footer-newsletter-form { display: flex; flex: 1; max-width: 400px; }
.ppa-footer-newsletter-input {
  flex: 1; padding: 12px 16px; border: 1px solid rgba(237,228,208,0.15);
  background: rgba(237,228,208,0.05); color: var(--ppa-parchment);
  font-size: 13px;
}
.ppa-footer-newsletter-input::placeholder { color: rgba(237,228,208,0.3); }
.ppa-footer-newsletter-btn {
  padding: 12px 20px; background: rgba(78,168,160,0.12); color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  border: 1px solid var(--ppa-teal); cursor: pointer;
}
.ppa-footer-newsletter-btn:hover { background: rgba(78,168,160,0.22); }
.ppa-footer-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
  padding-bottom: 32px; border-bottom: 1px solid var(--ppa-line);
  margin-bottom: 32px;
}
.ppa-footer-col {
  display: flex; flex-direction: column; gap: 0;
}
.ppa-footer-col-title {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 12px;
}
.ppa-footer-col a, .ppa-footer-col-link {
  display: block; font-family: var(--ppa-font-body); font-size: 13px;
  color: rgba(237,228,208,0.5); padding: 4px 0; text-decoration: none;
  transition: color 0.15s ease;
}
.ppa-footer-col a:hover, .ppa-footer-col-link:hover { color: var(--ppa-parchment); }
.ppa-footer-social {
  display: flex; gap: 12px; margin-bottom: 12px;
}
.ppa-footer-social a {
  color: rgba(237,228,208,0.4); padding: 0; display: flex;
}
.ppa-footer-social a:hover { color: var(--ppa-teal); }
.ppa-footer-location {
  font-family: var(--ppa-font-body); font-size: 12px;
  color: rgba(237,228,208,0.3); line-height: 1.8;
}
.ppa-footer-bottom {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 24px; border-top: 1px solid var(--ppa-line);
}
.ppa-footer-copy {
  font-family: var(--ppa-font-body); font-size: 12px;
  color: var(--ppa-text-dim);
}
.ppa-footer-tagline {
  font-family: var(--ppa-font-ui); font-size: 10px;
  letter-spacing: 0.4em; text-transform: uppercase;
  /* [FE-057 2026-09-11] no alpha: opacity 0.6 dropped effective contrast to
     3.18:1 on the obsidian footer (the 2026-05 fix changed the color but left
     the opacity). Full-strength gold = 5.4:1 on #0c0e10. */
  color: var(--ppa-gold);
}

/* ═══════════════════════════════════════════════════════
   LIGHT THEME (product pages, articles)
   ═══════════════════════════════════════════════════════ */
body.ppa-light {
  background: var(--ppa-light-bg);
  color: var(--ppa-light-text);
}

/* ═══════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════ */
.ppa-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 48px 24px;
  overflow: hidden;
}
.ppa-hero-ghost {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--ppa-font-display); font-size: clamp(52px, 10vw, 130px);
  font-weight: 300; color: var(--ppa-parchment);
  opacity: 0.03; white-space: nowrap;
  pointer-events: none; user-select: none;
  letter-spacing: 0.1em;
}
.ppa-hero-content { position: relative; z-index: 2; }

/* Topo texture */
.ppa-topo {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  opacity: 0.04; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cpath d='M0 300 Q150 250 300 300 T600 300' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 320 Q150 270 300 320 T600 320' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 280 Q150 230 300 280 T600 280' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 340 Q180 300 300 340 T600 340' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 260 Q120 210 300 260 T600 260' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 360 Q200 320 300 360 T600 360' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3Cpath d='M0 240 Q100 190 300 240 T600 240' fill='none' stroke='%23EDE4D0' stroke-width='0.5'/%3E%3C/svg%3E");
  background-size: 600px;
}

/* Animations */
@keyframes ppaFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.ppa-anim {
  opacity: 0;
  animation-name: ppaFadeUp;
  animation-duration: 0.6s;
  animation-timing-function: ease;
  animation-fill-mode: both;
}

/* ═══════════════════════════════════════════════════════
   RETICLE BACKGROUND (Dark theme pages)
   ═══════════════════════════════════════════════════════ */
.ppa-reticle-bg {
  position: fixed; inset: 0; z-index: 0;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; pointer-events: none;
}
.ppa-reticle-bg svg {
  width: 110vmax; height: 110vmax; opacity: 0.24;
}
.ppa-reticle-bg .ring { fill: none; stroke: var(--ppa-teal); stroke-width: 0.6; }
.ppa-reticle-bg .ring-1 {
  stroke-width: 0.5;
  animation: ppa-spin-cw 80s linear infinite;
  transform-origin: 50% 50%; transform-box: fill-box;
}
.ppa-reticle-bg .ring-2 {
  stroke-width: 0.4;
  animation: ppa-spin-ccw 130s linear infinite;
  transform-origin: 50% 50%; transform-box: fill-box;
}
.ppa-reticle-bg .ring-3 {
  stroke-width: 0.35;
  animation: ppa-spin-cw 190s linear infinite;
  transform-origin: 50% 50%; transform-box: fill-box;
}
.ppa-reticle-bg .ring-4 {
  stroke-width: 0.3;
  animation: ppa-spin-ccw 260s linear infinite;
  transform-origin: 50% 50%; transform-box: fill-box;
}
.ppa-reticle-bg .tick { stroke: var(--ppa-teal); stroke-width: 0.7; }
.ppa-reticle-bg .ring-3,
.ppa-reticle-bg .ring-4 { stroke: var(--ppa-gold); }
.ppa-reticle-bg .ring-3 .ring,
.ppa-reticle-bg .ring-4 .ring { stroke: var(--ppa-gold); }
.ppa-reticle-bg .ring-3 .tick,
.ppa-reticle-bg .ring-4 .tick { stroke: var(--ppa-gold); }

@keyframes ppa-spin-cw  { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes ppa-spin-ccw { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } }

/* Vignette overlay */
.ppa-vignette {
  position: fixed; inset: 0; z-index: 1;
  background: radial-gradient(ellipse at center,
    transparent 30%,
    rgba(12,14,16,0.55) 65%,
    rgba(12,14,16,0.88) 100%
  );
  pointer-events: none;
}

/* Noise grain overlay */
.ppa-grain {
  position: fixed; inset: 0;
  pointer-events: none; z-index: 100;
  opacity: 0.04;
}

/* Corner brackets */
.ppa-corner {
  position: fixed; z-index: 6;
  width: 28px; height: 28px;
  opacity: 0;
  animation: ppaFadeIn 0.6s ease 1.4s both;
}
.ppa-corner--tl { top: 90px; left: 32px; border-top: 1px solid rgba(78,168,160,0.3); border-left: 1px solid rgba(78,168,160,0.3); }
.ppa-corner--tr { top: 90px; right: 32px; border-top: 1px solid rgba(78,168,160,0.3); border-right: 1px solid rgba(78,168,160,0.3); }
.ppa-corner--bl { bottom: 60px; left: 32px; border-bottom: 1px solid rgba(78,168,160,0.3); border-left: 1px solid rgba(78,168,160,0.3); }
.ppa-corner--br { bottom: 60px; right: 32px; border-bottom: 1px solid rgba(78,168,160,0.3); border-right: 1px solid rgba(78,168,160,0.3); }

@keyframes ppaFadeIn { to { opacity: 1; } }

/* GPU acceleration for animated elements */
.ppa-reticle-bg svg,
.ppa-reticle-bg .ring-1, .ppa-reticle-bg .ring-2,
.ppa-reticle-bg .ring-3, .ppa-reticle-bg .ring-4 {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — Hero
   ═══════════════════════════════════════════════════════ */
.ppa-home-hero {
  position: relative; z-index: 5;
  min-height: 100vh;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 120px 24px 80px;
  text-align: center;
  overflow: hidden;
  clip-path: inset(0); /* Hard clip — prevents ghost text from bleeding past viewport */
}
.ppa-home-hero .ppa-eyebrow {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 28px;
  opacity: 0; animation: ppaFadeUp 0.7s ease 0.3s both;
}
.ppa-home-hero .ppa-eyebrow::before,
.ppa-home-hero .ppa-eyebrow::after {
  content: ''; flex: 1; max-width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--ppa-gold));
  opacity: 0.5;
}
.ppa-home-hero .ppa-eyebrow::after {
  background: linear-gradient(270deg, transparent, var(--ppa-gold));
}

/* Brand lockup */
.ppa-brand-lockup {
  margin-bottom: 12px;
  opacity: 0; animation: ppaFadeUp 0.9s ease 0.5s both;
}
.ppa-brand-top {
  font-family: var(--ppa-font-brand);
  font-size: clamp(16px, 2.8vw, 42px);
  letter-spacing: 0.24em; color: var(--ppa-parchment);
  text-transform: uppercase; display: block; line-height: 1.15;
}
.ppa-brand-bottom {
  font-family: var(--ppa-font-brand);
  font-size: clamp(26px, 5vw, 78px);
  letter-spacing: 0.2em; color: var(--ppa-teal);
  text-transform: uppercase; display: block; line-height: 1.05;
  text-shadow: 0 0 60px rgba(78,168,160,0.15);
}

/* Decorative rule */
.ppa-brand-rule {
  width: 240px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--ppa-gold), transparent);
  margin: 20px auto;
  opacity: 0; transform: scaleX(0);
  animation: ppaRuleExpand 1s ease 1s both;
}
@keyframes ppaRuleExpand { to { transform: scaleX(1); opacity: 0.5; } }

/* Hero headline */
.ppa-home-headline {
  font-family: var(--ppa-font-display);
  font-size: clamp(26px, 4vw, 56px);
  font-weight: 300; font-style: italic;
  color: var(--ppa-parchment); letter-spacing: 0.04em;
  line-height: 1.2; max-width: 700px;
  opacity: 0; animation: ppaFadeUp 0.9s ease 0.9s both;
  margin-bottom: 12px;
}

/* Hero sub-tagline */
.ppa-home-subtagline {
  font-family: var(--ppa-font-ui);
  font-size: 13px; letter-spacing: 0.38em;
  text-transform: uppercase; color: rgba(78,168,160,0.92);
  text-align: center; margin-bottom: 20px;
  opacity: 0; animation: ppaFadeUp 0.7s ease 0.9s both;
}
.ppa-home-subtagline .ppa-dot { color: var(--ppa-gold); font-size: 16px; }

/* Hero sub-copy */
.ppa-home-subcopy {
  font-family: var(--ppa-font-display);
  font-size: clamp(15px, 1.6vw, 20px);
  font-weight: 300; font-style: italic;
  letter-spacing: 0.05em; color: rgba(237,228,208,0.60);
  max-width: 520px; line-height: 1.85; text-align: center;
  opacity: 0; animation: ppaFadeUp 0.9s ease 1.1s both;
  margin-bottom: 32px;
}

/* Email signup form */
.ppa-notify-form {
  display: flex; gap: 0;
  max-width: 480px; width: 100%;
  opacity: 0; animation: ppaFadeUp 0.9s ease 1.3s both;
  margin-bottom: 32px;
}
.ppa-notify-input {
  flex: 1; width: 100%;
  background: rgba(26,22,16,0.8);
  border: 1px solid var(--ppa-line); border-right: none;
  color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui);
  font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase; padding: 15px 20px;
  outline: none; transition: border-color 0.3s;
}
.ppa-notify-input::placeholder { color: rgba(232,220,200,0.2); }
.ppa-notify-input:focus { border-color: rgba(78,168,160,0.4); }
.ppa-notify-submit {
  background: transparent;
  border: 1px solid var(--ppa-teal); color: var(--ppa-teal);
  font-family: var(--ppa-font-ui);
  font-size: 11px; letter-spacing: 0.35em;
  text-transform: uppercase; padding: 17px 32px;
  cursor: pointer; position: relative; overflow: hidden;
  transition: color 0.35s, border-color 0.35s;
  white-space: nowrap;
}
.ppa-notify-submit:hover {
  color: var(--ppa-parchment);
  border-color: rgba(78,168,160,0.9);
}

/* Hero tagline */
.ppa-home-tagline {
  font-family: var(--ppa-font-ui);
  font-size: 13px; letter-spacing: 0.55em;
  text-transform: uppercase; color: rgba(78,168,160,0.88);
  opacity: 0; animation: ppaFadeUp 0.7s ease 1.6s both;
}
.ppa-home-tagline .ppa-dot { margin: 0 12px; color: var(--ppa-gold); font-size: 16px; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE — Section layouts
   ═══════════════════════════════════════════════════════ */
.ppa-section {
  position: relative; z-index: 5;
  padding: 80px 24px;
}
.ppa-section-inner {
  max-width: var(--ppa-content-w); margin: 0 auto;
}

/* ── Category Cards ── */
.ppa-categories {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.ppa-cat-card {
  position: relative; overflow: hidden;
  background: var(--ppa-surface);
  border: 1px solid var(--ppa-line);
  padding: 32px 24px;
  text-decoration: none;
  transition: border-color 0.3s ease, background 0.3s ease;
}
.ppa-cat-card:hover {
  border-color: rgba(78,168,160,0.3);
  background: var(--ppa-surface-hover);
}
.ppa-cat-card-icon {
  width: 40px; height: 40px;
  stroke: var(--ppa-teal); fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
  margin-bottom: 16px;
  transition: stroke 0.2s ease;
}
.ppa-cat-card:hover .ppa-cat-card-icon { stroke: var(--ppa-parchment); }
.ppa-cat-card-title {
  font-family: var(--ppa-font-ui);
  font-size: 14px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-parchment); margin-bottom: 8px;
}
.ppa-cat-card-desc {
  font-family: var(--ppa-font-body);
  font-size: 13px; color: var(--ppa-text-dim);
  line-height: 1.6;
}
.ppa-cat-card-arrow {
  position: absolute; top: 24px; right: 24px;
  font-family: var(--ppa-font-ui);
  font-size: 11px; letter-spacing: 0.15em;
  color: var(--ppa-teal); opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.ppa-cat-card:hover .ppa-cat-card-arrow {
  opacity: 1; transform: translateX(0);
}

/* ── Trust signals ── */
.ppa-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  text-align: center;
}
.ppa-trust-item {
  padding: 24px;
}
.ppa-trust-icon {
  width: 32px; height: 32px;
  stroke: var(--ppa-gold); fill: none;
  stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
  margin: 0 auto 16px;
}
.ppa-trust-title {
  font-family: var(--ppa-font-ui);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-parchment); margin-bottom: 8px;
}
.ppa-trust-desc {
  font-family: var(--ppa-font-body);
  font-size: 13px; color: var(--ppa-text-dim); line-height: 1.6;
}

/* ── Featured Products ── */
.ppa-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.ppa-product-card {
  background: var(--ppa-surface);
  border: 1px solid var(--ppa-line);
  overflow: hidden;
  text-decoration: none;
  transition: border-color 0.3s ease;
}
.ppa-product-card:hover { border-color: rgba(78,168,160,0.3); }
.ppa-product-card-img {
  width: 100%; aspect-ratio: 1;
  object-fit: cover;
  background: var(--ppa-surface-hover);
}
.ppa-product-card-body { padding: 16px; }
.ppa-product-card-brand {
  font-family: var(--ppa-font-ui);
  font-size: 9px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 4px;
}
.ppa-product-card-name {
  font-family: var(--ppa-font-body);
  font-size: 14px; font-weight: 400;
  color: var(--ppa-parchment); margin-bottom: 8px;
  line-height: 1.3;
}
.ppa-product-card-price {
  font-family: var(--ppa-font-ui);
  font-size: 14px; font-weight: 600;
  color: var(--ppa-teal);
}

/* ── Pillar section (Protect / Prepare / Prevail) ── */
.ppa-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--ppa-line);
}
.ppa-pillar {
  padding: 48px 32px;
  text-align: center;
  border-right: 1px solid var(--ppa-line);
}
.ppa-pillar:last-child { border-right: none; }
.ppa-pillar-word {
  font-family: var(--ppa-font-brand);
  font-size: 18px; letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ppa-teal); margin-bottom: 16px;
}
.ppa-pillar-desc {
  font-family: var(--ppa-font-display);
  font-size: 16px; font-style: italic;
  font-weight: 300; color: var(--ppa-text-mid);
  line-height: 1.6;
}

/* ── Brand story banner ── */
.ppa-brand-banner {
  position: relative;
  min-height: 400px;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  overflow: hidden;
}
.ppa-brand-banner-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0.3;
}
.ppa-brand-banner-content {
  position: relative; z-index: 2;
  max-width: 600px; padding: 48px 24px;
}
.ppa-brand-banner-quote {
  font-family: var(--ppa-font-display);
  font-size: clamp(20px, 3vw, 32px);
  font-weight: 300; font-style: italic;
  color: var(--ppa-parchment); line-height: 1.4;
  margin-bottom: 24px;
}
.ppa-brand-banner-attr {
  font-family: var(--ppa-font-ui);
  font-size: 10px; letter-spacing: 0.3em;
  text-transform: uppercase; color: var(--ppa-gold);
}

/* ═══════════════════════════════════════════════════════
   INTERIOR PAGES — Dark base with parchment accents
   All pages stay dark. Parchment used for content panels,
   text, cards — never as full-page background.
   ═══════════════════════════════════════════════════════ */
.ppa-page {
  position: relative; z-index: 5;
  min-height: calc(100vh - var(--ppa-nav-h));
  padding: 48px 24px 80px;
}
.ppa-page-content {
  max-width: 800px; margin: 0 auto;
}
.ppa-page-content h1 {
  font-family: var(--ppa-font-display);
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 400; color: var(--ppa-parchment);
  margin-bottom: 24px; line-height: 1.15;
}
.ppa-page-content h2 {
  font-family: var(--ppa-font-display);
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 400; color: var(--ppa-parchment);
  margin: 32px 0 16px; line-height: 1.2;
}
.ppa-page-content p {
  font-family: var(--ppa-font-body);
  font-size: 16px; line-height: 1.7;
  color: var(--ppa-text-mid);
  margin-bottom: 16px;
}
.ppa-page-content img {
  margin: 24px 0; border-radius: 2px;
}
.ppa-page-content a {
  color: var(--ppa-teal);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ppa-page-content a:hover { color: var(--ppa-teal-hover); }

/* Parchment accent panels — for featured content blocks on dark pages */
.ppa-parchment-panel {
  background: rgba(237,228,208,0.06);
  border: 1px solid rgba(237,228,208,0.08);
  padding: 32px;
}
.ppa-parchment-panel h3 {
  font-family: var(--ppa-font-display);
  font-size: 20px; font-weight: 400;
  color: var(--ppa-parchment); margin-bottom: 12px;
}
.ppa-parchment-panel p {
  font-family: var(--ppa-font-body);
  font-size: 14px; color: var(--ppa-text-mid);
  line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════
   404 PAGE
   ═══════════════════════════════════════════════════════ */
.ppa-404 {
  position: relative; z-index: 5;
  min-height: calc(100vh - var(--ppa-nav-h));
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; padding: 80px 24px;
}
.ppa-404-code {
  font-family: var(--ppa-font-brand);
  font-size: clamp(60px, 15vw, 160px);
  color: var(--ppa-parchment); opacity: 0.06;
  line-height: 1; margin-bottom: -20px;
  letter-spacing: 0.1em;
}
.ppa-404-heading {
  font-family: var(--ppa-font-display);
  font-size: clamp(28px, 5vw, 48px);
  font-weight: 300; font-style: italic;
  color: var(--ppa-parchment);
  margin-bottom: 16px;
}
.ppa-404-desc {
  font-family: var(--ppa-font-body);
  font-size: 15px; color: var(--ppa-text-mid);
  max-width: 400px; line-height: 1.7;
  margin-bottom: 32px;
}

/* ═══════════════════════════════════════════════════════
   SEARCH & ARCHIVE
   ═══════════════════════════════════════════════════════ */
.ppa-archive-header {
  margin-bottom: 40px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ppa-line);
}
.ppa-post-list { display: flex; flex-direction: column; gap: 32px; }
.ppa-post-item {
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ppa-line);
}
.ppa-post-item:last-child { border-bottom: none; }
.ppa-post-meta {
  font-family: var(--ppa-font-ui);
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 8px;
}
.ppa-post-title {
  font-family: var(--ppa-font-display);
  font-size: 24px; font-weight: 400;
  color: var(--ppa-parchment); margin-bottom: 8px;
  line-height: 1.25;
}
.ppa-post-title a { text-decoration: none; }
.ppa-post-title a:hover { color: var(--ppa-teal); }
.ppa-post-excerpt {
  font-family: var(--ppa-font-body);
  font-size: 15px; color: var(--ppa-text-mid);
  line-height: 1.7;
}
.ppa-read-more {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--ppa-font-ui);
  font-size: 11px; letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ppa-teal); text-decoration: none;
  margin-top: 8px;
  transition: gap 0.2s ease;
}
.ppa-read-more:hover { gap: 10px; }

/* Pagination */
.ppa-pagination {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; margin-top: 48px;
}
.ppa-pagination a, .ppa-pagination span {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  font-family: var(--ppa-font-ui); font-size: 13px;
  color: var(--ppa-text-mid);
  border: 1px solid var(--ppa-line);
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.ppa-pagination a:hover { border-color: var(--ppa-teal); color: var(--ppa-teal); }
.ppa-pagination .current {
  background: var(--ppa-teal); color: #fff;
  border-color: var(--ppa-teal);
}

/* Search form */
.ppa-search-form {
  display: flex; max-width: 480px; margin-bottom: 32px;
}
.ppa-search-input {
  flex: 1; padding: 14px 18px;
  border: 1px solid rgba(237,228,208,0.25); border-right: none;
  background: rgba(237,228,208,0.08);
  font-family: var(--ppa-font-body); font-size: 15px;
  color: var(--ppa-parchment);
}
.ppa-search-input:focus { outline: none; border-color: var(--ppa-teal); box-shadow: 0 0 0 1px rgba(78,168,160,0.2); }
.ppa-search-btn {
  padding: 14px 24px;
  background: rgba(78,168,160,0.12); color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui);
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  border: 1px solid var(--ppa-teal); cursor: pointer;
}
.ppa-search-btn:hover { background: rgba(78,168,160,0.22); }

/* ═══════════════════════════════════════════════════════
   SCROLL REVEAL
   ═══════════════════════════════════════════════════════ */
.ppa-reveal {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.ppa-reveal.in-view {
  opacity: 1; transform: translateY(0);
}

/* ═══════════════════════════════════════════════════════
   SEARCH OVERLAY (primary definition)
   ═══════════════════════════════════════════════════════ */
.ppa-search-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(12,14,16,0.95);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 20vh;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.ppa-search-overlay.open { opacity: 1; visibility: visible; pointer-events: auto; }
.ppa-search-overlay-inner { width: 100%; max-width: 640px; padding: 0 24px; }
.ppa-search-overlay-form {
  display: flex; align-items: stretch; position: relative;
}
.ppa-search-overlay-input {
  flex: 1; padding: 18px 24px;
  background: rgba(237,228,208,0.08); border: 1px solid rgba(237,228,208,0.25);
  color: var(--ppa-parchment); font-family: var(--ppa-font-ui);
  font-size: 16px; letter-spacing: 0.1em;
  outline: none; border-right: none;
}
.ppa-search-overlay-input::placeholder { color: rgba(237,228,208,0.35); }
.ppa-search-overlay-input:focus { border-color: var(--ppa-teal); box-shadow: 0 0 0 1px rgba(78,168,160,0.2); }
.ppa-search-overlay-submit {
  padding: 18px 28px;
  background: rgba(78,168,160,0.12); color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui); font-size: 12px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  border: 1px solid var(--ppa-teal); cursor: pointer;
}
.ppa-search-overlay-submit:hover { background: rgba(78,168,160,0.22); }
.ppa-search-overlay-close {
  position: absolute; top: -60px; right: 0;
  font-size: 32px; color: var(--ppa-parchment);
  background: none; border: none; cursor: pointer;
  opacity: 0.5; transition: opacity 0.2s;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
}
.ppa-search-overlay-close:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════
   MOUNTAIN LOADER
   ═══════════════════════════════════════════════════════ */
#ppa-loader {
  position: fixed; inset: 0; z-index: 9999;
  background: #000000;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  opacity: 1; pointer-events: auto;
}
#ppa-loader.fade-out {
  animation: ppaLoaderFadeOut 400ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
  pointer-events: none;
}
#ppa-loader.hidden { display: none; pointer-events: none; }
@keyframes ppaLoaderFadeOut { from { opacity: 1; } to { opacity: 0; } }

.ppa-loader-mountain-wrap {
  position: relative;
  width: clamp(360px, 70vw, 640px);
  display: flex; align-items: center; justify-content: center;
}
.ppa-loader-mountain {
  width: 100%; height: auto; display: block;
  opacity: 0; mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(to top, black 0%, transparent 0%);
  mask-image: linear-gradient(to top, black 0%, transparent 0%);
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.ppa-loader-mountain.animating {
  opacity: 1;
  animation: ppaMountainReveal 1100ms cubic-bezier(0.22, 1, 0.36, 1) 100ms forwards;
}
@keyframes ppaMountainReveal {
  0%   { mask-image: linear-gradient(to top, black 0%, transparent 5%); -webkit-mask-image: linear-gradient(to top, black 0%, transparent 5%); }
  15%  { mask-image: linear-gradient(to top, black 10%, transparent 20%); -webkit-mask-image: linear-gradient(to top, black 10%, transparent 20%); }
  30%  { mask-image: linear-gradient(to top, black 25%, transparent 40%); -webkit-mask-image: linear-gradient(to top, black 25%, transparent 40%); }
  50%  { mask-image: linear-gradient(to top, black 45%, transparent 60%); -webkit-mask-image: linear-gradient(to top, black 45%, transparent 60%); }
  70%  { mask-image: linear-gradient(to top, black 65%, transparent 80%); -webkit-mask-image: linear-gradient(to top, black 65%, transparent 80%); }
  85%  { mask-image: linear-gradient(to top, black 80%, transparent 95%); -webkit-mask-image: linear-gradient(to top, black 80%, transparent 95%); }
  100% { mask-image: linear-gradient(to top, black 100%, transparent 105%); -webkit-mask-image: linear-gradient(to top, black 100%, transparent 105%); }
}
.ppa-loader-mountain-wrap::after {
  content: ''; position: absolute; inset: -40% -30%;
  background: radial-gradient(ellipse 60% 50% at 50% 60%, rgba(78,168,160,0.08) 0%, transparent 70%);
  pointer-events: none; opacity: 0;
  transition: opacity 800ms cubic-bezier(0.22, 1, 0.36, 1);
}
.ppa-loader-mountain-wrap.glow::after { opacity: 1; }

.ppa-loader-ppa {
  display: flex; gap: 0.35em;
  font-family: var(--ppa-font-brand);
  font-size: clamp(3rem, 7vw, 5rem);
  letter-spacing: 0.15em; margin-top: 1.2rem;
  overflow: hidden;
}
.ppa-loader-ppa span { opacity: 0; transform: translateY(14px); }
.ppa-loader-ppa span.show {
  animation: ppaLoaderLetterIn 500ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.ppa-loader-ppa .letter-p { color: var(--ppa-teal); }
.ppa-loader-ppa .letter-a { color: var(--ppa-gold); }
@keyframes ppaLoaderLetterIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.ppa-loader-rule {
  width: clamp(180px, 40vw, 360px); height: 2px;
  background: var(--ppa-gold); margin-top: 0.8rem;
  transform: scaleX(0); transform-origin: center;
}
.ppa-loader-rule.draw {
  animation: ppaLoaderRuleDraw 500ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes ppaLoaderRuleDraw {
  from { transform: scaleX(0); opacity: 0.6; }
  to   { transform: scaleX(1); opacity: 1; }
}

/* ═══════════════════════════════════════════════════════
   SCAN LINE EFFECT — on input fields
   ═══════════════════════════════════════════════════════ */
.ppa-input-wrap {
  position: relative; overflow: hidden;
  container-type: size;
}
.ppa-input-wrap::before {
  content: '';
  position: absolute; top: 0; left: 50%;
  transform: translateX(-50%);
  width: 80%; height: 0.5px;
  background: linear-gradient(90deg,
    transparent 0%, rgba(78,200,192,0.15) 20%,
    rgba(78,200,192,0.35) 50%, rgba(78,200,192,0.15) 80%,
    transparent 100%
  );
  box-shadow: 0 0 3px rgba(78,200,192,0.15);
  pointer-events: none;
  animation: ppaScanLine 4.5s ease-in-out infinite;
  z-index: 10;
}
@keyframes ppaScanLine {
  0%  { transform: translateX(-50%) translateY(0); opacity: 0; }
  8%  { opacity: 1; }
  45% { transform: translateX(-50%) translateY(100cqh); opacity: 1; }
  50% { opacity: 0; }
  100% { transform: translateX(-50%) translateY(0); opacity: 0; }
}
.ppa-input-wrap:hover::before {
  background: linear-gradient(90deg,
    transparent 0%, rgba(78,200,192,0.25) 20%,
    rgba(78,200,192,0.5) 50%, rgba(78,200,192,0.25) 80%,
    transparent 100%
  );
  box-shadow: 0 0 4px rgba(78,200,192,0.2);
  animation: ppaScanLineFast 2.5s ease-in-out infinite;
}
@keyframes ppaScanLineFast {
  0%   { transform: translateX(-50%) translateY(0); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { transform: translateX(-50%) translateY(100cqh); opacity: 0; }
}

/* Disable scan lines on cart/checkout (too many inputs, becomes noisy) */
.woocommerce-cart .ppa-input-wrap::before,
.woocommerce-checkout .ppa-input-wrap::before { animation: none; opacity: 0; }

/* Reduced motion: pause continuous animations for accessibility */
@media (prefers-reduced-motion: reduce) {
  .ppa-reticle-bg .ring { animation: none !important; }
  .ppa-input-wrap::before { animation: none; opacity: 0; }
  .ppa-reveal { animation-duration: 0.01ms !important; }
}

/* ═══════════════════════════════════════════════════════
   ASK THE MITCHELLS — Floating chat button
   ═══════════════════════════════════════════════════════ */
.ppa-ask-btn {
  position: fixed; bottom: 20px; left: 20px; z-index: 800;
  display: flex; align-items: center; gap: 8px;
  padding: 12px 20px;
  font-family: var(--ppa-font-ui); font-size: 12px;
  font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--ppa-parchment); background: rgba(12,14,16,0.95);
  backdrop-filter: blur(12px); border: 1px solid var(--ppa-gold);
  border-radius: 24px; cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
  text-decoration: none; transition: all 0.2s;
}
.ppa-ask-btn:hover { border-color: var(--ppa-teal); color: var(--ppa-teal); }
.ppa-ask-btn svg { stroke: var(--ppa-gold); width: 20px; height: 20px; fill: none; }
.ppa-ask-btn:hover svg { stroke: var(--ppa-teal); }
@media (max-width: 768px) {
  .ppa-ask-btn span { display: none; }
  .ppa-ask-btn { padding: 14px; border-radius: 50%; bottom: 80px; left: 16px; }
}

/* ═══════════════════════════════════════════════════════
   FOOTER — Brand Values (not link dump)
   ═══════════════════════════════════════════════════════ */
/* Organizations We Support — grid section */
.ppa-footer-orgs {
  border-top: 1px solid var(--ppa-line);
  padding: 36px 0 32px;
  margin-top: 32px;
  text-align: center;
}
.ppa-footer-orgs-label {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 8px;
}
.ppa-footer-orgs-desc {
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: 15px; color: rgba(237,228,208,0.45);
  margin: 0 auto 24px; max-width: 480px; line-height: 1.6;
}
.ppa-footer-orgs-grid {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 12px; max-width: 960px; margin: 0 auto;
}
.ppa-footer-org {
  display: flex; flex-direction: column; gap: 4px;
  padding: 16px 14px;
  background: rgba(237,228,208,0.03);
  border: 1px solid rgba(237,228,208,0.06);
  border-radius: 6px;
  text-decoration: none; transition: all 0.2s ease;
}
.ppa-footer-org:hover {
  background: rgba(78,168,160,0.06);
  border-color: rgba(78,168,160,0.2);
  transform: translateY(-2px);
}
.ppa-footer-org-name {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--ppa-parchment);
}
.ppa-footer-org-mission {
  font-family: var(--ppa-font-body); font-size: 11px;
  color: rgba(237,228,208,0.4); line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════
   WOOCOMMERCE CART & CHECKOUT — Dark Theme
   ═══════════════════════════════════════════════════════ */

/* ── Shared page wrapper ── */
.woocommerce-cart .ppa-page-content,
.woocommerce-checkout .ppa-page-content {
  max-width: 1100px; margin: 0 auto; padding: 0 24px 60px;
}
.woocommerce-cart .ppa-page-content .ppa-heading-2,
.woocommerce-checkout .ppa-page-content .ppa-heading-2 {
  font-family: var(--ppa-font-display); color: var(--ppa-parchment);
  letter-spacing: 0.02em;
}

/* ── Notices ── */
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-error {
  background: rgba(237,228,208,0.04); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line); border-left: 3px solid var(--ppa-teal);
  padding: 14px 20px; font-family: var(--ppa-font-body); font-size: 14px;
  margin-bottom: 24px;
}
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
  border-left-color: #c0392b;
}
.woocommerce-cart .woocommerce-info a,
.woocommerce-cart .woocommerce-message a,
.woocommerce-checkout .woocommerce-info a,
.woocommerce-checkout .woocommerce-message a {
  color: var(--ppa-teal); text-decoration: underline;
}

/* ── Cart Table ── */
.woocommerce-cart table.shop_table {
  background: transparent; border: 1px solid var(--ppa-line);
  border-collapse: collapse; width: 100%; margin-bottom: 32px;
}
.woocommerce-cart table.shop_table th {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-gold); background: rgba(237,228,208,0.03);
  padding: 14px 16px; border-bottom: 1px solid var(--ppa-line);
  text-align: left;
}
.woocommerce-cart table.shop_table td {
  padding: 16px; border-bottom: 1px solid rgba(237,228,208,0.06);
  color: var(--ppa-parchment); font-family: var(--ppa-font-body); font-size: 14px;
  vertical-align: middle;
}
.woocommerce-cart table.shop_table td.product-thumbnail img {
  width: 72px; height: 72px; object-fit: contain;
  background: rgba(237,228,208,0.04); border-radius: 4px; padding: 4px;
}
.woocommerce-cart table.shop_table td.product-name a {
  color: var(--ppa-parchment); text-decoration: none; font-weight: 500;
}
.woocommerce-cart table.shop_table td.product-name a:hover { color: var(--ppa-teal); }
.woocommerce-cart table.shop_table td.product-price,
.woocommerce-cart table.shop_table td.product-subtotal {
  font-family: var(--ppa-font-ui); font-weight: 600; color: var(--ppa-parchment);
}
.woocommerce-cart table.shop_table .amount { color: var(--ppa-price-color-on-light); }
/* Struck MSRP on the light cart/checkout panels needs the light-surface hue too. */
.woocommerce-cart del .woocommerce-Price-amount,
.woocommerce-checkout del .woocommerce-Price-amount { color: var(--ppa-price-strike-on-light); }

/* Remove button */
.woocommerce-cart a.remove {
  color: rgba(237,228,208,0.3) !important; font-size: 22px; font-weight: 300;
  text-decoration: none; transition: color 0.15s;
}
.woocommerce-cart a.remove:hover { color: #c0392b !important; background: transparent !important; }

/* Quantity input */
.woocommerce-cart .quantity .qty,
.woocommerce-checkout .quantity .qty {
  background: rgba(237,228,208,0.05); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line); padding: 8px 12px;
  font-family: var(--ppa-font-body); font-size: 14px;
  width: 60px; text-align: center; border-radius: 3px;
}
.woocommerce-cart .quantity .qty:focus {
  outline: none; border-color: var(--ppa-teal);
  box-shadow: 0 0 0 2px rgba(78,168,160,0.15);
}

/* Coupon input */
.woocommerce-cart .coupon {
  display: flex; align-items: center; gap: 8px; float: left;
}
.woocommerce-cart .coupon #coupon_code {
  background: rgba(237,228,208,0.05); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line); padding: 10px 14px;
  font-family: var(--ppa-font-body); font-size: 13px; border-radius: 3px;
}
.woocommerce-cart .coupon #coupon_code::placeholder { color: rgba(237,228,208,0.3); }
.woocommerce-cart .coupon #coupon_code:focus {
  outline: none; border-color: var(--ppa-teal);
}

/* Actions row */
.woocommerce-cart table.shop_table td.actions {
  padding: 20px 16px; background: rgba(237,228,208,0.02);
  border-bottom: none;
}

/* WooCommerce buttons */
.woocommerce-cart .button,
.woocommerce-checkout .button {
  background: rgba(78,168,160,0.12) !important; color: var(--ppa-parchment) !important;
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  padding: 12px 24px; border: 1px solid var(--ppa-teal) !important; border-radius: 0;
  cursor: pointer; transition: background 0.2s, transform 0.2s;
}
.woocommerce-cart .button:hover,
.woocommerce-checkout .button:hover {
  background: rgba(78,168,160,0.22) !important; transform: translateY(-1px);
}
.woocommerce-cart .button:disabled {
  opacity: 0.4; cursor: not-allowed;
}
/* Place Order — final commit action stays solid for maximum weight */
button#place_order {
  background: var(--ppa-teal) !important; color: var(--ppa-base) !important;
  border: 1px solid var(--ppa-teal) !important; transform: none !important;
}
button#place_order:hover {
  background: var(--ppa-teal-hover) !important; transform: none !important;
}

/* Cart totals */
.woocommerce-cart .cart_totals {
  float: right; width: 420px; max-width: 100%;
  background: rgba(237,228,208,0.03); border: 1px solid var(--ppa-line);
  padding: 28px; border-radius: 4px;
}
.woocommerce-cart .cart_totals h2 {
  font-family: var(--ppa-font-display); font-size: 22px;
  color: var(--ppa-parchment); margin-bottom: 20px;
}
.woocommerce-cart .cart_totals table {
  width: 100%; border-collapse: collapse;
}
.woocommerce-cart .cart_totals th {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(237,228,208,0.5); padding: 12px 0; text-align: left;
  border-bottom: 1px solid rgba(237,228,208,0.06);
}
.woocommerce-cart .cart_totals td {
  padding: 12px 0; text-align: right;
  color: var(--ppa-parchment); font-family: var(--ppa-font-body); font-size: 15px;
  border-bottom: 1px solid rgba(237,228,208,0.06);
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
  font-size: 18px; font-weight: 700;
  color: var(--ppa-parchment); border-bottom: none; padding-top: 16px;
}
.woocommerce-cart .cart_totals .amount { color: var(--ppa-parchment); }
.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
  margin-top: 20px;
}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout a {
  display: block; text-align: center; padding: 16px;
  font-size: 12px; letter-spacing: 0.2em;
}

/* Cross-sells */
.woocommerce-cart .cross-sells {
  clear: both; padding-top: 40px;
}
.woocommerce-cart .cross-sells h2 {
  font-family: var(--ppa-font-display); font-size: 22px;
  color: var(--ppa-parchment); margin-bottom: 20px;
}
.woocommerce-cart .cross-sells ul.products li.product {
  background: rgba(237,228,208,0.03); border: 1px solid var(--ppa-line);
  padding: 16px; border-radius: 4px;
}
.woocommerce-cart .cross-sells ul.products li.product a {
  color: var(--ppa-parchment); text-decoration: none;
}
.woocommerce-cart .cross-sells ul.products li.product .price {
  color: var(--ppa-parchment); font-family: var(--ppa-font-ui);
}

/* ── Checkout Form ── */
.woocommerce-checkout .col2-set {
  display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
  margin-bottom: 40px;
}
.woocommerce-checkout h3 {
  font-family: var(--ppa-font-display); font-size: 22px;
  color: var(--ppa-parchment); margin-bottom: 20px;
}
.woocommerce-checkout .form-row label {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(237,228,208,0.6); margin-bottom: 6px; display: block;
}
.woocommerce-checkout .form-row label .required { color: var(--ppa-teal); }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  background: rgba(237,228,208,0.05) !important;
  color: var(--ppa-parchment) !important;
  border: 1px solid var(--ppa-line) !important;
  padding: 12px 14px; font-family: var(--ppa-font-body); font-size: 14px;
  border-radius: 3px; width: 100%; box-sizing: border-box;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus {
  outline: none; border-color: var(--ppa-teal) !important;
  box-shadow: 0 0 0 2px rgba(78,168,160,0.15);
}
.woocommerce-checkout .form-row input.input-text::placeholder {
  color: rgba(237,228,208,0.25);
}

/* Select2 dropdown overrides */
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--ppa-parchment); line-height: 40px; padding-left: 14px;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 40px;
}
.select2-container--default .select2-results__option {
  background: var(--ppa-surface); color: var(--ppa-parchment);
  font-family: var(--ppa-font-body); font-size: 14px;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--ppa-teal); color: #fff;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  background: rgba(237,228,208,0.05); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line);
}
.select2-dropdown {
  background: var(--ppa-surface); border: 1px solid var(--ppa-line);
}

/* Order review */
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: rgba(237,228,208,0.03); border: 1px solid var(--ppa-line);
  padding: 28px; border-radius: 4px; margin-bottom: 32px;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table {
  width: 100%; border-collapse: collapse;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table th {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-gold); padding: 12px 0; text-align: left;
  border-bottom: 1px solid var(--ppa-line);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
  padding: 12px 0; color: var(--ppa-parchment);
  font-family: var(--ppa-font-body); font-size: 14px;
  border-bottom: 1px solid rgba(237,228,208,0.06);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table .amount {
  color: var(--ppa-parchment);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td {
  font-size: 18px; font-weight: 700; border-bottom: none; padding-top: 16px;
}

/* Payment methods */
.woocommerce-checkout #payment {
  background: rgba(237,228,208,0.03); border: 1px solid var(--ppa-line);
  border-radius: 4px; padding: 24px;
}
.woocommerce-checkout #payment ul.payment_methods {
  list-style: none; padding: 0; margin: 0 0 20px;
  border-bottom: 1px solid var(--ppa-line); padding-bottom: 20px;
}
.woocommerce-checkout #payment ul.payment_methods li {
  padding: 12px 0; border-bottom: 1px solid rgba(237,228,208,0.06);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: none; }
.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: var(--ppa-font-body); font-size: 15px;
  color: var(--ppa-parchment); cursor: pointer; display: inline;
  text-transform: none; letter-spacing: normal;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box {
  background: rgba(237,228,208,0.04); color: rgba(237,228,208,0.6);
  padding: 14px; margin-top: 10px; border-radius: 3px;
  font-family: var(--ppa-font-body); font-size: 13px;
}
.woocommerce-checkout #payment .place-order {
  padding-top: 20px;
}
.woocommerce-checkout #place_order {
  width: 100%; padding: 18px; font-size: 13px; letter-spacing: 0.2em;
}

/* ── WooCommerce account / login forms ── */
.woocommerce-cart .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-coupon {
  background: rgba(237,228,208,0.03); border: 1px solid var(--ppa-line);
  padding: 24px; border-radius: 4px; margin-bottom: 24px;
}
.woocommerce-cart .woocommerce-form-login p,
.woocommerce-checkout .woocommerce-form-login p,
.woocommerce-checkout .woocommerce-form-coupon p {
  color: rgba(237,228,208,0.6); font-family: var(--ppa-font-body); font-size: 14px;
}

/* ── Empty cart ── */
.woocommerce-cart .cart-empty {
  color: rgba(237,228,208,0.5); font-family: var(--ppa-font-display);
  font-size: 20px; font-style: italic; text-align: center; padding: 60px 0;
}
.woocommerce-cart .return-to-shop a {
  display: inline-block; margin-top: 20px;
}

/* ═══════════════════════════════════════════════════════
   CATALOG — Smart Chip Bar
   ═══════════════════════════════════════════════════════ */
.ppa-chip-bar {
  position: sticky; top: var(--ppa-nav-h); z-index: 40;
  background: rgba(12,14,16,0.95);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--ppa-line);
  padding: 0 24px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ppa-chip-bar::-webkit-scrollbar { display: none; }
.ppa-chip-bar-inner {
  display: flex; gap: 4px; align-items: center;
  max-width: var(--ppa-max-w); margin: 0 auto;
  padding: 10px 0;
}
.ppa-chip {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 500;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-text-mid); padding: 6px 16px;
  border: 1px solid transparent;
  background: rgba(78,168,160,0.06);
  white-space: nowrap; text-decoration: none;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.ppa-chip:hover { color: var(--ppa-parchment); border-color: rgba(78,168,160,0.2); }
.ppa-chip--active {
  color: var(--ppa-parchment);
  border-color: var(--ppa-teal);
  background: rgba(78,168,160,0.12);
}

/* ═══════════════════════════════════════════════════════
   CATALOG — Layout
   ═══════════════════════════════════════════════════════ */
.ppa-catalog-layout {
  display: flex; gap: 0;
  max-width: var(--ppa-max-w); margin: 0 auto;
  min-height: calc(100vh - var(--ppa-nav-h) - 45px);
}

/* ── Sidebar ── */
.ppa-catalog-sidebar {
  width: 260px; flex-shrink: 0;
  position: sticky; top: calc(var(--ppa-nav-h) + 45px);
  height: calc(100vh - var(--ppa-nav-h) - 45px);
  overflow-y: auto; padding: 24px 20px;
  border-right: 1px solid var(--ppa-line);
  border-left: 1px solid rgba(196,148,58,0.12);
  background: rgba(12,14,16,0.4);
  scrollbar-width: thin;
  scrollbar-color: rgba(78,168,160,0.2) transparent;
}
.ppa-filter-section {
  padding-bottom: 20px; margin-bottom: 20px;
  border-bottom: 1px solid var(--ppa-line);
}
.ppa-filter-label {
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: #d4a842; margin-bottom: 14px;
  padding-bottom: 8px; border-bottom: 1px solid rgba(196,148,58,0.2);
}
.ppa-filter-brand-link, .ppa-filter-cat-link {
  display: flex; align-items: center; justify-content: space-between;
  font-family: var(--ppa-font-ui); font-size: 14px;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--ppa-parchment); text-decoration: none;
  padding: 9px 8px; margin: 0 -8px;
  transition: color 0.2s ease, background 0.2s ease;
  min-height: 40px;
}
.ppa-filter-brand-link:hover, .ppa-filter-cat-link:hover {
  color: var(--ppa-parchment); background: rgba(78,168,160,0.04);
}
.ppa-filter-brand-link.active, .ppa-filter-cat-link.active {
  color: var(--ppa-teal); border-left: 2px solid var(--ppa-teal);
  background: rgba(78,168,160,0.06);
}
.ppa-filter-count {
  font-size: 10px; color: var(--ppa-text-dim); font-weight: 400;
}
.ppa-filter-radio {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--ppa-font-body); font-size: 13px;
  color: var(--ppa-parchment); padding: 6px 0; cursor: pointer;
  min-height: 38px;
}
.ppa-filter-radio input { accent-color: var(--ppa-teal); }
.ppa-filter-sort {
  width: 100%; padding: 10px 12px;
  background: rgba(26,22,16,0.8); border: 1px solid var(--ppa-line);
  color: var(--ppa-parchment); font-family: var(--ppa-font-ui);
  font-size: 12px; letter-spacing: 0.1em;
  outline: none; cursor: pointer;
}
.ppa-filter-sort:focus { border-color: rgba(78,168,160,0.4); }

/* ── Main Content ── */
.ppa-catalog-main {
  flex: 1; padding: 24px 32px 80px;
  min-width: 0;
}
.ppa-catalog-header { margin-bottom: 24px; }
.ppa-catalog-title {
  font-family: var(--ppa-font-display);
  font-size: clamp(28px, 4vw, 42px); font-weight: 400;
  color: var(--ppa-parchment); margin-bottom: 8px;
}
.ppa-catalog-desc {
  font-family: var(--ppa-font-body);
  font-size: 14px; color: var(--ppa-text-mid);
  max-width: 500px; line-height: 1.6;
}
.ppa-catalog-rule {
  width: 100%; height: 1px; margin-top: 16px;
  background: linear-gradient(90deg, var(--ppa-gold), transparent 60%);
  opacity: 0.3;
}
.ppa-catalog-controls {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 20px;
}
.ppa-catalog-count {
  font-family: var(--ppa-font-ui); font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-text-dim);
}
.ppa-mobile-filter-btn {
  display: none; align-items: center; gap: 6px;
  font-family: var(--ppa-font-ui); font-size: 11px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-teal); background: transparent;
  border: 1px solid var(--ppa-teal); padding: 8px 16px;
  cursor: pointer;
}

/* ═══════════════════════════════════════════════════════
   CATALOG — Product Cards (with ALL animations)
   ═══════════════════════════════════════════════════════ */
.ppa-product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--ppa-line);
}

.ppa-card {
  display: flex; flex-direction: column;
  background: var(--ppa-base);
  border: 0.5px solid var(--ppa-line);
  text-decoration: none; position: relative;
  overflow: hidden;
  opacity: 0; transform: translateY(12px);
  animation: ppaCardFadeIn 0.5s ease both;
  transition: background 0.25s ease, border-color 0.25s ease;
}
@keyframes ppaCardFadeIn {
  to { opacity: 1; transform: translateY(0); }
}
/* Smooth page content fade-in to reduce jarring reloads */
.ppa-catalog-layout {
  animation: ppaCatalogFadeIn 0.3s ease both;
}
@keyframes ppaCatalogFadeIn {
  from { opacity: 0.6; }
  to { opacity: 1; }
}
.ppa-card:hover {
  background: var(--ppa-surface);
  border-color: rgba(78,168,160,0.2);
  z-index: 2;
}

/* Card Image */
.ppa-card-img {
  position: relative; overflow: hidden;
  aspect-ratio: 1;
  background: #e8e0d0;
  display: flex; align-items: center; justify-content: center;
  padding: 4%;
}
.ppa-card-img img {
  width: 92%; height: 92%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform 0.5s ease;
}
.ppa-card:hover .ppa-card-img img { transform: scale(1.04); }

.ppa-card-img-placeholder {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
}

/* Brand-tinted sweep shutter — left to right on hover */
.ppa-card-sweep {
  position: absolute; top: 0; left: -100%; width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(196,148,58,0.25), transparent);
  pointer-events: none; z-index: 2;
  transition: left 0s;
}
.ppa-card:hover .ppa-card-sweep {
  left: 160%; transition: left 0.55s ease;
}
/* [FE-061a 2026-09-12] house sweep motion gated per the motion rule (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  .ppa-card-sweep, .ppa-card:hover .ppa-card-sweep { transition: none; left: -100%; }
}
/* Bottom accent bar on hover */
.ppa-card::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: transparent; z-index: 2;
  transition: background 0.25s;
}
.ppa-card:hover::after {
  background: linear-gradient(90deg, var(--ppa-teal) 0%, rgba(78,168,160,0.08) 100%);
}

/* Quick View button */
.ppa-card-quickview {
  position: absolute; bottom: 12px; right: 12px;
  font-family: var(--ppa-font-ui); font-size: 10px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-teal); padding: 6px 12px;
  background: rgba(12,14,16,0.85);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(78,168,160,0.3);
  opacity: 0; transform: translateY(4px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  pointer-events: none;
}
.ppa-card:hover .ppa-card-quickview {
  opacity: 1; transform: translateY(0);
}

/* Badges */
.ppa-card-badge {
  position: absolute; top: 10px; left: 10px; z-index: 3;
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  padding: 4px 8px;
}
.ppa-card-badge--sale {
  background: var(--ppa-teal); color: #fff;
}
.ppa-card-badge--oos {
  background: rgba(237,228,208,0.1); color: var(--ppa-text-dim);
}
.ppa-card-badge--usa {
  display: flex; align-items: center; gap: 5px;
  background: rgba(12,14,16,0.85);
  color: #EDE4D0; border: 1px solid rgba(196,148,58,0.5);
  right: auto; left: 10px; bottom: 10px; top: auto;
  font-size: 10px; letter-spacing: 0.12em;
  padding: 5px 10px; border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
}
.ppa-card-badge--usa .ppa-usa-flag { flex-shrink: 0; }
.ppa-brand-card-usa {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: var(--ppa-font-ui); font-size: 9px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.7); margin-top: 6px;
}
.ppa-brand-card-usa .ppa-usa-flag { flex-shrink: 0; }

/* Card Body */
.ppa-card-body {
  flex: 1; padding: 16px 20px 20px;
  display: flex; flex-direction: column; gap: 6px;
}
.ppa-card-brand {
  font-family: var(--ppa-font-ui); font-size: 12px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ppa-gold); opacity: 0.8; margin-bottom: 6px;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.ppa-card:hover .ppa-card-brand { opacity: 1; color: var(--ppa-teal); }
.ppa-card-name {
  font-family: var(--ppa-font-ui); font-size: 16px;
  letter-spacing: 0.03em; color: var(--ppa-parchment);
  line-height: 1.4; margin-bottom: 10px;
  display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.ppa-card-footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: auto;
}
.ppa-card-price {
  font-family: var(--ppa-price-font); font-size: 20px; font-weight: var(--ppa-price-weight);
  color: var(--ppa-price-color);
}
.ppa-card-price-regular {
  font-family: var(--ppa-price-font);
  text-decoration: line-through; font-size: 14px; font-weight: 500;
  color: var(--ppa-price-strike); margin-right: 6px;
}
.ppa-card-price-sale { color: var(--ppa-price-color); }

/* Star rating */
.ppa-card-rating { display: flex; gap: 1px; }
.ppa-star { font-size: 12px; color: rgba(196,148,58,0.2); }
.ppa-star--filled { color: var(--ppa-gold); }

/* Card category label color shift on hover */
.ppa-card:hover .ppa-card-brand { color: var(--ppa-teal); opacity: 1; }

/* ── Load More ── */
.ppa-load-more-wrap {
  text-align: center; padding: 40px 0;
}
.ppa-load-more-count {
  font-family: var(--ppa-font-ui); font-size: 11px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-text-dim); margin-bottom: 16px;
}

/* ── Mobile Filter Drawer ── */
.ppa-mobile-filter-drawer {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
  background: var(--ppa-surface);
  border-top: 2px solid var(--ppa-gold);
  transform: translateY(100%);
  transition: transform 0.3s ease;
  max-height: 70vh; overflow-y: auto;
}
.ppa-mobile-filter-drawer.open { transform: translateY(0); }
.ppa-mobile-filter-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px;
  font-family: var(--ppa-font-ui); font-size: 14px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-parchment); border-bottom: 1px solid var(--ppa-line);
}
.ppa-mobile-filter-close {
  font-size: 24px; color: var(--ppa-parchment);
  background: none; border: none; cursor: pointer;
}
.ppa-mobile-filter-body { padding: 20px; }
.ppa-mobile-filter-backdrop {
  position: fixed; inset: 0; z-index: 199;
  background: rgba(0,0,0,0.6);
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s ease;
}
.ppa-mobile-filter-backdrop.open { opacity: 1; pointer-events: auto; }

/* ═══════════════════════════════════════════════════════
   SAFE AREA & MOBILE FIXES
   ═══════════════════════════════════════════════════════ */
input, button, select, textarea {
  font-size: 16px; /* Prevent iOS zoom */
  -webkit-appearance: none;
  border-radius: 0;
}
* { -webkit-tap-highlight-color: transparent; }
body { overscroll-behavior-y: none; }

/* ═══════════════════════════════════════════════════════
   PRODUCT DETAIL PAGE
   ═══════════════════════════════════════════════════════ */
/* Ensure scroll is never blocked on product or catalog pages */
body.single-product,
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
  overflow-y: scroll !important;
  height: auto !important;
  position: static !important;
}

.ppa-product-page {
  position: relative; z-index: 5;
  padding: 0 24px 80px;
}

/* Back Bar — sticky below nav, always visible */
.ppa-back-bar {
  position: sticky;
  top: var(--ppa-nav-h);
  z-index: 40;
  background: rgba(12,14,16,0.95);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ppa-line);
  padding: 12px 24px;
  margin: 0 -24px 24px;
  display: flex; align-items: center; justify-content: flex-start;
  gap: 16px; flex-wrap: wrap;
}
/* .ppa-back-link deleted 2026-08-07 (William): the "Back to <Category>" button duplicated the
   breadcrumb sitting in the same bar. The breadcrumb is the survivor. */

/* PDP shipping line, sits under the price in the buy rail (2026-08-07). Quiet by design: it is
   reassurance, not a selling point, so it must not compete with the price above it. */
.ppa-pdp-shipping {
  display: flex; flex-direction: column; gap: 2px;
  margin: 10px 0 0;
  font-family: var(--ppa-font-ui);
}
.ppa-pdp-shipping__line {
  font-size: 14px; font-weight: 600; color: var(--ppa-text);
}
.ppa-pdp-shipping__note {
  font-size: 12.5px; line-height: 1.45; color: var(--ppa-text-dim);
}

.ppa-breadcrumb {
  padding: 8px 0;
  /* Was 11px/0.12em/text-dim: legible in a mockup, not on a real screen (William: "it's too
     small, you can't read it"). 13px with tighter tracking and real contrast on the links. */
  font-family: var(--ppa-font-ui); font-size: 13px;
  letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--ppa-text-dim);
}
.ppa-breadcrumb a {
  color: var(--ppa-text); text-decoration: none;
  transition: color 0.2s;
}
.ppa-breadcrumb a:hover { color: var(--ppa-teal); }
/* the .ppa-breadcrumb-current colour is set once, further down (parchment). Not repeated here. */
.ppa-breadcrumb-sep { margin: 0 8px; color: var(--ppa-gold); opacity: 0.45; }

/* Floating Back Button — bottom-right */
.ppa-back-fab {
  position: fixed;
  bottom: 32px; right: 32px;
  z-index: 45;
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(12,14,16,0.92);
  border: 1px solid rgba(78,168,160,0.3);
  border-radius: 50%;
  color: var(--ppa-teal);
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), 0 0 0 0 rgba(78,168,160,0);
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  visibility: hidden;
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease,
              background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.ppa-back-fab.visible {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
}
.ppa-back-fab:hover {
  background: rgba(78,168,160,0.15);
  border-color: rgba(78,168,160,0.6);
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), 0 0 16px rgba(78,168,160,0.15);
}
.ppa-back-fab:hover svg {
  transform: translateX(-2px);
}
.ppa-back-fab svg {
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.ppa-breadcrumb-current { color: var(--ppa-parchment); }

/* Layout */
.ppa-product-layout {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 48px; max-width: var(--ppa-content-w); margin: 0 auto;
  align-items: start;
}

/* Gallery */
/* Gallery scrolls naturally with the page — no sticky pinning */
.ppa-product-gallery { position: relative; }
.ppa-product-main-img {
  position: relative; aspect-ratio: 1;
  /* Product photos = white backgrounds only (never parchment/onyx). */
  background: #FFFFFF;
  border: 1px solid rgba(196,148,58,0.2);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; cursor: zoom-in;
  box-shadow: 0 8px 32px rgba(0,0,0,0.2), 0 2px 8px rgba(0,0,0,0.1);
}
.ppa-product-main-img img {
  max-width: 90%; max-height: 90%; object-fit: contain;
  padding: 24px;
  transition: transform 0.4s ease, opacity 0.3s ease;
}
.ppa-product-main-img img { cursor: zoom-in; }
.ppa-product-main-img:hover img { transform: scale(1.4); }

.ppa-product-thumbs {
  display: flex; gap: 8px; margin-top: 12px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ppa-product-thumbs::-webkit-scrollbar { display: none; }
.ppa-product-thumb {
  width: 72px; height: 72px; flex-shrink: 0;
  border: 2px solid transparent; background: #FFFFFF;
  padding: 4px; cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ppa-product-thumb.active {
  border-color: var(--ppa-gold);
  box-shadow: 0 0 0 1px var(--ppa-gold);
}
.ppa-product-thumb:hover { border-color: rgba(196,148,58,0.4); }
.ppa-product-thumb img { width: 100%; height: 100%; object-fit: contain; }

/* ── Specs Grid ── */
.ppa-specs-section {
  max-width: var(--ppa-content-w); margin: 48px auto 0;
  padding: 0 24px;
}
.ppa-specs-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border: 1px solid rgba(196,148,58,0.12); overflow: hidden;
}
.ppa-spec-row {
  display: flex; padding: 14px 20px;
  border-bottom: 1px solid rgba(196,148,58,0.08);
  background: rgba(237,228,208,0.03);
}
.ppa-spec-row:nth-child(odd) { background: rgba(237,228,208,0.06); }
.ppa-spec-key {
  font-family: var(--ppa-font-ui); font-size: 12px;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-text-mid); font-weight: 600;
  min-width: 140px; flex-shrink: 0;
}
.ppa-spec-val {
  font-family: var(--ppa-font-body); font-size: 14px;
  color: var(--ppa-parchment); font-weight: 400;
}

/* Details */
.ppa-product-brand {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--ppa-gold); text-decoration: none;
  display: inline-block; margin-bottom: 8px;
  transition: color 0.2s;
}
.ppa-product-brand:hover { color: var(--ppa-teal); }

.ppa-product-title {
  font-family: var(--ppa-font-display);
  font-size: clamp(24px, 3vw, 36px); font-weight: 400;
  color: var(--ppa-parchment); line-height: 1.2;
  margin-bottom: 12px;
}

.ppa-product-rating {
  display: flex; align-items: center; gap: 2px;
  margin-bottom: 8px;
}

.ppa-product-price-block {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  margin-bottom: 20px;
}
.ppa-product-price-current {
  font-family: var(--ppa-price-font); font-size: 32px; font-weight: var(--ppa-price-weight);
  color: var(--ppa-price-color);
}
.ppa-product-price-regular {
  font-family: var(--ppa-price-font); font-size: 18px; font-weight: 500;
  color: var(--ppa-price-strike); text-decoration: line-through;
}
.ppa-product-save-badge {
  font-family: var(--ppa-font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  background: rgba(78,168,160,0.12); color: var(--ppa-teal);
  padding: 4px 10px;
}

.ppa-product-desc {
  font-family: var(--ppa-font-body); font-size: 15px;
  color: var(--ppa-text-mid); line-height: 1.7;
  margin-bottom: 24px; white-space: pre-line;
}

/* Add to Cart WooCommerce override */
.ppa-product-atc { margin-bottom: 24px; }
.ppa-product-atc .quantity {
  display: flex; align-items: center;
  margin-bottom: 12px;
}
.ppa-product-atc .quantity input {
  width: 60px; text-align: center;
  background: rgba(26,22,16,0.8); border: 1px solid var(--ppa-line);
  color: var(--ppa-parchment); padding: 10px; font-size: 16px;
}
.ppa-product-atc .single_add_to_cart_button {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 52px;
  background: rgba(78,168,160,0.12); color: var(--ppa-parchment);
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase;
  border: 1px solid var(--ppa-teal); cursor: pointer; position: relative; overflow: hidden;
  transition: background 0.2s ease, transform 0.2s ease;
}
.ppa-product-atc .single_add_to_cart_button:hover {
  background: rgba(78,168,160,0.22); transform: translateY(-1px);
}
/* [FE-072 2026-09-12 William] The old white fill-shimmer is the generic sweep
   ("clearly an AI overused item now") - replaced with the house edge tracer
   from the homepage ARMORY button: teal-to-gold comet runs the 1px border on
   hover, calm border at rest, no idle motion. Same @property/conic technique;
   reduced-motion falls back to a steady bright border. */
@property --ppa-atc-angle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes ppa-atc-trace { to { --ppa-atc-angle: 360deg; } }
.ppa-product-atc .single_add_to_cart_button::before { content: none; }
.ppa-product-atc .single_add_to_cart_button {
  --ppa-atc-angle: 0deg;
  isolation: isolate;
}
.ppa-product-atc .single_add_to_cart_button:hover,
.ppa-product-atc .single_add_to_cart_button:focus-visible {
  border-color: transparent;
  border-image: conic-gradient(
    from var(--ppa-atc-angle, 0deg),
    rgba(78,168,160,0.22) 0deg,
    rgba(78,168,160,0.22) 205deg,
    rgba(78,168,160,0.85) 285deg,
    rgba(196,148,58,1) 320deg,
    rgba(180,240,234,1) 346deg,
    rgba(78,168,160,0.22) 360deg
  ) 1;
  animation: ppa-atc-trace 2.4s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .ppa-product-atc .single_add_to_cart_button:hover,
  .ppa-product-atc .single_add_to_cart_button:focus-visible {
    border-color: rgba(78,168,160,0.85); border-image: none; animation: none;
  }
}

/* Meta */
.ppa-product-meta {
  border-top: 1px solid var(--ppa-line); padding-top: 20px;
}
.ppa-product-meta-item {
  display: flex; gap: 12px;
  font-family: var(--ppa-font-body); font-size: 13px;
  color: var(--ppa-text-mid); padding: 6px 0;
}
.ppa-product-meta-label {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-gold); min-width: 80px;
}
.ppa-product-meta-item a { color: var(--ppa-teal); text-decoration: none; }
.ppa-product-meta-item a:hover { text-decoration: underline; }

/* PDP Related Products */
.ppa-related-section {
  border-top: 1px solid var(--ppa-line); margin-top: 60px;
}
.ppa-related-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px; background: transparent;
}
@media (max-width: 768px) {
  .ppa-related-grid { grid-template-columns: repeat(2, 1fr); }
}

/* End-of-Product Section — clear visual break before footer */
.ppa-pdp-end {
  max-width: var(--ppa-content-w); margin: 48px auto 0;
  padding: 32px 0 0;
  text-align: center;
}
.ppa-pdp-end-rule {
  width: 120px; height: 1px; margin: 0 auto 24px;
  background: linear-gradient(90deg, transparent, var(--ppa-gold-dim), transparent);
}
.ppa-pdp-end-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ppa-teal); text-decoration: none;
  padding: 10px 20px 10px 14px;
  border: 1px solid rgba(78,168,160,0.2);
  border-radius: 4px;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.ppa-pdp-end-back:hover {
  background: rgba(78,168,160,0.08);
  border-color: rgba(78,168,160,0.5);
  transform: translateX(-2px);
}
.ppa-pdp-end-back svg {
  transition: transform 0.2s;
}
.ppa-pdp-end-back:hover svg {
  transform: translateX(-3px);
}

/* PDP Trust Grid */
.ppa-pdp-divider {
  width: 100%; height: 1px; margin: 16px 0;
  background: linear-gradient(90deg, var(--ppa-gold), transparent 60%);
  opacity: 0.3;
}
.ppa-pdp-trust-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  padding: 20px 0; margin: 20px 0;
  border-top: 1px solid var(--ppa-line);
  border-bottom: 1px solid var(--ppa-line);
}
.ppa-pdp-trust-item {
  display: flex; align-items: flex-start; gap: 8px;
}
.ppa-pdp-trust-item svg { flex-shrink: 0; margin-top: 2px; }
.ppa-pdp-trust-title {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--ppa-parchment); display: block;
}
.ppa-pdp-trust-desc {
  font-family: var(--ppa-font-body); font-size: 12px;
  color: var(--ppa-text-dim);
}
@media (max-width: 768px) {
  .ppa-pdp-trust-grid { grid-template-columns: 1fr; }
}

/* WooCommerce cart/checkout dark overrides */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background: var(--ppa-surface) !important;
  color: var(--ppa-parchment) !important;
  border-top-color: var(--ppa-teal) !important;
}
.woocommerce-message a, .woocommerce-info a {
  color: var(--ppa-teal) !important;
}
.woocommerce table.shop_table {
  background: transparent; border-color: var(--ppa-line);
  color: var(--ppa-parchment);
}
.woocommerce table.shop_table th {
  font-family: var(--ppa-font-ui); font-size: 10px;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ppa-gold);
}
.woocommerce table.shop_table td {
  border-color: var(--ppa-line); color: var(--ppa-parchment);
}
.woocommerce table.shop_table td a { color: var(--ppa-teal); }
.woocommerce .button, .woocommerce button.button {
  background: rgba(78,168,160,0.12) !important; color: var(--ppa-parchment) !important;
  font-family: var(--ppa-font-ui) !important; font-size: 11px !important;
  letter-spacing: 0.2em !important; text-transform: uppercase !important;
  border: 1px solid var(--ppa-teal) !important; border-radius: 0 !important;
  padding: 14px 28px !important;
}
.woocommerce .button:hover, .woocommerce button.button:hover {
  background: rgba(78,168,160,0.22) !important;
}
.woocommerce input, .woocommerce select, .woocommerce textarea {
  background: rgba(237,228,208,0.04) !important; border: 1px solid rgba(237,228,208,0.2) !important;
  color: var(--ppa-parchment) !important; border-radius: 0 !important;
  padding: 12px 16px !important; outline: none !important;
}
.woocommerce input:focus, .woocommerce select:focus, .woocommerce textarea:focus {
  border-color: var(--ppa-teal) !important; outline: none !important;
  box-shadow: 0 0 0 1px rgba(78,168,160,0.2) !important;
}
.woocommerce label { color: var(--ppa-text-mid) !important; }

/* ═══════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .ppa-nav-links { display: none; }
  .ppa-hamburger { display: flex; }
  .ppa-mobile-overlay { display: block; }
  .ppa-categories { grid-template-columns: repeat(2, 1fr); }
  .ppa-products-grid { grid-template-columns: repeat(2, 1fr); }
  .ppa-product-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .ppa-footer-orgs-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ppa-footer-org { padding: 12px 10px; }
  .ppa-footer-org-name { font-size: 10px; }
  .ppa-footer-org-mission { font-size: 10px; }
  .ppa-notify-form { flex-direction: column; }
  .ppa-notify-input { border-right: 1px solid var(--ppa-line); border-bottom: none; }
  .ppa-notify-submit { padding: 15px; }
  .ppa-footer-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .ppa-trust-grid { grid-template-columns: 1fr; gap: 16px; }
  .ppa-pillars { grid-template-columns: 1fr; }
  .ppa-pillar { border-right: none; border-bottom: 1px solid var(--ppa-line); }
  .ppa-pillar:last-child { border-bottom: none; }
  .ppa-brand-lockup .ppa-brand-bottom { font-size: clamp(26px, 10vw, 54px); }
  .ppa-corner { display: none; }
  /* Ghost text watermark — vertical along left edge on mobile */
  .ppa-hero-ghost {
    top: 40%;
    left: -10px;
    right: auto;
    width: auto;
    overflow: visible;
    text-align: left;
    transform: rotate(-90deg) translateX(-50%);
    transform-origin: 0 0;
    font-size: 38px;
    letter-spacing: 0.32em;
    opacity: 0.08;
    white-space: nowrap;
  }
  .ppa-reticle-bg svg { opacity: 0.35; }
  .ppa-reticle-bg .ring { stroke-width: 1.0; }
  .ppa-reticle-bg .tick { stroke-width: 1.2; }
  /* Catalog mobile */
  .ppa-catalog-sidebar { display: none; }
  .ppa-mobile-filter-btn { display: flex; }
  .ppa-product-grid { grid-template-columns: repeat(2, 1fr); }
  .ppa-catalog-main { padding: 16px 16px 60px; }
  .ppa-card-name { font-size: 12px; }
  .ppa-card-price { font-size: 15px; }
  /* Product detail mobile */
  .ppa-back-bar { flex-direction: column; align-items: flex-start; margin: 0 -16px 16px; padding: 10px 16px; }
  /* MUST stay visible (2026-08-07). This was display:none because the "Back to <Category>"
     button carried mobile back-nav and the breadcrumb was just duplicate clutter. That button
     is gone, so hiding this would leave phones with no way back up the tree at all. It scrolls
     inside its own strip rather than wrapping, so the page body never scrolls sideways. */
  .ppa-breadcrumb {
    display: block; font-size: 12px; letter-spacing: 0.05em;
    white-space: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; max-width: 100%;
  }
  .ppa-breadcrumb::-webkit-scrollbar { display: none; }
  .ppa-back-fab { bottom: 20px; right: 20px; width: 44px; height: 44px; }
  .ppa-product-layout { grid-template-columns: 1fr; gap: 24px; }
  .ppa-product-gallery { position: static; }
  .ppa-product-title { font-size: 24px; }
  .ppa-product-price-current { font-size: 26px; }
}
@media (max-width: 480px) {
  .ppa-footer-grid { grid-template-columns: 1fr; }
  .ppa-footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
  .ppa-footer-orgs-grid { grid-template-columns: 1fr; }
  .ppa-categories { grid-template-columns: 1fr; }
  .ppa-products-grid { grid-template-columns: 1fr; }
  .ppa-search-results-grid { grid-template-columns: 1fr !important; }
}

/* ═══════════════════════════════════════════════════════
   SEARCH RESULTS — Product Cards
   ═══════════════════════════════════════════════════════ */
.ppa-search-header {
  max-width: var(--ppa-content-w); margin: 0 auto;
  padding: 32px 24px 0;
}
.ppa-search-heading {
  font-family: var(--ppa-font-display); font-size: 32px;
  font-weight: 400; color: var(--ppa-parchment);
  margin-bottom: 6px;
}
.ppa-search-query {
  font-family: var(--ppa-font-body); font-size: 15px;
  color: var(--ppa-text-dim);
}
.ppa-search-query strong { color: var(--ppa-teal); }
.ppa-search-inline-form {
  max-width: var(--ppa-content-w); margin: 0 auto;
  padding: 20px 24px 0;
}
.ppa-search-inline-form form {
  display: flex; gap: 0; max-width: 500px;
}
.ppa-search-inline-form input[type="search"] {
  flex: 1; padding: 12px 16px;
  font-family: var(--ppa-font-body); font-size: 14px;
  background: var(--ppa-surface); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line); border-right: none;
  outline: none;
}
.ppa-search-inline-form input[type="search"]:focus {
  border-color: rgba(78,168,160,0.4);
}
.ppa-search-inline-form button {
  padding: 12px 24px;
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  background: rgba(78,168,160,0.12); color: var(--ppa-parchment); border: 1px solid var(--ppa-teal);
  cursor: pointer; transition: background 0.2s;
}
.ppa-search-inline-form button:hover { background: rgba(78,168,160,0.22); }
.ppa-search-count {
  max-width: var(--ppa-content-w); margin: 0 auto;
  padding: 16px 24px 0;
  font-family: var(--ppa-font-ui); font-size: 12px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ppa-text-dim);
}
.ppa-search-results-grid {
  max-width: var(--ppa-content-w); margin: 0 auto;
  padding: 24px;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
@media (max-width: 1100px) {
  .ppa-search-results-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .ppa-search-results-grid { grid-template-columns: repeat(2, 1fr); }
  .ppa-search-heading { font-size: 24px; }
}
.ppa-search-no-results {
  max-width: var(--ppa-content-w); margin: 0 auto;
  padding: 48px 24px;
  text-align: center;
}
.ppa-search-no-results p {
  font-family: var(--ppa-font-body); font-size: 16px;
  color: var(--ppa-text-dim); margin-bottom: 24px;
}
.ppa-search-suggestions {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
  margin-top: 16px;
}
.ppa-search-suggestions a {
  font-family: var(--ppa-font-ui); font-size: 12px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ppa-teal); padding: 8px 16px;
  border: 1px solid rgba(78,168,160,0.25);
  transition: background 0.2s, border-color 0.2s;
}
.ppa-search-suggestions a:hover {
  background: rgba(78,168,160,0.08);
  border-color: rgba(78,168,160,0.5);
}

/* ── Cart/Checkout responsive ─�� */
@media (max-width: 768px) {
  .woocommerce-cart .cart_totals { float: none; width: 100%; }
  .woocommerce-cart table.shop_table td { padding: 10px 8px; font-size: 13px; }
  .woocommerce-cart table.shop_table td.product-thumbnail img { width: 56px; height: 56px; }
  .woocommerce-cart .coupon { float: none; margin-bottom: 12px; }
  .woocommerce-checkout .col2-set { grid-template-columns: 1fr; gap: 24px; }
  .woocommerce-checkout .woocommerce-checkout-review-order { padding: 16px; }
  .woocommerce-checkout #payment { padding: 16px; }
}

/* ═══════════════════════════════════════════════════════
   ASK THE MITCHELLS — AI Chat Concept
   ═══════════════════════════════════════════════════════ */
.ppa-ask-page {
  padding: 100px 24px 60px;
  min-height: 100vh;
}
.ppa-ask-hero {
  text-align: center; max-width: 600px; margin: 0 auto 48px;
}
.ppa-ask-subtitle {
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: 16px; color: rgba(237,228,208,0.5); line-height: 1.7;
  margin-top: 12px;
}
.ppa-ask-container {
  max-width: 800px; margin: 0 auto;
}

/* Chat window */
.ppa-chat {
  background: rgba(237,228,208,0.02);
  border: 1px solid var(--ppa-line);
  border-radius: 8px; overflow: hidden;
  margin-bottom: 48px;
}
.ppa-chat-messages {
  padding: 28px 24px; max-height: 600px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 20px;
}

/* Messages */
.ppa-chat-msg {
  display: flex; gap: 12px; max-width: 90%;
}
.ppa-chat-msg--assistant { align-self: flex-start; }
.ppa-chat-msg--user { align-self: flex-end; flex-direction: row-reverse; }

.ppa-chat-avatar {
  flex-shrink: 0; width: 36px; height: 36px;
  background: rgba(78,168,160,0.1); border: 1px solid rgba(78,168,160,0.2);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
}

.ppa-chat-bubble {
  font-family: var(--ppa-font-body); font-size: 14px; line-height: 1.7;
  color: rgba(237,228,208,0.85); padding: 16px 20px; border-radius: 12px;
}
.ppa-chat-msg--assistant .ppa-chat-bubble {
  background: rgba(237,228,208,0.04);
  border: 1px solid rgba(237,228,208,0.08);
  border-radius: 2px 12px 12px 12px;
}
.ppa-chat-msg--user .ppa-chat-bubble {
  background: rgba(78,168,160,0.12);
  border: 1px solid rgba(78,168,160,0.2);
  border-radius: 12px 2px 12px 12px;
  color: var(--ppa-parchment);
}
.ppa-chat-name {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--ppa-teal); margin-bottom: 6px;
}
.ppa-chat-bubble strong {
  color: var(--ppa-parchment); font-weight: 600;
}

/* Product cards in chat */
.ppa-chat-products {
  display: flex; flex-direction: column; gap: 10px;
  margin: 14px 0;
}
.ppa-chat-product {
  background: rgba(237,228,208,0.03); border: 1px solid rgba(237,228,208,0.08);
  border-radius: 6px; padding: 12px 16px;
}
.ppa-chat-product-name {
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 700;
  color: var(--ppa-parchment); letter-spacing: 0.03em;
}
.ppa-chat-product-detail {
  font-family: var(--ppa-font-ui); font-size: 11px;
  color: rgba(237,228,208,0.4); margin-top: 2px;
}
.ppa-chat-product-price {
  font-family: var(--ppa-font-ui); font-size: 16px; font-weight: 700;
  color: var(--ppa-teal); margin-top: 4px;
}
.ppa-chat-product-why {
  font-family: var(--ppa-font-body); font-size: 12px;
  color: rgba(237,228,208,0.55); margin-top: 4px; line-height: 1.5;
}

/* Input area */
.ppa-chat-input-area {
  padding: 16px 24px 20px;
  background: rgba(237,228,208,0.03);
  border-top: 1px solid var(--ppa-line);
}
.ppa-chat-input-wrap {
  display: flex; gap: 8px;
}
.ppa-chat-input {
  flex: 1; padding: 14px 16px;
  background: rgba(237,228,208,0.05); color: var(--ppa-parchment);
  border: 1px solid var(--ppa-line); border-radius: 6px;
  font-family: var(--ppa-font-body); font-size: 14px;
}
.ppa-chat-input::placeholder { color: rgba(237,228,208,0.25); }
.ppa-chat-send {
  background: rgba(78,168,160,0.14); color: var(--ppa-teal); border: 1px solid var(--ppa-teal);
  padding: 14px; border-radius: 6px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.ppa-chat-send:hover { background: rgba(78,168,160,0.24); }
.ppa-chat-disclaimer {
  font-family: var(--ppa-font-ui); font-size: 10px;
  color: rgba(237,228,208,0.25); text-align: center;
  margin-top: 10px; letter-spacing: 0.05em;
}

/* Typing indicator */
.ppa-typing-dots {
  display: flex; gap: 5px; padding: 4px 0;
}
.ppa-typing-dots span {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(78,168,160,0.5);
  animation: ppaDotPulse 1.4s ease-in-out infinite;
}
.ppa-typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.ppa-typing-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes ppaDotPulse {
  0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
  40% { opacity: 1; transform: scale(1); }
}

/* Product card with image in chat */
a.ppa-chat-product {
  display: flex; gap: 14px; align-items: flex-start;
  text-decoration: none; cursor: pointer;
}
a.ppa-chat-product:hover { border-color: rgba(78,168,160,0.3); }
.ppa-chat-product-img {
  flex-shrink: 0; width: 72px; height: 72px;
  background: rgba(237,228,208,0.06); border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.ppa-chat-product-img img {
  width: 100%; height: 100%; object-fit: contain;
  mix-blend-mode: multiply;
}
.ppa-chat-product-info { flex: 1; min-width: 0; }
.ppa-chat-product-brand {
  font-weight: 400; color: rgba(237,228,208,0.4);
  font-size: 10px; margin-left: 6px;
}

/* Starter prompts */
.ppa-ask-starters {
  margin-top: 20px; text-align: center;
}
.ppa-ask-starters-label {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 600;
  letter-spacing: 0.3em; text-transform: uppercase;
  color: rgba(237,228,208,0.3); margin-bottom: 12px;
}
.ppa-ask-starters-grid {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
}
.ppa-ask-starter {
  background: rgba(237,228,208,0.03); border: 1px solid rgba(237,228,208,0.1);
  color: rgba(237,228,208,0.6); padding: 10px 18px;
  font-family: var(--ppa-font-body); font-size: 13px;
  border-radius: 20px; cursor: pointer; transition: all 0.15s;
}
.ppa-ask-starter:hover {
  background: rgba(78,168,160,0.08); border-color: rgba(78,168,160,0.3);
  color: var(--ppa-parchment);
}

/* Feature callouts */
.ppa-ask-features {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.ppa-ask-feature {
  text-align: center; padding: 24px 16px;
  background: rgba(237,228,208,0.02);
  border: 1px solid rgba(237,228,208,0.06);
  border-radius: 8px; transition: border-color 0.2s;
}
.ppa-ask-feature:hover { border-color: rgba(78,168,160,0.2); }
.ppa-ask-feature-icon { margin-bottom: 12px; }
.ppa-ask-feature-title {
  font-family: var(--ppa-font-ui); font-size: 12px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ppa-parchment); margin-bottom: 8px;
}
.ppa-ask-feature-desc {
  font-family: var(--ppa-font-body); font-size: 13px;
  color: rgba(237,228,208,0.45); line-height: 1.6;
}

@media (max-width: 768px) {
  .ppa-ask-features { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ppa-chat-msg { max-width: 95%; }
  .ppa-chat-messages { padding: 16px; }
  .ppa-chat-input-area { padding: 12px 16px 16px; }
}
@media (max-width: 480px) {
  .ppa-ask-features { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════
   INTEL DESK — Coming Soon / Blog Hub
   ═══════════════════════════════════════════════════════ */
.ppa-intel-page {
  padding: 100px 24px 60px; min-height: 100vh;
}
.ppa-intel-hero {
  text-align: center; max-width: 600px; margin: 0 auto 48px;
}
.ppa-intel-subtitle {
  font-family: var(--ppa-font-display); font-style: italic;
  font-size: 16px; color: rgba(237,228,208,0.5); line-height: 1.7;
  margin-top: 12px;
}
.ppa-intel-container { max-width: 900px; margin: 0 auto; }
.ppa-intel-coming-soon { text-align: center; }
.ppa-intel-icon { margin-bottom: 20px; }
.ppa-intel-coming-title {
  font-family: var(--ppa-font-display); font-size: 28px;
  color: var(--ppa-parchment); margin-bottom: 12px;
}
.ppa-intel-coming-desc {
  font-family: var(--ppa-font-body); font-size: 15px;
  color: rgba(237,228,208,0.55); line-height: 1.7;
  max-width: 540px; margin: 0 auto 40px;
}
.ppa-intel-topics { margin-bottom: 40px; }
.ppa-intel-topics-label {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 700;
  letter-spacing: 0.4em; text-transform: uppercase;
  color: var(--ppa-gold); margin-bottom: 20px;
}
.ppa-intel-topics-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  text-align: left;
}
.ppa-intel-topic {
  padding: 20px; background: rgba(237,228,208,0.03);
  border: 1px solid rgba(237,228,208,0.06);
  border-radius: 6px; transition: border-color 0.2s;
}
.ppa-intel-topic:hover { border-color: rgba(78,168,160,0.2); }
.ppa-intel-topic-title {
  font-family: var(--ppa-font-ui); font-size: 13px; font-weight: 700;
  color: var(--ppa-parchment); margin-bottom: 6px;
}
.ppa-intel-topic-desc {
  font-family: var(--ppa-font-body); font-size: 13px;
  color: rgba(237,228,208,0.4); line-height: 1.6;
}
.ppa-intel-notify { margin-top: 32px; }
.ppa-intel-posts-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.ppa-intel-post-card {
  background: rgba(237,228,208,0.03); border: 1px solid rgba(237,228,208,0.06);
  border-radius: 6px; overflow: hidden; text-decoration: none;
  transition: border-color 0.2s, transform 0.2s;
}
.ppa-intel-post-card:hover { border-color: rgba(78,168,160,0.2); transform: translateY(-2px); }
.ppa-intel-post-img { aspect-ratio: 16/9; overflow: hidden; }
.ppa-intel-post-img img { width: 100%; height: 100%; object-fit: cover; }
.ppa-intel-post-info { padding: 16px; }
.ppa-intel-post-date {
  font-family: var(--ppa-font-ui); font-size: 10px; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(237,228,208,0.3); margin-bottom: 6px;
}
.ppa-intel-post-title {
  font-family: var(--ppa-font-ui); font-size: 14px; font-weight: 700;
  color: var(--ppa-parchment); margin-bottom: 6px; line-height: 1.4;
}
.ppa-intel-post-excerpt {
  font-family: var(--ppa-font-body); font-size: 13px;
  color: rgba(237,228,208,0.4); line-height: 1.6;
}
@media (max-width: 768px) {
  .ppa-intel-topics-grid { grid-template-columns: 1fr; }
  .ppa-intel-posts-grid { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════════════════
   Back-to-top button — middle-right rail, elongated pill
   Appears after 200px scroll. Teal. Desktop + mobile.
   ══════════════════════════════════════════════════════ */
.ppa-back-to-top {
  position: fixed;
  top: 50%;
  right: 16px;
  transform: translateY(-50%) translateX(8px);
  width: 36px;
  padding: 18px 0;
  background: rgba(12,14,16,0.85);
  border: 1px solid rgba(78,168,160,0.35);
  border-radius: 18px;
  color: var(--ppa-teal);
  font-family: var(--ppa-font-ui, 'Barlow Condensed', sans-serif);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  text-decoration: none;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 0 1px rgba(78,168,160,0.08) inset;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease, background 0.2s ease, border-color 0.2s ease;
  z-index: 80;
}
.ppa-back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.ppa-back-to-top:hover {
  background: rgba(78,168,160,0.15);
  border-color: rgba(78,168,160,0.7);
  color: #fff;
}
.ppa-back-to-top-arrow {
  writing-mode: horizontal-tb;
  font-size: 12px;
  line-height: 1;
}
@media (max-width: 600px) {
  .ppa-back-to-top {
    right: 10px;
    width: 32px;
    padding: 14px 0;
    font-size: 9px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   EMPTY-TERM NOTICE  (migrated from ppa-tonight-fix plugin 2026-05-05)
   Rendered server-side by archive-product.php when $ppa_empty_term is true.
   Owns the main column for firearm leaves, brand archives, and truly-empty
   categories until real inventory lands.
   ═══════════════════════════════════════════════════════════════════════════ */
.ppa-empty-term-notice {
  max-width: 720px;
  margin: 64px auto 96px;
  padding: 56px 40px;
  background: rgba(12, 14, 16, 0.85);
  border: 1px solid rgba(196, 148, 58, 0.42);
  text-align: center;
  position: relative;
  z-index: 5;
}
.ppa-empty-term-notice .ppa-empty-eyebrow {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #C4943A;
  margin-bottom: 14px;
}
.ppa-empty-term-notice h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 38px;
  line-height: 1.15;
  color: #EDE4D0;
  margin: 0 0 18px;
  font-style: italic;
}
.ppa-empty-term-notice p {
  font-family: 'Barlow', sans-serif;
  color: #EDE4D0;
  font-size: 15px;
  line-height: 1.65;
  margin: 0 auto 32px;
  max-width: 540px;
}
.ppa-empty-term-notice .ppa-empty-cta {
  display: inline-block;
  padding: 12px 32px;
  border: 1px solid #4EA8A0;
  color: #4EA8A0;
  text-decoration: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(78, 168, 160, 0.10);
  transition: background 0.18s ease, color 0.18s ease;
}
.ppa-empty-term-notice .ppa-empty-cta:hover {
  background: rgba(78, 168, 160, 0.20);
  color: #5EBBB1;
}
.ppa-empty-term-notice .ppa-empty-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(196, 148, 58, 0.6);
}
.ppa-empty-term-notice .ppa-empty-corner.tl { top: -1px; left: -1px;  border-right: none; border-bottom: none; }
.ppa-empty-term-notice .ppa-empty-corner.tr { top: -1px; right: -1px; border-left:  none; border-bottom: none; }
.ppa-empty-term-notice .ppa-empty-corner.bl { bottom: -1px; left: -1px;  border-right: none; border-top: none; }
.ppa-empty-term-notice .ppa-empty-corner.br { bottom: -1px; right: -1px; border-left:  none; border-top: none; }

@media (max-width: 600px) {
  .ppa-empty-term-notice { padding: 40px 24px; margin: 32px 16px 64px; }
  .ppa-empty-term-notice h2 { font-size: 28px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   WAVE 4 MOBILE CRITICALS  (migrated from ppa-tonight-fix plugin 2026-05-05)
   a11y, LCP, and tap-target fixes that previously lived in the plugin's
   wp_head <style> block. Now they sit in style.css where Wordfence/UpdraftPlus
   rollback can't strip them.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Skip-to-content link — first focusable element in <body>. Visible only on
   focus so keyboard users can jump past the nav. Anchor in archive-product.php
   has id="ppa-main"; for templates without it, footer.php tags <main> at runtime. */
.ppa-skip-link {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 100000;
  background: #0C0E10;
  color: #4EA8A0;
  padding: 12px 20px;
  border: 1px solid #4EA8A0;
  text-decoration: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 13px;
}
.ppa-skip-link:focus,
.ppa-skip-link:focus-visible {
  left: 16px;
  outline: 2px solid #4EA8A0;
  outline-offset: 2px;
}

/* Global focus-visible ring — keyboard users were getting browser default
   (or none, after the theme's CSS reset). 2px teal outline, slight offset. */
:focus-visible {
  outline: 2px solid #4EA8A0;
  outline-offset: 2px;
}
/* Exception: the nav search field. Its parent .util-search owns the focus
   indication via .util-search:focus-within { border-color: teal }. Adding
   the global focus-visible outline on top creates a "two boxes" look that
   William flagged 2026-05-05. The parent border-change is sufficient a11y. */
.mr-nav .util-search input[type="search"]:focus,
.mr-nav .util-search input[type="search"]:focus-visible {
  outline: none;
}

/* Tap-target floors (44×44 minimum per WCAG 2.5.5). Visual width unchanged
   via padding-only expansion where possible. */
.ppa-hamburger,
button.ppa-hamburger,
.ppa-mobile-nav-toggle {
  min-width: 44px;
  min-height: 44px;
  width: 44px;
  height: 44px;
  padding: 10px;
  box-sizing: border-box;
}
.ppa-hamburger span { height: 1px; }

.ppa-mc-peek,
.ppa-mc-handle,
.ppa-mini-cart-peek {
  min-width: 44px;
  min-height: 44px;
  padding: 12px 4px;
  box-sizing: border-box;
}

/* Mini-cart peek tap target was previously beat by a later @media:max-640px
   block forcing width:24px. Higher specificity reclaims 44×44 on phones. */
@media (max-width: 640px) {
  html body .ppa-mc-peek,
  html body .ppa-mini-cart-peek,
  html body .ppa-mc-handle {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
  }
}

/* Mega panel scroll cap — applies to every panel on phones (Optics + Gear +
   Parts overflow viewport on iPhone SE without it). The desktop .ppa-mega
   already has a calc()-based max-height; this adds a flat 70vh fallback for
   any legacy .mega-panel / .ppa-mega-panel markup still in the tree. */
@media (max-width: 768px) {
  .mr-nav .mega-panel,
  .ppa-mega-panel,
  .ppa-mega {
    max-height: 70vh;
    overflow-y: auto;
  }
}

/* Mega × close button — 44×44 on mobile (was 32×32 globally). */
@media (max-width: 768px) {
  .ppa-mega-close {
    width: 44px;
    height: 44px;
    font-size: 22px;
  }
}

/* Cart qty input: 16px on phones so iOS doesn't auto-zoom on tap. The base
   `input{font-size:16px}` block higher up covers most cases, but the cart
   .quantity .qty selector ships overrides — match them with !important here. */
@media (max-width: 768px) {
  body .woocommerce .cart .quantity .qty,
  body.woocommerce-cart .quantity .qty,
  body .ppa-mc-qty .qty,
  body .ppa-cart-qty input,
  body input.qty[type="number"] {
    font-size: 16px;
  }
}

/* Ask the Mitchells floating button on mobile PDPs — lift above the sticky
   add-to-cart bar (~70px tall). */
@media (max-width: 768px) {
  body.single-product .ppa-ask-btn,
  body.single-product .ppa-ask-mitchells-fab,
  body.single-product .ppa-ask-floating {
    bottom: 160px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   BROKEN-IMAGE FALLBACK  (added 2026-05-05 — Audit 5 C2 fix)
   When a product card img onerror fires, archive-product.php hides the img
   and adds .ppa-card-img-failed to the wrapper. Paint a corner-bracket
   empty-state SVG via ::after so the card never renders as plain whitespace.
   ═══════════════════════════════════════════════════════════════════════════ */
.ppa-card-img.ppa-card-img-failed {
  position: relative;
  background: rgba(78,168,160,0.04);
}
.ppa-card-img.ppa-card-img-failed::after {
  content: "";
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 48px 48px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='rgba(78,168,160,0.35)' stroke-width='1'><rect x='3' y='3' width='18' height='18' rx='2'/><circle cx='8.5' cy='8.5' r='1.5'/><path d='M21 15l-5-5L5 21'/></svg>");
  pointer-events: none;
}


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_1A — AMMUNITION DEPT v4 hybrid filter port (Deploy 1A)
   Scoped to body.term-ammunition so other archives are untouched.
   Source: samples/h5-v2/options/option-c-v4.html
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hero subcat tiles (Rifle / Handgun / Shotgun / Rimfire) */
body.term-ammunition .ppa-subcat-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-bottom: 56px;
}
body.term-ammunition .ppa-subcat-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #0C0E10;
  border: 1px solid rgba(237,228,208,0.22);
  padding: 0;
  overflow: hidden;
  transition: border-color 320ms ease, transform 320ms ease, box-shadow 320ms ease;
  text-decoration: none;
  color: #EDE4D0;
  min-height: 280px;
}
body.term-ammunition .ppa-subcat-card::before { display: none; }
body.term-ammunition .ppa-subcat-card:hover {
  border-color: #C4943A;
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(196,148,58,0.4);
}
body.term-ammunition .ppa-subcat-img {
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
  background: #1a1a1a;
  margin-bottom: 0;
  width: 100%;
}
body.term-ammunition .ppa-subcat-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(.2,.85,.25,1);
}
body.term-ammunition .ppa-subcat-card:hover .ppa-subcat-img img {
  transform: scale(1.04);
}
body.term-ammunition .ppa-subcat-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12,14,16,0) 55%, rgba(12,14,16,0.88) 100%);
  pointer-events: none;
}
body.term-ammunition .ppa-subcat-img::before {
  content: "";
  position: absolute;
  top: 12px; left: 12px;
  width: 18px; height: 18px;
  border: 1px solid #C4943A;
  border-right: none;
  border-bottom: none;
  z-index: 2;
}
body.term-ammunition .ppa-subcat-card > div:not(.ppa-subcat-img):not(.ppa-mobile-filter-body) {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
body.term-ammunition .ppa-subcat-name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.1;
  color: #EDE4D0;
  margin-bottom: 8px;
  display: block;
}
body.term-ammunition .ppa-subcat-count {
  font-family: 'Audiowide', sans-serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: #C4943A;
  margin-bottom: 6px;
  display: block;
}
body.term-ammunition .ppa-subcat-arrow { display: none; }
body.term-ammunition .ppa-most-popular {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 13px;
  color: rgba(237,228,208,0.62);
  margin: 6px 0 0;
  line-height: 1.35;
  display: block;
}
body.term-ammunition .ppa-most-popular strong {
  color: #EDE4D0;
  font-weight: 500;
  font-style: italic;
}
@media (max-width: 1100px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
@media (max-width: 720px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: 1fr;
  }
}

/* "Ask the Mitchells" lifeline above sidebar */
body.term-ammunition .ppa-ask-lifeline {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(196,148,58,0.42);
  background: rgba(196,148,58,0.05);
  margin-bottom: 16px;
  text-decoration: none;
  transition: background 200ms ease, border-color 200ms ease;
}
body.term-ammunition .ppa-ask-lifeline:hover {
  background: rgba(196,148,58,0.12);
  border-color: #C4943A;
}
body.term-ammunition .ppa-ask-lifeline svg {
  width: 22px; height: 22px;
  stroke: #C4943A; fill: none; stroke-width: 1.5;
  flex-shrink: 0;
}
body.term-ammunition .ppa-ask-lifeline-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.term-ammunition .ppa-ask-lifeline-eyebrow {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #C4943A;
}
body.term-ammunition .ppa-ask-lifeline-text {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 15px;
  line-height: 1.3;
  color: #EDE4D0;
}

/* Sidebar premium polish — ammunition only */
body.term-ammunition .ppa-catalog-sidebar {
  background: rgba(237,228,208,0.025);
  border: 1px solid rgba(237,228,208,0.12);
  padding: 22px 24px;
}
body.term-ammunition .ppa-filter-section {
  margin-bottom: 22px;
}
body.term-ammunition .ppa-filter-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #C4943A;
  margin: 0 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(237,228,208,0.12);
}
body.term-ammunition .ppa-filter-brand-link {
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
  color: #EDE4D0;
  padding: 4px 0;
  display: block;
  text-decoration: none;
  transition: color 160ms ease;
}
body.term-ammunition .ppa-filter-brand-link:hover {
  color: #4EA8A0;
}
body.term-ammunition .ppa-filter-brand-link.active {
  color: #4EA8A0;
}
/* End PPA_AMMO_V4_1A */


/* PPA_AMMO_V4_1A_FIX4 — pin lifeline + tile-context filters above all other sidebar children */
.ppa-catalog-sidebar .ppa-ask-lifeline,
.ppa-mobile-filter-body .ppa-ask-lifeline { order: -2 !important; }
/* End PPA_AMMO_V4_1A_FIX4 */


/* ══════════════════════════════════════════════════════════════════════════
   MERGED FROM phase-b-polish.css — B3 site-wide polish (2026-04-19 → 2026-06-29).
   That file was retired and its content promoted here; enqueue removed from functions.php.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Announce bar ──────────────────────────────────────── */
.ppa-announce-bar {
	background:
		linear-gradient(90deg, rgba(196, 148, 58, 0.10), rgba(78, 168, 160, 0.06));
	border-bottom: 1px solid rgba(196, 148, 58, 0.40);
	padding: 11px 24px;
	text-align: center;
	color: #EDE4D0;
	font-family: 'Barlow Condensed', sans-serif;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.35;
}

.ppa-announce-bar__inner {
	max-width: 1400px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	align-items: center;
}

.ppa-announce-bar__lead { color: #C7CDCF; }

/* "LAUNCHING SOON" pill — gold badge with a slow breathing status dot.
   Draws the eye without flashing; motion stops for reduced-motion users. */
.ppa-announce-bar__status {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: #C4943A;
	color: #1A1205;
	font-weight: 700;
	letter-spacing: 0.15em;
	padding: 5px 14px;
	border-radius: 999px;
	box-shadow: 0 0 0 1px rgba(196, 148, 58, 0.5), 0 0 18px rgba(196, 148, 58, 0.25);
}
.ppa-announce-bar__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #1A1205;
	position: relative;
	flex: 0 0 auto;
}
@keyframes ppa-announce-breathe {
	0%, 100% { transform: scale(0.7); opacity: 0.9; }
	50%      { transform: scale(1.5); opacity: 0; }
}
/* [JANK FIX 2026-07-23] Was `infinite` -- perpetual repaint on every page (this bar is
   sitewide), measured as part of a "44 animations, 8+ infinite" page-jank audit. A "live
   status" dot conventionally pulses, but not forever at full GPU cost: 3 breaths on load
   (~6.6s) reads as "this is live" without becoming permanent background jank, then settles
   at the same resting dim state prefers-reduced-motion already used (::before which was
   below is now the same block, so no reduced-motion behavior change). */
.ppa-announce-bar__dot::after {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: 50%;
	background: rgba(26, 18, 5, 0.55);
}
@media (prefers-reduced-motion: no-preference) {
	.ppa-announce-bar__dot::after { animation: ppa-announce-breathe 2.2s ease-in-out 3; }
}
@media (prefers-reduced-motion: reduce) {
	.ppa-announce-bar__dot::after { animation: none; inset: -2px; opacity: 0.5; }
}

.ppa-announce-bar__cta {
	color: #4EA8A0;
	text-decoration: none;
	font-weight: 700;
	transition: color 160ms ease;
	border-bottom: 1px solid rgba(78, 168, 160, 0.55);
	padding-bottom: 1px;
}
.ppa-announce-bar__cta:hover,
.ppa-announce-bar__cta:focus {
	color: #6BC4BC;
	border-bottom-color: #6BC4BC;
}

@media (max-width: 640px) {
	.ppa-announce-bar { font-size: 11px; letter-spacing: 0.12em; padding: 8px 12px; }
	.ppa-announce-bar__inner { gap: 8px; }
	.ppa-announce-bar__status { padding: 4px 11px; letter-spacing: 0.12em; gap: 7px; }
	.ppa-announce-bar__dot { width: 7px; height: 7px; }
}

/* ── Kill splash loader (decision: stay killed through launch) ── */
#ppa-loader,
#ppa-loader-wrap,
.ppa-loader-mountain-wrap,
#ppa-loader-mountain,
#ppa-loader-letters,
.ppa-loader-ppa,
#ppa-loader-rule {
	display: none !important;
}

/* ── Kill theme's duplicate Ask-Mitchells gold widget ──
   (the real entry point is the ppa-ask-mitchells plugin bubble on the left) */
.ppa-ask-btn { display: none !important; }

/* ── Nav util-link typography — Intel / Signal 14px/700 ── */
.ppa-nav .ppa-nav-utils .ppa-nav-util-link,
html body .ppa-nav .ppa-nav-utils .ppa-nav-util-link,
.ppa-nav-util-link {
	font-family: 'Barlow Condensed', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.10em !important;
}

/* ── Mega menu — clear announce bar (38px) + nav (72px) = 110px ── */
.ppa-mega,
.ppa-mega[data-panel] {
	top: 110px !important;
}

/* ── Product card image wrapper — white background ── */
.ppa-card-img,
.ppa-card-img-placeholder {
	background: #ffffff !important;
}

/* ── Palette scrub — obsidian for cat-cards, search inputs, filter controls ── */
.ppa-cat-card,
.ppa-category-card,
[class*="ppa-cat-card"],
.ppa-nav-search-input,
.ppa-search-input,
input.ppa-nav-search-input {
	background-color: #0C0E10 !important;
}

input.ppa-filter-brand-search,
.ppa-filter-brand-search,
select.ppa-filter-sort,
.ppa-filter-sort,
.ppa-filter-radio,
.ppa-filter-radio input[type="radio"],
.ppa-filter-radio input[type="checkbox"] {
	background: #0C0E10 !important;
	background-color: #0C0E10 !important;
}

/* ── Subcategory tile grid — bigger tiles, bigger images, white bg ── */
.ppa-subcat-grid {
	grid-template-columns: repeat(5, 1fr) !important;
	gap: 14px !important;
}
.ppa-subcat-card {
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 14px !important;
	padding: 16px !important;
	min-height: 280px;
}
.ppa-subcat-img {
	width: 100% !important;
	height: 180px !important;
	background: #ffffff !important;
	padding: 8%;
}
.ppa-subcat-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.ppa-subcat-name { font-size: 14px !important; }
.ppa-subcat-count { font-size: 12px !important; }
.ppa-subcat-arrow {
	right: 16px !important;
	bottom: 16px !important;
	top: auto !important;
	transform: none !important;
}
.ppa-subcat-card:hover .ppa-subcat-arrow {
	transform: translateX(4px) !important;
}
@media (max-width: 1100px) {
	.ppa-subcat-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
	.ppa-subcat-grid { grid-template-columns: repeat(2, 1fr) !important; }
	.ppa-subcat-img { height: 140px !important; }
	.ppa-subcat-card { min-height: 240px; }
}

/* /shop/ + archive + cart/checkout/account bodies — obsidian */
body.woocommerce-shop,
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag,
body.search-results.search,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-page {
	background-color: #0C0E10 !important;
}

/* ── Scroll safety — undo any lingering lock ── */
html, body {
	overflow-y: auto !important;
	overscroll-behavior-y: auto !important;
	touch-action: auto !important;
}


/* ── WC form inputs — obsidian + teal border ── */
.ppa-notify-input,
.ppa-search-input,
.ppa-search-overlay-input,
.ppa-filter-sort,
.ppa-product-atc .quantity input,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"],
.woocommerce select,
.woocommerce textarea {
	background: #0C0E10 !important;
	background-color: #0C0E10 !important;
	border-color: rgba(78, 168, 160, 0.25) !important;
}

/* Focus state — teal glass lift */
.ppa-notify-input:focus,
.ppa-search-input:focus,
.ppa-search-overlay-input:focus,
.ppa-filter-sort:focus,
.ppa-product-atc .quantity input:focus,
.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus {
	background: var(--ppa-glass-teal-weak) !important;
	border-color: rgba(78, 168, 160, 0.5) !important;
	outline: none !important;
}

/* Floating Ask-Mitchells chat button — teal glass */
.ppa-ask-btn {
	background: linear-gradient(
		135deg,
		rgba(78, 168, 160, 0.18) 0%,
		rgba(12, 14, 16, 0.9) 100%
	) !important;
	backdrop-filter: blur(14px) saturate(150%) !important;
	-webkit-backdrop-filter: blur(14px) saturate(150%) !important;
	border: 1px solid rgba(78, 168, 160, 0.35) !important;
}
.ppa-ask-btn:hover {
	background: linear-gradient(
		135deg,
		rgba(78, 168, 160, 0.28) 0%,
		rgba(12, 14, 16, 0.85) 100%
	) !important;
	border-color: rgba(78, 168, 160, 0.55) !important;
}

/* USA flag badge — solid teal, obsidian text */
.ppa-card-badge--usa {
	background: var(--ppa-teal) !important;
	color: #0C0E10 !important;
	border: 1px solid rgba(12, 14, 16, 0.25) !important;
	font-weight: 700 !important;
	box-shadow: 0 2px 8px rgba(12, 14, 16, 0.35) !important;
}
.ppa-card-badge--usa .ppa-usa-flag {
	filter: drop-shadow(0 1px 1px rgba(12, 14, 16, 0.4));
}

/* Search overlay backdrop */
.ppa-search-overlay { background: rgba(12, 14, 16, 0.92) !important; }

/* Product-card / category-card hover lift — teal */
.ppa-product-card:hover,
.ppa-category-card:hover,
.ppa-cat-card:hover {
	background-color: var(--ppa-glass-teal-weak) !important;
}

/* Dropdowns, popovers, tooltips, modals */
.ppa-dropdown,
.ppa-popover,
.ppa-tooltip,
.ppa-modal,
.ppa-mega-panel {
	background: #0C0E10 !important;
	border: 1px solid rgba(78, 168, 160, 0.18) !important;
	box-shadow:
		0 8px 32px rgba(0, 0, 0, 0.6),
		inset 0 1px 0 rgba(78, 168, 160, 0.08) !important;
}

/* Tabs / accordion / card panels */
.ppa-tab-panel,
.ppa-accordion-item,
.ppa-card-panel,
.ppa-info-panel {
	background: #0C0E10 !important;
}

/* ── Nav cart icon swap ── */
.ppa-nav-utils a.ppa-nav-btn[aria-label="Cart"] {
	position: relative;
}
.ppa-nav-utils a.ppa-nav-btn[aria-label="Cart"] > svg {
	visibility: hidden;
}
.ppa-nav-utils a.ppa-nav-btn[aria-label="Cart"]::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 22px;
	transform: translate(-50%, -50%);
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='20' r='1.2' fill='black'/><circle cx='18' cy='20' r='1.2' fill='black'/><path d='M2.5 3h2.6l1 4m0 0 1.8 7.4a1.6 1.6 0 0 0 1.6 1.2h8.3a1.6 1.6 0 0 0 1.6-1.2L21 7H6.1'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='20' r='1.2' fill='black'/><circle cx='18' cy='20' r='1.2' fill='black'/><path d='M2.5 3h2.6l1 4m0 0 1.8 7.4a1.6 1.6 0 0 0 1.6 1.2h8.3a1.6 1.6 0 0 0 1.6-1.2L21 7H6.1'/></svg>");
	-webkit-mask-size: 22px 22px;
	mask-size: 22px 22px;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	pointer-events: none;
}

/* ── Product card readability ── */
.ppa-card-brand {
	font-family: var(--ppa-font-ui) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	opacity: 1 !important;
	margin-bottom: 8px !important;
}
.ppa-card-name {
	font-family: var(--ppa-font-body) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	letter-spacing: 0 !important;
	color: var(--ppa-parchment) !important;
	margin-bottom: 12px !important;
}
.ppa-card-price,
.ppa-card-price .woocommerce-Price-amount,
.ppa-card-price .woocommerce-Price-currencySymbol {
	font-family: var(--ppa-price-font) !important;
	color: var(--ppa-price-color) !important;
	font-weight: var(--ppa-price-weight) !important;
	font-size: 20px !important;
}
.ppa-card-price-regular,
.ppa-card-price-regular .woocommerce-Price-amount {
	font-family: var(--ppa-price-font) !important;
	color: var(--ppa-price-strike) !important;
	text-decoration: line-through;
	font-size: 13px !important;
	font-weight: 500 !important;
	margin-right: 6px;
}
.ppa-card-price-sale,
.ppa-card-price-sale .woocommerce-Price-amount {
	color: var(--ppa-price-color) !important;
}
.ppa-card-body {
	padding: 18px 20px 22px !important;
	gap: 6px !important;
	min-height: 150px;
}
@media (max-width: 768px) {
	.ppa-card-brand { font-size: 13px !important; }
	.ppa-card-name { font-size: 14px !important; }
	.ppa-card-price,
	.ppa-card-price .woocommerce-Price-amount { font-size: 17px !important; }
	.ppa-card-body { min-height: 130px; padding: 14px 16px 18px !important; }
}

/* ── Catalog polish ── */
html { color-scheme: dark; }
html::-webkit-scrollbar { width: 12px; height: 12px; }
html::-webkit-scrollbar-track { background: #0C0E10; }
html::-webkit-scrollbar-thumb {
	background: rgba(78,168,160,0.55);
	border-radius: 6px;
	border: 2px solid #0C0E10;
}
html::-webkit-scrollbar-thumb:hover { background: rgba(78,168,160,0.85); }

.ppa-catalog-sidebar,
#ppaCatalogSidebar {
	display: flex !important;
	flex-direction: column !important;
}
.ppa-catalog-sidebar > * { order: 99; }
.ppa-catalog-sidebar [data-filter="subcat"]       { order: 0; }
.ppa-catalog-sidebar [data-filter="sort"]         { order: 1; }
.ppa-catalog-sidebar [data-filter="availability"] { order: 2; }
.ppa-catalog-sidebar #calibers                    { order: 3; }
.ppa-catalog-sidebar #platforms                   { order: 4; }
.ppa-catalog-sidebar #brands                      { order: 5; }
.ppa-catalog-sidebar [data-filter="price"]        { order: 6; }
.ppa-catalog-sidebar #calibers,
.ppa-catalog-sidebar #platforms {
	--ppa-collapsed: 0;
}
.ppa-catalog-sidebar #calibers.ppa-ce-collapsed .ppa-ce-collapse-body,
.ppa-catalog-sidebar #platforms.ppa-ce-collapsed .ppa-ce-collapse-body {
	display: block !important;
	max-height: none !important;
}

.ppa-filter-section .ppa-filter-radio {
	display: flex !important;
	align-items: center;
	gap: 10px;
	padding: 8px 12px;
	margin: 0 0 6px;
	border: 1px solid rgba(237,228,208,0.15);
	border-radius: 4px;
	cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
	background: transparent !important;
	color: var(--ppa-parchment, #EDE4D0);
	font-family: var(--ppa-font-ui, 'Barlow Condensed', sans-serif);
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ppa-filter-section .ppa-filter-radio:hover {
	border-color: rgba(78,168,160,0.45);
}
.ppa-filter-section .ppa-filter-radio input[type="radio"],
.ppa-filter-section .ppa-filter-radio input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	border: 1.5px solid rgba(237,228,208,0.45);
	border-radius: 50%;
	background: #0C0E10 !important;
	margin: 0;
	position: relative;
	flex-shrink: 0;
}
.ppa-filter-section .ppa-filter-radio input[type="checkbox"] { border-radius: 3px; }
.ppa-filter-section .ppa-filter-radio input:checked {
	background: var(--ppa-teal, #4EA8A0) !important;
	border-color: var(--ppa-teal, #4EA8A0);
	box-shadow: inset 0 0 0 2.5px #0C0E10;
}
.ppa-filter-section .ppa-filter-radio:has(input:checked) {
	background: rgba(78,168,160,0.12) !important;
	border-color: rgba(78,168,160,0.75);
	color: #fff;
}

.ppa-price-chips {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
}
.ppa-price-chip {
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 8px 6px !important;
	font-size: 12px !important;
	letter-spacing: 0.05em;
	text-align: center !important;
	text-transform: uppercase;
	min-height: 32px;
	box-sizing: border-box;
}
.ppa-price-chip--clear { grid-column: 1 / -1; }

.ppa-filter-sort,
select.ppa-filter-sort {
	width: 100%;
	padding: 10px 14px !important;
	background: #0C0E10 !important;
	color: var(--ppa-parchment, #EDE4D0) !important;
	border: 1px solid rgba(237,228,208,0.2) !important;
	border-radius: 3px;
	font-family: var(--ppa-font-ui, 'Barlow Condensed', sans-serif);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
}
.ppa-filter-sort option,
select.ppa-filter-sort option {
	background: #0C0E10 !important;
	background-color: #0C0E10 !important;
	color: var(--ppa-parchment, #EDE4D0) !important;
	padding: 8px;
}

.ppa-catalog-sidebar,
#ppaCatalogSidebar {
	scrollbar-width: thin;
	scrollbar-color: rgba(78,168,160,0.8) #0C0E10;
}
.ppa-catalog-sidebar::-webkit-scrollbar,
#ppaCatalogSidebar::-webkit-scrollbar { width: 8px; }
.ppa-catalog-sidebar::-webkit-scrollbar-track,
#ppaCatalogSidebar::-webkit-scrollbar-track { background: #0C0E10; }
.ppa-catalog-sidebar::-webkit-scrollbar-thumb,
#ppaCatalogSidebar::-webkit-scrollbar-thumb {
	background: rgba(78,168,160,0.85);
	border-radius: 4px;
}
.ppa-catalog-sidebar::-webkit-scrollbar-thumb:hover,
#ppaCatalogSidebar::-webkit-scrollbar-thumb:hover { background: var(--ppa-teal, #4EA8A0); }

.ppa-subcat-card {
	border: 1px solid rgba(196,148,58,0.28) !important;
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.ppa-subcat-card:hover {
	border-color: rgba(196,148,58,0.85) !important;
	box-shadow: 0 0 0 1px rgba(196,148,58,0.35), 0 12px 30px rgba(0,0,0,0.45) !important;
	transform: translateY(-2px);
}
.ppa-subcat-card .ppa-subcat-arrow {
	color: var(--ppa-gold, #C4943A) !important;
	opacity: 0.85;
}

/* ── Back-to-top diamond pip animation ── */
.ppa-back-to-top {
	--btt-chase: var(--ppa-teal, #4EA8A0);
	--btt-bright: #6BC4BC;
	--btt-glow: rgba(78,168,160,0.55);

	position: fixed !important;
	top: 65% !important;
	left: 50% !important;
	margin-left: calc(660px + 18px) !important;
	right: auto !important;
	transform: translateY(-50%) !important;
	z-index: 80 !important;

	width: 52px !important;
	height: 130px !important;
	padding: 6px !important;
	display: grid !important;
	grid-template-columns: repeat(5, 1fr) !important;
	grid-template-rows: repeat(6, 1fr) !important;

	background: transparent !important;
	border: none !important;
	border-radius: 3px !important;
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
	font-size: 0 !important;
	gap: 0 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	backdrop-filter: none !important;

	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease, background 0.35s ease;
}
.ppa-back-to-top.visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(-50%) !important;
}
.ppa-back-to-top.atbottom {
	--btt-chase: var(--ppa-gold, #C4943A);
	--btt-bright: #DCAE54;
	--btt-glow: rgba(196,148,58,0.55);
}
.ppa-back-to-top:hover {
	background: radial-gradient(ellipse at center, var(--btt-glow) 0%, transparent 75%) !important;
	border: none !important;
	color: inherit !important;
}
.ppa-back-to-top-arrow { display: none !important; }
.ppa-back-to-top > span:not(.btt-dot) { display: none !important; }

.ppa-back-to-top .btt-dot {
	width: 6px;
	height: 6px;
	background: var(--btt-chase);
	opacity: 0.55; /* [FE-033] visible resting (was 0.16); footer.php inline copy matches */
	align-self: center;
	justify-self: center;
	transform: rotate(45deg);
}
.ppa-back-to-top .btt-dot--tip       { grid-row: 1; grid-column: 3; }
.ppa-back-to-top .btt-dot--shoulder-l{ grid-row: 2; grid-column: 2; }
.ppa-back-to-top .btt-dot--shoulder-r{ grid-row: 2; grid-column: 4; }
.ppa-back-to-top .btt-dot--wide-l    { grid-row: 3; grid-column: 1; }
.ppa-back-to-top .btt-dot--wide-r    { grid-row: 3; grid-column: 5; }
.ppa-back-to-top .btt-dot--shaft-top { grid-row: 4; grid-column: 3; }
.ppa-back-to-top .btt-dot--shaft-mid { grid-row: 5; grid-column: 3; }
.ppa-back-to-top .btt-dot--shaft-bot { grid-row: 6; grid-column: 3; }

@keyframes ppa-btt-chase {
	0%, 4%   { opacity: 0.12; box-shadow: none; transform: rotate(45deg) scale(1);    background: var(--btt-chase); }
	9%, 12%  { opacity: 1;    box-shadow: 0 0 9px var(--btt-bright), 0 0 18px var(--btt-glow); transform: rotate(45deg) scale(1.5); background: var(--btt-bright); }
	20%      { opacity: 0.72; box-shadow: 0 0 6px var(--btt-bright); transform: rotate(45deg) scale(1.25); background: var(--btt-chase); }
	30%      { opacity: 0.45; box-shadow: 0 0 3px var(--btt-bright); transform: rotate(45deg) scale(1.1);  background: var(--btt-chase); }
	42%      { opacity: 0.22; box-shadow: none; transform: rotate(45deg) scale(1.03); background: var(--btt-chase); }
	60%, 100%{ opacity: 0.55; box-shadow: none; transform: rotate(45deg) scale(1);    background: var(--btt-chase); } /* [FE-033] rest visible (was 0.12) */
}
/* [JANK FIX 2026-07-23] These eight dots ran `infinite`, repainting forever on every
   page -- measured live, they were 8 of the 9 perpetual animations on a product page
   and the cause of the visible screen shutter. They now play ONCE and settle (forwards,
   resting at a VISIBLE 0.55 opacity [FE-033] - the 0.12 it used to end on read as broken), and only for
   visitors who have not asked for reduced motion. The re-trigger on scroll/hover lives
   in footer.php via the `.ppa-btt-run` class -- do NOT restore `infinite` here. */
@media (prefers-reduced-motion: no-preference) {
	.ppa-back-to-top .btt-dot--shaft-bot   { animation: ppa-btt-chase 2.2s linear 1 0s forwards; }
	.ppa-back-to-top .btt-dot--shaft-mid   { animation: ppa-btt-chase 2.2s linear 1 0.25s forwards; }
	.ppa-back-to-top .btt-dot--shaft-top   { animation: ppa-btt-chase 2.2s linear 1 0.50s forwards; }
	.ppa-back-to-top .btt-dot--wide-l,
	.ppa-back-to-top .btt-dot--wide-r      { animation: ppa-btt-chase 2.2s linear 1 0.75s forwards; }
	.ppa-back-to-top .btt-dot--shoulder-l,
	.ppa-back-to-top .btt-dot--shoulder-r  { animation: ppa-btt-chase 2.2s linear 1 1.00s forwards; }
	.ppa-back-to-top .btt-dot--tip         { animation: ppa-btt-chase 2.2s linear 1 1.25s forwards; }
}

@media (max-width: 1520px) {
	.ppa-back-to-top {
		left: auto !important;
		right: 24px !important;
		margin-left: 0 !important;
	}
}
@media (max-width: 768px) {
	.ppa-back-to-top { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	.ppa-back-to-top .btt-dot { animation: none !important; opacity: 0.45 !important; }
}

html, body { overflow-x: hidden; }

.ppa-mega { top: 110px !important; }

/* ── Grain texture — full-viewport coverage ── */
svg.ppa-grain {
	position: fixed !important;
	inset: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	pointer-events: none !important;
	z-index: 0 !important;
	opacity: 0.04 !important;
}

/* ── Search popover ── */
html body .ppa-nav .ppa-nav-search,
.ppa-nav-search { display: none !important; }

html body .ppa-nav .ppa-nav-search-mobile,
.ppa-nav-search-mobile {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--ppa-parchment);
	transition: color 0.15s ease, background 0.15s ease;
}
.ppa-nav-search-mobile:hover,
.ppa-nav-search-mobile:focus-visible {
	color: var(--ppa-teal);
	background: rgba(78, 168, 160, 0.08);
	outline: none;
}
.ppa-nav-search-mobile svg { width: 18px; height: 18px; }

.ppa-search-overlay {
	position: fixed !important;
	inset: auto !important;
	top: 68px !important;
	right: 16px !important;
	left: auto !important;
	bottom: auto !important;
	width: 360px !important;
	max-width: calc(100vw - 32px) !important;
	z-index: 300;
	background: rgba(12, 14, 16, 0.96) !important;
	backdrop-filter: blur(12px);
	border: 1px solid rgba(78, 168, 160, 0.45);
	box-shadow: 0 16px 44px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(78, 168, 160, 0.06) inset;
	padding: 14px 14px !important;
	display: block !important;
	transform: translateY(-8px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease, transform 180ms ease;
}
.ppa-search-overlay.open {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}
.ppa-search-overlay-inner {
	width: 100% !important;
	max-width: none !important;
	padding-top: 0 !important;
}
.ppa-search-overlay-form {
	display: flex;
	align-items: center;
	gap: 10px;
	background: rgba(237, 228, 208, 0.04) !important;
	border: 1px solid rgba(78, 168, 160, 0.25) !important;
	padding: 10px 12px !important;
}
.ppa-search-overlay-form input[type="search"] {
	flex: 1;
	background: transparent;
	border: none;
	outline: none;
	font-family: var(--ppa-font-body);
	font-size: 14px !important;
	color: var(--ppa-parchment);
}
.ppa-search-overlay-form input[type="search"]::placeholder {
	color: rgba(237, 228, 208, 0.4);
}
.ppa-search-overlay-close {
	position: absolute !important;
	top: 6px !important;
	right: 6px !important;
	width: 28px;
	height: 28px;
	background: none;
	border: none;
	color: rgba(237, 228, 208, 0.55);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: color 0.15s ease;
}
.ppa-search-overlay-close:hover { color: var(--ppa-parchment); }
@media (max-width: 600px) {
	.ppa-search-overlay {
		top: 60px !important;
		right: 8px !important;
		width: calc(100vw - 16px) !important;
		max-width: 480px !important;
	}
}

/* ── Nav border removal ── */
html body .ppa-nav,
.ppa-nav {
	border-bottom: 0 !important;
}

/* ── Footer top-padding compression ── */
.ppa-footer {
	padding-top: 24px !important;
}

/* ── Mobile: mini-cart tab only in shop contexts ── */
body.home .ppa-mc-peek,
body.front-page .ppa-mc-peek {
	display: none !important;
}

@media (max-width: 768px) {
	.ppa-catalog-sidebar,
	#ppaCatalogSidebar {
		display: none !important;
	}
}

/* ── CPR chip ── */
.ppa-pdp-cpr {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	margin: 12px 0 4px;
	padding: 8px 14px;
	border: 1px solid rgba(196, 148, 58, 0.55);
	background: rgba(196, 148, 58, 0.06);
	font-family: 'Barlow Condensed', sans-serif;
}
.ppa-pdp-cpr__label {
	color: #4EA8A0;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.ppa-pdp-cpr__value {
	color: #C4943A;
	font-family: 'Cormorant Garamond', serif;
	font-size: 22px;
	font-weight: 600;
}
.ppa-pdp-cpr__detail {
	color: rgba(237, 228, 208, 0.55);
	font-size: 12px;
	letter-spacing: 0.04em;
}

/* ── Hazmat banner ── */
.ppa-hazmat-banner {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin: 16px 0;
	padding: 16px 18px;
	background: rgba(196, 148, 58, 0.08);
	border: 1px solid rgba(196, 148, 58, 0.45);
}
.ppa-hazmat-banner__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin-top: 2px;
}
.ppa-hazmat-banner__body { flex: 1; min-width: 0; }
.ppa-hazmat-banner__eyebrow {
	display: inline-block;
	font-family: 'Barlow Condensed', sans-serif;
	font-size: 11px;
	letter-spacing: 0.18em;
	color: #C4943A;
	text-transform: uppercase;
	margin-right: 8px;
}
.ppa-hazmat-banner__title {
	font-family: 'Barlow', sans-serif;
	font-weight: 600;
	color: #EDE4D0;
	font-size: 14px;
}
.ppa-hazmat-banner__copy {
	margin: 6px 0 0;
	font-family: 'Barlow', sans-serif;
	font-size: 13px;
	line-height: 1.5;
	color: rgba(237, 228, 208, 0.78);
}

/* Pickup-only banner: firearms of drop-ship-blocked brands come to the Gilbert store for
   in-person pickup. Mirrors the hazmat banner, teal (location/info) instead of gold (warning). */
.ppa-pickup-banner {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin: 16px 0;
	padding: 16px 18px;
	background: rgba(107, 196, 188, 0.08);
	border: 1px solid rgba(107, 196, 188, 0.28);
	border-radius: 4px;
	border: 1px solid rgba(107, 196, 188, 0.45);
}
.ppa-pickup-banner__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin-top: 2px;
}
.ppa-pickup-banner__body { flex: 1; min-width: 0; }
.ppa-pickup-banner__eyebrow {
	display: inline-block;
	font-family: 'Barlow Condensed', sans-serif;
	font-size: 11px;
	letter-spacing: 0.18em;
	color: #6BC4BC;
	text-transform: uppercase;
	margin-right: 8px;
}
.ppa-pickup-banner__title {
	font-family: 'Barlow', sans-serif;
	font-weight: 600;
	color: #EDE4D0;
	font-size: 14px;
}
.ppa-pickup-banner__copy {
	margin: 6px 0 0;
	font-family: 'Barlow', sans-serif;
	font-size: 13px;
	line-height: 1.5;
	color: rgba(237, 228, 208, 0.78);
}

/* ── Review stub ── */
.ppa-pdp-review-stub { margin: 48px 0 32px; }
.ppa-pdp-review-stub__card {
	max-width: 520px;
	margin: 16px auto 0;
	padding: 32px 28px;
	text-align: center;
	background: rgba(237, 228, 208, 0.02);
	border: 1px solid rgba(237, 228, 208, 0.10);
}
.ppa-pdp-review-stub__stars {
	display: flex;
	gap: 4px;
	justify-content: center;
	margin-bottom: 14px;
}
.ppa-pdp-review-stub__stars .ppa-star--ghost {
	color: rgba(237, 228, 208, 0.18);
	font-size: 22px;
}
.ppa-pdp-review-stub__title {
	font-family: 'Cormorant Garamond', serif;
	font-style: italic;
	font-size: 22px;
	color: #EDE4D0;
	margin: 0 0 6px;
}
.ppa-pdp-review-stub__copy {
	font-family: 'Barlow', sans-serif;
	font-size: 13px;
	color: rgba(237, 228, 208, 0.66);
	margin: 0 0 18px;
	line-height: 1.5;
}
.ppa-pdp-review-stub__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 22px;
	font-family: 'Barlow Condensed', sans-serif;
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #4EA8A0;
	background: rgba(78, 168, 160, 0.08);
	border: 1px solid rgba(78, 168, 160, 0.6);
	text-decoration: none;
	transition: background 200ms ease, border-color 200ms ease;
}
.ppa-pdp-review-stub__cta:hover {
	background: rgba(78, 168, 160, 0.16);
	border-color: #4EA8A0;
}

/* ── Uniform outlines ── */
.ppa-restock-form,
.ppa-restock-success {
	border-left: 1px solid rgba(78, 168, 160, 0.32) !important;
}
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-error {
	border-left-width: 1px !important;
}
.ppa-filter-brand-link.active,
.ppa-filter-cat-link.active {
	border-left: 0 !important;
	padding-left: 8px !important;
	background: rgba(78, 168, 160, 0.10) !important;
}
.ppa-ask-lifeline {
	border-left-width: 1px !important;
	border-top-width: 1px !important;
	border-right-width: 1px !important;
	border-bottom-width: 1px !important;
}

/* ── Wishlist empty state ── */
body.ppa-wl-empty-card-shown .tinv-wishlist,
body.ppa-wl-empty-card-shown .tinv-wishlist-empty,
body.ppa-wl-empty-card-shown .wishlist_view {
	display: none !important;
}

/* ── Mega panel title defensive ── */
.mr-nav .mega-panel .mega-inner > .mega-head,
.mr-nav .mega-panel.is-open .mega-inner > .mega-head {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: space-between !important;
	align-items: baseline !important;
	grid-column: 1 / -1 !important;
	min-height: 44px !important;
	padding-bottom: 12px !important;
	margin-bottom: 6px !important;
	border-bottom: 1px solid #C4943A !important;
}
.mr-nav .mega-panel .mega-inner > .mega-head > h2,
.mr-nav .mega-panel.is-open .mega-inner > .mega-head > h2 {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	font-family: 'Cormorant Garamond', serif !important;
	font-weight: 600 !important;
	font-style: normal !important;
	font-size: 32px !important;
	line-height: 1.05 !important;
	color: #0C0E10 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-indent: 0 !important;
	height: auto !important;
	min-height: 32px !important;
	overflow: visible !important;
	position: static !important;
	clip: auto !important;
}

/* ── Cart duplicate return-to-shop kill ── */
.woocommerce-cart .woocommerce-empty-cart-message ~ .return-to-shop,
.woocommerce-cart .cart-empty ~ .return-to-shop,
.woocommerce-cart .return-to-shop:not(.ppa-mc-empty-link):not(.ppa-cart-cta) {
	display: none !important;
}
.woocommerce-cart-form ~ .return-to-shop,
body.woocommerce-cart > .woocommerce > .return-to-shop,
body.woocommerce-cart > .woocommerce > .cart-empty + .return-to-shop {
	display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_LOCK — defensive lock for ammunition v4 layout
   These rules MUST stay at the END of style.css so they win the cascade
   regardless of what other deploys append. Re-applies FIX2/3/4 from earlier
   work that got overwritten by a stale-cache pull during Deploy 1B.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Lock 1 — 4-column tile grid (beats phase-b-polish's 5-col !important) */
body.term-ammunition .ppa-subcat-grid {
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
}
@media (max-width: 1100px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}
@media (max-width: 720px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Lock 2 — Tile image: 16:9 container, kill multiply blend */
body.term-ammunition .ppa-subcat-img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  display: block !important;
  background: #1a1a1a !important;
  border-radius: 0 !important;
  flex-shrink: initial !important;
  overflow: hidden !important;
  position: relative;
}
body.term-ammunition .ppa-subcat-img img {
  mix-blend-mode: normal !important;
  object-fit: cover !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* Lock 3 — Tile card vertical layout */
body.term-ammunition .ppa-subcat-card {
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 0 !important;
  gap: 0 !important;
}
body.term-ammunition .ppa-subcat-card > div:not(.ppa-subcat-img) {
  padding: 16px 18px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

/* Lock 4 — Lifeline pinned at top (beats phase-b-polish's order: 99 default) */
body.term-ammunition .ppa-catalog-sidebar > .ppa-ask-lifeline,
body.term-ammunition .ppa-mobile-filter-body > .ppa-ask-lifeline {
  order: -100 !important;
}

/* End PPA_AMMO_V4_LOCK */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_FINAL_LOCK — comprehensive ammunition v4 visual lock (consolidates 1A/1B/all fixes)
   This block must stay at the END of style.css. Everything has !important
   because phase-b-polish.css ships with !important rules that would otherwise win.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── Tile grid ─── */
body.term-ammunition .ppa-subcat-grid {
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  margin-bottom: 56px !important;
}
@media (max-width: 1100px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}
@media (max-width: 720px) {
  body.term-ammunition .ppa-subcat-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ─── Tile card ─── */
body.term-ammunition .ppa-subcat-card {
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 0 !important;
  gap: 0 !important;
  background: #0C0E10 !important;
  border: 1px solid rgba(237,228,208,0.22) !important;
  min-height: 280px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  position: relative !important;
}
body.term-ammunition .ppa-subcat-card::before { display: none !important; }
body.term-ammunition .ppa-subcat-card:hover {
  border-color: #C4943A !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 16px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(196,148,58,0.4) !important;
}

/* ─── Tile image ─── */
body.term-ammunition .ppa-subcat-img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  display: block !important;
  background: #1a1a1a !important;
  border-radius: 0 !important;
  flex-shrink: initial !important;
  overflow: hidden !important;
  position: relative !important;
  margin-bottom: 0 !important;
}
body.term-ammunition .ppa-subcat-img img {
  mix-blend-mode: normal !important;
  object-fit: cover !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
body.term-ammunition .ppa-subcat-img::before {
  content: "" !important;
  position: absolute !important;
  top: 12px !important; left: 12px !important;
  width: 18px !important; height: 18px !important;
  border: 1px solid #C4943A !important;
  border-right: none !important;
  border-bottom: none !important;
  z-index: 2 !important;
}
body.term-ammunition .ppa-subcat-img::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(12,14,16,0) 55%, rgba(12,14,16,0.88) 100%) !important;
  pointer-events: none !important;
}

/* ─── Tile body container ─── */
body.term-ammunition .ppa-subcat-card > div:not(.ppa-subcat-img) {
  padding: 16px 18px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

/* ─── Tile name (no uppercase, italic Cormorant) ─── */
body.term-ammunition .ppa-subcat-name {
  text-transform: none !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 22px !important;
  letter-spacing: -0.005em !important;
  color: #EDE4D0 !important;
  margin-bottom: 8px !important;
  display: block !important;
}
body.term-ammunition .ppa-subcat-count {
  font-family: 'Audiowide', sans-serif !important;
  font-size: 13px !important;
  font-weight: normal !important;
  text-transform: none !important;
  letter-spacing: 0.04em !important;
  color: #C4943A !important;
}
body.term-ammunition .ppa-subcat-arrow { display: none !important; }
body.term-ammunition .ppa-most-popular {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-size: 13px !important;
  color: rgba(237,228,208,0.62) !important;
  margin: 6px 0 0 !important;
  line-height: 1.35 !important;
  display: block !important;
}
body.term-ammunition .ppa-most-popular strong {
  color: #EDE4D0 !important;
  font-weight: 500 !important;
  font-style: italic !important;
}

/* ─── Lifeline at top of sidebar ─── */
body.term-ammunition .ppa-catalog-sidebar > .ppa-ask-lifeline,
body.term-ammunition .ppa-mobile-filter-body > .ppa-ask-lifeline {
  order: -100 !important;
}
body.term-ammunition .ppa-ask-lifeline {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(196,148,58,0.42) !important;
  background: rgba(196,148,58,0.05) !important;
  margin-bottom: 16px !important;
  text-decoration: none !important;
  transition: background 200ms ease, border-color 200ms ease !important;
}
body.term-ammunition .ppa-ask-lifeline:hover {
  background: rgba(196,148,58,0.12) !important;
  border-color: #C4943A !important;
}
body.term-ammunition .ppa-ask-lifeline svg {
  width: 22px !important; height: 22px !important;
  stroke: #C4943A !important; fill: none !important; stroke-width: 1.5 !important;
  flex-shrink: 0 !important;
}
body.term-ammunition .ppa-ask-lifeline-body {
  display: flex !important; flex-direction: column !important; gap: 2px !important;
}
body.term-ammunition .ppa-ask-lifeline-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
}
body.term-ammunition .ppa-ask-lifeline-text {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  color: #EDE4D0 !important;
}

/* ─── Sidebar container premium polish ─── */
body.term-ammunition .ppa-catalog-sidebar {
  background: rgba(237,228,208,0.025) !important;
  border: 1px solid rgba(237,228,208,0.12) !important;
  padding: 22px 24px !important;
}

/* ─── Facet labels: gold uppercase rule ─── */
body.term-ammunition .ppa-filter-label {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
  margin: 0 0 10px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid rgba(237,228,208,0.12) !important;
}

/* ─── Brand link rows ─── */
body.term-ammunition .ppa-filter-brand-link {
  font-family: 'Barlow', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #EDE4D0 !important;
  padding: 4px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  text-decoration: none !important;
  transition: color 160ms ease !important;
  position: relative !important;
}
body.term-ammunition .ppa-filter-brand-link::before { display: none !important; }
body.term-ammunition .ppa-filter-brand-link:hover {
  color: #4EA8A0 !important;
}
body.term-ammunition .ppa-filter-brand-link.active {
  color: #4EA8A0 !important;
  font-weight: 600 !important;
}

/* ─── Brand search input ─── */
body.term-ammunition .ppa-filter-brand-search {
  font-family: 'Barlow', sans-serif !important;
  font-size: 13px !important;
  background: transparent !important;
  border: 1px solid rgba(237,228,208,0.22) !important;
  border-radius: 0 !important;
  color: #EDE4D0 !important;
  padding: 8px 10px !important;
  margin-bottom: 10px !important;
  outline: none !important;
  transition: border-color 160ms ease !important;
}
body.term-ammunition .ppa-filter-brand-search::placeholder { color: rgba(237,228,208,0.4) !important; }
body.term-ammunition .ppa-filter-brand-search:focus { border-color: #4EA8A0 !important; }

/* ─── Popular pill ─── */
body.term-ammunition .ppa-popular-pill {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
  border: 1px solid rgba(196,148,58,0.42) !important;
  background: rgba(196,148,58,0.06) !important;
  padding: 1px 6px !important;
  margin-left: auto !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

/* End PPA_AMMO_V4_FINAL_LOCK */


/* PPA_AMMO_V4_1C_CPR — Cost-per-round display on ammunition product cards */
.ppa-card__cpr {
  display: flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  margin-top: 6px !important;
  padding-top: 6px !important;
  border-top: 1px solid rgba(237,228,208,0.08) !important;
}
.ppa-card__cpr-label {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(237,228,208,0.55) !important;
}
.ppa-card__cpr-val {
  font-family: 'Audiowide', sans-serif !important;
  font-size: 16px !important;
  letter-spacing: 0.02em !important;
  color: #C4943A !important;
  margin-left: auto !important;
}
/* End PPA_AMMO_V4_1C_CPR */


/* PPA_AMMO_V4_1C_CPR2 — Cost-per-round on inline ammunition cards */
.ppa-card-cpr {
  display: flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  margin-top: 6px !important;
  padding-top: 6px !important;
  border-top: 1px solid rgba(237,228,208,0.08) !important;
}
.ppa-card-cpr-label {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(237,228,208,0.55) !important;
}
.ppa-card-cpr-val {
  font-family: 'Audiowide', sans-serif !important;
  font-size: 16px !important;
  letter-spacing: 0.02em !important;
  color: #C4943A !important;
  margin-left: auto !important;
}
/* End PPA_AMMO_V4_1C_CPR2 */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_2_CHIPS — Trending chip strip on /ammunition/ landing
   Six chips: 4 popular calibers + 2 popular brands. Auto-update later via
   click-data + monthly cron.
   ═══════════════════════════════════════════════════════════════════════════ */

body.term-ammunition .ppa-trending-row {
  margin: 0 0 36px !important;
}
body.term-ammunition .ppa-trending-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
body.term-ammunition .ppa-trending-eyebrow::before {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  background: #C4943A !important;
  border-radius: 50% !important;
  box-shadow: 0 0 6px rgba(196,148,58,0.5) !important;
}
body.term-ammunition .ppa-trending-chips {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
body.term-ammunition .ppa-trending-chip {
  flex: 1 1 0 !important;
  min-width: 140px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  padding: 12px 16px !important;
  border: 1px solid rgba(78,168,160,0.45) !important;
  background: rgba(78,168,160,0.04) !important;
  text-decoration: none !important;
  color: #EDE4D0 !important;
  transition: all 220ms cubic-bezier(.2,.85,.25,1) !important;
  position: relative !important;
  overflow: hidden !important;
}
body.term-ammunition .ppa-trending-chip::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important; top: 0 !important; bottom: 0 !important;
  width: 0 !important;
  background: rgba(78,168,160,0.10) !important;
  transition: width 320ms cubic-bezier(.2,.85,.25,1) !important;
  z-index: 0 !important;
}
body.term-ammunition .ppa-trending-chip:hover {
  border-color: #4EA8A0 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3) !important;
}
body.term-ammunition .ppa-trending-chip:hover::before {
  width: 100% !important;
}
body.term-ammunition .ppa-trending-chip > * {
  position: relative !important;
  z-index: 1 !important;
}
body.term-ammunition .ppa-trending-chip-kind {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 9px !important;
  font-weight: 600 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: rgba(237,228,208,0.55) !important;
}
body.term-ammunition .ppa-trending-chip-name {
  font-family: 'Audiowide', sans-serif !important;
  font-size: 17px !important;
  letter-spacing: 0.02em !important;
  color: #EDE4D0 !important;
  line-height: 1.1 !important;
}
body.term-ammunition .ppa-trending-chip:hover .ppa-trending-chip-name {
  color: #4EA8A0 !important;
}
body.term-ammunition .ppa-trending-chip-count {
  font-family: 'Barlow', sans-serif !important;
  font-size: 11px !important;
  color: rgba(237,228,208,0.5) !important;
}

@media (max-width: 1100px) {
  body.term-ammunition .ppa-trending-chips {
    flex-direction: column !important;
  }
  body.term-ammunition .ppa-trending-chip {
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }
}
/* End PPA_AMMO_V4_2_CHIPS */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_3_EDU — Contextual education card (one at a time per category)
   Gold/teal gradient border, italic Cormorant title, plain-English body.
   ═══════════════════════════════════════════════════════════════════════════ */

.ppa-edu-card {
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  gap: 18px !important;
  align-items: center !important;
  margin-bottom: 24px !important;
  padding: 18px 22px !important;
  border: 1px solid rgba(196,148,58,0.32) !important;
  background:
    linear-gradient(90deg, rgba(196,148,58,0.06) 0%, rgba(78,168,160,0.04) 100%),
    rgba(12,14,16,0.6) !important;
  position: relative !important;
  overflow: hidden !important;
}
.ppa-edu-card::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, #C4943A 0%, #4EA8A0 100%) !important;
}
.ppa-edu-icon {
  width: 38px !important;
  height: 38px !important;
  border: 1px solid rgba(196,148,58,0.5) !important;
  background: rgba(196,148,58,0.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #C4943A !important;
}
.ppa-edu-icon svg {
  width: 20px !important;
  height: 20px !important;
}
.ppa-edu-body {
  line-height: 1.4 !important;
}
.ppa-edu-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
  margin-bottom: 4px !important;
}
.ppa-edu-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 19px !important;
  color: #EDE4D0 !important;
  margin: 0 0 4px !important;
}
.ppa-edu-summary {
  font-family: 'Barlow', sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  color: rgba(237,228,208,0.85) !important;
  margin: 0 !important;
  max-width: 720px !important;
}
.ppa-edu-summary strong {
  color: #EDE4D0 !important;
  font-weight: 600 !important;
}
.ppa-edu-link {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #4EA8A0 !important;
  text-decoration: none !important;
  border: 1px solid #4EA8A0 !important;
  padding: 8px 14px !important;
  background: rgba(78,168,160,0.06) !important;
  transition: background 180ms ease, color 180ms ease !important;
  white-space: nowrap !important;
}
.ppa-edu-link:hover {
  background: rgba(78,168,160,0.18) !important;
  color: #6BC4BC !important;
}
@media (max-width: 720px) {
  .ppa-edu-card {
    grid-template-columns: 1fr !important;
  }
  .ppa-edu-icon { display: none !important; }
}
/* End PPA_AMMO_V4_3_EDU */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_AMMO_V4_4_FILTERPOLISH — Active filter highlight (gold button) + availability shrink
   Scoped to body in ammunition tree.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Active brand/caliber filter — premium gold-bordered button look */
body.term-ammunition .ppa-filter-brand-link.active,
body[class*="term-"][class*="-ammo"] .ppa-filter-brand-link.active {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 10px !important;
  margin: 2px 0 !important;
  border: 1px solid #C4943A !important;
  background: rgba(196,148,58,0.10) !important;
  color: #C4943A !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  width: auto !important;
  max-width: 100% !important;
  border-radius: 0 !important;
  transition: background 160ms ease, border-color 160ms ease !important;
}
body.term-ammunition .ppa-filter-brand-link.active:hover,
body[class*="term-"][class*="-ammo"] .ppa-filter-brand-link.active:hover {
  background: rgba(196,148,58,0.18) !important;
  color: #EDE4D0 !important;
  border-color: #EDE4D0 !important;
}
/* Active checkmark dot — small gold dot before the active item */
body.term-ammunition .ppa-filter-brand-link.active::before,
body[class*="term-"][class*="-ammo"] .ppa-filter-brand-link.active::before {
  content: "" !important;
  display: inline-block !important;
  width: 6px !important;
  height: 6px !important;
  background: #C4943A !important;
  border-radius: 50% !important;
  margin-right: 4px !important;
  flex-shrink: 0 !important;
}
/* Hide the count next to active items — they've already chosen */
body.term-ammunition .ppa-filter-brand-link.active .ppa-filter-count,
body[class*="term-"][class*="-ammo"] .ppa-filter-brand-link.active .ppa-filter-count {
  margin-left: 8px !important;
  color: rgba(196,148,58,0.5) !important;
  font-size: 10px !important;
}

/* Availability section — shrink "All" / "In Stock Only" radio buttons */
body.term-ammunition [data-filter="availability"],
body[class*="term-"][class*="-ammo"] [data-filter="availability"] {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px !important;
}
body.term-ammunition [data-filter="availability"] .ppa-filter-label,
body[class*="term-"][class*="-ammo"] [data-filter="availability"] .ppa-filter-label {
  flex-basis: 100% !important;
  margin-bottom: 4px !important;
}
body.term-ammunition [data-filter="availability"] .ppa-filter-radio,
body[class*="term-"][class*="-ammo"] [data-filter="availability"] .ppa-filter-radio {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  padding: 4px 10px !important;
  margin: 0 !important;
  width: auto !important;
  border: 1px solid rgba(237,228,208,0.25) !important;
  background: transparent !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: rgba(237,228,208,0.78) !important;
  cursor: pointer !important;
  transition: all 160ms ease !important;
  line-height: 1.4 !important;
}
body.term-ammunition [data-filter="availability"] .ppa-filter-radio:hover,
body[class*="term-"][class*="-ammo"] [data-filter="availability"] .ppa-filter-radio:hover {
  border-color: #4EA8A0 !important;
  color: #4EA8A0 !important;
}
body.term-ammunition [data-filter="availability"] .ppa-filter-radio:has(input:checked),
body[class*="term-"][class*="-ammo"] [data-filter="availability"] .ppa-filter-radio:has(input:checked) {
  border-color: #4EA8A0 !important;
  background: rgba(78,168,160,0.10) !important;
  color: #4EA8A0 !important;
}
body.term-ammunition [data-filter="availability"] .ppa-filter-radio input,
body[class*="term-"][class*="-ammo"] [data-filter="availability"] .ppa-filter-radio input {
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
}
/* End PPA_AMMO_V4_4_FILTERPOLISH */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_FIREARMS_V4_1 — Port v4 visuals to /firearms/
   Mirrors the body.term-ammunition rules from PPA_AMMO_V4_FINAL_LOCK.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tile grid */
body.term-firearms .ppa-subcat-grid {
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  margin-bottom: 56px !important;
}
@media (max-width: 1100px) {
  body.term-firearms .ppa-subcat-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}
@media (max-width: 720px) {
  body.term-firearms .ppa-subcat-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Tile card */
body.term-firearms .ppa-subcat-card {
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 0 !important;
  gap: 0 !important;
  background: #0C0E10 !important;
  border: 1px solid rgba(237,228,208,0.22) !important;
  min-height: 280px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  position: relative !important;
}
body.term-firearms .ppa-subcat-card::before { display: none !important; }
body.term-firearms .ppa-subcat-card:hover {
  border-color: #C4943A !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 16px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(196,148,58,0.4) !important;
}

/* Tile image — 16:9 + no multiply */
body.term-firearms .ppa-subcat-img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  display: block !important;
  background: #1a1a1a !important;
  border-radius: 0 !important;
  flex-shrink: initial !important;
  overflow: hidden !important;
  position: relative !important;
  margin-bottom: 0 !important;
}
body.term-firearms .ppa-subcat-img img {
  mix-blend-mode: normal !important;
  object-fit: cover !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
body.term-firearms .ppa-subcat-img::before {
  content: "" !important;
  position: absolute !important;
  top: 12px !important; left: 12px !important;
  width: 18px !important; height: 18px !important;
  border: 1px solid #C4943A !important;
  border-right: none !important;
  border-bottom: none !important;
  z-index: 2 !important;
}
body.term-firearms .ppa-subcat-img::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(180deg, rgba(12,14,16,0) 55%, rgba(12,14,16,0.88) 100%) !important;
  pointer-events: none !important;
}

/* Tile body */
body.term-firearms .ppa-subcat-card > div:not(.ppa-subcat-img) {
  padding: 16px 18px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}

/* Tile name + count */
body.term-firearms .ppa-subcat-name {
  text-transform: none !important;
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 22px !important;
  letter-spacing: -0.005em !important;
  color: #EDE4D0 !important;
  margin-bottom: 8px !important;
  display: block !important;
}
body.term-firearms .ppa-subcat-count {
  font-family: 'Audiowide', sans-serif !important;
  font-size: 13px !important;
  font-weight: normal !important;
  text-transform: none !important;
  letter-spacing: 0.04em !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-subcat-arrow { display: none !important; }

/* Lifeline at top of sidebar */
body.term-firearms .ppa-catalog-sidebar > .ppa-ask-lifeline,
body.term-firearms .ppa-mobile-filter-body > .ppa-ask-lifeline {
  order: -100 !important;
}
body.term-firearms .ppa-ask-lifeline {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(196,148,58,0.42) !important;
  background: rgba(196,148,58,0.05) !important;
  margin-bottom: 16px !important;
  text-decoration: none !important;
  transition: background 200ms ease, border-color 200ms ease !important;
}
body.term-firearms .ppa-ask-lifeline:hover {
  background: rgba(196,148,58,0.12) !important;
  border-color: #C4943A !important;
}
body.term-firearms .ppa-ask-lifeline svg {
  width: 22px !important; height: 22px !important;
  stroke: #C4943A !important; fill: none !important; stroke-width: 1.5 !important;
  flex-shrink: 0 !important;
}
body.term-firearms .ppa-ask-lifeline-body {
  display: flex !important; flex-direction: column !important; gap: 2px !important;
}
body.term-firearms .ppa-ask-lifeline-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-ask-lifeline-text {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  color: #EDE4D0 !important;
}

/* Sidebar polish */
body.term-firearms .ppa-catalog-sidebar {
  background: rgba(237,228,208,0.025) !important;
  border: 1px solid rgba(237,228,208,0.12) !important;
  padding: 22px 24px !important;
}
body.term-firearms .ppa-filter-label {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
  margin: 0 0 10px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid rgba(237,228,208,0.12) !important;
}
body.term-firearms .ppa-filter-brand-link {
  font-family: 'Barlow', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #EDE4D0 !important;
  padding: 4px 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  text-decoration: none !important;
  transition: color 160ms ease !important;
  position: relative !important;
}
body.term-firearms .ppa-filter-brand-link::before { display: none !important; }
body.term-firearms .ppa-filter-brand-link:hover { color: #4EA8A0 !important; }
body.term-firearms .ppa-filter-brand-link.active { color: #4EA8A0 !important; font-weight: 600 !important; }
/* End PPA_FIREARMS_V4_1 */


/* ═══════════════════════════════════════════════════════════════════════════
   PPA_FIREARMS_V4_2_ARTICLE — Editorial article tile (4th slot on /firearms/)
   ═══════════════════════════════════════════════════════════════════════════ */

body.term-firearms .ppa-subcat-card--editorial {
  background:
    linear-gradient(135deg, rgba(196,148,58,0.08) 0%, rgba(78,168,160,0.05) 100%),
    #0C0E10 !important;
  border: 1px solid rgba(196,148,58,0.42) !important;
}
body.term-firearms .ppa-subcat-card--editorial:hover {
  border-color: #C4943A !important;
  background:
    linear-gradient(135deg, rgba(196,148,58,0.14) 0%, rgba(78,168,160,0.08) 100%),
    #0C0E10 !important;
}
body.term-firearms .ppa-subcat-img--editorial {
  background:
    linear-gradient(180deg, rgba(196,148,58,0.04) 0%, rgba(12,14,16,0.6) 100%),
    #1a1a1a !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  gap: 12px !important;
}
body.term-firearms .ppa-subcat-img--editorial::before { display: none !important; }
body.term-firearms .ppa-subcat-img--editorial::after { display: none !important; }
body.term-firearms .ppa-edit-tile-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-edit-tile-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 56px !important;
  height: 56px !important;
  border: 1px solid rgba(196,148,58,0.5) !important;
  background: rgba(196,148,58,0.08) !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-edit-tile-icon svg {
  width: 28px !important;
  height: 28px !important;
}
body.term-firearms .ppa-subcat-card--editorial .ppa-subcat-name {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 22px !important;
  color: #EDE4D0 !important;
  margin-bottom: 6px !important;
  display: block !important;
  line-height: 1.15 !important;
}
body.term-firearms .ppa-subcat-card--editorial .ppa-subcat-count {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #4EA8A0 !important;
  margin-bottom: 8px !important;
  display: block !important;
}
body.term-firearms .ppa-subcat-card--editorial .ppa-most-popular {
  font-family: 'Barlow', sans-serif !important;
  font-style: normal !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: rgba(237,228,208,0.78) !important;
  margin-top: 4px !important;
}
body.term-firearms .ppa-subcat-card--editorial .ppa-most-popular strong {
  color: #EDE4D0 !important;
  font-weight: 600 !important;
}
/* End PPA_FIREARMS_V4_2_ARTICLE */


/* PPA_FIREARMS_V4_3_FIX_CSS — editorial tile (decoupled from .ppa-subcat-card to avoid plugin hijack) */
body.term-firearms .ppa-edit-tile {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  background:
    linear-gradient(135deg, rgba(196,148,58,0.08) 0%, rgba(78,168,160,0.05) 100%),
    #0C0E10 !important;
  border: 1px solid rgba(196,148,58,0.42) !important;
  min-height: 280px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  color: #EDE4D0 !important;
  transition: border-color 320ms ease, transform 320ms ease, box-shadow 320ms ease !important;
  padding: 0 !important;
  gap: 0 !important;
}
body.term-firearms .ppa-edit-tile:hover {
  border-color: #C4943A !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 16px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(196,148,58,0.4) !important;
}
body.term-firearms .ppa-edit-tile-bg {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background:
    linear-gradient(180deg, rgba(196,148,58,0.04) 0%, rgba(12,14,16,0.6) 100%),
    #1a1a1a !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  position: relative !important;
}
body.term-firearms .ppa-edit-tile-bg::before {
  content: "" !important;
  position: absolute !important;
  top: 12px !important; left: 12px !important;
  width: 18px !important; height: 18px !important;
  border: 1px solid #C4943A !important;
  border-right: none !important;
  border-bottom: none !important;
  z-index: 2 !important;
}
body.term-firearms .ppa-edit-tile-eyebrow {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-edit-tile-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 56px !important;
  height: 56px !important;
  border: 1px solid rgba(196,148,58,0.5) !important;
  background: rgba(196,148,58,0.08) !important;
  color: #C4943A !important;
}
body.term-firearms .ppa-edit-tile-icon svg {
  width: 28px !important; height: 28px !important;
}
body.term-firearms .ppa-edit-tile > div:not(.ppa-edit-tile-bg) {
  padding: 16px 18px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}
body.term-firearms .ppa-edit-tile .ppa-subcat-name {
  font-family: 'Cormorant Garamond', serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
  font-size: 22px !important;
  color: #EDE4D0 !important;
  margin-bottom: 6px !important;
  display: block !important;
  line-height: 1.15 !important;
}
body.term-firearms .ppa-edit-tile .ppa-subcat-count {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #4EA8A0 !important;
  margin-bottom: 8px !important;
  display: block !important;
}
body.term-firearms .ppa-edit-tile .ppa-most-popular {
  font-family: 'Barlow', sans-serif !important;
  font-style: normal !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: rgba(237,228,208,0.78) !important;
  margin-top: 4px !important;
}
body.term-firearms .ppa-edit-tile .ppa-most-popular strong {
  color: #EDE4D0 !important;
  font-weight: 600 !important;
}
/* Hide the old hijacked editorial card from the sidebar */
.ppa-catalog-sidebar .ppa-subcat-card--editorial,
.ppa-mobile-filter-body .ppa-subcat-card--editorial { display: none !important; }
/* End PPA_FIREARMS_V4_3_FIX_CSS */


/* PPA_TILE_IMAGE_FIT_CONTAIN — switch tile images to contain (no zoom/crop) for both ammo and firearms */
body.term-ammunition .ppa-subcat-img img,
body.term-firearms .ppa-subcat-img img {
  object-fit: contain !important;
  padding: 16px !important;
  background: transparent !important;
}
body.term-ammunition .ppa-subcat-img,
body.term-firearms .ppa-subcat-img {
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0f10 100%) !important;
}
/* End PPA_TILE_IMAGE_FIT_CONTAIN */


/* PPA_TILE_IMG_BALANCE — better tile image fit: aspect 4/3, no padding, contain centered */
body.term-ammunition .ppa-subcat-img,
body.term-firearms .ppa-subcat-img {
  aspect-ratio: 4 / 3 !important;
  padding: 0 !important;
}
body.term-ammunition .ppa-subcat-img img,
body.term-firearms .ppa-subcat-img img {
  object-fit: contain !important;
  padding: 12px !important;
}
/* End PPA_TILE_IMG_BALANCE */

/* PPA_A11Y_CONTRAST_V1 — A11y contrast fixes from 2026-05-05 audit */
/* [G9 2026-09-12] populated-cart FFL disclosure line ("1 item · ships to your
   FFL") shipped at 45% alpha = 3.79:1. Live shim over the ccp plugin's rule
   until its next release (source fixed in plugins-build same day). */
body.woocommerce-cart .ppa-cart-subtitle { color: #B8B0A2 !important; }
/* [FE-057] tagline patch removed - the base rule now carries full-strength gold
   with no opacity (the patch color was defeated by the base rule's alpha). */

/* [FE-060 2026-09-11] Visible focus ring on the obsidian facet sidebar: the
   library fallback was a 1px 20%-alpha teal box-shadow (~1.2:1 on the panel).
   Parchment outline is ~15:1 there, comfortably past WCAG 2.4.7/2.4.11's 3:1.
   Scoped to the facet columns so card/checkout focus styles are untouched. */
#ppa-ts-app .fc input:focus-visible,
#ppa-ts-app .fc button:focus-visible,
#ppa-ts-app .fc a:focus-visible,
#ppa-ts-app .fc [class*="ais-"]:focus-visible,
#ppa-ts-app .ff-sel select:focus-visible {
  outline: 2px solid #EDE4D0 !important;
  outline-offset: 2px;
  box-shadow: none !important;
}
.ppa-footer-orgs-desc { color: #B8B0A2 !important; }            /* was #716e66 (3.79:1 fail) */
.button.wc-backward,
.cart-empty + .return-to-shop .button,
.return-to-shop .button { color: #0C0E10 !important; font-weight: 600; }   /* white-on-teal 2.82:1 fail */


/* PPA_BRAND_ARROWS_KILL_V1 (2026-05-05 audit; rotating-CTA kill REMOVED 2026-07-25).
   The old rotating kill disabled a CONSTANT idle spin AND pinned --phv2-ghost-angle to 0,
   which also froze the HOVER edge-tracer William wants (Audi/Olight north star). The button's
   hover tracer now lives in front-page.php inline (id=phv2-cta-ghost-teal-rotate-inline); no
   idle spin remains. The arrow-CTA kill below stays (no arrow CTAs): */
.intel-card__link::after,
a.intel-card__link::after {
    content: '' !important;
}


/* PPA_TRENDING_CHIPS_MOBILE_FIX_V1 — Hide redundant "Brand"/"Caliber" kind label on mobile (scaffolding leak) */
@media (max-width: 768px) {
    .ppa-trending-chip-kind { display: none !important; }
    .ppa-trending-chip-count { font-size: 11px !important; opacity: 0.7 !important; }
    .ppa-trending-chip {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }
    .ppa-trending-chips {
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch;
    }
    .ppa-trending-chips::-webkit-scrollbar { display: none; }
}


/* PPA_PDP_ATC_OUTLINED_V1 — PDP Add-to-Cart outlined per feedback_outlined_buttons.md */
body.single-product form.cart .single_add_to_cart_button,
body .ppa-product-atc .single_add_to_cart_button,
body.single-product .ppa-product-atc .single_add_to_cart_button {
    background: rgba(78, 168, 160, 0.10) !important;
    border: 1px solid #4EA8A0 !important;
    color: #4EA8A0 !important;
    text-shadow: none !important;
    box-shadow: none !important;
}
body.single-product form.cart .single_add_to_cart_button:hover,
body .ppa-product-atc .single_add_to_cart_button:hover {
    background: rgba(78, 168, 160, 0.18) !important;
    color: #4EA8A0 !important;
}




/* PPA_DROP_CARD_IMG_MULTIPLY_V1 — Drop mix-blend-mode: multiply on .ppa-card-img to make wells
   uniformly white. Multiply was bleaching clean-cutout product photos but
   keeping muddy gray on RSR/CSSI photos with grey backgrounds, creating
   a visible white-vs-gray inconsistency in the archive grid (William 2026-05-06).
   Tradeoff: products photographed on dark backgrounds will show that
   background inside the white well — but the well itself is now consistent. */
.ppa-card-img,
.ppa-card-img img,
.ppa-product-card .ppa-card-img,
.ppa-product-card .ppa-card-img img {
    mix-blend-mode: normal !important;
}


/* PPA_FIREARMS_4COL_GRID_V1 — Force 4-column layout on /firearms/ subcat grid so the
   3 hero tiles + article tile sit in one row instead of wrapping. */
body.term-firearms .ppa-subcat-grid,
body.tax-product_cat.term-firearms .ppa-subcat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
@media (max-width: 1100px) {
    body.term-firearms .ppa-subcat-grid,
    body.tax-product_cat.term-firearms .ppa-subcat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 600px) {
    body.term-firearms .ppa-subcat-grid,
    body.tax-product_cat.term-firearms .ppa-subcat-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Article tile match subcat tile dimensions */
body.term-firearms .ppa-edit-tile {
    display: flex !important;
    flex-direction: column !important;
}


/* PPA_MEGA_RAIL_HORIZONTAL_V1 — Mega menu feature rail: horizontal layout instead of stacked.
   Per William 2026-05-06: "the article and the product spotlight stacked one
   on top of the other makes the entire menu too tall when products dont fill it.
   stack them left to right". */
.mega-panel .feature-rail {
    flex-direction: row !important;
    gap: 12px !important;
    align-items: stretch !important;
}
.mega-panel .feature-rail .feature-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
}
/* Tighten card content for narrower horizontal cells */
.mega-panel .feature-rail .feature-card__title {
    font-size: 14px !important;
    line-height: 1.3 !important;
}
.mega-panel .feature-rail .feature-card__eyebrow {
    font-size: 9px !important;
    letter-spacing: 0.18em !important;
}
.mega-panel .feature-rail .feature-card--product .feature-card__img {
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
}


/* PPA_MEGA_RAIL_HORIZONTAL_V2 — Override .mr-nav .feature-rail to stack horizontal (was column).
   The theme rule "display: flex; flex-direction: column" wins over our V1
   selector via specificity; needs the same .mr-nav anchor. */
html body .mr-nav .feature-rail,
.mr-nav .feature-rail {
    flex-direction: row !important;
    gap: 12px !important;
    align-items: stretch !important;
}
html body .mr-nav .feature-rail .feature-card,
.mr-nav .feature-rail .feature-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.mr-nav .feature-rail .feature-card__title { font-size: 14px !important; line-height: 1.3 !important; }
.mr-nav .feature-rail .feature-card__eyebrow { font-size: 9px !important; letter-spacing: 0.18em !important; }
.mr-nav .feature-rail .feature-card--product .feature-card__img { aspect-ratio: 1 / 1 !important; height: auto !important; }
