/*
Theme Name: Hest Fitness 2026 v3.9
Theme URI: https://hestfitness.com
Author: Justin Yang
Author URI: https://hestfitness.com
Description: Production-ready 2026 WordPress Theme for Hest Fitness with custom product ordering, enhanced contrast, and professional refinements. Added support for Altcha. Fixed service request form dropdown visibility. Altcha integration and dropdown fix by James Rose — coltarushalo.com. v3.4: Removed "included/free" delivery, installation, and setup claims sitewide (now "available"); removed all GSA, procurement, and compliance references from Military & Government; raised all low-contrast body text to the on-brand --grey token for WCAG AA readability; added form anti-spam layers (honeypot, timing trap, validation, non-Latin script filter); fixed fail-open ALTCHA verification; fixed Quote/Service handler field-name mismatch that was dropping customer names and messages. v3.8: Added Akismet content filtering — the layer that catches human-written and headless-browser spam that mechanical checks cannot. Added a diagnostic footer to form emails (theme version, IP, user agent, captcha/Akismet status). v3.9: Added Cloudflare Turnstile support (free) with automatic ALTCHA fallback; added HEST_FORM_TEST_EMAIL switch to divert form email away from the team during testing. v3.9.1: TEMPORARY — form email hardcoded to a test inbox; team is not receiving enquiries. v3.9.2: Log the reason ALTCHA verification fails. v3.9.4: The theme no longer verifies ALTCHA — double-verification of single-use challenges was rejecting every legitimate submission. Verification belongs to the ALTCHA plugin's interceptor or to Turnstile.
Version: 3.9.4
License: GNU General Public License v2 or later
Text Domain: hest-fitness
Contributor: James Rose <https://www.coltarushalo.com>
*/

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

/*  Variables  */
:root {
  --black: #0a0a0a;
  --dark: #111214;
  --card-bg: #18191d;
  --border: #2a2b30;
  --red: #e8291c;
  --red-dark: #bf1e13;
  --red-glow: rgba(232,41,28,0.15);
  --white: #ffffff;
  --grey: #c8cad0;
  --grey-dim: #9a9ca2;
  --blue: #6aabf7;
  --blue-bg: #1a2035;
  --blue-border: #2d4a7a;
  --font-display: 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', sans-serif;
}

/*  Reset  */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { font-family:var(--font-body); background:var(--black); color:var(--white); }
a { text-decoration:none; color:inherit; }
img { display:block; max-width:100%; }
ul { list-style:none; }
/* Focus Ring */
:focus:not(:focus-visible) { outline:none !important; box-shadow:none !important; border-color:inherit !important; }
:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
#site-navigation :focus,
#site-navigation :focus-visible,
#site-navigation a:focus { outline:none !important; box-shadow:none !important; border:none !important; }

/*  Announce Bar  */
.hest-announce {
  background:var(--red); text-align:center; padding:9px 20px;
  font-size:13px; font-weight:500; letter-spacing:0.04em;
}
.hest-announce a { text-decoration:underline; margin-left:8px; color:#fff; }

/*  Header  */
#masthead {
  background:var(--dark); border:none !important;
  position:sticky; top:0; z-index:10000;
  isolation:isolate;
}
.hest-header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 32px;
  height:96px;
  position:relative;
}
.hest-header-left {
  display:flex; align-items:center; justify-content:flex-start; flex:1;
}
.hest-header-center {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex; align-items:center; justify-content:center;
  pointer-events:auto;
}
.hest-header-right {
  display:flex; align-items:center; justify-content:flex-end; flex:1;
}
a.hest-logo, .hest-logo {
  display:flex; flex-direction:column; line-height:1;
  align-items:center; justify-content:center; text-decoration:none;
  flex-shrink:0;
}
.custom-logo-link { display:flex; align-items:center; }
.custom-logo-link img {
  max-height:88px !important;
  width:auto !important;
  object-fit:contain;
  display:block;
}
/* Force override */
#masthead .custom-logo-link img,
#masthead .hest-logo img,
#masthead a img {
  max-height:88px !important;
  height:auto !important;
  width:auto !important;
  max-width:380px !important;
}
.hest-logo-text { font-family:var(--font-display); font-weight:900; font-size:28px; letter-spacing:0.06em; color:#fff; }
.hest-logo-text em { color:var(--red); font-style:normal; }
.hest-logo-sub { font-size:9px; letter-spacing:0.18em; color:var(--grey); text-transform:uppercase; margin-top:2px; }

.hest-header-search { width:100%; max-width:320px; min-width:280px; position:relative; }
.hest-header-search input {
  width:100%; background:rgba(255,255,255,0.06); border:1px solid var(--border);
  border-radius:6px; padding:10px 44px 10px 16px; color:#fff;
  font-family:var(--font-body); font-size:14px; outline:none; transition:border-color 0.2s;
}
.hest-header-search input::placeholder { color:var(--grey); }
.hest-header-search input:focus { border-color:var(--red); }
.hest-header-search button {
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  background:none; border:none; color:var(--grey); cursor:pointer; padding:0;
}

.hest-header-actions { display:flex; align-items:center; gap:16px; }
.hest-phone {
  display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600;
  color:#fff; white-space:nowrap;
}
.hest-phone svg { color:var(--red); flex-shrink:0; }
.hest-cart-link {
  display:flex; align-items:center; gap:8px; background:rgba(255,255,255,0.06);
  border:1px solid var(--border); padding:8px 16px; border-radius:5px;
  font-size:14px; font-weight:600; color:#fff; transition:border-color 0.2s;
}
.hest-cart-link:hover { border-color:var(--red); }
.hest-btn-quote {
  background:var(--red); color:#fff; font-family:var(--font-display);
  font-weight:700; font-size:14px; letter-spacing:0.08em; text-transform:uppercase;
  padding:10px 22px; border-radius:5px; border:none; cursor:pointer;
  transition:background 0.2s; display:inline-block;
}
.hest-btn-quote:hover { background:var(--red-dark); color:#fff; }

/*  NAV  */
#site-navigation {
  background:var(--black); border:none !important; border-top:none !important;
  border-bottom:none !important; outline:none !important;
  overflow:visible !important;
  position:relative; z-index:9000;
}
.hest-nav-inner {
  display:flex; align-items:center; padding:0 48px; height:52px;
  gap:4px; overflow:visible; position:relative;
}
.hest-nav-split { display:flex; gap:6px; margin-right:20px; flex-shrink:0; }
.hest-nav-split a {
  font-family:var(--font-display); font-weight:700; font-size:13px;
  letter-spacing:0.1em; text-transform:uppercase; padding:8px 16px;
  border-radius:4px; transition:all 0.2s; border:1px solid transparent;
  white-space:nowrap;
}
.hest-nav-split a.hest-residential { background:var(--red-glow); color:var(--red); border-color:var(--red); }
.hest-nav-split a.hest-commercial  { background:var(--blue-bg); color:var(--blue); border-color:var(--blue-border); }
.hest-nav-divider { width:1px; height:28px; background:var(--border); margin:0 14px; flex-shrink:0; }

/* WordPress menu */
#primary-menu { display:flex; gap:0; flex:1; padding:0; margin:0; list-style:none; }
#primary-menu > li { position:relative; }
#primary-menu > li > a,
#primary-menu > li > a:link,
#primary-menu > li > a:visited,
#primary-menu > li > a:hover,
#primary-menu > li > a:focus,
#primary-menu > li > a:active {
  display:block; padding:0 14px; height:52px; line-height:52px;
  font-size:13.5px; font-weight:500; color:var(--grey);
  transition:color 0.2s; white-space:nowrap;
  outline:none !important; border:none !important;
  box-shadow:none !important; text-decoration:none !important;
  -webkit-tap-highlight-color:transparent;
}
#primary-menu > li > a:hover { color:#fff; }
/* Active page: */
#primary-menu > li.current-menu-item > a,
#primary-menu > li.current-menu-ancestor > a,
#primary-menu > li.current-menu-parent > a {
  color:#fff !important;
  font-weight:600;
  outline:none !important;
  box-shadow:none !important;
  border:none !important;
  border-bottom:none !important;
  text-decoration:none !important;
}
/* ── Dropdown chevron on parent items ── */
#primary-menu > li.menu-item-has-children > a::after {
  content: '';
  display:inline-block;
  width:6px; height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  margin-left:6px;
  opacity:0.5;
  transition:transform 0.2s, opacity 0.2s;
  vertical-align:middle;
}
#primary-menu > li.menu-item-has-children:hover > a::after {
  transform:rotate(225deg) translateY(-2px);
  opacity:0.85;
}

/* ── Sub-menu panel ── */
#primary-menu .sub-menu {
  display:block !important;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  position:absolute; top:calc(100% + 6px); left:0;
  background:#0e0f12;
  border:1px solid rgba(255,255,255,0.1);
  border-radius:10px;
  min-width:220px;
  padding:6px;
  box-shadow:0 20px 56px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.04);
  z-index:9999;
  list-style:none;
  transform:translateY(-6px);
  transition:opacity 0.2s ease 0.3s, transform 0.2s ease 0.3s, visibility 0s linear 0.5s;
}

/* Show on hover */
#primary-menu > li:hover > .sub-menu,
#primary-menu > li:focus-within > .sub-menu {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
  transition:opacity 0.18s ease 0s, transform 0.18s ease 0s, visibility 0s linear 0s;
}

/* ── Sub-menu items ── */
#primary-menu .sub-menu li {
  position:relative;
}
#primary-menu .sub-menu li a {
  display:flex; align-items:center; gap:10px;
  padding:9px 12px;
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:13px; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--grey);
  border-radius:6px;
  transition:background 0.15s, color 0.15s;
  height:auto; line-height:1.3;
  outline:none !important; border:none !important; box-shadow:none !important;
  text-decoration:none !important;
  white-space:nowrap;
}
#primary-menu .sub-menu li a::before {
  content:'';
  width:4px; height:4px; border-radius:50%;
  background:var(--red); flex-shrink:0;
  opacity:0; transition:opacity 0.15s;
}
#primary-menu .sub-menu li a:hover {
  background:rgba(255,255,255,0.05);
  color:#fff;
}
#primary-menu .sub-menu li a:hover::before { opacity:1; }
#primary-menu .sub-menu li.current-menu-item > a {
  color:#fff;
  background:rgba(232,41,28,0.08);
}
#primary-menu .sub-menu li.current-menu-item > a::before { opacity:1; }

/* Divider between groups (use WP menu separator items) */
#primary-menu .sub-menu li.hest-divider {
  height:1px; background:rgba(255,255,255,0.07); margin:4px 0; pointer-events:none;
}

/* ── Sub-sub-menu (nested) ── */
#primary-menu .sub-menu .sub-menu {
  top:0; left:calc(100% + 4px);
}

/* Nuclear: link resets */
#site-navigation a,
#site-navigation a:link,
#site-navigation a:visited,
#site-navigation a:hover,
#site-navigation a:focus,
#site-navigation a:active {
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  text-decoration:none !important;
}

/*  Breadcrumb  */
.woocommerce-breadcrumb, .hest-breadcrumb {
  padding:14px 48px; background:var(--dark); border-bottom:1px solid var(--border);
  font-size:12.5px; color:var(--grey);
}
.woocommerce-breadcrumb a { color:var(--grey); }
.woocommerce-breadcrumb a:hover { color:#fff; }

/*  Homepage Hero  */
.hest-hero { display:grid; grid-template-columns:1fr 1fr; min-height:560px; max-height:820px; overflow:hidden; }
/* Mobile: allow panels to grow naturally, no clipping */
@media (max-width:900px) {
  .hest-hero { max-height:none !important; overflow:visible !important; }
}
.hest-panel {
  position:relative; display:flex; align-items:flex-end;
  padding:60px 56px; min-height:560px;
  /* overflow intentionally NOT set here — set desktop-only below */
}
/* Desktop only: clip bg zoom effect cleanly */
@media (min-width:901px) {
  .hest-panel { overflow:hidden; }
}
.hest-panel-bg {
  position:absolute; inset:0; background-size:cover;
  background-position:center; transition:transform 0.6s ease;
}
.hest-panel:hover .hest-panel-bg { transform:scale(1.04); }
.hest-panel-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.42); z-index:1; }
.hest-panel-content { position:relative; z-index:2; }

.hest-panel-badge {
  display:inline-flex; align-items:center; gap:8px; font-size:11px;
  letter-spacing:0.2em; font-weight:600; text-transform:uppercase;
  margin-bottom:14px; padding:5px 12px; border-radius:3px; border:1px solid;
}
.hest-residential-panel .hest-panel-badge { color:var(--red); border-color:rgba(232,41,28,0.5); background:rgba(232,41,28,0.1); }
.hest-commercial-panel .hest-panel-badge  { color:var(--blue); border-color:rgba(106,171,247,0.4); background:rgba(106,171,247,0.08); }

.hest-panel-title {
  font-family:var(--font-display); font-weight:900; font-size:clamp(40px,4vw,64px);
  line-height:0.92; margin-bottom:14px; text-transform:uppercase;
}
.hest-panel-desc { font-size:15px; color:var(--grey); line-height:1.6; max-width:340px; margin-bottom:28px; }
.hest-panel-btn {
  display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display);
  font-weight:700; font-size:14px; letter-spacing:0.1em; text-transform:uppercase;
  padding:14px 28px; border-radius:5px; border:2px solid; transition:all 0.25s;
}
.hest-residential-panel .hest-panel-btn { background:var(--red); border-color:var(--red); color:#fff; }
.hest-residential-panel .hest-panel-btn:hover { background:transparent; color:var(--red); }
.hest-commercial-panel .hest-panel-btn  { background:transparent; border-color:var(--blue); color:var(--blue); }
.hest-commercial-panel .hest-panel-btn:hover { background:var(--blue); color:var(--dark); }

.hest-panel-divider {
  position:absolute; right:0; top:0; bottom:0; width:3px; z-index:3;
  background:linear-gradient(to bottom,transparent,var(--red),transparent);
}
.hest-panel-stats { display:flex; gap:28px; margin-top:28px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.12); }
.hest-stat-num { font-family:var(--font-display); font-weight:900; font-size:28px; line-height:1; color:#fff; }
.hest-residential-panel .hest-stat-num { color:#fff; }
.hest-commercial-panel .hest-stat-num  { color:#fff; }
.hest-stat-label { font-size:11px; color:rgba(255,255,255,0.85); letter-spacing:0.08em; text-transform:uppercase; margin-top:3px; }

/*  Trust Strip  */
.hest-trust {
  background:var(--dark); border-bottom:1px solid var(--border);
  padding:18px 48px; display:flex; justify-content:center; gap:40px; flex-wrap:wrap;
}
.hest-trust-item { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--grey); font-weight:500; }
.hest-trust-item svg { color:var(--red); flex-shrink:0; }

/*  Sections  */
.hest-section { padding:72px 48px; }
.hest-section-dark { background:var(--dark); }
.hest-section-label { font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--red); margin-bottom:10px; display:block; }
.hest-section-title { font-family:var(--font-display); font-weight:900; font-size:clamp(32px,3.5vw,52px); text-transform:uppercase; line-height:0.95; margin-bottom:16px; }
.hest-section-sub { font-size:15px; color:var(--grey); max-width:480px; line-height:1.65; margin-bottom:44px; }

/*  Category Grid */
/* ── Category grid & cards (homepage + residential) ── */
.hest-cat-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  max-width:1280px;
  margin:0 auto;
}
.hest-cat-card {
  position:relative; border-radius:16px; overflow:hidden;
  background:var(--card-bg); border:1px solid var(--border);
  cursor:pointer; display:block; min-height:300px;
  transition:border-color 0.28s, transform 0.28s, box-shadow 0.28s;
}
.hest-cat-card:hover {
  border-color:rgba(232,41,28,0.45);
  transform:translateY(-5px);
  box-shadow:0 22px 54px rgba(0,0,0,0.38);
}
.hest-cat-card img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform 0.55s cubic-bezier(.25,.46,.45,.94);
}
.hest-cat-card:hover img { transform:scale(1.06); }
.hest-cat-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(0,0,0,0.86) 0%, rgba(0,0,0,0.14) 52%, transparent 100%);
  transition:background 0.28s;
}
.hest-cat-card:hover .hest-cat-overlay {
  background:linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.18) 56%, transparent 100%);
}
.hest-cat-top-accent {
  position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--red); opacity:0; z-index:3;
  transition:opacity 0.28s;
}
.hest-cat-card:hover .hest-cat-top-accent { opacity:1; }
.hest-cat-info {
  position:absolute; bottom:0; left:0; right:0;
  padding:22px 20px 20px; z-index:2;
}
.hest-cat-name {
  font-family:var(--font-display); font-weight:900;
  font-size:20px; text-transform:uppercase;
  line-height:1.05; letter-spacing:-0.01em; color:#fff;
  margin-bottom:3px;
}
.hest-cat-count {
  font-size:11px; color:var(--grey);
  letter-spacing:0.06em; margin-bottom:10px;
}
.hest-cat-arrow {
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  background:rgba(232,41,28,0.15); border:1px solid rgba(232,41,28,0.3);
  color:var(--red); opacity:0; transform:translateY(7px);
  transition:opacity 0.28s, transform 0.28s;
}
.hest-cat-card:hover .hest-cat-arrow { opacity:1; transform:translateY(0); }

/*  WOOCOMMERCE Product Grid  */
.woocommerce ul.products,
.hest-product-grid {
  display:grid !important; grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important; margin:0 !important; padding:0 !important; float:none !important;
}
.woocommerce ul.products li.product,
.hest-product-card {
  background:var(--card-bg); border:1px solid var(--border); border-radius:10px;
  overflow:hidden; transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  margin:0 !important; padding:0 !important; float:none !important; width:auto !important;
  display:flex !important; flex-direction:column !important;
}
.woocommerce ul.products li.product:hover,
.hest-product-card:hover {
  border-color:var(--red); transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,0.45);
}
.woocommerce ul.products li.product a.woocommerce-loop-product__link { display:block; }
.woocommerce ul.products li.product img {
  width:100% !important; height:280px !important; object-fit:contain !important; padding:28px !important; background:#ffffff !important;
  padding:20px !important; background:#ffffff !important; transition:transform 0.4s;
  display:block !important; flex-shrink:0 !important;
}
/* Title, price and button show below image */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
  display:block !important;
}
.woocommerce ul.products li.product:hover img { transform:scale(1.05); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family:var(--font-display) !important; font-weight:700 !important; font-size:18px !important;
  line-height:1.1 !important; color:#fff !important; padding:18px 18px 4px !important;
}
.woocommerce ul.products li.product .price {
  font-family:var(--font-display) !important; font-weight:800 !important; font-size:22px !important;
  color:#fff !important; display:block !important; padding:0 18px 14px !important;
}
.woocommerce ul.products li.product .price del { color:var(--grey) !important; font-size:14px !important; font-weight:400 !important; }
.woocommerce ul.products li.product .price ins { text-decoration:none !important; }
.woocommerce ul.products li.product .button {
  display:block !important; width:calc(100% - 36px) !important; margin:0 18px 18px !important;
  background:var(--red) !important; color:#fff !important; font-family:var(--font-display) !important;
  font-weight:700 !important; font-size:13px !important; letter-spacing:0.08em !important;
  text-transform:uppercase !important; padding:10px 18px !important; border-radius:5px !important;
  border:none !important; cursor:pointer !important; transition:background 0.2s !important;
  text-align:center !important;
}
.woocommerce ul.products li.product .button:hover { background:var(--red-dark) !important; }
.woocommerce ul.products li.product .onsale {
  background:#2d7a3a !important; color:#fff !important; font-family:var(--font-display) !important;
  font-weight:700 !important; font-size:10px !important; letter-spacing:0.1em !important;
  text-transform:uppercase !important; padding:4px 9px !important; border-radius:3px !important;
  top:12px !important; left:12px !important; min-height:auto !important; min-width:auto !important;
  line-height:1 !important;
}
.woocommerce .product-brand { font-size:11px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--red); padding:12px 18px 0; }

/*  Shop Layout  */
.hest-shop-wrap { display:grid; grid-template-columns:260px 1fr; min-height:600px; }
.hest-shop-sidebar { background:var(--dark); border-right:1px solid var(--border); padding:32px 24px; }
.hest-shop-sidebar .widget { margin-bottom:28px; padding-bottom:24px; border-bottom:1px solid var(--border); }
.hest-shop-sidebar .widget:last-child { border-bottom:none; }
.hest-shop-sidebar .widget-title { font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:#fff; margin-bottom:14px; }
.hest-shop-sidebar .widget ul { list-style:none; padding:0; }
.hest-shop-sidebar .widget ul li { margin-bottom:9px; }
.hest-shop-sidebar .widget ul li a { font-size:13.5px; color:var(--grey); transition:color 0.15s; }
.hest-shop-sidebar .widget ul li a:hover { color:#fff; }
.hest-shop-sidebar .widget ul li.chosen a,
.hest-shop-sidebar .widget ul li.current-cat a { color:var(--red); }
.hest-shop-sidebar .widget ul li .count { color:var(--grey); font-size:11px; margin-left:4px; }

.woocommerce-main { padding:28px 32px; min-width:0; }
.woocommerce-products-header__title { font-family:var(--font-display); font-weight:900; font-size:44px; text-transform:uppercase; margin-bottom:24px; }
.woocommerce-result-count { font-size:14px; color:var(--grey); margin-bottom:16px; display:block; }
.woocommerce-ordering { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; flex-wrap:wrap; gap:12px; }
.woocommerce-ordering select {
  background:var(--card-bg); border:1px solid var(--border); color:#fff;
  font-family:var(--font-body); font-size:13px; padding:8px 14px; border-radius:6px; outline:none;
}
/* Force product grid to fill */
.woocommerce-main .woocommerce,
.woocommerce-main > * { width:100%; }
.woocommerce-main ul.products {
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  width:100% !important;
}

/*  Pagination  */
.woocommerce-pagination { text-align:center; margin-top:44px; }
.woocommerce-pagination ul { display:inline-flex; gap:6px; padding:0; list-style:none; }
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; background:var(--card-bg); border:1px solid var(--border);
  border-radius:6px; font-size:14px; color:var(--grey); transition:all 0.15s;
}
.woocommerce-pagination ul li a:hover { border-color:#fff; color:#fff; }
.woocommerce-pagination ul li span.current { background:var(--red); border-color:var(--red); color:#fff; font-weight:700; }

/*  Single Product  */
.woocommerce div.product { max-width:1300px; margin:0 auto; padding:48px; }
.woocommerce div.product .woocommerce-product-gallery { margin-bottom:0; }
.woocommerce div.product .woocommerce-product-gallery__wrapper { background:#ffffff; border-radius:12px; border:1px solid rgba(255,255,255,0.1); padding:40px; display:flex; align-items:center; justify-content:center; min-height:420px; }
.woocommerce div.product .woocommerce-product-gallery__wrapper img { max-height:340px; width:auto; object-fit:contain; }
.flex-control-thumbs { display:flex; gap:10px; margin-top:12px; padding:0; list-style:none; }
.flex-control-thumbs li { flex:1; }
.flex-control-thumbs li img { background:#ffffff; border:1px solid rgba(255,255,255,0.1); border-radius:8px; padding:6px; cursor:pointer; transition:border-color 0.15s; height:70px; object-fit:contain; width:100%; }
.flex-control-thumbs li img.flex-active, .flex-control-thumbs li img:hover { border-color:var(--red); }
.woocommerce div.product .summary { padding:0; }
.woocommerce div.product .product_title { font-family:var(--font-display) !important; font-weight:900 !important; font-size:clamp(28px,3vw,44px) !important; line-height:0.95 !important; text-transform:uppercase !important; margin-bottom:16px !important; color:#fff !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-family:var(--font-display) !important; font-weight:900 !important; font-size:40px !important; color:#fff !important; margin-bottom:20px !important; display:block !important; }
.woocommerce div.product p.price del, .woocommerce div.product span.price del { font-size:18px !important; color:var(--grey) !important; font-weight:400 !important; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { text-decoration:none !important; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size:15px; color:rgba(255,255,255,0.75); line-height:1.7; margin-bottom:24px; }
.woocommerce div.product form.cart { display:flex; gap:12px; margin-bottom:20px; }
.woocommerce div.product form.cart .qty { background:var(--card-bg); border:1px solid var(--border); color:#fff; font-size:16px; padding:14px 16px; border-radius:7px; width:80px; text-align:center; outline:none; font-family:var(--font-body); }
.woocommerce div.product form.cart .single_add_to_cart_button { flex:1; background:var(--red) !important; color:#fff !important; font-family:var(--font-display) !important; font-weight:700 !important; font-size:16px !important; letter-spacing:0.08em !important; text-transform:uppercase !important; padding:16px 24px !important; border-radius:7px !important; border:2px solid var(--red) !important; cursor:pointer !important; transition:all 0.2s !important; }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background:transparent !important; }
.woocommerce div.product .product_meta { font-size:13px; color:var(--grey); margin-top:20px; padding-top:20px; border-top:1px solid var(--border); }
.woocommerce div.product .product_meta a { color:var(--red); }

/* Product Tabs */
.woocommerce-tabs { max-width:1300px; margin:0 auto; padding:0 48px 72px; }
.woocommerce-tabs ul.tabs { display:flex; border-bottom:1px solid var(--border); margin-bottom:32px !important; padding:0 !important; list-style:none !important; gap:0; overflow-x:auto; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { display:none !important; }
.woocommerce-tabs ul.tabs li { background:none !important; border:none !important; border-radius:0 !important; padding:0 !important; border-bottom:2px solid transparent !important; margin:0 !important; flex-shrink:0; }
.woocommerce-tabs ul.tabs li a { font-family:var(--font-display); font-weight:700; font-size:14px; letter-spacing:0.08em; text-transform:uppercase; padding:14px 28px; display:block; color:var(--grey); transition:color 0.2s; white-space:nowrap; }
.woocommerce-tabs ul.tabs li a:hover { color:#fff; }
.woocommerce-tabs ul.tabs li.active { border-bottom-color:var(--red) !important; }
.woocommerce-tabs ul.tabs li.active a { color:#fff; }
.woocommerce-tabs .panel { color:rgba(255,255,255,0.8); font-size:15px; line-height:1.75; padding:0 !important; }
.woocommerce-tabs .panel h2 { font-family:var(--font-display); font-weight:900; font-size:28px; text-transform:uppercase; margin-bottom:16px; color:#fff; }
.shop_attributes { width:100%; border-collapse:collapse; }
.shop_attributes th, .shop_attributes td { padding:12px 16px; border-bottom:1px solid var(--border); font-size:14px; text-align:left; }
.shop_attributes th { color:var(--grey); font-weight:500; width:200px; }
.shop_attributes td { font-weight:600; color:#fff; }

/* Related */
.related { max-width:1300px; margin:0 auto; padding:0 48px 72px; }
.related > h2 { font-family:var(--font-display); font-weight:900; font-size:38px; text-transform:uppercase; margin-bottom:28px; }
.related ul.products {
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:18px !important;
  float:none !important;
  clear:both !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.related ul.products li.product {
  display:flex !important;
  flex-direction:column !important;
  background:var(--card-bg) !important;
  border:1px solid var(--border) !important;
  border-radius:10px !important;
  overflow:hidden !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  width:auto !important;
  clear:none !important;
}
.related ul.products li.product a.woocommerce-loop-product__link {
  display:flex !important;
  flex-direction:column !important;
}
.related ul.products li.product img {
  width:100% !important;
  height:200px !important;
  object-fit:contain !important;
  padding:24px !important;
  background:#ffffff !important;
  display:block !important;
  flex-shrink:0 !important;
}
.related ul.products li.product .woocommerce-loop-product__title {
  display:block !important;
  font-family:var(--font-display) !important;
  font-weight:700 !important;
  font-size:17px !important;
  color:#fff !important;
  padding:16px 16px 4px !important;
  margin:0 !important;
}
.related ul.products li.product .price {
  display:block !important;
  font-family:var(--font-display) !important;
  font-weight:800 !important;
  font-size:20px !important;
  color:#fff !important;
  padding:4px 16px 12px !important;
  margin:0 !important;
}
.related ul.products li.product .button {
  display:block !important;
  width:calc(100% - 32px) !important;
  margin:auto 16px 16px !important;
  background:var(--red) !important;
  color:#fff !important;
  font-family:var(--font-display) !important;
  font-weight:700 !important;
  font-size:13px !important;
  letter-spacing:0.08em !important;
  text-transform:uppercase !important;
  padding:10px !important;
  border-radius:5px !important;
  border:none !important;
  cursor:pointer !important;
  text-align:center !important;
  transition:background 0.2s !important;
}
.related ul.products li.product .button:hover { background:var(--red-dark) !important; }

.related ul.products li.product:empty { display:none !important; }
.related ul.products li:empty { display:none !important; }
.related ul.products { grid-auto-flow:dense !important; }

/*  WC Buttons  */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  background:var(--red) !important; color:#fff !important; font-family:var(--font-display) !important;
  font-weight:700 !important; letter-spacing:0.08em !important; text-transform:uppercase !important;
  border-radius:5px !important; border:none !important; cursor:pointer !important; transition:background 0.2s !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background:var(--red-dark) !important; color:#fff !important; }

/*  WC Notices  */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background:var(--card-bg); border-left:4px solid var(--red);
  padding:14px 20px; margin-bottom:20px; border-radius:0 6px 6px 0;
  color:#fff; font-size:14px; list-style:none;
}
.woocommerce-info { border-left-color:var(--blue); }

/*  Cart  */
.woocommerce-cart .woocommerce { padding:48px; max-width:1200px; margin:0 auto; }
.woocommerce table.shop_table { background:var(--card-bg); border:1px solid var(--border); border-radius:10px; border-collapse:collapse; width:100%; }
.woocommerce table.shop_table th { background:var(--dark); padding:14px 18px; font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--grey); border-bottom:1px solid var(--border); text-align:left; }
.woocommerce table.shop_table td { padding:18px; border-bottom:1px solid var(--border); vertical-align:middle; font-size:14px; color:#fff; }
.woocommerce table.shop_table .product-name a { font-weight:600; color:#fff; }
.woocommerce table.shop_table .product-name a:hover { color:var(--red); }
.woocommerce table.shop_table .product-price, .woocommerce table.shop_table .product-subtotal { font-family:var(--font-display); font-weight:800; font-size:18px; }
.woocommerce .cart_totals { background:var(--card-bg); border:1px solid var(--border); border-radius:10px; padding:24px; }
.woocommerce .cart_totals h2 { font-family:var(--font-display); font-weight:900; font-size:22px; text-transform:uppercase; margin-bottom:18px; }
.woocommerce .cart_totals table th, .woocommerce .cart_totals table td { padding:12px 0; border-bottom:1px solid var(--border); font-size:14px; }
.woocommerce .cart_totals .order-total td { font-family:var(--font-display); font-weight:900; font-size:26px; color:#fff; }

/*  CTA Banner  */
.hest-cta-banner { position:relative; padding:80px 48px; text-align:center; overflow:hidden; }
.hest-cta-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.hest-cta-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.72); }
.hest-cta-content { position:relative; z-index:1; max-width:660px; margin:0 auto; }
.hest-cta-title { font-family:var(--font-display); font-weight:900; font-size:clamp(36px,4vw,56px); text-transform:uppercase; line-height:0.95; margin-bottom:18px; }
.hest-cta-sub { font-size:16px; color:var(--grey); line-height:1.65; margin-bottom:34px; }
.hest-cta-actions { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.hest-btn-outline-white { background:transparent; color:#fff; font-family:var(--font-display); font-weight:700; font-size:15px; letter-spacing:0.08em; text-transform:uppercase; padding:15px 32px; border-radius:6px; border:2px solid rgba(255,255,255,0.4); transition:border-color 0.2s; display:inline-block; }
.hest-btn-outline-white:hover { border-color:#fff; color:#fff; }

/*  Brands  */

/* UPDATED */
.hest-brand {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 19px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--grey);
    border: 2px solid rgba(255,255,255,0.15);
    padding: 6px 14px;
    border-radius: 4px;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.hest-brand:hover {
    color: #fff;
    border-color: #e8232a;
}

/*  Footer  */
#colophon { background:#080809; border-top:1px solid var(--border); }
.hest-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding:60px 48px; }
.hest-footer-logo { font-family:var(--font-display); font-weight:900; font-size:26px; letter-spacing:0.06em; margin-bottom:12px; }
.hest-footer-logo em { color:var(--red); font-style:normal; }
.hest-footer-desc { font-size:13.5px; color:var(--grey); line-height:1.7; max-width:270px; margin-bottom:20px; }
.hest-footer-socials { display:flex; gap:8px; }
.hest-social { width:34px; height:34px; background:rgba(255,255,255,0.06); border:1px solid var(--border); border-radius:6px; display:flex; align-items:center; justify-content:center; color:var(--grey); font-size:12px; font-weight:700; transition:all 0.2s; }
.hest-social:hover { background:var(--red); border-color:var(--red); color:#fff; }
.hest-footer-col h4 { font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:0.15em; text-transform:uppercase; color:#fff; margin-bottom:16px; }
.hest-footer-col ul { list-style:none; padding:0; }
.hest-footer-col ul li { margin-bottom:9px; }
.hest-footer-col ul li a { font-size:13.5px; color:var(--grey); transition:color 0.2s; }
.hest-footer-col ul li a:hover { color:#fff; }
.hest-footer-bottom { border-top:1px solid var(--border); padding:20px 48px; display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--grey); flex-wrap:wrap; gap:10px; }
.hest-footer-bottom a { color:var(--grey); margin-left:16px; transition:color 0.2s; }
.hest-footer-bottom a:hover { color:var(--grey); }

/*  Page Content  */
.hest-page-content { padding:56px 48px; max-width:960px; margin:0 auto; }
.hest-page-content h1 { font-family:var(--font-display); font-weight:900; font-size:clamp(32px,4vw,54px); text-transform:uppercase; line-height:0.95; margin-bottom:28px; }
.hest-page-content p { font-size:15px; color:rgba(255,255,255,0.8); line-height:1.8; margin-bottom:16px; }

/*  Animations  */
.fade-up { opacity:0; transform:translateY(24px); transition:opacity 0.5s ease, transform 0.5s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/*  Supress Rogue NAV Output  */
#site-navigation > ul:not(#primary-menu),
#site-navigation > div > ul:not(#primary-menu) { display:none !important; }

/*  RESPONSIVE  */

/*  Tablet (≤1100px)  */
@media (max-width:1100px) {
  .hest-cat-grid { grid-template-columns:repeat(2,1fr); }
  .hest-cat-card:first-child { grid-column:span 1; }
  .woocommerce ul.products { grid-template-columns:repeat(2,1fr) !important; }
  .related ul.products { grid-template-columns:repeat(3,1fr) !important; }
  .hest-footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
}

/*  Mobile (≤900px)  */
@media (max-width:900px) {
  /* Header */
  .hest-header-inner { padding:0 16px !important; height:64px !important; grid-template-columns:auto 1fr auto !important; }
  .hest-header-left { display:none; }
  .hest-header-center { justify-content:center !important; }
  .hest-header-right .hest-phone { display:none; }
  .hest-header-actions { gap:10px; }
  .hest-btn-quote { display:none !important; }

  /* Nav */
  #site-navigation { overflow-x:auto !important; overflow-y:visible !important; }
  .hest-nav-inner { flex-wrap:nowrap !important; overflow-x:auto !important; overflow-y:visible !important; }
  #primary-menu { flex-wrap:nowrap !important; min-width:max-content !important; }
  #primary-menu > li { flex-shrink:0 !important; }
  #primary-menu > li > a { white-space:nowrap !important; }

  .hest-hero { grid-template-columns:1fr; max-height:none !important; overflow:visible !important; }
  .hest-panel-divider { display:none; }
  .hest-panel { min-height:auto !important; height:auto !important; padding:36px 20px 36px !important; overflow:visible !important; align-items:flex-start !important; }
  .hest-panel-title { font-size:clamp(32px,9vw,48px); }
  .hest-panel-stats { gap:16px; }
  .hest-stat-num { font-size:22px; }

  /* Category grid */
  .hest-cat-grid { grid-template-columns:repeat(2,1fr) !important; gap:12px; }
  .hest-cat-card:first-child { grid-column:span 1; }
  .hest-cat-card { min-height:160px; }

  .hest-trust { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:16px; overflow-x:visible; flex-wrap:unset; justify-content:unset; }
  .hest-trust-item { white-space:normal; font-size:12px; }

  .hest-section { padding:44px 16px; }
  .hest-section-title { font-size:clamp(28px,7vw,40px); }
  .hest-section-sub { font-size:14px; margin-bottom:28px; }

  .hest-shop-wrap { grid-template-columns:1fr; }
  .hest-shop-sidebar { display:none; }
  .woocommerce-main { padding:16px; }

  .woocommerce div.product { padding:20px 16px; }
  .woocommerce div.product .woocommerce-product-gallery__wrapper { padding:24px; min-height:280px; }
  .woocommerce-tabs { padding:0 16px 40px; }
  .related { padding:0 16px 40px; }
  .related ul.products { grid-template-columns:repeat(2,1fr) !important; }

  .hest-cta-banner { padding:52px 16px; }
  .hest-cta-actions { flex-direction:column; align-items:center; }

      .hest-brand { font-size:16px; }

  .hest-footer-grid { grid-template-columns:1fr; padding:36px 16px; gap:28px; }
  .hest-footer-bottom { padding:16px; flex-direction:column; text-align:center; gap:8px; }
  .hest-footer-bottom a { margin-left:10px; }

  .woocommerce-breadcrumb, .hest-breadcrumb { padding:10px 16px; }
  .woocommerce-cart .woocommerce { padding:20px 16px; }
  .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding:12px 10px; font-size:13px; }
  .hest-announce { font-size:11px; padding:8px 12px; }
  .hest-locations-grid { grid-template-columns:1fr !important; }
}

/*  Small Mobile (≤600px)  */
@media (max-width:600px) {
  /* Header */
  .hest-header-inner { padding:0 16px !important; height:56px !important; }
  a.hest-logo, .hest-logo { position:absolute !important; left:50% !important; transform:translateX(-50%) !important; margin:0 !important; }

  .woocommerce ul.products { grid-template-columns:1fr !important; }
  .related ul.products { grid-template-columns:1fr !important; }
  .hest-related-grid { grid-template-columns:1fr !important; }
  .woocommerce div.product { padding:16px !important; }
  .woocommerce div.product .woocommerce-product-gallery__wrapper { padding:16px; min-height:220px; }
  .woocommerce div.product .woocommerce-product-gallery__wrapper img { max-height:220px; }
  .hest-cat-grid { grid-template-columns:repeat(2,1fr); }
  .hest-cat-card:first-child { grid-column:1; min-height:180px; }
  .woocommerce div.product form.cart { flex-direction:column; }
  .woocommerce div.product form.cart .qty { width:100%; }
  .hest-logo-text { font-size:22px; }
  .hest-panel { min-height:auto !important; height:auto !important; padding:28px 16px 28px !important; overflow:visible !important; align-items:flex-start !important; }
  .hest-panel-title { font-size:clamp(32px,10vw,48px); }
  .hest-panel-desc { font-size:13px; }
  .woocommerce-tabs ul.tabs { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
  .woocommerce-tabs ul.tabs li a { padding:10px 16px; font-size:13px; white-space:nowrap; }
  .hest-footer-bottom a { margin-left:8px; }
  .woocommerce-message, .woocommerce-info, .woocommerce-error { font-size:13px; padding:12px 14px; }
  .hest-page-content { padding:36px 16px; }
}

/*  Extra small (≤400px)  */
@media (max-width:400px) {
  .hest-nav-split a { font-size:11px; padding:5px 8px; }
  .hest-panel-stats { flex-wrap:wrap; gap:12px; }
  .hest-trust { gap:8px; }
  .woocommerce ul.products li.product img { height:180px !important; }
}
/*  NEW PAGES  */
@media (max-width:900px) {
  /* About page team grid */
  .hest-about-founders { grid-template-columns:1fr !important; }

  /* Contact page */
  .hest-contact-grid { grid-template-columns:1fr !important; }
  .hest-contact-sidebar { position:static !important; }

  /* Quote page */
  .hest-quote-grid { grid-template-columns:1fr !important; }
  .hest-quote-sidebar { position:static !important; }

  /* Team grid */
  div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important; }

  /* Founders */
  div[style*="grid-template-columns:300px 1fr"] { grid-template-columns:1fr !important; }

  /* Contact & quote two-col forms */
  div[style*="grid-template-columns:1fr 420px"],
  div[style*="grid-template-columns:1fr 380px"] { grid-template-columns:1fr !important; }

  /* Quote equipment checkboxes */
  div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr 1fr !important; }

  /* Stats strip */
  div[style*="display:flex;gap:48px"] { gap:24px !important; }

  /* Hero sections */
  section[style*="padding:80px 48px"] { padding:52px 16px !important; }
  section[style*="padding:80px 48px;background:var(--black)"] { padding:52px 16px !important; }
}

@media (max-width:600px) {
  div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
  div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns:1fr !important; }
}

/*  MOBILE  */
@media (max-width:900px) {

  /* General hero padding */
  section[style*="padding:80px 48px"],
  section[style*="padding:60px 48px"] {
    padding:48px 16px !important;
  }
  section[style*="padding:64px 48px"] {
    padding:48px 16px !important;
  }
  section[style*="padding:32px 48px"] {
    padding:24px 16px !important;
  }
  section[style*="padding:20px 48px"] {
    padding:16px 16px !important;
  }

  /* Trust strips */
  section[style*="display:flex;justify-content:center;gap:48px"] {
    gap:16px !important;
    flex-wrap:wrap !important;
  }

  /* Two column grids */
  .hest-two-col,
  .hest-service-grid,
  .hest-cart-layout,
  div[style*="grid-template-columns:1fr 380px"],
  div[style*="grid-template-columns:1fr 420px"],
  div[style*="grid-template-columns:1fr 360px"],
  div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:300px 1fr"],
  div[style*="grid-template-columns:1fr 420px"] {
    grid-template-columns:1fr !important;
  }

  /* Three column grids */
  .hest-three-col,
  div[style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns:1fr !important;
  }

  /* Locations grid */
  .hest-locations-grid {
    grid-template-columns:1fr !important;
  }

  /* Sticky sidebars */
  .hest-sidebar-sticky,
  div[style*="position:sticky;top:100px"] {
    position:static !important;
  }

  /* Form cards */
  .hest-form-card {
    padding:24px !important;
  }

  /* Form two-col grids  */
  .hest-form-grid {
    grid-template-columns:1fr !important;
  }

  /* About page team member layout */
  div[style*="grid-template-columns:300px 1fr"] {
    grid-template-columns:1fr !important;
  }

  /* Team photo */
  div[style*="position:sticky;top:100px;"] {
    position:static !important;
  }

  /* Cart layout */
  .hest-cart-layout {
    grid-template-columns:1fr !important;
  }

  /* Stats strip */
  div[style*="display:flex;gap:48px;flex-wrap:wrap;justify-content:center"] {
    gap:24px !important;
  }

  /* Inner max-width padding */
  div[style*="max-width:1300px;margin:0 auto;padding:80px 48px"] {
    padding:48px 16px !important;
  }

  /* CTA actions stack */
  .hest-cta-actions {
    flex-direction:column !important;
    align-items:center !important;
    gap:12px !important;
  }
  .hest-cta-actions a {
    width:100% !important;
    max-width:320px !important;
    justify-content:center !important;
  }

  /* Quote equipment checkboxes 2 col */
  div[style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns:1fr 1fr !important;
  }
}

@media (max-width:600px) {
  /* single column on small mobile */
  div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:repeat(3,1fr)"],
  div[style*="grid-template-columns:repeat(2,1fr)"],
  .hest-form-grid {
    grid-template-columns:1fr !important;
  }

  /* Hero text */
  section[style*="min-height:400px"] {
    min-height:280px !important;
  }
  section[style*="min-height:420px"] {
    min-height:300px !important;
  }

  /* Guarantee badge */
  div[style*="width:120px;height:120px"] {
    width:80px !important;
    height:80px !important;
    font-size:32px !important;
  }

  /* Form cards tighter */
  .hest-form-card {
    padding:16px !important;
  }
}

/*  PAGE LAYOUT CLASSES  */

/* Stats strip */
.hest-stats-strip {
  display:flex; gap:48px; flex-wrap:wrap; justify-content:center;
}

/* Member row  */
.hest-member-row {
  display:grid; grid-template-columns:300px 1fr;
  gap:48px; align-items:start;
  margin-bottom:64px; padding-bottom:64px;
  border-bottom:1px solid var(--border);
}

/* Two column page grid (form + sidebar) */
.hest-page-grid {
  display:grid; grid-template-columns:1fr 400px;
  gap:48px; align-items:start;
}

/* Two equal columns */
.hest-two-col {
  display:grid; grid-template-columns:1fr 1fr;
  gap:48px; align-items:start;
}

/* Three equal columns */
.hest-three-col {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:24px;
}

/* Sidebar sticky */
.hest-sidebar {
  position:sticky; top:100px;
}

/* Form two-col row */
.hest-form-row {
  display:grid; grid-template-columns:1fr 1fr;
  gap:16px; margin-bottom:16px;
}

/*  MOBILE  */
@media (max-width:900px) {
  .hest-stats-strip { gap:20px; }
  .hest-member-row { grid-template-columns:1fr !important; gap:24px; }
  .hest-page-grid { grid-template-columns:1fr !important; gap:32px; }
  .hest-two-col { grid-template-columns:1fr !important; gap:32px; }
  .hest-three-col { grid-template-columns:1fr !important; gap:16px; }
  .hest-sidebar { position:static !important; }
  .hest-form-row { grid-template-columns:1fr !important; }
  .hest-form-card { padding:24px !important; }

  /* Hero sections */
  .hest-page-hero { padding:48px 16px !important; }

  /* CTA actions */
  .hest-cta-actions {
    flex-direction:column !important;
    align-items:center !important;
    gap:12px !important;
  }
  .hest-cta-actions a {
    width:100% !important;
    max-width:320px !important;
    text-align:center !important;
    justify-content:center !important;
  }

  /* Locations grid */
  .hest-locations-grid { grid-template-columns:1fr !important; }

  /* Section padding */
  .hest-section { padding:44px 16px !important; }
}

@media (max-width:600px) {
  .hest-stats-strip { gap:16px; }
  .hest-three-col { grid-template-columns:1fr 1fr !important; }
  .hest-form-row { grid-template-columns:1fr !important; }
}

/* Hero inner padding mobile fix */
@media (max-width:900px) {
  .hest-hero-inner { padding:48px 16px !important; }
  .hest-section { padding:44px 16px !important; }
  .hest-section-dark { padding:44px 16px !important; }
}

/* Member photo card */
.hest-member-photo {
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  position:sticky;
  top:100px;
}

@media (max-width:900px) {
  .hest-member-photo {
    position:static !important;
    top:auto !important;
  }
  .hest-member-row {
    grid-template-columns:1fr !important;
  }
}

/* Brand links */
a.hest-brand {
  text-decoration: none;
  cursor: pointer;
}
a.hest-brand:hover {
  color: #fff !important;
  border-color: var(--red) !important;
}

/*  NEWS PAGE  */
.hest-news-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.hest-news-card {
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  display:flex;
  flex-direction:column;
}
.hest-news-card:hover {
  border-color:var(--red);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,0.45);
}
.hest-news-img-wrap {
  display:block;
  position:relative;
  height:220px;
  overflow:hidden;
  background:#1a1b20;
  text-decoration:none;
}
.hest-news-no-img {
  background:#1a1b20;
}
.hest-news-img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.5s ease;
}
.hest-news-card:hover .hest-news-img { transform:scale(1.05); }
.hest-news-img-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 60%);
}
.hest-news-body {
  padding:24px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.hest-news-meta {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.hest-news-date {
  display:flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  color:var(--grey);
}
.hest-news-cat {
  font-size:11px;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--red);
  background:var(--red-glow);
  padding:3px 8px;
  border-radius:3px;
}
.hest-news-title {
  font-family:var(--font-display);
  font-weight:800;
  font-size:20px;
  text-transform:uppercase;
  line-height:1.15;
  margin-bottom:10px;
}
.hest-news-title a {
  color:#fff;
  text-decoration:none;
  transition:color 0.2s;
}
.hest-news-title a:hover { color:var(--red); }
.hest-news-excerpt {
  font-size:13.5px;
  color:var(--grey);
  line-height:1.7;
  margin-bottom:20px;
  flex:1;
}
.hest-news-read-more {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--red);
  text-decoration:none;
  margin-top:auto;
  transition:gap 0.2s;
}
.hest-news-read-more:hover { gap:10px; }

/* News pagination */
.page-numbers {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:6px;
  font-size:14px;
  color:var(--grey);
  text-decoration:none;
  transition:all 0.15s;
}
.page-numbers:hover { border-color:#fff; color:#fff; }
.page-numbers.current { background:var(--red); border-color:var(--red); color:#fff; font-weight:700; }
.page-numbers.dots { background:transparent; border:none; }

/* News mobile */
@media (max-width:900px) {
  .hest-news-grid { grid-template-columns:1fr 1fr !important; gap:16px; }
  .hest-news-img-wrap { height:180px; }
}
@media (max-width:600px) {
  .hest-news-grid { grid-template-columns:1fr !important; }
}

/* ABOUT PAGE REDESIGN */

/* Founder card */
.hest-founder-inner {
  display:grid;
  grid-template-columns:360px 1fr;
  min-height:360px;
}
.hest-founder-photo {
  position:relative;
  overflow:hidden;
  background:#1a1b20;
}
.hest-founder-photo img {
  transition:transform 0.5s;
}
.hest-founder-card:hover .hest-founder-photo img {
  transform:scale(1.03);
}
.hest-founder-bio {
  padding:40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Team card grid — 3 columns */
.hest-team-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.hest-team-card {
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  display:flex;
  flex-direction:column;
}
.hest-team-card:hover {
  border-color:var(--red);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,0.45);
}
.hest-team-card-photo {
  position:relative;
  height:280px;
  overflow:hidden;
  background:#1a1b20;
  flex-shrink:0;
}
.hest-team-card:hover .hest-team-card-photo img {
  transform:scale(1.05);
}
.hest-team-card-body {
  padding:24px;
  flex:1;
}

/* Mobile */
@media (max-width:900px) {
  .hest-founder-inner {
    grid-template-columns:1fr !important;
  }
  .hest-founder-photo {
    min-height:280px;
  }
  .hest-founder-bio {
    padding:24px !important;
  }
  .hest-team-grid {
    grid-template-columns:1fr 1fr !important;
    gap:16px;
  }
  .hest-team-card-photo {
    height:220px !important;
  }
}

@media (max-width:600px) {
  .hest-team-grid {
    grid-template-columns:1fr !important;
  }
  .hest-team-card-photo {
    height:260px !important;
  }
}

/*  TEAM CARD GRID  */
.hest-team-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:20px;
}
.hest-team-card {
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  transition:border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  display:flex;
  flex-direction:column;
}
.hest-team-card:hover {
  border-color:var(--red);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,0.5);
}

/* Photo section  */
.hest-team-card-photo {
  position:relative;
  height:260px;
  overflow:hidden;
  background:#1a1b20;
  flex-shrink:0;
}
.hest-team-card-img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  transition:transform 0.4s ease;
}
.hest-team-card:hover .hest-team-card-img {
  transform:scale(1.04);
}

/* Placeholder when no photo */
.hest-team-card-placeholder {
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#1a1b20,#0f1012);
}
.hest-team-card-initials {
  width:80px;
  height:80px;
  background:var(--red);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-weight:900;
  font-size:28px;
  color:#fff;
}

/* Name overlay at bottom of photo */
.hest-team-card-overlay {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:20px 16px 14px;
  background:linear-gradient(to top, rgba(0,0,0,0.92) 0%, transparent 100%);
}
.hest-team-card-title {
  font-size:10px;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:4px;
}
.hest-team-card-name {
  font-family:var(--font-display);
  font-weight:900;
  font-size:18px;
  text-transform:uppercase;
  color:#fff;
  line-height:1.1;
  margin-bottom:4px;
}
.hest-team-card-location {
  display:flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  color:var(--grey);
}

/* Bio section */
.hest-team-card-bio {
  padding:16px;
  flex:1;
}
.hest-team-card-bio p {
  font-size:13px;
  color:var(--grey);
  line-height:1.7;
  margin:0;
}

/* Responsive */
@media (max-width:1100px) {
  .hest-team-grid { grid-template-columns:repeat(3,1fr) !important; }
}
@media (max-width:900px) {
  .hest-team-grid { grid-template-columns:repeat(2,1fr) !important; gap:14px; }
  .hest-team-card-photo { height:220px; }
  .hest-team-card-name { font-size:16px; }
}
@media (max-width:480px) {
  .hest-team-grid { grid-template-columns:1fr !important; }
  .hest-team-card-photo { height:260px; }
}

/* =====================================================
   HEST — App-like Animations & Shared Interaction CSS
   ===================================================== */

/* Scroll reveal base states */
.hest-reveal {
  opacity:0; transform:translateY(32px);
  transition:opacity 0.65s cubic-bezier(.22,.68,0,1.2),transform 0.65s cubic-bezier(.22,.68,0,1.2);
}
.hest-reveal-left {
  opacity:0; transform:translateX(-40px);
  transition:opacity 0.65s cubic-bezier(.22,.68,0,1.2),transform 0.65s cubic-bezier(.22,.68,0,1.2);
}
.hest-reveal-right {
  opacity:0; transform:translateX(40px);
  transition:opacity 0.65s cubic-bezier(.22,.68,0,1.2),transform 0.65s cubic-bezier(.22,.68,0,1.2);
}
.hest-reveal-scale {
  opacity:0; transform:scale(0.92);
  transition:opacity 0.6s ease,transform 0.6s cubic-bezier(.22,.68,0,1.2);
}
.hest-visible { opacity:1 !important; transform:none !important; }

/* Cursor glow */
.hest-glow-section { position:relative; overflow:hidden; }
.hest-cursor-glow {
  pointer-events:none; position:absolute; width:500px; height:500px;
  border-radius:50%; transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(106,171,247,0.06) 0%,transparent 70%);
  transition:left .1s,top .1s; z-index:0;
}

/* Marquee */
.hest-marquee { overflow:hidden; display:flex; }
.hest-marquee-inner {
  display:flex; gap:40px; align-items:center; white-space:nowrap;
  animation:hest-marquee-scroll 28s linear infinite;
  flex-shrink:0;
}
.hest-marquee:hover .hest-marquee-inner { animation-play-state:paused; }
@keyframes hest-marquee-scroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* Photo hover zoom */
.hest-photo-zoom { overflow:hidden; }
.hest-photo-zoom img, .hest-photo-zoom .hest-img-bg {
  transition:transform 0.55s cubic-bezier(.25,.46,.45,.94),filter 0.4s;
}
.hest-photo-zoom:hover img, .hest-photo-zoom:hover .hest-img-bg { transform:scale(1.06); }

/* Tab system */
.hest-tab-panel { display:none; animation:hest-fadein 0.35s ease; }
.hest-tab-panel.active { display:block; }
@keyframes hest-fadein { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

/* Lightbox */
/* Lightbox — fully self-contained, close button scoped inside */
#hest-lightbox {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,0.93);
  z-index:99999; align-items:center; justify-content:center; cursor:zoom-out;
  flex-direction:column;
}
#hest-lightbox.open { display:flex; }
#hest-lightbox .hest-lb-img {
  max-width:90vw; max-height:85vh; border-radius:6px; object-fit:contain;
  cursor:default; box-shadow:0 24px 80px rgba(0,0,0,0.6);
}
/* Close button lives INSIDE #hest-lightbox — never escapes into page flow */
#hest-lightbox .hest-lb-close {
  position:absolute; top:18px; right:20px;
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.18);
  color:#fff; font-size:22px; line-height:1; cursor:pointer;
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s; z-index:1;
}
#hest-lightbox .hest-lb-close:hover { background:rgba(255,255,255,0.2); }

/* Image placeholder shimmer */
.hest-img-placeholder {
  background:linear-gradient(90deg,#18191d 25%,#22232a 50%,#18191d 75%);
  background-size:200% 100%;
  animation:hest-shimmer 1.5s infinite;
}
@keyframes hest-shimmer { from{background-position:200% 0} to{background-position:-200% 0} }

/* Pill badge */
.hest-pill {
  display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase;
  padding:5px 14px; border-radius:20px;
}

/* Bento grid helper */
.hest-bento { display:grid; gap:14px; }

/* Horizontal scroll row */
.hest-hscroll {
  display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; padding-bottom:8px;
  scrollbar-width:none;
}
.hest-hscroll::-webkit-scrollbar { display:none; }
.hest-hscroll > * { scroll-snap-align:start; flex-shrink:0; }

/* Video bg section */
.hest-video-section { position:relative; overflow:hidden; }
.hest-video-section video {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.35;
}

/* ── Category & Industry tile background photo hover zoom ── */
.hest-res-cat:hover .hest-cat-bg-photo,
.hest-ind-card:hover .hest-ind-bg-photo { transform:scale(1.06) !important; }


/* ── HERO TINT OVERLAY (global) ─────────────────────────────────────────────
   Adds a subtle dark tint over every hero background image so text always
   reads cleanly regardless of photo brightness.
─────────────────────────────────────────────────────────────────────────── */

/* Category landing page heroes */
.hest-catlp-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.38);
    z-index: 1;
}

/* Showrooms, About, Services, Residential hero tint */
.hest-page-hero-tint {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.40);
    z-index: 1;
    pointer-events: none;
}

/* Homepage split panels — strengthen the existing gradient tint */


/* ═══════════════════════════════════════════════════════════════
   APP-FEEL UPGRADES — Bigger sections, tiles & cards
   ════════════════════════════════════════════════════════════ */

/* Sections — more breathing room */
.hest-section { padding: 100px 64px !important; }
.hest-section-dark { padding: 100px 64px !important; }
.hest-cta-banner { padding: 110px 64px !important; }

/* Section typography — bigger & bolder */
.hest-section-title { font-size: clamp(40px, 4.5vw, 66px) !important; margin-bottom: 20px !important; }
.hest-section-label { font-size: 12px !important; letter-spacing: 0.26em !important; margin-bottom: 14px !important; }
.hest-section-sub   { font-size: 17px !important; margin-bottom: 52px !important; max-width: 560px !important; }

/* cat-grid overrides removed — see base rules */

/* Product carousel — bigger cards */
.hest-carousel-card       { flex: 0 0 320px !important; border-radius: 14px !important; }
.hest-carousel-img-wrap   { height: 260px !important; }
.hest-carousel-info       { padding: 20px !important; }
.hest-carousel-title      { font-size: 20px !important; margin-bottom: 10px !important; }
.hest-carousel-price      { font-size: 24px !important; margin-bottom: 16px !important; }
.hest-carousel-cta        { font-size: 14px !important; padding: 12px !important; }
.hest-carousel-brand      { font-size: 12px !important; margin-bottom: 8px !important; }

/* Location cards — taller photo area */
.hest-location-card > div:first-child { height: 260px !important; }

/* Hero panels — taller on large screens */
@media(min-width: 1024px) {
    .hest-hero { min-height: 88vh !important; }
    .hest-panel-title { font-size: clamp(52px, 5.5vw, 84px) !important; }
    .hest-panel-desc  { font-size: 17px !important; max-width: 360px !important; }
    .hest-panel-btn   { font-size: 16px !important; padding: 17px 34px !important; }
}

/* News & Promo banner — bigger on large screens */
@media(min-width: 1024px) {
    #hest-news-promo .hest-np-slide { height: 480px !important; }
}

/* Responsive rollbacks */
@media(max-width: 1280px) {
    .hest-section { padding: 80px 40px !important; }
    .hest-section-dark { padding: 80px 40px !important; }
    .hest-carousel-card { flex: 0 0 280px !important; }
}
@media(max-width: 1024px) {
    .hest-cat-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media(max-width: 768px) {
    .hest-section { padding: 60px 20px !important; }
    .hest-section-dark { padding: 60px 20px !important; }
    .hest-cat-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .hest-cat-card { min-height: 220px !important; }
    .hest-carousel-card { flex: 0 0 240px !important; }
    .hest-carousel-img-wrap { height: 200px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   APP-FEEL UPGRADE — Global polish, header, nav, footer, interactions
   ═══════════════════════════════════════════════════════════════════ */

/* ── Page transition veil ── */
#hest-page-veil {
    position:fixed; inset:0; background:var(--black);
    z-index:99999; pointer-events:none;
    opacity:0; transition:opacity 0.28s ease;
}
#hest-page-veil.hest-veil-in  { opacity:1; pointer-events:auto; }
#hest-page-veil.hest-veil-out { opacity:0; }
body { opacity:0; animation:hest-body-in 0.32s ease 0.05s forwards; }
@keyframes hest-body-in { to { opacity:1; } }

/* ── Header: scroll-shrink + blur ── */
#masthead {
    transition: height 0.3s ease, background 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
    will-change: height;
}
#masthead.hest-scrolled {
    background: rgba(17,18,20,0.92) !important;
    backdrop-filter: blur(18px) saturate(1.6) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.6) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,0.06), 0 8px 32px rgba(0,0,0,0.4) !important;
}
#masthead.hest-scrolled .hest-header-inner { height: 62px !important; }
#masthead.hest-scrolled .custom-logo-link img,
#masthead.hest-scrolled .hest-logo img { max-height: 72px !important; }

/* ── Search bar ── */
.hest-header-search {
    width:100%; max-width:300px; min-width:220px; position:relative;
}
.hest-header-search input {
    width:100%; background:rgba(255,255,255,0.055); border:1px solid rgba(255,255,255,0.1);
    border-radius:10px; padding:10px 40px 10px 16px; color:#fff;
    font-family:var(--font-body); font-size:13.5px; outline:none;
    transition:border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.hest-header-search input::placeholder { color:var(--grey-dim); }
.hest-header-search input:focus {
    border-color:rgba(232,41,28,0.5);
    background:rgba(255,255,255,0.08);
    box-shadow:0 0 0 3px rgba(232,41,28,0.1);
}
.hest-header-search button {
    position:absolute; right:12px; top:50%; transform:translateY(-50%);
    background:none; border:none; color:var(--grey); cursor:pointer; padding:0;
    transition:color 0.2s;
}
.hest-header-search button:hover { color:#fff; }
/* #hest-search-results styling handled via functions.php wp_footer injection (fixed positioning) */
#hest-search-results { display:none; }

/* ── Cart link ── */
.hest-cart-link {
    position:relative; display:flex; align-items:center; justify-content:center;
    width:40px; height:40px; border-radius:10px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);
    color:#fff; transition:all 0.2s;
}
.hest-cart-link:hover { background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.2); }
.hest-cart-badge {
    position:absolute; top:-6px; right:-6px;
    width:18px; height:18px; border-radius:50%;
    background:var(--red); color:#fff;
    font-size:10px; font-weight:700;
    display:flex; align-items:center; justify-content:center;
    border:2px solid var(--dark);
}

/* ── Quote button ── */
.hest-btn-quote {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--red); color:#fff;
    font-family:var(--font-display); font-weight:700;
    font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
    padding:10px 20px; border-radius:8px;
    transition:background 0.2s, transform 0.15s, box-shadow 0.2s;
    border:none; cursor:pointer; text-decoration:none;
    box-shadow:0 4px 16px rgba(232,41,28,0.3);
}
.hest-btn-quote:hover {
    background:var(--red-dark);
    transform:translateY(-1px);
    box-shadow:0 6px 20px rgba(232,41,28,0.4);
    color:#fff;
}
.hest-btn-quote:active { transform:translateY(0); }

/* ── Phone link ── */
.hest-phone {
    display:flex; align-items:center; gap:8px;
    font-size:13.5px; font-weight:600; color:rgba(255,255,255,0.75);
    transition:color 0.2s; white-space:nowrap;
}
.hest-phone:hover { color:#fff; }
.hest-phone svg { color:var(--red); flex-shrink:0; }

/* ── Hamburger ── */
.hest-hamburger {
    display:none; flex-direction:column; gap:5px; justify-content:center;
    width:40px; height:40px; padding:8px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);
    border-radius:10px; cursor:pointer; transition:background 0.2s;
    flex-shrink:0;
}
.hest-hamburger span {
    display:block; height:2px; background:#fff; border-radius:2px;
    transition:transform 0.3s, opacity 0.3s, width 0.3s;
}
.hest-hamburger span:nth-child(2) { width:70%; }
.hest-hamburger:hover { background:rgba(255,255,255,0.12); }
.hest-hamburger.is-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hest-hamburger.is-open span:nth-child(2) { opacity:0; width:100%; }
.hest-hamburger.is-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── Nav: polished pill-style active ── */
#primary-menu > li.current-menu-item > a,
#primary-menu > li.current-menu-ancestor > a {
    color:#fff !important;
    background:rgba(255,255,255,0.07) !important;
    border-radius:6px !important;
}
#primary-menu > li > a {
    border-radius:6px;
    transition:color 0.18s, background 0.18s !important;
    padding:0 14px !important;
    margin:0 1px;
}
#primary-menu > li > a:hover { background:rgba(255,255,255,0.06) !important; color:#fff !important; }

/* Sub-menu: glassy */
#primary-menu .sub-menu {
    background:rgba(14,15,18,0.96) !important;
    backdrop-filter:blur(20px) !important;
    -webkit-backdrop-filter:blur(20px) !important;
    border:1px solid rgba(255,255,255,0.09) !important;
    border-radius:14px !important;
    box-shadow:0 24px 64px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.04) !important;
    padding:8px !important;
    min-width:240px !important;
}
#primary-menu .sub-menu li a {
    border-radius:8px !important;
    padding:10px 14px !important;
    font-size:13px !important;
}

/* ── Mobile drawer ── */
#hest-mobile-drawer {
    position:fixed; top:0; right:0; bottom:0; width:320px; max-width:90vw;
    background:#0e0f12; z-index:10001;
    transform:translateX(100%); transition:transform 0.35s cubic-bezier(.25,.46,.45,.94);
    overflow-y:auto; display:flex; flex-direction:column;
    box-shadow:-24px 0 80px rgba(0,0,0,0.6);
}
#hest-mobile-drawer.is-open { transform:translateX(0); }
#hest-drawer-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,0.6);
    z-index:10000; opacity:0; pointer-events:none;
    transition:opacity 0.3s; backdrop-filter:blur(4px);
}
#hest-drawer-overlay.is-open { opacity:1; pointer-events:auto; }
.hest-drawer-inner { display:flex; flex-direction:column; height:100%; min-height:100%; }
.hest-drawer-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 20px 16px; border-bottom:1px solid rgba(255,255,255,0.07);
    flex-shrink:0;
}
.hest-drawer-close {
    width:36px; height:36px; border-radius:8px;
    background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1);
    color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:background 0.2s;
}
.hest-drawer-close:hover { background:rgba(255,255,255,0.14); }
.hest-drawer-search {
    padding:16px 20px; border-bottom:1px solid rgba(255,255,255,0.07); flex-shrink:0;
}
.hest-drawer-search form { position:relative; }
.hest-drawer-search input {
    width:100%; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1);
    border-radius:10px; padding:11px 40px 11px 16px; color:#fff;
    font-size:14px; outline:none;
}
.hest-drawer-search input::placeholder { color:var(--grey-dim); }
.hest-drawer-search button {
    position:absolute; right:12px; top:50%; transform:translateY(-50%);
    background:none; border:none; color:var(--grey); cursor:pointer;
}
.hest-drawer-nav { flex:1; padding:8px 12px; overflow-y:auto; }
#mobile-menu { list-style:none; padding:0; margin:0; }
#mobile-menu li a {
    display:block; padding:13px 12px; font-size:15px; font-weight:500;
    color:var(--grey); border-radius:10px;
    transition:background 0.15s, color 0.15s; text-decoration:none;
}
#mobile-menu li a:hover { background:rgba(255,255,255,0.07); color:#fff; }
#mobile-menu li.current-menu-item > a { color:#fff; background:rgba(255,255,255,0.07); }
#mobile-menu .sub-menu { list-style:none; padding:0 0 0 16px; margin:0; }
#mobile-menu .sub-menu li a { font-size:13.5px; padding:9px 12px; color:var(--grey); }
.hest-drawer-ctas {
    padding:16px 20px 28px; display:flex; flex-direction:column; gap:10px;
    border-top:1px solid rgba(255,255,255,0.07); flex-shrink:0;
}
.hest-drawer-phone {
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:13px; border-radius:10px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);
    color:var(--grey); font-size:14px; font-weight:600;
    text-decoration:none; transition:background 0.2s;
}
.hest-drawer-phone:hover { background:rgba(255,255,255,0.1); color:#fff; }
.hest-drawer-phone svg { color:var(--red); }

/* ── Trust strip ── */
.hest-trust {
    background:rgba(17,18,20,0.95); border-bottom:1px solid rgba(255,255,255,0.07);
    padding:16px 48px; display:flex; justify-content:center; gap:36px; flex-wrap:wrap;
}
.hest-trust-item {
    display:flex; align-items:center; gap:9px;
    font-size:12.5px; color:var(--grey); font-weight:500;
    letter-spacing:0.02em;
}
.hest-trust-item svg { color:var(--red); flex-shrink:0; }

/* cat-card polish overrides removed — see base rules */

/* ── Product carousel cards ── */
.hest-carousel-card { border-radius:16px !important; }
.hest-carousel-cta {
    border-radius:8px !important;
    font-size:13px !important; letter-spacing:0.06em !important;
}

/* ── Sections ── */
.hest-section-label {
    display:inline-flex; align-items:center; gap:8px;
    font-size:11px !important; letter-spacing:0.28em !important;
    margin-bottom:14px !important;
}
.hest-section-label::before {
    content:'';
    display:inline-block; width:20px; height:2px;
    background:var(--red); border-radius:2px; flex-shrink:0;
}

/* ── CTA Banner ── */
.hest-cta-banner { border-radius:0; }
.hest-cta-title {
    font-family:var(--font-display); font-weight:900;
    font-size:clamp(36px,4.5vw,68px) !important;
    text-transform:uppercase; line-height:0.9; margin-bottom:16px;
}

/* ── Panel divider glow ── */
.hest-panel-divider {
    background:linear-gradient(to bottom, transparent, var(--red) 30%, var(--red) 70%, transparent) !important;
    width:2px !important;
    box-shadow: 0 0 16px 2px rgba(232,41,28,0.4);
}

/* ── Location cards ── */
.hest-location-card {
    border-radius:16px !important;
    transition:border-color 0.25s, transform 0.25s, box-shadow 0.25s !important;
}
.hest-location-card:hover {
    border-color:rgba(232,41,28,0.5) !important;
    transform:translateY(-6px) !important;
    box-shadow:0 28px 64px rgba(0,0,0,0.5) !important;
}

/* ── Panel stats ── */
.hest-stat-num { font-size:32px !important; }
.hest-panel-badge { border-radius:6px !important; font-size:11.5px !important; }
.hest-panel-btn { border-radius:8px !important; }

/* ── Scroll animations ── */
.hest-reveal {
    opacity:0; transform:translateY(22px);
    transition:opacity 0.55s ease, transform 0.55s ease;
}
.hest-reveal.hest-visible { opacity:1; transform:none; }
.hest-reveal-left  { opacity:0; transform:translateX(-28px); transition:opacity 0.55s ease, transform 0.55s ease; }
.hest-reveal-right { opacity:0; transform:translateX(28px);  transition:opacity 0.55s ease, transform 0.55s ease; }
.hest-reveal-scale { opacity:0; transform:scale(0.94);       transition:opacity 0.5s ease, transform 0.5s ease; }
.hest-reveal-left.hest-visible,
.hest-reveal-right.hest-visible,
.hest-reveal-scale.hest-visible { opacity:1; transform:none; }
.fade-up { opacity:0; transform:translateY(18px); transition:opacity 0.5s ease, transform 0.5s ease; }
.fade-up.visible { opacity:1; transform:none; }

/* ── Cursor glow ── */
.hest-cursor-glow {
    position:absolute; width:400px; height:400px; border-radius:50%;
    background:radial-gradient(circle,rgba(106,171,247,0.06) 0%,transparent 70%);
    transform:translate(-50%,-50%); pointer-events:none; transition:left 0.12s,top 0.12s;
    z-index:0;
}

/* ── Lightbox ── */
#hest-lightbox {
    position:fixed; inset:0; background:rgba(0,0,0,0.92);
    z-index:99998; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity 0.25s;
    backdrop-filter:blur(8px);
}
#hest-lightbox.open { opacity:1; pointer-events:auto; }
.hest-lb-img { max-width:90vw; max-height:90vh; border-radius:12px; box-shadow:0 32px 80px rgba(0,0,0,0.8); }
.hest-lb-close {
    position:absolute; top:20px; right:20px; background:rgba(255,255,255,0.1);
    border:1px solid rgba(255,255,255,0.2); color:#fff; width:44px; height:44px;
    border-radius:50%; font-size:22px; cursor:pointer; display:flex; align-items:center;
    justify-content:center; transition:background 0.2s; backdrop-filter:blur(8px);
}
.hest-lb-close:hover { background:rgba(255,255,255,0.2); }

/* ── Back to top ── */
#hest-back-to-top {
    position:fixed; bottom:28px; right:28px; z-index:9000;
    width:46px; height:46px; border-radius:12px;
    background:rgba(17,18,20,0.9); border:1px solid rgba(255,255,255,0.12);
    color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    opacity:0; transform:translateY(16px); pointer-events:none;
    transition:opacity 0.25s, transform 0.25s, background 0.2s;
    backdrop-filter:blur(12px); box-shadow:0 8px 32px rgba(0,0,0,0.4);
}
#hest-back-to-top.visible { opacity:1; transform:none; pointer-events:auto; }
#hest-back-to-top:hover { background:var(--red); border-color:var(--red); }

/* ══ FOOTER UPGRADE ══ */
#colophon {
    background:#080809;
    border-top:1px solid rgba(255,255,255,0.07);
}

/* CTA strip */
.hest-footer-cta-strip {
    background:linear-gradient(105deg, #0f0f11 0%, #141620 50%, #0f0f11 100%);
    border-bottom:1px solid rgba(255,255,255,0.07);
    padding:44px 64px;
}
.hest-footer-cta-inner {
    max-width:1300px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:24px;
}
.hest-footer-cta-title {
    font-family:var(--font-display); font-weight:900;
    font-size:clamp(22px,2.5vw,34px); text-transform:uppercase;
    letter-spacing:-0.01em; color:#fff; margin-bottom:4px;
}
.hest-footer-cta-sub { font-size:14px; color:var(--grey); }
.hest-footer-cta-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.hest-footer-phone-btn {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12);
    color:var(--grey); font-size:14px; font-weight:600;
    padding:12px 20px; border-radius:8px; text-decoration:none;
    transition:background 0.2s, color 0.2s; white-space:nowrap;
}
.hest-footer-phone-btn:hover { background:rgba(255,255,255,0.12); color:#fff; }
.hest-footer-phone-btn svg { color:var(--red); }

/* Footer grid */
.hest-footer-grid {
    display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr;
    gap:48px; padding:64px 64px 48px; max-width:1428px; margin:0 auto;
}
.hest-footer-brand-col {}
.hest-footer-logo { margin-bottom:4px; }
.hest-footer-desc {
    font-size:13.5px; color:var(--grey);
    line-height:1.75; max-width:280px; margin-bottom:22px;
}

/* Social icons */
.hest-footer-socials { display:flex; gap:8px; margin-bottom:24px; }
.hest-social {
    width:38px; height:38px; border-radius:10px;
    background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.09);
    display:flex; align-items:center; justify-content:center;
    color:var(--grey); transition:all 0.2s;
}
.hest-social:hover { background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-2px); }

/* Showroom pills */
.hest-footer-locations {}
.hest-footer-loc-label {
    font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--grey); margin-bottom:8px;
}
.hest-footer-loc-pills { display:flex; flex-wrap:wrap; gap:6px; }
.hest-footer-loc-pill {
    display:inline-block; padding:5px 12px; border-radius:6px;
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.09);
    font-size:11.5px; color:var(--grey);
    transition:background 0.2s, color 0.2s; text-decoration:none;
}
.hest-footer-loc-pill:hover { background:rgba(255,255,255,0.1); color:#fff; }

/* Footer columns */
.hest-footer-col h4 {
    font-family:var(--font-display); font-weight:700;
    font-size:11.5px; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--grey); margin-bottom:18px;
}
.hest-footer-col ul { list-style:none; padding:0; margin:0; }
.hest-footer-col ul li { margin-bottom:10px; }
.hest-footer-col ul li a {
    font-size:14px; color:var(--grey);
    transition:color 0.2s; display:inline-block;
}
.hest-footer-col ul li a:hover { color:#fff; transform:translateX(3px); }

/* Footer bottom */
.hest-footer-bottom {
    border-top:1px solid rgba(255,255,255,0.07);
    padding:22px 64px;
    display:flex; justify-content:space-between; align-items:center;
    font-size:12px; color:var(--grey); flex-wrap:wrap; gap:10px;
    max-width:1428px; margin:0 auto;
}
.hest-footer-bottom-links { display:flex; align-items:center; gap:12px; }
.hest-footer-bottom-links a { color:var(--grey); transition:color 0.2s; }
.hest-footer-bottom-links a:hover { color:var(--grey); }
.hest-footer-dot { color:rgba(255,255,255,0.15); }

/* ══ RESPONSIVE BREAKPOINTS ══ */

/* Show hamburger at 1024px */
@media(max-width:1024px) {
    .hest-hamburger { display:flex !important; }
    .hest-phone { display:none !important; }
    .hest-btn-quote { display:none !important; }
    .hest-header-left { display:none !important; }
    #site-navigation { display:none !important; }
    .hest-footer-grid { grid-template-columns:1fr 1fr; gap:36px; padding:48px 40px 36px; }
    .hest-footer-cta-strip { padding:36px 40px; }
    .hest-footer-bottom { padding:20px 40px; }
}

@media(max-width:768px) {
    .hest-header-inner { padding:0 16px !important; height:60px !important; }
    .hest-header-actions { gap:8px; }
    .hest-footer-grid { grid-template-columns:1fr; padding:36px 20px 28px; gap:24px; }
    .hest-footer-cta-strip { padding:28px 20px; }
    .hest-footer-cta-inner { flex-direction:column; align-items:flex-start; }
    .hest-footer-bottom { padding:18px 20px; flex-direction:column; text-align:center; gap:8px; }
    .hest-trust { gap:20px; padding:14px 20px; }
    .hest-trust-item { font-size:12px; }
    #hest-back-to-top { bottom:20px; right:16px; }
}

@media(max-width:480px) {
    .hest-cart-link { display:none; }
    .hest-footer-cta-actions { flex-direction:column; width:100%; }
    .hest-footer-phone-btn { justify-content:center; }
}


/* =====================================================================
   APP-STYLE POLISH — Category Cards, Micro-interactions & Global UX
   ===================================================================== */

/* hest-res-cat-app overrides removed — cards now use standard hest-cat-card */

/* --- Homepage cat-grid: responsive upgrades --- */
@media (max-width:1200px) {
  .hest-cat-grid { grid-template-columns: repeat(3,1fr) !important; max-width: 900px !important; }
}
@media (max-width:768px) {
  .hest-cat-grid { grid-template-columns: repeat(2,1fr) !important; gap: 12px !important; }
  .hest-cat-card { min-height: 240px !important; }
}
@media (max-width:480px) {
  .hest-cat-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .hest-cat-card { min-height: 200px !important; }
}

/* --- Residential cat grid: responsive --- */
@media (max-width:1200px) {
  #hest-cat-grid { grid-template-columns: repeat(3,1fr) !important; }
}
@media (max-width:768px) {
  #hest-cat-grid { grid-template-columns: repeat(2,1fr) !important; gap: 12px !important; }
}
@media (max-width:480px) {
  #hest-cat-grid { grid-template-columns: 1fr !important; }
}

/* --- Active press state for all interactive cards (app feel) --- */
.hest-cat-card:active,
.hest-res-cat-app:active,
.hest-res-feat-card:active {
  transform: translateY(-2px) scale(0.99) !important;
  transition-duration: 0.08s !important;
}

/* --- Smooth page-wide focus ring (accessibility + polish) --- */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #e02020;
  outline-offset: 3px;
  border-radius: 4px;
}

/* --- Back-to-top button: ensure it shows above footer --- */
#hest-back-to-top {
  z-index: 9999 !important;
}

/* --- Footer: remove top CTA gap when strip is gone --- */
footer#colophon { padding-top: 0 !important; }
.hest-footer-grid { padding-top: 48px !important; }

/* --- Carousel scroll indicator fade edges --- */
.hest-carousel-wrap::after,
#res-featured .hest-carousel-wrap::after {
  content: '';
  position: absolute;
  right: 0; top: 0; bottom: 12px; width: 80px;
  background: linear-gradient(to left, var(--bg, #0a0a0a), transparent);
  pointer-events: none;
  z-index: 2;
}

/* --- Section transitions for scroll-reveal polish --- */
.hest-reveal {
  will-change: transform, opacity;
}

/* --- Trust bar sticky on scroll for commercial polish --- */
.hest-trust {
  transition: box-shadow 0.3s;
}

/* =====================================================================
   COMPREHENSIVE MOBILE OPTIMISATION — All Pages
   Breakpoints: tablet ≤1024px | mobile ≤768px | small ≤480px | xs ≤360px
   ===================================================================== */

/* ── Slideshow / Promo banner ── */
@media (max-width: 768px) {
  #hest-news-promo .hest-np-slide { height: 300px !important; }
  #hest-news-promo .hest-np-slide > div[style*="padding:0 64px"],
  #hest-news-promo .hest-np-slide > div[style*="padding:0 64"] { padding: 0 20px !important; }
  #hest-news-promo h2 { font-size: clamp(26px,8vw,40px) !important; }
  #hest-news-promo p  { font-size: 14px !important; margin-bottom: 20px !important; }
  #hest-news-promo a[style*="padding:15px"] { padding: 12px 22px !important; font-size: 13px !important; }
}
@media (max-width: 480px) {
  #hest-news-promo .hest-np-slide { height: 260px !important; }
  #hest-news-promo button[onclick*="hestNP"] { width: 38px !important; height: 38px !important; }
}

/* ── Sections with large fixed horizontal padding ── */
@media (max-width: 768px) {
  /* All sections using 56px or 64px side padding */
  section[style*="padding:96px 56px"],
  section[style*="padding:80px 56px"],
  section[style*="padding:80px 64px"],
  section[style*="padding:96px 64px"],
  section[style*="padding:100px 56px"],
  section[style*="padding:100px 64px"],
  #hest-brands[style*="padding:80px 64px"] {
    padding-left: 18px !important;
    padding-right: 18px !important;
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }
}
@media (max-width: 480px) {
  section[style*="padding:96px 56px"],
  section[style*="padding:80px 56px"],
  section[style*="padding:80px 64px"],
  section[style*="padding:96px 64px"],
  section[style*="padding:100px 56px"],
  section[style*="padding:100px 64px"] {
    padding-left: 14px !important;
    padding-right: 14px !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
}

/* ── Residential hero ── */
@media (max-width: 768px) {
  .hest-res-hero { min-height: 60vh !important; }
  .hest-res-hero > div[style*="padding:0 56px"] { padding: 0 18px 40px !important; }
  .hest-res-hero h1 { font-size: clamp(40px,11vw,72px) !important; }
  .hest-res-hero > div[style*="padding:0 56px"] > div:last-child { padding-top: 20px !important; gap: 0 !important; flex-wrap: wrap !important; }
  .hest-res-hero > div[style*="padding:0 56px"] > div:last-child > div { padding-right: 16px !important; margin-right: 16px !important; }
}
@media (max-width: 480px) {
  .hest-res-hero { min-height: 55vh !important; }
  .hest-res-hero > div[style*="padding:0 56px"] { padding: 0 14px 32px !important; }
  .hest-res-hero > div:last-child[style*="display:flex;gap:14px"] { flex-direction: column !important; }
}

/* ── Residential category grid ── */
@media (max-width: 900px) {
  #hest-cat-grid { grid-template-columns: repeat(3,1fr) !important; gap: 12px !important; }
}
@media (max-width: 600px) {
  #hest-cat-grid { grid-template-columns: repeat(2,1fr) !important; gap: 10px !important; }
  .hest-res-cat-app { min-height: 200px !important; }
  .hest-res-cat-app > div[style*="padding:32px"] { padding: 20px 16px 18px !important; }
  .hest-res-cat-app h3 { font-size: 20px !important; }
}
@media (max-width: 380px) {
  #hest-cat-grid { grid-template-columns: 1fr !important; }
}

/* ── Residential: Why HEST sticky grid → stacked ── */
@media (max-width: 1024px) {
  .hest-why-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .hest-why-grid > div:first-child { position: static !important; }
}

/* ── Residential: Process 4-col → 2-col → 1-col ── */
@media (max-width: 768px) {
  .hest-process-4 { grid-template-columns: 1fr 1fr !important; gap: 28px !important; }
  .hest-proc-line { display: none !important; }
}
@media (max-width: 480px) {
  .hest-process-4 { grid-template-columns: 1fr !important; }
}

/* ── Residential builds grid ── */
@media (max-width: 768px) {
  .hest-builds-grid { grid-template-columns: 1fr 1fr !important; grid-auto-rows: 180px !important; }
  .hest-builds-grid > div:first-child { grid-column: span 2 !important; }
}
@media (max-width: 480px) {
  .hest-builds-grid { grid-template-columns: 1fr !important; grid-auto-rows: 200px !important; }
  .hest-builds-grid > div:first-child { grid-column: span 1 !important; }
}

/* ── Featured products carousel (residential + homepage) ── */
@media (max-width: 768px) {
  .hest-res-feat-card { flex: 0 0 200px !important; }
  .hest-carousel-card { flex: 0 0 200px !important; }
  .hest-res-feat-card > a[style*="height:190px"] { height: 160px !important; }
  .hest-carousel-img-wrap { height: 160px !important; }
}
@media (max-width: 480px) {
  .hest-res-feat-card { flex: 0 0 172px !important; }
  .hest-carousel-card { flex: 0 0 172px !important; }
}

/* ── Homepage category cards ── */
@media (max-width: 1024px) {
  .hest-cat-grid { grid-template-columns: repeat(3,1fr) !important; gap: 12px !important; max-width: 100% !important; }
  .hest-cat-card { min-height: 240px !important; }
}
@media (max-width: 640px) {
  .hest-cat-grid { grid-template-columns: repeat(2,1fr) !important; gap: 10px !important; }
  .hest-cat-card { min-height: 200px !important; }
  .hest-cat-name { font-size: 17px !important; }
}
@media (max-width: 380px) {
  .hest-cat-card { min-height: 180px !important; }
}

/* ── Brands grid ── */
@media (max-width: 900px) {
  .hest-brands-grid { grid-template-columns: repeat(4,1fr) !important; }
  .hest-brand-tile { padding: 24px 16px !important; min-height: 90px !important; }
}
@media (max-width: 600px) {
  .hest-brands-grid { grid-template-columns: repeat(3,1fr) !important; }
  #hest-brands { padding: 48px 14px !important; }
}
@media (max-width: 380px) {
  .hest-brands-grid { grid-template-columns: repeat(2,1fr) !important; }
}

/* ── Header: ensure nav scrolls on small screens ── */
@media (max-width: 768px) {
  .hest-header-inner { padding: 0 14px !important; }
  #site-navigation { -webkit-overflow-scrolling: touch; }
  #primary-menu > li > a { font-size: 12px !important; padding: 8px 10px !important; }
}

/* ── Footer ── */
@media (max-width: 768px) {
  .hest-footer-grid { padding: 40px 18px 28px !important; }
  .hest-footer-desc { max-width: 100% !important; }
  .hest-footer-locations { margin-top: 16px; }
  .hest-footer-loc-pills { flex-wrap: wrap; gap: 6px; }
}
@media (max-width: 480px) {
  .hest-footer-grid { grid-template-columns: 1fr !important; gap: 24px !important; padding: 32px 14px 24px !important; }
  .hest-footer-bottom { padding: 14px !important; flex-direction: column !important; text-align: center !important; gap: 6px !important; }
}

/* ── Commercial page hero padding ── */
@media (max-width: 768px) {
  section[style*="padding:96px 56px;background:#111214"],
  section[style*="padding:96px 56px;background:#0a0a0a"],
  section[style*="padding:80px 56px;background:#0a0a0a"] {
    padding: 52px 18px !important;
  }
  /* Commercial industry cards grid */
  div[style*="grid-template-columns:repeat(3,1fr)"][style*="gap:16px"],
  div[style*="grid-template-columns:repeat(3,1fr)"][style*="gap:14px"] {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 480px) {
  div[style*="grid-template-columns:repeat(3,1fr)"],
  div[style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── Industry/about pages: stats strip ── */
@media (max-width: 768px) {
  div[style*="display:flex"][style*="gap:48px"],
  div[style*="display:flex"][style*="gap:64px"] {
    gap: 20px !important;
    flex-wrap: wrap !important;
  }
}

/* ── Category page hero ── */
@media (max-width: 768px) {
  .hest-catlp-hero { min-height: 52vh !important; }
  .hest-catlp-hero > div[style*="padding:0 56px"] { padding: 0 18px 36px !important; }
  .hest-catlp-hero h1 { font-size: clamp(36px,10vw,64px) !important; }
}

/* ── Bottom red CTA sections ── */
@media (max-width: 768px) {
  section[style*="background:#e02020"] { padding: 64px 18px !important; }
  section[style*="background:#e02020"] h2 { font-size: clamp(32px,9vw,60px) !important; }
  section[style*="background:#e02020"] > div > div > div[style*="display:flex;gap:14px"],
  section[style*="background:#e02020"] > div > div[style*="display:flex;gap:14px"] {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  section[style*="background:#e02020"] a { text-align: center !important; justify-content: center !important; }
}

/* ── Global inline flex rows that break on small screens ── */
@media (max-width: 600px) {
  div[style*="display:flex;gap:14px;flex-wrap:wrap"],
  div[style*="display:flex;flex-wrap:wrap;gap:14px"] {
    gap: 10px !important;
  }
  /* Hero CTA button pairs → stack */
  .hest-res-hero div[style*="display:flex;gap:14px"] a,
  section[style*="background:#e02020"] div a {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* ── Showroom grid ── */
@media (max-width: 768px) {
  .hest-locations-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
}

/* ── Contact / Quote / Service-Request forms ── */
@media (max-width: 768px) {
  .hest-contact-grid,
  .hest-quote-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  .hest-contact-sidebar,
  .hest-quote-sidebar { position: static !important; }
  form[style*="display:grid;grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
}

/* ── Prevent horizontal scroll globally ── */
html, body { overflow-x: hidden !important; max-width: 100vw; }
img, video, iframe { max-width: 100%; height: auto; }

/* =====================================================================
   BRAND GRID — .hest-bw / .hest-bc
   Used on: Homepage, Commercial Solutions, Residential (if added)
   4-column grid, last row centered via left padding offset.
   ===================================================================== */
.hest-bw {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: none;
  border: none;
  border-radius: 0;
  /* last-row centering via pseudo trick — no PHP div injection needed */
  justify-items: center;
}
/* Make items fill their grid cell fully */
.hest-bw > .hest-bc,
.hest-bw > div.hest-bc {
  width: 100%;
  justify-self: stretch;
}
.hest-bw-row { display: contents; }
.hest-bw-r4 { display: contents; }
.hest-bc {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  padding: 32px 24px;
  background: none;
  border: none;
  border-radius: 0;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.2s;
}
.hest-bc:hover {
  background: none;
  transform: translateY(-3px);
  opacity: 0.85;
}

/* Last row centering wrapper */
.hest-bw-lastrow {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  width: 100%;
  max-width: 100%;
}
.hest-bw-lastrow .hest-bc {
  width: 25%;
  flex: 0 0 25%;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .hest-bw-lastrow .hest-bc { width: 50%; flex: 0 0 50%; }
}
@media (max-width: 480px) {
  .hest-bw-lastrow .hest-bc { width: 50%; flex: 0 0 50%; }
}
.hest-bc-logo {
  height: 52px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  opacity: 1;
  transition: opacity 0.25s, transform 0.25s;
  display: block;
  filter: none;
}
.hest-bc:hover .hest-bc-logo { opacity: 0.85; transform: scale(1.04); }
.hest-bc-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--grey);
  text-align: center;
  transition: color 0.22s;
}
.hest-bc:hover .hest-bc-name { color: rgba(255,255,255,0.85); }

/* Brand section padding helpers */
#hest-brands,
.hest-brands-section { padding: 72px 56px; }

@media (max-width: 900px) {
  .hest-bw { grid-template-columns: repeat(2, 1fr); }
  .hest-bc { min-height: 96px; padding: 24px 18px; }
  #hest-brands, .hest-brands-section { padding: 52px 18px !important; }
}
@media (max-width: 480px) {
  .hest-bw { grid-template-columns: repeat(2, 1fr); }
  .hest-bc { min-height: 82px; padding: 20px 14px; }
  .hest-bc-logo { height: 28px; }
  .hest-bc-name { font-size: 13px; }
}

/* ── Product description HTML layout override ──────────────────────────────
 * WooCommerce's bundled CSS sets td { display:block } on smaller viewports
 * which collapses custom table-based product description layouts.
 * These rules restore proper table rendering inside the overview tab.
 * ──────────────────────────────────────────────────────────────────────── */
#hp-panel-overview table,
#hp-panel-overview thead,
#hp-panel-overview tbody,
#hp-panel-overview tfoot,
#hp-panel-overview tr,
#hp-panel-overview th,
#hp-panel-overview td {
    display: revert !important;
    float: none !important;
    width: auto !important;
}
#hp-panel-overview table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}
#hp-panel-overview table[cellspacing="8"] td {
    width: auto !important;
}
/* Restore widths set via width attribute on the station/feature tables */
#hp-panel-overview td[width="20%"] { width: 20% !important; }
#hp-panel-overview td[width="50%"] { width: 50% !important; }
#hp-panel-overview td[width="33%"] { width: 33.33% !important; }

/* ── Overview tab: prevent WooCommerce from collapsing td/div layouts ── */
.woocommerce-tabs .panel table { width: 100%; }
.woocommerce-tabs .panel table td,
.woocommerce-tabs .panel table th { display: table-cell !important; }
.woocommerce-tabs .panel table tr { display: table-row !important; }
.woocommerce-tabs .panel div[style*="display:flex"],
.woocommerce-tabs .panel div[style*="display: flex"] { display: flex !important; }
.woocommerce-tabs .panel div[style*="display:grid"],
.woocommerce-tabs .panel div[style*="display: grid"] { display: grid !important; }

/* ── Product description flex layout fix ──────────────────────────────────
 * Forces all flex containers inside the product overview tab to render
 * correctly, overriding browser and WooCommerce stylesheet interference.
 * ──────────────────────────────────────────────────────────────────────── */
#hp-panel-overview div[style*="display:flex"],
#hp-panel-overview div[style*="display: flex"] {
    display: flex !important;
    flex-wrap: wrap;
}
#hp-panel-overview div[style*="flex:1"],
#hp-panel-overview div[style*="flex: 1"] {
    flex: 1 1 auto;
}

/* ── KEY FIX: WordPress strips display:flex on save — target by flex-wrap instead ── */
#hp-panel-overview div[style*="flex-wrap"] {
    display: flex !important;
    flex-wrap: wrap !important;
}
#hp-panel-overview div[style*="flex-wrap"] > div[style*="flex:1"],
#hp-panel-overview div[style*="flex-wrap"] > div[style*="flex: 1"] {
    flex: 1 1 auto !important;
    min-width: 0;
}

/* ════════════════════════════════════════════════════════════════════════════
   HEST FITNESS 2026 — PREMIUM POLISH
   High-end refinements across every section of the site
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Design token upgrades ── */
:root {
  --black:      #060608;
  --dark:       #0d0e12;
  --card-bg:    #111318;
  --card-hover: #15171d;
  --border:     rgba(255,255,255,0.08);
  --border-hover: rgba(255,255,255,0.16);
  --red:        #e8291c;
  --red-dark:   #c0201a;
  --red-glow:   rgba(232,41,28,0.12);
  --grey:       #c8cad0;
  --text-muted: var(--grey-dim);
  --text-body:  var(--grey);
  --radius-sm:  6px;
  --radius-md:  12px;
  --radius-lg:  18px;
  --shadow-sm:  0 4px 16px rgba(0,0,0,0.3);
  --shadow-md:  0 12px 40px rgba(0,0,0,0.5);
  --shadow-lg:  0 24px 64px rgba(0,0,0,0.6);
  --transition: 0.22s cubic-bezier(0.4,0,0.2,1);
}

/* ── Body & typography ── */
body {
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0.01em;
}

/* ── Announce bar — more refined ── */
.hest-announce {
  background: linear-gradient(90deg, #b81e13 0%, var(--red) 50%, #b81e13 100%);
  font-size: 12px;
  letter-spacing: 0.08em;
  font-weight: 600;
  padding: 10px 24px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* ── Header — premium refinement ── */
#masthead {
  background: rgba(9,9,12,0.96) !important;
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  box-shadow: 0 1px 32px rgba(0,0,0,0.5);
}
.hest-header-inner { height: 68px; }

/* Search bar — more polished */
.hest-header-search input {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 8px;
  font-size: 13.5px;
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}
.hest-header-search input:focus {
  background: rgba(255,255,255,0.07);
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(232,41,28,0.15);
}

/* Cart link */
.hest-cart-link {
  border-radius: 8px;
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.09);
  transition: all var(--transition);
  font-size: 13px;
}
.hest-cart-link:hover {
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.2);
}

/* Quote button — sharper */
.hest-btn-quote {
  border-radius: 7px;
  font-size: 13px;
  letter-spacing: 0.1em;
  padding: 10px 20px;
  background: var(--red);
  box-shadow: 0 2px 12px rgba(232,41,28,0.35);
  transition: all var(--transition);
}
.hest-btn-quote:hover {
  background: var(--red-dark);
  box-shadow: 0 4px 20px rgba(232,41,28,0.45);
  transform: translateY(-1px);
}

/* ── Nav bar ── */
#site-navigation {
  background: rgba(8,8,10,0.9) !important;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}
.hest-nav-inner { height: 48px; padding: 0 40px; }
#primary-menu > li > a {
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--grey);
}
#primary-menu > li > a:hover { color: #fff; }
#primary-menu .sub-menu {
  background: rgba(10,10,14,0.98);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  box-shadow: 0 24px 64px rgba(0,0,0,0.75), 0 0 0 1px rgba(255,255,255,0.03);
  padding: 8px;
  backdrop-filter: blur(20px);
}
#primary-menu .sub-menu li a {
  border-radius: 8px;
  font-size: 12.5px;
  padding: 10px 14px;
  color: var(--grey);
  letter-spacing: 0.05em;
}
#primary-menu .sub-menu li a:hover {
  background: rgba(255,255,255,0.06);
  color: #fff;
}

/* ── Trust strip — elevated ── */
.hest-trust {
  background: rgba(13,14,18,0.95);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 16px 48px;
  gap: 48px;
}
.hest-trust-item {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--grey);
  transition: color var(--transition);
}
.hest-trust-item:hover { color: rgba(255,255,255,0.9); }
.hest-trust-item svg { color: var(--red); }

/* ── Hero panels — deeper, more cinematic ── */
.hest-panel-overlay {
  background: linear-gradient(
    135deg,
    rgba(0,0,0,0.55) 0%,
    rgba(0,0,0,0.3) 50%,
    rgba(0,0,0,0.62) 100%
  ) !important;
}
.hest-panel-content { max-width: 460px; }
.hest-panel-badge {
  border-radius: 4px;
  font-size: 10px;
  letter-spacing: 0.24em;
  padding: 5px 12px;
}
.hest-panel-title {
  font-size: clamp(44px, 4.5vw, 72px);
  letter-spacing: -0.02em;
  line-height: 0.9;
  margin-bottom: 16px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.hest-panel-desc {
  font-size: 14.5px;
  color: rgba(255,255,255,0.75);
  line-height: 1.65;
  margin-bottom: 32px;
}
.hest-panel-btn {
  border-radius: 7px;
  font-size: 13px;
  letter-spacing: 0.12em;
  padding: 14px 28px;
  transition: all var(--transition);
}
.hest-residential-panel .hest-panel-btn {
  box-shadow: 0 4px 20px rgba(232,41,28,0.4);
}
.hest-residential-panel .hest-panel-btn:hover {
  box-shadow: none;
}
.hest-panel-stats { margin-top: 32px; padding-top: 24px; gap: 32px; }
.hest-stat-num { font-size: 32px; letter-spacing: -0.02em; }
.hest-stat-label { font-size: 10px; letter-spacing: 0.14em; }

/* ── Section headings — tighter, more editorial ── */
.hest-section { padding: 80px 52px; }
.hest-section-label { font-size: 10px; letter-spacing: 0.28em; margin-bottom: 12px; }
.hest-section-title {
  font-size: clamp(34px, 3.8vw, 58px);
  letter-spacing: -0.02em;
  line-height: 0.92;
  margin-bottom: 18px;
}
.hest-section-sub {
  font-size: 15px;
  color: var(--text-muted);
  line-height: 1.7;
  margin-bottom: 48px;
}

/* ── Category cards — more premium ── */
.hest-cat-card {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.07);
  min-height: 320px;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.hest-cat-card:hover {
  border-color: rgba(232,41,28,0.4);
  transform: translateY(-6px);
  box-shadow: 0 28px 64px rgba(0,0,0,0.5), 0 0 0 1px rgba(232,41,28,0.15);
}
.hest-cat-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
}
.hest-cat-card:hover .hest-cat-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.3) 55%, transparent 100%);
}
.hest-cat-name {
  font-size: 21px;
  letter-spacing: -0.01em;
  margin-bottom: 4px;
}
.hest-cat-count {
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 12px;
}
.hest-cat-arrow {
  width: 30px; height: 30px;
  background: rgba(232,41,28,0.18);
  border: 1px solid rgba(232,41,28,0.4);
}

/* ── Product cards — significantly elevated ── */
.woocommerce ul.products li.product,
.hest-product-card {
  background: var(--card-bg) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 14px !important;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition) !important;
}
.woocommerce ul.products li.product:hover,
.hest-product-card:hover {
  border-color: rgba(232,41,28,0.35) !important;
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 56px rgba(0,0,0,0.55), 0 0 0 1px rgba(232,41,28,0.1) !important;
}
.woocommerce ul.products li.product img {
  height: 240px !important;
  background: #ffffff !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  padding: 24px !important;
  transition: transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94) !important;
}
.woocommerce ul.products li.product:hover img { transform: scale(1.06) !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 17px !important;
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
  padding: 16px 18px 6px !important;
  line-height: 1.15 !important;
}
.woocommerce ul.products li.product .price {
  font-size: 24px !important;
  font-weight: 900 !important;
  padding: 0 18px 16px !important;
  letter-spacing: -0.02em !important;
}
.woocommerce ul.products li.product .button {
  border-radius: 8px !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  padding: 11px 18px !important;
  margin: 0 16px 16px !important;
  width: calc(100% - 32px) !important;
  transition: background var(--transition), box-shadow var(--transition), transform var(--transition) !important;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--red-dark) !important;
  box-shadow: 0 4px 16px rgba(232,41,28,0.4) !important;
  transform: translateY(-1px) !important;
}
.woocommerce .product-brand {
  font-size: 10px;
  letter-spacing: 0.2em;
  padding: 14px 18px 0;
  color: var(--red);
}

/* ── Archive page: product grid cards (custom hest-pcard) ── */
.hest-pcard {
  background: var(--card-bg) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 16px !important;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition) !important;
}
.hest-pcard:hover {
  border-color: rgba(232,41,28,0.3) !important;
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 56px rgba(0,0,0,0.5) !important;
}
.hest-pcard--sale { border-color: rgba(232,41,28,0.25) !important; }
.hest-pcard-img-wrap { background: #ffffff !important; }
.hest-pcard-title { font-size: 34px !important; font-weight: 900 !important; letter-spacing: 0.01em !important; text-transform: uppercase !important; line-height: 1.05 !important; }
.hest-pcard-price { font-size: 26px !important; font-weight: 800 !important; letter-spacing: 0 !important; color: var(--red) !important; }
.hest-pcard-btn {
  border-radius: 9px !important;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition) !important;
}
.hest-pcard-btn:hover {
  box-shadow: 0 4px 14px rgba(232,41,28,0.4) !important;
  transform: scale(1.08) !important;
}

/* ── Archive sidebar ── */
.hest-shop-sidebar,
.hest-sidebar {
  background: var(--dark) !important;
  border-right: 1px solid rgba(255,255,255,0.06) !important;
}
.hest-sb-section { margin-bottom: 28px; }
.hest-sb-label {
  font-size: 10px !important;
  letter-spacing: 0.24em !important;
  color: var(--grey) !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  margin-bottom: 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.hest-sb-item {
  border-radius: 7px !important;
  transition: background var(--transition), color var(--transition) !important;
  font-size: 13px !important;
  color: var(--grey) !important;
  padding: 7px 8px !important;
}
.hest-sb-item:hover { background: rgba(255,255,255,0.05) !important; color: #fff !important; }
.hest-sb-item--active { background: rgba(232,41,28,0.08) !important; color: #fff !important; }
.hest-sb-dot {
  width: 7px !important; height: 7px !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255,255,255,0.2) !important;
  flex-shrink: 0 !important;
  transition: background var(--transition), border-color var(--transition) !important;
}
.hest-sb-dot--on { background: var(--red) !important; border-color: var(--red) !important; }

/* ── Single product page ── */
.woocommerce div.product .woocommerce-product-gallery__wrapper {
  background: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important;
}
.flex-control-thumbs li img {
  background: #ffffff !important;
  border-radius: 10px !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.flex-control-thumbs li img:hover,
.flex-control-thumbs li img.flex-active {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 2px rgba(232,41,28,0.25) !important;
}
.woocommerce div.product .product_title {
  font-size: clamp(26px, 3vw, 42px) !important;
  letter-spacing: -0.02em !important;
  line-height: 0.94 !important;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-size: 38px !important;
  letter-spacing: -0.03em !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
  border-radius: 9px !important;
  letter-spacing: 0.1em !important;
  font-size: 15px !important;
  transition: all var(--transition) !important;
  box-shadow: 0 4px 20px rgba(232,41,28,0.3) !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.woocommerce div.product form.cart .qty {
  border-radius: 9px !important;
  border-color: rgba(255,255,255,0.1) !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.woocommerce div.product form.cart .qty:focus {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 3px rgba(232,41,28,0.15) !important;
  outline: none !important;
}

/* Product summary trust row */
.hp-trust-row {
  background: rgba(255,255,255,0.025) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 12px !important;
}
.hp-trust-item { gap: 10px !important; }

/* ── Product tabs ── */
.woocommerce-tabs ul.tabs {
  gap: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.woocommerce-tabs ul.tabs li {
  border-bottom: 2px solid transparent !important;
  transition: border-color var(--transition) !important;
}
.woocommerce-tabs ul.tabs li a {
  color: var(--grey) !important;
  font-size: 13px !important;
  letter-spacing: 0.12em !important;
  transition: color var(--transition) !important;
  padding: 14px 24px !important;
}
.woocommerce-tabs ul.tabs li a:hover { color: rgba(255,255,255,0.8) !important; }
.woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--red) !important; }
.woocommerce-tabs ul.tabs li.active a { color: #fff !important; }

/* ── CTA banner — richer ── */
.hest-cta-overlay {
  background: linear-gradient(
    160deg,
    rgba(0,0,0,0.78) 0%,
    rgba(0,0,0,0.62) 60%,
    rgba(12,4,4,0.8) 100%
  ) !important;
}
.hest-cta-title {
  font-size: clamp(38px, 4.5vw, 60px) !important;
  letter-spacing: -0.02em !important;
  line-height: 0.92 !important;
  text-shadow: 0 2px 24px rgba(0,0,0,0.4) !important;
}
.hest-cta-sub {
  font-size: 15.5px !important;
  color: rgba(255,255,255,0.72) !important;
  line-height: 1.7 !important;
}
.hest-btn-outline-white {
  border-radius: 7px !important;
  border-color: rgba(255,255,255,0.3) !important;
  letter-spacing: 0.1em !important;
  transition: all var(--transition) !important;
}
.hest-btn-outline-white:hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: rgba(255,255,255,0.7) !important;
}

/* ── Brand showcase ── */
.hest-bw { padding: 0; }
.hest-bc {
  border: none !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  transition: opacity 0.2s, transform 0.2s !important;
}
.hest-bc:hover {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  transform: translateY(-3px) !important;
}
.hest-bc-logo {
  height: 52px !important;
  max-width: 170px !important;
  opacity: 1 !important;
  transition: opacity var(--transition), transform var(--transition) !important;
  filter: none !important;
}
.hest-bc:hover .hest-bc-logo {
  opacity: 1 !important;
  transform: scale(1.06) !important;
}

/* ── Footer — richer & more refined ── */
#colophon {
  background: #050507 !important;
  border-top: 1px solid rgba(255,255,255,0.07) !important;
}
.hest-footer-grid {
  padding: 64px 52px !important;
  gap: 52px !important;
}
.hest-footer-logo {
  font-size: 24px !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 14px !important;
}
.hest-footer-desc {
  font-size: 13px !important;
  color: var(--grey) !important;
  line-height: 1.75 !important;
  max-width: 260px !important;
}
.hest-footer-col h4 {
  font-size: 10px !important;
  letter-spacing: 0.24em !important;
  color: var(--grey) !important;
  margin-bottom: 18px !important;
}
.hest-footer-col ul li a {
  font-size: 13px !important;
  color: var(--grey) !important;
  transition: color var(--transition) !important;
}
.hest-footer-col ul li a:hover { color: rgba(255,255,255,0.85) !important; }
.hest-footer-col ul li { margin-bottom: 11px !important; }
.hest-social {
  border-radius: 8px !important;
  border-color: rgba(255,255,255,0.07) !important;
  background: rgba(255,255,255,0.04) !important;
  transition: all var(--transition) !important;
  width: 36px !important; height: 36px !important;
}
.hest-social:hover {
  background: var(--red) !important;
  border-color: var(--red) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 14px rgba(232,41,28,0.4) !important;
}
.hest-footer-bottom {
  padding: 20px 52px !important;
  border-top: 1px solid rgba(255,255,255,0.05) !important;
  color: var(--grey) !important;
  font-size: 11.5px !important;
  letter-spacing: 0.04em !important;
}
.hest-footer-bottom a { color: var(--grey) !important; }
.hest-footer-bottom a:hover { color: var(--grey) !important; }

/* ── Pagination — premium ── */
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
.page-numbers {
  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  background: var(--card-bg) !important;
  color: var(--grey) !important;
  transition: all var(--transition) !important;
  font-size: 13px !important;
}
.woocommerce-pagination ul li a:hover,
.page-numbers:hover {
  border-color: rgba(255,255,255,0.25) !important;
  color: #fff !important;
  background: rgba(255,255,255,0.06) !important;
}
.woocommerce-pagination ul li span.current,
.page-numbers.current {
  background: var(--red) !important;
  border-color: var(--red) !important;
  color: #fff !important;
  box-shadow: 0 2px 12px rgba(232,41,28,0.4) !important;
}

/* ── WooCommerce notices ── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-left: 3px solid var(--red) !important;
  border-radius: 0 10px 10px 0 !important;
  font-size: 14px !important;
}

/* ── Breadcrumb ── */
.woocommerce-breadcrumb {
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
  padding: 12px 48px !important;
  font-size: 12px !important;
  color: var(--grey) !important;
  letter-spacing: 0.04em !important;
}
.woocommerce-breadcrumb a { color: var(--grey) !important; transition: color var(--transition) !important; }
.woocommerce-breadcrumb a:hover { color: var(--grey) !important; }

/* ── News cards ── */
.hest-news-card {
  background: var(--card-bg) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 14px !important;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition) !important;
}
.hest-news-card:hover {
  border-color: rgba(232,41,28,0.3) !important;
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 56px rgba(0,0,0,0.5) !important;
}
.hest-news-title { letter-spacing: -0.01em !important; line-height: 1.1 !important; }
.hest-news-excerpt { color: var(--text-muted) !important; font-size: 13px !important; }

/* ── General cards / feature boxes ── */
.hpd-feat {
  border: 1px solid rgba(255,255,255,0.08) !important;
  background: #111318 !important;
  border-radius: 16px !important;
  transition: border-color var(--transition), transform var(--transition) !important;
}
.hpd-feat:hover {
  border-color: rgba(255,255,255,0.14) !important;
  transform: translateY(-3px) !important;
}
.hpd-feat-title { letter-spacing: -0.01em !important; }
.hpd-feat-body { color: var(--grey) !important; line-height: 1.75 !important; font-size: 13.5px !important; }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--black); }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.22); }

/* ── Selection highlight ── */
::selection { background: rgba(232,41,28,0.35); color: #fff; }

/* ── Focus ring — more refined ── */
:focus-visible {
  outline: 2px solid rgba(232,41,28,0.7) !important;
  outline-offset: 3px !important;
}

/* ── Smooth image loading ── */
img { transition: opacity 0.3s ease; }

/* ── Shop topbar ── */
.hest-topbar {
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  background: rgba(13,14,18,0.8) !important;
}
.hest-sortbox select {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 8px !important;
  color: var(--grey) !important;
  transition: border-color var(--transition) !important;
}
.hest-sortbox select:focus {
  border-color: var(--red) !important;
  outline: none !important;
}
.hest-searchbox input {
  border-radius: 8px !important;
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(255,255,255,0.09) !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
.hest-searchbox input:focus {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 3px rgba(232,41,28,0.12) !important;
}

/* ── Active filter chips ── */
.hest-chip-active {
  border-radius: 6px !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  transition: all var(--transition) !important;
  border: 1px solid rgba(232,41,28,0.3) !important;
  background: rgba(232,41,28,0.08) !important;
  color: var(--grey) !important;
}
.hest-chip-active:hover {
  background: rgba(232,41,28,0.16) !important;
  color: #fff !important;
}

/* ── Cart table ── */
.woocommerce table.shop_table {
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 14px !important;
}
.woocommerce table.shop_table th {
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  color: var(--grey) !important;
}
.woocommerce table.shop_table td { border-color: rgba(255,255,255,0.06) !important; }

/* ── Forms ── */
input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], textarea, select {
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
input[type="text"]:focus, input[type="email"]:focus,
input[type="tel"]:focus, textarea:focus {
  box-shadow: 0 0 0 3px rgba(232,41,28,0.12) !important;
}


/* ── Brand sidebar row (brand label + expand toggle) ── */
.hest-sb-brand-row {
    display: flex;
    align-items: center;
    gap: 0;
}
.hest-sb-brand-row .hest-sb-item {
    border-radius: 7px 0 0 7px !important;
}
.hest-sb-brand-row .hest-sb-sub-toggle {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 0 7px 7px 0;
    border: none;
    background: transparent;
    color: var(--grey);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
    margin: 2px 0;
}
.hest-sb-brand-row .hest-sb-sub-toggle:hover {
    background: rgba(255,255,255,0.06);
    color: var(--grey);
}

/* ══════════════════════════════════════════════
   FINAL OVERRIDES — must stay at bottom of file
   ══════════════════════════════════════════════ */

/* Logo — larger on desktop so it's clearly visible */
#masthead .custom-logo-link img,
#masthead .hest-logo img,
#masthead a.custom-logo-link img,
.custom-logo-link img,
a.custom-logo-link img {
    max-height: 120px !important;
    height: auto !important;
    width: auto !important;
    max-width: 440px !important;
    display: block !important;
    object-fit: contain !important;
}
#masthead.hest-scrolled .custom-logo-link img,
#masthead.hest-scrolled .hest-logo img {
    max-height: 90px !important;
}
#masthead .hest-header-inner {
    height: 130px !important;
}
#masthead.hest-scrolled .hest-header-inner {
    height: 100px !important;
}

/* ══════════════════════════════════════════════════════════════
   MOBILE OVERRIDES — comprehensive clean-up for phones
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

    /* Root */
    html, body {
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }

    /* Hero split panels — must not clip Commercial panel content */
    .hest-hero {
        max-height: none !important;
        overflow: visible !important;
    }
    .hest-panel {
        overflow: visible !important;
        min-height: auto !important;
        height: auto !important;
        align-items: flex-start !important;
    }

    /* Mobile logo */
    #masthead .custom-logo-link img,
    #masthead .hest-logo img {
        max-height: 44px !important;
    }
    #masthead .hest-header-inner {
        height: 64px !important;
    }

    /* Slideshow: full-width, no overflow */
    #hest-news-promo {
        width: 100% !important;
        overflow: hidden !important;
    }
    #hest-np-track {
        width: 100% !important;
    }
    /* Slide dimensions handled by inline <style> in front-page.php */

    /* Brand grid clean 2-col */
    #hest-brands {
        padding: 44px 16px !important;
    }
    #hest-brands > div {
        max-width: 100% !important;
    }
    .hest-bw,
    .hest-bw-lastrow {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        width: 100% !important;
        gap: 0 !important;
        justify-content: unset !important;
        flex-direction: unset !important;
        flex-wrap: unset !important;
    }
    .hest-bw-lastrow .hest-bc {
        width: 100% !important;
        flex: unset !important;
    }
    .hest-bc {
        min-height: 90px !important;
        padding: 20px 12px !important;
    }
    .hest-bc-logo {
        height: 32px !important;
        max-width: 120px !important;
    }
    .hest-bc-name { font-size: 12px !important; }

    /* Section side padding */
    section[style*="padding:96px 56px"],
    section[style*="padding:80px 56px"],
    section[style*="padding:72px 56px"] {
        padding-left: 16px !important;
        padding-right: 16px !important;
        padding-top: 48px !important;
        padding-bottom: 48px !important;
    }

    /* Slogan 3-col grid */
    div[style*="grid-template-columns:1fr 1px 1fr 1px 1fr"] {
        display: flex !important;
        flex-direction: column !important;
        gap: 24px !important;
        align-items: center !important;
    }
    div[style*="background:rgba(255,255,255,0.07);height:80px"] {
        display: none !important;
    }

    /* Who We Serve 3-col */
    div[style*="grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
    }

    /* Inner max-width containers */
    div[style*="max-width:1300px"],
    div[style*="max-width:1200px"],
    div[style*="max-width:1100px"] {
        max-width: 100% !important;
    }
}

/* Product cards — final size guarantee */
.hest-pcard-title,
.hest-pgrid .hest-pcard-title,
article.hest-pcard .hest-pcard-title {
    font-size: 34px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.01em !important;
    color: #fff !important;
}
.hest-pcard-price,
.hest-pgrid .hest-pcard-price,
article.hest-pcard .hest-pcard-price {
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #e8291c !important;
    line-height: 1 !important;
}

/* Product image — full display, white bg, no cropping */
.hest-pcard-img-wrap,
.hest-pgrid .hest-pcard-img-wrap,
article.hest-pcard .hest-pcard-img-wrap {
    background: #ffffff !important;
    aspect-ratio: 1 / 1 !important;
}
.hest-pcard-img,
.hest-pgrid .hest-pcard-img,
article.hest-pcard .hest-pcard-img {
    object-fit: contain !important;
    padding: 16px !important;
    background: #ffffff !important;
    width: 100% !important;
    height: 100% !important;
}

/* ══ WHITE PRODUCT IMAGE BACKGROUNDS — ALL CONTEXTS ══
   Covers: archive lists, related products, single product
   gallery, category page featured grids, thumbnails       */

/* WooCommerce standard loops */
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product a img,
.related ul.products li.product img,
.upsells ul.products li.product img {
    background: #ffffff !important;
    padding: 20px !important;
}

/* Single product main gallery */
.woocommerce div.product .woocommerce-product-gallery__wrapper,
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image {
    background: #ffffff !important;
}
.woocommerce div.product .woocommerce-product-gallery__wrapper img,
.woocommerce div.product .woocommerce-product-gallery img {
    background: #ffffff !important;
}

/* Thumbnails strip */
.flex-control-thumbs li img,
.woocommerce-product-gallery__wrapper .flex-control-thumbs img {
    background: #ffffff !important;
}

/* Category page featured product cards */
.hest-catlp-card-img,
.hest-catlp-card .hest-catlp-card-img {
    background: #ffffff !important;
}
.hest-catlp-card-img img {
    background: #ffffff !important;
}

/* Archive product cards */
.hest-pcard-img-wrap,
.hest-pcard .hest-pcard-img-wrap {
    background: #ffffff !important;
}
.hest-pcard-img {
    background: #ffffff !important;
}


/* ── Anti-spam honeypot — must stay visually hidden but not display:none ── */
.hest-as-field {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
