/*
Theme Name: EuroSpec
Theme URI: https://eurospecau.com
Template: astra
Author: EuroSpec
Author URI: https://eurospecau.com
Description: EuroSpec — BMW performance parts store. Custom Astra child theme.
Version: 2.2.0
License: GNU General Public License v2 or later
Text Domain: eurospec
*/

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,600;0,800;0,900;1,800;1,900&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap');

:root {
  --bg: #0a0a0a;
  --bg-2: #1a1a1a;
  --bg-3: #222222;
  --line: #2a2a2a;
  --text: #e8e8e8;
  --muted: #888888;
  --accent: #c8102e;
  --accent-2: #e8203f;
  --silver: #d4d8de;
  --display: 'Barlow Condensed', Impact, sans-serif;
  --body: 'Barlow', 'Inter', sans-serif;
}

* { box-sizing: border-box; }
html, body { background: var(--bg) !important; color: var(--text) !important; font-family: var(--body) !important; font-weight: 400 !important; line-height: 1.55 !important; overflow-x: hidden; margin: 0; padding: 0; }

/* Strip Astra defaults */
.site, #page, #content, .site-content, .ast-container, .entry-content, .ast-container-fluid {
  background: var(--bg) !important; color: var(--text) !important; max-width: none !important; padding: 0 !important; margin: 0 auto !important;
}
.site-header, .ast-primary-header-bar, .main-header-bar-wrap, .ast-secondary-header-section, .ast-below-header, .ast-above-header, .ast-mobile-header-wrap, .ast-builder-grid-row, .ast-header-break-point .main-header-bar, body > .ast-footer-overlay, .ast-footer-copyright, body > footer.site-footer:not(.es-footer), .ast-archive-description, header.entry-header, .ast-archive-title { display: none !important; }
.page-id-17 .entry-header, .home .entry-header { display: none !important; }
a { color: inherit; text-decoration: none; transition: color 0.15s ease; }
a:hover { color: var(--accent); }
img { display: block; max-width: 100%; height: auto; }

h1, h2, h3, h4, h5, h6 { color: var(--text); font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: 0.005em; line-height: 0.95; margin: 0 0 0.5em; }
p { color: var(--text); margin: 0 0 1em; }

/* Top stripe — silver */
.es-stripe { height: 3px; background: linear-gradient(90deg, #6a6e76 0%, #d4d8de 30%, #f4f6fa 50%, #d4d8de 70%, #6a6e76 100%); }
.es-utility { background: #000; color: var(--accent); text-align: center; padding: 10px; font-size: 11px; letter-spacing: 0.22em; font-weight: 800; text-transform: uppercase; font-family: var(--body); }

/* Header */
.es-header { background: var(--bg); position: sticky; top: 32px; z-index: 100; border-bottom: 1px solid var(--line); }
body:not(.logged-in) .es-header { top: 0; }
.es-header-inner { max-width: 1400px; margin: 0 auto; padding: 22px 40px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 40px; }
.es-logo { font-family: var(--display); font-style: italic; font-size: 40px; font-weight: 900; letter-spacing: 0.005em; line-height: 1; transform: skewX(-8deg); display: inline-block; color: var(--text) !important; }
.es-logo:hover { color: var(--text) !important; }
.es-logo .acc { color: var(--accent); }
.es-logo img { max-height: 56px; width: auto; display: inline-block; }
.es-nav ul { display: flex; gap: 48px; list-style: none; margin: 0; padding: 0; }
.es-nav li { margin: 0; }
.es-nav a { font-family: var(--display); font-style: italic; font-size: 17px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; padding-bottom: 8px; position: relative; transform: skewX(-6deg); display: inline-block; color: var(--text) !important; }
.es-nav a span { display: inline-block; transform: skewX(6deg); }
.es-nav a:hover, .es-nav .current-menu-item > a { color: var(--accent) !important; }
.es-nav .current-menu-item > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--accent); }
.es-header-right { display: flex; justify-content: flex-end; align-items: center; gap: 26px; }
.es-icon { display: inline-flex; align-items: center; gap: 8px; font-family: var(--display); font-style: italic; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; font-size: 14px; transform: skewX(-6deg); color: var(--text) !important; }
.es-icon span { display: inline-block; transform: skewX(6deg); }
.es-icon svg { width: 22px; height: 22px; }
.es-cart-count { background: var(--accent); color: #fff; font-size: 11px; padding: 2px 7px; border-radius: 999px; font-style: normal; transform: skewX(8deg); }

/* Buttons */
.es-btn, .wp-block-button__link, button, input[type=submit] { display: inline-flex; align-items: center; justify-content: center; background: var(--accent) !important; color: #fff !important; font-family: var(--display) !important; font-weight: 800 !important; font-style: italic !important; font-size: 16px !important; letter-spacing: 0.14em !important; padding: 16px 30px !important; text-transform: uppercase !important; transform: skewX(-8deg); transition: all .15s; cursor: pointer; border: none !important; border-radius: 0 !important; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 100%, 14px 100%); text-decoration: none !important; line-height: 1 !important; }
.es-btn span { display: inline-block; transform: skewX(8deg); }
.es-btn:hover, .wp-block-button__link:hover, button:hover { background: var(--accent-2) !important; color: #fff !important; }
.es-btn--outline { background: transparent !important; color: #fff !important; border: 2px solid #fff !important; }
.es-btn--outline:hover { background: #fff !important; color: #000 !important; }
.es-btn--red-outline { background: transparent !important; color: var(--accent) !important; border: 2px solid var(--accent) !important; }
.es-btn--red-outline:hover { background: var(--accent) !important; color: #fff !important; }

/* Marquee */
.es-marquee { background: rgba(0,0,0,0.85); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 15px 0; overflow: hidden; }
.es-marquee-track { display: flex; gap: 56px; white-space: nowrap; animation: es-scroll 30s linear infinite; font-family: var(--display); font-style: italic; font-weight: 700; font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase; padding-left: 40px; width: max-content; color: var(--text); }
.es-marquee-track .dot { color: var(--accent); margin: 0 28px; }
@keyframes es-scroll { to { transform: translateX(-50%); } }

/* Hero (homepage) */
.es-hero { position: relative; min-height: 92vh; background-size: cover; background-position: center; display: flex; align-items: flex-end; overflow: hidden; }
.es-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.75) 35%, rgba(0,0,0,0.35) 65%, rgba(0,0,0,0.15) 100%), linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.8) 100%); z-index: 1; }
.es-hero::after { content: ''; position: absolute; top: -5%; left: 70%; width: 3px; height: 110%; background: var(--accent); opacity: 0.7; transform: skewX(-12deg); z-index: 2; box-shadow: 0 0 20px rgba(200,16,46,0.6); }
.es-hero-inner { position: relative; z-index: 3; max-width: 1400px; width: 100%; margin: 0 auto; padding: 80px 40px 90px; }
.es-hero-tag { display: inline-block; background: var(--accent); color: #fff; font-family: var(--display); font-weight: 800; font-style: italic; font-size: 14px; padding: 9px 20px; letter-spacing: 0.18em; transform: skewX(-8deg); margin-bottom: 28px; }
.es-hero-tag span { display: inline-block; transform: skewX(8deg); }
.es-hero h1 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(4rem, 11.5vw, 11rem); line-height: 0.84; letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-6deg); margin: 0 0 40px; color: #fff; }
.es-hero-stats { display: flex; gap: 48px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,0.2); border-bottom: 1px solid rgba(255,255,255,0.2); margin-bottom: 36px; }
.es-hero-stat .v { font-family: var(--display); font-size: 38px; font-weight: 900; font-style: italic; line-height: 1; color: var(--accent); transform: skewX(-6deg); display: inline-block; }
.es-hero-stat .l { font-family: var(--display); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #fff; margin-top: 6px; font-weight: 700; }
.es-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* Page banner (smaller hero for sub-pages) */
.es-page-banner { position: relative; padding: 90px 40px 100px; background: var(--bg); border-bottom: 1px solid var(--line); overflow: hidden; text-align: center; }
.es-page-banner::after { content: ''; position: absolute; top: -10%; left: 78%; width: 3px; height: 120%; background: var(--accent); opacity: 0.6; transform: skewX(-12deg); box-shadow: 0 0 18px rgba(200,16,46,0.6); }
.es-page-banner-inner { max-width: 1100px; margin: 0 auto; position: relative; z-index: 2; }
.es-page-banner .es-eyebrow { justify-content: center; }
.es-page-banner h1 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(3rem, 8vw, 6.5rem); line-height: 0.95; letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-6deg); }
.es-page-banner h1 .acc { color: var(--accent); }
.es-page-banner p { color: var(--muted); font-style: italic; font-size: 17px; max-width: 540px; margin: 22px auto 0; }

/* Sections */
.es-section { padding: 120px 40px; background: var(--bg); }
.es-section-inner { max-width: 1400px; margin: 0 auto; }
.es-section-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 60px; flex-wrap: wrap; gap: 30px; }
.es-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin-bottom: 12px; }
.es-eyebrow::before { content: ''; display: inline-block; width: 36px; height: 2px; background: var(--accent); }
.es-section h2, h2.es-h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(3rem, 6vw, 6rem); letter-spacing: -0.005em; line-height: 0.95; text-transform: uppercase; transform: skewX(-6deg); color: var(--text); }
.es-section h2 .acc, h2.es-h2 .acc { color: var(--accent); }

/* Product grid (Popular Parts on home) */
.es-products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.es-product-card { background: var(--bg-2); border-top: 3px solid var(--accent); position: relative; transition: transform .2s; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); display: block; }
.es-product-card:hover { transform: translateY(-4px); }
.es-product-card .corner { position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 30px 30px 0; border-color: transparent var(--bg) transparent transparent; }
/* === HOME "POPULAR PARTS" CARD IMAGE — LOCKED 2026-05-30, matches shop card === */
.es-product-card .img {
  aspect-ratio: 1/1;
  background: transparent !important;
  display: block !important;
  padding: 0 !important;
  position: relative !important;
  overflow: hidden !important;
}
.es-product-card .img img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important; max-height: none !important;
  margin: 0 !important;
  position: absolute !important; inset: 0 !important;
}
/* === END LOCKED BLOCK === */

/* === BACK-IN-STOCK NOTIFY FORM (single product page — light theme) === */
.es-bis-form { background: #f6f6f6; border-top: 3px solid var(--accent); padding: 26px 24px; margin: 24px 0; clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 0 100%); }
.es-bis-form h3 { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase; margin: 0 0 8px; color: var(--accent); transform: skewX(-4deg); }
.es-bis-form p { color: #555; font-size: 13px; line-height: 1.55; margin: 0 0 16px; }
.es-bis-form-inner { display: flex; gap: 0; align-items: stretch; flex-wrap: wrap; }
.es-bis-form-inner input[type="email"] { flex: 1; min-width: 200px; background: #fff; border: 1px solid #ddd; color: #111; padding: 12px 14px; font-family: var(--body); font-size: 14px; outline: none; }
.es-bis-form-inner input[type="email"]:focus { border-color: var(--accent); }
.es-bis-form-inner input[type="email"]::placeholder { color: #999; }
.es-bis-form-inner button { background: var(--accent); border: none; color: #fff; padding: 12px 24px; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; cursor: pointer; clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%); transition: opacity .2s; }
.es-bis-form-inner button:hover { opacity: 0.9; }
.es-bis-form-inner button[disabled] { opacity: 0.5; cursor: wait; }
.es-bis-msg { margin-top: 12px; font-size: 13px; min-height: 18px; font-family: var(--display); font-style: italic; letter-spacing: 0.05em; }
.es-bis-msg--ok { color: #15803d; }
.es-bis-msg--err { color: #b91c1c; }
/* === END BIS FORM === */

/* === SINGLE PRODUCT — TRUST STRIP === */
.es-trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 20px 0 0; padding: 20px 0 0; border-top: 1px solid #eee; }
.es-trust-item { display: flex; align-items: flex-start; gap: 10px; }
.es-trust-item svg { width: 24px; height: 24px; color: var(--accent); flex-shrink: 0; margin-top: 2px; }
.es-trust-item strong { display: block; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 13px; letter-spacing: 0.08em; color: #111; text-transform: uppercase; line-height: 1.1; }
.es-trust-item span { display: block; font-size: 11px; color: #777; margin-top: 2px; }
@media (max-width: 600px) { .es-trust-strip { grid-template-columns: 1fr; gap: 12px; } }

/* === SINGLE PRODUCT — "WILL IT FIT" CHASSIS GRID === */
.es-fitment { background: #fafafa; padding: 80px 40px; margin: 80px 0 0; border-top: 1px solid #eee; }
.es-fitment-inner { max-width: 1200px; margin: 0 auto; }
.es-fitment-head { text-align: center; max-width: 720px; margin: 0 auto 50px; }
.es-fitment-head .es-eyebrow { justify-content: center; }
.es-fitment-head h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(36px, 5vw, 56px); line-height: 1; letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-5deg); color: #111; margin: 14px 0 18px; }
.es-fitment-head h2 .acc { color: var(--accent); }
.es-fitment-head p { color: #555; font-size: 15px; line-height: 1.65; }
.es-fitment-head p a { color: var(--accent); text-decoration: underline; }
.es-chassis-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.es-chassis-tile { background: #fff; border: 1px solid #eee; padding: 22px 20px; transition: all .15s; border-top: 3px solid #eee; }
.es-chassis-tile:hover { border-top-color: var(--accent); transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,0.05); }
.es-chassis-tile .code { font-family: var(--display); font-style: italic; font-weight: 900; font-size: 26px; color: var(--accent); line-height: 1; transform: skewX(-4deg); margin-bottom: 8px; letter-spacing: -0.005em; }
.es-chassis-tile .models { color: #222; font-size: 14px; line-height: 1.45; font-weight: 500; }
.es-chassis-tile .years { font-family: var(--display); font-style: italic; font-weight: 700; font-size: 11px; letter-spacing: 0.18em; color: #888; text-transform: uppercase; margin-top: 8px; }
@media (max-width: 900px) { .es-chassis-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .es-chassis-grid { grid-template-columns: 1fr; } }
/* === END FITMENT === */

/* === SINGLE PRODUCT — TAGLINE (under title) === */
.es-product-tagline { color: #444; font-family: var(--display); font-style: italic; font-weight: 600; font-size: 16px; line-height: 1.45; letter-spacing: 0.005em; margin: -8px 0 18px; max-width: 540px; }

/* === SINGLE PRODUCT — STOCK BADGE (replaces default) === */
body.es-product-page .stock { display: none !important; }
.es-stock-badge { display: inline-flex; align-items: center; gap: 9px; padding: 9px 16px 9px 14px; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; margin: 14px 0 18px; clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 100%, 8px 100%); transform: skewX(-6deg); }
.es-stock-badge > * { transform: skewX(6deg); }
.es-stock-badge .dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.es-stock-badge--in { background: #dcfce7; color: #15803d; }
.es-stock-badge--in .dot { background: #15803d; box-shadow: 0 0 0 0 rgba(21,128,61,0.5); animation: es-pulse 1.6s infinite; }
.es-stock-badge--in .sub { color: #15803d; font-weight: 600; letter-spacing: 0.04em; opacity: 0.85; }
.es-stock-badge--out { background: #fee2e2; color: #b91c1c; }
.es-stock-badge--out .dot { background: #b91c1c; }
.es-stock-badge--out .sub { color: #b91c1c; font-weight: 600; letter-spacing: 0.04em; opacity: 0.85; }
@keyframes es-pulse { 0% { box-shadow: 0 0 0 0 rgba(21,128,61,0.5);} 70% { box-shadow: 0 0 0 8px rgba(21,128,61,0);} 100% { box-shadow: 0 0 0 0 rgba(21,128,61,0);} }

/* === SINGLE PRODUCT — SPEC SHEET (matches Fitment section style) === */
.es-specs { background: #fff; padding: 80px 40px; border-top: 1px solid #eee; }
.es-specs-inner { max-width: 900px; margin: 0 auto; }
.es-specs-head { text-align: center; margin-bottom: 50px; }
.es-specs-head .es-eyebrow { justify-content: center; }
.es-specs-head h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(36px, 5vw, 56px); line-height: 1; text-transform: uppercase; transform: skewX(-5deg); color: #111; margin-top: 14px; letter-spacing: -0.005em; }
.es-specs-head h2 .acc { color: var(--accent); }
.es-specs-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #eee; border-top: 3px solid var(--accent); }
.es-specs-table th, .es-specs-table td { padding: 18px 24px; text-align: left; border-bottom: 1px solid #f0f0f0; font-size: 14px; vertical-align: top; }
.es-specs-table tr:last-child th, .es-specs-table tr:last-child td { border-bottom: none; }
.es-specs-table th { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: #777; width: 220px; background: #fafafa; }
.es-specs-table td { color: #111; font-weight: 500; line-height: 1.55; }
@media (max-width: 640px) {
  .es-specs-table th, .es-specs-table td { display: block; width: 100%; padding: 12px 18px; }
  .es-specs-table th { background: #fafafa; border-bottom: none; padding-bottom: 4px; }
  .es-specs-table td { padding-top: 0; padding-bottom: 16px; }
}
/* === END SPECS === */

/* === RED REVIEW STARS (overrides default WC gold) === */
.woocommerce .star-rating,
.woocommerce .star-rating::before,
.woocommerce .star-rating span,
.woocommerce .star-rating span::before,
.woocommerce-product-rating .star-rating,
.woocommerce-product-rating .star-rating::before,
.woocommerce-product-rating .star-rating span::before,
.woocommerce p.stars a,
.woocommerce p.stars a::before,
.comment-form-rating .stars a,
.comment-form-rating .stars a::before {
  color: var(--accent) !important;
}

/* === HIDE ASTRA'S "AVAILABILITY:" LABEL (we render our own badge inside) === */
body.es-product-page .ast-stock-avail { display: none !important; }
body.es-product-page .ast-stock-detail { margin: 18px 0 !important; padding: 0 !important; }
body.es-product-page .ast-stock-detail .stock { display: block !important; }

/* === TOP-AREA TEXT DIVIDERS (subtle separators in the summary) === */
/* Below the title — above the rating */
body.es-product-page .product_title { padding-bottom: 18px; border-bottom: 1px solid #eee; margin-bottom: 18px !important; }
/* Above the price — separates rating area from price */
body.es-product-page .woocommerce-product-rating { padding-bottom: 14px; border-bottom: 1px solid #eee; margin-bottom: 18px !important; }
/* Above the short description — separates price/stock area from copy */
body.es-product-page .woocommerce-product-details__short-description { padding-top: 18px; border-top: 1px solid #eee; margin-top: 22px; }
/* Trust strip already has a top border (keep) */
body.es-product-page .es-trust-strip { border-top: 1px solid #eee; margin-top: 24px; padding-top: 22px; }
/* === END TOP DIVIDERS === */

/* === AFTERPAY BNPL BADGE (under price) === */
.es-bnpl { display: inline-flex; align-items: center; gap: 8px; margin: 10px 0 4px; font-size: 13px; color: #444; line-height: 1.3; flex-wrap: wrap; }
.es-bnpl-text { font-family: var(--body); }
.es-bnpl-text strong { color: #111; font-weight: 700; }
.es-bnpl-logo { display: inline-flex; align-items: center; background: #B2FCE4; color: #000; padding: 3px 10px 4px; border-radius: 6px; font-weight: 800; }
.es-bnpl-logo .es-ap-text { font-family: 'Helvetica Neue', Arial, sans-serif; font-style: normal; font-size: 13px; letter-spacing: -0.02em; line-height: 1; }
.es-bnpl-info { color: #999; font-size: 13px; cursor: help; }

/* === STICKY MOBILE/DESKTOP BUY BAR === */
.es-sticky-buybar { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid #eee; box-shadow: 0 -8px 24px rgba(0,0,0,0.08); padding: 12px 16px; z-index: 999; display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: center; transform: translateY(110%); transition: transform .25s ease-out; pointer-events: none; }
.es-sticky-buybar.visible { transform: translateY(0); pointer-events: auto; }
.es-sticky-thumb { width: 56px; height: 56px; background: #f6f6f6; overflow: hidden; flex-shrink: 0; }
.es-sticky-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.es-sticky-meta { min-width: 0; overflow: hidden; }
.es-sticky-name { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 14px; color: #111; line-height: 1.15; letter-spacing: -0.005em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.es-sticky-price { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 16px; color: #111; margin-top: 3px; }
.es-sticky-price .es-bnpl { display: none; } /* hide BNPL in compact bar */
.es-sticky-price del { color: #aaa; font-weight: 500; margin-right: 6px; font-size: 13px; }
.es-sticky-btn { background: var(--accent); border: none; color: #fff; font-family: var(--display); font-style: italic; font-weight: 900; font-size: 13px; letter-spacing: 0.16em; padding: 13px 22px; text-transform: uppercase; cursor: pointer; clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%); transition: opacity .15s; }
.es-sticky-btn:hover { opacity: 0.9; }
.es-sticky-btn--oos { background: #111; }

/* "Flash" the real add-to-cart button when the sticky bar's button is clicked */
@keyframes es-flash-anim { 0%,100% { box-shadow: 0 0 0 0 rgba(200,16,46,0); } 50% { box-shadow: 0 0 0 8px rgba(200,16,46,0.5); } }
.es-flash { animation: es-flash-anim 1.2s ease-in-out 1; }

/* Mobile tuning */
@media (max-width: 600px) {
  .es-sticky-buybar { grid-template-columns: 44px 1fr auto; gap: 10px; padding: 10px 12px; }
  .es-sticky-thumb { width: 44px; height: 44px; }
  .es-sticky-name { font-size: 12px; }
  .es-sticky-price { font-size: 14px; }
  .es-sticky-btn { padding: 11px 16px; font-size: 12px; }
}
/* Hide sticky bar on desktop — original buy panel is always visible there */
@media (min-width: 1024px) { .es-sticky-buybar { display: none !important; } }
/* === END STICKY BAR === */

/* === CART PAGE STYLE FIXES === */

/* "Added to cart" notification bar — black bg, white text, red button.
 * MAX specificity to beat Astra/WC defaults. JS fallback also in functions.php. */
html body .woocommerce-message,
html body div.woocommerce-message,
html body .woocommerce .woocommerce-message,
html body .woocommerce-notices-wrapper .woocommerce-message,
html body .woocommerce-info,
html body div.woocommerce-info,
html body .woocommerce .woocommerce-info,
html body .wc-block-components-notice-banner,
html body .wc-block-components-notice-banner.is-success,
html body .wc-block-components-notice-banner.is-info,
html body .wp-block-woocommerce-store-notices .wc-block-components-notice-banner {
  background: #0a0a0a !important;
  background-color: #0a0a0a !important;
  color: #fff !important;
  border: none !important;
  border-left: 4px solid var(--accent) !important;
  border-radius: 0 !important;
  padding: 18px 22px 18px 62px !important;
  font-family: var(--body) !important;
  font-size: 14px !important;
  position: relative !important;
}
html body .woocommerce-message::before,
html body div.woocommerce-message::before,
html body .woocommerce-info::before {
  color: var(--accent) !important;
  position: absolute !important;
  left: 22px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 20px !important;
  margin: 0 !important;
}
html body .wc-block-components-notice-banner > svg { margin-right: 18px !important; flex-shrink: 0 !important; }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--accent) !important; }
.woocommerce-message a,
.woocommerce-info a { color: #fff !important; text-decoration: underline !important; text-decoration-color: var(--accent) !important; }
.woocommerce-message .button,
.woocommerce-info .button {
  background: var(--accent) !important;
  color: #000 !important;
  border: none !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 10px 22px !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.woocommerce-message .button *,
.woocommerce-info .button * { color: #000 !important; }
/* Spacing between the tick icon and the message text */
.woocommerce-message,
.woocommerce-info { padding-left: 56px !important; position: relative; }
.woocommerce-message::before,
.woocommerce-info::before { left: 18px !important; top: 50% !important; transform: translateY(-50%) !important; font-size: 18px !important; }
.woocommerce-message .button:hover,
.woocommerce-info .button:hover { background: var(--accent-2) !important; }

/* Proceed to Checkout button — red bg, black text per request */
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart a.checkout-button,
body.woocommerce-cart .checkout-button {
  background: var(--accent) !important;
  color: #000 !important;
  border: none !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 900 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: none !important;
  padding: 18px 28px !important;
  clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--accent-2) !important; color: #000 !important; }

/* Remove red underlines on cart product name links */
.woocommerce-cart .product-name a,
.woocommerce-cart .cart_item .product-name a,
.woocommerce-cart table.shop_table td.product-name a {
  text-decoration: none !important;
  border-bottom: none !important;
  color: #111 !important;
  font-family: var(--display);
  font-style: italic;
  font-weight: 700;
}
.woocommerce-cart .product-name a:hover { color: var(--accent) !important; }

/* Cleaner quantity controls — kill the busy red blocks */
.woocommerce-cart .quantity { display: inline-flex !important; align-items: stretch !important; }
.woocommerce-cart .quantity input.qty {
  background: #fff !important;
  border: 1px solid #ddd !important;
  color: #111 !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  font-size: 16px !important;
  padding: 8px 4px !important;
  width: 64px !important;
  height: 42px !important;
  text-align: center !important;
  outline: none !important;
  -moz-appearance: textfield;
}
.woocommerce-cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce-cart .quantity input.qty:focus { border-color: var(--accent) !important; }

/* Astra quantity steppers (the +/- buttons that show) */
.woocommerce-cart .ast-qty-plus,
.woocommerce-cart .ast-qty-minus,
.woocommerce-cart .ast-qty-button {
  background: #fff !important;
  border: 1px solid #ddd !important;
  color: #111 !important;
  width: 32px !important;
  height: 42px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  border-radius: 0 !important;
}
.woocommerce-cart .ast-qty-plus:hover,
.woocommerce-cart .ast-qty-minus:hover { background: var(--accent) !important; color: #fff !important; border-color: var(--accent) !important; }

/* Cleaner bin icon (remove item) */
.woocommerce-cart .product-remove a,
.woocommerce-cart a.remove {
  background: transparent !important;
  color: #999 !important;
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  width: 36px !important;
  height: 36px !important;
  line-height: 32px !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  text-align: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all .15s !important;
}
.woocommerce-cart .product-remove a:hover,
.woocommerce-cart a.remove:hover {
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}

/* Strip generic red underlines that might affect the cart/checkout button text */
.woocommerce-cart a,
.woocommerce-cart .checkout-button { border-bottom: none !important; }

/* === END CART FIXES === */

/* === BLOCK-BASED CART STYLING (dark theme, brand fonts) === */

/* "Added to cart" notice banner (block) */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning {
  background: #0a0a0a !important;
  color: #fff !important;
  border: none !important;
  border-left: 4px solid var(--accent) !important;
  border-radius: 0 !important;
  padding: 16px 20px !important;
}
.wc-block-components-notice-banner__content,
.wc-block-components-notice-banner .wc-block-components-notice-banner__content { color: #fff !important; }
.wc-block-components-notice-banner svg { fill: var(--accent) !important; }
.wc-block-components-notice-banner a,
.wc-block-components-notice-banner button {
  background: var(--accent) !important;
  color: #000 !important;
  border: none !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 10px 20px !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.wc-block-components-notice-banner a *,
.wc-block-components-notice-banner button * { color: #000 !important; }
/* Tick-to-text spacing on block notice */
.wc-block-components-notice-banner svg { margin-right: 16px !important; }
.wc-block-components-notice-banner__content { padding-left: 4px !important; }

/* Product name in cart — kill red underline, use white display italic */
.wc-block-cart-item__product-name,
.wc-block-cart-item__product a,
.wc-block-cart-items a,
a.wc-block-components-product-name,
.wc-block-components-product-name {
  color: #fff !important;
  text-decoration: none !important;
  border-bottom: none !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 700 !important;
}
.wc-block-cart-item__product-name:hover,
.wc-block-components-product-name:hover { color: var(--accent) !important; }

/* Quantity selector — clean block, kill the red skewed mess */
.wc-block-components-quantity-selector {
  border: 1px solid #444 !important;
  background: transparent !important;
  border-radius: 0 !important;
  clip-path: none !important;
  display: inline-flex !important;
  width: auto !important;
  min-width: 120px !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
button.wc-block-components-quantity-selector__button {
  background: transparent !important;
  color: #fff !important;
  border: none !important;
  font-size: 18px !important;
  width: 36px !important;
  height: 40px !important;
  border-radius: 0 !important;
  clip-path: none !important;
  transform: none !important;
  font-weight: 400 !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
  background: var(--accent) !important; color: #fff !important;
}
.wc-block-components-quantity-selector__input,
input.wc-block-components-quantity-selector__input {
  background: transparent !important;
  color: #fff !important;
  border: none !important;
  text-align: center !important;
  font-family: var(--display) !important;
  font-weight: 800 !important;
  font-style: italic !important;
  font-size: 16px !important;
  width: 48px !important;
}

/* Remove-item link */
.wc-block-cart-item__remove-link,
a.wc-block-cart-item__remove-link {
  color: #999 !important;
  text-decoration: none !important;
  border-bottom: none !important;
  background: transparent !important;
  font-size: 13px !important;
}
.wc-block-cart-item__remove-link:hover { color: var(--accent) !important; }

/* Proceed to Checkout button — red bg, black text */
.wc-block-cart__submit-button,
button.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wc-block-cart__submit .wc-block-components-button.contained,
button.wc-block-components-button.contained,
a.wc-block-components-button.contained {
  background: var(--accent) !important;
  color: #000 !important;
  border: none !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 900 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: none !important;
  border-radius: 0 !important;
  padding: 18px 28px !important;
  clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.wc-block-cart__submit-button:hover { background: var(--accent-2) !important; color: #000 !important; }
.wc-block-cart__submit-button *, button.wc-block-components-button.contained * {
  color: #000 !important; text-decoration: none !important; border-bottom: none !important;
}

/* Coupon dropdown — kill the blue outline */
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid #444 !important;
  border-radius: 0 !important;
}
.wc-block-components-totals-coupon__button:hover,
.wc-block-components-panel__button:hover { border-color: var(--accent) !important; }
.wc-block-components-totals-coupon__input input,
.wc-block-components-text-input input {
  background: #0a0a0a !important;
  color: #fff !important;
  border: 1px solid #444 !important;
  border-radius: 0 !important;
}
.wc-block-components-totals-coupon__input input:focus,
.wc-block-components-text-input input:focus { border-color: var(--accent) !important; outline: none !important; }

/* Totals — clean numbers, white text */
.wc-block-components-totals-footer-item,
.wc-block-components-totals-item__value,
.wc-block-formatted-money-amount,
.wc-block-components-totals-item__label { color: #fff !important; }

/* Hide any currency-code suffix on money amounts (belt-and-braces with the JS strip) */
.wc-block-formatted-money-amount [class*="currency-code"],
.wc-block-formatted-money-amount [class*="currency-suffix"] { display: none !important; }

/* === END BLOCK CART === */

/* === EMPTY-CART "NEW IN STORE" PRODUCT GRID === */
/* When cart is empty, the wc-block-grid uses flex with `flex: 1 0 25%` + `max-width: 25%`
   on each item, which combined with the column constraints renders cards as narrow strips.
   Overriding with grid layout + flex-reset on the items. */
.wp-block-woocommerce-empty-cart-block {
  width: 100% !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 30px 40px 0 !important;
  box-sizing: border-box !important;
}

/* Headings */
.wp-block-woocommerce-empty-cart-block h2 {
  text-align: center !important;
  font-family: var(--display);
  font-style: italic;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 13px !important;
  color: #888 !important;
  margin: 50px 0 30px !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title,
body .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2.wc-block-cart__empty-cart__title {
  font-size: clamp(32px, 5vw, 56px) !important;
  letter-spacing: -0.005em !important;
  color: var(--accent) !important;
  text-transform: uppercase !important;
  transform: skewX(-4deg) !important;
  padding-top: 10px !important;
  margin: 0 0 14px !important;
  text-shadow: 0 0 18px rgba(200,16,46,0.25);
}
/* Brand sad-face icon on the empty-cart title — red SVG, bigger */
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::after {
  content: '';
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  margin-left: 0.28em;
  vertical-align: -0.18em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23c8102e' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='16' cy='16' r='13'/%3E%3Cline x1='11' y1='13' x2='11' y2='13.5'/%3E%3Cline x1='21' y1='13' x2='21' y2='13.5'/%3E%3Cpath d='M10.5 22 Q16 17.5 21.5 22'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: skewX(4deg);
  filter: drop-shadow(0 0 12px rgba(200,16,46,0.5));
}
/* Repurpose the divider area as a brand-italic subtitle */
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block hr.wp-block-separator {
  border: none !important;
  background: none !important;
  height: auto !important;
  padding: 0 20px 36px !important;
  position: relative;
  text-align: center;
  margin: 0 auto !important;
  max-width: none !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator::before {
  content: "PICK YOUR FIRST PART BELOW AND LET'S BUILD.";
  display: block;
  color: #888;
  font-family: var(--display);
  font-style: italic;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  line-height: 1.4;
  max-width: 560px;
  margin: 0 auto;
  padding: 0 20px;
  transform: skewX(-4deg);
}

/* Product grid — 4 wide on desktop, 2 mobile, 1 tiny */
.wp-block-woocommerce-empty-cart-block .wc-block-grid,
.wp-block-woocommerce-empty-cart-block .wp-block-product-new,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wc-block-product-new {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 30px 0 !important;
  padding: 0 !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block ul.wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product,
.wp-block-woocommerce-empty-cart-block li.wc-block-grid__product,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products > li {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  flex: none !important;
  flex-basis: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: var(--bg-2) !important;
  border-top: 3px solid var(--accent) !important;
  display: flex !important;
  flex-direction: column !important;
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 0 100%);
  transition: transform .15s;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover { transform: translateY(-3px); }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
  display: block !important;
  text-decoration: none !important;
  color: inherit !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
  aspect-ratio: 1/1 !important;
  width: 100% !important;
  overflow: hidden !important;
  background: var(--bg-2);
  margin: 0 !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  padding: 16px 18px 6px !important;
  color: #fff !important;
  letter-spacing: 0 !important;
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
  word-break: normal !important;
  transform: skewX(-3deg) !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
  padding: 0 18px 14px !important;
  font-family: var(--display) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  font-size: 18px !important;
  color: var(--accent) !important;
  writing-mode: horizontal-tb !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price * { color: var(--accent) !important; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart { padding: 0 18px 18px !important; margin-top: auto !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-button__link.add_to_cart_button,
.wp-block-woocommerce-empty-cart-block a.add_to_cart_button {
  display: block !important;
  background: var(--accent) !important;
  color: #000 !important;
  text-align: center !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 900 !important;
  letter-spacing: 0.16em !important;
  font-size: 12px !important;
  padding: 12px 16px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 0 !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  transform: none !important;
  writing-mode: horizontal-tb !important;
  white-space: nowrap !important;
  width: 100% !important;
}
.wp-block-woocommerce-empty-cart-block .wp-block-button__link.add_to_cart_button:hover { background: var(--accent-2) !important; }

@media (max-width: 900px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 500px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: 1fr !important; }
}
/* === END EMPTY CART GRID === */

/* === BACK TO TOP BUTTON — brand override (kills Astra's blue square) === */
.ast-scroll-to-top.ast-scroll-to-top,
.ast-scroll-to-top-button,
button#ast-scroll-top,
#ast-scroll-top,
.ast-scroll-top-icon {
  background: var(--accent) !important;
  background-color: var(--accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  width: 46px !important;
  height: 46px !important;
  line-height: 46px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  box-shadow: 0 4px 14px rgba(200,16,46,0.4) !important;
  transition: transform .15s, background .15s !important;
  font-size: 18px !important;
}
.ast-scroll-to-top.ast-scroll-to-top:hover,
.ast-scroll-to-top-button:hover,
#ast-scroll-top:hover {
  background: var(--accent-2) !important;
  transform: translateY(-3px) !important;
  color: #fff !important;
}
.ast-scroll-to-top svg,
.ast-scroll-to-top-button svg,
#ast-scroll-top svg,
.ast-scroll-top-icon svg,
.ast-scroll-to-top i { fill: #fff !important; color: #fff !important; }
/* === END BACK TO TOP === */

/* ===========================================================
   MOBILE-ONLY POLISH (≤ 768px)
   Desktop is untouched.
   =========================================================== */
@media (max-width: 768px) {

  /* --- BLOG CARDS --- */
  /* 1) Hide the excerpt on mobile (title + meta only) */
  .es-blog-card .excerpt { display: none !important; }
  /* 2) Tighten title size + body padding so cards stay compact */
  .es-blog-card .body  { padding: 16px 16px 18px !important; }
  .es-blog-card .title { font-size: 16px !important; line-height: 1.1 !important; margin-bottom: 10px !important; }
  /* 3) Stop "5 MIN READ" overlapping the date — switch to column layout */
  .es-blog-card .meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
    padding-top: 10px !important;
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
    line-height: 1.3 !important;
  }

  /* --- SHOP BY CATEGORY GRID — add right-side breathing room --- */
  .es-cat-grid { padding: 0 14px !important; gap: 14px !important; }
  /* And tighten card internals on phones */
  .es-cat-card .body { padding: 16px !important; gap: 6px !important; }
  .es-cat-card .name { font-size: 18px !important; }
  .es-cat-card .desc { font-size: 12px !important; line-height: 1.45 !important; margin: 2px 0 8px !important; }
  .es-cat-tags { gap: 4px !important; }
  .es-cat-tag { font-size: 10px !important; padding: 4px 8px !important; letter-spacing: 0.06em !important; }
  .es-cat-foot .sub, .es-cat-foot .link { font-size: 11px !important; letter-spacing: 0.1em !important; }

  /* --- SINGLE PRODUCT PAGE — condense for mobile --- */
  /* Trust strip: from stacked 3-column to compact single row */
  .es-trust-strip {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 8px !important;
    margin: 14px 0 0 !important;
    padding: 14px 0 0 !important;
  }
  .es-trust-item { gap: 6px !important; flex-direction: column !important; align-items: center !important; text-align: center !important; }
  .es-trust-item svg { width: 18px !important; height: 18px !important; margin: 0 !important; }
  .es-trust-item strong { font-size: 10px !important; letter-spacing: 0.04em !important; line-height: 1.1 !important; }
  .es-trust-item span { display: none !important; } /* sub-text is the chattiest, kill on mobile */

  /* Fitment + Specs sections — way less vertical space */
  body.es-product-page .es-fitment,
  body.es-product-page .es-specs { padding: 50px 14px !important; margin-top: 40px !important; }
  body.es-product-page .es-fitment-head,
  body.es-product-page .es-specs-head { margin-bottom: 24px !important; }
  body.es-product-page .es-fitment-head h2,
  body.es-product-page .es-specs-head h2 { font-size: clamp(24px, 7vw, 32px) !important; margin: 8px 0 10px !important; }
  body.es-product-page .es-fitment-head p { font-size: 13px !important; line-height: 1.5 !important; }
  .es-chassis-grid { gap: 8px !important; }
  .es-chassis-tile { padding: 14px 14px !important; }
  .es-chassis-tile .code { font-size: 19px !important; margin-bottom: 4px !important; }
  .es-chassis-tile .models { font-size: 12px !important; line-height: 1.3 !important; }
  .es-chassis-tile .years { font-size: 9px !important; letter-spacing: 0.1em !important; margin-top: 4px !important; }
  .es-specs-table th, .es-specs-table td { padding: 10px 14px !important; font-size: 13px !important; }
  .es-specs-table th { font-size: 11px !important; letter-spacing: 0.16em !important; }

  /* Product title + price compact on mobile */
  body.es-product-page .product_title { font-size: clamp(24px, 7vw, 32px) !important; margin-bottom: 10px !important; padding-bottom: 10px !important; }
  body.es-product-page .price { font-size: 24px !important; }
  body.es-product-page .es-product-tagline { font-size: 13px !important; line-height: 1.4 !important; margin: -2px 0 12px !important; }
  body.es-product-page .es-stock-badge { font-size: 11px !important; padding: 7px 12px 7px 11px !important; margin: 10px 0 12px !important; }
  body.es-product-page .woocommerce-product-details__short-description { font-size: 13px !important; line-height: 1.5 !important; margin-top: 12px !important; padding-top: 12px !important; }

  /* --- EMPTY CART "NEW IN STORE" CARDS — restore 2-column on mobile  --- */
  /* The main rule uses `ul.wc-block-grid__products` which has higher specificity
     than my earlier media query. Match the same selector to win. */
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
  .wp-block-woocommerce-empty-cart-block ul.wc-block-grid__products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 0 12px !important;
  }
  .wp-block-woocommerce-empty-cart-block { padding: 20px 0 0 !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
    font-size: 12px !important; padding: 10px 12px 4px !important; line-height: 1.15 !important;
  }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price { font-size: 14px !important; padding: 0 12px 10px !important; }
  .wp-block-woocommerce-empty-cart-block .wp-block-button__link.add_to_cart_button { padding: 10px !important; font-size: 11px !important; letter-spacing: 0.1em !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart { padding: 0 12px 12px !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: clamp(24px, 7vw, 34px) !important; }
}
/* === END MOBILE POLISH === */

/* === MOBILE PRODUCT GALLERY — show full image, no cropping (≤ 768px) === */
@media (max-width: 768px) {
  /* Main image: drop the 30px padding eating into the view + ensure full image shows */
  body.es-product-page .product div.images img,
  body.es-product-page .product .woocommerce-product-gallery__image img,
  body.es-product-page .woocommerce-product-gallery__image img {
    padding: 10px !important;
    object-fit: contain !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    background: #fff !important;
  }
  /* Thumbnails: show full image (was cover/cropped), tighter spacing */
  body.es-product-page .flex-control-thumbs li img,
  body.es-product-page .woocommerce-product-gallery__image--placeholder img,
  body.es-product-page ol.flex-control-thumbs img {
    object-fit: contain !important;
    background: #fff !important;
    padding: 6px !important;
  }
  body.es-product-page .flex-control-thumbs { gap: 6px !important; }
  /* Prevent horizontal scroll on the gallery wrapper */
  body.es-product-page .woocommerce-product-gallery { max-width: 100% !important; overflow: hidden !important; }
  body.es-product-page .woocommerce-product-gallery__wrapper { max-width: 100% !important; }
}
/* === END MOBILE GALLERY === */

/* === REMOVE PRODUCT IMAGE BORDER + ANY GALLERY WRAPPER BORDER === */
body.es-product-page .product div.images img,
body.es-product-page .product .woocommerce-product-gallery__image img,
body.es-product-page .woocommerce-product-gallery__image img,
body.es-product-page .woocommerce-product-gallery__image,
body.es-product-page .woocommerce-product-gallery,
body.es-product-page .flex-control-thumbs img,
body.es-product-page ol.flex-control-thumbs img {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* === KILL ALL TOP-OF-PAGE WHITE SPACE (above the marquee bar) === */
html, body { margin: 0 !important; padding-top: 0 !important; }
body.es-product-page { padding-top: 0 !important; margin-top: 0 !important; }
.es-stripe { margin-top: 0 !important; }
.es-utility { margin-top: 0 !important; }
/* Astra Header Footer Builder sometimes inserts empty placeholder elements before the first
   visible content — hide any empty Astra wrappers that aren't the actual header */
body.ast-hfb-header .ast-mobile-header-wrap:empty,
body .ast-above-header-wrap:empty { display: none !important; }
/* Belt-and-braces: enforce sticky header at top: 0 for logged-out + nuke any wp-admin-bar offset */
body:not(.logged-in) #wpadminbar { display: none !important; }
body:not(.logged-in) { margin-top: 0 !important; }
html[lang] { margin-top: 0 !important; }

/* === KILL ASTRA'S #primary MARGINS — was creating 60px dead space top + bottom === */
body.es-product-page .ast-plain-container.ast-no-sidebar #primary,
body.es-product-page #primary,
body.es-product-page.ast-no-sidebar #primary { margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }

/* === KILL DEAD SPACE ABOVE FOOTER ON PRODUCT PAGES === */
body.es-product-page main.site-content,
body.es-product-page #content,
body.es-product-page #primary,
body.es-product-page #main,
body.es-product-page .site-content > .ast-container,
body.es-product-page .ast-container { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.es-product-page .related.products,
body.es-product-page .upsells.products { padding-bottom: 50px !important; margin-bottom: 0 !important; }
body.es-product-page .es-specs:last-of-type,
body.es-product-page .es-fitment:last-of-type { padding-bottom: 60px !important; margin-bottom: 0 !important; }
/* The container chain that wraps main content also has padding from Astra */
body.es-product-page .ast-no-sidebar #primary,
body.es-product-page .single-product #primary { padding: 0 !important; margin: 0 !important; }
body.es-product-page main { padding: 0 !important; margin: 0 !important; }
.es-product-card .body { padding: 22px; }
.es-product-card .cat-tag { font-family: var(--display); font-weight: 800; font-style: italic; font-size: 13px; letter-spacing: 0.22em; color: var(--accent); margin-bottom: 6px; text-transform: uppercase; }
.es-product-card .name { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 24px; letter-spacing: 0.02em; text-transform: uppercase; margin: 0 0 4px; line-height: 1.05; transform: skewX(-4deg); color: var(--text) !important; }
.es-product-card .fit { color: var(--muted); font-size: 13px; margin-bottom: 0; }
.es-product-card .foot { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.es-product-card .price { font-family: var(--display); font-weight: 800; font-size: 24px; color: var(--text); }
.es-product-card .price del { color: var(--muted); font-weight: 400; margin-right: 8px; font-size: 18px; }
.es-product-card .buy { font-family: var(--display); font-style: italic; font-weight: 700; font-size: 12px; letter-spacing: 0.2em; color: var(--accent); text-transform: uppercase; }
.es-cta-row { text-align: center; margin-top: 60px; }

/* Platform tiles */
.es-platforms { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.es-tile { position: relative; padding: 48px 32px; background: var(--bg-2); border-left: 4px solid var(--accent); display: flex; flex-direction: column; gap: 14px; transition: all .15s; color: var(--text) !important; text-align: left; font: inherit; cursor: pointer; }
/* Buttons: kill Astra's default brand-red button background; match the anchor tile exactly */
button.es-tile,
button.es-tile.es-notify-btn,
button.es-tile[type="button"] {
  background: var(--bg-2) !important;
  background-color: var(--bg-2) !important;
  background-image: none !important;
  border: none !important;
  border-left: 4px solid var(--accent) !important;
  border-radius: 0 !important;
  width: 100%;
  color: var(--text) !important;
  font-family: inherit !important;
  font-weight: inherit !important;
}
button.es-tile:hover,
button.es-tile.es-notify-btn:hover { background: var(--bg-3) !important; background-color: var(--bg-3) !important; transform: translateX(4px); }
button.es-tile h3 { color: var(--text) !important; }
button.es-tile .models { color: var(--muted) !important; }
button.es-tile .link { color: var(--accent) !important; }
.es-tile--soon { border-left-color: #555 !important; opacity: 0.88; }
.es-tile--soon:hover { border-left-color: var(--accent) !important; opacity: 1; }
.es-tile--soon h3 { color: #aaa; }
.es-tile--soon:hover h3 { color: var(--text); }
.es-tile-badge { position: absolute; top: 18px; right: 18px; background: #000; color: #fff; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; padding: 5px 10px; clip-path: polygon(0 0, 100% 0, calc(100% - 6px) 100%, 0 100%); }
.es-tile:hover { background: var(--bg-3); transform: translateX(4px); }
.es-tile h3 { font-family: var(--display); font-weight: 900; font-style: italic; font-size: 76px; line-height: 0.85; letter-spacing: -0.01em; transform: skewX(-8deg); margin: 0; color: var(--text); }
.es-tile .models { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0; }
.es-tile .link { font-family: var(--display); font-style: italic; font-weight: 700; font-size: 12px; letter-spacing: 0.22em; color: var(--accent); text-transform: uppercase; margin-top: 10px; }

/* Stats strip */
.es-stat-strip { background: var(--bg); padding: 80px 40px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.es-stat-strip-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.es-stat { text-align: center; position: relative; }
.es-stat:not(:last-child)::after { content: ''; position: absolute; right: -15px; top: 50%; transform: translateY(-50%); width: 1px; height: 60%; background: var(--line); }
.es-stat .num { font-family: var(--display); font-weight: 900; font-style: italic; font-size: 72px; line-height: 1; background: linear-gradient(180deg, #f4f6fa 0%, #d4d8de 45%, #8a8e96 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--silver); margin-bottom: 10px; transform: skewX(-6deg); display: inline-block; }
.es-stat .lbl { font-family: var(--display); font-style: italic; font-size: 13px; letter-spacing: 0.24em; color: var(--text); text-transform: uppercase; font-weight: 700; }

/* About section */
.es-about { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: center; max-width: 1400px; margin: 0 auto; padding: 140px 40px; background: var(--bg); }
.es-about h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(3.5rem, 6vw, 6rem); line-height: 0.92; text-transform: uppercase; transform: skewX(-6deg); margin-bottom: 28px; }
.es-about h2 .acc { color: var(--accent); }
.es-about p { font-size: 16px; color: var(--muted); max-width: 460px; margin-bottom: 32px; font-style: italic; }
.es-about-imgs { position: relative; }
.es-about-imgs::before { content: ''; position: absolute; top: -22px; left: -22px; width: 100%; height: 100%; border: 3px solid var(--accent); z-index: 0; }
.es-about-imgs .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; position: relative; z-index: 1; }
.es-about-imgs img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }

/* Footer */
.es-footer { background: var(--bg); padding: 90px 40px 50px; border-top: 1px solid var(--line); }
.es-footer-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 50px; }
.es-footer h3 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: 42px; transform: skewX(-8deg); margin: 0 0 16px; color: var(--text); }
.es-footer h3 .acc { color: var(--accent); }
.es-footer-col p { color: var(--muted); font-size: 14px; max-width: 320px; margin-bottom: 24px; }
.es-footer h4 { font-family: var(--display); font-style: italic; font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 800; color: var(--accent); margin-bottom: 20px; }
.es-footer ul { list-style: none; padding: 0; margin: 0; }
.es-footer li { margin-bottom: 12px; }
.es-footer ul a { color: #ccc; font-size: 14px; }
.es-footer ul a:hover { color: var(--accent); }
.es-socials { display: flex; gap: 12px; margin-top: 16px; }
.es-socials a { width: 42px; height: 42px; border: 1px solid var(--line); display: inline-flex; align-items: center; justify-content: center; transition: all .15s; color: var(--text); }
.es-socials a:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.es-socials svg { width: 20px; height: 20px; }
.es-sub-row { display: flex; border: 1px solid var(--line); padding: 4px; align-items: center; }
.es-sub-row input { background: transparent; border: none; color: #fff; padding: 12px; flex: 1; outline: none; font-family: var(--body); font-size: 14px; }
.es-sub-row button { background: var(--accent) !important; color: #fff !important; border: none !important; padding: 12px 18px !important; cursor: pointer; font-family: var(--display) !important; font-style: italic !important; font-weight: 800 !important; transform: none !important; clip-path: none !important; letter-spacing: 0 !important; }
.es-copy { max-width: 1400px; margin: 60px auto 0; padding-top: 30px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-family: var(--display); font-style: italic; }

/* Shop page (WC) */
.es-shop-banner { padding: 70px 40px 50px; background: var(--bg); border-bottom: 1px solid var(--line); position: relative; overflow: hidden; }
.es-shop-banner::after { content: ''; position: absolute; top: -10%; left: 78%; width: 3px; height: 120%; background: var(--accent); opacity: 0.6; transform: skewX(-12deg); box-shadow: 0 0 18px rgba(200,16,46,0.6); }
.es-shop-banner-inner { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; position: relative; z-index: 2; }
.es-shop-banner h1 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(3rem, 7vw, 5.5rem); margin: 0; letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-6deg); }
.es-shop-banner h1 .acc { color: var(--accent); }
.es-shop-search { display: flex; background: var(--bg-2); border: 1px solid var(--line); padding: 6px 6px 6px 20px; align-items: center; min-width: 360px; }
.es-shop-search input { background: transparent; border: none; color: #fff; flex: 1; padding: 10px 0; font-family: var(--body); font-size: 14px; outline: none; }
.es-shop-search input::placeholder { color: var(--muted); }
.es-shop-search button { background: var(--accent) !important; border: none !important; padding: 10px 14px !important; cursor: pointer; color: #fff !important; clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 100%, 8px 100%) !important; transform: none !important; margin: 0 !important; }
.es-shop-search svg { width: 16px; height: 16px; }

.woocommerce.es-shop ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 24px !important; margin: 50px auto !important; padding: 0 40px !important; max-width: 1400px !important; list-style: none !important; }
.woocommerce.es-shop ul.products li.product { width: auto !important; margin: 0 !important; padding: 0 !important; background: transparent !important; position: relative; list-style: none; float: none !important; }
.es-shop-card { background: var(--bg-2); border-top: 3px solid var(--accent); position: relative; transition: transform .2s; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); display: flex; flex-direction: column; height: 100%; }
.es-shop-card:hover { transform: translateY(-4px); }
.es-shop-card .corner { position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 30px 30px 0; border-color: transparent var(--bg) transparent transparent; z-index: 2; }
.es-shop-card .img { background: #fff; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; padding: 24px; position: relative; overflow: hidden; }
.es-shop-card .img img { max-height: 100%; object-fit: contain; }
.es-shop-card .badge { position: absolute; top: 12px; left: 12px; background: #000; color: #fff; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 11px; letter-spacing: 0.18em; padding: 6px 12px; text-transform: uppercase; z-index: 2; transform: skewX(-8deg); }
.es-shop-card .badge--sale { background: var(--accent); }
.es-shop-card .body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.es-shop-card .cat-tag { font-family: var(--display); font-weight: 800; font-style: italic; font-size: 13px; letter-spacing: 0.22em; color: var(--accent); margin-bottom: 6px; text-transform: uppercase; }
.es-shop-card .name { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 22px; letter-spacing: 0.02em; text-transform: uppercase; margin: 0 0 6px; line-height: 1.05; transform: skewX(-4deg); color: var(--text); }
.es-shop-card .rating { color: var(--accent); font-size: 13px; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.es-shop-card .rating .count { color: var(--muted); font-size: 12px; }
.es-shop-card .price { font-family: var(--display); font-weight: 800; font-size: 22px; color: var(--text); margin-top: auto; }
.es-shop-card .soldout { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 13px; letter-spacing: 0.22em; color: var(--muted); text-transform: uppercase; margin-top: auto; }
.woocommerce.es-shop .star-rating, .woocommerce.es-shop ul.products li.product .star-rating, .woocommerce.es-shop ul.products li.product .price, .woocommerce.es-shop ul.products li.product .woocommerce-loop-product__title, .woocommerce.es-shop ul.products li.product .button, .woocommerce.es-shop ul.products li.product .added_to_cart, .woocommerce-result-count, .woocommerce-ordering { display: none !important; }

.es-testimonials { position: relative; padding: 120px 40px; background: var(--bg); overflow: hidden; border-top: 1px solid var(--line); }
.es-testimonials::before { content: ''; position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.18; z-index: 1; }
.es-testimonials-inner { position: relative; z-index: 2; max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; text-align: center; }
.es-testimonial .stars { color: var(--accent); font-size: 20px; letter-spacing: 4px; margin-bottom: 20px; }
.es-testimonial p { color: #fff; font-family: var(--display); font-style: italic; font-weight: 600; font-size: 18px; line-height: 1.4; margin: 0 auto 24px; max-width: 480px; }
.es-testimonial .avatar { width: 56px; height: 56px; border-radius: 999px; background: #333; margin: 0 auto 10px; border: 2px solid var(--accent); }
.es-testimonial .verified { color: #4ade80; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; margin: 4px 0 10px; }
.es-testimonial .name { color: #fff; font-family: var(--display); font-style: italic; font-size: 14px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; }

/* Single product page */
.es-product-page { background: var(--bg); padding: 60px 0; }
.es-product-page .product { max-width: 1400px; margin: 0 auto; padding: 0 40px; }
.es-product-page .product div.images img, .es-product-page .product .woocommerce-product-gallery__image img { background: #fff; padding: 30px; border-radius: 0; }
.es-product-page .product .product_title { color: var(--text); font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(2.5rem, 5vw, 4rem); letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-6deg); }
.es-product-page .product .price, .es-product-page .product p.price { color: var(--accent) !important; font-family: var(--display) !important; font-style: italic !important; font-weight: 900 !important; font-size: 2.4rem !important; transform: skewX(-6deg); display: inline-block; }
.es-product-page .product .price del { color: var(--muted) !important; opacity: 0.6; font-size: 1.4rem; margin-right: 12px; }
.es-product-page .product .price ins { background: transparent !important; color: var(--accent) !important; text-decoration: none; }
.es-product-page .product .woocommerce-product-details__short-description { color: var(--text); font-size: 16px; line-height: 1.7; }
.es-product-page form.cart { background: var(--bg-2); padding: 24px; border-top: 3px solid var(--accent); margin-top: 20px; }
.es-product-page form.cart .quantity input { background: #fff; color: #000; border: none; padding: 10px; }
.es-product-page .woocommerce-tabs { background: var(--bg-2); padding: 30px; margin-top: 60px; border-top: 3px solid var(--accent); }
.es-product-page .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 20px; }
.es-product-page .woocommerce-tabs ul.tabs li { background: transparent !important; border: none !important; padding: 0 24px 0 0 !important; margin: 0 !important; }
.es-product-page .woocommerce-tabs ul.tabs li a { color: var(--muted) !important; font-family: var(--display) !important; font-style: italic; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
.es-product-page .woocommerce-tabs ul.tabs li.active a, .es-product-page .woocommerce-tabs ul.tabs li a:hover { color: var(--accent) !important; }
.es-product-page .woocommerce-tabs .panel { color: var(--text); font-size: 15px; line-height: 1.75; padding-top: 14px; }
.es-product-page .woocommerce-tabs .panel h2, .es-product-page .woocommerce-tabs .panel h3 { color: var(--text); font-family: var(--display); }
.es-product-page .woocommerce-tabs .panel ul { padding-left: 22px; }
.woocommerce-message, .woocommerce-info { background: var(--bg-2) !important; color: #fff !important; border-top-color: var(--accent) !important; padding: 14px 20px !important; }
.woocommerce-message a, .woocommerce-info a { color: var(--accent) !important; }

/* Categories page */
.es-cat-hero { position: relative; height: 60vh; min-height: 440px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.es-cat-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.75) 100%); z-index: 1; }
.es-cat-hero::after { content: ''; position: absolute; top: -10%; left: 78%; width: 3px; height: 120%; background: var(--accent); opacity: 0.7; transform: skewX(-12deg); z-index: 2; box-shadow: 0 0 18px rgba(200,16,46,0.6); }
.es-cat-hero h1 { position: relative; z-index: 3; font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(2.5rem, 6vw, 5.5rem); color: #fff; padding: 0 32px; letter-spacing: -0.005em; line-height: 0.95; text-transform: uppercase; transform: skewX(-6deg); max-width: 1100px; margin: 0; }
.es-cat-hero h1 .acc { color: var(--accent); }
.es-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.es-cat-card { background: var(--bg-2); border-top: 3px solid var(--accent); display: flex; flex-direction: column; transition: transform .2s; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); position: relative; color: var(--text) !important; }
.es-cat-card:hover { transform: translateY(-4px); }
.es-cat-card .corner { position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 30px 30px 0; border-color: transparent var(--bg) transparent transparent; }
.es-cat-card .img { position: relative; aspect-ratio: 4/3; background-color: #1a1a1a; background-size: cover; background-position: center; overflow: hidden; }
.es-cat-badge { position: absolute; top: 14px; left: 14px; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 11px; padding: 6px 12px; letter-spacing: 0.18em; text-transform: uppercase; z-index: 2; transform: skewX(-8deg); }
.es-cat-badge--instock { background: var(--accent); color: #fff; }
.es-cat-badge--soon { background: #1a1a1a; color: #fff; border: 1px solid #333; }
.es-cat-card .body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.es-cat-card .cat { color: var(--accent); font-family: var(--display); font-style: italic; font-weight: 800; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; }
.es-cat-card .name { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 24px; letter-spacing: 0.02em; text-transform: uppercase; transform: skewX(-4deg); margin: 0; line-height: 1; color: var(--text); }
.es-cat-card .desc { color: var(--muted); font-size: 13px; line-height: 1.55; margin: 4px 0 12px; }
.es-cat-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.es-cat-tag { border: 1px solid var(--line); color: var(--muted); font-family: var(--display); font-style: italic; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 5px 10px; font-weight: 700; }
.es-cat-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.es-cat-foot .sub { color: var(--muted); font-family: var(--display); font-style: italic; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; }
.es-cat-foot .link { color: var(--accent); font-family: var(--display); font-style: italic; font-weight: 800; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; }
.es-gallery { padding: 130px 40px; background: var(--bg); text-align: center; border-top: 1px solid var(--line); }
.es-gallery h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(3rem, 6vw, 5.5rem); margin: 0 0 14px; text-transform: uppercase; transform: skewX(-6deg); }
.es-gallery h2 .acc { color: var(--accent); }
.es-gallery p { color: var(--muted); font-size: 16px; max-width: 560px; margin: 0 auto 56px; font-style: italic; }
.es-gallery-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.es-gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .3s; }
.es-gallery-grid a { overflow: hidden; display: block; }
.es-gallery-grid a:hover img { transform: scale(1.05); }

/* Community page */
.es-builds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.es-build { background: var(--bg-2); border-top: 3px solid var(--accent); position: relative; overflow: hidden; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); transition: transform .2s; }
.es-build:hover { transform: translateY(-4px); }
.es-build .corner { position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 30px 30px 0; border-color: transparent var(--bg) transparent transparent; z-index: 1; }
.es-build .img { position: relative; aspect-ratio: 4/5; overflow: hidden; }
.es-build .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.es-build:hover .img img { transform: scale(1.04); }
.es-build .badge { position: absolute; top: 14px; left: 14px; background: var(--accent); color: #fff; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 11px; padding: 6px 12px; letter-spacing: 0.18em; text-transform: uppercase; transform: skewX(-8deg); z-index: 2; }
.es-build .body { padding: 26px; }
.es-build .owner { color: var(--accent); font-family: var(--display); font-style: italic; font-weight: 800; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 6px; }
.es-build .name { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 28px; letter-spacing: -0.005em; text-transform: uppercase; transform: skewX(-4deg); margin: 0 0 14px; line-height: 1; color: var(--text); }
.es-build .mods { color: var(--muted); font-size: 14px; line-height: 1.6; margin: 0; }
.es-build .mods strong { color: #fff; font-weight: 600; }
.es-feature-cta { padding: 80px 40px 130px; background: var(--bg); }
.es-feature-cta-inner { max-width: 1100px; margin: 0 auto; position: relative; background: var(--bg-2); border-top: 3px solid var(--accent); padding: 70px 60px; text-align: center; overflow: hidden; clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%); }
.es-feature-cta-inner::after { content: ''; position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 38px 38px 0; border-color: transparent var(--bg) transparent transparent; }
.es-feature-cta h2 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(2.5rem, 5vw, 4rem); margin-bottom: 18px; text-transform: uppercase; transform: skewX(-6deg); }
.es-feature-cta h2 .acc { color: var(--accent); }
.es-feature-cta p { color: var(--muted); font-size: 16px; max-width: 540px; margin: 0 auto 32px; font-style: italic; }
.es-feature-cta .email { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-family: var(--display); font-style: italic; font-weight: 800; font-size: 18px; letter-spacing: 0.04em; padding: 12px 24px; border: 2px solid var(--accent); margin-bottom: 24px; }
.es-feature-cta .email .acc { color: var(--accent); }

/* Blog */
.es-blog-strip { position: relative; padding: 100px 40px 130px; background: var(--bg); overflow: hidden; }
.es-blog-strip::before { content: ''; position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0.12; z-index: 1; }
.es-blog-strip-inner { position: relative; z-index: 2; max-width: 1400px; margin: 0 auto; }
.es-blog-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.es-blog-card { background: rgba(20,20,25,0.85); backdrop-filter: blur(6px); border-top: 3px solid var(--accent); overflow: hidden; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); transition: transform .2s; position: relative; display: flex; flex-direction: column; color: var(--text) !important; }
.es-blog-card:hover { transform: translateY(-4px); }
.es-blog-card .corner { position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 0 30px 30px 0; border-color: transparent var(--bg) transparent transparent; z-index: 2; }
.es-blog-card .img { aspect-ratio: 4/3; overflow: hidden; }
.es-blog-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.es-blog-card:hover .img img { transform: scale(1.05); }
.es-blog-card .body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.es-blog-card .cat-tag { color: var(--accent); font-family: var(--display); font-style: italic; font-weight: 800; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 8px; }
.es-blog-card .title { font-family: var(--display); font-style: italic; font-weight: 800; font-size: 22px; color: #fff; line-height: 1.1; letter-spacing: 0.005em; text-transform: uppercase; margin: 0 0 14px; transform: skewX(-4deg); display: inline-block; }
.es-blog-card .excerpt { color: var(--muted); font-size: 13px; line-height: 1.55; margin: 0 0 16px; flex: 1; }
.es-blog-card .meta { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-family: var(--display); font-style: italic; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; }
.es-blog-card .meta .read { color: var(--accent); }

/* Single post — full styles at bottom of file */

/* Notification bar */
#wpfront-notification-bar { z-index: 99 !important; }
#wpfront-notification-bar .wpfront-message { color: #fff !important; font-weight: 700 !important; font-size: 12px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; font-family: var(--body) !important; }

/* Responsive */
@media (max-width: 1024px) {
  /* Popular Parts (home), Categories, Builds, Blog stay at 2 cols on tablet */
  .es-products, .es-cat-grid, .es-builds, .es-blog-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .es-platforms { grid-template-columns: repeat(2, 1fr) !important; }
  /* Shop loop bumps to 3 cols on tablet */
  .woocommerce.es-shop ul.products { grid-template-columns: repeat(3, 1fr) !important; padding: 0 20px !important; }
  .es-footer-inner { grid-template-columns: 1fr 1fr; }
  .es-about { grid-template-columns: 1fr; gap: 40px; padding: 80px 24px; }
  .es-shop-banner-inner { grid-template-columns: 1fr; }
  .es-shop-search { min-width: 0; width: 100%; }
  .es-testimonials-inner { grid-template-columns: 1fr; gap: 60px; }
  .es-stat-strip-inner { grid-template-columns: 1fr 1fr; gap: 50px 20px; }
  .es-stat:nth-child(2)::after { display: none; }
  .es-header-inner { grid-template-columns: auto 1fr auto !important; }
  .es-nav { display: none; }
  .es-hero h1 { font-size: clamp(3rem, 12vw, 6rem); }
}
@media (max-width: 600px) {
  /* Keep 2 cols across the board on phone — user explicitly wants less scroll */
  .es-products, .es-cat-grid, .es-builds, .es-blog-grid, .es-platforms { grid-template-columns: repeat(2, 1fr) !important; }
  .woocommerce.es-shop ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; padding: 0 14px !important; }
  .es-gallery-grid { grid-template-columns: 1fr; }
  .es-section { padding: 70px 16px; }
  /* Tighten card text so two-up cards stay readable */
  .es-product-card .name, .es-cat-card--product .name { font-size: 14px !important; line-height: 1.15 !important; }
  .es-product-card .body, .es-cat-card--product .body { padding: 14px !important; }
  .es-product-card .price, .es-cat-card--product .es-product-price { font-size: 15px !important; }
  .es-cat-badge { font-size: 9px !important; padding: 4px 8px !important; }
  .es-cat-card--product .cat { font-size: 11px !important; letter-spacing: 0.14em !important; }
}

/* === MOBILE HAMBURGER + DRAWER === */
.es-burger {
  display: none;
  background: none !important;
  border: none !important;
  padding: 6px !important;
  cursor: pointer;
  width: 36px; height: 36px;
  align-items: center; justify-content: center;
  flex-direction: column; gap: 5px;
  box-shadow: none !important;
}
.es-burger span {
  display: block !important;
  width: 24px !important;
  height: 2.5px !important;
  background: var(--accent) !important;
  border-radius: 1px;
  transition: transform .25s, opacity .15s;
  transform-origin: center;
}
.es-burger.is-open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.es-burger.is-open span:nth-child(2) { opacity: 0; }
.es-burger.is-open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* === HEADER LAYOUT — desktop keeps existing flow, mobile gets centered logo === */
/* Desktop default: socials sit next to cart on the right */
.es-header-socials { display: flex; align-items: center; gap: 10px; }
.es-header-cart { display: flex; align-items: center; }
.es-header-socials .es-icon, .es-header-cart .es-icon { padding: 0; }
@media (min-width: 1025px) {
  /* Desktop: logo left, nav centered in the middle, socials + cart right.
     Flex with nav flex: 1 fills the middle and centers its links. */
  .es-header-inner {
    display: flex !important;
    align-items: center;
    grid-template-columns: none !important;
    gap: 0 !important;
  }
  .es-logo { flex: 0 0 auto; order: 1; }
  .es-nav { flex: 1 1 auto; order: 2; display: flex; justify-content: center; padding: 0 30px; }
  .es-nav ul { justify-content: center; }
  .es-header-socials { flex: 0 0 auto; order: 3; gap: 14px; }
  .es-header-cart { flex: 0 0 auto; order: 4; margin-left: 20px; }
}

@media (max-width: 1024px) {
  .es-burger { display: inline-flex; }
  /* Mobile: single row, logo absolutely centered. Burger + socials on the left,
     cart on the right. Guarantees one line regardless of viewport width. */
  .es-header-inner {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap !important;
    padding: 14px 16px !important;
    gap: 10px !important;
    position: relative;
    grid-template-columns: none !important;
  }
  .es-burger        { order: 1; flex: 0 0 auto; }
  .es-header-socials { order: 2; flex: 0 0 auto; gap: 6px; display: inline-flex; }
  .es-header-socials .es-icon { padding: 4px; }
  .es-header-socials .es-icon svg { width: 16px; height: 16px; display: block; }
  .es-logo {
    order: 3;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) skewX(-8deg) !important;
    font-size: 26px !important;
    white-space: nowrap;
    margin: 0 !important;
    pointer-events: auto;
    z-index: 2;
  }
  .es-logo img { max-height: 32px; width: auto; display: block; }
  .es-header-cart   { order: 4; flex: 0 0 auto; margin-left: auto; position: relative; }
  .es-header-cart .es-icon { position: relative; padding: 4px; }
  .es-header-cart .es-icon svg { width: 20px; height: 20px; display: block; }
  .es-header-cart .es-icon span { display: none; } /* hide "CART" text */
  .es-header-cart .es-cart-count {
    position: absolute;
    top: -2px; right: -6px;
    background: var(--accent);
    color: #fff;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    font-family: var(--display);
    font-style: italic;
    padding: 1px 5px;
    min-width: 16px;
    text-align: center;
    line-height: 14px;
    transform: none;
  }
}

/* === EMPTY-CART GRID — mobile responsive === */
@media (max-width: 900px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
  .wp-block-woocommerce-empty-cart-block { padding: 30px 16px 0 !important; }
}
@media (max-width: 500px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title { font-size: 12px !important; padding: 10px 12px 4px !important; line-height: 1.15 !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price { font-size: 14px !important; padding: 0 12px 10px !important; }
  .wp-block-woocommerce-empty-cart-block .wp-block-button__link.add_to_cart_button { padding: 10px !important; font-size: 11px !important; letter-spacing: 0.12em !important; }
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart { padding: 0 12px 12px !important; }
}

.es-drawer-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 998; opacity: 0; transition: opacity .25s; }
.es-drawer-backdrop.is-visible { opacity: 1; }
.es-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(320px, 84vw); background: #0a0a0a; border-left: 3px solid var(--accent); z-index: 999; transform: translateX(100%); transition: transform .28s cubic-bezier(.22,.61,.36,1); display: flex; flex-direction: column; box-shadow: -10px 0 32px rgba(0,0,0,0.6); }
.es-drawer.is-open { transform: translateX(0); }
.es-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; border-bottom: 1px solid #222; }
.es-drawer-title { font-family: var(--display); font-style: italic; font-weight: 900; font-size: 14px; letter-spacing: 0.32em; color: var(--accent); text-transform: uppercase; transform: skewX(-4deg); }
.es-drawer-close { background: transparent; border: none; color: #fff; font-size: 36px; line-height: 1; cursor: pointer; padding: 0 4px; font-weight: 300; }
.es-drawer-close:hover { color: var(--accent); }
.es-drawer-nav { flex: 1; padding: 30px 0; overflow-y: auto; }
.es-drawer-nav ul { list-style: none; margin: 0; padding: 0; }
.es-drawer-nav li { border-bottom: 1px solid #1a1a1a; }
.es-drawer-nav a { display: block; padding: 18px 28px; color: #fff; text-decoration: none; font-family: var(--display); font-style: italic; font-weight: 700; font-size: 18px; letter-spacing: 0.06em; text-transform: uppercase; position: relative; transition: color .15s, padding-left .15s; }
.es-drawer-nav a:hover, .es-drawer-nav .current-menu-item > a { color: var(--accent); padding-left: 36px; }
.es-drawer-nav a span { display: inline-block; transform: skewX(-3deg); }
.es-drawer-nav .current-menu-item > a::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 28px; background: var(--accent); }
.es-drawer-foot { display: flex; align-items: center; gap: 16px; padding: 22px 28px; border-top: 1px solid #222; font-size: 12px; color: #888; letter-spacing: 0.06em; flex-wrap: wrap; }
.es-drawer-foot a { color: #aaa; text-decoration: none; display: inline-flex; align-items: center; transition: color .15s; }
.es-drawer-foot a:hover { color: var(--accent); }
.es-drawer-foot svg { width: 22px; height: 22px; }
@media (min-width: 1025px) {
  .es-drawer, .es-drawer-backdrop { display: none !important; }
}
/* === END HAMBURGER + DRAWER === */

/* === SINGLE PRODUCT PAGES — LIGHT THEME === */
body.es-product-page,
body.es-product-page main,
body.es-product-page #content,
body.es-product-page .site-content,
body.es-product-page .ast-container,
body.es-product-page .entry-content {
  background: #ffffff !important;
  color: #0a0a0a !important;
}
body.es-product-page h1, body.es-product-page h2, body.es-product-page h3, body.es-product-page h4, body.es-product-page p, body.es-product-page span {
  color: #0a0a0a;
}

/* Single product — white */
body.es-product-page { background: #ffffff !important; }
body.es-product-page .es-product-page { background: #ffffff !important; padding: 60px 0; }
body.es-product-page .product .product_title { color: #0a0a0a !important; }
body.es-product-page .product .price, body.es-product-page .product p.price { color: var(--accent) !important; }
body.es-product-page .product .woocommerce-product-details__short-description,
body.es-product-page .product .woocommerce-product-details__short-description p { color: #333 !important; }
body.es-product-page .product .stock { color: #0a0a0a; }
body.es-product-page .product div.images img,
body.es-product-page .product .woocommerce-product-gallery__image img { background: #ffffff !important; border: none !important; padding: 30px; }

/* Add-to-cart panel on white */
body.es-product-page form.cart { background: #f5f5f5 !important; border-top: 3px solid var(--accent) !important; padding: 24px !important; }
body.es-product-page form.cart .quantity input { background: #ffffff; color: #0a0a0a; border: 1px solid #d0d0d0; }

/* Description tabs — clean light version (fixes the grey-box-with-black-inside issue) */
body.es-product-page .woocommerce-tabs {
  background: transparent !important;
  border-top: 1px solid #e8e8e8 !important;
  padding: 30px 0 0 !important;
  margin-top: 60px !important;
}
body.es-product-page .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid #e0e0e0 !important;
  margin: 0 0 30px !important;
  padding: 0 !important;
  list-style: none !important;
}
body.es-product-page .woocommerce-tabs ul.tabs::before { display: none !important; }
body.es-product-page .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 0 14px 0 !important;
  margin: 0 28px 0 0 !important;
  border-bottom: 3px solid transparent !important;
}
body.es-product-page .woocommerce-tabs ul.tabs li::before,
body.es-product-page .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.es-product-page .woocommerce-tabs ul.tabs li a {
  color: #666 !important;
  padding: 0 !important;
  background: transparent !important;
  font-family: var(--display) !important;
  font-style: italic !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-shadow: none !important;
}
body.es-product-page .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--accent) !important; }
body.es-product-page .woocommerce-tabs ul.tabs li.active a,
body.es-product-page .woocommerce-tabs ul.tabs li a:hover { color: var(--accent) !important; }
body.es-product-page .woocommerce-tabs .panel {
  background: transparent !important;
  color: #1a1a1a !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 16px;
  line-height: 1.75;
}
body.es-product-page .woocommerce-tabs .panel h2,
body.es-product-page .woocommerce-tabs .panel h3 { color: #0a0a0a !important; font-family: var(--display) !important; }
body.es-product-page .woocommerce-tabs .panel ul { padding-left: 22px; }
body.es-product-page .woocommerce-tabs .panel p,
body.es-product-page .woocommerce-tabs .panel li { color: #333 !important; }

/* WC notices on white */
body.es-product-page .woocommerce-message, body.es-product-page .woocommerce-info {
  background: #f5f5f5 !important; color: #0a0a0a !important; border-top-color: var(--accent) !important;
}
body.es-product-page .woocommerce-message a { color: var(--accent) !important; }

/* Hide entry-header from WC sub-pages (Cart/Checkout/Account) - keep them dark? Actually keep WC light too */
body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account {
  background: #ffffff !important; color: #0a0a0a !important;
}
body.woocommerce-cart main, body.woocommerce-checkout main, body.woocommerce-account main {
  background: #ffffff !important; padding: 40px !important;
}
body.woocommerce-cart h1, body.woocommerce-checkout h1, body.woocommerce-account h1,
body.woocommerce-cart h2, body.woocommerce-checkout h2, body.woocommerce-account h2 { color: #0a0a0a !important; }

/* ========================================================
   EMPTY CART — "New in store" product grid → ES card style
   ======================================================== */
.wp-block-woocommerce-empty-cart-block {
  text-align: center;
  padding: 0 0 60px;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
  font-family: var(--display) !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: #0a0a0a !important;
  margin-bottom: 8px !important;
}
/* Dot separator */
.wp-block-woocommerce-empty-cart-block hr {
  border: none !important;
  margin: 16px auto 24px !important;
  color: var(--accent) !important;
  opacity: 0.4 !important;
}
/* "New in store" sub-heading */
.wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title) {
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: #888 !important;
  margin-bottom: 24px !important;
}
/* Product grid */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 auto !important;
  max-width: 1120px !important;
  text-align: left !important;
}
/* Each card */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
  background: #111 !important;
  border: 1px solid #222 !important;
  position: relative !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  height: 3px !important;
  background: var(--accent) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform 0.25s ease !important;
  z-index: 2 !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover::before {
  transform: scaleX(1) !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover {
  border-color: var(--accent) !important;
}
/* Image */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image {
  aspect-ratio: 1 !important;
  overflow: hidden !important;
  background: #1a1a1a !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.4s ease !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover .wc-block-grid__product-image img {
  transform: scale(1.05) !important;
}
/* Product link wraps image + title */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
  text-decoration: none !important;
  display: block !important;
}
/* Title */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 12px 14px 4px !important;
  line-height: 1.2 !important;
}
/* Price */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
  color: var(--accent) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  padding: 0 14px 10px !important;
  font-family: var(--display) !important;
  letter-spacing: 0.04em !important;
}
/* "Read more" → styled chip button */
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart {
  padding: 0 14px 14px !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
  display: inline-block !important;
  background: var(--accent) !important;
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 7px 16px !important;
  text-decoration: none !important;
  clip-path: polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%) !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
  background: var(--accent-2) !important;
  color: #fff !important;
}
@media (max-width: 900px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================
   SINGLE POST — internal SEO link chips + related posts
   ======================================================== */
.es-single { max-width: 780px; margin: 0 auto; padding: 60px 24px 80px; }
.es-single .meta { color: var(--muted); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 20px; }
.es-single .meta .cat-label { color: var(--accent); }
.es-single h1 { font-family: var(--display); font-style: italic; font-weight: 900; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1; margin-bottom: 32px; text-transform: uppercase; transform: skewX(-4deg); }
.es-single .content { font-size: 16px; line-height: 1.75; color: var(--text); }
.es-single .content h2 { font-family: var(--display); font-style: italic; font-size: clamp(1.4rem, 3vw, 2rem); color: var(--accent); margin: 48px 0 16px; text-transform: uppercase; }
.es-single .content h3 { font-size: 1.2rem; margin: 32px 0 12px; font-style: italic; }
.es-single .content p { margin-bottom: 1.2em; }
.es-single .content a { color: var(--accent); text-decoration: underline; }
.es-single .content ul, .es-single .content ol { padding-left: 1.5em; margin-bottom: 1.2em; }
.es-single .content li { margin-bottom: 6px; }

/* Internal link chips */
.es-single-links { margin-top: 56px; padding: 28px 32px; background: var(--bg-2); border-left: 3px solid var(--accent); }
.es-single-links-head { font-family: var(--display); font-size: 11px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.es-single-links-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.es-single-link-chip {
  display: inline-block;
  padding: 8px 18px;
  background: transparent;
  border: 1px solid var(--line);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
  clip-path: polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%);
}
.es-single-link-chip:hover { border-color: var(--accent); color: var(--accent); background: rgba(200,16,46,0.07); }

/* Related posts section */
.es-single-related { margin-top: 60px; }
.es-single-related-head { font-family: var(--display); font-size: 11px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); margin-bottom: 20px; }
.es-blog-grid--related { grid-template-columns: repeat(3, 1fr) !important; }
.es-blog-card--sm .img { aspect-ratio: 4/3 !important; }
.es-blog-card--sm .title { font-size: 14px !important; }

/* Back / CTA row */
.es-single-back { margin-top: 56px; display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; padding-top: 32px; border-top: 1px solid var(--line); }

@media (max-width: 640px) {
  .es-single { padding: 40px 16px 60px; }
  .es-blog-grid--related { grid-template-columns: 1fr !important; }
  .es-single-back { flex-direction: column; align-items: stretch; }
}

/* === CATEGORY CARD — COMING SOON STATE === */
.es-cat-card--soon { cursor: default; opacity: 0.82; }
.es-cat-card--soon:hover { transform: none; }
.es-notify-btn {
  background: none;
  border: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--display);
  font-style: italic;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 8px 14px;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.es-notify-btn:hover { border-color: var(--accent); color: var(--accent); }

/* === NOTIFY ME MODAL === */
.es-notify-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  align-items: center;
  justify-content: center;
}
.es-notify-modal.is-open { display: flex; }
.es-notify-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.es-notify-box {
  position: relative;
  z-index: 1;
  background: #111;
  border: 1px solid #2a2a2a;
  border-top: 3px solid var(--accent);
  border-radius: 2px;
  padding: 48px 40px 40px;
  max-width: 460px;
  width: calc(100% - 32px);
  text-align: center;
  color: #fff;
  clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
}
.es-notify-corner {
  position: absolute;
  top: 0; right: 0;
  width: 0; height: 0;
  border-style: solid;
  border-width: 0 28px 28px 0;
  border-color: transparent #000 transparent transparent;
}
.es-notify-close {
  position: absolute;
  top: 14px; right: 18px;
  background: none;
  border: none;
  color: #666;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
  padding: 4px 8px;
  transition: color .2s;
}
.es-notify-close:hover { color: #fff; }
.es-notify-eyebrow {
  font-family: var(--display);
  font-style: italic;
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--accent);
  margin-bottom: 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.es-notify-box h3 {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(18px, 4vw, 24px);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0 0 12px;
  line-height: 1.15;
  color: #fff;
  transform: skewX(-4deg);
}
.es-notify-sub {
  color: #999;
  font-size: 13px;
  margin: 0 0 26px;
  line-height: 1.6;
}
.es-notify-sub strong { color: #fff; }
.es-notify-form {
  display: flex;
  border: 1px solid #333;
  border-radius: 2px;
  overflow: hidden;
}
.es-notify-form input[type="email"] {
  flex: 1;
  background: #1a1a1a;
  border: none;
  color: #fff;
  padding: 13px 15px;
  font-size: 14px;
  outline: none;
  min-width: 0;
}
.es-notify-form input[type="email"]::placeholder { color: #555; }
.es-notify-submit {
  background: var(--accent);
  color: #fff;
  border: none;
  padding: 13px 20px;
  font-family: var(--display);
  font-style: italic;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s;
}
.es-notify-submit:hover { background: #b50e27; }
.es-notify-submit:disabled { opacity: .55; cursor: not-allowed; }
.es-notify-success {
  color: #6fcf97;
  font-size: 13px;
  margin: 16px 0 0;
  line-height: 1.6;
}
@media (max-width: 480px) {
  .es-notify-box { padding: 40px 22px 32px; }
  .es-notify-form { flex-direction: column; }
  .es-notify-submit { padding: 14px; }
}

/* === SHOP PAGE — ASTRA OVERRIDE FIXES === */

/* 1. Badges: Astra sets .img position:static — force relative so badges sit inside the image */
.es-shop-card .img { position: relative !important; }
.es-shop-card .badge { position: absolute !important; top: 12px !important; left: 12px !important; }

/* 2. Price: Astra sets a slate-blue color on .price — force white */
.es-shop-card .price { color: #fff !important; }
.es-shop-card .price .woocommerce-Price-amount,
.es-shop-card .price .woocommerce-Price-currencySymbol,
.es-shop-card .price bdi { color: #fff !important; font-style: italic !important; }

/* 3. Search input: Astra forces white background on all search inputs */
.es-shop-search input[type="search"],
.es-shop-search input[type="text"] {
  background-color: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  -webkit-text-fill-color: #fff !important;
}

/* 4. Shop grid: use border-box sizing so padding is included in max-width — prevents card overflow at smaller screens */
.woocommerce.es-shop ul.products {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 1400px !important;
  padding: 40px !important;
  margin: 0 auto !important;
  gap: 20px !important;
  column-gap: 20px !important;
  row-gap: 30px !important;
}

/* 5. Card name — clip at card boundary; add right padding to avoid clip-path corner */
.es-shop-card .name { overflow: hidden; padding-right: 6px; }

/* 6. Astra removes featured image padding on shop items — restore our card image padding */
.woocommerce.es-shop ul.products li.remove-featured-img-padding .es-shop-card .img,
.woocommerce.es-shop ul.products li.product .es-shop-card .img {
  padding: 24px !important;
}


/* === SHOP PRODUCT CARDS — mirror Categories page styling === */
/* =====================================================================
   SHOP PRODUCT CARD IMAGE RULES — LOCKED 2026-05-30
   Verified working: photos fill the card edge-to-edge, no white border.
   DO NOT MODIFY without backing up first. If something looks wrong,
   the answer is almost always to change the SOURCE IMAGE, not this CSS.
   Server backup: style.css.working-2026-05-30
   ===================================================================== */
.es-cat-card--product { text-decoration: none !important; }
.es-cat-card--product .img {
  aspect-ratio: 1 / 1;
  background: transparent !important;
  display: block !important;
  padding: 0 !important;
  position: relative !important;
  overflow: hidden !important;
}
.es-cat-card--product .img img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  max-width: none !important; max-height: none !important;
  margin: 0 !important;
  position: absolute !important; inset: 0 !important;
}
/* === END LOCKED BLOCK === */
.es-cat-card--product .name {
  font-size: 17px; line-height: 1.2; margin-top: 4px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; min-height: 2.4em;
}
.es-cat-card--product .es-cat-foot { margin-top: auto; }
.es-product-price {
  color: #fff !important;
  font-family: var(--display);
  font-style: italic; font-weight: 900; font-size: 19px;
}
.es-product-price .woocommerce-Price-amount,
.es-product-price .woocommerce-Price-currencySymbol,
.es-product-price bdi { color: #fff !important; font-style: italic !important; }
.es-product-price del { color: var(--muted) !important; font-weight: 400; margin-right: 6px; opacity: 0.7; }
.es-product-price ins { text-decoration: none; color: var(--accent) !important; }
.es-product-price ins .woocommerce-Price-amount,
.es-product-price ins bdi { color: var(--accent) !important; }
/* === END SHOP PRODUCT CARDS === */
