/* Pagination controls for product grids */
.pagination-controls, #bat-pagination, #glove-pagination, #batglo-pagination {
  display: flex;
  justify-content: center;
  gap: .5rem;
  margin-top: 1.25rem;
}
/* Product detail dialog layout */
.product-detail-dialog { width:min(100%,1000px); border:none; padding:0; background:transparent; }
.product-detail-dialog::backdrop { background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.product-detail-dialog .panel { max-height:90vh; overflow:auto; background:#fff; border-radius:12px; box-shadow:0 12px 34px -8px rgba(0,0,0,.3),0 4px 16px -4px rgba(0,0,0,.2); }
/* Uniform padding rhythm for dialog sections */
.product-detail-dialog .panel-head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}
.product-detail-dialog .panel-head h3{margin:0;font-size:1.1rem;font-weight:900}
.product-detail-dialog .panel-body{padding:1rem}
.product-detail-dialog .panel-foot{display:flex;gap:.5rem;justify-content:flex-end;padding:.85rem 1rem;border-top:1px solid var(--border)}
.product-detail-layout { display:flex; flex-wrap:wrap; gap:2rem; }
.product-detail-layout .gallery { flex:1 1 380px; min-width:320px; }
.product-detail-layout .info { flex:1 1 340px; min-width:300px; }
.product-detail-layout .main-image { aspect-ratio: 4/3; background:#f3f3f5; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:8px; overflow:hidden; margin-bottom:.75rem; }
.product-detail-layout .main-image img { width:100%; height:100%; object-fit:contain; }

/* Ensure the main product image always fits fully inside its box */
#pd-main-img { width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; object-position:center; display:block; }
.product-detail-layout .thumbs { display:flex; flex-wrap:wrap; gap:.5rem; }
.product-detail-layout .thumb { border:1px solid var(--border); background:#fff; border-radius:6px; padding:2px; cursor:pointer; display:inline-flex; }
.product-detail-layout .thumb.active, .product-detail-layout .thumb:focus-visible { outline:none; border-color:var(--brand); box-shadow:0 0 0 2px color-mix(in oklab, white 50%, var(--brand) 60%); }
.product-detail-layout .thumb img { width:54px; height:54px; object-fit:contain; }
.product-detail-dialog h4 { margin:1.25rem 0 .5rem; font-size:1rem; font-weight:700; letter-spacing:.25px; }
.product-detail-dialog .feature-list { list-style:disc; margin:.25rem 0 0 1.15rem; padding:0; font-size:.85rem; line-height:1.35; }
.product-detail-dialog .feature-list li + li { margin-top:.25rem; }
.product-detail-dialog .price-lg { font-size:1.4rem; font-weight:800; margin:.25rem 0 1rem; }
/* Inputs in dialog: match site form aesthetics */
.product-detail-dialog select, .product-detail-dialog input[type="number"], .product-detail-dialog input[type="text"]{
  padding:.65rem .8rem; border:1px solid var(--border); border-radius:.6rem; background:#fff; color:var(--ink);
}
.product-detail-dialog .text-xs.muted{opacity:.8}
@media (max-width:720px){
  .product-detail-layout { flex-direction:column; }
  .product-detail-dialog { width:min(100%,95vw); }
}
/* Pagination button refinement (replaces inline styles) */
.pagination-btn { position:relative; min-width:42px; }
.grid, #category-grid { --col-min:240px; display:grid; grid-template-columns:repeat(auto-fill,minmax(var(--col-min),1fr)); gap:1.1rem; }
.product-card .media.aspect { aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:#f5f5f7; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.product-card .media.aspect img { width:100%; height:100%; object-fit:contain; }
.product-card .price-row { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.45rem; }
.product-card .price-row .actions { display:flex; gap:.35rem; }
.product-card h3 { font-size:.9rem; font-weight:700; line-height:1.25; margin:.55rem 0 .25rem; min-height:2.4em; }

/* Color dots for products with multiple color options */
.color-dots {
  display: flex;
  flex-wrap: nowrap; /* force single row */
  gap: 4px;
  margin: 8px 0 6px;
  padding-left: 12px;
  min-height: 28px;
  align-items: center;
  justify-content: flex-start;
  overflow-x: auto; /* allow horizontal scroll if needed */
  -webkit-overflow-scrolling: touch;
}

.color-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.15);
  cursor: pointer;
  transition: all 0.15s ease;
  position: relative;
  flex-shrink: 0;
}
/* Optional number label inside neutral dots */
.color-dot .dot-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 8px;
  line-height: 1;
  font-weight: 800;
  color: #111;
  pointer-events: none;
}

.color-dot:hover {
  transform: scale(1.15);
  border-color: rgba(0,0,0,0.3);
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

.color-dot.active {
  transform: scale(1.2);
  border-color: var(--brand);
  border-width: 2px;
  box-shadow: 0 0 0 2px rgba(36,23,115,0.25);
}

/* Color mappings */
.color-dot.black { background-color: #000000; }
.color-dot.white { background-color: #ffffff; border-color: rgba(0,0,0,0.3); }
.color-dot.red { background-color: #dc2626; }
.color-dot.blue { background-color: #2563eb; }
.color-dot.navy { background-color: #1e40af; }
.color-dot.green { background-color: #16a34a; }
.color-dot.darkgreen { background-color: #15803d; }
.color-dot.yellow { background-color: #eab308; }
.color-dot.orange { background-color: #ea580c; }
.color-dot.purple { background-color: #9333ea; }
.color-dot.maroon { background-color: #991b1b; }
.color-dot.royal { background-color: #3b82f6; }
.color-dot.columbiablue { background-color: #60a5fa; }
.color-dot.brown { background-color: #8B4513; }
.color-dot.neutral { background-color: #cbd5e1; border-color: rgba(0,0,0,0.25); }
/* Slightly larger dots on L‑Screens pages for better visibility */
body.lscreens-subnav .color-dot { width: 14px; height: 14px; }

@media (max-width:560px){ 
  .grid, #category-grid { --col-min:170px; gap:.85rem; } 
  .product-card h3 { font-size:.8rem; } 
  .color-dot { width: 10px; height: 10px; }
  .color-dots { 
    gap: 3px; 
    margin: 6px 0 4px; 
    min-height: 24px; 
    overflow-x: auto; /* maintain single row with scroll on mobile */
  }
}
.pagination-btn.is-active,
.pagination-btn[aria-current="page"] { background: var(--brand); color:#fff; box-shadow:0 0 0 2px rgba(255,255,255,.15),0 0 0 4px rgba(36,23,115,.35); }
.pagination-btn:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(36,23,115,.45); }

/* Global heading rhythm & fluid scale (adds consistency across simple content pages) */
h1, .page-title { line-height:1.08; font-weight:900; letter-spacing:.6px; }
h1:not(.hero-copy h1):not(.netting-hero h1):not(.net-hero h1) { font-size:clamp(1.85rem,4.4vw,2.75rem); margin:.25rem 0 .85rem; }
h2 { font-size:clamp(1.25rem,2.9vw,1.9rem); line-height:1.15; font-weight:800; margin:1.6rem 0 .65rem; }
h3 { font-size:clamp(1.05rem,2.4vw,1.35rem); line-height:1.2; font-weight:800; margin:1.2rem 0 .5rem; }

/* Consistent text sizing for small helper text */
small, .text-xs { font-size:.72rem; line-height:1.2; }

/* Unified paragraph spacing (light-touch: only when not the last in a container) */
p { line-height:1.45; }
p + p { margin-top:.75rem; }

/* Container padding refinement for very wide & very narrow screens */
@media (min-width:1400px){ .container{padding-inline:clamp(1.5rem,2vw,2.75rem);} }
@media (max-width:380px){ .container{padding-inline:clamp(.85rem,4.5vw,1.15rem);} }

/* Improved focus states for interactive elements (accessible) */
a:focus-visible, button:focus-visible, [role="button"]:focus-visible { outline:none; box-shadow:var(--ring); }

/* Reduced motion preference – minimize large transforms */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
/* Centered nav utility for header */
.nav-centered {
  justify-content: center !important;
}
/* Typography (relaxed to prevent unintended truncation) */
.container, .footer-grid, .about-inner, .category-tiles .tiles, .grid, .banner-row { min-width:0; }
/* Allow natural wrapping; only truncate where explicitly needed via .truncate */
.truncate { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* Prevent overflow in tight card headings without forcing single-line */
.card .body h3, .banner .content h3 { overflow-wrap: anywhere; }
/* Keep cart rows from blowing out but allow wrapping */
.cart-row strong, .cart-row div { overflow-wrap:anywhere; }
/* Restore compact single-line styling for tile & banner headings to match original layout */
.tile .tile-head h3, .tile .tile-head p, .banner .content h3 { 
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Responsive font scaling for all text */
body, .container, .footer-grid, .about-inner, .category-tiles .tiles, .grid, .banner-row, .card, .tile, .banner, .about, .site-footer {
  font-size: clamp(0.95rem, 2vw, 1.1rem);
}
/* EZ Sports Netting — styles */
:root{
  /* Brand palette: #241773 (brand primary deep purple), #d3d0d7 (neutral), #000000 (ink) */
  --bg:#ffffff;            /* clean white background */
  --surface:#ffffff;
  --border:#d3d0d7;        /* neutral borders/surfaces */
  --ink:#000000;           /* primary text */
  --ink-2:#000000;         /* secondary text (kept dark for contrast) */
  --brand:#241773;         /* primary brand (updated) */
  --brand-2:#241773;       /* unify accents to brand */
  --primary: var(--brand); /* alias used in admin/styles */
  --red:#d7263d;
  --blue:#0e7dd8;
  --muted:#5a5a5a;         /* muted text; stays readable on white */
  /* Adjusted focus ring to work with deeper purple hue (slightly higher alpha) */
  --ring: 0 0 0 3px color-mix(in oklab, white 8%, var(--brand) 70% / 28%);
  /* Gold CTA palette (accessible with white text) */
  --gold:#8a6a00;          /* base (contrast AA with white) */
  --gold-hover:#a07c00;    /* hover/ focus */
  --gold-active:#6d5200;   /* active/ pressed */
}

/* Request Quote button state overrides (EZ Nets page) */
.btn-quote { transition: background-color .25s, color .25s, box-shadow .25s; }
.btn-quote:hover,
.btn-quote:focus-visible { background: var(--gold-hover) !important; color:#000 !important; border-color: var(--gold-hover) !important; }
.btn-quote:active { background:#ffffff !important; color:#000 !important; border-color: var(--brand) !important; }

/* =====================================================================
   Unified Brand Purple Palette Enforcement
   Single hue: #241773. Differentiation via purple→white gradients only.
   ===================================================================== */
:root {
  --brand:#241773 !important;
  --brand-2:#241773 !important;
  --primary:#241773 !important;
  --ink-2:#241773 !important; /* secondary emphasis now purple when used */
}

/* Core gradient helper classes (directional variants) */
.bg-purple-diag-1 { background:linear-gradient(135deg,#241773 0%, #ffffff 140%) !important; }
.bg-purple-diag-2 { background:linear-gradient(45deg,#241773 0%, #ffffff 140%) !important; }
.bg-purple-vert   { background:linear-gradient(180deg,#241773 0%, #ffffff 140%) !important; }
.bg-purple-horiz  { background:linear-gradient(90deg,#241773 0%, #ffffff 140%) !important; }

/* Replace multi‑hue purple backgrounds with single-hue gradients */
.mega-hero, .net-hero, .netting-hero, .contact-hero, .turf-hero, .expert-cta, .spotlight-wrap,
.banner, .banner.red, .banner.blue { background:linear-gradient(135deg,#241773 0%, #ffffff 160%) !important; }

/* Remove decorative pseudo gradients that referenced older purples */
.fr-card:before, .hero-card:before, .banner:before, .netting-hero:before, .mega-hero:after, .spotlight-wrap:after { background:none !important; }

/* Buttons unify on purple except specialized quote button */
.btn, .btn-primary, .btn-ghost, .btn-invert, .btn-pill, .icon-btn {
  background:#241773 !important; border-color:#241773 !important; color:#ffffff !important;
}
.btn:hover, .btn-primary:hover, .btn-ghost:hover, .btn-invert:hover, .btn-pill:hover, .icon-btn:hover,
.btn:focus-visible, .btn-primary:focus-visible { filter:brightness(1.06); }
.btn:active, .btn-primary:active { filter:brightness(.9); }
.btn-quote { background:#000 !important; border-color:#000 !important; color:#fff !important; }

/* Nav & submenu */
.quick-links a:hover, .quick-links .auth-link:hover { background:linear-gradient(135deg,#241773 0%, #241773 65%, #ffffff 140%) !important; color:#fff !important; }
.quick-links a.is-active, .quick-links a[aria-current="page"] { background:linear-gradient(135deg,#241773 0%, #ffffff 130%) !important; color:#fff !important; }
.quick-links .nav-submenu { background:#241773 !important; border-color:#241773 !important; }
.quick-links .nav-submenu a { color:#fff !important; }
.quick-links .nav-submenu a:hover { background:rgba(255,255,255,.15) !important; }

/* Avatar */
.profile-btn { background:#241773 !important; }
.profile-btn:active { background:#ffffff !important; }

/* Active chips / tags */
.chip.is-active { background:#241773 !important; border-color:#241773 !important; color:#fff !important; }

/* Focus rings keep readability */
input:focus, textarea:focus, select:focus { border-color:#241773 !important; box-shadow:0 0 0 3px rgba(36,23,115,.35) !important; }

/* Links */
a, .inline-links a { color:#8a6a00; }
a:hover, .inline-links a:hover { text-decoration:underline; }

/* Dropdown & mini-cart subtle accents */
.user-dropdown a:hover, .user-dropdown button:hover { background:rgba(36,23,115,.08) !important; }
.mini-cart__panel header { border-color:#241773 !important; }

/* Selection */
::selection { background:#241773; color:#fff; }

/* (Removed: legacy #lscreens-subnav external sub-navigation styles) */

/* Utility catch-all: any old purple class variants collapse to brand */
[class*="purple"], [class*="violet"], [class*="lavender"] { color:#241773 !important; }

/* Preserve footer black for contrast; don't override it here */

/* Subscribe button state styling */
.subscribe button.btn-primary {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: #000 !important;
  transition: background .25s, color .25s, border-color .25s;
}
.subscribe button.btn-primary:hover,
.subscribe button.btn-primary:focus-visible {
  background: var(--brand) !important; /* purple on hover */
  border-color: var(--brand) !important;
  color:#fff !important;
}
.subscribe button.btn-primary:active {
  background: #ffffff !important; /* white during click */
  color:#000 !important;
  border-color: var(--brand) !important;
}

/* Spacing utilities */
.space-y-xl{margin:2rem 0 3rem}

/* EZ Nets sub-navigation (uniform across all netting category pages) */
.netting-subnav { 
  display:flex !important; 
  flex-wrap:wrap !important; 
  gap:.65rem !important; 
  margin:.85rem 0 1.35rem !important; 
  justify-content:center !important; /* center pills so CTA naturally centers beneath */
  text-align:center !important;
}
/* Center EZ Nets sub-navigation and its trailing quote button across all netting pages */
#netting-subnav{justify-content:center}
#netting-subnav + .btn, #netting-subnav + .btn-primary, #netting-subnav + .btn-quote{display:block;margin:0.75rem auto 0}
.netting-subnav:not(.is-ready) { display:none !important; }
.netting-subnav a { 
  padding:.55rem .9rem !important; 
  border:1px solid var(--border) !important; 
  border-radius:2rem !important; 
  font-weight:700 !important; 
  text-decoration:none !important; 
  color:var(--ink) !important; 
  background:#fff !important; 
  font-size:.85rem !important; 
  line-height:1 !important; 
  display:inline-flex !important; 
  align-items:center !important; 
  transition: background .25s, color .25s, border-color .25s !important; 
}
.netting-subnav a.is-active, .netting-subnav a:hover, .netting-subnav a:focus-visible { 
  background:var(--brand); 
  color:#fff; 
  border-color:var(--brand); 
  outline:none; 
}
.netting-subnav a:focus-visible { 
  box-shadow:0 0 0 3px rgba(13,98,255,.35); 
}
@media (max-width:640px){
  .netting-subnav { gap:.5rem; }
  .netting-subnav a { font-size:.75rem; padding:.5rem .75rem; }
}

/* Consistent horizontal breathing room + palette-coordinated backgrounds for EZ Nets heroes */
.netting-hero, .net-hero {
  /* preserve existing top/bottom padding from inline styles, only adjust sides */
  padding-left:clamp(.85rem,2.5vw,1.75rem) !important;
  padding-right:clamp(.85rem,2.5vw,1.75rem) !important;
  /* Brand-forward gradient using site palette (deep purple) with subtle highlight */
  background:
    radial-gradient(circle at 80% 20%, color-mix(in oklab, var(--brand) 86%, #fff 14%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 96%, #000 4%) 0%,
      color-mix(in oklab, var(--brand) 82%, #fff 18%) 100%) !important;
  color:#fff !important;
  border-radius:1.15rem !important;
  box-shadow:0 10px 38px -12px rgba(0,0,0,.55),0 4px 18px -6px rgba(0,0,0,.45);
}

/* L-Screens pages: keep hero copy readable on dark gradients (override `.muted`) */
body.lscreens-hub .netting-hero .muted,
body.lscreens-subnav .netting-hero .muted,
body.lscreens-hub .netting-hero p,
body.lscreens-subnav .netting-hero p {
  color: rgba(255,255,255,.92) !important;
}

/* Sport-specific variants (kept within site palette) */
.netting-hero--baseball,
.nh-baseball {
  background:
    radial-gradient(circle at 78% 22%, color-mix(in oklab, var(--brand) 88%, #fff 12%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 98%, #000 2%) 0%,
      color-mix(in oklab, var(--brand) 78%, #fff 22%) 100%) !important;
}

.netting-hero--golf,
.nh-golf {
  background:
    radial-gradient(circle at 78% 22%, color-mix(in oklab, var(--brand) 86%, #fff 14%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 94%, #000 6%) 0%,
      color-mix(in oklab, var(--brand) 70%, #fff 30%) 100%) !important;
}

.netting-hero--lacrosse,
.nh-lacrosse {
  background:
    radial-gradient(circle at 78% 22%, color-mix(in oklab, var(--brand) 80%, #fff 20%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 90%, #000 10%) 0%,
      color-mix(in oklab, var(--brand) 70%, #fff 30%) 100%) !important;
}

.netting-hero--soccer,
.nh-soccer {
  background:
    radial-gradient(circle at 78% 22%, color-mix(in oklab, var(--brand) 84%, #fff 16%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 94%, #000 6%) 0%,
      color-mix(in oklab, var(--brand) 76%, #fff 24%) 100%) !important;
}

.nh-commercial-netting {
  background:
    radial-gradient(circle at 78% 22%, color-mix(in oklab, var(--brand) 92%, #fff 8%) 0%, transparent 62%),
    linear-gradient(135deg,
      color-mix(in oklab, var(--brand) 98%, #000 2%) 0%,
      color-mix(in oklab, var(--brand) 74%, #fff 26%) 100%) !important;
}

/* Training facility hero: align with brand (remove teal/blue) */
.net-hero.nh-training-facility {
  background: linear-gradient(135deg,
    color-mix(in oklab, var(--brand) 96%, #000 4%),
    color-mix(in oklab, var(--brand) 76%, #000 24%)) !important;
  color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem;
}

/* Contact hero spacing (align with netting hero horizontal rhythm) */
.contact-hero {
  padding-left:clamp(.85rem,2.5vw,1.75rem) !important;
  padding-right:clamp(.85rem,2.5vw,1.75rem) !important;
}

/* Contact page layout and form aesthetics */
.contact-grid { 
  display:grid; 
  gap:1.25rem; 
  grid-template-columns: 1.2fr .8fr; 
  align-items:start; 
}
@media (max-width: 860px){
  .contact-grid { grid-template-columns: 1fr; }
}

.contact-form.card { 
  padding:1.25rem; 
  border-radius:.9rem; 
  background:#fff; 
  box-shadow:0 4px 24px rgba(12,32,64,.08);
  display:grid; 
  gap:.9rem; 
}
.contact-form label { display:grid; gap:.4rem; }
.contact-form label > span { font-size:.85rem; color:var(--muted); }
.contact-form input,
.contact-form textarea {
  padding:.85rem 1rem; 
  border:1px solid var(--border); 
  border-radius:.7rem; 
  background:#fff; 
  color:var(--ink); 
}
.contact-form textarea { min-height:140px; resize:vertical; }
.contact-form input:focus,
.contact-form textarea:focus { outline:none; box-shadow:var(--ring); border-color:var(--brand); }
.contact-form input:invalid,
.contact-form textarea:invalid { border-color: color-mix(in oklab, var(--red) 65%, #fff 35%); }
.contact-form .row { display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; }
.contact-form .form-msg { font-size:.9rem; color:var(--muted); }
.contact-form .form-msg.is-success { color:#15803d; }
.contact-form .form-msg.is-error { color:#b91c1c; }

.contact-side.card { 
  padding:1.25rem; 
  border-radius:.9rem; 
  background:#fff; 
  box-shadow:0 4px 24px rgba(12,32,64,.08);
}
.contact-side h3 { margin-top:.25rem; }
.contact-side .checks { list-style:none; padding:0; margin:.5rem 0 0; display:grid; gap:.35rem; }
.contact-side .checks li { position:relative; padding-left:1.4rem; }
.contact-side .checks li::before { content:"✔"; position:absolute; left:0; top:0; color:#15803d; font-weight:700; }

/* Global bottom expert CTA (injected on non-contact pages) */
.expert-cta { 
  --cta-bg-dark:#140d2a; 
  --cta-bg-accent:#241773; 
  --cta-bg-accent2:#3a27b0; 
  background:
    radial-gradient(circle at 72% 18%, color-mix(in oklab,var(--brand) 75%, #fff 25%) 0%, transparent 58%),
    radial-gradient(circle at 18% 78%, color-mix(in oklab,var(--brand) 55%, #fff 45%) 0%, transparent 65%),
    linear-gradient(135deg,
      color-mix(in oklab,var(--brand) 95%, #000 5%) 0%,
      color-mix(in oklab,var(--brand) 85%, #000 15%) 46%,
      color-mix(in oklab,var(--brand) 70%, #000 30%) 82%,
      #1a0d04 100%);
  color:#fff; 
  padding:2.85rem clamp(1rem,3vw,2.1rem); 
  text-align:center; 
  position:relative; 
  overflow:hidden; 
  margin:3.35rem auto 2.85rem; 
  border:1px solid rgba(255,255,255,.08); 
  border-radius:1.3rem; 
  max-width:1240px; 
  box-shadow:0 12px 42px -10px rgba(0,0,0,.55),0 3px 14px -4px rgba(0,0,0,.45);
  isolation:isolate;
}
.expert-cta:before, .expert-cta:after { 
  content:""; 
  position:absolute; 
  inset:0; 
  pointer-events:none; 
}
.expert-cta:before { 
  background:radial-gradient(circle at 12% 38%,rgba(36,23,115,.35),transparent 62%),radial-gradient(circle at 88% 68%,rgba(36,23,115,.28),transparent 64%); 
  mix-blend-mode:color-dodge; 
}
.expert-cta:after { 
  background:linear-gradient(180deg,rgba(36,23,115,.20),rgba(36,23,115,0) 40%,rgba(0,0,0,.55) 115%); 
  mix-blend-mode:soft-light; 
}
.expert-cta h2 { 
  margin:0 0 .95rem; 
  font-size:clamp(1.7rem,4.1vw,2.5rem); 
  font-weight:900; 
  letter-spacing:.75px; 
  text-transform:capitalize; 
  color:#fff; 
  position:relative; 
}
.expert-cta p { 
  margin:.15rem auto 1.7rem; 
  max-width:760px; 
  font-weight:500; 
  line-height:1.45; 
  font-size:clamp(.92rem,1.1vw,1rem); 
  color:rgba(255,255,255,.9); 
}
.expert-cta .cta-btn { 
  background:#ffffff; 
  color:#000000; 
  font-weight:800; 
  padding:1rem 2.35rem; 
  border:2px solid #ffffff; 
  border-radius:2.75rem; 
  font-size:1.05rem; 
  cursor:pointer; 
  display:inline-flex; 
  align-items:center; 
  gap:.65rem; 
  box-shadow:0 6px 18px -4px rgba(0,0,0,.45),0 3px 8px -2px rgba(0,0,0,.35); 
  transition:background .35s, color .35s, transform .35s, box-shadow .35s; 
  position:relative; 
}
.expert-cta .cta-btn:hover, .expert-cta .cta-btn:focus-visible { 
  background:#f2f2f2; 
  color:#000; 
  outline:none; 
  transform:translateY(-4px); 
  box-shadow:0 10px 28px -6px rgba(0,0,0,.55),0 5px 14px -4px rgba(0,0,0,.45); 
}
.expert-cta .cta-btn:active { transform:translateY(0); }
@media (max-width:680px){
  .expert-cta { padding:2.35rem 1.05rem; margin:2.85rem auto 2.35rem; }
  .expert-cta h2 { font-size:1.9rem; }
  .expert-cta p { font-size:.9rem; }
  .expert-cta .cta-btn { justify-content:center; }
}


/* Netting subnav expert button */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Outfit",system-ui,-apple-system,Segoe UI,Roboto,Inter,Ubuntu,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden; /* prevent accidental horizontal scroll */
}
/* --------------------------------------------- */
/* Mobile/tablet safe edge containment           */
/* Ensures no component hugs the viewport edge  */
/* or triggers horizontal scroll on narrow view */
/* --------------------------------------------- */
.no-overflow, .wrap, .net-hero, .netting-hero, .contact-hero, .turf-hero, .expert-cta, .carousel-section, .about-inner, .calc-grid, .inventory-callouts, .turf-grid, .footer-grid, .category-tiles .tiles {
  max-width:100%;
}
/* Unified inner horizontal padding for hero-like full width blocks at narrow widths */
@media (max-width:760px){
  .net-hero, .netting-hero, .contact-hero, .turf-hero, .expert-cta, .carousel-section { padding-left:clamp(.9rem,5vw,1.25rem) !important; padding-right:clamp(.9rem,5vw,1.25rem) !important; }
  .footer-grid { padding-left:clamp(.9rem,5vw,1.25rem); padding-right:clamp(.9rem,5vw,1.25rem); }
}
/* Protect ultra-small devices */
@media (max-width:400px){
  .grid, .category-tiles .tiles, .turf-grid, .inventory-callouts { gap:.65rem; }
  .hero-inner { gap:1.25rem; }
  .contact-grid, .calc-grid { gap:.85rem; }
}
/* Prevent long unbroken strings from expanding layout */
*, *::before, *::after { word-wrap:break-word; overflow-wrap:anywhere; }

/* Cards & tiles subtle padding adjustment on very narrow */
@media (max-width:480px){
  .card .body { padding:.8rem .75rem; }
  .tile { padding:.55rem .6rem .65rem; }
}

/* Ensure footer subfooter text doesn’t touch edges */
.subfooter.container { padding-left:clamp(.9rem,5vw,1.25rem); padding-right:clamp(.9rem,5vw,1.25rem); }

/* Mini cart panel safe area (iOS notch etc.) */
.mini-cart__panel { padding-bottom: env(safe-area-inset-bottom, 0); }
/* utility */
.muted{ color: var(--muted); }
.mt-4{ margin-top: 1.25rem; }
.mt-1{ margin-top: .5rem; }
.mt-6{ margin-top: 1.5rem; }
.stack-05{ display:grid; gap:.5rem; }
.stack-04{ display:grid; gap:.4rem; }
.stack-03{ display:grid; gap:.3rem; }
.row-between{ display:flex; justify-content:space-between; }
.hidden{ display:none !important; }
/* Generic row utility for inline controls */
.row{ display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
/* Align checkbox label text horizontally with the checkbox */
label.checkbox{ display:inline-flex; align-items:center; gap:.45rem; line-height:1; }
label.checkbox input[type="checkbox"]{ margin:0; position:relative; top:0; }
/* Auth form layout */
.auth-container{ max-width: 480px; margin: 2rem auto; background:#fff; border-radius:1.2rem; box-shadow:0 4px 24px rgba(12,32,64,.10); padding: 1.5rem; }
.auth-form{ display:grid; grid-auto-rows:min-content; gap:.9rem; }
.auth-form input{ padding:.85rem 1rem; border:1px solid var(--border); border-radius:.7rem; width:100%; max-width:100%; box-sizing:border-box; }
.auth-form .auth-field{ position:relative; display:block; }
.auth-form .auth-field input[type="password"],
.auth-form .auth-field input.has-peek{ padding-right:2.4rem; }
.auth-form .auth-peek{
  position:absolute;
  right:.5rem;
  top:50%;
  transform: translateY(-50%);
  display:flex;
  align-items:center;
  gap:.35rem;
  font-size:.85rem;
  color:var(--muted);
  background:transparent;
  padding:0 .35rem;
  border-radius:.4rem;
  cursor:pointer;
}

/* Eye button variant for show/hide */
.auth-peek-btn{
  position:absolute;
  right:.5rem;
  top:50%;
  transform:translateY(-50%);
  width:32px; height:32px;
  display:inline-grid; place-items:center;
  border:none; background:transparent; color:#6b7280; /* gray-500 */
  cursor:pointer; padding:0; border-radius:.4rem;
}
.auth-peek-btn:hover, .auth-peek-btn:focus-visible{ color:#374151; outline:none; box-shadow:var(--ring); }
.auth-peek-btn .eye-closed{ display:none; }
.auth-peek-btn[aria-pressed="true"] .eye-open{ display:none; }
.auth-peek-btn[aria-pressed="true"] .eye-closed{ display:block; }
.auth-form .auth-peek input{ width:auto; margin:0; vertical-align:middle; position:relative; top:-1px; }
.auth-form .auth-peek .peek-label{ font-size:.8rem; opacity:.75; line-height:1; }
.auth-form .grid-2{ display:grid; grid-template-columns:1fr; gap:.6rem; }
@media(min-width:520px){
  .auth-form .grid-2{ grid-template-columns:1fr 1fr; }
}
.auth-form .grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:.9rem; }
@media (max-width:720px){ .auth-form .grid-3{ grid-template-columns:1fr; } }
.auth-form .btn{ height: 44px; }
img{max-width:100%;display:block}
.container{max-width:1200px;width:100%;margin-inline:auto;padding-inline:clamp(.9rem,4vw,2rem)}
.container{--gutter-mobile:clamp(1rem,5vw,1.35rem)}
.wrap{max-width:1200px;margin-inline:auto;width:100%;}
.skip{position:absolute;left:-9999px;top:auto}
.skip:focus{left:1rem;top:1rem;background:#fff;color:#111;padding:.5rem .75rem;border-radius:.5rem}

/* SEO/A11Y: Utility to add semantic headings/labels without visual/layout impact */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

:root{--top-banner-height:0px}

/* Promo banner (sitewide, fixed top) */
.promo-banner{position:fixed;top:0;left:0;right:0;z-index:120;background:linear-gradient(90deg,var(--brand),#000);color:#fff;min-height:50px;height:auto;border-bottom:1px solid rgba(255,255,255,.15)}
.promo-banner .promo-inner{min-height:50px;height:auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.35rem 0}
.promo-banner .promo-text{font-size:.78rem;font-weight:800;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.promo-banner .promo-right{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.promo-banner .promo-cta{color:#fff;text-decoration:none;font-weight:900;font-size:.78rem;padding:.15rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.18)}
.promo-banner .promo-cta:hover{background:rgba(255,255,255,.12)}
.promo-banner .promo-close{all:unset;cursor:pointer;display:grid;place-items:center;width:22px;height:22px;border-radius:999px;font-size:1.05rem;line-height:1;font-weight:900;color:#fff;opacity:.9}
.promo-banner .promo-close:hover{background:rgba(255,255,255,.14);opacity:1}

/* Post-dismiss CTA banner */
.promo-banner.is-cta{background:linear-gradient(90deg,#111827,#000)}
.promo-banner.is-cta .promo-inner{min-height:40px;padding:.25rem 0}
.promo-banner.is-cta .promo-text{white-space:normal;overflow:visible;text-overflow:clip}
.promo-banner .promo-title{font-weight:900;letter-spacing:.2px}
.promo-banner .promo-title a{color:#fff;text-decoration:none}
.promo-banner .promo-title a:hover{text-decoration:underline}
.promo-banner .promo-phone{margin-left:auto;color:#fff;text-decoration:none;font-weight:900;white-space:nowrap;opacity:.95}
.promo-banner .promo-phone:hover{text-decoration:underline;opacity:1}

@media (max-width:520px){
  .promo-banner .promo-text{font-size:.74rem}
  .promo-banner .promo-cta{display:none}
}

/* When top banner is shown, shift the entire page down and keep sticky header below it */
body.has-top-banner, body.has-promo-banner{padding-top:var(--top-banner-height)}
.has-top-banner .site-header, .has-promo-banner .site-header{top:var(--top-banner-height);padding-top:0}

/* Header */
.site-header{position:sticky;top:0;z-index:30;background:#000000;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);padding-top:0}
.header-bar{display:flex;align-items:center;gap:1rem;min-height:51px;flex-wrap:wrap}
/* Header layout: brand left, nav center, actions right */
.site-header .header-bar{justify-content:space-between;padding:.65rem 0}
.brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.3px}
.site-header .brand{display:flex !important;flex-direction:row !important;align-items:center !important;justify-content:flex-start !important;flex-wrap:nowrap !important;min-width:0;text-align:left}
.site-header .brand img{flex:0 0 auto}
.site-header .brand span{display:inline !important;white-space:nowrap;line-height:1.1}
.brand img{filter:drop-shadow(0 4px 12px rgba(0,0,0,.25));border-radius:0.75rem;background:#ffffff;}

.footer-brand-block > img {
  border-radius: 0.75rem;
  background:#ffffff;
  height: 168px !important;
  width: auto !important;
  max-width: 520px;
  display: block;
  object-fit: contain;
}

@media (max-width:560px){
  .footer-brand-block > img{height:120px !important;max-width:80vw;}
}

/* Uniform white background for all logo images across the app */
img[alt*="logo" i],
img[src*="EZSportslogo"],
img[src*="ezsportslogo"],
img[src*="/logo.svg"]{
  background:#ffffff;
  /* Keep current radius if present; otherwise add a soft radius */
  border-radius:0.75rem;
}
.search{display:flex;gap:.5rem;flex:1;justify-content:center}
.search{position:relative;gap:0}
/* Search input with embedded icon via background SVG */
.search input{width:auto;min-width:16ch;max-width:100%;border-radius:.75rem;border:1px solid var(--border);background:#fff;color:var(--ink);padding:.72rem 1rem .72rem 2.5rem;line-height:1.2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' stroke='%2388989c' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cline x1='13' y1='13' x2='17' y2='17'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:18px 18px;background-position:12px 50%;}
/* Remove legacy absolute button icon usage */
.search .btn{display:none !important}
/* Focus state: darken icon by swapping filter */
.search input:focus{outline:none;box-shadow:var(--ring);border-color:var(--brand);}
@supports (filter:brightness(1.1)){
  .search input:focus{filter:brightness(1.02)}
}
@media (min-width:1000px){
  .site-header .search input{padding:.7rem 1rem .7rem 2.45rem;background-position:12px 50%;}
}
.search input:focus{outline:none;box-shadow:var(--ring);border-color:var(--brand)}
.quick-links{display:flex;align-items:center;justify-content:center;gap:1rem;order:2;flex:1 1 auto;margin-top:.4rem;visibility:hidden}
.site-header .header-bar{visibility:hidden}
.nav-ready .quick-links{visibility:visible}
.nav-ready .site-header .header-bar{visibility:visible}
.quick-links a{color:#d3d0d7;text-decoration:none;opacity:.95}
.quick-links .auth-link{color:#d3d0d7;text-decoration:none;opacity:.95;background:none;border:none;cursor:pointer;font:inherit;}

/* Primary nav submenu (L-Screens) */
.quick-links .has-submenu{position:relative}
.quick-links .has-submenu > a::after{content:"▾";margin-left:.35rem;font-size:.85em}
.quick-links .nav-submenu{position:absolute;top:calc(100% + .4rem);left:0;background:#0b0b0b;border:1px solid var(--border);border-radius:.6rem;box-shadow:0 8px 24px rgba(0,0,0,.32);display:none;min-width:220px;padding:.4rem;z-index:80;opacity:0;transform:translateY(-4px);transition:opacity .15s ease, transform .15s ease}
/* For L-Screens: open the dropdown to the left by aligning submenu to the right edge */
.quick-links .has-submenu.submenu-left > .nav-submenu{left:auto;right:0}
.quick-links .has-submenu.open > .nav-submenu{display:block;opacity:1;transform:none}
/* Keep submenu open when any child has focus (keyboard users) */
.quick-links .has-submenu:focus-within > .nav-submenu{display:block}
.quick-links .nav-submenu a{display:block;padding:.5rem .6rem;border-radius:.4rem;background:transparent;color:#d3d0d7}
.quick-links .nav-submenu a:hover{background:#121212;color:#fff}
.user-menu{display:flex;align-items:center;gap:.8rem;font-size:.9rem;position:relative}
.user-menu span{color:#d3d0d7;opacity:.8;}
.profile-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:2px solid #d4af37; /* gold border */ background:#4b2b82; /* purple */ cursor:pointer;transition:background .18s ease, filter .18s ease, border-color .18s ease}
.profile-btn:hover,.profile-btn:focus-visible{background:#5b3699;filter:brightness(1.05);outline:none}
.profile-btn:active{background:#ffffff;border-color:#b89125}
.profile-btn:active .avatar{background:#ffffff}
.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:transparent;color:#000 !important;font-weight:900;font-size:.9rem;letter-spacing:.4px;line-height:1;white-space:nowrap;}
.user-dropdown{position:absolute;right:0;left:auto;transform:none;top:calc(100% + .5rem);background:#fff;color:#0b2a4a;border:1px solid var(--border);border-radius:.6rem;box-shadow:0 8px 24px rgba(12,32,64,.18);min-width:200px;padding:.35rem;display:none;z-index:200}
.user-dropdown.open{display:block}
.user-dropdown a,.user-dropdown button{display:block;width:100%;text-align:left;padding:.5rem .6rem;border:none;background:none;color:#0b2a4a;text-decoration:none;cursor:pointer;border-radius:.4rem}
.user-dropdown a:hover,.user-dropdown button:hover{background:#f5f8ff}
.user-dropdown .user-summary{padding:.4rem .6rem .5rem;border-bottom:1px solid #eef3ff;margin-bottom:.25rem}
.quick-links a.is-active, .quick-links a[aria-current="page"]{
  color:#ffffff;
  opacity:1;
  background:rgba(255,255,255,.14);
  padding:.3rem .5rem;
  border-radius:.5rem;
}
/* EZ Nets mega menu removed */
/* Nav hover: brand orange */
.quick-links a:hover,
.quick-links .auth-link:hover{
  color: var(--brand);
  opacity: 1;
}
.cart-btn{display:inline-flex;align-items:center;gap:.5rem;border:none;background:var(--brand);color:#fff;padding:.5rem .75rem;border-radius:.75rem;cursor:pointer}
.cart-count{background:#fff;color:var(--brand);font-weight:800;min-width:22px;height:22px;display:inline-grid;place-items:center;border-radius:999px}
.icon-btn{background:var(--brand);border:1px solid var(--brand);color:#ffffff;border-radius:.5rem;padding:.35rem .5rem;cursor:pointer}

/* Top-row actions container */
.header-actions{margin-left:auto;display:flex;align-items:center;gap:.75rem}
/* Slight left margin to keep cart from touching user menu */
.site-header .cart-btn{margin-left:.5rem}
/* Hide empty header-actions to avoid pushing layout */
.header-actions:empty{display:none}
/* Header break element to create second row in mid-range widths */
.header-break{flex-basis:100%;height:0;display:none}
/* Large / default single-row ordering: brand, search, login, cart, menu toggle */
.site-header .header-bar{display:flex}
/* Base ordering (≥641px single-row): brand, search, login/actions, cart, menu toggle (always last/right) */
.site-header .brand{order:1}
.site-header .search{order:2;flex:1 1 auto;min-width:200px}
.site-header .header-actions{order:3}
.site-header .cart-btn{order:4}
.site-header .menu-toggle{order:5;margin-left:1rem}
/* Small phones: two rows
   Row1: brand, login (actions), cart
   Row2: menu toggle, search (full width)
*/
@media (max-width:640px){
  /* Mobile header: Row 1 brand centered; Row 2: search 60%, actions 20%, menu toggle 20% */
  .site-header .header-bar{display:grid;grid-template-rows:auto auto;row-gap:.4rem;align-items:center;justify-items:stretch;grid-template-columns:100%;column-gap:.25rem;padding:.5rem .55rem .5rem}
  .site-header .brand{grid-column:1 / -1;grid-row:1;justify-self:center;margin-inline:auto;margin-bottom:.4rem}
  /* Second row defined with fractional distribution including gap fallback */
  /* Adaptive columns: search grows, actions/menu size to content */
  .site-header .header-bar{grid-template-columns:minmax(0,1fr) auto auto}
  .site-header .search{grid-row:2;grid-column:1;order:unset;width:100%;min-width:0;margin:0;display:flex}
  .site-header .search input{width:100%;min-width:0;padding:.6rem .65rem .6rem 2.4rem;font-size:.85rem}
  .site-header .header-actions{grid-row:2;grid-column:2;order:unset;display:flex;justify-content:center;align-items:center;width:100%;margin:0;gap:.25rem}
  .site-header .menu-toggle{grid-row:2;grid-column:3;order:unset;margin:0;justify-self:center;align-self:center;display:inline-flex;min-width:0}
  .site-header .cart-btn{margin-left:.25rem}
  .header-break{display:none}
  /* Ensure inner elements shrink properly */
  .site-header .header-actions .user-menu, .site-header .header-actions .auth-link, .site-header .header-actions .cart-btn{flex:0 1 auto}
  /* Tighten extremely small widths */
  @media (max-width:480px){
    .site-header .search input{font-size:.8rem;padding:.55rem .55rem .55rem 2.3rem}
  }
  @media (max-width:400px){
    .site-header .search input{font-size:.78rem;padding:.5rem .5rem .5rem 2.15rem}
    .site-header .menu-toggle{padding:.5rem .55rem}
  }
  @media (max-width:360px){
    .site-header .search input{font-size:.75rem;padding:.48rem .5rem .48rem 2.05rem}
    .site-header .menu-toggle{font-size:.8rem;width:40px;height:40px;padding:.5rem}
    .site-header .menu-toggle span{display:none}
  }
}
/* Mid sizes retain single-row default (allow existing nav collapse) */
@media (min-width:641px) and (max-width:1200px){
  .site-header .menu-toggle{margin-right:.75rem}
  .site-header .search input{width:auto;min-width:16ch;max-width:100%}
}
/* Multi-column nav when expanded still for mid sizes */
@media (min-width:680px) and (max-width:1200px){
  .quick-links.is-open{flex-direction:row;flex-wrap:wrap;column-gap:1.25rem;row-gap:.35rem;padding:1rem 1rem 1.25rem}
  .quick-links.is-open a{width:auto;flex:0 0 calc(25% - 1.25rem);min-width:140px}
  @supports (display:grid){
    .quick-links.is-open{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
    .quick-links.is-open a{width:100%;flex:none}
  }
}

/* Mobile nav */
.menu-toggle{display:none;background:var(--brand);color:#fff;border:1px solid var(--brand);font-weight:800;font-size:1.05rem;line-height:1;border-radius:.65rem;padding:.55rem .7rem;cursor:pointer}
/* Collapsible navigation applies up to large tablets (raised from 900px -> 1200px) */
@media (max-width:1200px){
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center}
  .quick-links{flex-basis:100%;order:4;display:none;flex-direction:column;align-items:stretch;text-align:center;background:#000000;padding:.6rem .6rem 1rem;border-radius:.85rem;margin-top:.55rem;box-shadow:0 4px 18px rgba(0,0,0,.25)}
  .quick-links a{padding:.55rem .75rem;border-radius:.55rem;width:100%;display:flex;justify-content:center;align-items:center;text-align:center}
  .quick-links.is-open{display:flex}
  /* Submenu stacks under its trigger on mobile */
  .quick-links .has-submenu{width:100%}
  .quick-links .nav-submenu{position:static;display:none;width:100%;margin-top:.25rem;padding:.25rem;border:none;border-radius:.5rem;background:#0a0a0a;box-shadow:none}
  .quick-links .has-submenu.open > .nav-submenu{display:block}
  .quick-links .nav-submenu a{width:100%;display:flex;justify-content:center;align-items:center;text-align:center}

  /* For L‑Screens specifically: when mobile menu is open, show its submenu as a flyout to the left of the menu panel */
  .site-header .header-bar .quick-links .has-submenu.submenu-left > .nav-submenu{
    position:absolute;
    top:0;
    right:calc(100% + .5rem);
    left:auto;
    width:min(320px,80vw);
    max-height:calc(100dvh - 120px);
    overflow:auto;
    padding:.4rem;
    background:#0b0b0b;
    border:1px solid var(--border);
    border-radius:.6rem;
    box-shadow:0 8px 24px rgba(0,0,0,.32);
    z-index:100;
  }
  body.nav-open{overflow:hidden}
  /* Convert collapsed nav into an overlay dropdown that does NOT push header content */
  .site-header .header-bar{position:relative}
  .site-header .header-bar .quick-links{position:absolute;top:100%;right:0;left:auto;flex-basis:auto;order:unset;width:min(420px,calc(100% - .75rem));max-height:calc(100dvh - 110px);overflow-y:auto;overflow-x:visible;margin-top:.55rem;z-index:70}
  /* Re‑assert display when open (specificity bump because of absolute override) */
  .site-header .header-bar .quick-links.is-open{display:flex}
  /* Hide the flyout unless the parent submenu is open */
  .site-header .header-bar .quick-links .has-submenu.submenu-left > .nav-submenu{display:none}
  .site-header .header-bar .quick-links .has-submenu.submenu-left.open > .nav-submenu{display:block;opacity:1;transform:none}
}

/* Small safeguards to avoid clipping on ultra-narrow widths */
@media (max-width:480px){
  .site-header .header-bar .quick-links{width:min(92vw, 420px)}
  .site-header .header-bar .quick-links .has-submenu.submenu-left > .nav-submenu{
    right:calc(100% + .35rem);
    width:min(75vw, 320px);
  }
}

/* Small phones/tablets: make the menu panel full-width and left-aligned for consistency */
@media (max-width:640px){
  .site-header .header-bar .quick-links{left:0; right:0; width:100%;}
  /* When nav has the nav-centered utility, keep items centered in mobile stacked panel */
  .site-header .header-bar .quick-links.nav-centered{justify-content:center !important}
  /* Submenu stacks inline to avoid off-screen clipping on narrow devices */
  .site-header .header-bar .quick-links .has-submenu.submenu-left > .nav-submenu{
    position:static;
    right:auto; left:auto; top:auto;
    width:100%; max-height:none; overflow:visible;
    padding:.25rem; margin-top:.25rem;
    background:#0a0a0a; border:none; border-radius:.5rem; box-shadow:none;
  }
}

/* When viewport is relatively narrow, anchor the flyout to the left edge so it stays fully visible */
@media (max-width:768px){
  .site-header .header-bar .quick-links .has-submenu.submenu-left.open > .nav-submenu{
    left:8px; right:auto; width:min(90vw, 360px);
  }
}

/* Extra-small fallback: stack submenu inline instead of flyout to avoid off-screen clipping */
@media (max-width:420px){
  .site-header .header-bar .quick-links .has-submenu.submenu-left > .nav-submenu{
    position:static;
    right:auto; left:auto; top:auto;
    width:100%; max-height:none; overflow:visible;
    padding:.25rem; margin-top:.25rem;
    background:#0a0a0a; border:none; border-radius:.5rem; box-shadow:none;
  }
}
/* Safeguard: if JS or old CSS attempts to force desktop, override below 1200px */
@media (max-width:1200px){
  .quick-links.forced-wide{display:none !important}
}

/* Desktop ≥1201px: keep login (header-actions) and cart on top row right edge */
@media (min-width:1201px){
  .site-header .menu-toggle{display:none}
  /* Top row: brand, search (grows), actions + cart (right). Allow wrap so nav (quick-links) moves to second row. */
  .site-header .header-bar{flex-wrap:wrap}
  .site-header .quick-links{order:6;flex-basis:100%;width:100%}
  .site-header .header-actions{margin-left:auto}
  .site-header .cart-btn{margin-left:.4rem}
  /* Refined desktop search alignment */
  .site-header .search input{padding:.7rem 1rem .7rem 2.45rem;line-height:1.25;font-size:.95rem}
}

/* Buttons (gold primary theme) */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.1rem;border-radius:.9rem;font-weight:800;letter-spacing:.3px;border:1px solid var(--gold);text-decoration:none;cursor:pointer;transition:.18s ease-in-out;text-transform:uppercase;background:var(--gold);color:#fff}
/* Ensure <button> variants match <a class="btn"> sizing/metrics */
button.btn{font:inherit;}
.btn-quote{background:#000000;border-color:#000000;color:#fff}
.btn-quote:hover{filter:brightness(1.12)}
.btn.btn-dark{background:#000000;border-color:#000000;color:#fff}
.btn.btn-dark:hover{filter:brightness(1.15)}
.btn-primary{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-ghost{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-invert{background:var(--gold);border-color:var(--gold);color:#fff}
.btn-pill{border-radius:2rem;background:var(--gold);border:2px solid var(--gold);color:#fff;padding:.7rem 1.1rem;font-weight:900}
.btn:hover,.btn-primary:hover,.btn-ghost:hover,.btn-invert:hover,.btn-pill:hover{background:var(--gold-hover);border-color:var(--gold-hover);filter:none}
.btn:active,.btn-primary:active,.btn-ghost:active,.btn-invert:active,.btn-pill:active{background:var(--gold-active);border-color:var(--gold-active);}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in oklab, var(--gold) 65%, #fff 25%)}
/* Disabled buttons (visual + interaction) */
.btn[aria-disabled="true"],
.btn:disabled,
button[aria-disabled="true"],
button:disabled{
  background:#9aa0a6 !important; /* neutral gray */
  border-color:#9aa0a6 !important;
  color:#ffffff !important;
  cursor:not-allowed !important;
  opacity:.65;
  filter:none !important;
  box-shadow:none !important;
  pointer-events:none; /* ensure no clicks/hover states */
}
.btn[aria-disabled="true"]:hover,
.btn[aria-disabled="true"]:focus,
.btn:disabled:hover,
.btn:disabled:focus{
  background:#9aa0a6 !important;
  border-color:#9aa0a6 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}
/* Preserve specialized quote button styling */
.btn-quote{background:#000000 !important;color:#ffffff !important;border:1px solid #000000 !important;box-shadow:0 2px 6px rgba(0,0,0,.4);}
.btn-quote:hover,.btn-quote:focus-visible{filter:brightness(1.15);outline:none;}
.btn-block{width:100%}

/* Call To Order (Accessories)
   Desktop: show text link
   Mobile: show full button */
.calltoorder-desktop-link{display:inline-flex;align-items:center;gap:.35rem;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--gold);text-decoration:underline;}
.calltoorder-desktop-link:hover{color:var(--gold-hover);}
.calltoorder-mobile-btn{display:none;}
@media (max-width:640px){
  .calltoorder-desktop-link{display:none;}
  .calltoorder-mobile-btn{display:inline-flex;width:100%;}
}

/* Toolbar rows (used on admin + analytics pages) */
.toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;}
.toolbar .btn{min-height:44px;}

/* Fit-to-content defaults for form controls */
input, select, textarea, button { width:auto; max-width:100%; }
/* Keep intentional full-width helpers intact */
.btn-block { width:100%; }

/* Hero */
.hero{position:relative;padding:clamp(25px,2vw,25px) 0 12px;background:#ffffff}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:2.2rem;align-items:center}
.hero-copy h1{font-size:clamp(32px,6vw,52px);margin:0 0 .3rem;font-weight:900;color:var(--ink);letter-spacing:.8px;text-transform:uppercase}
.hero-copy p{color:var(--muted);margin:0 0 1rem;font-weight:600}
.hero-cta{display:flex;gap:.65rem;flex-wrap:wrap}
/* Hero art image: responsive sizing so border hugs content */
.hero-art img{display:block;width:100%;height:auto;max-width:100%;max-height:clamp(260px,55vh,560px);border:6px solid #ffffff;border-radius:1rem;box-shadow:0 20px 60px rgba(6,35,71,.12);object-fit:cover;background:#fff;}

/* Tiles */
.section-title{font-size:clamp(22px,3.2vw,30px);font-weight:900;margin:34px 0 14px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink)}
.category-tiles .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.category-tiles .tiles{justify-items:center}
.tile{position:relative;border-radius:1.1rem;overflow:hidden;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--border);padding:.85rem .9rem .95rem;display:flex;flex-direction:column;gap:.5rem}
.tile .tile-head h3{margin:.1rem 0 0;font-size:clamp(1rem,2.4vw,1.35rem);letter-spacing:.55px;text-transform:uppercase;color:var(--ink);text-align:center;line-height:1.15;word-break:break-word;overflow-wrap:anywhere}
.tile .tile-head p{margin:0;color:var(--muted);text-align:center;font-weight:700;letter-spacing:.45px;text-transform:uppercase;font-size:clamp(.55rem,1.7vw,.65rem)}
.tile .media{position:relative}
.tile img{aspect-ratio:2/1;/* wider => shorter */object-fit:contain;border-radius:.75rem;box-shadow:0 8px 22px rgba(10,42,74,.10);max-height:clamp(150px,22vh,220px);background:#fff;padding:.35rem}
.tile .tile-cta{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);max-width:90%;}
.tile .tile-cta .btn.btn-pill{white-space:nowrap;padding:.7rem 1.55rem;font-size:.72rem;letter-spacing:.6px;}
@media (max-width:600px){
  .category-tiles .tiles{grid-template-columns:repeat(2,1fr);}
  .tile .tile-cta .btn.btn-pill{padding:.65rem 1.25rem;font-size:.7rem;}
}
.tile:hover img{transform:scale(1.05)}
.tile-label{display:none}

/* Banners */

/* Enhanced Banner Styling */

/* Reduced-size Banner Styling (50% smaller) */
.banner-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin-top: 1.25rem;
  margin-bottom: 0.75rem;
}
.banner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 130px;
  border-radius: 0.65rem;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(12,32,64,.13);
  border: none;
  transition: transform .18s cubic-bezier(.4,1.2,.6,1);
  cursor: pointer;
}
.banner:hover {
  transform: translateY(-2px) scale(1.0125);
  box-shadow: 0 8px 24px rgba(12,32,64,.18);
}
.banner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.22;
  z-index: 1;
  transition: opacity .18s;
}

/* About image height constraint */
.about-inner img{max-height:520px;object-fit:contain;width:100%;background:#fff;padding:.4rem;border-radius:.75rem}

@media (max-width: 800px){
  .about-inner img{max-height:380px}
  .hero-art img{max-height:420px}
}
@media (max-width: 500px){
  .about-inner img{max-height:300px}
  .tile{padding:.6rem .65rem .7rem}
  .tile img{max-height:135px}
  .hero-art img{max-height:360px}
}
.banner:hover img {
  opacity: 0.28;
}
.banner .content {
  position: relative;
  z-index: 2;
  padding: 1.1rem 1rem 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  pointer-events: auto;
}
.banner .content h3 {
  font-size: clamp(0.75rem, 1.5vw, 1.1rem);
  color: #fff;
  margin: 0 0 .2rem;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  font-weight: 900;
  text-shadow: 0 1px 6px rgba(0,0,0,.18);
}
.banner .content .btn {
  pointer-events: auto;
  margin-top: .1rem;
  font-size: 0.5rem;
  font-weight: 800;
  border-radius: 1rem;
  padding: .35rem 0.65rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.banner.red {
  background: linear-gradient(135deg, var(--brand) 60%, #000000 100%);
}
.banner.blue {
  background: linear-gradient(135deg, var(--brand) 60%, #000000 100%);
}
.banner h3, .banner p {
  margin: 0;
}
.banner p {
  color: #d3d0d7;
  font-weight: 600;
  font-size: 0.55rem;
  text-shadow: 0 1px 4px rgba(0,0,0,.10);
}

@media (max-width: 1024px) {
  .banner-row {
    grid-template-columns: 1fr;
    gap: 0.6rem;
  }
}
@media (max-width: 640px) {
  .banner .content {
    padding: 0.6rem 0.5rem 0.5rem 0.5rem;
  }
  .banner-row {
    margin-top: 0.6rem;
    margin-bottom: 0.5rem;
  }
}

@media (max-width: 1024px) {
  .banner-row {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
}
@media (max-width: 640px) {
  .banner .content {
    padding: 1.2rem 1rem 1rem 1rem;
  }
  .banner-row {
    margin-top: 1.2rem;
    margin-bottom: 1rem;
  }
}

/* Catalog */
.catalog-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{padding:.5rem .9rem;border-radius:2rem;background:#fff;border:1px solid var(--border);color:var(--ink);cursor:pointer;font-weight:800}
.chip.is-active{background:var(--brand);color:#fff;border-color:transparent}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(12,32,64,.06)}
.card .media{background:#ffffff}
.card .media{position:relative;display:flex;align-items:center;justify-content:center;height:clamp(150px,18vh,210px);}
.card .media.no-link{height:clamp(150px,18vh,210px);} /* ensure the rope group card matches standard card media height */
.card .media img{width:100%;height:100%;aspect-ratio:4/3;object-fit:contain;display:block;padding:.4rem;background:#fff;border-radius:.6rem}
.card .body{padding:.9rem;display:flex;flex-direction:column;flex:1}
.price-row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.4rem}
.price-row{gap:.5rem;flex-wrap:wrap}
.price-row .btn{white-space:nowrap}
.price-row.right{justify-content:flex-end}
.price{font-weight:800;letter-spacing:.2px}
.was-price{opacity:.7;text-decoration:line-through}
.badge{background:var(--red);color:#fff;border-radius:.4rem;padding:.15rem .35rem;font-size:.72rem;font-weight:800}
.wide{grid-column:span 2}

/* L-Screens sub nav card tweaks: left-align price under title; color dots and Add on one row */
/* Keep price block consistent but left-align specifically for L-Screens pages */
.card .body .price-centered{ text-align:center; font-weight:800; margin:.15rem 0 .35rem; }
body.lscreens-subnav .card .body .price-centered{ text-align:left; }
/* Ensure variant row spaces color dots and Add button */
body.lscreens-subnav .card .body .variant-row{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.15rem; }
body.lscreens-subnav .card .body .actions-row{ display:flex; justify-content:flex-end; margin-top:auto; }
body.lscreens-subnav .card .body .actions-row.right{ justify-content:flex-end; }

/* About */
.about-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:1.4rem;align-items:center;margin-top:1rem}
.about-inner > div { display:flex; flex-direction:column; justify-content:center; align-self:center; max-width:620px; }
.about-inner > div h1 { line-height:1.05; }
.about-inner > div p.muted { margin:0 0 .9rem; font-size:clamp(.95rem,1.05rem + .2vw,1.15rem); line-height:1.35; }
@media (min-width:1200px){
  .about-inner{grid-template-columns:1fr 1fr;}
}
@media (max-width:860px){
  .about-inner > div { max-width:100%; }
}
.about .checks{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.4rem}
.about .checks li{position:relative;padding-left:1.5rem}
.about .checks li::before{content:"✔";position:absolute;left:0;top:0;color:#69e480}
.about img{border-radius:1rem;border:6px solid #fff;box-shadow:0 20px 60px rgba(12,32,64,.18)}

/* Footer */
.site-footer{margin-top:40px;background:#000000;border-top:1px solid rgba(255,255,255,.08);color:#d3d0d7}
.site-footer .container{max-width:1200px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:1rem;padding:2rem 0}
.footer-grid h4{margin:.2rem 0 .6rem}
.footer-grid a{color:#d3d0d7;text-decoration:none;opacity:.95}
.site-footer nav{ text-align:center; }
.site-footer nav ul{ list-style:none; margin:0; padding:0; }
.site-footer nav li{ margin:.2rem 0; }
/* For pages where footer columns aren't wrapped in <nav> and use <div><h4>Title</h4><a>.. */
.site-footer .footer-grid > div h4{ text-align:center; }
.site-footer .footer-grid > div h4 ~ a{ display:block; text-align:center; }
.subfooter{display:block;text-align:center;border-top:1px solid rgba(255,255,255,.08);padding:1rem 0;color:#d3d0d7}
.footer-brand-block { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; }
.socials { display: flex; justify-content: center; gap: 1rem; }
.socials img { height: 20px; width: 20px; display: block; object-fit: contain; }
.brand--light{opacity:1}
.subscribe .row{display:flex;gap:.5rem}
.subscribe input{flex:0 1 auto;width:auto;min-width:16ch;max-width:100%;padding:.65rem .8rem;border-radius:.6rem;border:1px solid var(--border);background:#fff;color:var(--ink)}
/* Payment methods: Add Card form visuals */
#pm-add-area{ display:grid; gap:.75rem; align-content:start; justify-items:stretch; }
.auth-container #pm-add-area input { padding:.85rem 1rem; border:1px solid var(--border); border-radius:.7rem; width:100%; max-width:100%; box-sizing:border-box; background:#fff; color:var(--ink); }
.card-element{ padding:.85rem 1rem; border:1px solid var(--border); border-radius:.7rem; background:#fff; }
.card-element:focus-within{ outline:none; box-shadow:var(--ring); border-color:var(--brand); }
.site-footer a[href="careers.html"],
.site-footer li a[href="careers.html"],
nav.quick-links a[href="careers.html"],
nav.quick-links li a[href="careers.html"]{
  display:none !important;
}

/* Expert help footer form */
/* Ensure all footer columns align to the top */
.footer-grid > *{align-self:start}

/* Mini cart */
.mini-cart{border:none;padding:0;background:transparent}
.mini-cart[open]{display:grid;place-items:start end}
.mini-cart.is-open{display:grid;place-items:start end}
.mini-cart__backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55)}
.mini-cart__panel{position:fixed;top:0;right:0;height:100dvh;width:min(420px,92vw);background:#ffffff;border-left:1px solid var(--border);display:flex;flex-direction:column}
.mini-cart__panel header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border)}
.mini-cart__items{padding:1rem;display:grid;gap:.65rem;overflow:auto}
.cart-row{display:grid;grid-template-columns:64px 1fr auto;gap:.6rem;align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:.6rem;padding:.5rem}
.mini-cart__footer{margin-top:auto;border-top:1px solid var(--border);padding:1rem}
.totals{display:flex;justify-content:space-between;margin-bottom:.6rem}
.btn-col{display:grid;gap:.5rem}

/* Netting calculator: floating cart panel to the right of content (desktop) */
@media (min-width:1101px){
  body.page-netting-calculator .calc-grid{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:start}
  body.page-netting-calculator .calc-media,
  body.page-netting-calculator .calc-card{grid-column:1}
  body.page-netting-calculator .calc-card{width:100%;max-width:none;position:static;top:auto;justify-self:stretch}

  body.page-netting-calculator .mini-cart{grid-column:2;grid-row:1 / span 2;display:block;position:static}
  body.page-netting-calculator .mini-cart__backdrop{display:none}
  body.page-netting-calculator .mini-cart__panel{
    position:static;
    top:auto;
    height:auto;
    max-height:none;
    width:100%;
    border:1px solid var(--border);
    border-radius:1rem;
    box-shadow:0 8px 24px rgba(12,32,64,.06);
  }
  body.page-netting-calculator .mini-cart__items{overflow:visible}
}

/* Netting calculator: cart becomes an overlay on smaller screens */
@media (max-width:1100px){
  body.page-netting-calculator .mini-cart{display:none}
  body.page-netting-calculator .mini-cart.is-open{display:grid;position:fixed;inset:0;z-index:120}
}

/* Responsive */
/* --- Responsive Layout Adjustments --- */
/* Product grid (3-up) override on wide screens for custom section pages */
@media (min-width:1025px){
  .product-grid.grid-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
/* Subtle tightening for very narrow screens so cards/bars don’t overflow */
@media (max-width:420px){
  .price-row{ justify-content:space-between; gap:.35rem; }
  .card .body{ padding:.75rem; }
}
@media (max-width:1024px){
  .hero-inner{grid-template-columns:1fr;}
  .category-tiles .tiles{grid-template-columns:repeat(2,1fr)}
  .grid{grid-template-columns:repeat(3,1fr)}
  .about-inner{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .banner-row{grid-template-columns:1fr}
}
@media (max-width:860px){
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:700px){
  .container{padding-inline:var(--gutter-mobile)}
  .category-tiles .tiles{grid-template-columns:1fr}
}
@media (max-width:640px){
  /* Stack header content */
  .header-bar{flex-wrap:wrap;align-items:flex-start;padding:.6rem 0}
  .header-bar,.hero-inner{justify-content:center}
  .brand{flex:1 0 40%;min-width:160px}
  .quick-links{order:2;flex:1 0 auto;justify-content:center;flex-wrap:wrap;gap:.6rem}
  .search{order:3;width:100%;margin-top:.4rem}
  .cart-btn{padding:.45rem .6rem}
  /* Tiles tighter */
  .tile{padding:.55rem .55rem .6rem;gap:.4rem}
  .tile .tile-head h3{font-size:clamp(.95rem,5vw,1.15rem)}
  .tile img{max-height:130px}
  .tile{width:100%}
}

/* Extra small devices (portrait phones <480px) */
@media (max-width:480px){
  .hero-copy h1{font-size:clamp(26px,9vw,40px)}
  .hero-copy{text-align:center}
  .hero-copy .hero-cta{justify-content:center}
  .grid{grid-template-columns:1fr}
  .catalog-bar{flex-direction:column;align-items:stretch}
  .quick-links{flex-wrap:wrap;gap:.45rem;font-size:.8rem}
  .quick-links a{padding:.25rem .5rem;background:#000000;border-radius:.5rem}
  .btn{padding:.65rem .85rem;font-size:.78rem}
  .tile img{max-height:120px}
  /* Footer: keep Brand top, show Shop + Company side-by-side, then Subscribe full width */
  .footer-grid{grid-template-columns:1fr 1fr;grid-template-areas:
    "brand brand"
    "shop company"
    "subscribe subscribe";}
  .footer-grid > .footer-brand-block{grid-area:brand}
  .footer-grid > nav:nth-of-type(1){grid-area:shop}
  .footer-grid > nav:nth-of-type(2){grid-area:company}
  .footer-grid > .subscribe{grid-area:subscribe}
  .footer-grid > nav{align-items:flex-start}
  .footer-grid > nav h4, .footer-grid > nav li, .footer-grid > nav a{text-align:left}
  .subfooter{flex-direction:column;gap:.5rem;text-align:center}
  .about-inner{gap:.9rem}
  .mini-cart__panel{width:min(100%,100vw)}
  #job-filters{padding:.75rem}
  #job-filters > div:first-child{grid-template-columns:1fr 1fr}
  .container{padding-inline:clamp(1.05rem,6vw,1.5rem)}
}

/* Netting calculator */
.calc-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin:1rem 0 2rem}
.calc-media,.calc-card{min-width:0}
.calc-media img{border-radius:1rem;border:6px solid #fff;box-shadow:0 12px 36px rgba(12,32,64,.16)}
/* Zoom-crop: keep container size, zoom image to 150%, crop overflow */
.calc-media .media-crop{position:relative;overflow:hidden;border-radius:1rem}
.calc-media .media-crop img{display:block;width:100%;height:auto;object-fit:contain;transform:none}
/* Optional zoom style only when explicitly applied */
.calc-media .media-crop img.enlarge-150{transform:scale(1.5);object-fit:cover}
.calc-media{overflow:visible}
/* Calculator gallery */
/* Gallery now acts as a slider on narrow widths */
.calc-gallery{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem;min-height:86px;position:relative}
.calc-gallery li{width:60px;aspect-ratio:1/1;border:2px solid var(--border);border-radius:.65rem;overflow:hidden;position:relative;cursor:pointer;background:#fff;display:grid;place-items:center}
.calc-gallery li img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
/* Info diagram variants (filenames in assets/info) should not be hard-cropped */
.calc-gallery li img[src*='assets/info/']{object-fit:contain;background:#fff;padding:4px}
.calc-gallery li:focus-within img,.calc-gallery li:hover img{transform:scale(1.12)}
.calc-gallery button{all:unset;cursor:pointer;display:block;width:100%;height:100%}
.calc-gallery li.is-active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(36,23,115,.25)}
.calc-gallery .gallery-empty{flex:1 0 100%;text-align:center;padding:.6rem .75rem;font-size:.75rem;background:linear-gradient(135deg,#f5f7fa,#eef2f8);border:1px dashed var(--border);border-radius:.75rem;color:#555;font-weight:600}
/* Loading skeleton state (applied before JS populates images) */
.calc-gallery.loading:before{content:"";position:absolute;inset:0;border:2px dashed var(--border);border-radius:.75rem;background:repeating-linear-gradient(90deg,#f6f8fa 0 45px,#eef1f5 45px 90px);animation:calcShimmer 1.35s linear infinite;background-size:200% 100%;}
@keyframes calcShimmer{0%{background-position:0 0}100%{background-position:-200% 0}}
/* Slider variant (applied via JS below 640px) */
.calc-gallery.slider{flex-wrap:nowrap;overflow:hidden;position:relative}
.calc-gallery.slider .calc-gallery-track{display:flex;gap:.55rem;transition:transform .5s cubic-bezier(.6,.2,.3,1)}
.calc-gallery.slider li{flex:0 0 54px}
.calc-gallery.slider .gallery-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;left:0;right:0;pointer-events:none}
.calc-gallery.slider .gallery-btn{pointer-events:auto;background:#000000;color:#fff;border:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:1.1rem;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:.2s}
.calc-gallery.slider .gallery-btn:hover{filter:brightness(1.1)}
@media (max-width:640px){
  .calc-gallery{padding-bottom:.35rem}
}

/* Training facility configurator */
@media (min-width:960px){
  .facility-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}
}

.facility-hero{margin-top:1rem}
.facility-hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}
.facility-subtitle{margin-top:-.25rem}
.facility-helper{font-size:.8rem;line-height:1.35}
.facility-meta{font-weight:700}
.facility-check{display:flex;align-items:center;gap:.55rem}
.facility-divider{border:none;border-top:1px solid var(--border);margin:1rem 0}
.facility-hp{display:none}
.facility-grow{flex:1 1 240px}

/* Training facility design: keep Coverage + Net type on one row when space allows */
.calc-form .facility-two-col{display:flex;gap:.9rem;flex-wrap:wrap;align-items:flex-start}
.calc-form .facility-two-col > .form-row{flex:1 1 240px}
.calc-form .facility-two-col select{width:100%}

/* Training facility design: auto-scrolling media carousel (images only) */
.facility-media-carousel{margin:1rem auto 0}
.auto-carousel{position:relative}
.auto-carousel__viewport{overflow:hidden;padding:.85rem;border-radius:1rem;border:1px solid var(--border);background:#fff;box-shadow:0 10px 30px rgba(12,32,64,.08)}
.auto-carousel__track{display:flex;gap:.85rem;align-items:center;will-change:transform;animation:autoCarouselScroll var(--carousel-duration,48s) linear infinite}
.auto-carousel__item{flex:0 0 auto;width:clamp(220px,34vw,380px);aspect-ratio:4/3;border-radius:.85rem;overflow:hidden;background:#f3f5f8;box-shadow:0 6px 18px rgba(12,32,64,.10)}
.auto-carousel__item picture,.auto-carousel__item img{display:block;width:100%;height:100%}
.auto-carousel__item img{object-fit:cover}

@keyframes autoCarouselScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Pause animation on user intent */
.auto-carousel:hover .auto-carousel__track,
.auto-carousel:focus-within .auto-carousel__track{animation-play-state:paused}

/* Reduced motion: disable animation and allow manual scroll */
@media (prefers-reduced-motion: reduce){
  .auto-carousel__track{animation:none}
  .auto-carousel__viewport{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
.calc-card{background:#fff;border:1px solid var(--border);border-radius:1rem;box-shadow:0 8px 24px rgba(12,32,64,.06);padding:1rem}
.calc-title{margin:0 0 .5rem}
.calc-form{display:grid;gap:.9rem}
.calc-form .form-row{display:grid;gap:.35rem}
.calc-form .dims{display:flex;gap:25px;align-items:center}
.calc-form input[type=number], .calc-form select{padding:.5rem .65rem;border:1px solid var(--border);border-radius:.6rem}
.calc-form input[type=number]{ width:6ch; }
/* Widen ft/in fields to comfortably fit at least 3 digits */
.calc-form .dims input[type=number]{ width:8ch; }
.calc-form .qty input[type=number]{ width:7ch; text-align:center; }
.calc-form .qty .icon-btn{ width:auto; min-width:32px; height:32px; }
.calc-form .unit{opacity:.65}
.calc-form fieldset{border:1px solid var(--border);border-radius:.75rem;padding:.65rem}
.calc-form legend{padding:0 .25rem;font-weight:900;color:var(--ink-2); letter-spacing:.2px}
/* Mesh row: keep dropdown readable but prevent full-form blowout */
.calc-form #mesh { max-width: 100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Netting panel creator: keep Mesh + Dimensions + Border on one row when space allows */
.calc-form .creator-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.calc-form .creator-row > *{min-width:0}

/* Mesh: not full-form width, but also not max-content (longest option) width */
.calc-form .creator-row .mesh-row{flex:0 1 22rem;max-width:22rem}
.calc-form .creator-row .mesh-row #mesh{width:100%}

/* Dimensions / Border: fit to content */
.calc-form .creator-row fieldset{width:fit-content;flex:0 0 auto}
.calc-form .creator-row .dims{gap:10px}
.calc-form .creator-row .choices{gap:.75rem}
/* Mesh helper spacing */
.mesh-help{margin:.15rem 0 0;font-size:.7rem;line-height:1.3;max-width:22rem}
/* Overflow containment & responsive tightening for calculator form */
/* Ensure internal grids never force horizontal scroll on very narrow devices */
.calc-card{overflow:hidden;}
/* Allow border choices to wrap instead of pushing beyond edge */
.choices{flex-wrap:wrap}
/* Prevent long labels / summary items from overflowing */
.calc-form .form-row, .summary > div{min-width:0}
/* Ultra narrow: keep ft/in on one row; tighten spacing and input width */
@media (max-width:420px){
  .calc-form .dims{ gap:5px; }
  .calc-form .dims input[type=number]{ width:7ch; }
}

/* Support/help pages */
.support { margin-top: 1rem; }
.support .card { padding: 1rem; }
.support form { display: grid; gap: .6rem; }
.support input, .support textarea, .support select { padding: .7rem .9rem; border: 1px solid #cfe0f5; border-radius: .6rem; background: #fff; color: var(--ink); }
.support .grid.two-col { grid-template-columns: 1fr 1fr; }
@media (max-width: 800px){ .support .grid.two-col { grid-template-columns: 1fr; } }

/* Turf page */
.turf-hero{background:linear-gradient(135deg,#041c04 0%, var(--brand) 95%);color:#fff;padding:2.1rem 0;border-radius:1.25rem;margin-top:1rem}
.turf-hero h1{margin:0 0 .6rem;font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:.6px;text-transform:uppercase;font-weight:900}
.turf-hero p{margin:0 0 1rem;font-weight:600;max-width:760px}
.turf-grid{display:grid;gap:1.1rem;margin:1.75rem 0 2.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.turf-card{background:#fff;border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 4px 18px rgba(12,32,64,.06);display:flex;flex-direction:column;gap:.55rem;position:relative}
.turf-card h3{margin:.2rem 0 .3rem;font-size:1rem;text-transform:uppercase;letter-spacing:.5px;font-weight:900}
.turf-media img{display:block;width:100%;height:auto;border-radius:.75rem;box-shadow:0 6px 18px rgba(12,32,64,.15);object-fit:contain;background:#fff;padding:.4rem}
.badge-turf{position:absolute;top:.65rem;right:.65rem;background:var(--brand);color:#fff;font-size:.6rem;font-weight:800;padding:.3rem .5rem;border-radius:.45rem;letter-spacing:.5px}
.inventory-callouts{display:grid;gap:1rem;margin:2.5rem 0 3rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.inventory-box{background:#ffffff;border:2px dashed var(--border);border-radius:1rem;padding:1.1rem;display:flex;flex-direction:column;gap:.65rem;align-items:flex-start;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.inventory-box h3{margin:.15rem 0;font-size:1rem;text-transform:uppercase;letter-spacing:.55px}
.inventory-box p{margin:0;font-size:.85rem;line-height:1.45;opacity:.85}
.turf-list{list-style:disc;margin:.25rem 0 .25rem 1.1rem;padding:0;display:grid;gap:.25rem;font-size:.8rem}
.legend{display:flex;flex-wrap:wrap;gap:.75rem;margin:.75rem 0 0;font-size:.65rem;text-transform:uppercase;font-weight:800;letter-spacing:.5px}
.legend span{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--border);padding:.3rem .55rem;border-radius:2rem}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--brand)}
.turf-section-heading{margin-top:2rem}

/* Contact page */
.contact-hero{background:linear-gradient(135deg,#000,var(--brand));color:#fff;padding:2rem 0;border-radius:1.1rem;margin-top:1rem}
.contact-hero h1{margin:0 0 .6rem;font-size:clamp(1.8rem,4.5vw,3rem);text-transform:uppercase;letter-spacing:.6px;font-weight:900}
.contact-grid{display:grid;gap:1.2rem;margin:1.5rem 0 2.5rem;grid-template-columns:1fr 1fr}
.contact-form{background:#fff;border:1px solid var(--border);border-radius:1rem;padding:1rem;display:grid;gap:.75rem;box-shadow:0 4px 18px rgba(12,32,64,.06)}
.contact-form input,.contact-form textarea{padding:.75rem .85rem;border:1px solid var(--border);border-radius:.75rem}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-side{background:#fff;border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 4px 18px rgba(12,32,64,.06)}
.contact-side h3{margin:.2rem 0 .5rem;font-size:1rem}
.contact-side ul{margin:.4rem 0 1rem;padding-left:1.1rem}
.contact-side p{margin:.4rem 0}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* --------------------------------------------- */
/* Hero horizontal spacing normalization         */
/* Ensures all hero variants have consistent     */
/* left/right breathing room across pages        */
/* --------------------------------------------- */
.netting-hero, .net-hero, .contact-hero, .turf-hero, .hero { padding-inline:clamp(.9rem,4vw,2rem) !important; }
/* Ensure consistent vertical breathing room for all hero containers */
.netting-hero, .net-hero, .contact-hero, .turf-hero, .hero { padding-block:clamp(1.8rem,5vw,3.2rem) !important; }
/* Sport-specific netting hero variants */
.netting-hero--baseball { background: linear-gradient(135deg,#111 0%,var(--brand) 100%) !important; color:#fff; border-radius:1.1rem; }
.netting-hero--golf { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 92%, #000 8%) 0%, color-mix(in oklab, var(--brand) 70%, #fff 30%) 100%) !important; color:#fff; border-radius:1.1rem; }
.netting-hero--lacrosse { background: linear-gradient(135deg,#000 0%,var(--brand) 100%) !important; color:#fff; border-radius:1.1rem; }
.netting-hero--soccer { background: linear-gradient(135deg,#000 0%,var(--brand) 100%) !important; color:#fff; border-radius:1.1rem; }
.netting-hero h1 { margin:0 0 .4rem; font-size:clamp(1.7rem,4.2vw,2.8rem); text-transform:uppercase; letter-spacing:.6px; font-weight:900 }

/* EZ Custom Nets subpages: center hero content (scope to netting subpages, not the EZ Nets overview) */
.netting-hero--baseball,
.netting-hero--golf,
.net-hero.nh-training-facility,
.net-hero.nh-sports-netting,
.net-hero.nh-commercial-netting {
  text-align:center;
}

.netting-hero--baseball p,
.netting-hero--golf p,
.net-hero.nh-training-facility p,
.net-hero.nh-sports-netting p,
.net-hero.nh-commercial-netting p {
  margin-inline:auto;
}

.netting-hero--baseball .netting-subnav,
.netting-hero--golf .netting-subnav,
.net-hero.nh-training-facility .netting-subnav,
.net-hero.nh-sports-netting .netting-subnav,
.net-hero.nh-commercial-netting .netting-subnav {
  justify-content:center;
}

.net-hero.nh-training-facility .netting-hero-actions {
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  justify-content:center;
}

/* L-Screens hero specific: center CTA buttons and let them size to content */
.netting-hero .hero-ctas { display:flex; justify-content:center; flex-wrap:wrap; gap:.6rem; margin-top:.85rem; }
.netting-hero .hero-ctas .btn { width:auto; }

/* Ensure 4-up layout for Shop by Type tiles on wider screens */
@media (min-width: 900px){
  .category-tiles .tiles { grid-template-columns: repeat(4,1fr) !important; gap:1.15rem !important; }
  .category-tiles .tile { width:100%; max-width:330px; display:flex; flex-direction:column; }
  .category-tiles .tile .media { height:clamp(160px,17vh,230px); display:flex; align-items:center; justify-content:center; }
  .category-tiles .tile .media img { aspect-ratio:4/3; object-fit:contain; max-height:100%; width:100%; background:#fff; padding:.35rem; }
  .category-tiles .tile .tile-head { padding:.75rem .85rem .65rem; }
}

/* Netting layout helpers */
.net-cols { display:grid; gap:1.25rem; margin:1.25rem 0 1.75rem; grid-template-columns:1fr; }
/* Removed second column (placeholder image) on netting pages; tighten bottom margin */
@media (max-width: 860px){ .net-cols { grid-template-columns:1fr } }
/* Spec layout utilities */
.spec-narrow { max-width:760px; margin:0 auto; }
.spec-actions { margin-top:.75rem; }
.placeholder-img { background:#f3f5f8; border:2px dashed var(--border); border-radius:1rem; aspect-ratio:4/3; display:grid; place-items:center; font-weight:700; color:#555 }
.spec-block { background:#fff; border:1px solid var(--border); padding:1rem; border-radius:1rem; box-shadow:0 4px 18px rgba(12,32,64,.06) }
.spec-block h3 { margin:.1rem 0 .5rem; font-size:1rem }
.net-hero h1{margin:0 0 .5rem;font-size:clamp(1.9rem,4.5vw,3rem);font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:#fff}
.net-hero p{margin:0 0 1rem;max-width:760px;font-weight:600;color:#fff;opacity:.95}
.choices{display:flex;gap:.6rem}
.choice{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);padding:.45rem .6rem;border-radius:.6rem;background:#ffffff}
.qty{display:inline-flex;align-items:center;gap:.5rem}
.summary{display:grid;grid-template-columns:1fr auto;gap:.4rem;border-top:1px dashed var(--border);padding-top:.6rem}
.summary > div{display:flex;justify-content:space-between;gap:1rem}
.summary .total{font-size:1.15rem;font-weight:900}
.summary strong{ font-weight:800 }
.summary .total strong{ font-size:1.2rem }
.actions{margin-top:.5rem}

/* Netting calculator: qty + add-to-cart + summary on one row */
.calc-form .purchase-row{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.calc-form .purchase-row .qty-row{width:fit-content;flex:0 0 auto}
.calc-form .purchase-row .border-row{width:fit-content;flex:0 0 auto}
.calc-form .purchase-row .doors-row{width:fit-content;flex:0 0 auto}
.calc-form .purchase-row .doors-row input{max-width:6rem}
.calc-form .purchase-row #add-cart{flex:0 0 auto}
.calc-form .purchase-row .summary{margin-left:auto}

/* Inline summary variant: labels next to values (not split columns) */
.summary.summary-inline{display:flex;flex-wrap:wrap;gap:.35rem 1rem;border-top:none;padding-top:0;align-items:center;justify-content:flex-end}
.summary.summary-inline > div{display:inline-flex;align-items:baseline;justify-content:flex-start;gap:.35rem}
.summary.summary-inline > div span{opacity:.7}
.summary.summary-inline .total{font-size:1.15rem}
/* Netting calculator: make the Add Configured Net button fit content */
#add-cart{ width:auto; white-space:nowrap; }
/* Center the calculator button row only within the calculator card */
.calc-card .actions{ display:flex; justify-content:center; }

/* Desktop enhancement: fit calc card to content for improved usability */
@media (min-width:1101px){
  .calc-grid{grid-template-columns:minmax(0,1fr) auto; align-items:start}
  .calc-card{ width:fit-content; max-width:min(100%, 680px); align-self:start; justify-self:start; position:sticky; top:1rem }

  /* Netting calculator: keep stacked layout on desktop too */
  .calc-grid.calc-stack{grid-template-columns:1fr !important; align-items:stretch}
  .calc-grid.calc-stack .calc-card{width:100%;max-width:none;position:static;top:auto;justify-self:stretch}
}

/* Training facility configurator: opt-out of calculator sticky/fit-content desktop tweaks */
@media (min-width:1101px){
  .facility-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}
  .facility-grid .calc-card{width:100%;max-width:none;position:static;top:auto;justify-self:stretch}
}
/* Legacy safeguard (kept harmless): if JS adds calc-stack ensure single column */
.calc-grid.calc-stack{grid-template-columns:1fr !important}
@media (max-width:540px){
  .calc-gallery li{width:48px}
}

/* Mobile sticky action bar for calculator */
.calc-mobile-bar{
  display:none;
  position:fixed; left:0; right:0; bottom:0;
  z-index:40;
  background:#ffffff;
  border-top:1px solid var(--border);
  box-shadow:0 -8px 24px rgba(12,32,64,.10);
  padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom, 0px));
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:.8rem;
}
.calc-mobile-bar .total-row{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; font-weight:800; }
.calc-mobile-bar .total-row span{ color: var(--muted); font-weight:700; }
.calc-mobile-bar .total-row strong{ font-size:1.1rem; font-weight:900; }
@media (max-width:640px){
  .calc-mobile-bar{ display:grid; }
  /* Add bottom padding so the sticky bar doesn't cover content */
  .calc-grid{ padding-bottom: 90px; }
}

/* Trust logo bands */
.trust-band{
  margin:1.5rem auto 2.2rem;
  padding:1.1rem clamp(1rem,2.6vw,1.5rem) 1.2rem;
  background:#fff;
  border:1px solid var(--border);
  border-radius:1.1rem;
  box-shadow:0 6px 24px rgba(12,32,64,.06);
}
.trust-band--homepage,
.trust-band--facility,
.trust-band--calculator{
  width:clamp(320px,98vw,1440px);
  padding:.15rem 0 0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.trust-band--facility,
.trust-band--calculator{margin-top:1.1rem}
.trust-band--calculator{
  width:100%;
  max-width:none;
}
.trust-band__eyebrow{
  display:block;
  margin-bottom:.35rem;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brand);
}
.trust-band h2{
  margin:.1rem 0 .3rem;
  font-size:clamp(1.05rem,2vw,1.45rem);
}
.trust-band p{
  margin:0;
  color:var(--muted);
  max-width:68ch;
}
.trust-band__head{
  margin-bottom:.95rem;
}
.trust-band__logos{
  display:flex;
  flex-wrap:wrap;
  gap:1rem 1.75rem;
  align-items:center;
  justify-content:center;
}
.trust-band__logo-card{
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.45rem;
  text-align:center;
}
.trust-band__img{
  display:block;
  width:auto;
  max-width:min(100%,300px);
  max-height:116px;
  object-fit:contain;
  filter:none;
  opacity:1;
}
.trust-band__caption{
  margin:0;
  font-size:.76rem;
  line-height:1.35;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--muted);
}
.trust-band__img--white{
  background:#fff;
  border-radius:.9rem;
  padding:.5rem .75rem;
}
.trust-band--homepage .trust-band__head,
.trust-band--facility .trust-band__head,
.trust-band--calculator .trust-band__head{
  margin:0 auto 1.5rem;
  text-align:center;
  max-width:72rem;
}
.trust-band--homepage p,
.trust-band--facility p,
.trust-band--calculator p{
  margin:0 auto;
}
.trust-band--homepage .trust-band__logos,
.trust-band--facility .trust-band__logos,
.trust-band--calculator .trust-band__logos{
  flex-wrap:nowrap;
  justify-content:space-between;
  gap:.9rem;
}
.trust-band--homepage .trust-band__logo-card,
.trust-band--facility .trust-band__logo-card,
.trust-band--calculator .trust-band__logo-card{
  flex:0 1 210px;
}
.trust-band--calculator .trust-band__logos{
  gap:.75rem;
}
.trust-band--homepage .trust-band__img,
.trust-band--facility .trust-band__img,
.trust-band--calculator .trust-band__img{
  max-width:min(100%,210px);
  max-height:132px;
  flex:0 1 auto;
}
.trust-band--homepage .trust-band__img--white,
.trust-band--facility .trust-band__img--white,
.trust-band--calculator .trust-band__img--white{
  padding:.35rem .5rem;
}
@media (max-width:700px){
  .trust-band{margin:1.15rem auto 1.7rem;padding:1rem .95rem 1.05rem}
  .trust-band__head{margin-bottom:.8rem}
  .trust-band__logos{gap:.75rem 1rem}
  .trust-band__logo-card{gap:.35rem}
  .trust-band__img{max-width:min(100%,220px);max-height:84px}
  .trust-band__img--white{padding:.4rem .55rem}
  .trust-band--homepage,
  .trust-band--facility,
  .trust-band--calculator{padding:0;background:transparent;border:0;box-shadow:none}
  .trust-band--homepage .trust-band__logos,
  .trust-band--facility .trust-band__logos,
  .trust-band--calculator .trust-band__logos{flex-wrap:wrap;justify-content:center;gap:.8rem 1rem}
  .trust-band--homepage .trust-band__logo-card,
  .trust-band--facility .trust-band__logo-card,
  .trust-band--calculator .trust-band__logo-card{flex-basis:160px}
  .trust-band--homepage .trust-band__img,
  .trust-band--facility .trust-band__img,
  .trust-band--calculator .trust-band__img{max-width:min(100%,180px);max-height:88px}
}
@media (max-width:1120px){
  .trust-band--homepage,
  .trust-band--facility,
  .trust-band--calculator{width:min(100%,1280px)}
  .trust-band--homepage .trust-band__logos,
  .trust-band--facility .trust-band__logos,
  .trust-band--calculator .trust-band__logos{flex-wrap:wrap;justify-content:center;gap:1rem 1.25rem}
  .trust-band--homepage .trust-band__logo-card,
  .trust-band--facility .trust-band__logo-card,
  .trust-band--calculator .trust-band__logo-card{flex-basis:180px}
  .trust-band--homepage .trust-band__img,
  .trust-band--facility .trust-band__img,
  .trust-band--calculator .trust-band__img{max-width:min(100%,190px);max-height:112px}
}
@media (max-width:980px){
  .trust-band--calculator .trust-band__logos{flex-wrap:wrap;justify-content:center;gap:.9rem 1rem}
}

/* Breadcrumbs */
.breadcrumbs{font-size:.9rem;padding-top:.6rem;padding-bottom:.2rem}
.crumbs{list-style:none;display:flex;gap:.35rem;padding:0;margin:0;color:var(--muted)}
.crumbs li{display:flex;gap:.35rem;align-items:center}
.crumbs li+li:before{content:'/';opacity:.55}
.crumbs a{color:var(--ink-2);text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* Info block (dropdown description) */
.info-block{background:#ffffff;border:1px solid var(--border);border-radius:.75rem;box-shadow:0 4px 14px rgba(12,32,64,.06)}
.info-block > summary{cursor:pointer;list-style:none;padding:.6rem .8rem .6rem 1.8rem;font-weight:800;color:var(--ink-2);position:relative;display:flex;align-items:center}
.info-block > summary::-webkit-details-marker{display:none}
.info-block > summary::before{content:"▸";position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--ink-2);transition:transform .18s ease}
.info-block[open] > summary::before{content:"▾"}
.info-block[open] > summary{border-bottom:1px solid var(--border);}
.info-block .info-content{padding:.6rem .9rem;display:grid;gap:.6rem;max-height:420px;overflow:auto}

/* Nested dropdowns (e.g., Details -> subsections) should scroll as one panel */
.info-block .info-block .info-content{max-height:none;overflow:visible}

/* Creator dropdowns should not be height-limited or scrollable */
.creator-block .creator-content{max-height:none;overflow:visible}
.gauge h3{margin:.1rem 0;font-size:1rem}
.gauge p{margin:0}
.gauge ul{margin:.2rem 0 0 .95rem}
.gauge li{margin:.15rem 0}

/* Very narrow devices (<360px) */
@media (max-width:360px){
  .header-bar{gap:.45rem}
  .brand span{font-size:.82rem}
  .search input{padding:.55rem .65rem}
  .chip{padding:.4rem .6rem;font-size:.66rem}
  .btn{padding:.55rem .7rem}
  .cart-btn{padding:.4rem .55rem}
  #job-filters > div:first-child{grid-template-columns:1fr}
  .hero-inner{gap:1rem}
  .tile img{max-height:110px}
  .footer-grid{gap:.55rem}
}

/* Auth page utilities */
.auth-container { max-width: 400px; margin: 3rem auto; background: #fff; border-radius: 1.2rem; box-shadow: 0 4px 24px rgba(12,32,64,.10); padding: 2rem; }
.auth-container.wide{ max-width: 720px; }
.mt-0{ margin-top: 0; }
.mt-1r{ margin-top: 1rem; }
.auth-form { display: flex; flex-direction: column; gap: 1rem; }
.auth-form input { padding: .8rem; border: 1px solid var(--border); border-radius: .6rem; }
.auth-toggle { text-align: center; margin-top: 1rem; }
.auth-toggle a { color: var(--primary); text-decoration: none; }
.auth-peek { display:inline-flex; align-items:center; gap:.4rem; margin-top:.4rem; }
.mt-1 { margin-top: .25rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.hidden { display: none; }
.text-center { text-align: center; }
.text-error { color: red; }
.ml-auto { margin-left: auto; }

/* Small utilities */
.mt-05 { margin-top: .5rem; }
.gap-06 { gap: .6rem; }

/* Analytics dashboard */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.card-sm{background:#fff;border-radius:12px;box-shadow:0 4px 24px rgba(12,32,64,.10);padding:1rem}
.kpi{font-size:1.6rem;font-weight:800}
.grid-2{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:900px){.grid-2{grid-template-columns:1fr 1fr}}
/* Ensure ULs in analytics look neat */
.product-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.product-list li{background:#fff;border:1px solid var(--border);border-radius:.6rem;padding:.5rem .6rem}

/* Expert Help Section */
.expert-help-section{margin-top:1.75rem}
.expert-hero{background:linear-gradient(135deg, rgba(211,208,215,.88) 55%, rgba(0,0,0,.65) 100%), url('assets/img/netting.jpg') center/cover no-repeat; color:#fff}
.expert-hero-inner{padding:1.25rem 0}
.expert-hero .expert-hero-copy{display:grid;place-items:center;text-align:center}
.expert-hero h2{margin:.25rem 0;font-size:clamp(1.4rem,3.2vw,2.2rem);font-weight:900;letter-spacing:.6px}
.expert-hero p{margin:.25rem 0 1rem;opacity:.95;font-weight:600}
.expert-form-wrap{max-width:760px}
.expert-form-wrap h3{margin:1rem 0 .5rem}
.expert-form{max-width:660px;margin:0 auto;display:grid;gap:.65rem}
.expert-form input,.expert-form textarea{padding:.75rem .9rem;border-radius:.75rem;border:1px solid var(--border);background:#fff;color:var(--ink)}
.expert-form input:focus,.expert-form textarea:focus{outline:none;box-shadow:var(--ring);border-color:var(--brand)}
.expert-form textarea{border-radius:.75rem}
.expert-form .btn{border-radius:1.2rem;font-weight:900}
.expert-form .btn:hover{filter:brightness(1.05)}
.expert-form .form-msg{min-height:1.25rem}

/* Netting Carousel Component */
.carousel-section{margin:2rem 0 3rem}
.net-carousel{position:relative;background:#ffffff;border:1px solid var(--border);border-radius:1.25rem;padding:1.25rem 1.1rem 2.4rem;box-shadow:0 8px 28px rgba(12,32,64,.08);overflow:hidden}
.carousel-track{display:flex;transition:transform .55s cubic-bezier(.6,.15,.3,1);width:100%}
.carousel-slide{flex:0 0 100%;display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:.25rem .5rem}
.carousel-slide .slide-media{width:100%;margin:0;aspect-ratio:16/9;display:grid;place-items:center;border:2px dashed var(--border);border-radius:.9rem;background:#f5f7fa;color:#555;font-weight:900;font-size:clamp(1.1rem,3.2vw,2rem);letter-spacing:.5px;text-transform:uppercase;position:relative;overflow:hidden}
.carousel-slide .slide-media img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}

/* Hero Rotator (L-Screens) */
.hero-rotator{position:relative;width:100%;max-width:100%;aspect-ratio:16/10;border-radius:1rem;overflow:hidden;isolation:isolate;background:#fff}
.hero-rotator .hr-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center center;opacity:0;transition:opacity 1s ease;will-change:opacity;padding:0!important;background:transparent!important;border-radius:0!important}
.hero-rotator .hr-slide.is-active{opacity:1}
.carousel-slide .slide-media span{position:relative;z-index:2;padding:.35rem .75rem;border-radius:.5rem;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.carousel-slide .slide-title{margin:0;font-size:clamp(.95rem,2.4vw,1.25rem);font-weight:900;text-transform:uppercase;letter-spacing:.5px;text-align:center}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#000000;color:#fff;border:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:1.75rem;cursor:pointer;font-weight:300;box-shadow:0 4px 18px rgba(0,0,0,.25);transition:.18s}
.carousel-arrow:hover{filter:brightness(1.1)}
.carousel-arrow.prev{left:10px}
.carousel-arrow.next{right:10px}
.carousel-dots{position:absolute;left:50%;bottom:.65rem;transform:translateX(-50%);display:flex;gap:.5rem}
.carousel-dot{width:12px;height:12px;padding:0;border-radius:50%;border:2px solid var(--brand);background:transparent;cursor:pointer;transition:.25s;display:inline-block}
.carousel-dot.is-active,.carousel-dot:hover{background:var(--brand)}
@media (max-width:640px){
  .net-carousel{padding:1rem .75rem 2.2rem}
  .carousel-arrow{width:36px;height:36px;font-size:1.4rem}
  .carousel-slide .slide-media{aspect-ratio:4/3}
}

/* Netting Gallery Grid (replaces netting carousel injection) */
.net-gallery-section{margin:2rem 0 3rem}
.net-gallery{background:#ffffff;border:1px solid var(--border);border-radius:1.25rem;padding:1.25rem;box-shadow:0 8px 28px rgba(12,32,64,.08)}
.net-gallery-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));align-items:start}
.net-gallery-item{display:flex;flex-direction:column;align-items:center;gap:.6rem}
.net-gallery-item .gallery-media{width:100%;margin:0;aspect-ratio:4/3;display:grid;place-items:center;border:2px dashed var(--border);border-radius:.9rem;background:#f5f7fa;color:#555;font-weight:900;font-size:clamp(1rem,2.6vw,1.35rem);letter-spacing:.5px;text-transform:uppercase;position:relative;overflow:hidden}
.net-gallery-item .gallery-media img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.net-gallery-item .gallery-media span{position:relative;z-index:2;padding:.35rem .75rem;border-radius:.5rem;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.net-gallery-item .gallery-title{margin:0;text-align:center;font-size:clamp(.9rem,2.2vw,1.05rem);font-weight:900;text-transform:uppercase;letter-spacing:.45px}

/* Careers (filters and list) */
.careers { margin-top: 1rem; }
.jobs { display: grid; gap: .8rem; }
.job { padding: 1rem; }
.job h3 { margin: 0 0 .25rem; }
.job .meta { color: var(--muted); font-size: .9rem; }
#job-filters { margin: 1rem 0; display: grid; gap: .75rem; padding: 1rem; }
#job-filters .grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
#job-filters label { display: grid; gap: .25rem; font-size: .85rem; }
#job-filters .actions { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; font-size: .85rem; }
#job-filters .btn-sm { padding: .4rem .8rem; font-size: .75rem; }

/* Inline-style replacement utilities */
.mb-025 { margin-bottom: .25rem; }
.my-025 { margin-top: .25rem; margin-bottom: .25rem; }
.ml-025 { margin-left: .25rem; }
.ml-035 { margin-left: .35rem; }
.text-sm { font-size: .8rem; }
.text-strong { font-weight: 700; }
.flex-1 { flex: 1 1 auto; }
.gap-075 { gap: .75rem; }
.stack-06{ display:grid; gap:.6rem; }
.items-start { align-items: flex-start; }
.text-muted { color: #555; }
.flex-row { display: flex; }
.gap-05 { gap: .5rem; }
.gap-075 { gap: .75rem; }
.gap-1 { gap: 1rem; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.space-between { justify-content: space-between; }
.rounded-xs { border-radius: .4rem; }
.object-cover { object-fit: cover; }
.opacity-80 { opacity: .8; }
.text-right { text-align: right; }
.text-red { color: red; }
.h3-tight { margin: 0 0 .25rem; font-size: 1rem; }
.mt-05 { margin-top: .5rem; }
.mt-1 { margin-top: 1rem; }
.section-spaced { margin: 2rem 0 3rem; }

/* Variant row used in product cards */
.variant-row { display:flex; gap:.5rem; align-items:center; margin:.25rem 0; }

/* L-Screens: Title and price on one row; color dots on bottom */
body.lscreens-subnav .card .body .title-price-row{ display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; }
body.lscreens-subnav .card .body .title-price-row .price{ font-weight:700; font-size:.95em; white-space:nowrap; }
body.lscreens-subnav .card .body .color-dots{ margin-top:.4rem; }

/* Product pages: make option dropdown and buttons fit content width */
#product-detail .pd-info #pd-option-block { justify-items: start; align-items: start; }
#product-detail .pd-info #pd-select-row { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
#product-detail .pd-info .pd-option-select,
#product-detail .pd-info .btn {
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
#product-detail .pd-info .btn + .btn { margin-top: .5rem; }
/* When buttons are placed side-by-side in a row, remove vertical spacing */
#product-detail .pd-info .row .btn + .btn { margin-top: 0; }

/* Modal detail (if used): same sizing */
.product-detail-dialog .pd-info .stack-05 { justify-items: start; align-items: start; }
.product-detail-dialog .pd-info #pd-select-row { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
.product-detail-dialog .pd-info .pd-option-select,
.product-detail-dialog .pd-info .btn {
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.product-detail-dialog .pd-info .btn + .btn { margin-top: .5rem; }
/* Remove vertical spacing for horizontal button rows in modal */
.product-detail-dialog .pd-info .row .btn + .btn { margin-top: 0; }

/* Checkout: keep Apply button sized to its text in order summary */
#apply-code { width: auto; white-space: nowrap; flex: 0 0 auto; }

/* Replacement aggregator card */
.collective-card .pd-info .stack-05 { justify-items: start; align-items: start; }
.collective-card .pd-info #pd-select-row { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; }
.collective-card .pd-info .pd-option-select,
.collective-card .pd-info .btn {
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.collective-card .pd-info .btn + .btn { margin-top: .5rem; }
/* Remove vertical spacing for horizontal button rows in replacement aggregator */
.collective-card .pd-info .row .btn + .btn { margin-top: 0; }

/* Product detail page layout (gallery + info) */
.product-page .product-detail { margin-top: 1rem; }
.pd-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; align-items: start; }
.pd-media { min-width: 0; }
.pd-main { background:#fff; border:1px solid var(--border); border-radius:.85rem; display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; overflow:hidden; padding:.6rem; }
.pd-main img { width:100%; height:100%; object-fit:contain; max-height:100%; }
.pd-media { max-width:100%; }
/* If image natural ratio is taller, prevent vertical clipping by allowing auto height under a max */
.pd-main img { max-height:100%; }
.pd-thumbs { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem; }
.pd-thumbs.is-scroll { flex-wrap:nowrap; overflow-x:auto; padding-bottom:.25rem; }
.pd-thumbs .thumb { border:1px solid var(--border); background:#fff; border-radius:.5rem; padding:2px; cursor:pointer; }
.pd-thumbs .thumb.is-active { border-color:var(--brand); box-shadow:0 0 0 2px color-mix(in oklab, white 50%, var(--brand) 60%); }
.pd-thumbs .thumb img { width:54px; height:54px; object-fit:contain; display:block; }
.pd-thumbs { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem; }
.pd-thumbs .thumb { border:1px solid var(--border); background:#fff; border-radius:.5rem; padding:2px; cursor:pointer; }
.pd-thumbs .thumb:focus-visible, .pd-thumbs .thumb:hover { outline:none; border-color:var(--brand); box-shadow:0 0 0 2px color-mix(in oklab, white 50%, var(--brand) 60%); }
.pd-thumbs .thumb img { width:54px; height:54px; object-fit:contain; display:block; }
.pd-info .pd-title { margin: 0 0 .25rem; }
.pd-info .price { font-size:1.25rem; font-weight:800; margin:.25rem 0 .75rem; }
.pd-info .features { list-style:disc; margin:.25rem 0 0 1.15rem; padding:0; }
.pd-info .features li + li { margin-top:.25rem; }
.pd-desc { white-space:pre-wrap; }

@media (max-width: 900px){
  .pd-grid { grid-template-columns: 1fr; }
}

/* Page-specific net hero gradients (replaces per-page inline styles) */
.net-hero.nh-training-facility { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 76%, #000 24%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-sports-netting { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-commercial-netting { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 98%, #000 2%), color-mix(in oklab, var(--brand) 74%, #000 26%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-hitting-facility { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-batting-cage { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-foul-ball { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 97%, #000 3%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-overhead { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 93%, #000 7%), color-mix(in oklab, var(--brand) 66%, #000 34%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-backstop { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-baseball-l-screen { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-pitchers-pocket { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-diving-range { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-golf-course { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 76%, #000 24%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-golf-cube { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 74%, #000 26%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-sports-baseball { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 74%, #000 26%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-basketball { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-cricket-football { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-sports-golf { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 74%, #000 26%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-hockey { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 97%, #000 3%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-sports-lacrosse { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-multi-sport { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-sports-soccer { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-softball { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 96%, #000 4%), color-mix(in oklab, var(--brand) 72%, #000 28%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-tennis { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-volleyball { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 93%, #000 7%), color-mix(in oklab, var(--brand) 66%, #000 34%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-auto-drone { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 95%, #000 5%), color-mix(in oklab, var(--brand) 70%, #000 30%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-drone-enclosure { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 94%, #000 6%), color-mix(in oklab, var(--brand) 68%, #000 32%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-warehouse { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 93%, #000 7%), color-mix(in oklab, var(--brand) 66%, #000 34%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-safety-netting { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 92%, #000 8%), color-mix(in oklab, var(--brand) 64%, #000 36%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-debris-netting { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 92%, #000 8%), color-mix(in oklab, var(--brand) 64%, #000 36%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }
.net-hero.nh-landfill-netting { background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 92%, #000 8%), color-mix(in oklab, var(--brand) 64%, #000 36%)) !important; color:#fff; border-radius:1.25rem; margin-top:1rem; padding:2.2rem 0 1.75rem; }

/* L-Screens subcategory intro */
.subcategory-intro { margin: .25rem auto 1rem; }
.subcategory-intro .intro-card{ background:#fff; border:1px solid var(--border); border-radius:.9rem; padding:1rem; box-shadow:0 4px 20px rgba(12,32,64,.06); }
.subcategory-intro h2.h3{ margin:.1rem 0 .4rem; }
.subcategory-intro p{ margin:0 0 .65rem; }
.range-chips{ list-style:none; padding:0; margin:0; display:flex; gap:.4rem; flex-wrap:wrap; }
.chip-static{ display:inline-flex; align-items:center; padding:.35rem .6rem; border:1px solid var(--border); border-radius:999px; font-weight:700; font-size:.8rem; background:#fafafa; }
