/*
 Theme Name:   TINFOIL Premiere 1.5.12
 Theme URI:    https://tinfoil.wtf
 Description:  GeneratePress child theme for TINFOIL — v1.5.11.
               v1.5.11: Full product catalog page template with client-side
               filtering by Clearance Level, Platform (form factor), and
               Variant (colorway). Uses prefixed WooCommerce product tags.
               v1.5.10: Dynamic Underground member pricing (per-product configurable),
               hover-reveal member price on product cards, intentional [REDACTED]
               Ships From with hover reveal, menu_order DESC for shop featured products.
               v1.5.9: Improved spec/threat panel label readability, quantity
               field styling with label.
               Premiere design system with dark theme, WooCommerce integration,
               mobile-responsive premiere pages, WTF superscript branding,
               custom footer, and CSS cascade overrides for GP specificity conflicts.
 Author:       TINFOIL
 Author URI:   https://tinfoil.wtf
 Template:     generatepress
 Version:      1.5.46
*/

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@700;900&display=swap');

/* ═══════════════════════════════════════════════════════════════
   TINFOIL™ — Premiere Design System
   Custom CSS for GeneratePress + WooCommerce
   
   INSTALLATION: Paste into one of these locations:
   1. Appearance → Customize → Additional CSS (simplest)
   2. GP Elements → Hook: wp_head (better for caching)
   3. Child theme style.css (most robust)
   
   Requires: GeneratePress Premium with updated customizer JSON
   Fonts: Barlow, Barlow Condensed, Inter, IBM Plex Mono
   ═══════════════════════════════════════════════════════════════ */


/* ───────────────────────────────────────────────────────────────
   1. DESIGN TOKENS (CSS Custom Properties)
   These extend the GP global colors with premiere-specific values.
   GP's var(--accent), var(--contrast), etc. are set via the JSON.
   These add finer control for the custom components.
   ─────────────────────────────────────────────────────────────── */

:root {
  /* ── TINFOIL Color Palette ──
     These variables are used by page HTML blocks and WC templates.
     GP has its own variables (--accent, --contrast, etc.) set via JSON.
     These ensure our custom HTML always resolves correctly. */
  --white: #f5f5f5;
  --base: #e8e8e8;
  --base-2: #8e8e8e;
  --base-3: #6a6a6a;
  --base-subtle: #555555;
  --contrast: #070707;
  --contrast-2: #0c0c0c;
  --contrast-3: #131313;
  --surface: #0c0c0c;
  --card: #131313;
  --border-subtle: #1a1a1a;
  --border-medium: #252525;
  --accent: #00ff88;
  --accent-hover: #00e67a;
  --alert-red: #ff3344;

  /* Supplementary colors */
  --tf-green-glow: rgba(0, 255, 136, 0.12);
  --tf-green-faint: rgba(0, 255, 136, 0.05);
  --tf-amber: #ffaa00;
  --tf-amber-faint: rgba(255, 170, 0, 0.06);
  --tf-red-faint: rgba(255, 51, 68, 0.05);
  --tf-red-border: rgba(255, 51, 68, 0.2);
  
  /* Font stack aliases for custom HTML blocks */
  --tf-head: 'Barlow', var(--gp-font--barlow), system-ui, sans-serif;
  --tf-cond: 'Barlow Condensed', var(--gp-font--barlow-condensed), system-ui, sans-serif;
  --tf-text: 'Inter', var(--gp-font--inter), system-ui, sans-serif;
  --tf-mono: 'IBM Plex Mono', var(--gp-font--ibm-plex-mono), monospace;
}


/* ───────────────────────────────────────────────────────────────
   2. GLOBAL BODY & TEXTURE
   Subtle film grain overlay for the "luxury paranoia" feel.
   Sits on top of everything but is pointer-events: none.
   ─────────────────────────────────────────────────────────────── */

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-conic-gradient(rgba(255,255,255,0.008) 0% 25%, transparent 0% 50%) 0 0 / 3px 3px;
  pointer-events: none;
  z-index: 9998;
}


/* ───────────────────────────────────────────────────────────────
   3. NAVIGATION REFINEMENTS
   GP handles the structure. We refine the feel:
   - Glassmorphism backdrop blur
   - Tighter nav item spacing
   - "Join Underground" CTA in nav (added via GP Elements hook)
   ─────────────────────────────────────────────────────────────── */

/* Glassmorphism nav */
.main-navigation,
.site-header {
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
}

/* Nav bottom border — thin separation line */
.site-header,
#site-navigation {
  border-bottom: 1px solid var(--border-subtle, #1a1a1a);
}

/* Site title — match premiere: TINFOIL with green TM
   Set site title in WP Settings → General to: TINFOIL™
   The CSS below styles the ™ character green and lighter weight */
.site-header .site-title,
.site-header .site-title a,
.navigation-branding .main-title,
.navigation-branding .main-title a {
  font-family: 'Outfit', var(--gp-font--barlow, sans-serif) !important;
  font-weight: 900 !important;
  font-size: 18px !important;
  letter-spacing: 3.5px !important;
  text-transform: uppercase !important;
  color: var(--white, #e8e8e8) !important;
  text-decoration: none !important;
}
/* Nav branding — balanced left padding */
.main-navigation.has-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding,
.main-navigation.has-sticky-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding {
  margin-left: 24px !important;
}

/* Green WTF mark — reads as ™ at a glance, rewards inspection */
.tf-wtf {
  color: var(--accent);
  font-size: 0.45em;
  font-weight: 800;
  letter-spacing: 2px;
  vertical-align: super;
  margin-left: 2px;
  text-decoration: none;
  font-family: var(--gp-font--barlow);
}

/* Nav link hover — white instead of green (green reserved for CTAs) */
.main-navigation .main-nav ul li a:hover {
  color: var(--base) !important;
}

/* Active page indicator */
.main-navigation .main-nav ul li.current-menu-item > a {
  color: var(--accent) !important;
}

/* Underground CTA button in nav (add via Appearance → Menus → CSS Classes) */
.menu-item.nav-cta > a {
  font-family: var(--tf-head);
  font-size: 11px !important;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 8px 18px !important;
  border: 1px solid var(--tf-green-glow);
  color: var(--accent) !important;
  transition: all 0.3s;
  margin-left: 8px;
}

.menu-item.nav-cta > a:hover {
  background: var(--accent);
  color: var(--contrast) !important;
  border-color: var(--accent);
}


/* ───────────────────────────────────────────────────────────────
   4. CONTENT AREA OVERRIDES
   Remove GP's default content padding so custom page layouts
   can go full-width. Individual pages handle their own spacing.
   ─────────────────────────────────────────────────────────────── */

/* Remove content container padding on custom pages */
.page-template-default .inside-article,
.page-template-default .entry-content {
  padding: 0 !important;
  max-width: none !important;
}

/* But keep it for blog posts */
.single-post .inside-article {
  padding: 40px;
  max-width: 780px;
  margin: 0 auto;
}


/* ───────────────────────────────────────────────────────────────
   5. WOOCOMMERCE — PRODUCT GRID (Category/Shop pages)
   Transforms the default WC grid into the premiere card layout:
   - Dark cards with border treatment
   - Green hover-reveal top bar
   - SKU codes in monospace
   - Tagline below product name
   ─────────────────────────────────────────────────────────────── */

/* Product card container */
.woocommerce ul.products li.product {
  background: var(--contrast-3);
  border: 1px solid var(--border-subtle);
  transition: background 0.3s;
  position: relative;
  overflow: hidden;
  padding: 0;
  margin: 0;
  text-align: left;
}

.woocommerce ul.products li.product:hover {
  background: #171717;
}

/* Green top bar on hover */
.woocommerce ul.products li.product::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 1;
}

.woocommerce ul.products li.product:hover::before {
  transform: scaleX(1);
}

/* Product image area */
.woocommerce ul.products li.product a img {
  margin-bottom: 0;
  border-bottom: 1px solid var(--border-subtle);
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--tf-head);
  font-size: 16px;
  font-weight: 600;
  color: var(--base);
  padding: 16px 20px 4px;
  margin: 0;
}

/* Price — green, prominent */
.woocommerce ul.products li.product .price {
  font-family: var(--tf-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--accent) !important;
  padding: 0 20px 16px;
}

.woocommerce ul.products li.product .price ins {
  text-decoration: none;
}

/* Add to cart button on product cards */
.woocommerce ul.products li.product .button {
  font-family: var(--tf-head);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  background: transparent;
  color: var(--base-2);
  border: 1px solid var(--border-subtle);
  border-radius: 0;
  padding: 10px 16px;
  margin: 0 20px 20px;
  transition: all 0.3s;
}

.woocommerce ul.products li.product .button:hover {
  background: var(--accent);
  color: var(--contrast);
  border-color: var(--accent);
}

/* Star ratings */
.woocommerce ul.products li.product .star-rating {
  margin: 8px 0 0 20px;
  color: var(--tf-amber);
}

/* Sale badge */
.woocommerce ul.products li.product .onsale {
  font-family: var(--tf-cond);
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 10px;
  border-radius: 0;
  min-height: auto;
  line-height: 1;
  padding: 6px 12px;
}


/* ───────────────────────────────────────────────────────────────
   6. WOOCOMMERCE — SINGLE PRODUCT PAGE
   Transforms the default WC single product into the dossier layout.
   ─────────────────────────────────────────────────────────────── */

/* Product gallery — dark background */
.woocommerce div.product div.images {
  background: var(--contrast-2);
  border: 1px solid var(--border-subtle);
  padding: 20px;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
  border: 1px solid var(--border-subtle);
  transition: border-color 0.3s;
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
  border-color: var(--tf-green-glow);
}

/* Product title */
.woocommerce div.product .product_title {
  font-family: var(--tf-head);
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.5px;
}

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--tf-head);
  font-size: 32px;
  font-weight: 800;
  color: var(--accent);
}

/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
  font-family: var(--tf-text);
  color: var(--base-3);
  line-height: 1.8;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border-subtle);
  margin-bottom: 24px;
}

/* Add to cart button */
.woocommerce div.product .single_add_to_cart_button {
  font-family: var(--tf-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 16px 36px;
  border-radius: 0;
  background: var(--accent);
  color: var(--contrast);
  border: 1px solid var(--accent);
  transition: all 0.3s;
}

.woocommerce div.product .single_add_to_cart_button:hover {
  background: transparent;
  color: var(--accent);
}

/* Quantity input */
.woocommerce div.product .quantity .qty {
  background: var(--contrast-3);
  border: 1px solid var(--border-subtle);
  color: var(--base);
  font-family: var(--tf-mono);
  border-radius: 0;
  width: 60px;
}

/* SKU and meta */
.woocommerce div.product .product_meta {
  font-family: var(--tf-mono);
  font-size: 11px;
  color: var(--base-subtle);
  letter-spacing: 0.5px;
  border-top: 1px solid var(--border-subtle);
  padding-top: 16px;
  margin-top: 24px;
}

.woocommerce div.product .product_meta a {
  color: var(--base-3);
}

/* Product tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--border-subtle);
  padding: 0;
  margin-bottom: 24px;
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--tf-cond);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--base-3);
  padding: 12px 0;
}

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

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

/* Related / upsell products heading */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
  font-family: var(--tf-cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 24px;
}


/* ───────────────────────────────────────────────────────────────
   7. WOOCOMMERCE — CART PAGE
   ─────────────────────────────────────────────────────────────── */

/* Cart table */
.woocommerce-cart .woocommerce table.shop_table {
  border: 1px solid var(--border-subtle);
  border-radius: 0;
}

.woocommerce-cart .woocommerce table.shop_table th {
  font-family: var(--tf-cond);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--base-subtle);
  background: var(--contrast-3);
  border-bottom: 1px solid var(--border-subtle);
  padding: 14px 20px;
}

.woocommerce-cart .woocommerce table.shop_table td {
  border-bottom: 1px solid var(--border-subtle);
  padding: 20px;
  vertical-align: middle;
}

/* Product name in cart */
.woocommerce-cart .woocommerce table.shop_table td.product-name a {
  font-family: var(--tf-head);
  font-weight: 600;
  color: var(--base);
}

/* Cart totals */
.woocommerce-cart .cart_totals {
  border: 1px solid var(--border-subtle);
  background: var(--contrast-3);
}

.woocommerce-cart .cart_totals h2 {
  font-family: var(--tf-cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--base-subtle);
  padding: 18px 24px;
  border-bottom: 1px solid var(--border-subtle);
  margin: 0;
}

/* Checkout button */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  font-family: var(--tf-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 0;
  background: var(--accent);
  color: var(--contrast);
  border: 1px solid var(--accent);
  padding: 16px;
  transition: all 0.3s;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: transparent;
  color: var(--accent);
}


/* ───────────────────────────────────────────────────────────────
   8. WOOCOMMERCE — CHECKOUT PAGE
   Clean, focused, minimal brand fiction.
   ─────────────────────────────────────────────────────────────── */

/* Form fields */
.woocommerce-checkout .form-row label {
  font-family: var(--tf-cond);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--base-subtle);
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  background: var(--contrast-3);
  border: 1px solid var(--border-subtle);
  color: var(--base);
  border-radius: 0;
  padding: 12px 16px;
  font-family: var(--tf-text);
  font-size: 14px;
  transition: border-color 0.3s;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus {
  border-color: var(--border-medium);
}

/* Order review */
.woocommerce-checkout #order_review_heading {
  font-family: var(--tf-cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--base-subtle);
}

/* Place order button */
.woocommerce-checkout #place_order {
  font-family: var(--tf-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 0;
  background: var(--accent);
  color: var(--contrast);
  border: 1px solid var(--accent);
  padding: 18px 36px;
  transition: all 0.3s;
}

.woocommerce-checkout #place_order:hover {
  background: transparent;
  color: var(--accent);
}


/* ───────────────────────────────────────────────────────────────
   9. WOOCOMMERCE — MESSAGES & NOTICES
   ─────────────────────────────────────────────────────────────── */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 0;
  border-left: 3px solid;
  font-family: var(--tf-text);
  font-size: 14px;
}


/* ───────────────────────────────────────────────────────────────
   10. CUSTOM COMPONENT CLASSES
   Reusable classes for the custom HTML blocks used in
   homepage, WTF, Science, FAQ, Underground, and Contact pages.
   Add these classes in the WordPress block editor.
   ─────────────────────────────────────────────────────────────── */

/* Section labels — green uppercase moniker */
.tf-label {
  font-family: var(--tf-cond);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.tf-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-subtle);
}

/* Monospace data text */
.tf-mono {
  font-family: var(--tf-mono);
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--base-subtle);
}

/* Card surface */
.tf-card {
  background: var(--contrast-3);
  border: 1px solid var(--border-subtle);
  padding: 36px 32px;
  transition: background 0.3s;
}

.tf-card:hover {
  background: #171717;
}

/* Primary CTA button */
.tf-btn-primary {
  display: inline-block;
  font-family: var(--tf-head);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 16px 36px;
  background: var(--accent);
  color: var(--contrast);
  border: 1px solid var(--accent);
  text-decoration: none;
  transition: all 0.3s;
  cursor: pointer;
}

.tf-btn-primary:hover {
  background: transparent;
  color: var(--accent);
}

/* Ghost button */
.tf-btn-ghost {
  display: inline-block;
  font-family: var(--tf-head);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 16px 36px;
  background: transparent;
  color: var(--base-2);
  border: 1px solid var(--border-medium);
  text-decoration: none;
  transition: all 0.3s;
  cursor: pointer;
}

.tf-btn-ghost:hover {
  border-color: var(--base-3);
  color: var(--base);
}

/* Scroll reveal animation */
.tf-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.tf-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}


/* ───────────────────────────────────────────────────────────────
   11. FOOTER REFINEMENTS
   ─────────────────────────────────────────────────────────────── */

.site-footer {
  border-top: 1px solid var(--border-subtle);
}

.site-info {
  font-family: var(--tf-text);
  font-size: 11px;
  color: var(--base-subtle);
}


/* ───────────────────────────────────────────────────────────────
   12. RESPONSIVE ADJUSTMENTS
   ─────────────────────────────────────────────────────────────── */

@media (max-width: 700px) {
  .menu-item.nav-cta > a {
    font-size: 10px !important;
    padding: 6px 12px !important;
    letter-spacing: 1px;
  }
}



/* ═══════════════════════════════════════════════════════════════
   DISABLE DEFAULT PAGE ELEMENTS
   Hides GP's default page title and content wrapper padding
   on pages using the premiere custom HTML blocks.
   Apply .tf-fullpage class to the page body via GP or manually.
   Or use a Layout Element to disable Content Title site-wide.
   ═══════════════════════════════════════════════════════════════ */

/* Hide page titles on all static pages — belt-and-suspenders */
.page .entry-header,
.home .entry-header,
body.page .entry-header,
body.home .entry-header,
.page .entry-title,
.home .entry-title,
.page-template-default .entry-header {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ═══ FULL-WIDTH PAGE LAYOUT ═══
   PHP filters add 'no-sidebar' and 'full-width-content' body classes
   to all pages. This CSS ensures custom HTML blocks in page content
   render edge-to-edge (each section handles its own max-width). */

.page .inside-article,
.page .entry-content {
  max-width: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
}

/* Custom HTML block wrapper — full width */
.page .wp-block-html {
  max-width: 100%;
  padding: 0;
  margin: 0;
}

/* Force zero padding on GP content containers at all breakpoints.
   GP can inject inline padding from Customizer spacing settings;
   this overrides it so page sections control their own padding. */
.page .inside-article,
.page .site-main,
.page .content-area,
.single-product .inside-article,
.single-product .site-main,
.post-type-archive-product .inside-article,
.post-type-archive-product .site-main,
.tax-product_cat .inside-article,
.tax-product_cat .site-main,
body.home .inside-article,
body.home .site-main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Override GP global link color on specific page elements.
   GP sets all links to green (#00ff88). Content links that should
   be white/gray need explicit overrides here. */
.origin-link,
body.page .origin-link {
  color: var(--base, #bcbcbc) !important;
}
.origin-link:hover,
body.page .origin-link:hover {
  color: var(--accent-hover, #00e67a) !important;
}

/* Prevent horizontal scroll — use overscroll-behavior instead of overflow
   on body/html, which can kill vertical touch scrolling on iOS */
body.page {
  overscroll-behavior-x: none;
}

/* Restore padding for blog posts */
.single-post .entry-header {
  display: block;
}

.single-post .inside-article {
  padding: 40px;
  max-width: 780px;
  margin: 0 auto;
}


/* ═══ BUTTON TEXT COLOR FIX ═══
   GP applies link colors to .entry-content a which overrides button text.
   Using body-level specificity + !important to guarantee override. */

body.page .entry-content a.btn-p,
body.page .entry-content a.btn-g,
body.page .entry-content a.plan-cta,
body.page .entry-content a.tq-result-cta,
body.page .entry-content a.signal-btn,
body.page .entry-content a.checkout-btn,
body.page a.btn-p,
body.page a.btn-g,
body.page a.plan-cta,
body.page a.tq-result-cta,
body .btn-p,
body .btn-g,
body .plan-cta,
body .tq-result-cta {
  color: #070707 !important;
  background-color: #00ff88 !important;
  border-color: #00ff88 !important;
}

body.page .entry-content a.btn-p:hover,
body.page .entry-content a.btn-g:hover,
body.page .entry-content a.plan-cta:hover,
body.page .entry-content a.tq-result-cta:hover,
body.page a.btn-p:hover,
body.page a.btn-g:hover,
body .btn-p:hover,
body .btn-g:hover,
body .plan-cta:hover,
body .tq-result-cta:hover {
  color: #00ff88 !important;
  background-color: transparent !important;
}

/* Ghost/outline buttons */
body.page .entry-content a.btn-o,
body.page .entry-content a.btn-r,
body .btn-o,
body .btn-r {
  color: #e8e8e8 !important;
  background: transparent !important;
}

body.page .entry-content a.btn-o:hover,
body .btn-o:hover {
  border-color: #8e8e8e !important;
}

/* TCK page CTA button — resist global link + hover overrides */
.tck-dispatch .tck-cta-btn,
.tck-dispatch a.tck-cta-btn {
  color: #0a0a0a !important;
  background: #00CC6A !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.tck-dispatch .tck-cta-btn:hover,
.tck-dispatch .tck-cta-btn:focus,
.tck-dispatch .tck-cta-btn:visited,
.tck-dispatch a.tck-cta-btn:hover,
.tck-dispatch a.tck-cta-btn:focus,
.tck-dispatch a.tck-cta-btn:visited {
  color: #0a0a0a !important;
  background: #00CC6A !important;
  opacity: 0.82;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* ═══ ADMIN BAR + STICKY NAV FIX ═══
   When logged in, the WP admin bar (32px) + sticky nav overlap content.
   Add top padding to prevent content from hiding behind them. */

.admin-bar.page .site-content {
  padding-top: 0 !important;
}

/* Fix for sticky nav overlapping first section on all pages */
.page .entry-content > .wp-block-html > *:first-child,
.page .entry-content > *:first-child {
  scroll-margin-top: 100px;
}

/* ═══ WOOCOMMERCE LAYOUT ═══
   Layout is controlled at the PHP level via generate_sidebar_layout
   and body_class filters. See functions.php for details.
   Only visual styling and minor adjustments below. */

/* ═══ WOOCOMMERCE BUTTON TEXT FIX ═══
   Force dark text on green WC buttons */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
.woocommerce .cart .button,
.woocommerce .checkout-button,
body .woocommerce a.button,
body .woocommerce button.button {
  color: #070707 !important;
  background-color: #00ff88 !important;
  border-color: #00ff88 !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--barlow), sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
body .woocommerce a.button:hover,
body .woocommerce button.button:hover {
  color: #00ff88 !important;
  background-color: transparent !important;
  border-color: #00ff88 !important;
}

/* WooPay / express checkout buttons — leave their own colors */
.woocommerce .wc-block-components-express-payment button,
.woocommerce .wc-block-components-express-payment a {
  color: inherit !important;
  background-color: inherit !important;
}

/* ═══ EMPTY CART PAGE ═══ */

.woocommerce-cart .cart-empty {
  text-align: center;
  font-family: var(--gp-font--barlow), sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--base, #e8e8e8);
  padding: 80px 20px 24px;
}

.woocommerce-cart .return-to-shop {
  text-align: center;
  padding: 0 20px 80px;
}

.woocommerce-cart .return-to-shop a.button {
  display: inline-block;
  padding: 16px 48px;
  font-size: 14px;
}

/* ═══ WOOCOMMERCE PRODUCT IMAGE TREATMENT ═══
   Soften the white product image backgrounds against dark theme */

.woocommerce ul.products li.product a img {
  border-radius: 2px;
  border: 1px solid var(--border-subtle, #1a1a1a);
  transition: opacity 0.3s ease;
}

.woocommerce ul.products li.product:hover a img {
  opacity: 0.9;
}

/* ═══════════════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE — PREMIERE ENHANCEMENTS
   ═══════════════════════════════════════════════════════════════ */

/* Breadcrumb styling */
.woocommerce .woocommerce-breadcrumb {
  font-family: var(--gp-font--ibm-plex-mono, 'IBM Plex Mono', monospace);
  font-size: 11px;
  letter-spacing: 0.5px;
  color: var(--base-subtle, #555);
  padding: 20px 0 10px;
}

.woocommerce .woocommerce-breadcrumb a {
  color: var(--base-3, #6a6a6a);
  text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
  color: var(--accent, #00ff88);
}

/* Product image container — refined */
.woocommerce div.product div.images {
  background: var(--contrast-2, #0c0c0c);
  border: 1px solid var(--border-subtle, #1a1a1a);
  padding: 24px;
  position: relative;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  color: var(--base-3, #6a6a6a);
  border-radius: 0;
}

/* Product title — bigger, bolder */
.woocommerce div.product .product_title {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-weight: 800;
  font-size: 42px;
  color: var(--white, #f5f5f5);
  letter-spacing: -1px;
  line-height: 1.1;
  margin-bottom: 12px;
}

/* Price — prominent */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-size: 36px;
  font-weight: 800;
  color: var(--accent, #00ff88);
  margin-bottom: 20px;
}

/* Quantity +/- buttons */
.woocommerce div.product .quantity button,
.woocommerce div.product .quantity .minus,
.woocommerce div.product .quantity .plus {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
}

/* Variation selectors */
.woocommerce div.product .variations td.label label {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--base-3, #6a6a6a);
}

.woocommerce div.product .variations td.value select {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  color: var(--base, #e8e8e8);
  font-family: var(--gp-font--inter, 'Inter', sans-serif);
  border-radius: 0;
  padding: 10px 14px;
}

/* Tab content styling */
.woocommerce div.product .woocommerce-Tabs-panel {
  color: var(--base-2, #8e8e8e);
  line-height: 1.8;
}

.woocommerce div.product .woocommerce-Tabs-panel h2 {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-size: 24px;
  font-weight: 700;
  color: var(--base, #e8e8e8);
  margin-bottom: 16px;
}

/* Related products — card treatment */
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .upsells ul.products li.product {
  background: var(--contrast-2, #0c0c0c);
  border: 1px solid var(--border-subtle, #1a1a1a);
  padding: 16px;
  transition: border-color 0.3s ease;
}

.woocommerce div.product .related ul.products li.product:hover,
.woocommerce div.product .upsells ul.products li.product:hover {
  border-color: var(--border-medium, #252525);
}

/* Sale badge */
.woocommerce span.onsale {
  background: var(--alert-red, #ff3344) !important;
  color: var(--contrast, #070707) !important;
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 0 !important;
  padding: 6px 12px;
  min-height: 0;
  min-width: 0;
  line-height: 1;
}

/* Stock status */
.woocommerce div.product .stock {
  font-family: var(--gp-font--ibm-plex-mono, 'IBM Plex Mono', monospace);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.woocommerce div.product .stock.in-stock {
  color: var(--accent, #00ff88);
}

.woocommerce div.product .stock.out-of-stock {
  color: var(--alert-red, #ff3344);
}

.woocommerce div.product .stock.coming-soon {
  color: var(--tf-amber, #ffaa00);
}

/* Review stars */
.woocommerce div.product .star-rating {
  color: #ffaa00;
}

/* Afterpay / Klarna area */
.woocommerce div.product .payment-method-info,
.woocommerce div.product [class*="afterpay"],
.woocommerce div.product [class*="klarna"] {
  border-top: 1px solid var(--border-subtle, #1a1a1a);
  padding-top: 16px;
  margin-top: 16px;
}


/* ═══════════════════════════════════════════════════════════════
   404 PAGE — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

.error404 .site-content {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 70vh;
  text-align: center;
}

.error404 .page-header h1 {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-weight: 900;
  font-size: 120px;
  color: var(--accent, #00ff88);
  letter-spacing: -4px;
  line-height: 1;
  margin-bottom: 0;
}

.error404 .page-content {
  max-width: 600px;
  margin: 0 auto;
}

.error404 .page-content p {
  font-family: var(--gp-font--inter, 'Inter', sans-serif);
  font-size: 18px;
  color: var(--base-2, #8e8e8e);
  margin-bottom: 32px;
}

.error404 .page-content .search-form {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 32px;
}

.error404 .page-content .search-field {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  color: var(--base, #e8e8e8);
  font-family: var(--gp-font--inter, 'Inter', sans-serif);
  padding: 14px 20px;
  border-radius: 0;
  min-width: 300px;
}

.error404 .page-content .search-field:focus {
  border-color: var(--accent, #00ff88);
  outline: none;
}

.error404 .page-content .search-submit {
  background: var(--accent, #00ff88);
  color: var(--contrast, #070707);
  border: 1px solid var(--accent, #00ff88);
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 14px 24px;
  border-radius: 0;
  cursor: pointer;
  transition: all 0.3s;
}

.error404 .page-content .search-submit:hover {
  background: transparent;
  color: var(--accent, #00ff88);
}

/* ═══════════════════════════════════════════════════════════════
   CLICKABLE CATEGORY CARDS — prevent GP link color inheritance
   ═══════════════════════════════════════════════════════════════ */

a.cc,
a.cc:visited,
.entry-content a.cc,
.entry-content a.cc:visited {
  color: inherit !important;
  text-decoration: none !important;
}

a.cc .cc-name {
  color: var(--base, #e8e8e8) !important;
}

a.cc .cc-tier {
  color: var(--base-subtle, #555) !important;
}

a.cc .cc-desc {
  color: var(--base-3, #6a6a6a) !important;
}

a.cc:hover .cc-link {
  color: var(--accent-hover, #00e67a) !important;
  gap: 12px;
}

/* ═══════════════════════════════════════════════════════════════
   WOOCOMMERCE CATEGORY ARCHIVE — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

/* Top spacing for all WooCommerce pages — prevent nav overlap */
.woocommerce-page .inside-article,
.tax-product_cat .inside-article,
.post-type-archive-product .inside-article,
.single-product .inside-article {
  padding-top: 24px !important;
}

/* Category page title */
.tax-product_cat .page-header,
.tax-product_cat .woocommerce-products-header {
  margin-bottom: 32px;
}

.tax-product_cat .page-header h1,
.tax-product_cat .woocommerce-products-header h1,
.tax-product_cat .woocommerce-products-header__title {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-weight: 800;
  font-size: 48px;
  color: var(--white, #f5f5f5);
  letter-spacing: -1px;
}

/* Category description */
.tax-product_cat .term-description,
.tax-product_cat .woocommerce-products-header__description {
  font-family: var(--gp-font--inter, 'Inter', sans-serif);
  color: var(--base-2, #8e8e8e);
  font-size: 16px;
  line-height: 1.7;
  max-width: 680px;
  margin-bottom: 32px;
}

/* Result count + sorting */
.woocommerce .woocommerce-result-count {
  font-family: var(--gp-font--ibm-plex-mono, 'IBM Plex Mono', monospace);
  font-size: 11px;
  letter-spacing: 0.5px;
  color: var(--base-3, #6a6a6a);
}

.woocommerce .woocommerce-ordering select {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  color: var(--base, #e8e8e8);
  font-family: var(--gp-font--inter, 'Inter', sans-serif);
  font-size: 13px;
  border-radius: 0;
  padding: 8px 12px;
}

/* Product cards on category pages — match shop styling */
.tax-product_cat ul.products li.product {
  background: var(--contrast-2, #0c0c0c);
  border: 1px solid var(--border-subtle, #1a1a1a);
  padding: 16px;
  transition: border-color 0.3s ease;
}

.tax-product_cat ul.products li.product:hover {
  border-color: var(--border-medium, #252525);
}

/* Single product page — breadcrumb top spacing */
.single-product .woocommerce-breadcrumb {
  padding-top: 12px;
}

/* WooCommerce pagination */
.woocommerce nav.woocommerce-pagination ul {
  border: none;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  color: var(--base-2, #8e8e8e);
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif);
  font-weight: 600;
  padding: 10px 16px;
  margin: 0 4px;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--contrast-2, #0c0c0c);
  border-color: var(--border-medium, #252525);
  color: var(--base, #e8e8e8);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--accent, #00ff88);
  border-color: var(--accent, #00ff88);
  color: var(--contrast, #070707);
}

/* WooCommerce notices / messages */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info {
  background: var(--contrast-3, #131313);
  border-top-color: var(--accent, #00ff88);
  color: var(--base, #e8e8e8);
}

.woocommerce .woocommerce-error {
  background: var(--contrast-3, #131313);
  border-top-color: var(--alert-red, #ff3344);
  color: var(--base, #e8e8e8);
}

.woocommerce .woocommerce-message::before {
  color: var(--accent, #00ff88);
}

.woocommerce .woocommerce-error::before {
  color: var(--alert-red, #ff3344);
}

/* ═══════════════════════════════════════════════════════════════
   TEMPLATE OVERRIDE FIXES — Product, Category, Cart
   ═══════════════════════════════════════════════════════════════ */
/* Single product: our template handles its own layout */
.single-product .inside-article,
.single-product .entry-content {
  max-width: 100%;
  padding: 0;
  width: 100%;
}

/* Override GP's WC image width setting — our template handles its own gallery */
.single-product .woocommerce-product-gallery,
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  width: 100%;
  max-width: 100%;
}

/* Product grid - ensure 50/50 split */
.tf-product {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  align-items: start !important;
  padding: 32px 0 80px !important;
}

/* Gallery image constraint */
.tf-gallery {
  position: sticky;
  top: 100px;
  max-width: 100%;
  overflow: hidden;
}

.tf-gallery-main {
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 1;
  background: var(--contrast-2, #0c0c0c);
  border: 1px solid var(--border-subtle, #1a1a1a);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tf-gallery-main img {
  max-width: 85% !important;
  max-height: 85% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Breadcrumb - brighter */
.tf-bread {
  color: var(--base-3, #6a6a6a) !important;
}
.tf-bread a {
  color: var(--base-3, #6a6a6a) !important;
}
.tf-bread a:hover {
  color: var(--accent, #00ff88) !important;
}
.tf-bread .sep {
  color: var(--base-subtle, #555) !important;
}

/* Category archive breadcrumb - also brighter */
.tf-cat-bread {
  color: var(--base-3, #6a6a6a) !important;
}
.tf-cat-bread a {
  color: var(--base-3, #6a6a6a) !important;
}

/* Category grid - handle fewer than 3 products gracefully */
.tf-products .products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
}

/* Related products - don't stretch single item to full width */
.tf-product-wrap .related ul.products,
.tf-product-wrap .upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
}

.tf-product-wrap .related ul.products li.product,
.tf-product-wrap .upsells ul.products li.product {
  margin: 0 !important;
  width: auto !important;
  float: none !important;
}

/* Cart page - premiere styling */
.woocommerce-cart .site-main {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 24px 48px 80px !important;
}

/* Cart table headers */
.woocommerce-cart .woocommerce table.cart th,
.woocommerce-cart .wc-block-cart .wp-block-woocommerce-cart-line-items-block th {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  background: var(--contrast-3, #131313) !important;
}

/* Cart product name */
.woocommerce-cart .woocommerce table.cart .product-name a {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  color: var(--accent, #00ff88) !important;
}

/* Cart totals box */
.woocommerce-cart .cart_totals {
  background: var(--contrast-3, #131313);
  border: 1px solid var(--border-subtle, #1a1a1a);
  padding: 24px;
}

.woocommerce-cart .cart_totals h2 {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  margin-bottom: 16px !important;
}

.woocommerce-cart .cart_totals table th {
  font-family: var(--gp-font--inter, sans-serif);
  color: var(--base-3, #6a6a6a);
}

.woocommerce-cart .cart_totals table td {
  font-family: var(--gp-font--barlow, sans-serif);
  color: var(--base, #e8e8e8);
}

.woocommerce-cart .cart_totals .order-total td {
  font-size: 24px;
  font-weight: 800;
  color: var(--white, #f5f5f5);
}

/* Checkout button in cart */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  background: #00ff88 !important;
  color: #070707 !important;
  border: 1px solid #00ff88 !important;
  border-radius: 0 !important;
  padding: 18px !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: transparent !important;
  color: #00ff88 !important;
}

@media (max-width: 768px) {
  .tf-product {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .tf-product-wrap {
    padding: 0 20px !important;
  }
  .tf-gallery {
    position: static !important;
  }
  .tf-product-wrap .related ul.products,
  .tf-product-wrap .upsells ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   WC BLOCK CART — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

/* Container */
.woocommerce-cart .site-main,
.woocommerce-cart .entry-content {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 24px 48px 80px !important;
}

/* Page title */
.woocommerce-cart .entry-header .entry-title,
.woocommerce-cart .wp-block-woocommerce-cart h2 {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 800 !important;
  color: var(--white, #f5f5f5) !important;
  letter-spacing: -1px !important;
}

/* Cart items table */
.wc-block-cart .wc-block-cart-items {
  border: 1px solid var(--border-subtle, #1a1a1a);
}

.wc-block-cart .wc-block-cart-items .wc-block-cart-items__row {
  border-bottom: 1px solid var(--border-subtle, #1a1a1a);
  padding: 20px;
}

/* Product name in cart */
.wc-block-cart .wc-block-components-product-name {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  color: var(--base, #e8e8e8) !important;
  text-decoration: none !important;
}

.wc-block-cart .wc-block-components-product-name:hover {
  color: var(--accent, #00ff88) !important;
}

/* Product metadata */
.wc-block-cart .wc-block-components-product-metadata {
  font-family: var(--gp-font--inter, sans-serif);
  color: var(--base-3, #6a6a6a);
}

/* Quantity selector */
.wc-block-cart .wc-block-components-quantity-selector {
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  border-radius: 0 !important;
}

.wc-block-cart .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  background: transparent !important;
  color: var(--base, #e8e8e8) !important;
  font-family: var(--gp-font--ibm-plex-mono, monospace) !important;
  border-radius: 0 !important;
}

.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  background: transparent !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
}

/* Price */
.wc-block-cart .wc-block-components-product-price {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 700 !important;
  color: var(--base, #e8e8e8) !important;
}

/* Remove link */
.wc-block-cart .wc-block-cart-item__remove-link {
  font-family: var(--gp-font--ibm-plex-mono, monospace) !important;
  font-size: 11px !important;
  color: var(--base-subtle, #555) !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

.wc-block-cart .wc-block-cart-item__remove-link:hover {
  color: var(--alert-red, #ff3344) !important;
}

/* Cart sidebar / totals */
.wc-block-cart .wc-block-cart__sidebar {
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
  padding: 24px;
}

.wc-block-cart .wc-block-components-totals-wrapper {
  border-color: var(--border-subtle, #1a1a1a) !important;
}

.wc-block-cart .wc-block-components-totals-item__label {
  font-family: var(--gp-font--inter, sans-serif) !important;
  color: var(--base-3, #6a6a6a) !important;
}

.wc-block-cart .wc-block-components-totals-item__value {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  color: var(--base, #e8e8e8) !important;
}

/* Cart total */
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--base, #e8e8e8) !important;
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: var(--white, #f5f5f5) !important;
}

/* Proceed to checkout button */
.wc-block-cart .wc-block-cart__submit-button,
.wc-block-cart .wc-block-components-checkout-place-order-button,
.wc-block-cart .wp-block-woocommerce-proceed-to-checkout-block a {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  background: #00ff88 !important;
  color: #070707 !important;
  border: 1px solid #00ff88 !important;
  border-radius: 0 !important;
  padding: 18px !important;
  transition: all 0.3s !important;
}

.wc-block-cart .wc-block-cart__submit-button:hover,
.wc-block-cart .wp-block-woocommerce-proceed-to-checkout-block a:hover {
  background: transparent !important;
  color: #00ff88 !important;
}

/* Coupon input */
.wc-block-cart .wc-block-components-totals-coupon__input .wc-block-components-text-input input {
  background: var(--contrast-2, #0c0c0c) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC BLOCK CHECKOUT — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

.woocommerce-checkout .site-main,
.woocommerce-checkout .entry-content {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 24px 48px 80px !important;
}

/* Section headings */
.wc-block-checkout .wc-block-components-checkout-step__title {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-3, #6a6a6a) !important;
}

/* Form inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox .components-combobox-control input,
.wc-block-checkout select {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  font-size: 14px !important;
}

.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input textarea:focus {
  border-color: var(--accent, #00ff88) !important;
  box-shadow: none !important;
}

/* Form labels */
.wc-block-checkout .wc-block-components-text-input label {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
}

/* Checkout sidebar */
.wc-block-checkout .wc-block-checkout__sidebar {
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
  padding: 24px;
}

/* Order summary items */
.wc-block-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  color: var(--base, #e8e8e8) !important;
}

/* Place order button */
.wc-block-checkout .wc-block-components-checkout-place-order-button {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  background: #00ff88 !important;
  color: #070707 !important;
  border: 1px solid #00ff88 !important;
  border-radius: 0 !important;
  padding: 18px 36px !important;
}

.wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
  background: transparent !important;
  color: #00ff88 !important;
}

/* Payment method labels */
.wc-block-checkout .wc-block-components-radio-control__label {
  font-family: var(--gp-font--inter, sans-serif) !important;
  color: var(--base, #e8e8e8) !important;
}

/* Shipping options */
.wc-block-checkout .wc-block-components-shipping-rates-control__package {
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  border-radius: 0 !important;
}

/* Checkout step separators */
.wc-block-checkout .wc-block-components-checkout-step {
  border-color: var(--border-subtle, #1a1a1a) !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC NOTICES — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

/* Block notices */
.wc-block-components-notice-banner {
  background: var(--contrast-3, #131313) !important;
  border-radius: 0 !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
}

.wc-block-components-notice-banner.is-success {
  border-left: 3px solid var(--accent, #00ff88) !important;
}

.wc-block-components-notice-banner.is-error {
  border-left: 3px solid var(--alert-red, #ff3344) !important;
}

.wc-block-components-notice-banner.is-info {
  border-left: 3px solid var(--tf-amber, #ffaa00) !important;
}

.wc-block-components-notice-banner svg {
  fill: var(--accent, #00ff88) !important;
}

.wc-block-components-notice-banner.is-error svg {
  fill: var(--alert-red, #ff3344) !important;
}

/* Classic notices (fallback) */
.woocommerce-message,
.woocommerce-info {
  background: var(--contrast-3, #131313) !important;
  border-top: none !important;
  border-left: 3px solid var(--accent, #00ff88) !important;
  color: var(--base, #e8e8e8) !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  border-radius: 0 !important;
  padding: 16px 20px 16px 20px !important;
}

.woocommerce-error {
  background: var(--contrast-3, #131313) !important;
  border-top: none !important;
  border-left: 3px solid var(--alert-red, #ff3344) !important;
  color: var(--base, #e8e8e8) !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  border-radius: 0 !important;
}

.woocommerce-message::before { color: var(--accent, #00ff88) !important; }
.woocommerce-info::before { color: var(--tf-amber, #ffaa00) !important; }
.woocommerce-error::before { color: var(--alert-red, #ff3344) !important; }

/* ═══════════════════════════════════════════════════════════════
   WC MY ACCOUNT — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

.woocommerce-account .site-main,
.woocommerce-account .entry-content {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 24px 48px 80px !important;
}

/* Account navigation */
.woocommerce-MyAccount-navigation {
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--border-subtle, #1a1a1a);
}

.woocommerce-MyAccount-navigation li:last-child {
  border-bottom: none;
}

.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 14px 20px 14px 28px !important;
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--base-3, #6a6a6a) !important;
  text-decoration: none !important;
  transition: all 0.3s;
}

.woocommerce-MyAccount-navigation li a:hover {
  color: var(--base, #e8e8e8) !important;
  background: var(--contrast-2, #0c0c0c);
}

.woocommerce-MyAccount-navigation li.is-active a {
  color: var(--accent, #00ff88) !important;
  border-left: 2px solid var(--accent, #00ff88);
  padding-left: 26px !important;
}

/* Prevent visited/current-page link from appearing white/bold */
.woocommerce-MyAccount-navigation li:not(.is-active) a,
.woocommerce-MyAccount-navigation li:not(.is-active) a:visited,
.woocommerce-MyAccount-navigation li:not(.is-active) a:active {
  color: var(--base-3, #6a6a6a) !important;
}

/* Account content */
.woocommerce-MyAccount-content {
  font-family: var(--gp-font--inter, sans-serif);
  color: var(--base-2, #8e8e8e);
  line-height: 1.7;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-family: var(--gp-font--barlow, sans-serif);
  color: var(--base, #e8e8e8);
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 16px;
}

/* Address page layout */
.woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-MyAccount-content .u-columns {
  display: flex !important;
  gap: 24px;
  flex-wrap: wrap;
}

.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address,
.woocommerce-MyAccount-content .u-columns .col-1,
.woocommerce-MyAccount-content .u-columns .col-2,
.woocommerce-MyAccount-content .woocommerce-column--billing-address,
.woocommerce-MyAccount-content .woocommerce-column--shipping-address {
  flex: 1 !important;
  min-width: 250px;
  width: auto !important;
  float: none !important;
  padding: 24px !important;
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
}

.woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  word-break: normal;
  overflow-wrap: normal;
}

/* Address column headers — fix massive inherited font size */
.woocommerce-MyAccount-content .col-1 h2,
.woocommerce-MyAccount-content .col-2 h2,
.woocommerce-MyAccount-content .col-1 h3,
.woocommerce-MyAccount-content .col-2 h3,
.woocommerce-column--billing-address h2,
.woocommerce-column--shipping-address h2,
.woocommerce-column--billing-address h3,
.woocommerce-column--shipping-address h3,
.woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base, #e8e8e8) !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  white-space: nowrap !important;
  margin-bottom: 16px !important;
}

/* "Add" links in address columns */
.woocommerce-MyAccount-content .woocommerce-Address-title a,
.woocommerce-MyAccount-content .col-1 a,
.woocommerce-MyAccount-content .col-2 a {
  font-family: var(--gp-font--barlow-condensed, sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent, #00ff88);
  text-decoration: none;
}

.woocommerce-MyAccount-content .woocommerce-Address-title a:hover,
.woocommerce-MyAccount-content .col-1 a:hover,
.woocommerce-MyAccount-content .col-2 a:hover {
  color: var(--accent-hover, #00e67a);
}

@media (max-width: 768px) {
  .woocommerce-MyAccount-content .woocommerce-Addresses,
  .woocommerce-MyAccount-content .u-columns {
    flex-direction: column;
  }
}

/* Payment methods trust notice */
.tf-payment-trust {
  margin-top: 32px;
  padding: 20px 24px;
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
}

.tf-payment-trust p {
  font-family: var(--gp-font--inter, sans-serif);
  font-size: 12px;
  color: var(--base-3, #6a6a6a);
  line-height: 1.8;
  margin: 0;
}

.tf-payment-trust a {
  color: var(--accent, #00ff88);
  text-decoration: none;
  font-weight: 600;
}

.tf-payment-trust a:hover {
  color: var(--accent-hover, #00e67a);
}

/* Login / Register forms */
.woocommerce-form-login,
.woocommerce-form-register {
  border: 1px solid var(--border-subtle, #1a1a1a);
  background: var(--contrast-3, #131313);
  padding: 32px;
}

.woocommerce-form-login label,
.woocommerce-form-register label {
  font-family: var(--gp-font--barlow-condensed, sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--base-3, #6a6a6a);
}

.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="password"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-register input[type="text"],
.woocommerce-form-register input[type="password"],
.woocommerce-form-register input[type="email"] {
  background: var(--contrast-2, #0c0c0c) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  padding: 12px 16px !important;
}

.woocommerce-form-login input[type="text"]:focus,
.woocommerce-form-login input[type="password"]:focus,
.woocommerce-form-register input[type="text"]:focus,
.woocommerce-form-register input[type="password"]:focus {
  border-color: var(--accent, #00ff88) !important;
  outline: none !important;
}

/* Order tables */
.woocommerce-orders-table,
.woocommerce-table--order-details {
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  border-collapse: collapse;
}

.woocommerce-orders-table th,
.woocommerce-table--order-details th {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  background: var(--contrast-3, #131313) !important;
  border-bottom: 1px solid var(--border-subtle, #1a1a1a) !important;
  padding: 14px 20px !important;
}

.woocommerce-orders-table td,
.woocommerce-table--order-details td {
  border-bottom: 1px solid var(--border-subtle, #1a1a1a) !important;
  padding: 16px 20px !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  color: var(--base-2, #8e8e8e) !important;
}

.woocommerce-orders-table td a,
.woocommerce-table--order-details td a {
  color: var(--accent, #00ff88) !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC ORDER RECEIVED / THANK YOU — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

.woocommerce-order-received .site-main,
.woocommerce-order-received .entry-content {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 24px 48px 80px !important;
}

.woocommerce-thankyou-order-received {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--accent, #00ff88) !important;
  padding: 32px !important;
  border: 1px solid rgba(0,255,136,0.2) !important;
  background: rgba(0,255,136,0.03) !important;
  text-align: center !important;
  margin-bottom: 32px !important;
}

.woocommerce-order-details {
  border: 1px solid var(--border-subtle, #1a1a1a);
  margin-bottom: 32px;
}

.woocommerce-order-details h2 {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  padding: 16px 20px !important;
  border-bottom: 1px solid var(--border-subtle, #1a1a1a) !important;
  background: var(--contrast-3, #131313) !important;
}

/* Customer details on thank you */
.woocommerce-customer-details {
  border: 1px solid var(--border-subtle, #1a1a1a);
  padding: 24px;
  background: var(--contrast-3, #131313);
}

.woocommerce-customer-details h2 {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
}

.woocommerce-customer-details address {
  font-family: var(--gp-font--inter, sans-serif);
  color: var(--base-2, #8e8e8e);
  line-height: 1.7;
  font-style: normal;
}

/* ═══════════════════════════════════════════════════════════════
   WC MINI CART — PREMIERE STYLING
   ═══════════════════════════════════════════════════════════════ */

.wc-block-mini-cart__drawer {
  background: var(--contrast, #070707) !important;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
  font-family: var(--gp-font--barlow-condensed, sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
}

.wc-block-mini-cart__drawer .wc-block-components-product-name {
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  color: var(--base, #e8e8e8) !important;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-mini-cart__footer-checkout {
  background: #00ff88 !important;
  color: #070707 !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--barlow, sans-serif) !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC GLOBAL — PREMIERE FORM ELEMENTS
   ═══════════════════════════════════════════════════════════════ */

/* All WC select elements */
.woocommerce select {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
  padding: 10px 14px !important;
}

/* All WC text inputs */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce textarea {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, sans-serif) !important;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
  border-color: var(--accent, #00ff88) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* All WC labels */
.woocommerce label {
  font-family: var(--gp-font--barlow-condensed, sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--base-3, #6a6a6a);
}

/* Loading spinner override */
.woocommerce .blockUI.blockOverlay::before,
.wc-block-components-spinner {
  border-color: var(--accent, #00ff88) transparent transparent !important;
}

   GREEN BUTTON HOVER — Ensure text visible on hover
   ═══════════════════════════════════════════════════════════════ */

/* Featured plan button hover on Underground page */
.plan.featured .plan-btn:hover {
  background: transparent !important;
  color: #00ff88 !important;
  border-color: #00ff88 !important;
}

/* All green buttons: ensure hover state has visible text */
.btn-green:hover,
.entry-content a.btn-green:hover,
a.btn-green:hover {
  background: transparent !important;
  color: #00ff88 !important;
  border-color: #00ff88 !important;
}

/* Shop page product cards - clickable */
.pcard {
  cursor: pointer !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC BLOCK CART — EMPTY STATE PREMIERE
   ═══════════════════════════════════════════════════════════════ */

/* Hide the default sad face emoji */
.wc-block-cart .wc-block-cart__empty-cart__image,
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__image {
  display: none !important;
}

/* Empty cart message */
.wc-block-cart .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block p,
.wc-block-cart__empty-cart__ p {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--base, #e8e8e8) !important;
  text-align: center !important;
  padding: 60px 20px 16px !important;
}

/* "New in store" heading */
.wc-block-cart h2,
.wp-block-woocommerce-empty-cart-block h2,
.woocommerce-cart .wp-block-heading {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-3, #6a6a6a) !important;
  text-align: center !important;
}

/* Product grid in empty cart */
.woocommerce-cart .wc-block-grid__products,
.woocommerce-cart .wp-block-woocommerce-product-new {
  max-width: 1200px !important;
  margin: 0 auto !important;
}

/* Product cards in empty cart grid */
.woocommerce-cart .wc-block-grid__product {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  padding: 16px !important;
  transition: border-color 0.3s !important;
}

.woocommerce-cart .wc-block-grid__product:hover {
  border-color: var(--accent, #00ff88) !important;
}

/* Product name in grid */
.woocommerce-cart .wc-block-grid__product-title {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--base, #e8e8e8) !important;
  text-decoration: none !important;
}

/* Product price in grid */
.woocommerce-cart .wc-block-grid__product-price {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-weight: 700 !important;
  color: var(--base, #e8e8e8) !important;
}

/* Add to cart button in grid */
.woocommerce-cart .wc-block-grid__product .wp-block-button__link,
.woocommerce-cart .wc-block-grid__product .add_to_cart_button {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  background: #00ff88 !important;
  color: #070707 !important;
  border: 1px solid #00ff88 !important;
  border-radius: 0 !important;
  padding: 12px 20px !important;
}

.woocommerce-cart .wc-block-grid__product .wp-block-button__link:hover,
.woocommerce-cart .wc-block-grid__product .add_to_cart_button:hover {
  background: transparent !important;
  color: #00ff88 !important;
}

/* Product images in cart grid - dark background treatment */
.woocommerce-cart .wc-block-grid__product-image {
  background: var(--contrast-2, #0c0c0c) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  margin-bottom: 12px !important;
}

/* Cart page loading dots */
.woocommerce-cart .wc-block-components-loading-mask {
  background: rgba(7,7,7,0.7) !important;
}

/* ═══════════════════════════════════════════════════════════════
   WC BLOCK CART — FILLED STATE REFINEMENTS
   ═══════════════════════════════════════════════════════════════ */

/* Cart page title area */
.woocommerce-cart .entry-title {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  color: var(--white, #f5f5f5) !important;
  letter-spacing: -1px !important;
}

/* Cart item images */
.wc-block-cart .wc-block-cart-item__image img {
  background: var(--contrast-2, #0c0c0c) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
}

/* Cross-sells heading */
.wc-block-cart .wp-block-heading,
.wp-block-woocommerce-cart-cross-sells-block h2 {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--base-3, #6a6a6a) !important;
}

/* ═══════════════════════════════════════════════════════════════
   MY ACCOUNT — ADDITIONAL PREMIERE SURFACES
   ═══════════════════════════════════════════════════════════════ */

/* Page title */
.woocommerce-account .entry-title,
.woocommerce-account .page-title {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  color: var(--white, #f5f5f5) !important;
  letter-spacing: -1px !important;
  margin-bottom: 32px !important;
}

/* All WC buttons on my-account pages */
.woocommerce-account .woocommerce-Button,
.woocommerce-account .button,
.woocommerce-account input[type="submit"],
.woocommerce-account button[type="submit"] {
  font-family: var(--gp-font--barlow, 'Barlow', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  background: #00ff88 !important;
  color: #070707 !important;
  border: 1px solid #00ff88 !important;
  border-radius: 0 !important;
  padding: 14px 32px !important;
  cursor: pointer !important;
  transition: all 0.3s !important;
}

.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account .button:hover,
.woocommerce-account input[type="submit"]:hover,
.woocommerce-account button[type="submit"]:hover {
  background: transparent !important;
  color: #00ff88 !important;
}

/* View order / smaller action buttons */
.woocommerce-account .woocommerce-orders-table .woocommerce-button {
  font-size: 10px !important;
  padding: 8px 16px !important;
  background: transparent !important;
  color: var(--accent, #00ff88) !important;
  border-color: var(--border-medium, #2a2a2a) !important;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-button:hover {
  border-color: var(--accent, #00ff88) !important;
}

/* Addresses section */
.woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1px !important;
  background: var(--border-subtle, #1a1a1a) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
}

.woocommerce-Address {
  background: var(--contrast-3, #131313) !important;
  padding: 28px !important;
}

.woocommerce-Address-title h3 {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--border-subtle, #1a1a1a) !important;
}

.woocommerce-Address-title a {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 10px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--accent, #00ff88) !important;
  text-decoration: none !important;
}

.woocommerce-Address address {
  font-family: var(--gp-font--inter, 'Inter', sans-serif) !important;
  font-style: normal !important;
  color: var(--base-2, #8e8e8e) !important;
  line-height: 1.8 !important;
  font-size: 14px !important;
}

/* No orders / empty state messages */
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-MyAccount-content > p:first-child {
  font-family: var(--gp-font--inter, 'Inter', sans-serif) !important;
  color: var(--base-2, #8e8e8e) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

/* Edit account form */
.woocommerce-EditAccountForm fieldset {
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  background: var(--contrast-3, #131313) !important;
  padding: 24px !important;
  margin: 24px 0 !important;
}

.woocommerce-EditAccountForm fieldset legend {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--base-subtle, #555) !important;
  padding: 0 8px !important;
}

.woocommerce-EditAccountForm label {
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--base-3, #6a6a6a) !important;
}

.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"] {
  background: var(--contrast-2, #0c0c0c) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base, #e8e8e8) !important;
  border-radius: 0 !important;
  font-family: var(--gp-font--inter, 'Inter', sans-serif) !important;
  padding: 12px 16px !important;
}

.woocommerce-EditAccountForm input:focus {
  border-color: var(--accent, #00ff88) !important;
  outline: none !important;
}

/* Dashboard welcome text */
.woocommerce-MyAccount-content > p a {
  color: var(--accent, #00ff88) !important;
  text-decoration: none !important;
}

.woocommerce-MyAccount-content > p a:hover {
  text-decoration: underline !important;
}

/* Downloads table */
.woocommerce-table--order-downloads {
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
}

/* Account navigation responsive */
@media (max-width: 768px) {
  .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
  }
  
  .woocommerce-account .site-main,
  .woocommerce-account .entry-content {
    padding: 24px 20px 60px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   FORCE FULL-WIDTH ON ALL WOOCOMMERCE PAGES
   ═══════════════════════════════════════════════════════════════ */

/* Sidebar safety net — PHP removes the sidebar action,
   but if any caching serves stale HTML, hide it */
#right-sidebar,
#left-sidebar {
  display: none;
}

/* ═══ GP LAYOUT SAFETY NET ═══
   The PHP filters in functions.php handle layout at the theme level:
   - generate_sidebar_layout → 'no-sidebar'
   - generate_content_width → '100'
   - body_class → adds 'full-width-content' and 'no-sidebar'
   - remove_action → removes sidebar constructor
   - generate_show_title → hides page/product titles

   The CSS below is a minimal safety net for edge cases where
   GP's cached output or template conditions don't respect the
   filters. This is the standard approach recommended by GP. */

/* Safety: full-width containers on all page types we control */
.no-sidebar .site-content,
.full-width-content .site-content,
.no-sidebar .inside-content,
.full-width-content .inside-content {
  display: block;
}

.no-sidebar .content-area,
.full-width-content .content-area,
.no-sidebar #primary,
.full-width-content #primary {
  width: 100%;
  max-width: 100%;
  float: none;
}

/* GP handles container width via Customizer. No overrides needed here. */

/* WC pages: templates handle their own max-width and padding */
.single-product .inside-article,
.single-product .entry-content,
.post-type-archive-product .inside-article,
.post-type-archive-product .entry-content,
.tax-product_cat .inside-article,
.tax-product_cat .entry-content {
  max-width: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
}

/* WC utility pages (cart, checkout, account) — contained width */
.woocommerce-cart .inside-article,
.woocommerce-checkout .inside-article,
.woocommerce-account .inside-article {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px;
}
@media (max-width: 768px) {
  .woocommerce-cart .inside-article,
  .woocommerce-checkout .inside-article,
  .woocommerce-account .inside-article {
    padding: 20px;
  }
}

/* Remaining WC page types are handled by:
   1. PHP: generate_sidebar_layout filter returns 'no-sidebar'
   2. PHP: body_class filter adds 'full-width-content'
   3. PHP: remove_action removes sidebar constructor
   4. CSS: global #right-sidebar, #left-sidebar { display: none }
   5. CSS: .no-sidebar / .full-width-content safety net above
   No additional per-page-type layout overrides needed. */

/* Outfit font — footer brand mark */
.tf-ft-brand-name {
  font-family: 'Outfit', var(--gp-font--barlow, sans-serif) !important;
  font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════════════════
   v1.5.9 FIXES
   ═══════════════════════════════════════════════════════════════ */

/* ─── 1. QUANTITY FIELD: styled container with label ─── */
/* Quantity wrapper: [ Quantity ] [ - ] [ 1 ] [ + ] all in one row */
.woocommerce div.product form.cart .quantity {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  margin-bottom: 16px;
}
.woocommerce div.product form.cart .quantity::before {
  content: "Qty";
  font-family: var(--gp-font--barlow-condensed, 'Barlow Condensed', sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--base-subtle, #555);
  margin-right: 14px;
  white-space: nowrap;
  flex-shrink: 0;
}
/* Force horizontal row for buttons-added wrapper */
.woocommerce div.product .quantity.buttons-added {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  display: flex !important;
  align-items: center !important;
}
.woocommerce div.product form.cart .quantity .qty {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  border-left: none !important;
  border-right: none !important;
  color: var(--base, #e8e8e8) !important;
  font-family: var(--gp-font--ibm-plex-mono, monospace) !important;
  font-size: 14px !important;
  border-radius: 0 !important;
  width: 48px !important;
  height: 40px !important;
  padding: 0 !important;
  text-align: center;
  -moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.woocommerce div.product form.cart .quantity .qty:focus {
  border-color: var(--border-medium, #252525) !important;
  outline: none;
}
/* GP Premium +/- buttons — flush with input */
.woocommerce div.product .quantity.buttons-added .minus,
.woocommerce div.product .quantity.buttons-added .plus {
  background: var(--contrast-3, #131313) !important;
  border: 1px solid var(--border-subtle, #1a1a1a) !important;
  color: var(--base-3, #6a6a6a) !important;
  border-radius: 0 !important;
  font-size: 16px !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.woocommerce div.product .quantity.buttons-added .plus {
  border-left: none !important;
}
.woocommerce div.product .quantity.buttons-added .minus {
  border-right: none !important;
}
.woocommerce div.product .quantity.buttons-added .minus:hover,
.woocommerce div.product .quantity.buttons-added .plus:hover {
  color: var(--base, #e8e8e8) !important;
  border-color: var(--border-medium, #252525) !important;
}
/* Underground members line — improved readability */
.specs-member {
  color: var(--base-3, #6a6a6a) !important;
}

/* ─── 2. SPEC/THREAT PANEL LABELS: lighter, more readable ─── */

/* Single product: Technical Specifications table */
.spec-key {
  color: var(--base-3, #6a6a6a) !important;
  font-size: 12px !important;
}

/* Category page: Threat Profile panel */
.tp-key {
  color: var(--base-3, #6a6a6a) !important;
  font-size: 11px !important;
}

/* Shop page: Collection mini threat panels */
.coll-panel-key {
  color: var(--base-3, #6a6a6a) !important;
  font-size: 10px !important;
}




/* ══════════════════════════════════════════
   DISPATCH POST COMPONENTS
   Used inside Custom HTML blocks on Posts
   ══════════════════════════════════════════ */

/* Hero */
.dispatch-hero{min-height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:140px 48px 60px}
.dispatch-hero .hero-tag{font-family:var(--tf-mono);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--base-subtle);margin-bottom:32px;opacity:0;animation:dispatchUp .7s ease .15s forwards}
.dispatch-hero h1{font-family:var(--tf-head);font-size:clamp(36px,5.5vw,56px);font-weight:900;color:var(--white);line-height:1;letter-spacing:-2px;margin-bottom:28px;max-width:800px;opacity:0;animation:dispatchUp .7s ease .3s forwards}
.dispatch-hero .hero-sub{font-family:var(--tf-text);font-size:17px;color:var(--base-3);line-height:1.8;max-width:620px;opacity:0;animation:dispatchUp .7s ease .45s forwards}
.dispatch-hero .hero-meta{font-family:var(--tf-mono);font-size:10px;letter-spacing:2px;color:var(--base-subtle);margin-top:24px;opacity:0;animation:dispatchUp .7s ease .6s forwards}
@keyframes dispatchUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* Layout containers */
.cx{max-width:720px;margin:0 auto;padding:0 48px}
.wide{max-width:1100px;margin:0 auto;padding:0 48px}

/* Prose — scoped to dispatches to avoid homepage/WTF conflicts */
.dispatch-prose{padding:60px 0}
.dispatch-prose h2{font-family:var(--tf-head);font-size:30px;font-weight:700;color:var(--base);letter-spacing:-.5px;margin-bottom:20px;line-height:1.1;margin-top:20px}
.dispatch-prose h3{font-family:var(--tf-head);font-size:20px;font-weight:600;color:var(--base);margin-bottom:14px;margin-top:36px}
.dispatch-prose p{font-family:var(--tf-text);font-size:16px;color:var(--base-2);line-height:1.9;margin-bottom:18px}
.dispatch-prose p strong{color:var(--base);font-weight:600}
.dispatch-prose p em{color:var(--base);font-style:italic}
.dispatch-prose a{color:var(--accent-hover);text-decoration:none;border-bottom:1px solid var(--tf-green-faint);transition:border-color .3s}
.dispatch-prose a:hover{border-color:var(--accent-hover)}

/* Case/signal box */
.case{border:1px solid var(--border-subtle);background:var(--contrast-3);margin:36px 0;padding:24px 28px}
.case p{font-family:var(--tf-text);font-size:15px;color:var(--base-2);line-height:1.8;margin-bottom:10px}
.case p:last-child{margin-bottom:0}
.case p strong{color:var(--base);font-weight:600}
.case a{color:var(--accent-hover);text-decoration:none;border-bottom:1px solid var(--tf-green-faint)}

/* Data table */
.data-table{border:1px solid var(--border-subtle);margin:36px 0;overflow:hidden}
.data-table-header{background:var(--contrast-2);padding:12px 20px;font-family:var(--tf-cond);font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--base-subtle);border-bottom:1px solid var(--border-subtle)}
.data-row{display:flex;border-bottom:1px solid var(--border-subtle)}
.data-row:last-child{border-bottom:none}
.data-key{width:140px;min-width:140px;padding:12px 16px;font-family:var(--tf-mono);font-size:12px;color:var(--accent-hover);background:rgba(255,255,255,.01);border-right:1px solid var(--border-subtle)}
.data-val{padding:12px 16px;flex:1;font-family:var(--tf-text);font-size:14px;color:var(--base-2);line-height:1.7}
.data-val strong{color:var(--base);font-weight:600}
.data-val .amp{color:var(--tf-amber)}
.data-val .att{color:var(--accent-hover)}

/* Pullquote */
.pullquote{border-left:2px solid var(--accent-hover);padding:14px 0 14px 24px;margin:40px 0;font-family:var(--tf-text);font-style:italic;font-size:18px;color:var(--base-3);line-height:1.7}

/* Post CTA block */
.post-cta{padding:60px 0 80px;text-align:center;border-top:1px solid var(--border-subtle);margin-top:40px}
.post-cta h2{font-family:var(--tf-head);font-size:26px;font-weight:700;color:var(--base);margin-bottom:12px}
.post-cta p{font-family:var(--tf-text);font-size:15px;color:var(--base-3);margin-bottom:28px;max-width:540px;margin-left:auto;margin-right:auto}
.cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn-o{font-family:var(--tf-head);font-size:14px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;padding:16px 36px;background:transparent;color:var(--base) !important;border:1px solid var(--border-medium);text-decoration:none;transition:all .3s}
.btn-o:hover{border-color:var(--base-3);color:var(--base) !important}

/* Match btn-p padding to btn-o in dispatch CTA rows */
.post-cta .btn-p {
  font-family: var(--gp-font--barlow, sans-serif);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 16px 36px;
  text-decoration: none;
  transition: all 0.3s;
  border: 1px solid #00ff88 !important;
}
.post-cta .btn-p:hover {
  background: transparent !important;
  color: #00ff88 !important;
  border: 1px solid var(--border-medium, #252525) !important;
}

/* Scroll reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}
.rv.vis{opacity:1;transform:translateY(0)}

/* Dispatch mobile */
@media (max-width: 700px) {
  .dispatch-hero{padding:120px 20px 50px}
  .cx,.wide{padding:0 20px}
  .data-key{width:100px;min-width:100px;font-size:10px}
  .cta-row{flex-direction:column;align-items:center}
}

/* ══════════════════════════════════════════
   DISPATCHES ARCHIVE & SINGLE POST
   ══════════════════════════════════════════ */

/* Hide default GP entry header on single posts (dispatch hero replaces it) */
.single-post .entry-header {
  display: none !important;
}

/* Hide default GP entry footer meta on single posts */
.single-post .entry-meta,
.single-post footer.entry-meta {
  display: none !important;
}

/* Zero out GP padding on posts like we do for pages */
.single-post .inside-article,
.single-post .site-main,
.single-post .content-area,
.blog .inside-article,
.blog .site-main,
.blog .content-area {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Archive page — post list */
.blog .site-main article,
.archive .site-main article {
  border-bottom: 1px solid var(--border-subtle);
  padding: 48px;
  margin: 0;
}
.blog .site-main article:last-child,
.archive .site-main article:last-child {
  border-bottom: none;
}

/* Archive — entry title */
.blog .entry-title a,
.archive .entry-title a {
  font-family: var(--tf-head, var(--gp-font--barlow));
  font-size: 28px;
  font-weight: 700;
  color: var(--base) !important;
  letter-spacing: -0.5px;
  line-height: 1.15;
  text-decoration: none;
  transition: color 0.2s;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover {
  color: var(--accent) !important;
}

/* Archive — meta line */
.blog .entry-meta,
.archive .entry-meta {
  font-family: var(--tf-mono, var(--gp-font--ibm-plex-mono));
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--base-subtle) !important;
  margin-top: 8px;
}
.blog .entry-meta a,
.archive .entry-meta a {
  color: var(--base-subtle) !important;
  text-decoration: none;
}
.blog .entry-meta a:hover,
.archive .entry-meta a:hover {
  color: var(--accent) !important;
}

/* Archive — excerpt */
.blog .entry-summary,
.archive .entry-summary {
  font-family: var(--tf-text, var(--gp-font--inter));
  font-size: 15px;
  color: var(--base-3);
  line-height: 1.7;
  margin-top: 14px;
  max-width: 680px;
}
.blog .entry-summary a.read-more,
.archive .entry-summary a.read-more {
  font-family: var(--tf-cond, var(--gp-font--barlow-condensed));
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent-hover) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--tf-green-faint, rgba(0,255,136,0.15));
  transition: border-color 0.3s;
}
.blog .entry-summary a.read-more:hover,
.archive .entry-summary a.read-more:hover {
  border-color: var(--accent-hover);
}

/* Archive — hide category footer on list view */
.blog article footer.entry-meta,
.archive article footer.entry-meta {
  display: none;
}

/* Archive — responsive */
@media (max-width: 768px) {
  .blog .site-main article,
  .archive .site-main article {
    padding: 32px 20px;
  }
}

/* ═══ DISPATCHES ARCHIVE REFINEMENTS ═══ */

/* Hide author byline on archive — dispatches are institutional */
.blog .entry-meta .byline,
.archive .entry-meta .byline {
  display: none;
}

/* Blog/archive page header */
.blog .page-header,
.archive .page-header {
  padding: 100px 48px 40px;
  text-align: center;
}
.blog .page-header h1,
.archive .page-header h1 {
  font-family: var(--gp-font--barlow, sans-serif);
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 900;
  color: var(--white);
  letter-spacing: -2px;
}

/* Archive page header responsive */
@media (max-width: 768px) {
  .blog .page-header,
  .archive .page-header {
    padding: 80px 20px 32px;
  }
}
