
/* Brand tokens (single source of truth, generated from brand.json) */

:root {
  /* 60-30-10 palette */
  --brand-bg:           #fbf6ec;
  --brand-surface:      #ffffff;
  --brand-text:         #1c1c1e;
  --brand-text-muted:   #4a4540;
  --brand-dark-section: #23222a;
  --brand-accent:       #D4A24E;
  --brand-accent-hover: #B58A3D;
  --brand-accent-on:    #1c1c1e;

  /* Semantic */
  --brand-success: #4f8a4f;
  --brand-warning: #c9822f;
  --brand-danger:  #b33a3a;
  --brand-info:    #2a5d8f;
  --brand-border:      #e0d7c5;
  --brand-border-soft: #eee5da;

  /* Typography */
  --brand-font-display: 'Spectral', Georgia, serif;
  --brand-font-body:    'AR One Sans', system-ui, sans-serif;
  --brand-text-base:    16px;
  --brand-leading-body:    1.7;
  --brand-leading-heading: 1.15;

  /* Spacing */
  --brand-space-base:      8px;
  --brand-section-y:       clamp(64px, 8vw, 96px);
  --brand-card-padding:    24px;
  --brand-row-gap:         24px;

  /* Radii */
  --brand-radius-card:   8px;
  --brand-radius-pill:   999px;
  --brand-radius-button: 4px;
  --brand-radius-image:  8px;

  /* Shadows */
  --brand-shadow-card:       0 4px 20px rgba(0, 0, 0, 0.08);
  --brand-shadow-card-hover: 0 10px 40px rgba(0, 0, 0, 0.12);
  --brand-shadow-lifted:     0 20px 60px rgba(0, 0, 0, 0.18);
}


/* ============ Depth / elevation scale (Standing Rule #24) ============
   Every interactive surface (buttons, cards, images, inputs) and every
   floating object (seals, badges, modals, dropdowns) pulls shadows from
   ONE of these five tokens. Don't write raw box-shadow values inline
   unless the result still uses one of these levels.

   Level 1 (sm):  resting cards, inputs, small surfaces
   Level 2 (md):  buttons at rest, image frames, mid-density cards
   Level 3 (lg):  buttons on hover, cards on hover, hero imagery
   Level 4 (xl):  floating seals, modal-like surfaces, dropdown panels
   Level 5 (2xl): page-level hero artwork, primary brand seal off-image
   Each token is layered: a tight ambient shadow + a softer drop shadow.
   This gives premium depth without the muddy single-blur look.
*/
:root {
  /* TOKENS BUMPED 2026-05-21 (v2): previous values were too subtle to
     read as visible elevation. Each layer's opacity raised so the
     shadow is perceivable. shadow_audit's shadow_too_subtle detector
     enforces minimum visibility (alpha Ã— blur). */
  --wes-shadow-sm:  0 1px 2px rgba(28,26,31,.10),  0 2px 6px rgba(28,26,31,.08);
  --wes-shadow-md:  0 2px 4px rgba(28,26,31,.10),  0 6px 16px rgba(28,26,31,.14);
  --wes-shadow-lg:  0 4px 8px rgba(28,26,31,.12),  0 14px 28px rgba(28,26,31,.18);
  --wes-shadow-xl:  0 8px 16px rgba(28,26,31,.14), 0 24px 48px rgba(28,26,31,.22);
  --wes-shadow-2xl: 0 12px 24px rgba(28,26,31,.16),0 36px 72px rgba(28,26,31,.26);
  /* Buttons get NEUTRAL drop shadows â€” never gold-tinted (Standing Rule #52, 2026-05-22).
     Earlier this session these tokens were `rgba(212,162,78, .40-.50)` which gave every
     button on the site a gold glow. User confirmed buttons looked correct BEFORE that
     change, so we point the tokens to the regular --wes-shadow-* tokens. Do NOT bring
     back gold-tinted shadows without explicit per-button approval. */
  --wes-shadow-gold-md: var(--wes-shadow-sm);
  --wes-shadow-gold-lg: var(--wes-shadow-md);
  /* On-dark variants â€” deeper rgba so they read against a dark backdrop */
  --wes-shadow-on-dark-md: 0 4px 12px rgba(0,0,0,.25), 0 1px 3px rgba(0,0,0,.18);
  --wes-shadow-on-dark-lg: 0 8px 20px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.20);
  /* Inset shadow for input wells */
  --wes-shadow-inset-sm: inset 0 1px 2px rgba(28,26,31,.08);
}

/* Hide Divi default header/footer */
#main-header, #top-header, #et-secondary-nav, #footer-widgets, #footer-bottom, #footer-info { display:none !important; }
#main-content { padding-top:0 !important; }

/* Body texture (the cream/footer.jpg pattern, tiled) */
body, body.et_pb_pagebuilder_layout {
  background: #fbf6ec url('https://williamselectricsupply.com/wp-content/uploads/2026/08/footer.jpg') repeat top left;
  background-size: 600px auto;
  color: #1c1c1e;
  font-family: 'AR One Sans', system-ui, sans-serif;
  font-size: 16px;
  line-height: var(--brand-leading-body, 1.7);
}
/* Override Divi default 14px body â€” readability floor */
body, body.et_pb_pagebuilder_layout, body p { font-size: 16px !important; }
.et_pb_text_inner p { font-size: 16px; line-height: 1.7; max-width: 65ch; }
.et_pb_text_align_center .et_pb_text_inner p { margin-inline: auto; }

h1,h2,h3,h4,h5,h6 { font-family: 'Spectral', serif; color: #1c1c1e; line-height: var(--brand-leading-heading, 1.15); }

/* Visible focus indicators (Divi removes default â€” Standing Rule #15) */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--brand-accent, #D4A24E) !important;
  outline-offset: 3px !important;
  border-radius: 2px;
}

/* prefers-reduced-motion â€” kill animations for users who set the preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .wes-hero-slide { transition: none !important; }
}

/* Touch targets â€” every <a> and <button> in body content meets 44Ã—44px */
a.wes-hero-cta, a.wes-product-cta, a.wes-megamenu-card-cta, .wes-products-controls button,
a.wes-cta, .wes-cta-band a, .brand-cta { min-height: 44px; min-width: 44px; display: inline-block; }

/* ============================================================ AMAZING upgrades */

/* Scroll reveal â€” fade + slide up on viewport entry */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; will-change: opacity, transform; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-stagger > * { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s ease; }
.reveal-stagger.is-visible > *:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:.08s; }
.reveal-stagger.is-visible > *:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:.18s; }
.reveal-stagger.is-visible > *:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:.28s; }
.reveal-stagger.is-visible > *:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:.38s; }
.reveal-stagger.is-visible > *:nth-child(5) { opacity:1; transform:translateY(0); transition-delay:.48s; }
.reveal-stagger.is-visible > *:nth-child(6) { opacity:1; transform:translateY(0); transition-delay:.58s; }

/* Editorial section number â€” italic numeral + small caps label only (no gold rule, restraint per Rule #22) */
.wes-section-mark { display:flex; align-items:center; gap:12px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:#8A6A20; margin-bottom:24px; }
.wes-section-mark--center { justify-content:center; }
.wes-section-num { font-family:'Spectral',serif; font-size:13px; font-style:italic; font-weight:600; color:#8A6A20; opacity:.85; }

/* Hero typography emphasis â€” italic serif word for editorial drama */
.wes-hero-content h1 em, .wes-hero-content h2 em { font-style:italic; font-weight:500; color:#D4A24E; }

/* Hero CTA arrow */
.wes-hero-cta .arrow { display:inline-block; margin-left:10px; transition:transform .2s ease; }
.wes-hero-cta:hover .arrow { transform:translateX(4px); }

/* Brand marquee â€” smooth horizontal scroll */
.wes-brand-marquee { overflow:hidden; padding:48px 0; background:#fff; border-top:1px solid #e0d7c5; border-bottom:1px solid #e0d7c5; position:relative; }
.wes-brand-marquee::before, .wes-brand-marquee::after { content:''; position:absolute; top:0; bottom:0; width:120px; z-index:2; pointer-events:none; }
.wes-brand-marquee::before { left:0; background:linear-gradient(to right, #fff, rgba(255,255,255,0)); }
.wes-brand-marquee::after { right:0; background:linear-gradient(to left, #fff, rgba(255,255,255,0)); }
.wes-brand-marquee-title { font-family:'Spectral',serif; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:#4a4540; text-align:center; margin:0 0 32px; }
.wes-brand-marquee-track { display:flex; gap:80px; animation:wes-marquee 40s linear infinite; width:max-content; align-items:center; }
.wes-brand-marquee-track img { height:80px; width:auto; object-fit:contain; opacity:.75; transition:opacity .25s ease, filter .25s ease; flex-shrink:0; }
.wes-brand-marquee-track img:hover { opacity:1; }
@keyframes wes-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.wes-brand-marquee:hover .wes-brand-marquee-track { animation-play-state: paused; }

/* Editorial drop cap on first paragraph */
.wes-dropcap { position:relative; }
.wes-dropcap > p:first-of-type::first-letter {
  font-family:'Spectral',serif;
  font-size:5.4em;
  font-weight:700;
  line-height:1;
  float:left;
  margin:0.04em 0.12em 0 -0.04em;
  color:#8A6A20;
  text-shadow:0 2px 0 rgba(212,162,78,.12);
}

/* Stats â€” bigger and with subtle gold rule */
.wes-stat-value::after { content:''; display:block; width:32px; height:2px; background:rgba(212,162,78,.5); margin:12px auto 0; }

/* Why-us numbered editorial cards */
.wes-why-card { position:relative; padding-top:48px; }
.wes-why-card-num { position:absolute; top:24px; right:32px; font-family:'Spectral',serif; font-style:italic; font-size:13px; font-weight:600; color:#8A6A20; letter-spacing:.04em; }
.wes-why-card-num::before { content:''; display:block; width:24px; height:1px; background:#D4A24E; margin-bottom:6px; margin-left:auto; }

/* Pull-quote upgrades: gold stars + author photo + better spacing */
.wes-pullquote-stars { display:flex; justify-content:center; gap:6px; margin-bottom:24px; font-size:18px; color:#D4A24E; letter-spacing:4px; }
.wes-pullquote-avatar { width:56px; height:56px; border-radius:50%; background:#fbf6ec; border:2px solid #D4A24E; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; font-family:'Spectral',serif; font-weight:700; color:#8A6A20; font-size:22px; }

/* Category tiles â€” add 01/02/03 corner labels */
.wes-cat-tile-num { position:absolute; top:24px; right:32px; font-family:'Spectral',serif; font-style:italic; font-size:14px; font-weight:600; color:#D4A24E; letter-spacing:.04em; z-index:2; opacity:.85; }
.wes-cat-tile-num::before { content:''; display:block; width:24px; height:1px; background:#D4A24E; margin-bottom:6px; margin-left:auto; opacity:.6; }

/* Section divider â€” thin gold rule with center dot, for editorial flow */
.wes-divider { display:block; width:100%; height:48px; position:relative; background:transparent; }
.wes-divider::before { content:''; position:absolute; top:50%; left:25%; right:25%; height:1px; background:linear-gradient(to right, transparent, #e0d7c5 20%, #e0d7c5 80%, transparent); }
.wes-divider::after { content:''; position:absolute; top:50%; left:50%; width:8px; height:8px; transform:translate(-50%,-50%) rotate(45deg); background:#D4A24E; }

/* Subtle Ken Burns on hero slides â€” slow scale of bg image */
.wes-hero-slide { background-size: cover !important; }
.wes-hero-slide.active { animation: wes-kenburns 12s ease-out forwards; }
@keyframes wes-kenburns {
  from { background-size: 102% auto; background-position: 50% 50%; }
  to   { background-size: 112% auto; background-position: 52% 48%; }
}

/* Reduce motion â€” kill marquee + Ken Burns + reveals */
@media (prefers-reduced-motion: reduce) {
  .wes-brand-marquee-track { animation: none !important; transform: none !important; }
  .wes-hero-slide.active { animation: none !important; }
  .reveal, .reveal-stagger > * { opacity: 1 !important; transform: none !important; transition: none !important; }
  .wes-floating-cta { display: none !important; }
}

/* ============================================================ "EVEN BETTER" v4 upgrades */

/* Scroll progress bar â€” thin gold at top */
.wes-progress { position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg,#D4A24E,#E6BE6E); z-index:9999; transition:width .1s linear; pointer-events:none; }

/* Open-now status badge in hero */
.wes-open-badge { display:inline-flex; align-items:center; gap:8px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:#fff; padding:7px 14px; background:rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.2); border-radius:999px; backdrop-filter:blur(8px); margin-bottom:24px; }
.wes-open-badge::before { content:''; width:8px; height:8px; border-radius:50%; background:#4ade80; box-shadow:0 0 0 3px rgba(74,222,128,.25); animation:wes-pulse 2s ease-in-out infinite; }
.wes-open-badge.is-closed::before { background:#9ca3af; box-shadow:0 0 0 3px rgba(156,163,175,.25); animation:none; }
@keyframes wes-pulse { 0%,100% { box-shadow:0 0 0 3px rgba(74,222,128,.25); } 50% { box-shadow:0 0 0 7px rgba(74,222,128,.08); } }

/* Services strip â€” 5 icon-blurbs with thin gold dividers. More breathing room per visual audit. */
.wes-services-strip { background:#1c1a1f; padding:clamp(72px,9vw,104px) 24px; border-bottom:1px solid rgba(255,255,255,.06); }
.wes-services-strip-inner { max-width:1500px; margin:0 auto; display:grid; grid-template-columns:repeat(5,1fr); gap:0; }
.wes-services-item { position:relative; text-align:center; padding:8px 24px; color:#fff; }
.wes-services-item:not(:last-child)::after { content:''; position:absolute; right:0; top:20%; bottom:20%; width:1px; background:rgba(255,255,255,.08); }
/* Services icons are inline SVG (Standing Rule #25 - never Unicode chars).
   color: GOLD drives the SVG stroke via currentColor. */
.wes-services-icon { color:#D4A24E; margin-bottom:12px; display:inline-flex; align-items:center; justify-content:center; line-height:1; width:32px; height:32px; }
.wes-services-icon svg { display:block; width:100%; height:100%; }
.wes-services-item h4 { font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; margin:0 0 6px; }
.wes-services-item p { font-family:'AR One Sans',sans-serif; font-size:12px; line-height:1.5; color:rgba(255,255,255,.6); margin:0; }

/* Brand seal â€” circular EST. 1972 gold stamp.
   FIXED 2026-05-21 v3: reduced 180â†’130px (user feedback: too large);
   reversed top-arc textPath direction so 'WILLIAMS ELECTRIC SUPPLY' is no
   longer upside down. See knowledge/svg-text-on-path.md for the rule:
   top-arc MUST go LEFT-TO-RIGHT over the top (sweep=1, large-arc=1). */
.wes-seal { position:relative; width:130px; height:130px; }
.wes-seal-circle { position:absolute; inset:0; border:1.5px solid #D4A24E; border-radius:50%; }
.wes-seal-circle--inner { inset:7px; border:1px solid #D4A24E; opacity:.4; }
.wes-seal-text { position:absolute; inset:0; }
.wes-seal-text svg { width:100%; height:100%; display:block; }
.wes-seal-text text { fill:#B58A3D; font-family:'Spectral',serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.wes-seal-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 22px; }
.wes-seal-est { font-family:'AR One Sans',sans-serif; font-size:8px; font-weight:700; letter-spacing:.14em; color:#8A6A20; }
.wes-seal-year { font-family:'Spectral',serif; font-style:italic; font-size:26px; font-weight:700; color:#1c1c1e; line-height:1; margin:1px 0; }
.wes-seal-bar { width:20px; height:1px; background:#D4A24E; }
/* Mobile seal: shrink slightly to keep it readable */
@media (max-width:880px) {
  .wes-seal { width:104px; height:104px; }
  .wes-seal-year { font-size:20px; }
  .wes-seal-text text { font-size:9px; letter-spacing:.10em; }
  .wes-seal-est { font-size:7px; }
  .wes-seal-bar { width:16px; }
}

/* Editorial manifesto block */
.wes-manifesto { background:#23222a; color:#fff; padding:clamp(80px,10vw,128px) 24px; position:relative; overflow:hidden; }
.wes-manifesto::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:'Spectral',serif; font-style:italic; font-size:clamp(180px,30vw,360px); font-weight:700; color:rgba(212,162,78,.04); white-space:nowrap; pointer-events:none; }
.wes-manifesto-inner { position:relative; max-width:1100px; margin:0 auto; text-align:center; }
.wes-manifesto-eyebrow { display:inline-flex; align-items:center; gap:16px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:#D4A24E; margin-bottom:32px; }
.wes-manifesto-eyebrow::before, .wes-manifesto-eyebrow::after { content:''; width:40px; height:1px; background:#D4A24E; }
.wes-manifesto-text { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,46px); font-weight:500; line-height:1.35; color:#fff; margin:0; letter-spacing:-0.01em; }
.wes-manifesto-text em { font-style:italic; color:#D4A24E; }
.wes-manifesto-sig { font-family:'Spectral',serif; font-style:italic; font-size:18px; color:rgba(255,255,255,.6); margin-top:40px; }

/* Four Counters section â€” replaces the broken TN-map (Standing Rule #26).
   2x2 grid of location cards on desktop, 1-column on mobile.
   Real photos + contractor-relevant meta (address, hours, phone). */
.wes-counters { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px; }
.wes-counters-inner { max-width:1400px; margin:0 auto; }
.wes-counters-head { text-align:center; max-width:760px; margin:0 auto 56px; }
.wes-counters-status-row { display:flex; justify-content:center; margin-top:24px; }
.wes-counters-status-row .wes-open-badge { margin-bottom:0; background:#fff; border-color:rgba(28,26,31,.12); color:#1c1c1e; box-shadow:var(--wes-shadow-md); }
.wes-counters-status-row .wes-open-badge::before { background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.25); }
.wes-counters-status-row .wes-open-badge.is-closed::before { background:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.20); animation:none; }
.wes-counters-headline { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 16px; }
.wes-counters-headline em { font-style:italic; color:#8A6A20; }
.wes-counters-sub { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; max-width:60ch; margin:0 auto; }
.wes-counters-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:1100px; margin:0 auto 64px; padding:24px 0; border-top:1px solid rgba(28,26,31,.08); border-bottom:1px solid rgba(28,26,31,.08); }
.wes-counters-stat { text-align:center; padding:8px 16px; border-right:1px solid rgba(28,26,31,.06); }
.wes-counters-stat:last-child { border-right:0; }
.wes-counters-stat strong { display:block; font-family:'Spectral',serif; font-size:clamp(28px,3vw,40px); font-weight:700; color:#1c1c1e; line-height:1; margin-bottom:6px; }
.wes-counters-stat span { display:block; font-family:'AR One Sans',sans-serif; font-size:12px; letter-spacing:.04em; color:#4a4540; text-transform:uppercase; font-weight:500; }
.wes-counters-grid {display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.wes-counter-card { background:#fff; border-radius:12px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:box-shadow .25s ease, transform .25s ease; display:flex; flex-direction:column; }
.wes-counter-card:hover { box-shadow:var(--wes-shadow-lg); transform:translateY(-2px); }
.wes-counter-image { position:relative; aspect-ratio:16/9; overflow:hidden; background:#f5f1ea; }
.wes-counter-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.wes-counter-card:hover .wes-counter-image img { transform:scale(1.04); }
.wes-counter-badge {position:absolute; top:12px; left:12px; background:rgba(26,29,33,.85); color:#fff; font-family:'AR One Sans',sans-serif; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:2px; backdrop-filter:blur(4px);}
.wes-counter-badge--flagship { background:#D4A24E; color:#1a1d21; }
.wes-counter-body {padding:16px 16px 14px; display:flex; flex-direction:column; flex:1;}
.wes-counter-name {font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; margin:0 0 3px; letter-spacing:-0.01em;}
.wes-counter-detail {font-family:'AR One Sans',sans-serif; font-size:11px; line-height:1.5; color:#8A6A20; margin:0 0 10px; font-weight:500; letter-spacing:.02em;}
.wes-counter-meta {list-style:none; padding:0; margin:0 0 12px; display:flex; flex-direction:column; gap:5px;}
.wes-counter-meta li {display:flex; align-items:flex-start; gap:8px; font-family:'AR One Sans',sans-serif; font-size:12px; line-height:1.5; color:#1c1c1e;}
.wes-counter-icon { flex-shrink:0; color:#8A6A20; width:14px; height:14px; display:inline-flex; align-items:center; justify-content:center; margin-top:3px; }
.wes-counter-icon svg { display:block; width:100%; height:100%; }
.wes-counter-actions {display:flex; flex-direction:column; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:10px; border-top:1px solid rgba(28,26,31,.06);}
.wes-counter-cta {display:inline-flex; align-items:center; justify-content:center; gap:6px; width:100%; background:#1c1c1e; color:#fff; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:8px 10px; border-radius:2px; text-decoration:none; transition:all .2s ease; box-shadow:var(--wes-shadow-md);}
.wes-counter-cta:hover { background:#B58A3D; color:#1a1d21; box-shadow:var(--wes-shadow-md); transform:translateY(-1px); }
.wes-counter-cta--ghost { background:transparent; color:#1c1c1e; border:1px solid rgba(28,26,31,.18); box-shadow:none; }
.wes-counter-cta--ghost:hover { background:#1c1c1e; color:#fff; border-color:#1c1c1e; }
@media (max-width:880px) {
  .wes-counters-grid { grid-template-columns:1fr; gap:24px; }
  .wes-counters-stats { grid-template-columns:repeat(2,1fr); gap:16px 0; padding:20px 0; }
  .wes-counters-stat:nth-child(2) { border-right:0; }
  .wes-counter-image { aspect-ratio:5/3; }
  .wes-counter-actions { flex-direction:column; }
  .wes-counter-cta { width:100%; justify-content:center; }
}

/* =============== Unique page-signature sections ===============
   Each page below has ONE visually distinctive element nothing else
   on the site duplicates. Standing rule #27 (de facto): every page
   gets a signature moment.

   - About: vertical timeline (6 milestones, gold spine)
   - Contact: live counter-status widget (JS-driven)
   - Services: 5-step horizontal process flow
*/

/* About â€” Timeline */
.wes-timeline-section { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px; }
.wes-timeline-inner { max-width:920px; margin:0 auto; }
.wes-timeline-header { text-align:center; max-width:680px; margin:0 auto 64px; }
.wes-timeline-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-timeline-title em { font-style:italic; color:#8A6A20; }
.wes-timeline-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-timeline-list { list-style:none; padding:0; margin:0; position:relative; padding-left:88px; }
.wes-timeline-list::before { content:''; position:absolute; left:30px; top:8px; bottom:8px; width:2px; background:linear-gradient(to bottom, #D4A24E 0%, #D4A24E 95%, transparent 100%); opacity:.45; }
.wes-timeline-item { position:relative; padding-bottom:48px; }
.wes-timeline-item:last-child { padding-bottom:0; }
.wes-timeline-marker { position:absolute; left:-72px; top:6px; width:24px; height:24px; border-radius:50%; background:#fff; border:2px solid #D4A24E; box-shadow:var(--wes-shadow-sm); z-index:2; }
.wes-timeline-marker::after { content:''; position:absolute; inset:5px; border-radius:50%; background:#D4A24E; }
.wes-timeline-marker--current { border-color:#B58A3D; box-shadow:0 0 0 4px rgba(212,162,78,.15), var(--wes-shadow-md); }
.wes-timeline-marker--current::after { background:#B58A3D; animation:wes-pulse-marker 2s ease-in-out infinite; }
@keyframes wes-pulse-marker { 0%,100% { box-shadow:0 0 0 0 rgba(212,162,78,.5); } 50% { box-shadow:0 0 0 6px rgba(212,162,78,0); } }
.wes-timeline-year { position:absolute; left:-160px; top:6px; width:80px; text-align:right; font-family:'Spectral',serif; font-style:italic; font-size:24px; font-weight:700; color:#8A6A20; line-height:1; }
.wes-timeline-body { background:#fff; padding:24px 28px; border-radius:6px; box-shadow:var(--wes-shadow-md); }
.wes-timeline-head { font-family:'Spectral',serif; font-size:22px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 10px; letter-spacing:-0.01em; }
.wes-timeline-text { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; margin:0; }
@media (max-width:720px) {
  .wes-timeline-list { padding-left:60px; }
  .wes-timeline-year { position:relative; left:auto; top:auto; width:auto; text-align:left; margin-bottom:6px; font-size:18px; }
  .wes-timeline-marker { left:-44px; width:18px; height:18px; }
  .wes-timeline-list::before { left:24px; }
}

/* Contact â€” Live counter status */
.wes-live-status { background:#fff; padding:clamp(80px,9vw,128px) 24px; border-bottom:1px solid rgba(28,26,31,.06); }
.wes-live-status-inner { max-width:1400px; margin:0 auto; }
.wes-live-status-head { text-align:center; max-width:680px; margin:0 auto 48px; }
.wes-live-status-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-live-status-title em { font-style:italic; color:#8A6A20; }
.wes-live-status-sub { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:#4a4540; margin:0; }
.wes-status-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.wes-status-card { background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:box-shadow .25s ease, transform .25s ease; }
.wes-status-card:hover { box-shadow:var(--wes-shadow-lg); transform:translateY(-2px); }
.wes-status-card-head { position:relative; aspect-ratio:4/3; background-size:cover; background-position:center; background-color:#23222a; }
.wes-status-card-head::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.55) 100%); }
.wes-status-pill { position:absolute; top:16px; left:16px; display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.95); color:#1c1c1e; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:7px 12px; border-radius:999px; box-shadow:var(--wes-shadow-sm); z-index:1; backdrop-filter:blur(8px); }
.wes-status-dot { width:8px; height:8px; border-radius:50%; background:#9ca3af; flex-shrink:0; }
.wes-status-dot.is-open { background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.22); animation:wes-status-pulse 1.8s ease-in-out infinite; }
.wes-status-dot.is-closed { background:#dc2626; }
@keyframes wes-status-pulse { 0%,100% { box-shadow:0 0 0 3px rgba(22,163,74,.22); } 50% { box-shadow:0 0 0 6px rgba(22,163,74,.06); } }
.wes-status-card-body { padding:20px 24px 24px; }
.wes-status-name { font-family:'Spectral',serif; font-size:24px; font-weight:700; color:#1c1c1e; margin:0 0 4px; letter-spacing:-0.01em; }
.wes-status-next { font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; color:#8A6A20; margin:0 0 14px; letter-spacing:.02em; }
.wes-status-addr { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.5; color:#4a4540; margin:0 0 12px; }
.wes-status-phone { display:inline-block; font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; text-decoration:none; border-bottom:2px solid #D4A24E; padding-bottom:2px; }
.wes-status-phone:hover { color:#8A6A20; }
@media (max-width:1080px) { .wes-status-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .wes-status-grid { grid-template-columns:1fr; } }

/* Services â€” Process flow */
.wes-process-section { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px; }
.wes-process-inner { max-width:1200px; margin:0 auto; }
.wes-process-head { text-align:center; max-width:720px; margin:0 auto 64px; }
.wes-process-title-main { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-process-title-main em { font-style:italic; color:#8A6A20; }
.wes-process-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-process-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative; }
.wes-process-list::before { content:''; position:absolute; left:10%; right:10%; top:36px; height:2px; background:repeating-linear-gradient(90deg, #D4A24E 0 8px, transparent 8px 14px); opacity:.5; z-index:0; }
.wes-process-step { position:relative; padding:0 12px; text-align:center; z-index:1; }
.wes-process-marker { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:#fff; border:2px solid #D4A24E; box-shadow:var(--wes-shadow-md); margin:0 auto 24px; color:#8A6A20; position:relative; }
.wes-process-num { position:absolute; top:-10px; right:-10px; background:#D4A24E; color:#1a1d21; font-family:'Spectral',serif; font-style:italic; font-size:11px; font-weight:700; padding:3px 7px; border-radius:999px; box-shadow:var(--wes-shadow-sm); }
.wes-process-icon { display:inline-flex; align-items:center; justify-content:center; }
.wes-process-icon svg { width:28px; height:28px; }
.wes-process-title { font-family:'Spectral',serif; font-size:20px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 10px; letter-spacing:-0.01em; }
.wes-process-text { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.55; color:#4a4540; margin:0; max-width:200px; margin-left:auto; margin-right:auto; }
@media (max-width:980px) {
  .wes-process-list { grid-template-columns:1fr; gap:40px; }
  .wes-process-list::before { display:none; }
  .wes-process-step { display:grid; grid-template-columns:96px 1fr; gap:24px; text-align:left; align-items:start; padding:0; }
  .wes-process-marker { margin:0; }
  .wes-process-text { margin-left:0; max-width:none; }
}

/* =============== Location pages â€” editorial (Standing Rule #27) ===============
   NO dark overlay heroes. Photo + text on contrasting band beside it. */

/* Hero */
.wes-loc-hero { background:#fbf6ec; padding:clamp(56px,6vw,96px) 24px clamp(56px,6vw,80px); }
.wes-loc-hero-inner { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(40px,5vw,80px); align-items:center; }
.wes-loc-hero-copy { min-width:0; padding-right:clamp(0px,2vw,40px); }
.wes-loc-hero-badges { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:24px; }
.wes-loc-hero-badges .wes-loc-hero-badge { margin-bottom:0; }
.wes-loc-hero-badges .wes-open-badge { margin-bottom:0; background:#fff; border-color:rgba(28,26,31,.10); color:#1c1c1e; box-shadow:var(--wes-shadow-sm); }
.wes-loc-hero-badge { display:inline-block; background:#1c1c1e; color:#fff; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:8px 14px; border-radius:2px; margin-bottom:24px; box-shadow:var(--wes-shadow-sm); }
.wes-loc-hero-badge--flagship { background:#D4A24E; color:#1a1d21; box-shadow:var(--wes-shadow-gold-md); }
.wes-loc-hero-name { font-family:'Spectral',serif; font-size:clamp(48px,7vw,96px); font-weight:700; line-height:.95; letter-spacing:-0.03em; color:#1c1c1e; margin:0 0 20px; }
.wes-loc-hero-period { color:#8A6A20; }
.wes-loc-hero-addr { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.5; color:#4a4540; margin:0 0 32px; max-width:40ch; }
.wes-loc-hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.wes-loc-hero-image { position:relative; min-width:0; }
.wes-loc-hero-image img { width:100%; height:auto; max-height:560px; object-fit:cover; aspect-ratio:5/4; display:block; border-radius:clamp(20px,3vw,32px); filter:drop-shadow(0 10px 20px rgba(28,26,31,0.18)) drop-shadow(0 24px 48px rgba(28,26,31,0.22)); }
@media (max-width:880px) {
  .wes-loc-hero-inner { grid-template-columns:1fr; }
  .wes-loc-hero-copy { padding-right:0; order:1; }
  .wes-loc-hero-image { order:0; }
  .wes-loc-hero-image img { aspect-ratio:5/3; max-height:360px; }
}

/* Facts strip */
.wes-loc-facts { background:#1c1c1e; padding:24px 24px; border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06); }
.wes-loc-facts-inner { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.wes-loc-fact { padding:8px 24px; border-right:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:6px; }
.wes-loc-fact:last-child { border-right:0; }
.wes-loc-fact-label { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#D4A24E; }
.wes-loc-fact-value { font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:500; line-height:1.4; color:#fff; }
/* Standing Rule #42 / WCAG 2.5.8 â€” phone + address links sized as proper tap targets */
.wes-loc-fact-value a { display:inline-flex; align-items:center; padding:6px 10px; border-radius:6px; min-height:28px; color:#fff; text-decoration:none; border-bottom:0; background:rgba(212,162,78,.10); transition:background .15s ease; }
.wes-loc-fact-value a:hover { color:#D4A24E; background:rgba(212,162,78,.20); }
.wes-loc-fact-status { display:inline-flex; align-items:center; gap:8px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; color:#fff; }
.wes-loc-fact-status.is-open { color:#4ade80; }
.wes-loc-fact-status.is-closed { color:#fca5a5; }
.wes-loc-fact-dot { width:8px; height:8px; border-radius:50%; background:#4ade80; box-shadow:0 0 0 3px rgba(74,222,128,.25); animation:wes-pulse 2s ease-in-out infinite; }
.wes-loc-fact-status.is-closed .wes-loc-fact-dot { background:#f87171; box-shadow:none; animation:none; }
@media (max-width:880px) {
  .wes-loc-facts-inner { grid-template-columns:repeat(2,1fr); gap:16px 0; }
  .wes-loc-fact:nth-child(2) { border-right:0; }
}
@media (max-width:520px) { .wes-loc-facts-inner { grid-template-columns:1fr; } .wes-loc-fact { border-right:0; border-bottom:1px solid rgba(255,255,255,.08); } .wes-loc-fact:last-child { border-bottom:0; } }

/* Signature section */
.wes-loc-signature { background:#fff; padding:clamp(80px,9vw,128px) 24px; }
.wes-loc-signature-inner { max-width:1200px; margin:0 auto; }
.wes-loc-signature-head { max-width:740px; margin:0 0 64px; }
.wes-loc-signature-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 16px; }
.wes-loc-signature-title em { font-style:italic; color:#8A6A20; }
.wes-loc-signature-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.7; color:#4a4540; margin:0; max-width:62ch; }
.wes-loc-feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px 32px; margin-bottom:64px; }
.wes-loc-feature { position:relative; padding-top:8px; }
.wes-loc-feature-num { font-family:'Spectral',serif; font-style:italic; font-size:48px; font-weight:700; line-height:1; color:#D4A24E; opacity:.7; margin-bottom:16px; }
.wes-loc-feature-title { font-family:'Spectral',serif; font-size:22px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 12px; letter-spacing:-0.01em; }
.wes-loc-feature-text { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; margin:0; }
.wes-loc-ideal-block { padding:32px 40px; background:#fbf6ec; border-left:3px solid #D4A24E; border-radius:0 8px 8px 0; }
.wes-loc-ideal-label { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:12px; }
.wes-loc-ideal-list { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px 14px; }
.wes-loc-ideal-item { font-family:'Spectral',serif; font-size:18px; font-weight:500; color:#1c1c1e; }
.wes-loc-ideal-item:not(:last-child)::after { content:'Â·'; margin-left:14px; color:#D4A24E; font-weight:700; }
@media (max-width:880px) { .wes-loc-feature-grid { grid-template-columns:1fr; gap:32px; } .wes-loc-feature-num { font-size:36px; } }

/* Map section */
.wes-loc-map-section { background:#fbf6ec; padding:clamp(64px,7vw,112px) 24px; }
.wes-loc-map-inner { max-width:1200px; margin:0 auto; }
.wes-loc-map-head { text-align:center; margin-bottom:40px; }
.wes-loc-map-title { font-family:'Spectral',serif; font-size:clamp(28px,3.2vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0; }
.wes-loc-map-frame { overflow:hidden; border-radius:12px; box-shadow:var(--wes-shadow-lg); }

/* =============== Category pages â€” iconographic cards ===============
   Replaces the recycled-photo cards that were showing lighting showroom
   photos for wire/conduit/switches. Each subcategory now gets a real
   SVG icon. Standing Rule (de facto): no recycled photos in category
   cards. */
.wes-catcards-section { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-catcards-inner { max-width:1280px; margin:0 auto; }
.wes-catcards-head { text-align:center; margin-bottom:56px; }
.wes-catcards-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0; }
.wes-catcards-title em { font-style:italic; color:#8A6A20; }
.wes-catcards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.wes-catcard { display:flex; flex-direction:column; gap:20px; padding:32px 28px 28px; background:#fbf6ec; border-radius:10px; border:1px solid rgba(28,26,31,.06); text-decoration:none; color:#1c1c1e; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; box-shadow:var(--wes-shadow-sm); position:relative; overflow:hidden; }
.wes-catcard::before { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:#D4A24E; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.wes-catcard:hover { background:#fff; box-shadow:var(--wes-shadow-lg); transform:translateY(-3px); border-color:rgba(28,26,31,.10); }
.wes-catcard:hover::before { transform:scaleX(1); }
.wes-catcard-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:rgba(212,162,78,.12); color:#8A6A20; flex-shrink:0; }
.wes-catcard-icon svg { display:block; width:36px; height:36px; }
.wes-catcard-title { font-family:'Spectral',serif; font-size:24px; font-weight:700; line-height:1.15; color:#1c1c1e; margin:0 0 8px; letter-spacing:-0.01em; }
.wes-catcard-text { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.55; color:#4a4540; margin:0 0 14px; min-height:44px; }
.wes-catcard-cta { display:inline-block; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#8A6A20; }
.wes-catcard:hover .wes-catcard-cta { color:#1c1c1e; }
@media (max-width:980px) { .wes-catcards-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .wes-catcards-grid { grid-template-columns:1fr; } }

/* Category page signature (room/trade/finish picker) */
.wes-cat-sig { background:#fbf6ec; padding:clamp(72px,8vw,120px) 24px; }
.wes-cat-sig-inner { max-width:1200px; margin:0 auto; }
.wes-cat-sig-head { text-align:center; max-width:680px; margin:0 auto 56px; }
.wes-cat-sig-head-title { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,42px); font-weight:700; line-height:1.15; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 16px; }
.wes-cat-sig-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.65; color:#4a4540; margin:0; }
.wes-cat-sig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.wes-cat-sig-tile { background:#fff; padding:32px 28px; border-radius:8px; border:1px solid rgba(28,26,31,.06); transition:transform .2s ease, box-shadow .2s ease; box-shadow:var(--wes-shadow-sm); }
.wes-cat-sig-tile:hover { box-shadow:var(--wes-shadow-md); transform:translateY(-2px); }
.wes-cat-sig-num { font-family:'Spectral',serif; font-style:italic; font-size:24px; font-weight:700; color:#D4A24E; margin-bottom:12px; line-height:1; }
.wes-cat-sig-title { font-family:'Spectral',serif; font-size:22px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 10px; letter-spacing:-0.01em; }
.wes-cat-sig-text { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.55; color:#4a4540; margin:0; }
@media (max-width:880px) { .wes-cat-sig-grid { grid-template-columns:1fr; } }

/* =============== Home page sliders (WooCommerce-ready) =============== */

/* SLIDER 1 â€” Featured Brands carousel */
.wes-brslider-section { background:#fff; padding:clamp(80px,9vw,128px) 24px; }
.wes-brslider-wrap { max-width:1400px; margin:0 auto; }
.wes-brslider-head { text-align:center; max-width:680px; margin:0 auto 48px; }
.wes-brslider-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-brslider-title em { font-style:italic; color:#8A6A20; }
.wes-brslider-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-brslider { position:relative; background:#23222a; border-radius:16px; overflow:hidden; min-height:480px; box-shadow:var(--wes-shadow-xl); }
.wes-brslider-slide { position:absolute; inset:0; display:grid; grid-template-columns:1.1fr 1fr; gap:0; opacity:0; transform:translateX(20px); transition:opacity .55s ease, transform .55s ease; pointer-events:none; }
.wes-brslider-slide.is-active { opacity:1; transform:translateX(0); pointer-events:auto; position:relative; }
.wes-brslider-image { background-size:cover; background-position:center; position:relative; }
.wes-brslider-image::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(35,34,42,.30) 0%, rgba(35,34,42,.05) 50%, transparent 100%); }
.wes-brslider-featured { position:absolute; bottom:24px; left:24px; background:rgba(255,255,255,.96); padding:14px 18px; border-radius:8px; box-shadow:var(--wes-shadow-lg); z-index:2; max-width:280px; backdrop-filter:blur(8px); }
.wes-brslider-featured-label { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; color:#8A6A20; margin-bottom:4px; }
.wes-brslider-featured-name { font-family:'Spectral',serif; font-size:14px; font-weight:600; line-height:1.2; color:#1c1c1e; margin-bottom:4px; }
.wes-brslider-featured-price { font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:700; color:#1c1c1e; }
.wes-brslider-stats { display:flex; gap:24px; font-family:'AR One Sans',sans-serif; font-size:13px; color:rgba(255,255,255,.75); margin-top:4px; }
.wes-brslider-stats strong { font-family:'Spectral',serif; font-style:italic; font-size:20px; font-weight:700; color:#D4A24E; margin-right:4px; }
.wes-brslider-content { padding:clamp(40px,5vw,72px); display:flex; flex-direction:column; justify-content:center; color:#fff; gap:18px; }
.wes-brslider-tag { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#D4A24E; }
.wes-brslider-name { font-family:'Spectral',serif; font-size:clamp(36px,4.5vw,56px); font-weight:700; line-height:1; letter-spacing:-0.02em; color:#fff; margin:0; }
.wes-brslider-blurb { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.78); margin:0; max-width:48ch; }
.wes-brslider-cats { list-style:none; padding:0; margin:8px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.wes-brslider-cats li { display:inline-block; padding:6px 12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:999px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:500; color:rgba(255,255,255,.85); }
.wes-brslider-actions { margin-top:18px; }
.wes-brslider-nav { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.95); color:#1c1c1e; border:0; cursor:pointer; font-size:28px; font-weight:300; line-height:1; box-shadow:var(--wes-shadow-md); transition:all .2s ease; z-index:3; }
.wes-brslider-nav:hover { background:#D4A24E; color:#1a1d21; box-shadow:var(--wes-shadow-lg); }
.wes-brslider-prev { left:16px; }
.wes-brslider-next { right:16px; }
.wes-brslider-dots { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); display:flex; gap:4px; z-index:3; }
/* WCAG 2.5.8: dots are 36x4 visible, but hit area expands to 24x24 via padding */
.wes-brslider-dot { width:auto; min-height:24px; min-width:24px; border-radius:2px; background:transparent !important; border:0; padding:10px 6px; cursor:pointer; transition:opacity .2s ease; display:flex; align-items:center; justify-content:center; }
.wes-brslider-dot::after { content:''; display:block; width:36px; height:4px; border-radius:2px; background:rgba(255,255,255,.30); transition:background .2s ease, transform .2s ease; }
.wes-brslider-dot.is-active::after { background:#D4A24E; transform:scaleY(1.4); }
.wes-brslider-dot:hover::after { background:rgba(255,255,255,.6); }
@media (max-width:880px) {
  .wes-brslider { min-height:640px; }
  .wes-brslider-slide { grid-template-columns:1fr; grid-template-rows:240px 1fr; }
  .wes-brslider-content { padding:32px 28px 80px; }
  .wes-brslider-nav { width:40px; height:40px; font-size:22px; }
  .wes-brslider-name { font-size:34px; }
}

/* SLIDER 2 â€” Shop the Showroom (tabbed) */
.wes-shopslider-section { background:#1c1c1e; padding:clamp(80px,9vw,128px) 24px; color:#fff; }
.wes-shopslider-wrap { max-width:1400px; margin:0 auto; }
.wes-shopslider-head { text-align:center; max-width:720px; margin:0 auto 48px; }
.wes-shopslider-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#fff; margin:0 0 14px; }
.wes-shopslider-title em { font-style:italic; color:#D4A24E; }
.wes-shopslider-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:rgba(255,255,255,.7); margin:0; }
.wes-shopslider { position:relative; }
.wes-shopslider-tabs { display:inline-flex; gap:0; padding:6px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); border-radius:999px; margin:0 auto 40px; display:flex; justify-content:center; flex-wrap:wrap; max-width:fit-content; margin-left:auto; margin-right:auto; }
.wes-shopslider-tab { background:transparent; border:0; color:rgba(255,255,255,.7); font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:12px 28px; border-radius:999px; cursor:pointer; transition:all .2s ease; }
.wes-shopslider-tab:hover { color:#fff; }
.wes-shopslider-tab.is-active { background:#D4A24E; color:#1a1d21; box-shadow:var(--wes-shadow-gold-md); }
.wes-shopslider-pane { display:none; animation:wes-shopslider-fade .35s ease; }
.wes-shopslider-pane.is-active { display:block; }
@keyframes wes-shopslider-fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.wes-shopslider-intro { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.78); text-align:center; max-width:60ch; margin:0 auto 32px; }
.wes-shopslider-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:32px; }
.wes-shopslider-card { display:flex; align-items:center; gap:16px; padding:20px 24px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:10px; text-decoration:none; color:#fff; transition:all .2s ease; }
.wes-shopslider-card:hover { background:rgba(255,255,255,.08); border-color:#D4A24E; transform:translateY(-2px); box-shadow:var(--wes-shadow-on-dark-md); }
.wes-shopslider-card-icon { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:rgba(212,162,78,.16); color:#D4A24E; flex-shrink:0; }
.wes-shopslider-card-body { flex:1; min-width:0; }
.wes-shopslider-card-label { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#fff; line-height:1.2; margin-bottom:2px; }
.wes-shopslider-card-sub { font-family:'AR One Sans',sans-serif; font-size:12px; line-height:1.3; color:rgba(255,255,255,.6); }
.wes-shopslider-card-arrow { color:#D4A24E; font-size:18px; opacity:.5; transition:all .2s ease; }
.wes-shopslider-card:hover .wes-shopslider-card-arrow { opacity:1; transform:translateX(4px); }
/* Product variant of the shopslider card */
.wes-shopslider-card--product { flex-direction:column; align-items:stretch; gap:0; padding:0; overflow:hidden; }
.wes-shopslider-prod-image { aspect-ratio:1/1; background-size:cover; background-position:center; background-color:#1a1d21; }
.wes-shopslider-card--product .wes-shopslider-card-body { padding:14px 16px 12px; }
.wes-shopslider-card-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#D4A24E; margin-bottom:4px; }
.wes-shopslider-card-price { font-family:'Spectral',serif; font-size:16px; font-weight:700; color:#fff; margin-top:6px; }
.wes-shopslider-card--product .wes-shopslider-card-arrow { position:absolute; top:12px; right:12px; background:rgba(0,0,0,.4); width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; opacity:.7; backdrop-filter:blur(4px); }
.wes-shopslider-card--product:hover .wes-shopslider-card-arrow { background:#D4A24E; color:#1a1d21; opacity:1; transform:none; }
.wes-shopslider-shopall { text-align:center; }
@media (max-width:980px) { .wes-shopslider-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .wes-shopslider-grid { grid-template-columns:1fr; } }

/* =============== Featured Products grid (WC-ready) =============== */
.wes-fp-section { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px; }
.wes-fp-inner { max-width:1400px; margin:0 auto; }
.wes-fp-head { text-align:center; max-width:680px; margin:0 auto 56px; }
.wes-fp-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-fp-title em { font-style:italic; color:#8A6A20; }
.wes-fp-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-fp-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
/* Stretched-link card pattern â€” entire card is clickable via the title's pseudo-element overlay (WCAG 2.5.8 + UX). */
.wes-fp-card { background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:box-shadow .25s ease, transform .25s ease; display:flex; flex-direction:column; position:relative; }
.wes-fp-card .wes-fp-name a::before { content:''; position:absolute; inset:0; z-index:1; }
.wes-fp-card .wes-fp-image, .wes-fp-card .wes-fp-cta { position:relative; z-index:2; }
.wes-fp-card:hover { box-shadow:var(--wes-shadow-lg); transform:translateY(-3px); }
.wes-fp-image { position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:#fbf6ec; }
.wes-fp-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; display:block; }
.wes-fp-card:hover .wes-fp-image img { transform:scale(1.06); }
.wes-fp-stock { position:absolute; top:12px; left:12px; background:rgba(22,163,74,.95); color:#fff; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; padding:5px 10px; border-radius:2px; box-shadow:var(--wes-shadow-sm); }
.wes-fp-stock--special { background:rgba(212,162,78,.95); color:#1a1d21; }
.wes-fp-body { padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.wes-fp-brand { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:8px; }
.wes-fp-name { font-family:'Spectral',serif; font-size:17px; font-weight:600; line-height:1.3; color:#1c1c1e; margin:0 0 12px; letter-spacing:-0.01em; }
.wes-fp-name a { color:inherit; text-decoration:none; }
.wes-fp-name a:hover { color:#8A6A20; }
.wes-fp-price { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; margin-bottom:auto; padding-bottom:16px; letter-spacing:-0.01em; }
.wes-fp-price-now { color:#1c1c1e; }
.wes-fp-price-was { color:#4a4540; font-size:14px; font-weight:400; text-decoration:line-through; margin-left:6px; }
.wes-fp-cta { display:inline-block; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#1c1c1e; text-decoration:none; padding-top:12px; border-top:1px solid rgba(28,26,31,.06); transition:color .2s ease; }
.wes-fp-cta:hover { color:#8A6A20; }
@media (max-width:1080px) { .wes-fp-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px) { .wes-fp-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px) { .wes-fp-grid { grid-template-columns:1fr; } }

/* =============== Project Bundles (WC Grouped Products-ready) =============== */
.wes-bundles-section { background:#fff; padding:clamp(80px,9vw,128px) 24px; }
.wes-bundles-inner { max-width:1400px; margin:0 auto; }
.wes-bundles-head { text-align:center; max-width:720px; margin:0 auto 56px; }
.wes-bundles-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-bundles-title em { font-style:italic; color:#8A6A20; }
.wes-bundles-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-bundles-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.wes-bundle-card { position:relative; background:#fbf6ec; border-radius:12px; padding:32px 32px 28px; border:1px solid rgba(28,26,31,.06); transition:transform .25s ease, box-shadow .25s ease; box-shadow:var(--wes-shadow-md); overflow:hidden; }
.wes-bundle-card:hover { box-shadow:var(--wes-shadow-lg); transform:translateY(-2px); }
.wes-bundle-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:#D4A24E; }
.wes-bundle-card--electric::before { background:#1f6feb; }
.wes-bundle-card--lighting::before { background:#D4A24E; }
.wes-bundle-card--smart::before { background:#7c3aed; }
.wes-bundle-header { display:flex; align-items:flex-start; gap:18px; margin-bottom:18px; }
.wes-bundle-icon { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:#fff; color:#8A6A20; flex-shrink:0; box-shadow:var(--wes-shadow-sm); }
.wes-bundle-card--electric .wes-bundle-icon { color:#1f6feb; }
.wes-bundle-card--smart .wes-bundle-icon { color:#7c3aed; }
.wes-bundle-meta { flex:1; min-width:0; padding-top:4px; }
.wes-bundle-items { display:inline-block; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; background:rgba(212,162,78,.12); padding:4px 10px; border-radius:999px; margin-bottom:6px; }
.wes-bundle-use { font-family:'AR One Sans',sans-serif; font-size:12px; line-height:1.4; color:#4a4540; }
.wes-bundle-name { font-family:'Spectral',serif; font-size:28px; font-weight:700; line-height:1.15; color:#1c1c1e; margin:0 0 6px; letter-spacing:-0.015em; }
.wes-bundle-tagline { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.5; color:#4a4540; margin:0 0 18px; font-style:italic; }
.wes-bundle-highlights { list-style:none; padding:0; margin:0 0 24px; display:grid; grid-template-columns:1fr 1fr; gap:6px 18px; }
.wes-bundle-highlights li { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.4; color:#1c1c1e; padding-left:16px; position:relative; }
.wes-bundle-highlights li::before { content:''; position:absolute; left:0; top:6px; width:8px; height:8px; border-radius:50%; background:#D4A24E; }
.wes-bundle-card--electric .wes-bundle-highlights li::before { background:#1f6feb; }
.wes-bundle-card--smart .wes-bundle-highlights li::before { background:#7c3aed; }
.wes-bundle-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding-top:18px; border-top:1px solid rgba(28,26,31,.08); }
.wes-bundle-cta { display:inline-flex; align-items:center; gap:6px; background:#1c1c1e; color:#fff; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:11px 18px; border-radius:2px; text-decoration:none; box-shadow:var(--wes-shadow-md); transition:all .2s ease; }
.wes-bundle-cta:hover { background:#B58A3D; color:#1a1d21; box-shadow:var(--wes-shadow-lg); transform:translateY(-1px); }
.wes-bundle-note { font-family:'AR One Sans',sans-serif; font-size:12px; color:#4a4540; font-style:italic; }
@media (max-width:980px) { .wes-bundles-grid { grid-template-columns:1fr; } .wes-bundle-highlights { grid-template-columns:1fr; } }

/* =============== New Arrivals horizontal carousel =============== */
.wes-na-section { background:#fff; padding:clamp(80px,9vw,128px) 0; }
.wes-na-inner { max-width:1400px; margin:0 auto; padding-left:clamp(24px,4vw,48px); }
.wes-na-head { display:grid; grid-template-columns:1fr auto auto; gap:24px; align-items:end; padding-right:clamp(24px,4vw,48px); margin-bottom:36px; }
.wes-na-eyebrow { grid-column:1; }
.wes-na-title { grid-column:1; font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#1c1c1e; margin:8px 0 0; }
.wes-na-title em { font-style:italic; color:#8A6A20; }
.wes-na-nav { grid-row:2; grid-column:3; display:flex; gap:8px; }
.wes-na-nav-btn { width:48px; height:48px; border-radius:50%; background:#fff; border:1px solid rgba(28,26,31,.12); color:#1c1c1e; cursor:pointer; font-size:24px; line-height:1; box-shadow:var(--wes-shadow-md); transition:all .2s ease; }
.wes-na-nav-btn:hover { background:#D4A24E; color:#1a1d21; border-color:#D4A24E; box-shadow:var(--wes-shadow-md); }
.wes-na-rail { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:16px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.wes-na-rail::-webkit-scrollbar { display:none; }
.wes-na-card { flex:0 0 240px; background:#fbf6ec; border-radius:10px; overflow:hidden; box-shadow:var(--wes-shadow-md); scroll-snap-align:start; transition:transform .2s ease, box-shadow .2s ease; }
.wes-na-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
.wes-na-image { position:relative; display:block; aspect-ratio:1/1; overflow:hidden; }
.wes-na-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.wes-na-card:hover .wes-na-image img { transform:scale(1.06); }
.wes-na-new-badge { position:absolute; top:12px; left:12px; background:#D4A24E; color:#1a1d21; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; padding:4px 10px; border-radius:2px; box-shadow:var(--wes-shadow-sm); }
.wes-na-body { padding:16px 18px 18px; }
.wes-na-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:6px; }
.wes-na-name { font-family:'Spectral',serif; font-size:15px; font-weight:600; line-height:1.3; color:#1c1c1e; margin:0 0 10px; min-height:38px; }
.wes-na-name a { color:inherit; text-decoration:none; }
.wes-na-price { font-family:'Spectral',serif; font-size:16px; font-weight:700; color:#1c1c1e; }
.wes-na-price-was { font-size:13px; font-weight:400; color:#4a4540; text-decoration:line-through; margin-left:6px; }
@media (max-width:680px) { .wes-na-card { flex-basis:200px; } }

/* =============== Sale/Deals strip =============== */
.wes-deals-section { background:#1c1c1e; color:#fff; padding:clamp(80px,9vw,128px) 24px; position:relative; overflow:hidden; }
.wes-deals-section::before { content:''; position:absolute; top:-50%; right:-20%; width:60%; height:200%; background:radial-gradient(closest-side, rgba(212,162,78,.10) 0%, transparent 70%); pointer-events:none; }
.wes-deals-inner { max-width:1400px; margin:0 auto; position:relative; }
.wes-deals-head { text-align:center; max-width:720px; margin:0 auto 48px; }
.wes-deals-eyebrow { display:inline-flex; align-items:center; gap:10px; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em; color:#fca5a5; margin-bottom:16px; }
.wes-deals-pulse { display:inline-block; width:10px; height:10px; border-radius:50%; background:#dc2626; box-shadow:0 0 0 4px rgba(220,38,38,.25); animation:wes-pulse-deal 1.6s ease-in-out infinite; }
@keyframes wes-pulse-deal { 0%,100% { box-shadow:0 0 0 4px rgba(220,38,38,.25); transform:scale(1); } 50% { box-shadow:0 0 0 8px rgba(220,38,38,.0); transform:scale(1.15); } }
.wes-deals-title { font-family:'Spectral',serif; font-size:clamp(32px,4.5vw,52px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#fff; margin:0 0 16px; }
.wes-deals-title em { font-style:italic; color:#D4A24E; }
.wes-deals-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.7); margin:0; }
.wes-deals-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:36px; }
.wes-deal-card { position:relative; display:flex; flex-direction:column; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); border-radius:10px; overflow:hidden; text-decoration:none; color:#fff; transition:all .25s ease; }
.wes-deal-card:hover { background:rgba(255,255,255,.09); border-color:#D4A24E; transform:translateY(-3px); box-shadow:var(--wes-shadow-on-dark-lg); }
.wes-deal-image { position:relative; aspect-ratio:16/9; background-size:cover; background-position:center; background-color:#000; }
.wes-deal-savings { position:absolute; top:14px; right:14px; background:#dc2626; color:#fff; font-family:'Spectral',serif; font-size:24px; font-weight:700; padding:8px 12px; border-radius:2px; box-shadow:0 4px 12px rgba(220,38,38,.4); }
.wes-deal-body { padding:18px 22px 20px; flex:1; display:flex; flex-direction:column; }
.wes-deal-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#D4A24E; margin-bottom:8px; }
.wes-deal-name { font-family:'Spectral',serif; font-size:18px; font-weight:600; line-height:1.3; color:#fff; margin:0 0 16px; flex:1; }
.wes-deal-prices { display:flex; align-items:baseline; gap:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.10); }
.wes-deal-was { font-family:'AR One Sans',sans-serif; font-size:14px; color:rgba(255,255,255,.5); text-decoration:line-through; }
.wes-deal-now { font-family:'Spectral',serif; font-size:24px; font-weight:700; color:#D4A24E; letter-spacing:-0.01em; }
.wes-deals-actions { text-align:center; }
@media (max-width:980px) { .wes-deals-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .wes-deals-grid { grid-template-columns:1fr; } }

/* =============== Custom editorial Shop page =============== */
.wes-shop-hero { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px clamp(48px,6vw,80px); text-align:center; position:relative; overflow:hidden; }
.wes-shop-hero::before { content:''; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:120%; height:120%; background:radial-gradient(closest-side, rgba(212,162,78,.08) 0%, transparent 65%); pointer-events:none; }
.wes-shop-hero-inner { max-width:920px; margin:0 auto; position:relative; }
.wes-shop-hero-eyebrow { font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.24em; color:#8A6A20; margin-bottom:24px; }
.wes-shop-hero-title { font-family:'Spectral',serif; font-size:clamp(40px,6vw,72px); font-weight:700; line-height:1.05; letter-spacing:-0.025em; color:#1c1c1e; margin:0 0 24px; }
.wes-shop-hero-title em { font-style:italic; color:#8A6A20; }
.wes-shop-hero-lede { font-family:'AR One Sans',sans-serif; font-size:18px; line-height:1.6; color:#4a4540; margin:0 0 40px; max-width:60ch; margin-left:auto; margin-right:auto; }
.wes-shop-hero-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:720px; margin:0 auto; padding:24px 0; border-top:1px solid rgba(28,26,31,.10); border-bottom:1px solid rgba(28,26,31,.10); }
.wes-shop-hero-stats > div { text-align:center; padding:8px 12px; border-right:1px solid rgba(28,26,31,.06); }
.wes-shop-hero-stats > div:last-child { border-right:0; }
.wes-shop-hero-stats strong { display:block; font-family:'Spectral',serif; font-style:italic; font-size:clamp(28px,3.2vw,40px); font-weight:700; color:#8A6A20; line-height:1; margin-bottom:6px; }
.wes-shop-hero-stats span { display:block; font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.10em; color:#4a4540; text-transform:uppercase; font-weight:600; }
@media (max-width:640px) { .wes-shop-hero-stats { grid-template-columns:repeat(2,1fr); gap:16px 0; } .wes-shop-hero-stats > div:nth-child(2) { border-right:0; } }

/* Shop category filter strip */
.wes-shop-catfilter { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-shop-catfilter-inner { max-width:1400px; margin:0 auto; }
.wes-shop-section-head { text-align:center; margin-bottom:48px; max-width:680px; margin-left:auto; margin-right:auto; }
.wes-shop-section-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0; }
.wes-shop-section-title em { font-style:italic; color:#8A6A20; }
.wes-shop-catfilter-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.wes-shop-cat { display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:28px 20px 24px; background:#fbf6ec; border-radius:12px; border:1px solid rgba(28,26,31,.06); text-decoration:none; color:#1c1c1e; transition:all .25s ease; box-shadow:var(--wes-shadow-sm); position:relative; overflow:hidden; }
.wes-shop-cat:hover { background:#fff; border-color:#D4A24E; transform:translateY(-3px); box-shadow:var(--wes-shadow-md); }
.wes-shop-cat-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:rgba(212,162,78,.12); color:#8A6A20; transition:all .2s ease; }
.wes-shop-cat:hover .wes-shop-cat-icon { background:#D4A24E; color:#1a1d21; }
.wes-shop-cat-name { font-family:'Spectral',serif; font-size:18px; font-weight:700; line-height:1.2; color:#1c1c1e; letter-spacing:-0.01em; }
.wes-shop-cat-count { font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.06em; color:#4a4540; text-transform:uppercase; }
@media (max-width:980px) { .wes-shop-catfilter-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px) { .wes-shop-catfilter-grid { grid-template-columns:repeat(2,1fr); gap:12px; } }

/* Brand chip row */
.wes-shop-brands { background:#1c1c1e; color:#fff; padding:48px 24px; }
.wes-shop-brands-inner { max-width:1400px; margin:0 auto; text-align:center; }
.wes-shop-brands-label { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.24em; color:#D4A24E; margin-bottom:24px; }
.wes-shop-brands-chips { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.wes-shop-brand-chip { display:inline-block; padding:9px 18px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:999px; font-family:'Spectral',serif; font-size:15px; font-weight:500; color:#fff; letter-spacing:-0.01em; transition:all .2s ease; }
.wes-shop-brand-chip:hover { background:rgba(255,255,255,.12); border-color:#D4A24E; }

/* All-products section (wraps the WC shortcode output) */
.wes-shop-grid-section { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-shop-grid-inner { max-width:1400px; margin:0 auto; }
.wes-shop-grid-sub { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.55; color:#4a4540; margin:14px 0 0; max-width:55ch; margin-left:auto; margin-right:auto; }
/* Style the WooCommerce shortcode output to match our editorial system */
.wes-shop-grid-section ul.products { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:24px !important; list-style:none; padding:48px 0 0 !important; margin:0 !important; }
.wes-shop-grid-section ul.products::before, .wes-shop-grid-section ul.products::after { display:none !important; }
.wes-shop-grid-section ul.products li.product { width:100% !important; margin:0 !important; padding:0 !important; background:#fff; border-radius:10px; box-shadow:var(--wes-shadow-md); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.wes-shop-grid-section ul.products li.product:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
.wes-shop-grid-section ul.products li.product a { text-decoration:none; color:inherit; display:block; }
.wes-shop-grid-section ul.products li.product .woocommerce-loop-product__title { font-family:'Spectral',serif !important; font-size:16px !important; font-weight:600 !important; line-height:1.3 !important; color:#1c1c1e !important; padding:16px 18px 6px !important; min-height:60px; }
.wes-shop-grid-section ul.products li.product .price { font-family:'Spectral',serif !important; font-size:18px !important; font-weight:700 !important; color:#1c1c1e !important; padding:0 18px 12px !important; display:block; }
.wes-shop-grid-section ul.products li.product .price del { color:#4a4540 !important; font-size:14px !important; font-weight:400 !important; margin-right:8px; }
.wes-shop-grid-section ul.products li.product .price ins { text-decoration:none !important; color:#1c1c1e !important; }
.wes-shop-grid-section ul.products li.product img { width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; display:block; }
.wes-shop-grid-section ul.products li.product .button { display:inline-block; margin:0 18px 18px !important; padding:10px 16px !important; background:#1c1c1e !important; color:#fff !important; font-family:'AR One Sans',sans-serif !important; font-size:12px !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; border-radius:2px !important; box-shadow:var(--wes-shadow-md) !important; }
.wes-shop-grid-section ul.products li.product .button:hover { background:#B58A3D !important; color:#1a1d21 !important; }
.wes-shop-grid-section ul.products li.product .onsale { background:#dc2626 !important; color:#fff !important; font-family:'Spectral',serif !important; font-style:italic !important; font-weight:700 !important; padding:6px 12px !important; border-radius:2px !important; box-shadow:var(--wes-shadow-md) !important; top:12px !important; right:12px !important; left:auto !important; }
@media (max-width:1080px) { .wes-shop-grid-section ul.products { grid-template-columns:repeat(3,1fr) !important; } }
@media (max-width:760px) { .wes-shop-grid-section ul.products { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:480px) { .wes-shop-grid-section ul.products { grid-template-columns:1fr !important; } }

/* =============== Top of the Stack â€” vertical bestsellers ranking =============== */
.wes-stack-section { background:#fff; padding:clamp(80px,9vw,128px) 24px; }
.wes-stack-inner { max-width:1280px; margin:0 auto; }
.wes-stack-head { max-width:680px; margin:0 auto 48px; text-align:center; }
.wes-stack-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-stack-title em { font-style:italic; color:#8A6A20; }
.wes-stack-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-stack-list { border-top:1px solid rgba(28,26,31,.10); margin-bottom:48px; }
.wes-stack-row { display:grid; grid-template-columns:80px 120px 1fr 160px; align-items:center; gap:24px; padding:24px 8px; border-bottom:1px solid rgba(28,26,31,.10); text-decoration:none; color:inherit; transition:background .2s ease, transform .15s ease; }
.wes-stack-row:hover { background:#fbf6ec; transform:translateX(4px); }
.wes-stack-rank { display:flex; align-items:center; justify-content:center; }
.wes-stack-rank-num { font-family:'Spectral',serif; font-style:italic; font-size:48px; font-weight:700; line-height:1; color:#D4A24E; opacity:.85; }
.wes-stack-row:hover .wes-stack-rank-num { color:#8A6A20; opacity:1; }
.wes-stack-image { width:96px; height:96px; background-size:cover; background-position:center; border-radius:8px; box-shadow:var(--wes-shadow-sm); background-color:#fbf6ec; }
.wes-stack-meta { min-width:0; }
.wes-stack-brand-row { display:flex; gap:12px; align-items:center; margin-bottom:6px; flex-wrap:wrap; }
.wes-stack-brand { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; }
.wes-stack-cat-tag { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:500; color:#4a4540; padding:3px 9px; background:rgba(28,26,31,.05); border-radius:999px; }
.wes-stack-name { font-family:'Spectral',serif; font-size:20px; font-weight:600; line-height:1.25; color:#1c1c1e; margin:0 0 10px; letter-spacing:-0.01em; }
.wes-stack-info { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.wes-stack-prices { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; }
.wes-stack-price-was { font-size:14px; font-weight:400; color:#4a4540; text-decoration:line-through; margin-left:6px; }
.wes-stack-stock { display:inline-flex; align-items:center; gap:6px; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; padding:4px 10px; border-radius:2px; background:rgba(22,163,74,.12); color:#16a34a; }
.wes-stack-stock--special { background:rgba(212,162,78,.15); color:#8A6A20; }
.wes-stack-cta-col { text-align:right; }
.wes-stack-cta { display:inline-flex; align-items:center; gap:6px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:#1c1c1e; padding:10px 16px; background:transparent; border:1px solid rgba(28,26,31,.20); border-radius:2px; transition:all .2s ease; }
.wes-stack-row:hover .wes-stack-cta { background:#1c1c1e; color:#fff; border-color:#1c1c1e; box-shadow:var(--wes-shadow-md); }
.wes-stack-actions { text-align:center; }
@media (max-width:880px) {
  .wes-stack-row { grid-template-columns:64px 96px 1fr; gap:16px; padding:20px 0; }
  .wes-stack-rank-num { font-size:32px; }
  .wes-stack-image { width:80px; height:80px; }
  .wes-stack-cta-col { display:none; }
}

/* =============== A Day at the Counter â€” editorial timeline =============== */
.wes-day-section { background:#fbf6ec; padding:clamp(80px,9vw,128px) 24px; }
.wes-day-inner { max-width:960px; margin:0 auto; }
.wes-day-head { text-align:center; max-width:720px; margin:0 auto 64px; }
.wes-day-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.15; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-day-title em { font-style:italic; color:#8A6A20; }
.wes-day-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-day-timeline { list-style:none; padding:0; margin:0; position:relative; }
.wes-day-timeline::before { content:''; position:absolute; left:120px; top:14px; bottom:14px; width:2px; background:linear-gradient(to bottom, #D4A24E 0%, #D4A24E 92%, rgba(212,162,78,.2) 100%); }
.wes-day-step { display:grid; grid-template-columns:104px 1fr; gap:32px; align-items:start; padding-bottom:40px; position:relative; }
.wes-day-step:last-child { padding-bottom:0; }
.wes-day-time { position:relative; text-align:right; padding-top:4px; }
.wes-day-hour { display:inline-block; font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:700; color:#8A6A20; letter-spacing:-0.01em; }
.wes-day-marker { position:absolute; left:114px; top:8px; width:20px; height:20px; border-radius:50%; background:#fff; border:2px solid #D4A24E; box-shadow:var(--wes-shadow-sm); z-index:2; }
.wes-day-marker::after { content:''; position:absolute; inset:4px; border-radius:50%; background:#D4A24E; }
.wes-day-body { background:#fff; padding:22px 26px 20px; border-radius:8px; box-shadow:var(--wes-shadow-md); position:relative; }
.wes-day-icon { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:rgba(212,162,78,.14); color:#8A6A20; margin-bottom:14px; }
.wes-day-headline { font-family:'Spectral',serif; font-size:22px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 10px; letter-spacing:-0.01em; }
.wes-day-text { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; margin:0 0 12px; }
.wes-day-callout { display:inline-block; padding:6px 12px; background:#fbf6ec; border-left:2px solid #D4A24E; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; color:#1c1c1e; letter-spacing:.02em; }
@media (max-width:680px) {
  .wes-day-timeline::before { display:none; }
  .wes-day-step { grid-template-columns:1fr; gap:8px; padding-bottom:32px; }
  .wes-day-time { text-align:left; padding-top:0; }
  .wes-day-hour { font-size:14px; }
  .wes-day-marker { display:none; }
}

/* =============== For Professionals â€” flagship showroom B2B showcase =============== */
.wes-pro-section { background:#f4ede0; position:relative; overflow:hidden; }
.wes-pro-section::before { content:''; position:absolute; top:0; right:0; width:50%; height:60%; background:radial-gradient(closest-side, rgba(212,162,78,.10) 0%, transparent 70%); pointer-events:none; }

/* Hero band with photo + content */
.wes-pro-hero { display:grid; grid-template-columns:1.15fr 1fr; gap:0; min-height:560px; align-items:stretch; }
.wes-pro-hero-content { padding:clamp(56px,6vw,96px) clamp(40px,5vw,80px); display:flex; flex-direction:column; justify-content:center; position:relative; z-index:1; }
.wes-pro-hero-title { font-family:'Spectral',serif; font-size:clamp(34px,4.5vw,56px); font-weight:700; line-height:1.08; letter-spacing:-0.025em; color:#1c1c1e; margin:18px 0 22px; }
.wes-pro-hero-title em { font-style:italic; color:#8A6A20; }
.wes-pro-hero-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.65; color:#1c1c1e; margin:0 0 18px; max-width:54ch; }
.wes-pro-hero-sub { font-family:'Spectral',serif; font-style:italic; font-size:17px; line-height:1.5; color:#8A6A20; margin:0 0 32px; }
/* RULE #37: numbers must clear their bounding line with breathing room. */
.wes-pro-hero-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding:28px 0; border-top:1px solid rgba(28,26,31,.12); border-bottom:1px solid rgba(28,26,31,.12); max-width:560px; }
.wes-pro-hero-stats > div { padding:18px 16px 14px 0; border-right:1px solid rgba(28,26,31,.10); }
.wes-pro-hero-stats > div:last-child { border-right:0; padding-right:0; padding-left:16px; }
.wes-pro-hero-stats strong { display:block; font-family:'Spectral',serif; font-style:italic; font-size:clamp(22px,2.6vw,32px); font-weight:700; color:#8A6A20; line-height:1.1; margin-bottom:8px; padding-top:4px; }
.wes-pro-hero-stats span { display:block; font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.10em; color:#4a4540; text-transform:uppercase; font-weight:600; line-height:1.4; }
/* RULE #37: paired-with-copy photo treatment â€” image should *complement* the copy, not dominate it. */
.wes-pro-hero-image { position:relative; overflow:hidden; }
.wes-pro-hero-image img { width:100%; height:100%; object-fit:cover; display:block; min-height:440px; max-height:600px; }
.wes-pro-hero-image::before { content:''; position:absolute; inset:0; background:linear-gradient(105deg, rgba(244,237,224,.20) 0%, transparent 30%); pointer-events:none; }
.wes-pro-hero-badge { position:absolute; bottom:28px; right:28px; background:#fff; padding:16px 22px; border-radius:10px; box-shadow:var(--wes-shadow-xl); text-align:center; min-width:160px; }
.wes-pro-hero-badge-num { display:block; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.18em; color:#8A6A20; }
.wes-pro-hero-badge-year { display:block; font-family:'Spectral',serif; font-style:italic; font-size:40px; font-weight:700; color:#1c1c1e; line-height:1; margin:4px 0 6px; }
.wes-pro-hero-badge-label { display:block; font-family:'AR One Sans',sans-serif; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#4a4540; font-weight:600; }

/* Shared inner section helpers */
.wes-pro-section-mark { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.20em; color:#8A6A20; text-transform:uppercase; margin-bottom:16px; text-align:center; }

/* Audiences band */
.wes-pro-audiences-section { padding:clamp(72px,8vw,112px) clamp(24px,4vw,48px); max-width:1400px; margin:0 auto; }
.wes-pro-audiences-title { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,44px); font-weight:700; line-height:1.15; letter-spacing:-0.02em; color:#1c1c1e; text-align:center; margin:0 auto 56px; max-width:680px; }
.wes-pro-audiences-title em { font-style:italic; color:#8A6A20; }
.wes-pro-audiences-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.wes-pro-card { background:#fff; border-radius:12px; padding:36px 36px 32px; box-shadow:var(--wes-shadow-md); border:1px solid rgba(28,26,31,.06); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; position:relative; overflow:hidden; }
.wes-pro-card::before { content:''; position:absolute; top:0; left:0; width:4px; height:0; background:#D4A24E; transition:height .35s ease; }
.wes-pro-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); border-color:rgba(28,26,31,.10); }
.wes-pro-card:hover::before { height:100%; }
.wes-pro-card-head { display:flex; gap:18px; align-items:flex-start; margin-bottom:18px; }
.wes-pro-card-icon { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:rgba(212,162,78,.12); color:#8A6A20; flex-shrink:0; transition:all .25s ease; }
.wes-pro-card:hover .wes-pro-card-icon { background:#D4A24E; color:#1a1d21; transform:rotate(-5deg); }
.wes-pro-card-tag { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:4px; }
.wes-pro-card-role { font-family:'Spectral',serif; font-size:28px; font-weight:700; line-height:1.1; color:#1c1c1e; margin:0; letter-spacing:-0.015em; }
.wes-pro-card-pitch { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; margin:0 0 20px; }
.wes-pro-card-services { list-style:none; padding:0; margin:0 0 24px; }
.wes-pro-card-services li { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.6; color:#1c1c1e; padding:6px 0 6px 22px; position:relative; border-bottom:1px solid rgba(28,26,31,.06); }
.wes-pro-card-services li:last-child { border-bottom:0; }
.wes-pro-card-services li::before { content:''; position:absolute; left:0; top:13px; width:10px; height:10px; border:2px solid #D4A24E; border-radius:50%; }
.wes-pro-card-cta { display:inline-flex; align-items:center; gap:6px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:#1c1c1e; text-decoration:none; padding-top:18px; border-top:1px solid rgba(28,26,31,.08); transition:color .2s ease; }
.wes-pro-card-cta:hover { color:#8A6A20; gap:10px; }

/* Services strip */
.wes-pro-services-section { background:#1c1c1e; color:#fff; padding:clamp(72px,8vw,112px) clamp(24px,4vw,48px); position:relative; overflow:hidden; }
.wes-pro-services-section::before { content:''; position:absolute; bottom:-30%; left:-10%; width:50%; height:80%; background:radial-gradient(closest-side, rgba(212,162,78,.10) 0%, transparent 70%); pointer-events:none; }
.wes-pro-services-head { text-align:center; max-width:720px; margin:0 auto 56px; position:relative; }
.wes-pro-services-head .wes-pro-section-mark { color:#D4A24E; }
.wes-pro-services-title { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,44px); font-weight:700; line-height:1.15; letter-spacing:-0.02em; color:#fff; margin:0; }
.wes-pro-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:1280px; margin:0 auto; position:relative; }
.wes-pro-service { display:flex; gap:18px; align-items:flex-start; padding:24px 24px 24px 0; border-right:1px solid rgba(255,255,255,.08); }
.wes-pro-service:nth-child(3n) { border-right:0; }
.wes-pro-service-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:rgba(212,162,78,.16); color:#D4A24E; flex-shrink:0; }

/* =============== Home: For-Pros teaser (Rule #37 â€” brief, paired, linked) =============== */
.wes-pros-teaser { background:linear-gradient(180deg, #fbf6ec 0%, #faf3e6 100%); padding:clamp(64px,8vw,96px) 24px; position:relative; }
.wes-pros-teaser-inner { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(40px,5vw,72px); align-items:center; }
.wes-pros-teaser-copy { display:flex; flex-direction:column; }
.wes-pros-teaser-title { font-family:'Spectral',serif; font-size:clamp(30px,3.8vw,46px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:14px 0 18px; }
.wes-pros-teaser-title em { font-style:italic; color:#8A6A20; }
.wes-pros-teaser-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.65; color:#1c1c1e; margin:0 0 22px; max-width:54ch; }
.wes-pros-teaser-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.wes-pros-teaser-chip { background:#fff; border:1px solid rgba(28,26,31,.10); border-radius:999px; padding:7px 14px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.04em; color:#8A6A20; box-shadow:var(--wes-shadow-sm); }
.wes-pros-teaser-actions { display:flex; gap:14px; flex-wrap:wrap; }
.wes-pros-teaser-photo { position:relative; margin:0; border-radius:14px; overflow:hidden; box-shadow:var(--wes-shadow-2xl); aspect-ratio:4/3; max-width:520px; justify-self:end; }
.wes-pros-teaser-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.wes-pros-teaser-photo figcaption { position:absolute; left:18px; bottom:18px; background:rgba(255,255,255,.95); padding:8px 14px; border-radius:8px; font-family:'AR One Sans',sans-serif; font-size:12px; color:#1c1c1e; box-shadow:var(--wes-shadow-md); backdrop-filter:blur(6px); }
.wes-pros-teaser-photo figcaption strong { color:#8A6A20; font-weight:800; }
@media (max-width:820px) {
  .wes-pros-teaser-inner { grid-template-columns:1fr; gap:32px; }
  .wes-pros-teaser-photo { justify-self:stretch; max-width:none; }
}

/* =============== Home: Pro Favorites horizontal rail =============== */
.wes-pf-section { background:#fff; padding:clamp(64px,7vw,96px) 0; position:relative; }
.wes-pf-inner { max-width:1480px; margin:0 auto; padding:0 24px; }
.wes-pf-head { text-align:center; margin-bottom:36px; max-width:780px; margin-left:auto; margin-right:auto; }
.wes-pf-title { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:14px 0 12px; }
.wes-pf-title em { font-style:italic; color:#8A6A20; }
.wes-pf-lede { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.6; color:#4a4540; margin:0; }
.wes-pf-rail-wrap { position:relative; margin:0 -8px; }
.wes-pf-rail { display:flex; gap:18px; overflow-x:auto; scroll-behavior:smooth; padding:12px 8px 24px; scrollbar-width:thin; }
.wes-pf-rail::-webkit-scrollbar { height:6px; }
.wes-pf-rail::-webkit-scrollbar-track { background:rgba(28,26,31,.05); border-radius:3px; }
.wes-pf-rail::-webkit-scrollbar-thumb { background:#D4A24E; border-radius:3px; }
.wes-pf-card { flex:0 0 240px; display:flex; flex-direction:column; background:#fff; border-radius:12px; box-shadow:var(--wes-shadow-md); text-decoration:none; color:inherit; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.wes-pf-card:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-xl); }
.wes-pf-card-img { aspect-ratio:1/1; background-size:contain; background-position:center; background-repeat:no-repeat; background-color:#fbf6ec; }
.wes-pf-card-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.wes-pf-card-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; }
.wes-pf-card-name { font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:600; line-height:1.3; color:#1c1c1e; flex:1; }
.wes-pf-card-foot { display:flex; justify-content:space-between; align-items:baseline; margin-top:8px; }
.wes-pf-card-price { font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:700; color:#8A6A20; }
.wes-pf-card-go { font-family:'AR One Sans',sans-serif; color:#8A6A20; font-weight:700; transition:transform .2s ease; }
.wes-pf-card:hover .wes-pf-card-go { transform:translateX(4px); }
.wes-pf-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; background:#fff; border:1px solid rgba(28,26,31,.08); color:#1c1c1e; cursor:pointer; font-size:24px; line-height:1; box-shadow:var(--wes-shadow-md); transition:all .2s ease; z-index:2; }
.wes-pf-nav:hover { background:#D4A24E; color:#fff; border-color:#D4A24E; transform:translateY(-50%) scale(1.08); }
.wes-pf-nav-prev { left:-8px; }
.wes-pf-nav-next { right:-8px; }
.wes-pf-foot { display:flex; justify-content:center; align-items:center; gap:32px; margin-top:24px; flex-wrap:wrap; }
.wes-pf-foot-link { font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.04em; color:#8A6A20; text-decoration:none; }
.wes-pf-foot-link:hover { color:#1c1c1e; }

/* =============== Home: Showroom Spotlight 3-tile editorial =============== */
.wes-ssp-section { background:#fbf6ec; padding:clamp(72px,8vw,104px) 24px; }
.wes-ssp-inner { max-width:1340px; margin:0 auto; }
.wes-ssp-head { text-align:center; margin-bottom:48px; max-width:780px; margin-left:auto; margin-right:auto; }
.wes-ssp-title { font-family:'Spectral',serif; font-size:clamp(30px,3.6vw,44px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:14px 0 12px; }
.wes-ssp-title em { font-style:italic; color:#8A6A20; }
.wes-ssp-lede { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.6; color:#4a4540; margin:0; }
.wes-ssp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.wes-ssp-tile { display:flex; flex-direction:column; gap:14px; }
.wes-ssp-tile-link { display:flex; flex-direction:column; background:#fff; border-radius:14px; overflow:hidden; box-shadow:var(--wes-shadow-lg); text-decoration:none; color:inherit; transition:all .25s ease; }
.wes-ssp-tile-link:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-2xl); }
.wes-ssp-tile-img { aspect-ratio:4/3; background-size:cover; background-position:center; background-color:#fbf6ec; position:relative; }
.wes-ssp-tile-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.32) 100%); }
.wes-ssp-tile-cat { position:absolute; top:16px; left:16px; background:rgba(255,255,255,.95); padding:6px 12px; border-radius:6px; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; box-shadow:var(--wes-shadow-sm); }
.wes-ssp-tile-body { padding:22px 24px 26px; display:flex; flex-direction:column; gap:14px; }
.wes-ssp-tile-blurb { font-family:'Spectral',serif; font-style:italic; font-size:16px; line-height:1.5; color:#1c1c1e; margin:0; padding:0 0 12px; border-bottom:1px solid rgba(28,26,31,.08); }
.wes-ssp-tile-meta { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; }
.wes-ssp-tile-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:4px; }
.wes-ssp-tile-name { font-family:'AR One Sans',sans-serif; font-size:13.5px; font-weight:600; line-height:1.35; color:#1c1c1e; }
.wes-ssp-tile-price { font-family:'Spectral',serif; font-style:italic; font-size:22px; font-weight:700; color:#8A6A20; line-height:1; }
.wes-ssp-tile-cat-link { align-self:flex-start; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.04em; color:#8A6A20; text-decoration:none; padding:6px 0; }
.wes-ssp-tile-cat-link:hover { text-decoration:underline; }
@media (max-width:900px) {
  .wes-ssp-grid { grid-template-columns:1fr; }
}

/* =============== /for-pros/ landing page sections (Rule #34 premium) =============== */
.wes-fp-section { padding:clamp(72px,8vw,104px) 24px; background:#f4ede0; }
.wes-fp-section--dark { background:#23222a; color:#fff; }
.wes-fp-section--dark .wes-section-mark { color:#D4A24E; }
.wes-fp-inner { max-width:1240px; margin:0 auto; }
.wes-fp-head { text-align:center; margin-bottom:48px; max-width:820px; margin-left:auto; margin-right:auto; }
.wes-fp-head--dark { color:#fff; }
.wes-fp-title { font-family:'Spectral',serif; font-size:clamp(30px,3.6vw,44px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:inherit; margin:14px 0 12px; }
.wes-fp-title em { font-style:italic; color:#8A6A20; }
.wes-fp-section--dark .wes-fp-title { color:#fff; }
.wes-fp-section--dark .wes-fp-title em { color:#D4A24E; }

/* Detail bands (Showing + Sample Loans) */
.wes-fp-detail { padding:clamp(72px,8vw,112px) 24px; background:#fff; }
.wes-fp-detail-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(40px,5vw,80px); align-items:center; }
.wes-fp-detail--reverse .wes-fp-detail-inner { grid-template-columns:1fr 1.1fr; }
.wes-fp-detail-copy { display:flex; flex-direction:column; }
.wes-fp-detail-title { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:14px 0 18px; }
.wes-fp-detail-title em { font-style:italic; color:#8A6A20; }
.wes-fp-detail-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.65; color:#1c1c1e; margin:0 0 22px; max-width:54ch; }
.wes-fp-detail-list { list-style:none; padding:0; margin:0 0 28px; display:flex; flex-direction:column; gap:14px; }
.wes-fp-detail-list li { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.55; color:#4a4540; padding-left:28px; position:relative; }
.wes-fp-detail-list li::before { content:''; position:absolute; left:0; top:10px; width:14px; height:2px; background:#D4A24E; }
.wes-fp-detail-list li strong { color:#1c1c1e; }
.wes-fp-detail-photo { margin:0; border-radius:14px; overflow:hidden; box-shadow:var(--wes-shadow-2xl); aspect-ratio:5/4; }
.wes-fp-detail-photo img { width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:900px) {
  .wes-fp-detail-inner, .wes-fp-detail--reverse .wes-fp-detail-inner { grid-template-columns:1fr; gap:32px; }
}

/* Voices (testimonials) grid */
.wes-fp-voices { padding:clamp(72px,8vw,104px) 24px; background:#fbf6ec; }
.wes-fp-voices-inner { max-width:1240px; margin:0 auto; }
.wes-fp-voices-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.wes-fp-test { position:relative; background:#fff; border-radius:14px; padding:36px 28px 28px; box-shadow:var(--wes-shadow-lg); margin:0; display:flex; flex-direction:column; gap:18px; transition:all .25s ease; }
.wes-fp-test:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-2xl); }
.wes-fp-test-mark { position:absolute; top:-8px; left:24px; background:#D4A24E; color:#fff; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Spectral',serif; font-style:italic; font-size:32px; font-weight:700; line-height:1; padding-bottom:6px; box-shadow:var(--wes-shadow-md); }
.wes-fp-test blockquote { margin:14px 0 0; font-family:'Spectral',serif; font-style:italic; font-size:16px; line-height:1.55; color:#1c1c1e; }
.wes-fp-test figcaption { display:flex; flex-direction:column; gap:2px; padding-top:14px; border-top:1px solid rgba(28,26,31,.08); }
.wes-fp-test figcaption strong { font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; color:#1c1c1e; }
.wes-fp-test figcaption span { font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#8A6A20; font-weight:600; }
@media (max-width:900px) {
  .wes-fp-voices-grid { grid-template-columns:1fr; }
}

/* FAQ accordion */
.wes-fp-faqs { padding:clamp(72px,8vw,104px) 24px; background:#fff; }
.wes-fp-faqs-inner { max-width:920px; margin:0 auto; }
.wes-fp-faqs-list { display:flex; flex-direction:column; gap:12px; }
.wes-fp-faq { background:#fff; border:1px solid rgba(28,26,31,.10); border-radius:10px; padding:0; overflow:hidden; transition:all .2s ease; box-shadow:var(--wes-shadow-sm); }
.wes-fp-faq[open] { box-shadow:var(--wes-shadow-md); border-color:#D4A24E; }
.wes-fp-faq summary { list-style:none; cursor:pointer; padding:20px 24px; font-family:'AR One Sans',sans-serif; font-size:16px; font-weight:700; color:#1c1c1e; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.wes-fp-faq summary::-webkit-details-marker { display:none; }
.wes-fp-faq summary::after { content:'+'; flex-shrink:0; width:28px; height:28px; border-radius:50%; background:rgba(212,162,78,.16); color:#8A6A20; display:inline-flex; align-items:center; justify-content:center; font-weight:300; font-size:22px; line-height:1; transition:transform .2s ease, background .2s ease; }
.wes-fp-faq[open] summary::after { content:'âˆ’'; background:#D4A24E; color:#fff; }
.wes-fp-faq p { padding:0 24px 22px; margin:0; font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; }

/* Apply band */
.wes-fp-apply { background:linear-gradient(135deg, #23222a 0%, #2a2731 100%); padding:clamp(72px,8vw,96px) 24px; color:#fff; }
.wes-fp-apply-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; }
.wes-fp-apply-copy { }
.wes-fp-apply-copy .wes-section-mark { color:#D4A24E; }
.wes-fp-apply-title { font-family:'Spectral',serif; font-size:clamp(30px,3.6vw,44px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#fff; margin:14px 0 16px; }
.wes-fp-apply-title em { font-style:italic; color:#D4A24E; }
.wes-fp-apply-lede { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.78); margin:0; max-width:50ch; }
.wes-fp-apply-actions { display:flex; flex-direction:column; gap:18px; align-items:flex-start; }
.wes-fp-apply-cta { }
.wes-fp-apply-note { font-family:'AR One Sans',sans-serif; font-size:13.5px; line-height:1.55; color:rgba(255,255,255,.65); margin:0; }
.wes-fp-apply-note a { color:#D4A24E; text-decoration:none; font-weight:700; }
.wes-fp-apply-note a:hover { text-decoration:underline; }
@media (max-width:820px) {
  .wes-fp-apply-inner { grid-template-columns:1fr; gap:28px; }
}
.wes-pro-service-name { font-family:'Spectral',serif; font-size:17px; font-weight:600; line-height:1.25; color:#fff; margin:0 0 8px; letter-spacing:-0.01em; }
.wes-pro-service-desc { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.6; color:rgba(255,255,255,.7); margin:0; }

/* Testimonial band */
.wes-pro-testimonial { background:#f4ede0; padding:clamp(80px,9vw,120px) clamp(24px,4vw,48px); text-align:center; position:relative; }
.wes-pro-testimonial-mark { font-family:'Spectral',serif; font-size:160px; font-weight:700; color:#D4A24E; opacity:.18; line-height:0.5; height:80px; }
.wes-pro-testimonial blockquote { max-width:820px; margin:0 auto; padding:0; border:0 !important; }
.wes-pro-testimonial blockquote p { font-family:'Spectral',serif; font-style:italic; font-size:clamp(20px,2.4vw,32px); font-weight:500; line-height:1.4; color:#1c1c1e; margin:0 0 28px; letter-spacing:-0.01em; }
.wes-pro-testimonial footer { font-family:'AR One Sans',sans-serif; font-size:14px; color:#4a4540; }
.wes-pro-testimonial cite { font-style:normal; }
.wes-pro-testimonial-since { display:block; margin-top:4px; font-size:12px; letter-spacing:.10em; text-transform:uppercase; color:#8A6A20; font-weight:600; }

/* Dual CTA */
.wes-pro-cta { background:#1c1c1e; color:#fff; padding:clamp(72px,8vw,112px) clamp(24px,4vw,48px); position:relative; overflow:hidden; }
.wes-pro-cta::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:120%; height:140%; background:radial-gradient(closest-side, rgba(212,162,78,.14) 0%, transparent 60%); pointer-events:none; }
.wes-pro-cta-inner { position:relative; max-width:760px; margin:0 auto; text-align:center; }
.wes-pro-cta-headline { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#fff; margin:0 0 16px; }
.wes-pro-cta-sub { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.7); margin:0 0 36px; }
.wes-pro-cta-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

@media (max-width:1080px) {
  .wes-pro-services-grid { grid-template-columns:repeat(2,1fr); }
  .wes-pro-service:nth-child(3n) { border-right:1px solid rgba(255,255,255,.08); }
  .wes-pro-service:nth-child(2n) { border-right:0; }
}
@media (max-width:880px) {
  .wes-pro-hero { grid-template-columns:1fr; min-height:auto; }
  .wes-pro-hero-image { min-height:280px; max-height:380px; }
  .wes-pro-hero-image img { min-height:280px; }
  .wes-pro-hero-badge { bottom:20px; right:20px; padding:14px 18px; min-width:140px; }
  .wes-pro-hero-badge-year { font-size:30px; }
  .wes-pro-audiences-grid { grid-template-columns:1fr; }
  .wes-pro-services-grid { grid-template-columns:1fr; gap:0; }
  .wes-pro-service { border-right:0 !important; border-bottom:1px solid rgba(255,255,255,.08); padding:24px 0; }
  .wes-pro-service:last-child { border-bottom:0; }
}

/* =============== LIGHTING â€” Find Your Fixture wizard =============== */
.wes-finder-section { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-finder-inner { max-width:1100px; margin:0 auto; }
.wes-finder-head { text-align:center; max-width:680px; margin:0 auto 40px; }
.wes-finder-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-finder-title em { font-style:italic; color:#8A6A20; }
.wes-finder-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-finder-wizard { background:#fbf6ec; border:1px solid rgba(28,26,31,.06); border-radius:14px; padding:clamp(32px,4vw,48px); box-shadow:var(--wes-shadow-md); }
.wes-finder-progress { display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:40px; }
.wes-finder-dot { width:36px; height:36px; border-radius:50%; background:#fff; border:2px solid rgba(28,26,31,.15); font-family:'Spectral',serif; font-style:italic; font-size:14px; font-weight:700; color:#4a4540; cursor:default; transition:all .25s ease; }
.wes-finder-dot.is-active { background:#1c1c1e; border-color:#1c1c1e; color:#fff; transform:scale(1.1); box-shadow:var(--wes-shadow-md); }
.wes-finder-dot.is-done { background:#D4A24E; border-color:#D4A24E; color:#1a1d21; }
.wes-finder-bar { width:28px; height:2px; background:rgba(28,26,31,.12); }
.wes-finder-step { display:none; animation:wes-finder-fade .3s ease; }
.wes-finder-step.is-active { display:block; }
@keyframes wes-finder-fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.wes-finder-step-title { font-family:'Spectral',serif; font-size:clamp(22px,2.5vw,32px); font-weight:700; line-height:1.15; color:#1c1c1e; margin:0 0 28px; text-align:center; }
.wes-finder-options { display:flex; flex-direction:column; gap:12px; max-width:600px; margin:0 auto; }
.wes-finder-options--cols { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; max-width:600px; }
.wes-finder-opt { display:grid; grid-template-columns:auto 1fr; gap:0 16px; align-items:center; background:#fff; border:1px solid rgba(28,26,31,.10); border-radius:8px; padding:18px 22px; text-align:left; cursor:pointer; transition:all .2s ease; box-shadow:var(--wes-shadow-md); }
.wes-finder-opt:hover { border-color:#D4A24E; transform:translateX(4px); box-shadow:var(--wes-shadow-md); }
.wes-finder-opt-num { font-family:'Spectral',serif; font-style:italic; font-size:22px; font-weight:700; color:#8A6A20; grid-row:span 2; }
.wes-finder-opt-label { font-family:'Spectral',serif; font-size:18px; font-weight:600; color:#1c1c1e; line-height:1.2; }
.wes-finder-opt-hint { font-family:'AR One Sans',sans-serif; font-size:13px; color:#4a4540; line-height:1.4; }
.wes-finder-options--cols .wes-finder-opt { grid-template-columns:1fr; text-align:center; padding:24px 20px; }
.wes-finder-options--cols .wes-finder-opt-label { text-align:center; }
.wes-finder-back { display:block; margin:24px auto 0; background:transparent; border:0; color:#4a4540; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; cursor:pointer; padding:8px 16px; }
.wes-finder-back:hover { color:#1c1c1e; }
.wes-finder-summary { text-align:center; font-family:'AR One Sans',sans-serif; font-size:14px; color:#4a4540; margin:0 0 24px; }
.wes-finder-results { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:32px; }
.wes-finder-card { background:#fff; border-radius:8px; overflow:hidden; box-shadow:var(--wes-shadow-md); text-decoration:none; color:inherit; transition:all .2s ease; }
.wes-finder-card:hover { transform:translateY(-2px); box-shadow:var(--wes-shadow-lg); }
.wes-finder-card-img { aspect-ratio:1/1; background-size:cover; background-position:center; background-color:#fbf6ec; }
.wes-finder-card-body { padding:14px 16px 16px; }
.wes-finder-card-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:6px; }
.wes-finder-card-name { font-family:'Spectral',serif; font-size:14px; font-weight:600; color:#1c1c1e; line-height:1.25; margin-bottom:8px; min-height:36px; }
.wes-finder-card-price { font-family:'Spectral',serif; font-size:15px; font-weight:700; color:#1c1c1e; }
.wes-finder-empty { text-align:center; font-family:'AR One Sans',sans-serif; font-style:italic; color:#4a4540; padding:32px; background:#fff; border-radius:8px; }
.wes-finder-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
@media (max-width:760px) {
  .wes-finder-results { grid-template-columns:repeat(2,1fr); }
  .wes-finder-options--cols { grid-template-columns:1fr; }
}

/* =============== ELECTRICAL â€” Spec by Trade tabbed selector =============== */
.wes-trade-section { background:#fbf6ec; padding:clamp(72px,8vw,120px) 24px; }
.wes-trade-inner { max-width:1280px; margin:0 auto; }
.wes-trade-head { text-align:center; max-width:760px; margin:0 auto 40px; }
.wes-trade-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-trade-title em { font-style:italic; color:#8A6A20; }
.wes-trade-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-trade-tabs { display:flex; justify-content:center; gap:0; padding:6px; background:#fff; border-radius:999px; max-width:fit-content; margin:0 auto 32px; box-shadow:var(--wes-shadow-md); flex-wrap:wrap; }
.wes-trade-tab { background:transparent; border:0; color:#4a4540; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:11px 22px; border-radius:999px; cursor:pointer; transition:all .2s ease; white-space:nowrap; }
@media (max-width:480px) {
  .wes-trade-tabs { border-radius:8px; flex-direction:column; max-width:none; width:100%; }
  .wes-trade-tab { padding:12px 16px; width:100%; }
}
.wes-trade-tab:hover { color:#1c1c1e; }
.wes-trade-tab.is-active { background:#1c1c1e; color:#fff; box-shadow:var(--wes-shadow-md); }
.wes-trade-pane { display:none; animation:wes-finder-fade .3s ease; }
.wes-trade-pane.is-active { display:block; }
.wes-trade-blurb { font-family:'Spectral',serif; font-style:italic; font-size:18px; line-height:1.6; color:#1c1c1e; text-align:center; max-width:720px; margin:0 auto 36px; }
.wes-trade-specs { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; max-width:900px; margin:0 auto 48px; }
.wes-trade-spec { background:#fff; padding:18px 22px; border-radius:8px; border-left:3px solid #D4A24E; box-shadow:var(--wes-shadow-sm); }
.wes-trade-spec-label { display:block; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:4px; }
.wes-trade-spec-value { display:block; font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.55; color:#1c1c1e; }
.wes-trade-products-head { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; text-align:center; margin-bottom:20px; }
.wes-trade-products { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.wes-trade-prod { background:#fff; border-radius:8px; overflow:hidden; box-shadow:var(--wes-shadow-md); text-decoration:none; color:inherit; transition:all .2s ease; }
.wes-trade-prod:hover { transform:translateY(-2px); box-shadow:var(--wes-shadow-lg); }
.wes-trade-prod-img { aspect-ratio:1/1; background-size:cover; background-position:center; }
.wes-trade-prod-body { padding:14px 16px; }
.wes-trade-prod-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:4px; }
.wes-trade-prod-name { font-family:'Spectral',serif; font-size:13px; font-weight:600; color:#1c1c1e; line-height:1.3; margin-bottom:6px; min-height:34px; }
.wes-trade-prod-price { font-family:'Spectral',serif; font-size:14px; font-weight:700; color:#1c1c1e; }
@media (max-width:880px) {
  .wes-trade-specs { grid-template-columns:1fr; }
  .wes-trade-products { grid-template-columns:repeat(2,1fr); }
}

/* =============== DECOR â€” Finish Palette swatch wall =============== */
.wes-palette-section { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-palette-inner { max-width:1280px; margin:0 auto; }
.wes-palette-head { text-align:center; max-width:680px; margin:0 auto 48px; }
.wes-palette-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-palette-title em { font-style:italic; color:#8A6A20; }
.wes-palette-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-palette-wall { display:grid; grid-template-columns:280px 1fr; gap:48px; background:#fbf6ec; padding:clamp(32px,4vw,48px); border-radius:14px; box-shadow:var(--wes-shadow-md); }
.wes-palette-swatches { display:flex; flex-direction:column; gap:8px; }
.wes-palette-swatch { display:flex; align-items:center; gap:14px; background:#fff; border:1px solid rgba(28,26,31,.10); border-radius:8px; padding:12px 16px; cursor:pointer; transition:all .2s ease; text-align:left; box-shadow:var(--wes-shadow-md); }
.wes-palette-swatch:hover { border-color:#D4A24E; transform:translateX(4px); }
.wes-palette-swatch.is-active { background:#1c1c1e; border-color:#1c1c1e; box-shadow:var(--wes-shadow-md); }
.wes-palette-swatch.is-active .wes-palette-name { color:#fff; }
.wes-palette-chip { width:32px; height:32px; border-radius:50%; border:2px solid; box-shadow:inset 0 2px 4px rgba(0,0,0,.2); flex-shrink:0; }
.wes-palette-name { font-family:'Spectral',serif; font-size:15px; font-weight:600; color:#1c1c1e; transition:color .2s ease; }
.wes-palette-detail { display:flex; flex-direction:column; gap:24px; }
.wes-palette-blurb { font-family:'Spectral',serif; font-style:italic; font-size:17px; line-height:1.6; color:#1c1c1e; margin:0; padding:18px 22px; background:#fff; border-left:3px solid #D4A24E; border-radius:0 8px 8px 0; }
.wes-palette-products { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.wes-palette-card { background:#fff; border-radius:8px; overflow:hidden; box-shadow:var(--wes-shadow-md); text-decoration:none; color:inherit; transition:all .2s ease; }
.wes-palette-card:hover { transform:translateY(-2px); box-shadow:var(--wes-shadow-lg); }
.wes-palette-card-img { aspect-ratio:1/1; background-size:cover; background-position:center; background-color:#fbf6ec; }
.wes-palette-card-body { padding:12px 14px 14px; }
.wes-palette-card-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:4px; }
.wes-palette-card-name { font-family:'Spectral',serif; font-size:13px; font-weight:600; color:#1c1c1e; line-height:1.3; margin-bottom:6px; }
.wes-palette-card-price { font-family:'Spectral',serif; font-size:14px; font-weight:700; color:#1c1c1e; }
.wes-palette-empty { font-family:'AR One Sans',sans-serif; font-style:italic; color:#4a4540; padding:32px; text-align:center; background:#fff; border-radius:8px; }
@media (max-width:880px) {
  .wes-palette-wall { grid-template-columns:1fr; gap:24px; }
  .wes-palette-swatches { flex-direction:row; flex-wrap:wrap; }
  .wes-palette-swatch { flex:1 1 calc(50% - 4px); }
  .wes-palette-products { grid-template-columns:repeat(2,1fr); }
}

/* =============== FLAGSHIP-ONLY (Johnson City) supplementary sections =============== */
/* Photo essay â€” masonry-feel grid */
.wes-flag-essay { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-flag-essay-inner { max-width:1400px; margin:0 auto; }
.wes-flag-essay-head { text-align:center; max-width:680px; margin:0 auto 48px; }
.wes-flag-essay-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,52px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-flag-essay-title em { font-style:italic; color:#8A6A20; }
.wes-flag-essay-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-flag-essay-grid { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:auto auto; gap:16px; }
.wes-flag-essay-cell { position:relative; margin:0; overflow:hidden; border-radius:12px; box-shadow:var(--wes-shadow-md); transition:transform .4s ease, box-shadow .4s ease; }
.wes-flag-essay-cell:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-xl); }
.wes-flag-essay-cell--tall { grid-row:span 2; }
.wes-flag-essay-cell--wide { grid-column:span 2; }
.wes-flag-essay-cell img { width:100%; height:100%; object-fit:cover; display:block; min-height:200px; transition:transform .6s ease; }
.wes-flag-essay-cell:hover img { transform:scale(1.04); }
.wes-flag-essay-cell figcaption { position:absolute; bottom:0; left:0; right:0; padding:14px 18px; background:linear-gradient(0deg, rgba(28,26,31,.85) 0%, transparent 100%); color:#fff; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.04em; display:flex; align-items:center; gap:10px; }
.wes-flag-essay-cell figcaption span { font-family:'Spectral',serif; font-style:italic; font-size:18px; color:#D4A24E; }
@media (max-width:880px) {
  .wes-flag-essay-grid { grid-template-columns:1fr 1fr; }
  .wes-flag-essay-cell--tall, .wes-flag-essay-cell--wide { grid-row:auto; grid-column:auto; }
}

/* Why Johnson City â€” context + stats */
.wes-flag-context { background:#fbf6ec; padding:clamp(72px,8vw,120px) 24px; }
.wes-flag-context-inner { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(40px,5vw,80px); align-items:center; }
.wes-flag-context-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,52px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#1c1c1e; margin:14px 0 24px; }
.wes-flag-context-title em { font-style:italic; color:#8A6A20; }
.wes-flag-context-body { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.7; color:#1c1c1e; margin:0 0 18px; max-width:60ch; }
.wes-flag-context-stats { list-style:none; padding:32px 28px; margin:0; background:#fff; border-radius:12px; box-shadow:var(--wes-shadow-md); display:flex; flex-direction:column; gap:24px; }
.wes-flag-context-stats li { display:flex; flex-direction:column; padding-bottom:24px; border-bottom:1px solid rgba(28,26,31,.08); }
.wes-flag-context-stats li:last-child { border-bottom:0; padding-bottom:0; }
.wes-flag-context-stats strong { font-family:'Spectral',serif; font-style:italic; font-size:42px; font-weight:700; color:#8A6A20; line-height:1; margin-bottom:6px; }
.wes-flag-context-stats span { font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#4a4540; font-weight:600; }
@media (max-width:880px) { .wes-flag-context-inner { grid-template-columns:1fr; } }

/* Consult booking â€” single-card focal piece */
.wes-flag-consult { background:#1c1c1e; color:#fff; padding:clamp(72px,8vw,120px) 24px; position:relative; overflow:hidden; }
.wes-flag-consult::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:80%; height:140%; background:radial-gradient(closest-side, rgba(212,162,78,.12) 0%, transparent 70%); pointer-events:none; }
.wes-flag-consult-inner { max-width:880px; margin:0 auto; position:relative; }
.wes-flag-consult-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:14px; padding:clamp(40px,5vw,64px); text-align:center; backdrop-filter:blur(8px); }
.wes-flag-consult-card .wes-section-mark { color:#D4A24E; }
.wes-flag-consult-title { font-family:'Spectral',serif; font-size:clamp(32px,4.5vw,56px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#fff; margin:14px 0 18px; }
.wes-flag-consult-title em { font-style:italic; color:#D4A24E; }
.wes-flag-consult-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:rgba(255,255,255,.78); margin:0 0 36px; max-width:54ch; margin-left:auto; margin-right:auto; }
.wes-flag-consult-features { display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding:24px 0; border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10); margin-bottom:36px; }
.wes-flag-consult-feature { padding:8px 16px; border-right:1px solid rgba(255,255,255,.08); }
.wes-flag-consult-feature:last-child { border-right:0; }
.wes-flag-consult-feature strong { display:block; font-family:'Spectral',serif; font-style:italic; font-size:24px; font-weight:700; color:#D4A24E; line-height:1; margin-bottom:6px; }
.wes-flag-consult-feature span { display:block; font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.10em; text-transform:uppercase; color:rgba(255,255,255,.6); font-weight:600; }
.wes-flag-consult-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
@media (max-width:680px) {
  .wes-flag-consult-features { grid-template-columns:1fr; gap:16px 0; }
  .wes-flag-consult-feature { border-right:0; border-bottom:1px solid rgba(255,255,255,.08); padding-bottom:16px; }
  .wes-flag-consult-feature:last-child { border-bottom:0; }
}

/* Team grid */
.wes-flag-team { background:#fff; padding:clamp(72px,8vw,120px) 24px; }
.wes-flag-team-inner { max-width:1280px; margin:0 auto; }
.wes-flag-team-head { text-align:center; max-width:720px; margin:0 auto 48px; }
.wes-flag-team-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-flag-team-title em { font-style:italic; color:#8A6A20; }
.wes-flag-team-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-flag-team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.wes-flag-team-card { background:#fbf6ec; padding:28px 26px; border-radius:10px; border-left:3px solid #D4A24E; box-shadow:var(--wes-shadow-md); transition:transform .25s ease, box-shadow .25s ease; }
.wes-flag-team-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
.wes-flag-team-role { font-family:'Spectral',serif; font-size:20px; font-weight:700; color:#1c1c1e; margin-bottom:6px; letter-spacing:-0.01em; }
.wes-flag-team-bench { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:14px; }
.wes-flag-team-text { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.6; color:#4a4540; margin:0; }
@media (max-width:980px) { .wes-flag-team-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .wes-flag-team-grid { grid-template-columns:1fr; } }

/* Inventory spotlight â€” 4 product picks */
.wes-flag-inventory { background:#fbf6ec; padding:clamp(72px,8vw,120px) 24px; }
.wes-flag-inventory-inner { max-width:1280px; margin:0 auto; }
.wes-flag-inventory-head { text-align:center; max-width:680px; margin:0 auto 48px; }
.wes-flag-inventory-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-flag-inventory-title em { font-style:italic; color:#8A6A20; }
.wes-flag-inventory-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-flag-inventory-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:36px; }
.wes-flag-pick { background:#fff; border-radius:10px; overflow:hidden; box-shadow:var(--wes-shadow-md); text-decoration:none; color:inherit; transition:all .25s ease; }
.wes-flag-pick:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
.wes-flag-pick-img { aspect-ratio:1/1; background-size:cover; background-position:center; }
.wes-flag-pick-body { padding:16px 18px 18px; }
.wes-flag-pick-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8A6A20; margin-bottom:6px; }
.wes-flag-pick-name { font-family:'Spectral',serif; font-size:14px; font-weight:600; color:#1c1c1e; line-height:1.3; margin-bottom:8px; min-height:36px; }
.wes-flag-pick-price { font-family:'Spectral',serif; font-size:15px; font-weight:700; color:#1c1c1e; }
.wes-flag-inventory-actions { text-align:center; }
@media (max-width:760px) { .wes-flag-inventory-grid { grid-template-columns:repeat(2,1fr); } }

/* =============== ABOUT page â€” premium template (Rule #34) ===============
   Reveal animations Â· count-up stats Â· layered shadows Â· photo richness.
   This is the canonical About template for any future client site. */

/* Reveal-on-scroll baseline (driven by IntersectionObserver in _about_reveal_js) */
.wes-reveal { opacity:0; transform:translateY(20px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.wes-reveal.is-visible { opacity:1; transform:translateY(0); }
.wes-reveal-img { opacity:0; transform:scale(.95); transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.wes-reveal-img.is-visible { opacity:1; transform:scale(1); }

/* Immersive hero */
.wes-about-immersive { position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; background:#0e0d10; padding:clamp(80px,10vh,120px) 24px; }
.wes-about-immersive-bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.45; transform:scale(1.05); animation:wes-about-bg-pan 24s ease-in-out infinite alternate; }
@keyframes wes-about-bg-pan { from { transform:scale(1.05) translateX(-2%); } to { transform:scale(1.10) translateX(2%); } }
.wes-about-immersive-overlay { position:absolute; inset:0; background:radial-gradient(ellipse at center, transparent 0%, rgba(14,13,16,.65) 60%, rgba(14,13,16,.85) 100%); }
.wes-about-immersive-inner { position:relative; max-width:1080px; margin:0 auto; text-align:center; color:#fff; }
.wes-about-immersive-mark { font-family:'AR One Sans',sans-serif; font-size:12px; letter-spacing:.30em; text-transform:uppercase; color:#D4A24E; margin-bottom:36px; font-weight:600; }
.wes-about-immersive-title { font-family:'Spectral',serif; font-size:clamp(40px,7vw,88px); font-weight:700; line-height:1.05; letter-spacing:-0.025em; color:#fff; margin:0 0 32px; }
.wes-about-immersive-title span { display:block; }
.wes-about-immersive-em { color:#D4A24E; }
.wes-about-immersive-em em { font-style:italic; }
.wes-about-immersive-lede { font-family:'Spectral',serif; font-style:italic; font-size:clamp(18px,2vw,24px); line-height:1.5; color:rgba(255,255,255,.82); margin:0 auto 56px; max-width:60ch; }
.wes-about-immersive-scroll { display:inline-flex; flex-direction:column; align-items:center; gap:12px; font-family:'AR One Sans',sans-serif; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:600; }
.wes-about-scroll-line { display:inline-block; width:1px; height:32px; background:#D4A24E; position:relative; overflow:hidden; }
.wes-about-scroll-line::before { content:''; position:absolute; left:0; right:0; top:-100%; bottom:50%; background:rgba(255,255,255,.9); animation:wes-about-scroll-pulse 2s ease-in-out infinite; }
@keyframes wes-about-scroll-pulse { 0% { top:-100%; bottom:100%; } 100% { top:100%; bottom:-100%; } }

/* Origin story */
.wes-about-origin { background:#fff; padding:clamp(80px,10vw,140px) 24px; }
.wes-about-origin-inner { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,6vw,96px); align-items:center; }
.wes-about-origin-image { position:relative; }
.wes-about-origin-image img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:clamp(32px,4vw,48px); filter:drop-shadow(0 12px 24px rgba(28,26,31,0.18)) drop-shadow(0 32px 64px rgba(28,26,31,0.22)); }
.wes-about-origin-mark { position:absolute; bottom:-32px; right:-24px; background:#fff; padding:24px 32px; border-radius:50%; width:160px; height:160px; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:var(--wes-shadow-2xl); border:2px solid #D4A24E; }
.wes-about-origin-mark-num { font-family:'Spectral',serif; font-style:italic; font-size:42px; font-weight:700; color:#1c1c1e; line-height:1; }
.wes-about-origin-mark-label { font-family:'AR One Sans',sans-serif; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:#8A6A20; margin-top:6px; font-weight:700; }
.wes-about-origin-title { font-family:'Spectral',serif; font-size:clamp(36px,4.5vw,56px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#1c1c1e; margin:14px 0 28px; }
.wes-about-origin-title em { font-style:italic; color:#8A6A20; }
.wes-about-origin-body p { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.75; color:#1c1c1e; margin:0 0 20px; max-width:55ch; }
.wes-about-origin-body p em { font-style:italic; color:#8A6A20; font-weight:500; }
@media (max-width:980px) {
  .wes-about-origin-inner { grid-template-columns:1fr; gap:48px; }
  .wes-about-origin-mark { width:120px; height:120px; padding:18px 22px; right:8px; bottom:-24px; }
  .wes-about-origin-mark-num { font-size:32px; }
}

/* Values grid */
.wes-about-values { background:#fbf6ec; padding:clamp(80px,10vw,140px) 24px; }
.wes-about-values-inner { max-width:1400px; margin:0 auto; }
.wes-about-values-head { text-align:center; max-width:720px; margin:0 auto 64px; }
.wes-about-values-title { font-family:'Spectral',serif; font-size:clamp(36px,4.5vw,56px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#1c1c1e; margin:14px 0; }
.wes-about-values-title em { font-style:italic; color:#8A6A20; }
.wes-about-values-lede { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; margin:0; }
.wes-about-values-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.wes-about-value { position:relative; background:#fff; padding:48px 44px 40px; border-radius:12px; box-shadow:var(--wes-shadow-md); border:1px solid rgba(28,26,31,.04); transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s cubic-bezier(.2,.7,.2,1); overflow:hidden; }
.wes-about-value::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg, #D4A24E 0%, #B58A3D 100%); transform:scaleY(0); transform-origin:top; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.wes-about-value:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-xl); }
.wes-about-value:hover::before { transform:scaleY(1); }
.wes-about-value-corner { position:absolute; top:16px; right:16px; width:40px; height:40px; color:#D4A24E; opacity:.45; transition:opacity .25s ease, transform .25s ease; }
.wes-about-value:hover .wes-about-value-corner { opacity:1; transform:rotate(10deg); }
.wes-about-value-num { font-family:'Spectral',serif; font-style:italic; font-size:48px; font-weight:700; color:#D4A24E; line-height:1; margin-bottom:20px; opacity:.85; }
.wes-about-value-title { font-family:'Spectral',serif; font-size:28px; font-weight:700; line-height:1.15; color:#1c1c1e; margin:0 0 16px; letter-spacing:-0.015em; }
.wes-about-value-text { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.65; color:#4a4540; margin:0; }
@media (max-width:760px) { .wes-about-values-grid { grid-template-columns:1fr; } }

/* Numbers / count-up */
.wes-about-numbers { position:relative; background:#1c1c1e; color:#fff; padding:clamp(80px,10vw,140px) 24px; overflow:hidden; }
.wes-about-numbers-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 20% 30%, rgba(212,162,78,.10) 0%, transparent 60%), radial-gradient(ellipse at 80% 70%, rgba(212,162,78,.08) 0%, transparent 60%); pointer-events:none; }
.wes-about-numbers-inner { position:relative; max-width:1280px; margin:0 auto; }
.wes-about-numbers-head { text-align:center; margin-bottom:64px; }
.wes-about-numbers-head .wes-section-mark { color:#D4A24E; }
.wes-about-numbers-title { font-family:'Spectral',serif; font-size:clamp(32px,4vw,52px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#fff; margin:14px 0 0; }
.wes-about-numbers-title em { font-style:italic; color:#D4A24E; }
.wes-about-numbers-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.wes-about-num { padding:32px 28px; border-right:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); text-align:center; transition:background .25s ease; }
.wes-about-num:hover { background:rgba(255,255,255,.03); }
.wes-about-num:nth-child(3n) { border-right:0; }
.wes-about-num:nth-last-child(-n+3) { border-bottom:0; }
.wes-about-num strong { display:block; font-family:'Spectral',serif; font-style:italic; font-size:clamp(48px,6vw,80px); font-weight:700; color:#D4A24E; line-height:1; margin-bottom:12px; letter-spacing:-0.02em; }
.wes-about-num-unit { display:block; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:#fff; margin-bottom:4px; }
.wes-about-num-sub { display:block; font-family:'Spectral',serif; font-style:italic; font-size:14px; color:rgba(255,255,255,.55); }
@media (max-width:880px) {
  .wes-about-numbers-grid { grid-template-columns:repeat(2,1fr); }
  .wes-about-num:nth-child(3n) { border-right:1px solid rgba(255,255,255,.08); }
  .wes-about-num:nth-child(2n) { border-right:0; }
  .wes-about-num:nth-last-child(-n+3) { border-bottom:1px solid rgba(255,255,255,.08); }
  .wes-about-num:nth-last-child(-n+2) { border-bottom:0; }
}
@media (max-width:520px) {
  .wes-about-numbers-grid { grid-template-columns:1fr; }
  .wes-about-num { border-right:0 !important; border-bottom:1px solid rgba(255,255,255,.08) !important; }
  .wes-about-num:last-child { border-bottom:0 !important; }
}

/* Promise band */
.wes-about-promise { background:#1a1d21; color:#fff; padding:clamp(80px,10vw,140px) 24px; position:relative; overflow:hidden; }
.wes-about-promise::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:140%; height:200%; background:radial-gradient(closest-side, rgba(212,162,78,.06) 0%, transparent 60%); pointer-events:none; }
.wes-about-promise-inner { position:relative; max-width:960px; margin:0 auto; text-align:center; }
.wes-about-promise-quote-mark { font-family:'Spectral',serif; font-size:200px; font-weight:700; line-height:.4; color:#D4A24E; opacity:.20; height:80px; }
.wes-about-promise-text { font-family:'Spectral',serif; font-style:italic; font-size:clamp(24px,3.2vw,40px); font-weight:500; line-height:1.45; color:#fff; margin:0 0 56px; letter-spacing:-0.005em; }
.wes-about-promise-em { position:relative; font-style:italic; color:#D4A24E; }
.wes-about-promise-em::after { content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:#D4A24E; transform:scaleX(0); transform-origin:left; transition:transform .8s cubic-bezier(.2,.7,.2,1) .4s; }
.wes-about-promise-text.is-visible .wes-about-promise-em::after { transform:scaleX(1); }
.wes-about-promise-sig { display:inline-block; }
.wes-about-promise-sig-line { width:60px; height:1px; background:#D4A24E; margin:0 auto 18px; }
.wes-about-promise-sig p { font-family:'Spectral',serif; font-style:italic; font-size:20px; color:rgba(255,255,255,.85); margin:0 0 6px; }
.wes-about-promise-sig-sub { font-family:'AR One Sans',sans-serif; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5) !important; font-style:normal !important; font-weight:600; }

/* =============== Quote overlay modal (Standing Rule #35) ===============
   Appears on every page via wrap_page(). Any element with
   href="/request-a-quote" OR [data-quote-trigger] opens it in place
   instead of navigating away. Backdrop click + close button + Esc all dismiss. */
.wes-quote-overlay { position:fixed; inset:0; z-index:9998; display:none; align-items:flex-start; justify-content:center; padding:48px 24px; overflow-y:auto; }
.wes-quote-overlay.is-open { display:flex; animation:wes-quote-fade-in .25s ease forwards; }
@keyframes wes-quote-fade-in { from { opacity:0; } to { opacity:1; } }
.wes-quote-backdrop { position:fixed; inset:0; background:rgba(14,13,16,.78); backdrop-filter:blur(8px); cursor:pointer; }
.wes-quote-panel { position:relative; z-index:1; width:100%; max-width:760px; background:#fff; border-radius:16px; box-shadow:0 32px 64px rgba(0,0,0,.45), 0 12px 24px rgba(0,0,0,.30); overflow:hidden; animation:wes-quote-pop .35s cubic-bezier(.2,.7,.2,1) forwards; margin:auto; }
@keyframes wes-quote-pop { from { opacity:0; transform:translateY(20px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
.wes-quote-close { position:absolute; top:16px; right:16px; z-index:2; width:40px; height:40px; border-radius:50%; background:rgba(28,26,31,.06); border:0; color:#1c1c1e; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .2s ease; }
.wes-quote-close:hover { background:#1c1c1e; color:#fff; transform:rotate(90deg); }
.wes-quote-header { padding:48px 56px 28px; background:linear-gradient(180deg, #fbf6ec 0%, #fff 100%); text-align:center; border-bottom:1px solid rgba(28,26,31,.06); }
.wes-quote-eyebrow { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.22em; color:#8A6A20; margin-bottom:14px; text-transform:uppercase; }
.wes-quote-title { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 14px; }
.wes-quote-title em { font-style:italic; color:#8A6A20; }
.wes-quote-sub { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.55; color:#4a4540; margin:0; max-width:48ch; margin-left:auto; margin-right:auto; }
.wes-quote-form { padding:32px 48px 40px; display:flex; flex-direction:column; gap:18px; }
.wes-quote-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.wes-quote-field { display:flex; flex-direction:column; }
.wes-quote-label { font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; color:#1c1c1e; text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; display:block; }
.wes-quote-input { padding:13px 16px; font-family:'AR One Sans',sans-serif; font-size:15px; border:1px solid rgba(28,26,31,.16); border-radius:6px; width:100%; box-sizing:border-box; background:#fff; color:#1c1c1e; transition:border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.wes-quote-input:hover { border-color:rgba(28,26,31,.28); }
.wes-quote-input:focus { outline:0; border-color:#D4A24E; box-shadow:0 0 0 3px rgba(212,162,78,.18); }
.wes-quote-textarea { resize:vertical; min-height:120px; font-family:'AR One Sans',sans-serif; }
.wes-quote-file { padding:10px 12px; background:#fbf6ec; cursor:pointer; }
.wes-quote-consent { display:flex; gap:10px; align-items:flex-start; font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.5; color:#4a4540; padding-top:4px; }
.wes-quote-consent input { margin-top:2px; flex-shrink:0; width:18px; height:18px; cursor:pointer; accent-color:#B58A3D; }
.wes-quote-actions { display:flex; gap:12px; align-items:center; padding-top:8px; flex-wrap:wrap; }
.wes-quote-submit { flex:1; justify-content:center; }
.wes-quote-cancel { background:transparent; border:0; color:#4a4540; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; padding:14px 18px; cursor:pointer; }
.wes-quote-cancel:hover { color:#1c1c1e; }
@media (max-width:680px) {
  .wes-quote-overlay { padding:16px; }
  .wes-quote-header { padding:36px 28px 24px; }
  .wes-quote-form { padding:24px 28px 32px; }
  .wes-quote-row { grid-template-columns:1fr; gap:14px; }
}

/* =============== Quick Quote modal (Standing Rule #36) ===============
   B2B counterpart to the Request-a-Quote modal. Modeled on Platt's quick-
   order UX: three input modes (line-by-line / paste-bulk / CSV upload)
   plus contact fields. Markup + JS emitted from the wes-agent-bridge
   plugin v1.0.7+ via wp_footer (Rule #35 lesson). Trigger is the gold
   pill in the global header [data-quickquote-trigger]. */
.wes-qq-overlay { position:fixed; inset:0; z-index:9999; display:none; align-items:flex-start; justify-content:center; padding:32px 24px; overflow-y:auto; }
.wes-qq-overlay.is-open { display:flex; animation:wes-quote-fade-in .25s ease forwards; }
.wes-qq-backdrop { position:fixed; inset:0; background:rgba(14,13,16,.82); backdrop-filter:blur(10px); cursor:pointer; }
.wes-qq-panel { position:relative; z-index:1; width:100%; max-width:920px; background:#fff; border-radius:18px; box-shadow:0 40px 80px rgba(0,0,0,.50), 0 16px 32px rgba(0,0,0,.32); overflow:hidden; animation:wes-quote-pop .35s cubic-bezier(.2,.7,.2,1) forwards; margin:auto; }
.wes-qq-close { position:absolute; top:16px; right:16px; z-index:3; width:42px; height:42px; border-radius:50%; background:rgba(28,26,31,.06); border:0; color:#1c1c1e; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .2s ease; }
.wes-qq-close:hover { background:#1c1c1e; color:#fff; transform:rotate(90deg); }

.wes-qq-header { padding:42px 56px 24px; background:linear-gradient(180deg, #fbf6ec 0%, #fff 100%); text-align:center; border-bottom:1px solid rgba(28,26,31,.06); }
.wes-qq-eyebrow { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.22em; color:#8A6A20; margin-bottom:12px; text-transform:uppercase; }
.wes-qq-title { font-family:'Spectral',serif; font-size:clamp(28px,3.5vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 12px; }
.wes-qq-title em { font-style:italic; color:#8A6A20; }
.wes-qq-sub { font-family:'AR One Sans',sans-serif; font-size:13.5px; line-height:1.55; color:#4a4540; margin:0 auto; max-width:60ch; }

.wes-qq-form { padding:0; display:flex; flex-direction:column; }

/* Tab bar */
.wes-qq-tabs { display:flex; gap:0; border-bottom:1px solid rgba(28,26,31,.10); background:#fff; padding:0 56px; }
.wes-qq-tab { flex:1; padding:18px 12px; background:transparent; border:0; border-bottom:3px solid transparent; cursor:pointer; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; color:#4a4540; letter-spacing:.04em; text-transform:uppercase; display:inline-flex; align-items:center; justify-content:center; gap:10px; transition:color .2s ease, border-color .2s ease, background .2s ease; }
.wes-qq-tab:hover { color:#1c1c1e; background:rgba(28,26,31,.02); }
.wes-qq-tab.is-active { color:#8A6A20; border-bottom-color:#B58A3D; }
.wes-qq-tab-num { width:22px; height:22px; border-radius:50%; background:rgba(28,26,31,.08); color:#1c1c1e; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; }
.wes-qq-tab.is-active .wes-qq-tab-num { background:#D4A24E; color:#fff; }

/* Panes */
.wes-qq-pane { display:none; padding:28px 56px 8px; }
.wes-qq-pane.is-active { display:block; animation:wes-qq-pane-in .25s ease forwards; }
@keyframes wes-qq-pane-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }

/* Pane 1 â€” rows */
.wes-qq-rows-head { display:grid; grid-template-columns:1fr 110px 36px; gap:12px; padding:0 0 10px; border-bottom:1px solid rgba(28,26,31,.08); margin-bottom:10px; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.10em; text-transform:uppercase; color:#4a4540; }
.wes-qq-rows { display:flex; flex-direction:column; gap:8px; }
.wes-qq-row-line { display:grid; grid-template-columns:1fr 110px 36px; gap:12px; align-items:center; padding:6px 0; border-radius:8px; transition:background .2s ease; }
.wes-qq-row-line.is-search-pulse { animation: wes-qq-row-pulse .6s ease; }
@keyframes wes-qq-row-pulse { 0% { background:rgba(212,162,78,0); } 30% { background:rgba(212,162,78,.18); } 100% { background:rgba(212,162,78,0); } }
.wes-qq-row-sku { position:relative; display:flex; align-items:center; }
.wes-qq-sku-input { padding-right:42px; }
.wes-qq-search-btn { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:8px; background:rgba(28,26,31,.04); border:0; color:#8A6A20; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease, transform .15s ease; }
.wes-qq-search-btn:hover { background:#D4A24E; color:#fff; transform:translateY(-50%) scale(1.08); }
.wes-qq-qty-input { text-align:center; padding-left:8px; padding-right:8px; }
.wes-qq-row-remove { width:32px; height:32px; border-radius:50%; background:transparent; border:0; color:rgba(28,26,31,.40); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .2s ease; }
.wes-qq-row-remove:hover { background:rgba(220,53,69,.10); color:#dc3545; }

.wes-qq-rows-actions { display:flex; gap:10px; align-items:center; padding-top:14px; flex-wrap:wrap; }
.wes-qq-add-row { display:inline-flex; align-items:center; gap:6px; background:rgba(212,162,78,.10); color:#8A6A20; border:1px dashed #D4A24E; border-radius:8px; padding:9px 14px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; cursor:pointer; transition:all .2s ease; }
.wes-qq-add-row:hover { background:#D4A24E; color:#fff; border-style:solid; }
.wes-qq-clear-rows { background:transparent; border:0; color:#4a4540; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; cursor:pointer; text-decoration:underline; text-decoration-color:rgba(28,26,31,.25); }
.wes-qq-clear-rows:hover { color:#dc3545; text-decoration-color:#dc3545; }
.wes-qq-row-count { margin-left:auto; font-family:'AR One Sans',sans-serif; font-size:12px; color:#4a4540; font-weight:600; }

.wes-qq-hint { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.55; color:#4a4540; margin:14px 0; padding:12px 14px; background:rgba(212,162,78,.07); border-left:3px solid #D4A24E; border-radius:0 6px 6px 0; }
.wes-qq-hint code { background:rgba(28,26,31,.08); border-radius:4px; padding:2px 6px; font-family: 'SF Mono', Consolas, monospace; font-size:12px; color:#1c1c1e; }
.wes-qq-hint--muted { background:transparent; border-left:0; padding:6px 0; font-size:12.5px; }
.wes-qq-hint--rows { margin-bottom:0; }

/* Pane 2 â€” paste */
.wes-qq-textarea { width:100%; resize:vertical; min-height:240px; font-family:'SF Mono', Consolas, 'Courier New', monospace; font-size:14px; padding:14px 16px; border:1px solid rgba(28,26,31,.18); border-radius:8px; background:#fdfdfd; color:#1c1c1e; transition:border-color .2s ease, box-shadow .2s ease; box-sizing:border-box; }
.wes-qq-textarea:focus { outline:0; border-color:#D4A24E; box-shadow:0 0 0 3px rgba(212,162,78,.18); }

/* Pane 3 â€” CSV */
.wes-qq-file-drop { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:42px 24px; background:rgba(212,162,78,.05); border:2px dashed #D4A24E; border-radius:14px; cursor:pointer; text-align:center; transition:all .2s ease; }
.wes-qq-file-drop:hover, .wes-qq-file-drop:focus-within { background:rgba(212,162,78,.10); border-color:#B58A3D; transform:translateY(-1px); }
.wes-qq-file-input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.wes-qq-file-icon { color:#8A6A20; }
.wes-qq-file-text { font-family:'AR One Sans',sans-serif; font-size:14px; color:#1c1c1e; line-height:1.5; }
.wes-qq-file-text strong { color:#8A6A20; }
.wes-qq-file-name { font-family:'AR One Sans',sans-serif; font-size:12.5px; color:#8A6A20; font-weight:700; }
.wes-qq-file-name:not(:empty)::before { content:'Selected: '; color:#4a4540; font-weight:600; }
.wes-qq-template-link { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-family:'AR One Sans',sans-serif; font-size:13px; color:#8A6A20; text-decoration:none; font-weight:700; }
.wes-qq-template-link:hover { text-decoration:underline; }

/* Contact info section */
.wes-qq-contact { padding:28px 56px 24px; background:#fbf6ec; border-top:1px solid rgba(28,26,31,.06); margin-top:18px; }
.wes-qq-contact-title { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; margin:0 0 14px; letter-spacing:-0.01em; }
.wes-qq-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.wes-qq-field { display:flex; flex-direction:column; }
.wes-qq-label { font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; color:#1c1c1e; text-transform:uppercase; letter-spacing:.08em; margin-bottom:6px; display:block; }
.wes-qq-input { padding:12px 14px; font-family:'AR One Sans',sans-serif; font-size:14.5px; border:1px solid rgba(28,26,31,.16); border-radius:6px; width:100%; box-sizing:border-box; background:#fff; color:#1c1c1e; transition:border-color .2s ease, box-shadow .2s ease; }
.wes-qq-input:hover { border-color:rgba(28,26,31,.28); }
.wes-qq-input:focus { outline:0; border-color:#D4A24E; box-shadow:0 0 0 3px rgba(212,162,78,.18); }
.wes-qq-consent { display:flex; gap:10px; align-items:flex-start; font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.5; color:#4a4540; padding-top:14px; }
.wes-qq-consent input { margin-top:2px; flex-shrink:0; width:18px; height:18px; cursor:pointer; accent-color:#B58A3D; }

.wes-qq-actions { display:flex; gap:12px; align-items:center; padding:18px 56px 36px; flex-wrap:wrap; background:#fff; }
.wes-qq-submit { flex:1; justify-content:center; min-width:200px; }
.wes-qq-cancel { background:transparent; border:0; color:#4a4540; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; padding:14px 18px; cursor:pointer; }
.wes-qq-cancel:hover { color:#1c1c1e; }

@media (max-width:760px) {
  .wes-qq-overlay { padding:16px 12px; }
  .wes-qq-header, .wes-qq-tabs, .wes-qq-pane, .wes-qq-contact, .wes-qq-actions { padding-left:22px; padding-right:22px; }
  .wes-qq-tabs { padding-top:0; padding-bottom:0; }
  .wes-qq-tab { padding:14px 6px; font-size:11px; gap:6px; }
  .wes-qq-tab-num { width:18px; height:18px; font-size:10px; }
  .wes-qq-grid { grid-template-columns:1fr; gap:10px; }
  .wes-qq-rows-head, .wes-qq-row-line { grid-template-columns:1fr 80px 32px; gap:8px; }
  .wes-qq-title { font-size:24px; }
  .wes-qq-sub { font-size:12.5px; }
}

/* Legacy TN map styles (kept for now in case rolled back, but no longer rendered) */
/* TN map with location pins */
.wes-map { background:#fbf6ec; padding:clamp(64px,8vw,96px) 24px; }
.wes-map-inner { max-width:1400px; margin:0 auto; }
.wes-map-head { text-align:center; margin-bottom:48px; }
.wes-map-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:64px; align-items:center; }
.wes-map-svg-wrap { position:relative; display:flex; flex-direction:column; gap:24px; }
.wes-map-full-wrap { position:relative; background:#fff; border-radius:8px; padding:16px 16px 12px; box-shadow:var(--wes-shadow-md); }
.wes-map-full-wrap svg.wes-tn-full { width:100%; height:auto; display:block; }
.wes-map-full-label { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:600; letter-spacing:.2em; color:#9c8d6e; text-align:center; margin:4px 0 12px; text-transform:uppercase; }
.wes-map-zoom-wrap { position:relative; background:#fff; border-radius:8px; padding:16px 16px 12px; box-shadow:var(--wes-shadow-md); border:1px solid rgba(212,162,78,0.2); }
.wes-map-zoom-wrap::before { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%) rotate(45deg); width:18px; height:18px; background:#fff; border-left:1px solid rgba(212,162,78,0.2); border-top:1px solid rgba(212,162,78,0.2); }
.wes-map-zoom-label { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.2em; color:#8A6A20; text-align:center; margin:4px 0 12px; text-transform:uppercase; display:flex; align-items:center; justify-content:center; gap:8px; }
.wes-map-zoom-icon { font-size:14px; color:#D4A24E; }
.wes-map-zoom-inner { position:relative; }
.wes-map-zoom-inner svg.wes-tn-zoom { width:100%; height:auto; display:block; }
.wes-map-pin { position:absolute; transform:translate(-50%,-100%); }
.wes-map-pin-dot { width:18px; height:18px; border-radius:50%; background:#D4A24E; border:3px solid #fff; box-shadow:0 4px 12px rgba(0,0,0,.2); cursor:pointer; transition:transform .2s ease; position:relative; }
.wes-map-pin-dot::after { content:''; position:absolute; top:50%; left:50%; width:30px; height:30px; border-radius:50%; background:#D4A24E; opacity:.3; transform:translate(-50%,-50%) scale(1); animation:wes-pin-pulse 2s ease-out infinite; }
.wes-map-pin:hover .wes-map-pin-dot { transform:scale(1.2); }
.wes-map-pin-label { position:absolute; top:-32px; left:50%; transform:translateX(-50%); background:#1c1a1f; color:#fff; padding:6px 12px; border-radius:4px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:700; white-space:nowrap; box-shadow:0 4px 16px rgba(0,0,0,.2); }
.wes-map-pin-label::after { content:''; position:absolute; bottom:-5px; left:50%; transform:translateX(-50%) rotate(45deg); width:10px; height:10px; background:#1c1a1f; }
@keyframes wes-pin-pulse { 0% { opacity:.4; transform:translate(-50%,-50%) scale(0.6); } 100% { opacity:0; transform:translate(-50%,-50%) scale(2.5); } }
.wes-map-list { display:flex; flex-direction:column; gap:16px; }
.wes-map-list-item { display:flex; align-items:center; gap:16px; padding:16px 20px; background:#fff; border-radius:4px; box-shadow:var(--wes-shadow-sm); text-decoration:none; color:inherit; transition:all .2s ease; border-left:3px solid transparent; }
.wes-map-list-item:hover { transform:translateX(4px); border-left-color:#D4A24E; box-shadow:var(--wes-shadow-md); }
.wes-map-list-num { font-family:'Spectral',serif; font-style:italic; font-size:14px; color:#8A6A20; font-weight:600; width:24px; flex-shrink:0; }
.wes-map-list-name { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; margin:0 0 2px; }
.wes-map-list-tag { font-family:'AR One Sans',sans-serif; font-size:12px; color:#4a4540; }
.wes-map-list-arrow { margin-left:auto; color:#8A6A20; font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:700; transition:transform .2s ease; }
.wes-map-list-item:hover .wes-map-list-arrow { transform:translateX(4px); }

/* Floating CTA pill â€” visible after scrolling past hero */
.wes-floating-cta { position:fixed; bottom:24px; right:24px; z-index:998; opacity:0; transform:translateY(20px); pointer-events:none; transition:opacity .3s ease, transform .3s ease; }
.wes-floating-cta.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.wes-floating-cta a { display:inline-flex; align-items:center; gap:8px; background:#D4A24E; color:#1a1d21; padding:14px 24px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; border-radius:999px; box-shadow:var(--wes-shadow-gold-lg); transition:all .2s ease; }
.wes-floating-cta a:hover { background:#E6BE6E; transform:translateY(-2px); box-shadow:var(--wes-shadow-gold-lg), var(--wes-shadow-lg); }
/* Decorative pulse dot â€” NOT an icon, just a small indicator circle.
   Renamed from .wes-floating-cta-icon to .wes-floating-cta-dot per Standing
   Rule #25 so icon_audit doesn't confuse a styled decoration for a missing icon. */
.wes-floating-cta-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#1a1d21; }

/* Trust badges strip */
.wes-trust { background:#fff; padding:32px 24px; border-top:1px solid #e0d7c5; border-bottom:1px solid #e0d7c5; }
.wes-trust-inner { max-width:1300px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap; }
.wes-trust-item { display:flex; align-items:center; gap:10px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#4a4540; }
.wes-trust-item-icon { width:22px; height:22px; color:#8A6A20; flex-shrink:0; }

/* Category tile upgraded hover */
.wes-cat-tile { transition: transform .35s cubic-bezier(.22,1,.36,1); }
.wes-cat-tile-bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s cubic-bezier(.22,1,.36,1); }
.wes-cat-tile:hover .wes-cat-tile-bg { transform:scale(1.08); }

/* Mobile: collapse multi-column sections */
@media (max-width: 980px) {
  .wes-services-strip-inner { grid-template-columns:repeat(2,1fr); gap:24px 8px; }
  .wes-services-item:nth-child(2)::after { display:none; }
  .wes-services-item:nth-child(odd)::after { display:block; }
  .wes-services-item:nth-child(even)::after { display:none; }
  .wes-services-item:last-child { grid-column:1 / -1; }
  .wes-services-item:last-child::after { display:none; }
  .wes-map-grid { grid-template-columns:1fr; gap:48px; }
  .wes-manifesto-text { font-size:24px; }
  .wes-floating-cta { bottom:16px; right:16px; }
  .wes-floating-cta a { padding:12px 20px; font-size:12px; }
}
@media (max-width: 640px) {
  .wes-services-strip { padding:32px 16px; }
  .wes-services-strip-inner { grid-template-columns:1fr; gap:24px; }
  .wes-services-item { padding:0; }
  .wes-services-item::after { display:none !important; }
  .wes-trust-inner { gap:20px; }
  .wes-trust-item { font-size:11px; }
  .wes-manifesto { padding:64px 20px; }
  .wes-seal { width:96px; height:96px; }
  .wes-seal-year { font-size:18px; }
}

/* =============== Global WooCommerce single-product + shop overrides ===============
   Standing Rule #28: every product page and the shop archive must use
   the editorial system, not the WC/Divi defaults. No sidebars on
   products. Sort + filter controls visible on the shop archive. */

/* Kill Divi's right-sidebar on every product + shop page */
body.single-product.et_right_sidebar #left-area, body.woocommerce.et_right_sidebar #left-area,
body.archive.et_right_sidebar #left-area, body.tax-product_cat.et_right_sidebar #left-area {
  width:100% !important; float:none !important; padding-right:0 !important;
}
body.single-product.et_right_sidebar #sidebar, body.woocommerce.et_right_sidebar #sidebar,
body.archive.et_right_sidebar #sidebar, body.tax-product_cat.et_right_sidebar #sidebar {
  display:none !important; width:0 !important;
}

/* ============================================================
   SINGLE PRODUCT â€” editorial redesign (Standing Rule #28 + #34)
   Layout: image-left (larger) / info-right (sticky on desktop)
   Below the fold: editorial extended description, key specs grid,
   frequently-bought-with, more-from-brand, closing CTA band.
   Sticky scroll CTA bar appears when main add-to-cart scrolls out.
   Server-rendered content lives in wes-agent-bridge plugin v1.0.8+.
   ============================================================ */

/* Kill ALL sidebar / widget chrome on product pages */
body.single-product #sidebar, body.single-product .et_pb_widget_area, body.single-product .et_right_sidebar #sidebar, body.single-product aside.sidebar, body.single-product .sidebar, body.single-product #et-main-area aside, body.single-product .et_pb_extra_column_main aside { display:none !important; }
body.single-product #left-area, body.single-product .et_pb_post_main_image, body.single-product #main-content .container, body.single-product .et_pb_extra_column_main { width:100% !important; max-width:1440px !important; margin-left:auto !important; margin-right:auto !important; padding:clamp(28px,4vw,56px) clamp(20px,3.5vw,48px) !important; float:none !important; }
body.single-product #main-content { background:#fff; }

/* Main grid: gallery 1.35fr + sticky-info 1fr (image-dominant per user req).
   IMPORTANT: Divi/WC wraps gallery+summary inside an extra `.clearfix` div, which
   would collapse them into a single grid cell. Use `display: contents` on the
   wrapper to dissolve it so gallery + summary become direct grid children. */
body.single-product div.product { display:grid !important; grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr) !important; column-gap:clamp(32px,4.5vw,72px) !important; row-gap:0 !important; max-width:1440px; margin:0 auto !important; align-items:start !important; }
body.single-product div.product > .clearfix { display:contents !important; }
/* Also dissolve any WC notice / form wrapper that would otherwise become a grid cell. */
body.single-product div.product > .woocommerce-notices-wrapper:empty { display:none !important; }

/* GALLERY (left, larger) */
body.single-product div.product .woocommerce-product-gallery { grid-column:1 !important; float:none !important; width:100% !important; margin:0 !important; padding:0 !important; opacity:1 !important; position:relative; }
body.single-product div.product .woocommerce-product-gallery .flex-viewport, body.single-product div.product .woocommerce-product-gallery__wrapper { width:100% !important; margin:0 !important; }
/* Standing Rule #24: switched from box-shadow to filter:drop-shadow on the
   gallery frame because the corner radius (14px) is smaller than the shadow
   blur (24px+) â€” box-shadow draws a rectangular halo around the frame even
   though the corners are rounded. filter:drop-shadow follows the rendered
   shape exactly. */
body.single-product div.product .woocommerce-product-gallery__image { width:100% !important; background:#fbf6ec; border-radius:14px; overflow:hidden; box-shadow:none !important; filter:drop-shadow(0 8px 16px rgba(28,26,31,.14)) drop-shadow(0 24px 48px rgba(28,26,31,.20)); position:relative; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; }
body.single-product div.product .woocommerce-product-gallery__image a { display:block; width:100%; height:100%; }
body.single-product div.product .woocommerce-product-gallery__image img { width:100% !important; height:100% !important; object-fit:contain !important; padding:24px !important; box-sizing:border-box; }
body.single-product div.product .woocommerce-product-gallery__trigger { position:absolute !important; top:18px !important; right:18px !important; z-index:3; background:rgba(255,255,255,.92) !important; width:42px !important; height:42px !important; border-radius:50% !important; display:flex !important; align-items:center; justify-content:center; box-shadow:var(--wes-shadow-md); }
body.single-product div.product .flex-control-thumbs { display:grid !important; grid-template-columns:repeat(5,1fr) !important; gap:10px !important; padding:14px 0 0 !important; margin:0 !important; list-style:none !important; }
body.single-product div.product .flex-control-thumbs li { width:100% !important; margin:0 !important; }
body.single-product div.product .flex-control-thumbs img { width:100% !important; aspect-ratio:1/1 !important; object-fit:cover !important; border-radius:8px !important; cursor:pointer !important; opacity:.72 !important; transition:opacity .2s ease, transform .2s ease, box-shadow .2s ease !important; background:#fbf6ec; box-shadow:var(--wes-shadow-sm); }
body.single-product div.product .flex-control-thumbs img:hover, body.single-product div.product .flex-control-thumbs img.flex-active { opacity:1 !important; transform:translateY(-1px); box-shadow:var(--wes-shadow-md); }

/* INFO COLUMN (right, sticky) */
body.single-product div.product .summary { grid-column:2 !important; float:none !important; width:100% !important; margin:0 !important; padding:8px 0 0 !important; position:sticky; top:24px; align-self:start; }

/* Brand eyebrow (server-rendered, sits above title) */
body.single-product .wes-sp-brand-eyebrow { margin:0 0 14px; }
body.single-product .wes-sp-brand-eyebrow a { display:inline-flex; align-items:center; gap:8px; font-family:'AR One Sans',sans-serif !important; font-size:11px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:#8A6A20; text-decoration:none; }
body.single-product .wes-sp-brand-eyebrow a:hover { color:#1c1c1e; }
body.single-product .wes-sp-brand-eyebrow-mark { width:24px; height:2px; background:#D4A24E; flex-shrink:0; }

/* Title */
body.single-product div.product .summary .product_title, body.single-product div.product .summary h1.product_title { font-family:'Spectral',serif !important; font-size:clamp(28px,3vw,42px) !important; font-weight:700 !important; line-height:1.12 !important; letter-spacing:-0.022em !important; color:#1c1c1e !important; margin:0 0 14px !important; padding:0 !important; }

/* Rating row */
body.single-product div.product .summary .woocommerce-product-rating { display:flex; align-items:center; gap:10px; margin:0 0 16px !important; }
body.single-product div.product .summary .star-rating { color:#8A6A20 !important; font-size:14px !important; }
body.single-product div.product .summary .woocommerce-review-link { font-family:'AR One Sans',sans-serif !important; font-size:12px !important; color:#4a4540 !important; text-decoration:none !important; }

/* Price */
body.single-product div.product .summary .price { font-family:'Spectral',serif !important; font-size:36px !important; font-weight:700 !important; color:#1c1c1e !important; margin:0 0 22px !important; padding:0 0 22px !important; border-bottom:1px solid rgba(28,26,31,.10); display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
body.single-product div.product .summary .price del { color:#4a4540 !important; font-size:22px !important; font-weight:400 !important; opacity:.7; }
body.single-product div.product .summary .price ins { text-decoration:none !important; color:#8A6A20 !important; }

/* Short description */
body.single-product div.product .summary .woocommerce-product-details__short-description { font-family:'Spectral',serif !important; font-style:italic !important; font-size:18px !important; line-height:1.5 !important; color:#1c1c1e !important; margin:0 0 24px !important; padding-left:16px; border-left:2px solid #D4A24E; }
body.single-product div.product .summary .woocommerce-product-details__short-description p { margin:0; }

/* In-stock badge */
body.single-product div.product .summary .stock { display:inline-flex !important; align-items:center; gap:10px; font-family:'AR One Sans',sans-serif !important; font-size:12px !important; font-weight:800 !important; letter-spacing:.14em !important; text-transform:uppercase !important; padding:8px 14px !important; border-radius:999px !important; margin:0 0 18px !important; }
body.single-product div.product .summary .stock::before { content:''; width:8px; height:8px; border-radius:50%; box-shadow:0 0 0 4px rgba(22,163,74,.20); }
body.single-product div.product .summary .stock.in-stock { background:rgba(22,163,74,.10) !important; color:#16a34a !important; }
body.single-product div.product .summary .stock.in-stock::before { background:#16a34a; }
body.single-product div.product .summary .stock.out-of-stock { background:rgba(220,38,38,.10) !important; color:#dc2626 !important; }
body.single-product div.product .summary .stock.out-of-stock::before { background:#dc2626; box-shadow:0 0 0 4px rgba(220,38,38,.20); }

/* Add-to-cart row */
body.single-product div.product .summary form.cart { display:flex !important; flex-wrap:wrap; align-items:center; gap:12px !important; margin:0 0 14px !important; }
body.single-product div.product .summary .quantity { display:flex !important; align-items:center; }
body.single-product div.product .summary .quantity input.qty { width:72px !important; padding:14px 8px !important; border:1px solid rgba(28,26,31,.18) !important; border-radius:8px !important; font-size:16px !important; text-align:center !important; font-family:'AR One Sans',sans-serif !important; background:#fff !important; }
/* Reverted to pre-v1.0.9 styling at user's request 2026-05-22.
   Original (perfect) button: dark background, gold-on-hover, square corners, classic shadow.
   Do NOT replace this with a gold gradient again without explicit approval. */
body.single-product div.product .summary .single_add_to_cart_button { background:#1c1c1e !important; color:#fff !important; font-family:'AR One Sans',sans-serif !important; font-size:13px !important; font-weight:700 !important; letter-spacing:.10em !important; text-transform:uppercase !important; padding:16px 32px !important; border-radius:2px !important; border:0 !important; box-shadow:var(--wes-shadow-md) !important; transition:all .2s ease; margin-left:12px !important; }
body.single-product div.product .summary .single_add_to_cart_button:hover { background:#B58A3D !important; color:#1a1d21 !important; box-shadow:var(--wes-shadow-lg) !important; transform:translateY(-1px); }

/* Promise bullets (server-rendered by plugin) */
body.single-product .wes-sp-promise { list-style:none !important; padding:18px 18px !important; margin:14px 0 14px !important; display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; background:#fbf6ec; border-radius:10px; border-left:3px solid #D4A24E; }
body.single-product .wes-sp-promise li { display:flex; align-items:flex-start; gap:8px; font-family:'AR One Sans',sans-serif; font-size:12.5px; line-height:1.45; color:#1c1c1e; }
body.single-product .wes-sp-promise li strong { color:#1c1c1e; font-weight:700; }
body.single-product .wes-sp-promise li a { color:#8A6A20; text-decoration:none; font-weight:600; }
body.single-product .wes-sp-promise-icon { color:#8A6A20; flex-shrink:0; margin-top:1px; }
@media (max-width:540px) { body.single-product .wes-sp-promise { grid-template-columns:1fr; } }

/* Quote shortcut under promise */
body.single-product .wes-sp-quote-shortcut { margin:0 0 18px; }
body.single-product .wes-sp-quote-shortcut a { display:inline-flex; align-items:center; gap:4px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; color:#8A6A20; text-decoration:none; padding:8px 14px; background:rgba(212,162,78,.08); border-radius:6px; border:1px dashed #D4A24E; transition:all .2s ease; }
body.single-product .wes-sp-quote-shortcut a:hover { background:#D4A24E; color:#fff; border-style:solid; }

/* Meta row */
body.single-product div.product .summary .product_meta { font-family:'AR One Sans',sans-serif; font-size:12px; color:#4a4540; margin-top:18px !important; padding-top:18px !important; border-top:1px solid rgba(28,26,31,.08); }
body.single-product div.product .summary .product_meta > span { display:block; margin-bottom:8px; line-height:1.5; }
body.single-product div.product .summary .product_meta .sku_wrapper, body.single-product div.product .summary .product_meta .sku { font-family:'SF Mono', Consolas, monospace; color:#1c1c1e; letter-spacing:.04em; }
body.single-product div.product .summary .product_meta a { color:#8A6A20; text-decoration:none; }
body.single-product div.product .summary .product_meta a:hover { text-decoration:underline; }
/* Hide the WC-default bare SKU display since our identifier-triple block (with copy button) is the canonical one. */
body.single-product div.product .summary .product_meta .sku_wrapper { display:none !important; }

/* Tabs */
body.single-product .woocommerce-tabs { grid-column:1 / -1 !important; margin-top:80px !important; padding-top:36px; border-top:1px solid rgba(28,26,31,.06); }
body.single-product .woocommerce-tabs ul.tabs { list-style:none !important; padding:0 !important; margin:0 0 28px !important; border-bottom:1px solid rgba(28,26,31,.10) !important; display:flex; gap:0; }
body.single-product .woocommerce-tabs ul.tabs::before, body.single-product .woocommerce-tabs ul.tabs::after { display:none !important; }
body.single-product .woocommerce-tabs ul.tabs li { background:transparent !important; border:0 !important; border-radius:0 !important; padding:0 !important; margin:0 !important; }
body.single-product .woocommerce-tabs ul.tabs li a { display:inline-block; padding:16px 28px !important; font-family:'AR One Sans',sans-serif !important; font-size:13px !important; font-weight:800 !important; letter-spacing:.10em !important; text-transform:uppercase !important; color:#4a4540 !important; border-bottom:3px solid transparent !important; transition:all .2s ease; text-decoration:none !important; }
body.single-product .woocommerce-tabs ul.tabs li.active a { color:#8A6A20 !important; border-bottom-color:#B58A3D !important; }
body.single-product .woocommerce-tabs ul.tabs li a:hover { color:#1c1c1e !important; }
body.single-product .woocommerce-tabs .panel { padding:8px 0 0 !important; background:transparent !important; font-family:'AR One Sans',sans-serif !important; font-size:15.5px !important; line-height:1.75 !important; color:#1c1c1e !important; }
body.single-product .woocommerce-tabs .panel h2 { font-family:'Spectral',serif !important; font-size:24px !important; font-weight:700 !important; color:#1c1c1e !important; margin:0 0 18px !important; }

/* ===== Editorial Extended Description ===== */
body.single-product .wes-sp-editorial { grid-column:1 / -1 !important; margin-top:80px; padding:clamp(48px,6vw,80px) 0 clamp(48px,6vw,80px); background:#fbf6ec; border-radius:18px; position:relative; }
body.single-product .wes-sp-editorial-inner { max-width:1080px; margin:0 auto; padding:0 clamp(28px,4vw,56px); display:grid; grid-template-columns:1fr 280px; gap:48px; align-items:start; }
body.single-product .wes-sp-editorial-head { grid-column:1 / -1; margin-bottom:32px; }
body.single-product .wes-sp-editorial-title { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:12px 0 10px; }
body.single-product .wes-sp-editorial-title em { font-style:italic; color:#8A6A20; }
body.single-product .wes-sp-editorial-sub { font-family:'Spectral',serif; font-style:italic; font-size:16px; color:#4a4540; margin:0; }
body.single-product .wes-sp-editorial-body { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.75; color:#1c1c1e; }
body.single-product .wes-sp-editorial-body p:first-child::first-letter { font-family:'Spectral',serif; font-style:italic; font-size:64px; font-weight:700; color:#8A6A20; float:left; line-height:0.9; padding:6px 12px 0 0; }
body.single-product .wes-sp-editorial-body p { margin:0 0 16px; }
body.single-product .wes-sp-editorial-aside { position:relative; background:#fff; padding:32px 28px; border-radius:14px; box-shadow:var(--wes-shadow-lg); }
body.single-product .wes-sp-editorial-aside-mark { position:absolute; top:-18px; left:24px; background:#D4A24E; color:#fff; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Spectral',serif; font-style:italic; font-size:38px; font-weight:700; line-height:1; padding-bottom:6px; box-shadow:var(--wes-shadow-md); }
body.single-product .wes-sp-editorial-aside p { font-family:'Spectral',serif; font-style:italic; font-size:16px; line-height:1.55; color:#1c1c1e; margin:8px 0 0; }
@media (max-width:880px) { body.single-product .wes-sp-editorial-inner { grid-template-columns:1fr; } }

/* ===== Key Specs Grid ===== */
body.single-product .wes-sp-specs { grid-column:1 / -1 !important; margin-top:64px; padding:clamp(48px,6vw,72px) clamp(28px,4vw,56px); background:#fff; border-top:1px solid rgba(28,26,31,.06); border-bottom:1px solid rgba(28,26,31,.06); }
body.single-product .wes-sp-specs-inner { max-width:1240px; margin:0 auto; }
body.single-product .wes-sp-specs-head { margin-bottom:32px; }
body.single-product .wes-sp-specs-head h2 { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:12px 0 0; }
body.single-product .wes-sp-specs-head h2 em { font-style:italic; color:#8A6A20; }
body.single-product .wes-sp-specs-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:20px; margin:0; padding:0; }
body.single-product .wes-sp-spec { background:#fbf6ec; border-radius:10px; padding:18px 22px; border-left:3px solid #D4A24E; }
body.single-product .wes-sp-spec dt { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#8A6A20; margin-bottom:8px; }
body.single-product .wes-sp-spec dd { font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:600; color:#1c1c1e; margin:0; line-height:1.4; }

/* ===== Cross-sells "Frequently bought with" ===== */
body.single-product .wes-sp-cross { grid-column:1 / -1 !important; margin-top:64px; padding:clamp(48px,6vw,72px) clamp(28px,4vw,56px); background:#fbf6ec; }
body.single-product .wes-sp-cross-inner { max-width:1340px; margin:0 auto; }
body.single-product .wes-sp-cross-head { margin-bottom:32px; }
body.single-product .wes-sp-cross-head h2 { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:12px 0 0; }
body.single-product .wes-sp-cross-head h2 em { font-style:italic; color:#8A6A20; }
body.single-product .wes-sp-cross-grid { display:grid !important; grid-template-columns:repeat(4, 1fr); gap:20px; list-style:none; padding:0 !important; margin:0 !important; }
body.single-product .wes-sp-cross-card { background:#fff; border-radius:12px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:all .2s ease; }
body.single-product .wes-sp-cross-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-xl); }
body.single-product .wes-sp-cross-card a { display:block; text-decoration:none; color:inherit; }
body.single-product .wes-sp-cross-img { width:100%; aspect-ratio:1/1; background-size:contain; background-position:center; background-repeat:no-repeat; background-color:#fbf6ec; }
body.single-product .wes-sp-cross-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:4px; }
body.single-product .wes-sp-cross-brand { font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#8A6A20; }
body.single-product .wes-sp-cross-name { font-family:'AR One Sans',sans-serif; font-size:14px; font-weight:600; line-height:1.3; color:#1c1c1e; min-height:36px; }
body.single-product .wes-sp-cross-price { font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:700; color:#8A6A20; margin-top:4px; }
@media (max-width:880px) { body.single-product .wes-sp-cross-grid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px) { body.single-product .wes-sp-cross-grid { grid-template-columns:1fr; } }

/* ===== More from this brand ===== */
body.single-product .wes-sp-brand-more { grid-column:1 / -1 !important; margin-top:64px; padding:clamp(48px,6vw,72px) clamp(28px,4vw,56px); background:#fff; }
body.single-product .wes-sp-brand-more-inner { max-width:1340px; margin:0 auto; }
body.single-product .wes-sp-brand-more-head { margin-bottom:32px; }
body.single-product .wes-sp-brand-more-head h2 { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,40px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#1c1c1e; margin:12px 0 0; }
body.single-product .wes-sp-brand-more-head h2 em { font-style:italic; color:#8A6A20; }
body.single-product .wes-sp-brand-more-grid { display:grid !important; grid-template-columns:repeat(4, 1fr); gap:20px; list-style:none; padding:0 !important; margin:0 !important; }
body.single-product .wes-sp-brand-more-card { background:#fff; border:1px solid rgba(28,26,31,.06); border-radius:12px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:all .2s ease; }
body.single-product .wes-sp-brand-more-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); border-color:#D4A24E; }
body.single-product .wes-sp-brand-more-card a { display:block; text-decoration:none; color:inherit; }
body.single-product .wes-sp-brand-more-img { width:100%; aspect-ratio:1/1; background-size:contain; background-position:center; background-repeat:no-repeat; background-color:#fbf6ec; }
body.single-product .wes-sp-brand-more-body { padding:14px 16px 16px; }
body.single-product .wes-sp-brand-more-name { font-family:'Spectral',serif; font-size:14.5px; font-weight:600; line-height:1.3; color:#1c1c1e; min-height:38px; margin-bottom:6px; }
body.single-product .wes-sp-brand-more-price { font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:700; color:#8A6A20; }
body.single-product .wes-sp-brand-more-cta { display:inline-flex; align-items:center; gap:6px; margin-top:24px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:800; letter-spacing:.06em; color:#8A6A20; text-decoration:none; }
body.single-product .wes-sp-brand-more-cta:hover { color:#1c1c1e; }
@media (max-width:880px) { body.single-product .wes-sp-brand-more-grid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px) { body.single-product .wes-sp-brand-more-grid { grid-template-columns:1fr; } }

/* ===== Closing CTA band ===== */
body.single-product .wes-sp-closing { grid-column:1 / -1 !important; margin-top:64px; background:linear-gradient(135deg, #23222a 0%, #2a2731 100%); color:#fff; padding:clamp(48px,6vw,80px) clamp(28px,4vw,56px); border-radius:14px; }
body.single-product .wes-sp-closing-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; }
body.single-product .wes-sp-closing-copy .wes-section-mark { color:#D4A24E; }
body.single-product .wes-sp-closing-title { font-family:'Spectral',serif; font-size:clamp(28px,3.4vw,42px); font-weight:700; line-height:1.1; letter-spacing:-0.022em; color:#fff; margin:12px 0 14px; }
body.single-product .wes-sp-closing-title em { font-style:italic; color:#D4A24E; }
body.single-product .wes-sp-closing-sub { font-family:'AR One Sans',sans-serif; font-size:16px; line-height:1.6; color:rgba(255,255,255,.78); margin:0; max-width:50ch; }
body.single-product .wes-sp-closing-actions { display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
body.single-product .wes-sp-closing-call { border-color:#fff !important; color:#fff !important; }
@media (max-width:820px) { body.single-product .wes-sp-closing-inner { grid-template-columns:1fr; gap:24px; } }

/* ===== WC default "related products" â€” restyled as 4-card grid ===== */
body.single-product .related.products { grid-column:1 / -1 !important; margin-top:64px !important; padding:clamp(48px,6vw,72px) clamp(28px,4vw,56px) !important; border-top:0 !important; background:#fbf6ec; border-radius:14px; }
body.single-product .related.products > h2 { font-family:'Spectral',serif !important; font-size:clamp(28px,3.4vw,40px) !important; font-weight:700 !important; color:#1c1c1e !important; margin:0 0 28px !important; letter-spacing:-0.02em; max-width:1240px; margin-left:auto !important; margin-right:auto !important; }
body.single-product .related.products > h2 em { font-style:italic; color:#8A6A20; }
body.single-product .related.products ul.products { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:20px !important; list-style:none; padding:0 !important; margin:0 auto !important; max-width:1240px; }
body.single-product .related.products ul.products li.product { width:100% !important; margin:0 !important; background:#fff; border-radius:12px; box-shadow:var(--wes-shadow-md); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
body.single-product .related.products ul.products li.product:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
body.single-product .related.products ul.products li.product img { width:100% !important; aspect-ratio:1/1; object-fit:contain; background:#fbf6ec; padding:16px; margin:0 !important; box-sizing:border-box; }
body.single-product .related.products ul.products li.product .woocommerce-loop-product__title { font-family:'Spectral',serif !important; font-size:15px !important; font-weight:600 !important; padding:14px 16px 6px !important; color:#1c1c1e !important; }
body.single-product .related.products ul.products li.product .price { font-family:'Spectral',serif !important; font-style:italic !important; font-size:18px !important; font-weight:700 !important; color:#8A6A20 !important; padding:0 16px 14px !important; display:block; }
body.single-product .related.products ul.products li.product .button { display:none !important; }
body.single-product .related.products ul.products li.product .onsale { background:#dc2626 !important; color:#fff !important; padding:5px 10px !important; border-radius:4px !important; font-family:'Spectral',serif !important; font-style:italic !important; }
@media (max-width:880px) { body.single-product div.product { grid-template-columns:1fr !important; } body.single-product div.product .summary { position:relative; top:0; } body.single-product .related.products ul.products { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:560px) { body.single-product .related.products ul.products { grid-template-columns:1fr !important; } }

/* Breadcrumbs */
body.single-product .woocommerce-breadcrumb { font-family:'AR One Sans',sans-serif !important; font-size:11px !important; letter-spacing:.14em !important; text-transform:uppercase !important; color:#4a4540 !important; margin:0 0 32px !important; padding:0 !important; font-weight:700; }
body.single-product .woocommerce-breadcrumb a { color:#8A6A20 !important; text-decoration:none !important; }
body.single-product .woocommerce-breadcrumb a:hover { color:#1c1c1e !important; }

/* ===== Sticky scroll CTA bar ===== */
.wes-sp-stickybar { position:fixed; left:0; right:0; bottom:0; background:#fff; box-shadow:0 -8px 24px rgba(0,0,0,.18); transform:translateY(100%); transition:transform .25s cubic-bezier(.4,0,.2,1); z-index:1500; border-top:3px solid #D4A24E; }
.wes-sp-stickybar.is-visible { transform:translateY(0); }
.wes-sp-stickybar-inner { max-width:1280px; margin:0 auto; padding:12px clamp(20px,3vw,32px); display:flex; align-items:center; gap:18px; }
.wes-sp-stickybar-img { width:60px; height:60px; flex-shrink:0; background-size:contain; background-position:center; background-repeat:no-repeat; background-color:#fbf6ec; border-radius:8px; }
.wes-sp-stickybar-text { flex:1; min-width:0; }
.wes-sp-stickybar-name { font-family:'Spectral',serif; font-size:15px; font-weight:600; line-height:1.3; color:#1c1c1e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wes-sp-stickybar-price { font-family:'Spectral',serif; font-style:italic; font-size:18px; font-weight:700; color:#8A6A20; line-height:1.2; }
.wes-sp-stickybar-price del { color:#4a4540; font-style:normal; font-weight:400; margin-right:8px; opacity:.7; }
.wes-sp-stickybar-price ins { text-decoration:none; }
.wes-sp-stickybar-actions { display:flex; gap:10px; align-items:center; flex-shrink:0; }
.wes-sp-stickybar-quote, .wes-sp-stickybar-add { display:inline-flex; align-items:center; gap:6px; padding:12px 20px; border-radius:8px; font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:800; letter-spacing:.10em; text-transform:uppercase; text-decoration:none; transition:all .2s ease; white-space:nowrap; }
.wes-sp-stickybar-quote { background:transparent; color:#8A6A20; border:2px solid #D4A24E; }
.wes-sp-stickybar-quote:hover { background:#D4A24E; color:#fff; }
.wes-sp-stickybar-add { background:linear-gradient(180deg, #D4A24E 0%, #B58A3D 100%); color:#fff; border:0; box-shadow:var(--wes-shadow-sm); }
.wes-sp-stickybar-add:hover { transform:translateY(-1px); box-shadow:var(--wes-shadow-md); filter:brightness(1.05); }
@media (max-width:640px) {
  .wes-sp-stickybar-inner { padding:10px 14px; gap:10px; }
  .wes-sp-stickybar-img { width:44px; height:44px; }
  .wes-sp-stickybar-name { font-size:12.5px; }
  .wes-sp-stickybar-price { font-size:15px; }
  .wes-sp-stickybar-quote { display:none; }
  .wes-sp-stickybar-add { padding:10px 14px; font-size:11px; }
}

/* =============== v1.0.9 â€” B2B PDP additions (Rules #43-#45) =============== */

/* Urgency line â€” truthful same-day countdown */
.wes-sp-urgency { display:inline-flex; align-items:center; gap:8px; background:rgba(212,162,78,.10); border:1px solid rgba(212,162,78,.30); border-radius:6px; padding:8px 14px; margin:0 0 14px; font-family:'AR One Sans',sans-serif; font-size:13px; color:#1c1c1e; }
.wes-sp-urgency strong { color:#8A6A20; font-weight:700; }
.wes-sp-urgency-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#B58A3D; box-shadow:0 0 0 3px rgba(212,162,78,.30); animation:wes-pulse 2.2s ease-in-out infinite; flex-shrink:0; }

/* Price-per-unit */
.wes-sp-ppu { font-family:'AR One Sans',sans-serif; font-size:13px; color:#4a4540; margin:-12px 0 16px; padding:0 0 8px; line-height:1.5; }
.wes-sp-ppu-label { font-weight:700; color:#1c1c1e; letter-spacing:.04em; text-transform:uppercase; font-size:11px; }
.wes-sp-ppu-value { font-family:'Spectral',serif; font-style:italic; font-weight:700; color:#8A6A20; font-size:16px; padding:0 4px; }
.wes-sp-ppu-pack { color:#4a4540; }

/* Identifier triple (UPC + MPN + SKU + copy buttons) */
.wes-sp-ids { display:flex; flex-direction:column; gap:8px; margin:14px 0 18px; padding:14px 16px; background:#fbf6ec; border-radius:8px; border-left:3px solid #D4A24E; }
.wes-sp-id { display:flex; align-items:center; gap:10px; font-family:'AR One Sans',sans-serif; font-size:13px; }
.wes-sp-id-label { font-weight:700; color:#1c1c1e; letter-spacing:.06em; text-transform:uppercase; font-size:10.5px; min-width:90px; }
.wes-sp-id-val { font-family:'SF Mono', Consolas, monospace; font-size:13px; color:#1c1c1e; flex:1; background:#fff; padding:5px 10px; border-radius:5px; border:1px solid rgba(28,26,31,.10); }
.wes-sp-id-copy { background:transparent; border:1px solid rgba(28,26,31,.18); color:#8A6A20; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; border-radius:5px; cursor:pointer; transition:all .15s ease; }
.wes-sp-id-copy:hover { background:#D4A24E; color:#fff; border-color:#D4A24E; }
.wes-sp-id-copy.is-copied { background:#16a34a; color:#fff; border-color:#16a34a; }

/* Multi-location branch stock */
.wes-sp-branches { margin:0 0 16px; background:#fff; border:1px solid rgba(28,26,31,.10); border-radius:8px; padding:0; }
.wes-sp-branches > summary { list-style:none; cursor:pointer; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; font-family:'AR One Sans',sans-serif; font-size:13px; }
.wes-sp-branches > summary::-webkit-details-marker { display:none; }
.wes-sp-branches-title strong { color:#16a34a; font-weight:800; }
.wes-sp-branches-chevron { color:#4a4540; font-size:14px; transition:transform .2s ease; }
.wes-sp-branches[open] .wes-sp-branches-chevron { transform:rotate(180deg); }
.wes-sp-branches-list { list-style:none; padding:0 16px 14px; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:6px 14px; border-top:1px solid rgba(28,26,31,.06); padding-top:10px; }
.wes-sp-branches-list li { display:flex; align-items:center; gap:8px; font-family:'AR One Sans',sans-serif; font-size:12.5px; padding:4px 0; }
.wes-sp-branch-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.wes-sp-branch--ok .wes-sp-branch-dot { background:#16a34a; }
.wes-sp-branch--out .wes-sp-branch-dot { background:rgba(28,26,31,.20); }
.wes-sp-branch-name { flex:1; color:#1c1c1e; font-weight:600; }
.wes-sp-branch-qty { color:#4a4540; font-size:12px; }
.wes-sp-branch-qty strong { color:#1c1c1e; font-weight:700; }
.wes-sp-branch-qty em { color:#dc2626; font-style:normal; font-weight:700; text-transform:uppercase; font-size:10.5px; letter-spacing:.10em; }

/* Authorized distributor logos band */
.wes-sp-authorized { display:flex; align-items:center; gap:12px; margin:12px 0 16px; padding:10px 14px; background:linear-gradient(135deg, rgba(212,162,78,.05), rgba(212,162,78,.12)); border-radius:8px; }
.wes-sp-authorized-label { font-family:'AR One Sans',sans-serif; font-size:10.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#8A6A20; flex-shrink:0; }
.wes-sp-authorized-list { list-style:none; padding:0; margin:0; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.wes-sp-authorized-chip img { max-height:24px; width:auto; display:block; opacity:.85; transition:opacity .2s ease; }
.wes-sp-authorized-chip img:hover { opacity:1; }
.wes-sp-authorized-text { font-family:'Spectral',serif; font-style:italic; font-size:13px; color:#1c1c1e; padding:4px 10px; background:#fff; border-radius:4px; box-shadow:var(--wes-shadow-sm); }

/* Compliance badges */
.wes-sp-compliance { display:flex; align-items:center; gap:12px; margin:0 0 16px; padding:8px 0; flex-wrap:wrap; }
.wes-sp-compliance-label { font-family:'AR One Sans',sans-serif; font-size:10.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#4a4540; flex-shrink:0; }
.wes-sp-compliance-list { list-style:none; padding:0; margin:0; display:flex; gap:8px; flex-wrap:wrap; }
.wes-sp-compliance-badge a { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; background:#fff; border:1px solid rgba(28,26,31,.18); border-radius:14px; font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.04em; color:#1c1c1e; text-decoration:none; transition:all .15s ease; }
.wes-sp-compliance-badge a:hover { background:#1c1c1e; color:#fff; border-color:#1c1c1e; transform:translateY(-1px); }
.wes-sp-compliance-badge strong { color:inherit; font-weight:800; }
.wes-sp-compliance-badge span { color:#8A6A20; font-family:'SF Mono', Consolas, monospace; font-size:10.5px; }
.wes-sp-compliance-badge a:hover span { color:#D4A24E; }

/* Documents section (Rule #45) */
.wes-sp-docs { grid-column:1 / -1 !important; margin-top:48px; padding:clamp(40px,5vw,64px) clamp(24px,3.5vw,48px); background:#fff; border-top:1px solid rgba(28,26,31,.06); border-bottom:1px solid rgba(28,26,31,.06); }
.wes-sp-docs-inner { max-width:1240px; margin:0 auto; }
.wes-sp-docs-head { margin-bottom:24px; }
.wes-sp-docs-head h2 { font-family:'Spectral',serif; font-size:clamp(24px,3vw,36px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:12px 0 0; }
.wes-sp-docs-head h2 em { font-style:italic; color:#8A6A20; }
.wes-sp-docs-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:14px; }
.wes-sp-doc { background:#fbf6ec; border-radius:10px; transition:all .15s ease; }
.wes-sp-doc a { display:flex; align-items:center; gap:14px; padding:18px 22px; text-decoration:none; color:inherit; }
.wes-sp-doc:not(.wes-sp-doc--placeholder):hover { background:#fff; box-shadow:var(--wes-shadow-md); transform:translateY(-2px); }
.wes-sp-doc-icon { color:#8A6A20; flex-shrink:0; }
.wes-sp-doc-label { flex:1; font-family:'AR One Sans',sans-serif; font-size:14.5px; font-weight:600; color:#1c1c1e; }
.wes-sp-doc-arrow { color:#8A6A20; font-weight:700; font-size:18px; transition:transform .15s ease; }
.wes-sp-doc a:hover .wes-sp-doc-arrow { transform:translateY(2px); }
.wes-sp-doc--placeholder { padding:18px 22px; display:flex; align-items:center; gap:14px; opacity:.80; background:repeating-linear-gradient(135deg, #fbf6ec, #fbf6ec 8px, #f4ede0 8px, #f4ede0 16px); }
.wes-sp-doc--placeholder .wes-sp-doc-icon { color:#4a4540; }
.wes-sp-doc--placeholder .wes-sp-doc-label { color:#4a4540; }
.wes-sp-doc-status { flex-shrink:0; font-family:'AR One Sans',sans-serif; font-size:11px; font-style:italic; color:#4a4540; }
.wes-sp-doc-status a { color:#8A6A20; padding:0; display:inline; text-decoration:underline; }
/* Notice banner */
.woocommerce-notices-wrapper, .woocommerce-message, .woocommerce-info { font-family:'AR One Sans',sans-serif !important; border-left:4px solid #D4A24E !important; background:#fffaf0 !important; padding:14px 20px !important; border-radius:2px !important; font-size:14px !important; }

/* SHOP ARCHIVE */
/* Hide WP/Divi sidebar on shop archive AND product category archives */
body.woocommerce.archive #sidebar, body.woocommerce.archive .et_pb_widget_area, body.woocommerce.archive aside.sidebar, body.archive.tax-product_cat #sidebar { display:none !important; }
body.woocommerce.archive #left-area, body.woocommerce.archive #main-content .container, body.archive.tax-product_cat #left-area { width:100% !important; max-width:1400px !important; margin-left:auto !important; margin-right:auto !important; padding:clamp(40px,5vw,80px) clamp(24px,4vw,48px) !important; float:none !important; }
body.woocommerce.archive .page-title, body.archive.tax-product_cat .page-title { font-family:'Spectral',serif !important; font-size:clamp(36px,5vw,64px) !important; font-weight:700 !important; color:#1c1c1e !important; margin:0 0 16px !important; letter-spacing:-0.02em !important; }
body.woocommerce.archive .term-description, body.archive.tax-product_cat .term-description { font-family:'AR One Sans',sans-serif !important; font-size:17px !important; line-height:1.6 !important; color:#4a4540 !important; margin:0 0 32px !important; max-width:60ch !important; }
/* Result count + ordering bar */
body.woocommerce.archive .woocommerce-result-count, body.archive.tax-product_cat .woocommerce-result-count { font-family:'AR One Sans',sans-serif !important; font-size:13px !important; color:#4a4540 !important; margin:0 !important; padding:16px 0 !important; border-top:1px solid rgba(28,26,31,.10); border-bottom:1px solid rgba(28,26,31,.10); }
body.woocommerce.archive form.woocommerce-ordering, body.archive.tax-product_cat form.woocommerce-ordering { float:right !important; margin:8px 0 !important; }
body.woocommerce.archive form.woocommerce-ordering select, body.archive.tax-product_cat form.woocommerce-ordering select { font-family:'AR One Sans',sans-serif !important; font-size:13px !important; padding:8px 32px 8px 14px !important; border:1px solid rgba(28,26,31,.18) !important; border-radius:2px !important; background:#fff !important; color:#1c1c1e !important; cursor:pointer; }
/* Shop product grid */
body.woocommerce.archive ul.products, body.archive.tax-product_cat ul.products { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:24px !important; list-style:none; padding:32px 0 0 !important; margin:0 !important; }
body.woocommerce.archive ul.products::before, body.woocommerce.archive ul.products::after { display:none !important; }
body.woocommerce.archive ul.products li.product, body.archive.tax-product_cat ul.products li.product { width:100% !important; margin:0 !important; padding:0 !important; background:#fff; border-radius:10px; box-shadow:var(--wes-shadow-md); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
body.woocommerce.archive ul.products li.product:hover, body.archive.tax-product_cat ul.products li.product:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
body.woocommerce.archive ul.products li.product a, body.archive.tax-product_cat ul.products li.product a { text-decoration:none; color:inherit; }
body.woocommerce.archive ul.products li.product img, body.archive.tax-product_cat ul.products li.product img { width:100% !important; aspect-ratio:1/1; object-fit:cover; margin:0 !important; }
body.woocommerce.archive ul.products li.product .woocommerce-loop-product__title, body.archive.tax-product_cat ul.products li.product .woocommerce-loop-product__title { font-family:'Spectral',serif !important; font-size:16px !important; font-weight:600 !important; line-height:1.3 !important; color:#1c1c1e !important; padding:16px 18px 6px !important; min-height:60px; }
body.woocommerce.archive ul.products li.product .price, body.archive.tax-product_cat ul.products li.product .price { font-family:'Spectral',serif !important; font-size:18px !important; font-weight:700 !important; color:#1c1c1e !important; padding:0 18px 12px !important; display:block; }
body.woocommerce.archive ul.products li.product .price del, body.archive.tax-product_cat ul.products li.product .price del { color:#4a4540 !important; font-size:14px !important; font-weight:400 !important; margin-right:8px; }
body.woocommerce.archive ul.products li.product .price ins, body.archive.tax-product_cat ul.products li.product .price ins { text-decoration:none !important; color:#1c1c1e !important; }
body.woocommerce.archive ul.products li.product .button, body.archive.tax-product_cat ul.products li.product .button { display:inline-block; margin:0 18px 18px !important; padding:10px 16px !important; background:#1c1c1e !important; color:#fff !important; font-family:'AR One Sans',sans-serif !important; font-size:12px !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; border-radius:2px !important; box-shadow:var(--wes-shadow-md) !important; }
body.woocommerce.archive ul.products li.product .button:hover, body.archive.tax-product_cat ul.products li.product .button:hover { background:#B58A3D !important; color:#1a1d21 !important; }
body.woocommerce.archive ul.products li.product .onsale, body.archive.tax-product_cat ul.products li.product .onsale { background:#dc2626 !important; color:#fff !important; font-family:'Spectral',serif !important; font-style:italic !important; font-weight:700 !important; padding:6px 12px !important; border-radius:2px !important; box-shadow:var(--wes-shadow-md) !important; top:12px !important; right:12px !important; left:auto !important; }
/* Pagination */
body.woocommerce.archive .woocommerce-pagination ul.page-numbers, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers { display:flex !important; gap:6px; justify-content:center; padding:32px 0 !important; border:0 !important; }
body.woocommerce.archive .woocommerce-pagination ul.page-numbers li, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers li { border:0 !important; }
body.woocommerce.archive .woocommerce-pagination ul.page-numbers a, body.woocommerce.archive .woocommerce-pagination ul.page-numbers span, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers a, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers span { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; background:#fff !important; color:#1c1c1e !important; border:1px solid rgba(28,26,31,.12) !important; border-radius:2px !important; font-family:'AR One Sans',sans-serif !important; font-size:14px !important; font-weight:600 !important; text-decoration:none !important; transition:all .2s ease; }
body.woocommerce.archive .woocommerce-pagination ul.page-numbers .current, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers .current { background:#1c1c1e !important; color:#fff !important; border-color:#1c1c1e !important; }
body.woocommerce.archive .woocommerce-pagination ul.page-numbers a:hover, body.archive.tax-product_cat .woocommerce-pagination ul.page-numbers a:hover { background:#D4A24E !important; color:#1a1d21 !important; border-color:#D4A24E !important; }
@media (max-width:1080px) { body.woocommerce.archive ul.products, body.archive.tax-product_cat ul.products { grid-template-columns:repeat(3,1fr) !important; } }
@media (max-width:760px) { body.woocommerce.archive ul.products, body.archive.tax-product_cat ul.products { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:480px) { body.woocommerce.archive ul.products, body.archive.tax-product_cat ul.products { grid-template-columns:1fr !important; } }

/* Override Divi section/row/column overflow + force full-width sections */
.et_pb_section, .et_pb_row, .et_pb_column, .et_pb_module { overflow: visible !important; }
.et_pb_section { width: 100% !important; max-width: none !important; padding: 0 !important; }
.et_pb_row { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.et_pb_column { width: 100% !important; margin: 0 !important; padding: 0 !important; }

/* Header */
.wes-top {
  background: #23222a;
  background-image: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
                    radial-gradient(rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 24px 24px, 36px 36px;
  background-position: 0 0, 12px 12px;
  border-bottom: 3px solid #D4A24E;
  padding: 20px 40px;
  position: relative;
}
.wes-top-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; max-width: 1400px; margin: 0 auto; }
.wes-hamburger { background:none; border:0; cursor:pointer; padding:8px 10px; width:48px; height:40px; display:flex; flex-direction:column; justify-content:space-between; justify-self:start; }
.wes-hamburger span { display:block; width:100%; height:3px; background:#fff; border-radius:2px; transition:background .15s; }
.wes-hamburger:hover span { background:#D4A24E; }
.wes-logo-block { justify-self:center; }
.wes-logo-block img { display:block; max-height:90px; width:auto; }
.wes-top-right { justify-self:end; display:flex; align-items:center; gap:14px; }
.wes-search { display:flex; align-items:center; background:#fff; border-radius:999px; padding:8px 16px; min-width:280px; box-shadow:var(--wes-shadow-inset-sm); }
.wes-search input { border:0; outline:0; flex:1; min-width:0; font-family:'AR One Sans',sans-serif; font-size:14px; padding:4px 8px; background:transparent; }
.wes-search-icon { color:#555; font-size:16px; }
/* Quick-Quote pill in the top nav (Standing Rule #36) */
.wes-top-quickquote {
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(180deg, #D4A24E 0%, #B58A3D 100%);
  color:#fff; border:0; border-radius:999px;
  padding:10px 18px; cursor:pointer;
  font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:var(--wes-shadow-sm);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
  white-space:nowrap;
}
.wes-top-quickquote:hover { transform:translateY(-1px); box-shadow:var(--wes-shadow-md); filter:brightness(1.04); }
.wes-top-quickquote:active { transform:translateY(0); }
.wes-top-quickquote-icon { flex-shrink:0; }
.wes-top-quickquote-label { position:relative; top:1px; }

/* Mega menu overlay - v4: layered with imagery + sub-categories + CTAs per column */
.wes-megamenu {
  position: fixed; inset:0; background: rgba(20,18,26,.985);
  background-image: linear-gradient(rgba(20,18,26,0), rgba(20,18,26,0)), radial-gradient(rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 28px 28px;
  z-index: 9999; display:none; overflow-y:auto;
}
.wes-megamenu.open { display:block; animation: wes-mm-fade .25s ease; }
@keyframes wes-mm-fade { from { opacity:0; } to { opacity:1; } }
/* Mega menu close â€” bigger background contrast for AA compliance */
.wes-megamenu-close { position:absolute; top:28px; right:40px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.35); color:#fff; width:48px; height:48px; border-radius:50%; cursor:pointer; line-height:1; padding:0; font-size:28px; transition:all .15s; }
.wes-megamenu-close:hover { color:#D4A24E; background:rgba(212,162,78,.25); border-color:#D4A24E; }
.wes-megamenu-close:focus-visible { outline:3px solid #D4A24E; outline-offset:2px; }
.wes-megamenu-inner { max-width:1500px; margin:0 auto; padding:80px 48px 56px; }
.wes-megamenu-title { font-family:'Spectral',serif; color:#fff; font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.2em; text-align:center; color:rgba(255,255,255,.5); margin:0 0 56px; }
.wes-megamenu-cols { display:grid; grid-template-columns:repeat(3,1fr); gap:64px; margin-bottom:48px; }
.wes-megamenu-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:8px; overflow:hidden; transition:all .2s; }
.wes-megamenu-card:hover { background:rgba(255,255,255,.05); border-color:rgba(212,162,78,.4); transform:translateY(-2px); }
.wes-megamenu-img { width:100%; aspect-ratio:16/9; background-size:cover; background-position:center; border-bottom:3px solid #D4A24E; }
.wes-megamenu-body { padding:28px 28px 32px; }
.wes-megamenu-body h3 { color:#D4A24E; font-family:'Spectral',serif; font-size:24px; font-weight:700; margin:0 0 8px; letter-spacing:.04em; }
.wes-megamenu-body p.lead { color:rgba(255,255,255,.7); font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.5; margin:0 0 20px; }
.wes-megamenu-sublist { display:grid; grid-template-columns:1fr 1fr; gap:6px 16px; list-style:none; padding:0; margin:0 0 24px; }
.wes-megamenu-sublist li { margin:0; }
.wes-megamenu-sublist a { display:flex; align-items:center; color:rgba(245,241,234,.85); text-decoration:none; font-family:'AR One Sans',sans-serif; font-size:14px; padding:11px 0; min-height:44px; transition:color .15s; }
.wes-megamenu-sublist a:hover { color:#D4A24E; }
.wes-megamenu-sublist a::before { content:'â€º'; margin-right:6px; color:#D4A24E; opacity:.5; transition:opacity .15s; }
.wes-megamenu-sublist a:hover::before { opacity:1; }
.wes-megamenu-card-cta { display:inline-block; color:#D4A24E; font-family:'AR One Sans',sans-serif; font-weight:700; font-size:13px; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; border-bottom:2px solid #D4A24E; padding-bottom:3px; }
.wes-megamenu-card-cta:hover { color:#fff; border-color:#fff; }
.wes-megamenu-quick { background:rgba(255,255,255,.03); border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); padding:32px 0; margin:0 -48px; }
.wes-megamenu-quick-inner { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; max-width:1500px; margin:0 auto; padding:0 48px; }
.wes-megamenu-quick a { display:block; padding:12px 16px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:6px; color:#fff; text-decoration:none; font-family:'AR One Sans',sans-serif; font-size:14px; transition:all .15s; }
.wes-megamenu-quick a:hover { background:rgba(212,162,78,.1); border-color:#D4A24E; color:#D4A24E; }
.wes-megamenu-quick a strong { display:block; font-family:'Spectral',serif; font-size:16px; font-weight:700; color:#D4A24E; margin-bottom:4px; }
.wes-megamenu-cta { text-align:center; margin-top:48px; }
.wes-megamenu-cta a { display:inline-block; background:#D4A24E; color:#1a1d21; padding:18px 40px; font-family:'AR One Sans',sans-serif; font-weight:700; text-decoration:none; letter-spacing:.04em; font-size:16px; margin:0 8px; border-radius:4px; transition:background .15s; }
.wes-megamenu-cta a:hover { background:#E6BE6E; }
.wes-megamenu-cta a.ghost { background:transparent; color:#fff; border:2px solid #D4A24E; }
.wes-megamenu-cta a.ghost:hover { background:rgba(212,162,78,.1); }
@media (max-width: 980px) { .wes-megamenu-cols { grid-template-columns:1fr; gap:24px; } .wes-megamenu-quick-inner { grid-template-columns:1fr 1fr; } }

/* Footer */
.wes-footer { background:#23222a; color:#e6dfd1; padding:64px 32px 24px; border-top:3px solid #D4A24E; }
.wes-footer-inner { max-width:1300px; margin:0 auto; }
.wes-footer-cols { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.wes-footer h4 { color:#D4A24E; font-family:'Spectral',serif; font-size:18px; font-weight:700; margin:0 0 16px; letter-spacing:.05em; text-transform:uppercase; }
.wes-footer ul { list-style:none; padding:0; margin:0; }
.wes-footer li { margin:0; font-size:14px; }
.wes-footer a { color:#e6dfd1; text-decoration:none; display:inline-block; padding:11px 0; min-height:44px; line-height:1.4; }
.wes-footer a:hover { color:#D4A24E; }
/* WCAG 2.5.8 â€” WordPress default page-list widget items (Privacy / Refund / Terms etc. when rendered by Divi/WC defaults). */
.page_item a, .et_pb_widget li a, body .widget_pages li a, body.woocommerce .widget li a {
  display:inline-block; padding:8px 4px; min-height:24px; line-height:1.5;
}
.wes-footer-brand img { display:block; max-width:240px; margin-bottom:16px; }
.wes-footer-tagline { font-size:14px; line-height:1.6; color:#bbb; }
.wes-footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:13px; color:#9a9a9a; }

/* Brand strip - logos sized to 200x200 per user feedback */
.wes-brand-strip { background:#fff; padding:64px 40px; border-top:1px solid #e0d7c5; border-bottom:1px solid #e0d7c5; }
.wes-brand-strip-inner { max-width:1400px; margin:0 auto; }
.wes-brand-strip-title { font-family:'Spectral',serif; font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:#888; text-align:center; margin:0 0 48px; }
.wes-brand-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:40px; align-items:center; justify-items:center; }
.wes-brand-grid img { width:200px; height:200px; max-width:100%; object-fit:contain; opacity:.85; transition:opacity .15s; display:block; }
.wes-brand-grid img:hover { opacity:1; }
@media (max-width: 1100px) { .wes-brand-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width: 640px) { .wes-brand-grid { grid-template-columns:repeat(2,1fr); } .wes-brand-grid img { width:140px; height:140px; } }

/* Hero slider â€” editorial heritage treatment: big serif headline, eyebrow, two-CTA pair */
.wes-hero { position:relative; min-height:640px; display:flex; align-items:center; justify-content:flex-start; padding:0; overflow:hidden; }
.wes-hero-slide { position:absolute; inset:0; background:#222 center/cover no-repeat; opacity:0; transition:opacity 1s ease; display:flex; align-items:center; }
.wes-hero-slide.active { opacity:1; }
.wes-hero-slide::before { content:''; position:absolute; inset:0; background:linear-gradient(105deg, rgba(20,18,22,.85) 0%, rgba(20,18,22,.55) 50%, rgba(20,18,22,.25) 100%); }
.wes-hero-content { position:relative; max-width:720px; margin:0; padding:120px 64px 120px 80px; color:#fff; }
.wes-hero-eyebrow { display:inline-block; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:#D4A24E; padding:6px 14px; border:1px solid #D4A24E; border-radius:2px; margin-bottom:24px; }
.wes-hero-content h1, .wes-hero-content h2 { color:#fff; font-family:'Spectral',serif; font-size:clamp(40px,5.5vw,72px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; margin:0 0 20px; text-shadow:0 2px 16px rgba(0,0,0,.45); }
.wes-hero-content p { color:#f5f1ea; font-family:'AR One Sans',sans-serif; font-size:clamp(17px,1.4vw,21px); line-height:1.5; margin:0 0 32px; max-width:560px; }
.wes-hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.wes-hero-cta { display:inline-flex; align-items:center; background:#D4A24E; color:#1a1d21; padding:16px 32px; font-family:'AR One Sans',sans-serif; font-weight:700; text-decoration:none; letter-spacing:.06em; font-size:14px; text-transform:uppercase; border-radius:2px; transition:all .2s ease; min-height:48px; box-shadow:var(--wes-shadow-gold-md); }
.wes-hero-cta:hover { background:#E6BE6E; transform:translateY(-2px); box-shadow:var(--wes-shadow-gold-lg); }
/* Ghost variant: defaults to dark-hero usage (white text on dark bg).
   Light-bg usages override border-color + color inline (see editorial intro).
   Both get a depth shadow â€” the dark-bg version uses a deeper rgba so it
   reads against the dark backdrop. */
.wes-hero-cta--ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.4); box-shadow:var(--wes-shadow-on-dark-md); }
.wes-hero-cta--ghost:hover { background:rgba(255,255,255,.08); border-color:#fff; transform:translateY(-2px); box-shadow:var(--wes-shadow-on-dark-lg); }
/* Light-bg ghost: when inline-overridden to dark text/border, get a subtle resting shadow too */
.wes-hero-cta--ghost[style*="color"] { box-shadow:var(--wes-shadow-md); }
.wes-hero-cta--ghost[style*="color"]:hover { background:#1c1c1e; color:#fff !important; border-color:#1c1c1e !important; box-shadow:var(--wes-shadow-lg); transform:translateY(-2px); }

/* Stats band â€” establishes credibility under hero. Generous padding per visual audit. */
.wes-stats-band { background:#1c1a1f; color:#fff; padding:clamp(72px,9vw,104px) 24px; border-bottom:3px solid #D4A24E; }
.wes-stats-inner { max-width:1300px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; }
.wes-stat-block { position:relative; padding:0 16px; }
.wes-stat-block:not(:last-child)::after { content:''; position:absolute; right:-16px; top:50%; transform:translateY(-50%); width:1px; height:60px; background:rgba(255,255,255,.12); }
.wes-stat-value { font-family:'Spectral',serif; font-size:clamp(40px,4.5vw,56px); font-weight:800; line-height:1; color:#D4A24E; margin-bottom:8px; }
.wes-stat-label { font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.85); }
.wes-stat-sub { font-family:'AR One Sans',sans-serif; font-size:12px; color:rgba(255,255,255,.5); margin-top:4px; }

/* Editorial intro: copy left, image right.
   FIXED 2026-05-21: image column was 1.2fr making it too dominant + bleed off-screen
   on smaller viewports. Now 1fr 1fr with max-width on the image itself so it never
   overflows its column. */
.wes-intro-editorial { padding:clamp(64px,8vw,112px) 0; background:#fff; overflow:hidden; }
.wes-intro-editorial-grid { max-width:1400px; width:100%; margin:0 auto; padding-inline:clamp(24px,4vw,48px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,5vw,80px); align-items:center; box-sizing:border-box; }
.wes-intro-editorial-copy { min-width:0; }
.wes-intro-eyebrow { display:block; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#8A6A20; margin-bottom:16px; }
.wes-intro-editorial h2 { font-family:'Spectral',serif; font-size:clamp(32px,3.5vw,48px); font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:#1c1c1e; margin:0 0 24px; }
.wes-intro-editorial p { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.75; color:#4a4540; margin:0 0 20px; max-width:55ch; }
.wes-intro-editorial-image { position:relative; min-width:0; max-width:520px; justify-self:end; }
/* Editorial image: use filter:drop-shadow on the IMG (not box-shadow)
   because filter:drop-shadow follows the RENDERED ALPHA, which means it
   precisely follows the border-radius rounding. With box-shadow, a 40px
   blur on a 48px radius washes out the corner curve and the shadow reads
   as rectangular. drop-shadow has no such problem â€” the shadow is the
   silhouette of the visible image. Standing Rule #24 enforces this. */
.wes-intro-editorial-image img {
  display:block; width:100%; height:auto; max-height:640px;
  aspect-ratio:4/5; object-fit:cover;
  border-radius:clamp(40px,6vw,64px);
  /* Two-layer drop-shadow for real visible elevation. The previous
     single 0.18-opacity layer was too faint to perceive â€” Keven called
     this out 2026-05-21. shadow_audit's shadow_too_subtle detector now
     enforces a minimum visibility score (alpha Ã— blur). */
  filter:
    drop-shadow(0 6px 12px rgba(28,26,31,0.18))
    drop-shadow(0 22px 44px rgba(28,26,31,0.28));
}
.wes-intro-editorial-image::before { content:''; position:absolute; left:-24px; bottom:-24px; width:120px; height:120px; border:2px solid #D4A24E; opacity:.4; z-index:-1; border-radius:8px; }
@media (max-width:880px) {
  .wes-intro-editorial-grid { grid-template-columns:1fr; gap:48px; }
  .wes-intro-editorial-image { max-width:100%; justify-self:stretch; }
  .wes-intro-editorial-image img { aspect-ratio:5/4; max-height:480px; border-radius:clamp(28px,6vw,40px); filter:drop-shadow(0 4px 8px rgba(28,26,31,0.16)) drop-shadow(0 16px 32px rgba(28,26,31,0.24)); }
}

/* 3 big category tiles */
.wes-cat-hero { padding:clamp(64px,8vw,96px) 24px; background:#fbf6ec; }
.wes-cat-hero-inner { max-width:1500px; margin:0 auto; }
.wes-cat-hero-head { text-align:center; margin-bottom:56px; }
.wes-cat-hero-head h2 { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; color:#1c1c1e; margin:0 0 12px; }
.wes-cat-hero-head p { font-family:'AR One Sans',sans-serif; font-size:17px; line-height:1.6; color:#4a4540; max-width:65ch; margin:0 auto; }
.wes-cat-hero-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.wes-cat-tile { position:relative; display:block; aspect-ratio:3/4; background:#222 center/cover no-repeat; text-decoration:none; color:#fff; overflow:hidden; border-radius:2px; transition:transform .3s ease; }
.wes-cat-tile::before { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.6) 45%, rgba(0,0,0,.15) 100%); }
.wes-cat-tile:hover { transform:translateY(-6px); }
.wes-cat-tile:hover::before { background:linear-gradient(to top, rgba(20,18,22,.95) 0%, rgba(20,18,22,.7) 45%, rgba(212,162,78,.25) 100%); }
.wes-cat-tile-inner { position:relative; height:100%; padding:32px; display:flex; flex-direction:column; justify-content:flex-end; }
.wes-cat-tile-eyebrow { font-family:'AR One Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#D4A24E; margin-bottom:8px; }
.wes-cat-tile h3 { font-family:'Spectral',serif; font-size:clamp(28px,3vw,36px); font-weight:700; line-height:1.1; color:#fff; margin:0 0 12px; }
.wes-cat-tile p { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.55; color:rgba(255,255,255,.88); margin:0 0 20px; }
.wes-cat-tile-sublist { display:flex; flex-wrap:wrap; gap:6px 12px; margin:0 0 24px; padding:0; list-style:none; font-family:'AR One Sans',sans-serif; font-size:13px; color:rgba(255,255,255,.7); }
.wes-cat-tile-sublist li { padding-right:12px; border-right:1px solid rgba(255,255,255,.18); }
.wes-cat-tile-sublist li:last-child { border-right:0; }
.wes-cat-tile-cta { display:inline-flex; align-items:center; gap:8px; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#D4A24E; }
.wes-cat-tile-cta::after { content:'â†’'; transition:transform .2s ease; }
.wes-cat-tile:hover .wes-cat-tile-cta::after { transform:translateX(6px); }

/* Full-bleed showroom poster (replaces the round-photos section) */
.wes-poster { position:relative; min-height:560px; background:#222 center/cover no-repeat; display:flex; align-items:center; }
.wes-poster::before { content:''; position:absolute; inset:0; background:linear-gradient(95deg, rgba(20,18,22,.85) 0%, rgba(20,18,22,.4) 60%, rgba(20,18,22,.15) 100%); }
.wes-poster-content { position:relative; max-width:640px; margin-left:clamp(24px,8vw,120px); padding:80px 24px; color:#fff; }
.wes-poster-eyebrow { display:inline-block; font-family:'AR One Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#D4A24E; margin-bottom:16px; }
.wes-poster h2 { font-family:'Spectral',serif; font-size:clamp(36px,4.5vw,64px); font-weight:700; line-height:1.05; letter-spacing:-0.02em; color:#fff; margin:0 0 24px; }
.wes-poster p { font-family:'AR One Sans',sans-serif; font-size:clamp(16px,1.3vw,19px); line-height:1.6; color:rgba(255,255,255,.85); margin:0 0 32px; }

/* Pull-quote: editorial testimonial */
.wes-pullquote { padding:clamp(80px,10vw,128px) 24px; background:#fff; position:relative; }
/* Override Divi's default blockquote blue border on the editorial pullquote */
.wes-pullquote blockquote { border-left:0 !important; padding-left:0 !important; margin:0 !important; }
.wes-pullquote::before { content:'"'; position:absolute; top:24px; left:50%; transform:translateX(-50%); font-family:'Spectral',serif; font-size:240px; font-weight:700; color:#D4A24E; opacity:.15; line-height:1; pointer-events:none; }
.wes-pullquote-inner { position:relative; max-width:880px; margin:0 auto; text-align:center; }
.wes-pullquote blockquote { font-family:'Spectral',serif; font-style:italic; font-size:clamp(24px,2.5vw,34px); font-weight:500; line-height:1.4; color:#1c1c1e; margin:0 0 32px; }
.wes-pullquote-rule { width:60px; height:2px; background:#D4A24E; margin:0 auto 24px; }
.wes-pullquote cite { display:block; font-family:'AR One Sans',sans-serif; font-style:normal; font-size:15px; font-weight:700; color:#1c1c1e; letter-spacing:.02em; }
.wes-pullquote-role { font-family:'AR One Sans',sans-serif; font-size:14px; color:#4a4540; margin-top:4px; font-weight:400; }

/* Why-us: icon-blurb cards (replaces the bare-text version) */
.wes-why { padding:clamp(64px,8vw,96px) 24px; background:#fbf6ec; }
.wes-why-inner { max-width:1400px; margin:0 auto; }
.wes-why-head { text-align:center; margin-bottom:56px; }
.wes-why-head h2 { font-family:'Spectral',serif; font-size:clamp(32px,4vw,48px); font-weight:700; line-height:1.1; color:#1c1c1e; margin:0; }
.wes-why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.wes-why-card { background:#fff; padding:40px 32px; border-radius:2px; border-top:3px solid #D4A24E; box-shadow:var(--wes-shadow-md); transition:transform .2s ease, box-shadow .2s ease; }
.wes-why-card:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-lg); }
.wes-why-card-icon { width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center; background:#fbf6ec; color:#8A6A20; font-size:22px; margin-bottom:20px; }
.wes-why-card h3 { font-family:'Spectral',serif; font-size:24px; font-weight:700; line-height:1.2; color:#1c1c1e; margin:0 0 12px; }
.wes-why-card p { font-family:'AR One Sans',sans-serif; font-size:15px; line-height:1.7; color:#4a4540; margin:0 0 16px; }
.wes-why-card-stat { display:inline-block; font-family:'Spectral',serif; font-size:14px; font-weight:700; color:#8A6A20; padding-top:12px; border-top:1px solid #e0d7c5; width:100%; }

/* Location card "Flagship" badge */
.wes-location-card { position:relative; }
.wes-location-badge { position:absolute; top:16px; left:16px; padding:5px 10px; background:#D4A24E; color:#1a1d21; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; z-index:2; }
.wes-location-badge--flagship { background:#fff; color:#1c1c1e; border:1px solid #D4A24E; }

/* Fixed Featured Products card â€” visible card background */
.wes-product-card { background:#fff; }
.wes-product-img { background:#fbf6ec; }
/* Hero dot nav â€” visually small (10Ã—10 dot) but with 44Ã—44 hit area for touch (WCAG 2.5.5) */
.wes-hero-dots { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:0; z-index:2; }
.wes-hero-dots button {
  width:44px; height:44px; border-radius:50%; background:transparent; border:0; cursor:pointer; padding:0;
  position:relative; transition:background .15s;
}
.wes-hero-dots button::after {
  content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.4); transition:background .15s;
}
.wes-hero-dots button:hover::after { background:rgba(255,255,255,.7); }
.wes-hero-dots button.active::after { background:#D4A24E; transform:translate(-50%,-50%) scale(1.3); }
.wes-hero-dots button:focus-visible { outline:2px solid #D4A24E; outline-offset:-2px; }

/* Section container */
.wes-section { padding:80px 40px; }
.wes-section-inner { max-width:1300px; margin:0 auto; }
.wes-section h2 { font-family:'Spectral',serif; font-size:40px; font-weight:700; color:#1c1c1e; margin:0 0 16px; line-height:1.15; }
.wes-section .lead { font-family:'AR One Sans',sans-serif; font-size:18px; line-height:1.6; color:#4a4540; max-width:65ch; }
.wes-section p { max-width:65ch; }
.wes-section[style*="text-align:center"] p, .wes-section .wes-section-inner[style*="text-align:center"] p { margin-inline:auto; }

/* Showroom round photos */
.wes-showroom-row { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:1100px; margin:48px auto 0; }
.wes-showroom-row img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; box-shadow:var(--wes-shadow-xl); }

/* Category card grid */
.wes-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.wes-cat-card { display:block; text-decoration:none; color:#1c1c1e; background:#fff; border-radius:6px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:transform .15s, box-shadow .15s; }
.wes-cat-card:hover { transform:translateY(-4px); box-shadow:var(--wes-shadow-lg); }
.wes-cat-card-img { aspect-ratio:4/3; background-color:#eee; background-size:cover; background-position:center; }
.wes-cat-card-label { padding:18px 20px; font-family:'AR One Sans',sans-serif; font-weight:700; font-size:16px; text-transform:uppercase; letter-spacing:.05em; border-top:3px solid #D4A24E; }

/* Locations 4-card grid */
.wes-locations-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
.wes-location-card { background:#fff; border-radius:6px; overflow:hidden; box-shadow:var(--wes-shadow-md); transition:transform .2s ease, box-shadow .2s ease; }
.wes-location-card:hover { transform:translateY(-3px); box-shadow:var(--wes-shadow-lg); }
.wes-location-card img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.wes-location-card-body { padding:24px; }
.wes-location-card h3 { font-family:'Spectral',serif; font-size:24px; font-weight:700; margin:0 0 8px; color:#1c1c1e; }
.wes-location-card p { font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.5; color:#4a4540; margin:0 0 16px; }
.wes-location-card a.cta { display:inline-flex; align-items:center; color:#8A6A20; font-family:'AR One Sans',sans-serif; font-weight:700; font-size:14px; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid #D4A24E; padding:11px 0 9px; min-height:44px; }

/* Generic content blocks */
.wes-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.wes-split img { display:block; width:100%; height:auto; border-radius:4px; }
.wes-split h2 { margin-top:0; }
.wes-cta-band { background:#23222a; color:#fff; text-align:center; padding:72px 32px; }
.wes-cta-band h2 { color:#fff; }
.wes-cta-band p { color:#e6dfd1; max-width:680px; margin:0 auto 28px; }
.wes-cta-band .wes-hero-cta { background:#D4A24E; }

/* Featured Products slider */
.wes-products { background:#fff; padding:80px 24px; }
.wes-products-inner { max-width:1400px; margin:0 auto; }
.wes-products-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:32px; flex-wrap:wrap; }
.wes-products-head h2 { font-family:'Spectral',serif; font-size:36px; font-weight:700; color:#1c1c1e; margin:0; line-height:1.15; }
.wes-products-head p { font-family:'AR One Sans',sans-serif; font-size:15px; color:#4a4540; margin:0; }
.wes-products-scroll { overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:8px 4px 24px; scrollbar-width:thin; scrollbar-color:#D4A24E transparent; }
.wes-products-scroll::-webkit-scrollbar { height:8px; }
.wes-products-scroll::-webkit-scrollbar-thumb { background:#D4A24E; border-radius:4px; }
.wes-products-track { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px,1fr); gap:20px; }
.wes-product-card { background:#fff; border:1px solid #e0d7c5; border-radius:8px; overflow:hidden; scroll-snap-align:start; transition:all .2s; display:flex; flex-direction:column; box-shadow:var(--wes-shadow-sm); }
.wes-product-card:hover { box-shadow:var(--wes-shadow-lg); transform:translateY(-4px); border-color:#D4A24E; }
.wes-product-img { aspect-ratio:1; background:#fafafa; padding:24px; display:flex; align-items:center; justify-content:center; border-bottom:1px solid #e0d7c5; }
.wes-product-img img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.wes-product-body { padding:20px; flex:1; display:flex; flex-direction:column; gap:8px; }
.wes-product-category { font-family:'AR One Sans',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#8A6A20; }
.wes-product-title { font-family:'Spectral',serif; font-size:18px; font-weight:700; color:#1c1c1e; line-height:1.3; margin:0; }
.wes-product-brand { font-family:'AR One Sans',sans-serif; font-size:13px; color:#4a4540; margin:0; flex:1; }
.wes-product-cta { display:inline-flex; align-items:center; color:#8A6A20; font-family:'AR One Sans',sans-serif; font-weight:700; font-size:13px; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid #D4A24E; padding:11px 0 9px; min-height:44px; align-self:flex-start; }
.wes-product-cta:hover { color:#1c1c1e; border-color:#1c1c1e; }
.wes-products-controls { display:flex; gap:10px; }
.wes-products-controls button { width:44px; height:44px; border-radius:50%; background:#fff; border:2px solid #e0d7c5; color:#1c1c1e; font-size:18px; cursor:pointer; transition:all .15s; }
.wes-products-controls button:hover { background:#D4A24E; border-color:#D4A24E; color:#fff; }

/* MOBILE-FIRST RESPONSIVE OVERRIDES (Standing Rule #13)
   Base styles above target tablet/desktop. The min-width queries below
   IMPROVE things at larger sizes, max-width queries fix smaller sizes. */

/* Tablet (481-980px) */
@media (max-width: 980px) {
  .wes-brand-grid { grid-template-columns:repeat(3,1fr); gap:24px; }
  .wes-brand-grid img { width:160px; height:160px; }
  .wes-cat-grid, .wes-locations-grid { grid-template-columns:repeat(2,1fr); }
  .wes-megamenu-cols { grid-template-columns:1fr; gap:24px; }
  .wes-megamenu-quick-inner { grid-template-columns:1fr 1fr; }
  .wes-top { padding:14px 20px; }
  .wes-top-grid { grid-template-columns:auto 1fr auto; gap:16px; }
  .wes-logo-block img { max-height:60px; }
  .wes-search { min-width:200px; padding:6px 12px; }
  .wes-top-quickquote { padding:8px 14px; font-size:12px; }
  .wes-top-quickquote-label { display:inline; }
  .wes-hero { min-height:540px; }
  .wes-hero-content { padding:80px 32px; max-width:100%; }
  .wes-split { grid-template-columns:1fr; gap:32px; }
  .wes-footer-cols { grid-template-columns:1fr 1fr; gap:32px; }
  .wes-section { padding:56px 24px; }
  .wes-section h2 { font-size:32px; }
  .wes-products { padding:56px 16px; }
  .wes-products-head h2 { font-size:28px; }
  .wes-products-track { grid-auto-columns:minmax(220px,1fr); }
  /* New editorial sections */
  .wes-stats-inner { grid-template-columns:repeat(2,1fr); gap:32px 24px; }
  .wes-stat-block:nth-child(2)::after { display:none; }
  .wes-intro-editorial-grid { grid-template-columns:1fr; gap:48px; }
  .wes-intro-editorial-copy { padding-left:24px; padding-right:24px; }
  .wes-intro-editorial-image::before { display:none; }
  .wes-cat-hero-grid { grid-template-columns:1fr; gap:20px; }
  .wes-cat-tile { aspect-ratio:16/10; }
  .wes-poster { min-height:460px; }
  .wes-poster-content { margin-left:24px; margin-right:24px; padding:56px 0; }
  .wes-pullquote { padding:64px 24px; }
  .wes-why-grid { grid-template-columns:1fr; gap:20px; }
}

/* Mobile (â‰¤480px) */
@media (max-width: 640px) {
  .wes-brand-grid { grid-template-columns:repeat(2,1fr); gap:16px; }
  .wes-brand-grid img { width:120px; height:120px; }
  .wes-cat-grid, .wes-locations-grid { grid-template-columns:1fr; }
  .wes-showroom-row { grid-template-columns:1fr; max-width:320px; }
  .wes-megamenu-quick-inner { grid-template-columns:1fr; }
  .wes-megamenu-inner { padding:48px 20px 32px; }
  .wes-megamenu-close { top:16px; right:16px; width:40px; height:40px; }
  .wes-megamenu-body { padding:20px 20px 24px; }
  .wes-megamenu-sublist { grid-template-columns:1fr; gap:4px 0; }
  .wes-top { padding:12px 16px; }
  .wes-top-grid { grid-template-columns:auto 1fr auto; gap:8px; }
  .wes-logo-block img { max-height:48px; }
  .wes-top-right { gap:8px; }
  .wes-search { min-width:0; max-width:140px; }
  .wes-search input { font-size:13px; min-width:0; width:100%; }
  .wes-top-quickquote { padding:8px 10px; font-size:0; gap:0; }
  .wes-top-quickquote-label { display:none; }
  .wes-top-quickquote-icon { width:20px; height:20px; }
  .wes-hamburger { width:40px; height:36px; }
  .wes-hero { min-height:480px; }
  .wes-hero-content { padding:64px 24px 56px; }
  .wes-hero-eyebrow { font-size:11px; padding:4px 10px; }
  .wes-stats-band { padding:32px 16px; }
  .wes-stats-inner { grid-template-columns:1fr 1fr; gap:24px 16px; }
  .wes-stat-block::after { display:none !important; }
  .wes-stat-value { font-size:32px; }
  .wes-poster { min-height:400px; }
  .wes-pullquote::before { font-size:160px; top:8px; }
  .wes-pullquote blockquote { font-size:22px; }
  .wes-hero-cta, .wes-products-controls button { min-height:44px; } /* 44px touch target minimum */
  .wes-footer-cols { grid-template-columns:1fr; gap:32px; }
  .wes-footer { padding:48px 20px 24px; }
  .wes-section { padding:40px 16px; }
  .wes-section h2 { font-size:26px; }
  .wes-section .lead { font-size:15px; }
  .wes-products { padding:48px 16px; }
  .wes-products-head h2 { font-size:24px; }
  .wes-products-track { grid-auto-columns:minmax(78vw,1fr); } /* one card mostly visible on phones */
  .wes-product-title { font-size:16px; }
  .wes-cta-band { padding:48px 20px; }
  .wes-cta-band h2 { font-size:28px; }
  .wes-cta-band p { font-size:16px; }
  /* Anti-overflow safety */
  html, body { overflow-x:hidden; }
}

/* === K&A location open-now badge (.wes-loc-pro__open; JS already global) === */
.wes-loc-pro__open{display:none;align-items:center;gap:7px;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:5px 11px 5px 10px;border-radius:999px;border:1px solid #e7dcc4;background:#faf4ea;color:#6b6256;line-height:1;margin:2px 0 13px;}
.wes-loc-pro__open::before{content:"";width:7px;height:7px;border-radius:50%;background:#9ca3af;flex:0 0 auto;}
.wes-loc-pro__open.is-open{background:#eef8ef;border-color:#bfe3c4;color:#15803d;}
.wes-loc-pro__open.is-open::before{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18);animation:wes-pulse 2s ease-in-out infinite;}
.wes-loc-pro__open.is-closed{background:#f7f1ea;color:#9b6b6b;}
.wes-loc-pro__open.is-closed::before{background:#dc2626;}
/* === end K&A location open-now badge === */

/* === K&A location-hero open-now pill (.ka-loc-status-pill; site-wide JS adds is-open/is-closed) === */
.ka-loc-status-pill.is-open{background:#eef8ef!important;color:#15803d!important;border:1px solid #bfe3c4!important;}
.ka-loc-status-pill.is-closed{background:#f6efe9!important;color:#a25b54!important;border:1px solid #e7d3cf!important;}
/* === end K&A location-hero open-now pill === */

/* ===== K&A: shop v2 (Amazon-style left-rail browser) â€” scoped to .wes-shop2 ===== */
/* Delivered via POST /wes-agent/v1/assets/global (echoed in wp_footer). Brand-styled
   from brand.json tokens with hex fallbacks so it is robust if a var is missing. */
.wes-shop2{
  --s2-gold: var(--brand-accent, #D4A24E);
  --s2-gold-d: var(--brand-accent-hover, #B58A3D);
  --s2-ink: var(--brand-text, #1c1c1e);
  --s2-muted: var(--brand-text-muted, #4a4540);
  --s2-dark: var(--brand-dark-section, #23222a);
  --s2-cream: var(--brand-bg, #fbf6ec);
  --s2-surface: var(--brand-surface, #ffffff);
  --s2-border: var(--brand-border, #e0d7c5);
  --s2-border-soft: var(--brand-border-soft, #eee5da);
  --s2-disp: var(--brand-font-display, 'Spectral', Georgia, serif);
  --s2-body: var(--brand-font-body, 'AR One Sans', system-ui, sans-serif);
  --s2-shadow: var(--wes-shadow-md, 0 4px 20px rgba(0,0,0,.08));
  --s2-shadow-lg: var(--wes-shadow-lg, 0 14px 40px rgba(0,0,0,.14));
  --s2-rail-w: 264px;
  background: var(--s2-cream);
  color: var(--s2-ink);
  font-family: var(--s2-body);
  padding: clamp(28px,4vw,56px) clamp(16px,4vw,56px) clamp(40px,6vw,80px);
  -webkit-font-smoothing: antialiased;
}
.wes-shop2 *{ box-sizing: border-box; }
.wes-shop2 a{ color: inherit; text-decoration: none; }

/* ---- header ---- */
.wes-shop2 .s2-head{ max-width: 1320px; margin: 0 auto clamp(20px,3vw,34px); text-align: center; }
.wes-shop2 .s2-eyebrow{
  font-family: var(--s2-body); font-size: 13px; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: var(--s2-gold-d); margin: 0 0 10px;
}
.wes-shop2 .s2-eyebrow::before,.wes-shop2 .s2-eyebrow::after{ content:"â€”"; margin:0 .5em; color: var(--s2-gold); opacity:.7; }
.wes-shop2 .s2-title{
  font-family: var(--s2-disp); font-weight: 800; color: var(--s2-ink);
  font-size: clamp(34px,5vw,58px); line-height: 1.05; margin: 0 0 12px; letter-spacing: -.01em;
}
.wes-shop2 .s2-title em{ font-style: italic; color: var(--s2-gold-d); }
.wes-shop2 .s2-lede{
  max-width: 640px; margin: 0 auto; color: var(--s2-muted);
  font-size: clamp(15px,1.5vw,18px); line-height: 1.6;
}

/* ---- search bar ---- */
.wes-shop2 .s2-searchwrap{ max-width: 1320px; margin: 0 auto clamp(20px,3vw,30px); }
.wes-shop2 .s2-searchbar{
  position: relative; display: flex; align-items: center; gap: 12px;
  background: var(--s2-surface); border: 1.5px solid var(--s2-border);
  border-radius: 999px; padding: 6px 6px 6px 22px; box-shadow: var(--s2-shadow);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.wes-shop2 .s2-searchbar:focus-within{ border-color: var(--s2-gold); box-shadow: 0 0 0 4px rgba(212,162,78,.18), var(--s2-shadow-lg); }
.wes-shop2 .s2-search-ico{ flex:0 0 auto; width:22px; height:22px; color: var(--s2-gold-d); }
.wes-shop2 .s2-search{
  flex:1 1 auto; border:0; outline:0; background:transparent; min-width:0;
  font-family: var(--s2-body); font-size: clamp(15px,1.6vw,18px); color: var(--s2-ink); padding: 14px 0;
}
.wes-shop2 .s2-search::placeholder{ color:#9a9088; }
.wes-shop2 .s2-search-clear{
  display:none; flex:0 0 auto; width:30px; height:30px; margin-right:4px; border:0; cursor:pointer;
  align-items:center; justify-content:center; border-radius:999px; background:#efe7d8; color:var(--s2-muted);
}
.wes-shop2 .s2-search-clear:hover{ background:#e6dcc8; color:var(--s2-ink); }
.wes-shop2 .s2-search-submit{
  flex:0 0 auto; border:0; cursor:pointer; border-radius:999px;
  background: linear-gradient(180deg,var(--s2-gold),var(--s2-gold-d)); color:#1c1c1e;
  font-family: var(--s2-body); font-weight:700; font-size:15px; letter-spacing:.02em;
  padding: 13px 26px; box-shadow: var(--wes-shadow-gold-md, 0 6px 18px rgba(212,162,78,.4));
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wes-shop2 .s2-search-submit:hover{ transform: translateY(-1px); filter: brightness(1.04); }

/* ---- body grid: rail + main ---- */
.wes-shop2 .s2-body{
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: var(--s2-rail-w) 1fr; gap: clamp(20px,2.4vw,36px);
  align-items: start;
}

/* ---- left rail ---- */
.wes-shop2 .s2-rail{
  position: sticky; top: 96px; align-self: start;
  background: var(--s2-surface); border:1px solid var(--s2-border-soft); border-radius: 14px;
  box-shadow: var(--s2-shadow); padding: 6px 4px;
  /* Cap to the viewport so a tall rail scrolls internally instead of being cut off. */
  max-height: calc(100vh - 112px); overflow-y: auto; overflow-x: hidden;
  scrollbar-width: thin; scrollbar-color: #e2d8c6 transparent; overscroll-behavior: contain;
}
.wes-shop2 .s2-rail::-webkit-scrollbar{ width:10px; }
.wes-shop2 .s2-rail::-webkit-scrollbar-thumb{ background:#e2d8c6; border-radius:10px; border:2px solid var(--s2-surface); }
.wes-shop2 .s2-rail::-webkit-scrollbar-track{ background:transparent; }
.wes-shop2 .s2-rail-toggle{ display:none; }
.wes-shop2 .s2-chev{ display:inline-flex; align-items:center; color:var(--s2-muted); }
.wes-shop2 .s2-group{ padding: 18px 18px; border-bottom:1px solid var(--s2-border-soft); }
.wes-shop2 .s2-group:last-child{ border-bottom:0; }
.wes-shop2 .s2-group-title{
  font-family: var(--s2-body); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color: var(--s2-muted); margin:0 0 12px; display:flex; align-items:center; gap:8px;
}
.wes-shop2 .s2-group-title::after{ content:""; flex:1; height:1px; background:var(--s2-border-soft); }

/* category list */
.wes-shop2 .s2-catlist{ display:flex; flex-direction:column; gap:2px; }
.wes-shop2 .s2-cat{
  display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%;
  border:0; background:transparent; cursor:pointer; text-align:left;
  font-family:var(--s2-body); font-size:14.5px; color:var(--s2-ink);
  padding:8px 10px; border-radius:8px; transition: background .14s ease, color .14s ease;
}
.wes-shop2 .s2-cat:hover{ background:#f6efe1; }
.wes-shop2 .s2-cat .s2-cat-n{ font-size:12px; color:#9a9088; font-variant-numeric:tabular-nums; }
.wes-shop2 .s2-cat[aria-pressed="true"]{ background:var(--s2-ink); color:#fff; font-weight:600; }
.wes-shop2 .s2-cat[aria-pressed="true"] .s2-cat-n{ color:rgba(255,255,255,.7); }

/* price + toggles */
.wes-shop2 .s2-price{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.wes-shop2 .s2-price button,.wes-shop2 .s2-toggle{
  border:1.5px solid var(--s2-border); background:#fff; cursor:pointer;
  font-family:var(--s2-body); font-size:13.5px; color:var(--s2-ink);
  padding:9px 10px; border-radius:8px; transition: all .14s ease;
}
.wes-shop2 .s2-price button:hover,.wes-shop2 .s2-toggle:hover{ border-color:var(--s2-gold); }
.wes-shop2 .s2-price button[aria-pressed="true"]{ background:var(--s2-gold); border-color:var(--s2-gold); color:#1c1c1e; font-weight:700; }
.wes-shop2 .s2-toggle{ display:flex; align-items:center; gap:9px; width:100%; text-align:left; }
.wes-shop2 .s2-toggle .s2-dot{ width:16px; height:16px; border-radius:5px; border:1.5px solid var(--s2-border); flex:0 0 auto; position:relative; transition:all .14s ease; }
.wes-shop2 .s2-toggle[aria-pressed="true"]{ border-color:var(--s2-gold); background:#fdf6e8; }
.wes-shop2 .s2-toggle[aria-pressed="true"] .s2-dot{ background:var(--s2-gold); border-color:var(--s2-gold); }
.wes-shop2 .s2-toggle[aria-pressed="true"] .s2-dot::after{ content:""; position:absolute; left:4px; top:1px; width:5px; height:9px; border:2px solid #1c1c1e; border-top:0; border-left:0; transform:rotate(45deg); }
.wes-shop2 .s2-clear{
  display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; cursor:pointer;
  font-family:var(--s2-body); font-size:13.5px; font-weight:600; color:var(--s2-gold-d);
  padding:4px 0; text-decoration:underline; text-underline-offset:3px;
}
.wes-shop2 .s2-clear:hover{ color:var(--s2-ink); }

/* finish tags (multi-select chips) */
.wes-shop2 .s2-tags{ display:flex; flex-wrap:wrap; gap:7px; }
.wes-shop2 .s2-tags-empty{ font-size:13px; color:#9a9088; }
.wes-shop2 .s2-tag{
  border:1.5px solid var(--s2-border); background:#fff; cursor:pointer;
  font-family:var(--s2-body); font-size:13px; color:var(--s2-ink);
  padding:6px 11px; border-radius:999px; transition:all .14s ease;
}
.wes-shop2 .s2-tag:hover{ border-color:var(--s2-gold); }
.wes-shop2 .s2-tag[aria-pressed="true"]{ background:var(--s2-ink); border-color:var(--s2-ink); color:#fff; font-weight:600; }

/* price min/max inputs */
.wes-shop2 .s2-priceinputs{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.wes-shop2 .s2-pi{ position:relative; flex:1; display:flex; align-items:center; }
.wes-shop2 .s2-pi-dollar{ position:absolute; left:11px; color:#9a9088; font-size:14px; pointer-events:none; }
.wes-shop2 .s2-pi input{
  width:100%; border:1.5px solid var(--s2-border); border-radius:8px; background:#fff;
  font-family:var(--s2-body); font-size:14px; color:var(--s2-ink); padding:9px 10px 9px 22px; min-width:0;
  -moz-appearance:textfield;
}
.wes-shop2 .s2-pi input::-webkit-outer-spin-button,.wes-shop2 .s2-pi input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.wes-shop2 .s2-pi input:focus{ outline:0; border-color:var(--s2-gold); box-shadow:0 0 0 3px rgba(212,162,78,.18); }
.wes-shop2 .s2-pi-dash{ color:#9a9088; }

/* dual-handle price slider */
.wes-shop2 .s2-slider{ position:relative; height:26px; margin:4px 2px 14px; }
.wes-shop2 .s2-slider-rail{ position:absolute; left:0; right:0; top:11px; height:4px; background:#e6dcc8; border-radius:4px; }
.wes-shop2 .s2-slider-fill{ position:absolute; top:11px; left:0; right:0; height:4px; background:var(--s2-gold); border-radius:4px; }
.wes-shop2 .s2-slider input[type="range"]{
  position:absolute; left:0; right:0; top:0; width:100%; height:26px; margin:0; padding:0;
  background:transparent; pointer-events:none; -webkit-appearance:none; appearance:none;
}
.wes-shop2 .s2-slider input[type="range"]::-webkit-slider-runnable-track{ background:transparent; border:0; height:26px; }
.wes-shop2 .s2-slider input[type="range"]::-moz-range-track{ background:transparent; border:0; height:26px; }
.wes-shop2 .s2-slider input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; pointer-events:auto; width:18px; height:18px; margin-top:4px; border-radius:50%;
  background:#fff; border:2px solid var(--s2-gold); box-shadow:0 2px 6px rgba(0,0,0,.25); cursor:grab;
}
.wes-shop2 .s2-slider input[type="range"]::-moz-range-thumb{
  pointer-events:auto; width:18px; height:18px; border-radius:50%;
  background:#fff; border:2px solid var(--s2-gold); box-shadow:0 2px 6px rgba(0,0,0,.25); cursor:grab;
}
.wes-shop2 .s2-slider input[type="range"]:active::-webkit-slider-thumb{ cursor:grabbing; }

/* ---- main column ---- */
.wes-shop2 .s2-main{ min-width:0; }
.wes-shop2 .s2-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px;
}
.wes-shop2 .s2-count{ font-family:var(--s2-body); font-size:15px; color:var(--s2-muted); }
.wes-shop2 .s2-count b{ color:var(--s2-ink); }
.wes-shop2 .s2-sortwrap{ display:flex; align-items:center; gap:8px; }
.wes-shop2 .s2-sortwrap label{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--s2-muted); }
.wes-shop2 .s2-select{
  font-family:var(--s2-body); font-size:14px; color:var(--s2-ink); background:#fff;
  border:1.5px solid var(--s2-border); border-radius:8px; padding:9px 32px 9px 12px; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234a4540' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
.wes-shop2 .s2-select:focus{ outline:0; border-color:var(--s2-gold); box-shadow:0 0 0 3px rgba(212,162,78,.18); }

.wes-shop2 .s2-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.wes-shop2 .s2-chip{
  display:inline-flex; align-items:center; gap:7px; border:0; cursor:pointer;
  background:#efe7d8; color:var(--s2-ink); font-family:var(--s2-body); font-size:13px; font-weight:600;
  padding:7px 12px; border-radius:999px; transition: background .14s ease;
}
.wes-shop2 .s2-chip:hover{ background:#e6dcc8; }
.wes-shop2 .s2-chip span{ color:var(--s2-gold-d); font-weight:800; }

/* product grid */
.wes-shop2 .s2-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.5vw,22px);
}
.wes-shop2 .s2-card{
  display:flex; flex-direction:column; background:var(--s2-surface);
  border:1px solid var(--s2-border-soft); border-radius:14px; overflow:hidden;
  box-shadow:var(--s2-shadow); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.wes-shop2 a.s2-card:hover{ transform:translateY(-5px); box-shadow:var(--s2-shadow-lg); border-color:var(--s2-border); }
.wes-shop2 .s2-card-img{
  position:relative; display:block; width:100%; aspect-ratio:1/1; background:#fbf6ec center/contain no-repeat;
  border-bottom:1px solid var(--s2-border-soft);
}
.wes-shop2 .s2-card-sale{
  position:absolute; top:10px; left:10px; background:var(--brand-danger,#b33a3a); color:#fff;
  font-family:var(--s2-body); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 9px; border-radius:999px;
}
.wes-shop2 .s2-card-body{ padding:14px 15px 16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.wes-shop2 .s2-card-name{
  font-family:var(--s2-body); font-size:14.5px; line-height:1.4; color:var(--s2-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.8em;
}
.wes-shop2 .s2-card-price{ margin-top:auto; font-family:var(--s2-disp); font-size:19px; font-weight:700; color:var(--s2-ink); }
.wes-shop2 .s2-was{ color:#9a9088; text-decoration:line-through; font-size:15px; margin-right:6px; font-family:var(--s2-body); }
.wes-shop2 .s2-now{ color:var(--s2-gold-d); }
.wes-shop2 .s2-card-cta{
  margin-top:4px; font-family:var(--s2-body); font-size:12.5px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--s2-gold-d); display:inline-flex; align-items:center; gap:5px;
  opacity:0; transform:translateY(3px); transition:opacity .2s ease, transform .2s ease;
}
.wes-shop2 a.s2-card:hover .s2-card-cta{ opacity:1; transform:none; }

/* skeleton */
.wes-shop2 .s2-card--skel{ pointer-events:none; }
.wes-shop2 .s2-card--skel .s2-card-img{ background:linear-gradient(100deg,#f1e9da 30%,#f8f2e6 50%,#f1e9da 70%); background-size:200% 100%; animation:s2shimmer 1.2s infinite; }
.wes-shop2 .s2-card--skel .s2-card-name,.wes-shop2 .s2-card--skel .s2-card-price{ background:#f1e9da; border-radius:5px; color:transparent; min-height:1em; }
@keyframes s2shimmer{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* empty / error */
.wes-shop2 .s2-empty{ grid-column:1/-1; text-align:center; padding:60px 20px; background:#fff; border:1px dashed var(--s2-border); border-radius:14px; }
.wes-shop2 .s2-empty-h{ font-family:var(--s2-disp); font-size:24px; font-weight:700; margin:0 0 8px; color:var(--s2-ink); }
.wes-shop2 .s2-empty-p{ color:var(--s2-muted); margin:0 0 18px; }
.wes-shop2 .s2-empty-cta{ display:inline-block; background:linear-gradient(180deg,var(--s2-gold),var(--s2-gold-d)); color:#1c1c1e; font-weight:700; padding:12px 24px; border-radius:999px; box-shadow:var(--wes-shadow-gold-md,0 6px 18px rgba(212,162,78,.4)); }

/* pagination */
.wes-shop2 .s2-pager{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin-top:clamp(28px,3vw,44px); }
.wes-shop2 .s2-page{
  min-width:44px; height:44px; padding:0 12px; border:1.5px solid var(--s2-border); background:#fff; cursor:pointer;
  font-family:var(--s2-body); font-size:15px; color:var(--s2-ink); border-radius:10px;
  display:inline-flex; align-items:center; justify-content:center; transition: all .14s ease;
}
.wes-shop2 .s2-page:hover:not([disabled]):not([aria-current="true"]){ border-color:var(--s2-gold); color:var(--s2-gold-d); transform:translateY(-1px); }
.wes-shop2 .s2-page[aria-current="true"]{ background:var(--s2-ink); border-color:var(--s2-ink); color:#fff; font-weight:700; cursor:default; }
.wes-shop2 .s2-page[disabled]{ opacity:.4; cursor:not-allowed; }
.wes-shop2 .s2-page--nav{ font-weight:700; }
.wes-shop2 .s2-ellipsis{ min-width:24px; text-align:center; color:#9a9088; }

/* screen-reader-only status */
.wes-shop2 .s2-sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ===== responsive ===== */
@media (max-width:1080px){
  .wes-shop2 .s2-grid{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:880px){
  .wes-shop2 .s2-body{ grid-template-columns:1fr; }
  .wes-shop2 .s2-rail{ position:static; top:auto; max-height:none; overflow:visible; }
  .wes-shop2 .s2-rail-toggle{
    display:flex; align-items:center; justify-content:space-between; width:100%; cursor:pointer;
    border:0; background:transparent; padding:14px 18px; font-family:var(--s2-body); font-weight:700;
    font-size:15px; color:var(--s2-ink); letter-spacing:.02em;
  }
  .wes-shop2 .s2-rail-toggle .s2-chev{ transition:transform .2s ease; }
  .wes-shop2 .s2-rail[data-open="false"] .s2-rail-toggle .s2-chev{ transform:rotate(-90deg); }
  .wes-shop2 .s2-rail[data-open="false"] .s2-rail-inner{ display:none; }
}
@media (max-width:680px){
  .wes-shop2 .s2-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .wes-shop2 .s2-card-name{ font-size:13.5px; }
  .wes-shop2 .s2-card-price{ font-size:17px; }
}
@media (max-width:400px){
  .wes-shop2 .s2-grid{ grid-template-columns:1fr 1fr; gap:10px; }
}

/* ===== closing CTA band (element 2) ===== */
.wes-shop2-cta{
  background:
    linear-gradient(180deg, rgba(28,27,32,.92), rgba(28,27,32,.96)),
    var(--brand-dark-section,#23222a);
  color:#f5f1ea; text-align:center; padding:clamp(48px,7vw,84px) clamp(16px,5vw,40px);
}
.wes-shop2-cta .s2c-inner{ max-width:760px; margin:0 auto; }
.wes-shop2-cta .s2c-eyebrow{ display:block; font-family:var(--brand-font-body,'AR One Sans',sans-serif); font-size:13px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--brand-accent,#D4A24E) !important; margin:0 0 14px; text-align:center; }
.wes-shop2-cta .s2c-title{ font-family:var(--brand-font-display,'Spectral',serif) !important; font-weight:800; font-size:clamp(30px,4.4vw,52px); line-height:1.12; margin:0 0 16px; text-align:center !important; color:#f7f3ea !important; }
.wes-shop2-cta .s2c-title em{ font-style:italic; color:var(--brand-accent,#D4A24E) !important; }
.wes-shop2-cta .s2c-lede{ color:#cfc7ba !important; font-size:clamp(15px,1.6vw,18px); line-height:1.65; margin:0 auto 28px; max-width:620px; text-align:center; }
.wes-shop2-cta .s2c-actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.wes-shop2-cta .s2c-btn{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--brand-font-body,'AR One Sans',sans-serif);
  font-weight:700; font-size:15px; padding:15px 30px; border-radius:4px; transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wes-shop2-cta .s2c-btn--gold{ background:linear-gradient(180deg,var(--brand-accent,#D4A24E),var(--brand-accent-hover,#B58A3D)); color:#1c1c1e; box-shadow:var(--wes-shadow-gold-md,0 6px 18px rgba(212,162,78,.4)); }
.wes-shop2-cta .s2c-btn--gold:hover{ transform:translateY(-2px); filter:brightness(1.05); }
.wes-shop2-cta .s2c-btn--ghost{ border:1.5px solid rgba(255,255,255,.4); color:#f5f1ea; }
.wes-shop2-cta .s2c-btn--ghost:hover{ border-color:var(--brand-accent,#D4A24E); color:var(--brand-accent,#D4A24E); transform:translateY(-2px); }
/* ===== end K&A shop v2 ===== */

/* ===== K&A: product v2 (custom single-product template) â€” scoped to .wes-pdp ===== */
/* Delivered via POST /wes-agent/v1/assets/global (echoed in wp_footer). Renders into the
   Theme Builder body layout (1679) code module; JS fetches the product from the WC Store API. */
.wes-pdp{
  --p-gold: var(--brand-accent, #D4A24E);
  --p-gold-d: var(--brand-accent-hover, #B58A3D);
  --p-ink: var(--brand-text, #1c1c1e);
  --p-muted: var(--brand-text-muted, #4a4540);
  --p-dark: var(--brand-dark-section, #23222a);
  --p-cream: var(--brand-bg, #fbf6ec);
  --p-surface: var(--brand-surface, #ffffff);
  --p-border: var(--brand-border, #e0d7c5);
  --p-border-soft: var(--brand-border-soft, #eee5da);
  --p-disp: var(--brand-font-display, 'Spectral', Georgia, serif);
  --p-body: var(--brand-font-body, 'AR One Sans', system-ui, sans-serif);
  --p-shadow: var(--wes-shadow-md, 0 4px 20px rgba(0,0,0,.08));
  --p-shadow-lg: var(--wes-shadow-lg, 0 14px 40px rgba(0,0,0,.14));
  background: var(--p-cream); color: var(--p-ink); font-family: var(--p-body);
  -webkit-font-smoothing: antialiased;
}
.wes-pdp *{ box-sizing:border-box; }
.wes-pdp a{ color:inherit; text-decoration:none; }
.wes-pdp .pdp-wrap{ max-width:1440px; margin:0 auto; padding:clamp(16px,3vw,32px) clamp(16px,5vw,56px) clamp(40px,6vw,72px); }

/* Full-bleed fix: WooCommerce wraps single products in `.et_builder_inner_content.product`
   as a display:grid capped at 1440px, which smushed our TB section to ~786px. Neutralize the
   grid + cap so the section fills the viewport (cream edge-to-edge) with centered content. */
body.single-product .et_builder_inner_content.product{ display:block !important; grid-template-columns:none !important; max-width:100% !important; width:100% !important; margin:0 !important; padding:0 !important; }
body.single-product .et_pb_section_0_tb_body,
body.single-product .et_pb_row_0_tb_body,
body.single-product .et_pb_column_0_tb_body,
body.single-product .et_pb_code_0_tb_body,
body.single-product .et_pb_code_0_tb_body > .et_pb_code_inner{ width:100% !important; max-width:100% !important; float:none !important; }

/* breadcrumb */
.wes-pdp .pdp-crumb{ font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--p-muted); margin:0 0 clamp(20px,3vw,32px); display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.wes-pdp .pdp-crumb a{ color:var(--p-gold-d); }
.wes-pdp .pdp-crumb a:hover{ color:var(--p-ink); }
.wes-pdp .pdp-crumb .sep{ color:var(--p-border); }
.wes-pdp .pdp-crumb .cur{ color:var(--p-ink); }

/* top split */
.wes-pdp .pdp-top{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,4vw,56px); align-items:start; }

/* gallery */
.wes-pdp .pdp-gallery{ position:sticky; top:96px; }
.wes-pdp .pdp-frame{ position:relative; background:var(--p-surface); border:1px solid var(--p-border-soft); border-radius:16px; box-shadow:var(--p-shadow); overflow:hidden; }
.wes-pdp .pdp-frame-inner{ aspect-ratio:1/1; background:#fbf6ec center/contain no-repeat; transition:transform .35s ease; }
.wes-pdp .pdp-frame:hover .pdp-frame-inner{ transform:scale(1.04); }
.wes-pdp .pdp-sale{ position:absolute; top:16px; left:16px; z-index:2; background:var(--brand-danger,#b33a3a); color:#fff; font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; border-radius:999px; }
.wes-pdp .pdp-thumbs{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.wes-pdp .pdp-thumb{ width:72px; height:72px; border-radius:10px; border:1.5px solid var(--p-border); background:#fff center/contain no-repeat; cursor:pointer; transition:border-color .15s ease; }
.wes-pdp .pdp-thumb[aria-pressed="true"]{ border-color:var(--p-gold); }

/* info column */
.wes-pdp .pdp-info{ position:sticky; top:96px; min-width:0; }
.wes-pdp .pdp-eyebrow{ font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--p-gold-d); margin:0 0 10px; }
.wes-pdp .pdp-title{ font-family:var(--p-disp); font-weight:800; font-size:clamp(28px,3.6vw,44px); line-height:1.12; letter-spacing:-.01em; color:var(--p-ink); margin:0 0 14px; }
.wes-pdp .pdp-price{ font-family:var(--p-disp); font-weight:700; font-size:30px; color:var(--p-ink); margin:0 0 14px; }
.wes-pdp .pdp-was{ color:#9a9088; text-decoration:line-through; font-size:22px; margin-right:10px; font-family:var(--p-body); }
.wes-pdp .pdp-now{ color:var(--p-gold-d); }
.wes-pdp .pdp-stock{ display:inline-flex; align-items:center; gap:9px; font-family:var(--p-body); font-size:14px; font-weight:600; color:var(--p-ink); background:#fff; border:1px solid var(--p-border-soft); padding:8px 14px; border-radius:999px; box-shadow:var(--wes-shadow-sm,0 1px 3px rgba(0,0,0,.06)); margin-bottom:20px; }
.wes-pdp .pdp-stock .dot{ width:9px; height:9px; border-radius:50%; background:#4f8a4f; box-shadow:0 0 0 3px rgba(79,138,79,.18); }
.wes-pdp .pdp-stock.is-out .dot{ background:#b33a3a; box-shadow:0 0 0 3px rgba(179,58,58,.18); }
.wes-pdp .pdp-short{ font-family:var(--p-disp); font-style:italic; font-size:18px; line-height:1.55; color:var(--p-muted); border-left:3px solid var(--p-gold); padding-left:16px; margin:0 0 24px; }

/* buy row */
.wes-pdp .pdp-buy{ display:flex; flex-wrap:wrap; gap:12px; align-items:stretch; margin-bottom:18px; }
.wes-pdp .pdp-qty{ display:inline-flex; align-items:center; border:1.5px solid var(--p-border); border-radius:10px; background:#fff; overflow:hidden; }
.wes-pdp .pdp-qty button{ width:42px; height:52px; border:0; background:transparent; cursor:pointer; font-size:20px; color:var(--p-muted); line-height:1; }
.wes-pdp .pdp-qty button:hover{ color:var(--p-ink); background:#f6efe1; }
.wes-pdp .pdp-qty input{ width:48px; height:52px; border:0; text-align:center; font-family:var(--p-body); font-size:16px; color:var(--p-ink); -moz-appearance:textfield; }
.wes-pdp .pdp-qty input::-webkit-outer-spin-button,.wes-pdp .pdp-qty input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.wes-pdp .pdp-add{
  flex:1 1 auto; min-width:200px; border:0; cursor:pointer; border-radius:10px;
  background:linear-gradient(180deg,var(--p-gold),var(--p-gold-d)); color:#1c1c1e;
  font-family:var(--p-body); font-weight:700; font-size:16px; letter-spacing:.02em; padding:0 28px;
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  box-shadow:var(--wes-shadow-gold-md,0 6px 18px rgba(212,162,78,.4)); transition:transform .15s ease, filter .15s ease;
}
.wes-pdp .pdp-add:hover{ transform:translateY(-2px); filter:brightness(1.04); }
.wes-pdp .pdp-add[disabled]{ opacity:.6; cursor:not-allowed; transform:none; filter:grayscale(.3); }
.wes-pdp .pdp-add.is-added{ background:linear-gradient(180deg,#5aa45a,#4f8a4f); color:#fff; }
.wes-pdp .pdp-add .spin{ width:16px; height:16px; border:2px solid rgba(28,28,30,.3); border-top-color:#1c1c1e; border-radius:50%; display:none; animation:pdpspin .7s linear infinite; }
.wes-pdp .pdp-add.is-loading .spin{ display:inline-block; }
@keyframes pdpspin{ to{ transform:rotate(360deg); } }
.wes-pdp .pdp-quote{ display:inline-flex; align-items:center; gap:6px; font-family:var(--p-body); font-size:14px; font-weight:600; color:var(--p-gold-d); margin-bottom:24px; }
.wes-pdp .pdp-quote:hover{ color:var(--p-ink); }
.wes-pdp .pdp-cartnote{ display:none; font-family:var(--p-body); font-size:14px; color:#4f8a4f; font-weight:600; margin:-8px 0 20px; }
.wes-pdp .pdp-cartnote a{ color:var(--p-gold-d); text-decoration:underline; text-underline-offset:3px; margin-left:8px; }
.wes-pdp .pdp-add--quote{ padding:16px 30px; text-decoration:none; min-width:240px; }
.wes-pdp .pdp-oos{ font-family:var(--p-body); font-size:13.5px; line-height:1.5; color:var(--p-muted); margin:-4px 0 22px; max-width:440px; }

/* promise bullets */
.wes-pdp .pdp-promises{ list-style:none; margin:0 0 22px; padding:20px 0 0; border-top:1px solid var(--p-border-soft); display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
.wes-pdp .pdp-promises li{ display:flex; align-items:flex-start; gap:10px; font-family:var(--p-body); font-size:13.5px; line-height:1.4; color:var(--p-muted); }
.wes-pdp .pdp-promises svg{ flex:0 0 auto; width:20px; height:20px; color:var(--p-gold-d); margin-top:1px; }
.wes-pdp .pdp-promises b{ color:var(--p-ink); font-weight:700; }

/* meta */
.wes-pdp .pdp-meta{ font-family:var(--p-body); font-size:13px; color:var(--p-muted); border-top:1px solid var(--p-border-soft); padding-top:16px; display:flex; flex-direction:column; gap:5px; }
.wes-pdp .pdp-meta b{ color:var(--p-ink); }

/* description band */
.wes-pdp .pdp-desc{ margin-top:clamp(40px,6vw,72px); padding-top:clamp(32px,4vw,48px); border-top:1px solid var(--p-border); }
.wes-pdp .pdp-desc-head{ font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--p-gold-d); margin:0 0 16px; }
.wes-pdp .pdp-desc-body{ max-width:760px; font-family:var(--p-body); font-size:16.5px; line-height:1.75; color:var(--p-ink); }
.wes-pdp .pdp-desc-body p{ margin:0 0 16px; }
.wes-pdp .pdp-desc-body p:first-of-type::first-letter{ font-family:var(--p-disp); font-weight:800; font-size:3.4em; line-height:.82; float:left; margin:6px 12px 0 0; color:var(--p-gold-d); }
.wes-pdp .pdp-desc-body ul{ margin:0 0 16px; padding-left:20px; }
.wes-pdp .pdp-desc-body li{ margin:0 0 6px; }

/* details: two-part (intro + docs | specifications) */
.wes-pdp .pdp-details{ margin-top:clamp(40px,6vw,72px); padding-top:clamp(32px,4vw,48px); border-top:1px solid var(--p-border); display:grid; grid-template-columns:0.82fr 1.18fr; gap:clamp(28px,5vw,64px); align-items:start; }
.wes-pdp .pdp-details-col{ min-width:0; }
.wes-pdp .pdp-spec-head{ font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--p-gold-d); margin:0 0 16px; }
.wes-pdp .pdp-intro{ font-family:var(--p-body); font-size:16.5px; line-height:1.75; color:var(--p-ink); }
.wes-pdp .pdp-intro::first-letter{ font-family:var(--p-disp); font-weight:800; font-size:3.4em; line-height:.82; float:left; margin:6px 12px 0 0; color:var(--p-gold-d); }
.wes-pdp .pdp-flags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.wes-pdp .pdp-flag{ font-family:var(--p-body); font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--p-gold-d); background:#fff; border:1px solid var(--p-border); padding:6px 12px; border-radius:999px; }
.wes-pdp .pdp-docs{ margin-top:26px; }
.wes-pdp .pdp-docs-head{ font-family:var(--p-body); font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--p-muted); margin:0 0 10px; }
.wes-pdp .pdp-doc{ display:flex; align-items:center; gap:11px; background:#fff; border:1px solid var(--p-border-soft); border-radius:10px; padding:12px 16px; margin-bottom:9px; font-family:var(--p-body); font-size:14px; font-weight:600; color:var(--p-ink); box-shadow:var(--p-shadow); transition:border-color .15s ease, transform .15s ease; }
.wes-pdp .pdp-doc:hover{ border-color:var(--p-gold); transform:translateY(-1px); }
.wes-pdp .pdp-doc svg{ width:20px; height:20px; color:var(--p-gold-d); flex:0 0 auto; }
.wes-pdp .pdp-spec-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(24px,3vw,48px); margin:0; }
.wes-pdp .pdp-spec-row{ padding:11px 2px; border-bottom:1px solid var(--p-border-soft); }
.wes-pdp .pdp-spec-row dt{ font-family:var(--p-body); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--p-gold-d); margin:0 0 3px; }
.wes-pdp .pdp-spec-row dd{ font-family:var(--p-body); font-size:14.5px; line-height:1.4; color:var(--p-ink); margin:0; }

/* related */
.wes-pdp .pdp-related{ margin-top:clamp(48px,6vw,80px); }
.wes-pdp .pdp-rel-head{ text-align:center; margin:0 0 clamp(24px,3vw,36px); }
.wes-pdp .pdp-rel-eyebrow{ font-family:var(--p-body); font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--p-gold-d); margin:0 0 8px; }
.wes-pdp .pdp-rel-title{ font-family:var(--p-disp); font-weight:800; font-size:clamp(24px,3vw,36px); color:var(--p-ink); margin:0; }
.wes-pdp .pdp-rel-title em{ font-style:italic; color:var(--p-gold-d); }
.wes-pdp .pdp-rel-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.5vw,22px); }
.wes-pdp .pdp-card{ display:flex; flex-direction:column; background:var(--p-surface); border:1px solid var(--p-border-soft); border-radius:14px; overflow:hidden; box-shadow:var(--p-shadow); transition:transform .2s ease, box-shadow .2s ease; }
.wes-pdp a.pdp-card:hover{ transform:translateY(-5px); box-shadow:var(--p-shadow-lg); }
.wes-pdp .pdp-card-img{ aspect-ratio:1/1; background:#fbf6ec center/contain no-repeat; border-bottom:1px solid var(--p-border-soft); }
.wes-pdp .pdp-card-body{ padding:13px 14px 15px; display:flex; flex-direction:column; gap:7px; flex:1; }
.wes-pdp .pdp-card-name{ font-family:var(--p-body); font-size:14px; line-height:1.4; color:var(--p-ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.8em; }
.wes-pdp .pdp-card-price{ margin-top:auto; font-family:var(--p-disp); font-size:18px; font-weight:700; color:var(--p-gold-d); }

/* loading / error */
.wes-pdp .pdp-skel{ min-height:50vh; display:flex; align-items:center; justify-content:center; }
.wes-pdp .pdp-spin{ width:40px; height:40px; border:3px solid var(--p-border); border-top-color:var(--p-gold); border-radius:50%; animation:pdpspin .8s linear infinite; }
.wes-pdp .pdp-err{ text-align:center; padding:80px 20px; }
.wes-pdp .pdp-err h2{ font-family:var(--p-disp); font-size:26px; color:var(--p-ink); margin:0 0 10px; }
.wes-pdp .pdp-err p{ color:var(--p-muted); margin:0 0 20px; }
.wes-pdp .pdp-err a{ display:inline-block; background:linear-gradient(180deg,var(--p-gold),var(--p-gold-d)); color:#1c1c1e; font-weight:700; padding:12px 26px; border-radius:999px; }

/* ===== responsive ===== */
@media (max-width:980px){
  .wes-pdp .pdp-top{ grid-template-columns:1fr; gap:28px; }
  .wes-pdp .pdp-gallery,.wes-pdp .pdp-info{ position:static; top:auto; }
  .wes-pdp .pdp-frame{ max-width:520px; margin:0 auto; }
  .wes-pdp .pdp-rel-grid{ grid-template-columns:repeat(3,1fr); }
  .wes-pdp .pdp-details{ grid-template-columns:1fr; gap:32px; }
}
@media (max-width:640px){
  .wes-pdp .pdp-rel-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .wes-pdp .pdp-promises{ grid-template-columns:1fr; }
  .wes-pdp .pdp-buy{ flex-direction:column; }
  .wes-pdp .pdp-add{ min-width:0; padding:16px 24px; }
  .wes-pdp .pdp-spec-grid{ grid-template-columns:1fr; }
}
/* ===== end K&A product v2 ===== */

/* ===== K&A: category v2 (product-category archive template) â€” scoped to .wes-cat ===== */
/* The wrapper carries BOTH .wes-shop2 (reuse all shop rail/grid/card/pager styling) and .wes-cat
   (this hero + category nav). Engine guards on [data-ka-category] so the shop engine stays dormant. */
.wes-cat .wes-cat-hero{ max-width:1320px; margin:0 auto; padding:clamp(18px,3vw,34px) 0 clamp(6px,1.4vw,14px); text-align:center; }
.wes-cat .wes-cat-crumb{ font-family:var(--brand-font-body,'AR One Sans',sans-serif); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-text-muted,#4a4540); margin:0 0 16px; display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.wes-cat .wes-cat-crumb a{ color:var(--brand-accent-hover,#B58A3D); text-decoration:none; }
.wes-cat .wes-cat-crumb a:hover{ color:var(--brand-text,#1c1c1e); }
.wes-cat .wes-cat-crumb .sep{ color:var(--brand-border,#e0d7c5); }
.wes-cat .wes-cat-eyebrow{ font-family:var(--brand-font-body,'AR One Sans',sans-serif); font-size:13px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--brand-accent-hover,#B58A3D); margin:0 0 10px; }
.wes-cat .wes-cat-eyebrow::before,.wes-cat .wes-cat-eyebrow::after{ content:"â€”"; margin:0 .5em; color:var(--brand-accent,#D4A24E); opacity:.7; }
.wes-cat .wes-cat-title{ font-family:var(--brand-font-display,'Spectral',serif); font-weight:800; font-size:clamp(34px,5vw,56px); line-height:1.05; letter-spacing:-.01em; color:var(--brand-text,#1c1c1e); margin:0 0 12px; }
.wes-cat .wes-cat-title em{ font-style:italic; color:var(--brand-accent-hover,#B58A3D); }
.wes-cat .wes-cat-desc{ max-width:660px; margin:0 auto 8px; color:var(--brand-text-muted,#4a4540); font-size:clamp(15px,1.5vw,17px); line-height:1.6; }
.wes-cat .wes-cat-countline{ font-family:var(--brand-font-body,'AR One Sans',sans-serif); font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-text-muted,#4a4540); }
.wes-cat .wes-cat-countline b{ color:var(--brand-text,#1c1c1e); }

/* category nav (real links) in the left rail */
.wes-cat .s2-catnav{ display:flex; flex-direction:column; gap:2px; }
.wes-cat .s2-catnav a{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-radius:8px; font-family:var(--brand-font-body,'AR One Sans',sans-serif); font-size:14.5px; color:var(--brand-text,#1c1c1e); text-decoration:none; transition:background .14s ease, color .14s ease; }
.wes-cat .s2-catnav a:hover{ background:#f6efe1; }
.wes-cat .s2-catnav a.is-current{ background:var(--brand-text,#1c1c1e); color:#fff; font-weight:600; }
.wes-cat .s2-catnav a .n{ font-size:12px; color:#9a9088; font-variant-numeric:tabular-nums; }
.wes-cat .s2-catnav a.is-current .n{ color:rgba(255,255,255,.7); }
.wes-cat .s2-catnav .all-link{ border-bottom:1px solid var(--brand-border-soft,#eee5da); margin-bottom:4px; padding-bottom:10px; }
/* ===== end K&A category v2 ===== */

/* ===== K&A: location polish v1 ===== */
/* Small, additive, reversible polish for the 4 location pages (Bristol 82, Greeneville 84,
   Johnson City 86, Kingsport 88). The location cards are inline-styled plain <div>s (no class
   hooks), so we target them by their rounded-corner signature (cards = 16px/18px), scoped to the
   4 page IDs only. 14px (icon tiles) is intentionally excluded. Resting styling is untouched â€”
   we ONLY add a smooth transition + a hover lift/shadow + a gentle photo zoom. */
:is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136)
  :is([style*="border-radius:16px"], [style*="border-radius:18px"], [style*="border-radius:20px"], [style*="border-radius:22px"]) {
  transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s ease !important;
  will-change: transform;
}
:is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136)
  :is([style*="border-radius:16px"], [style*="border-radius:18px"], [style*="border-radius:20px"], [style*="border-radius:22px"]):hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 30px 64px -26px rgba(28, 26, 31, .30) !important;
}
/* photos inside a clipped rounded frame get a gentle zoom on hover */
:is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136)
  :is([style*="border-radius:16px"], [style*="border-radius:18px"], [style*="border-radius:20px"], [style*="border-radius:22px"]) img {
  transition: transform .4s cubic-bezier(.2,.7,.3,1);
}
:is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136)
  :is([style*="overflow:hidden"][style*="border-radius"]):hover img {
  transform: scale(1.04);
}
/* ===== end K&A location polish v1 ===== */

/* ===== K&A: location reveal v1 ===== */
/* Mobile/tablet scroll-reveal entrance animations for the 4 location pages.
   Desktop (>=981px) does NOT get this â€” it keeps the hover-lift above untouched
   (Keven: "add mobile animations because they can't hover; don't conflict with desktop").
   The JS (ka location reveal v1) only adds .ka-loc-reveal at <=980px + when IntersectionObserver
   is present + when reduced-motion is NOT requested, and clears the class after the animation,
   so content can never get stuck hidden. This CSS only HIDES inside the same <=980px /
   no-reduced-motion guard, so if JS never runs the content is fully visible. */
@media (max-width: 980px) {
  @media (prefers-reduced-motion: no-preference) {
    :is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136) .ka-loc-reveal {
      opacity: 0;
      will-change: transform, opacity;
    }
    :is(body.page-id-465133, body.page-id-465134, body.page-id-465135, body.page-id-465136) .ka-loc-reveal.ka-in {
      animation: kaLocReveal .62s cubic-bezier(.2, .7, .3, 1) both;
    }
  }
}
@keyframes kaLocReveal {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* ===== end K&A location reveal v1 ===== */

/* ===== K&A: home v1 ===== */
/* =====================================================================
   K&A â€” WES HOME v1 STYLESHEET (reconciled, fully scoped)
   Target: draft id 1804 now + body.home after promotion.
   EVERY selector is wrapped in :is(body.page-id-465126, body.home).
   Brand gold family: #D4A24E (accent) / #B58A3D (hover) / #E6BE6E (light).
   Texture cohesion key: footer.jpg (same speckle as global header/footer).
   Order: 0 tokens/base -> 1 atmosphere/backgrounds -> 2 components
   (buttons/cards/badges) -> 3 per-module polish -> 4 motion initial-state
   -> 5 responsive. Additive overrides; preserves the already-good parts.
   ===================================================================== */

/* =====================================================================
   0. TOKENS / BASE  (page-scoped)
   - Unifies the 4 disagreeing darks into one warm-ink system.
   - REDEFINES the aliased gold-shadow tokens (site aliases them to flat
     neutral greys) into warm, layered gold elevation -> every gold CTA
     across ka-modules AND custom-code sections gains real depth for free.
   ===================================================================== */
:is(body.page-id-465126, body.home){
  /* unified dark system (collapses #15141a/#1c1a1f/#23222a/#15161b) */
  --ka-dark:        #1a1820;   /* canonical warm-ink base (matches footer) */
  --ka-dark-2:      #201d27;   /* one intentional raised variant (CTA/deals) */
  --ka-dark-deep:   #141119;   /* vignette / seam shadow */

  /* brand gold vocabulary */
  --ka-gold:        #D4A24E;
  --ka-gold-hi:     #E4B45E;   /* gradient top */
  --ka-gold-lo:     #D4A24E;   /* gradient bottom */
  --ka-gold-deep:   #B58A3D;
  --ka-gold-lite:   #E6BE6E;
  --ka-gold-soft:   rgba(212,162,78,.16);  /* radial glow tint */
  --ka-gold-line:   rgba(212,162,78,.55);  /* hairline rule */
  --ka-ink:         #1c1c1e;
  --ka-ink-on-gold: #1a1d21;
  --ka-ease:        cubic-bezier(.22, 1, .36, 1);

  /* shared texture + fine film grain */
  --ka-tex: url("https://williamselectricsupply.com/wp-content/uploads/2026/08/footer.jpg");
  --ka-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");

  /* LOAD-BEARING FIX: re-tint the aliased gold shadows (clears Rule #24
     visibility, alpha x blur >= 2.0). Consuming buttons inherit for free. */
  --wes-shadow-gold-md:
      0 2px 6px rgba(151, 106, 30, .28),
      0 8px 20px rgba(151, 106, 30, .24);
  --wes-shadow-gold-lg:
      0 4px 10px rgba(151, 106, 30, .34),
      0 16px 34px rgba(151, 106, 30, .30);
}

/* no-horizontal-scroll safety net (both scopes) */
:is(body.page-id-465126, body.home){ overflow-x:hidden; }
:is(body.page-id-465126, body.home) .wesh,
:is(body.page-id-465126, body.home) .wescat,
:is(body.page-id-465126, body.home) .wesb{ max-width:100%; }

/* =====================================================================
   FEATURE FLAG â€” hide "This month's deals" + "This month's featured picks" on the
   FRONT END only (Keven 2026-06-08: customer not ready for them yet). The sections
   stay in the page content (your end) and remain visible/editable in the Divi Visual
   Builder, because the VB adds `et-fb` to <body> and these rules exclude it. Scoped to
   page-id-465126 only so the current live home (page 68) is untouched.
   Deals  = the dark product slider .ka_product_slider_1 ; Featured = .ka_product_grid.
   TO RE-SHOW LATER: delete this block (or re-enable the sections in the builder).
   ===================================================================== */
body.page-id-465126:not(.et-fb):not(.et-fb-preview):not(.et-bfb) .et_pb_section:has(.ka_product_slider_1),
body.page-id-465126:not(.et-fb):not(.et-fb-preview):not(.et-bfb) .et_pb_section:has(.ka_product_grid){
  display: none !important;
}

/* =====================================================================
   1. ATMOSPHERE / BACKGROUNDS
   Unified warm-ink base + footer.jpg texture (soft-light, <=.10 effective)
   + a single soft radial gold glow per dark band, with seam vignettes.
   Cream/white sections get a warm radial wash + faint grain.
   Additive ::before/::after layers; text always sits above (z-index:1).
   ===================================================================== */

/* ---- 1a. Stats band (S2) â€” base plinth under the hero ---- */
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes{
  background-color: var(--ka-dark) !important;
  background-image:
    radial-gradient(120% 140% at 50% -20%, var(--ka-gold-soft) 0%, transparent 55%),
    linear-gradient(180deg, rgba(20,17,25,.55) 0%, transparent 22%, transparent 78%, rgba(20,17,25,.5) 100%),
    var(--ka-tex) !important;
  background-size: 100% 100%, 100% 100%, 360px auto !important;
  background-repeat: no-repeat, no-repeat, repeat !important;
  background-blend-mode: screen, normal, soft-light !important;
  position: relative;
  border-top: 1px solid rgba(212,162,78,.22) !important;
}
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: rgba(26,24,32,.62); /* tone-down veil: holds texture <=.10 + protects divider/value contrast */
}
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes > *{
  position:relative; z-index:1;
}

/* ---- 1b. Departments â€” LIGHT background = the single canonical light color #fbf6ec (brand
   _60_dominant_bg), per Keven 2026-06-08. Was pure #ffffff; unified so every light band on the page
   is the EXACT same color. No texture; heading/sub dark for contrast; gaps widened; height trimmed. ---- */
:is(body.page-id-465126, body.home) .et_pb_section:has(.wescat),
:is(body.page-id-465126, body.home) .wescat{
  background: #fbf6ec !important;
}
:is(body.page-id-465126, body.home) .wescat{
  position: relative; isolation: isolate; box-shadow: none !important;
  padding-top: 52px !important; padding-bottom: 52px !important;   /* 84 -> 64 -> 52 (another ~15% trim) */
}
:is(body.page-id-465126, body.home) .wescat::before,
:is(body.page-id-465126, body.home) .wescat::after{ display: none !important; }  /* drop texture + dark veil */
:is(body.page-id-465126, body.home) .wescat__head,
:is(body.page-id-465126, body.home) .wescat__grid{ position: relative; z-index: 1; }
/* dark type on the now-white band */
:is(body.page-id-465126, body.home) .wescat__h{ color: #1c1c1e !important; }
:is(body.page-id-465126, body.home) .wescat__sub{ color: #4a4540 !important; }
/* gold accent + eyebrow: deeper gold for legibility on white (beats Â§3.7 via the extra .wescat class) */
:is(body.page-id-465126, body.home) .wescat .wescat__eyebrow,
:is(body.page-id-465126, body.home) .wescat .wescat__h em{ color: #8A6A20 !important; }
/* more breathing room between the three cards + ~15% shorter cards (460 -> 370) */
:is(body.page-id-465126, body.home) .wescat__head{ margin-bottom: 40px !important; }
:is(body.page-id-465126, body.home) .wescat__grid{ gap: 34px !important; }
:is(body.page-id-465126, body.home) .wescat__card{ height: clamp(320px, 29vw, 370px) !important; }
/* Decor tile, photo swap 2026-08-09 (wes-hero-light-chand -> wes-cat-decor-1).
   The -2deg rotate that used to live here is gone: it only straightened the old
   crooked frame, and the new photo is shot level.
   The new frame is a bright, straight-on vignette -- far lighter than the Lighting
   and Electrical photos -- so the card type measured 2.18:1 (title) / 2.75:1 (sub)
   against it. Two scoped corrections bring it back over WCAG AA:
     1. nudge the crop down so the dark console + floor sit behind the copy;
     2. deepen this card's scrim only. Still a gradient, top half stays clear
        (Standing Rule #27 -- no flat dark overlay).
   The scrim now applies to all three cards: the Electrical tile was swapped to a real
   warehouse frame on the same day and hit the same problem, and a scrim on two of three
   cards made the row read unevenly. The crop nudge stays Decor-only -- it is specific to
   that photo's composition. */
:is(body.page-id-465126, body.home) .wescat__img--decor{
  background-position: center 68% !important;
}
:is(body.page-id-465126, body.home) .wescat__card::after{
  /* 2026-08-10: scrim reduced 10% at Keven's request -- every alpha x 0.9
     (.96/.86/.58/.14 -> .86/.77/.52/.13) so the photos read brighter. */
  background: linear-gradient(to top,
    rgba(15,14,18,.77) 0%,
    rgba(15,14,18,.69) 30%,
    rgba(15,14,18,.47) 50%,
    rgba(15,14,18,.12) 75%,
    rgba(15,14,18,0) 100%) !important;
}

/* ---- 1c. Services strip (S4) ---- */
:is(body.page-id-465126, body.home) .ka_services_strip.ka_services_strip--theme-wes{
  background-color: var(--ka-dark) !important;
  background-image:
    radial-gradient(120% 160% at 50% 120%, var(--ka-gold-soft) 0%, transparent 55%),
    linear-gradient(180deg, rgba(20,17,25,.55) 0%, transparent 20%, transparent 80%, rgba(20,17,25,.55) 100%),
    var(--ka-tex) !important;
  background-size: 100% 100%, 100% 100%, 360px auto !important;
  background-repeat: no-repeat, no-repeat, repeat !important;
  background-blend-mode: screen, normal, soft-light !important;
  position: relative;
  box-shadow: inset 0 14px 28px -18px rgba(20,17,25,.9);
  border-top-color: rgba(212,162,78,.22) !important;
  border-bottom-color: rgba(212,162,78,.22) !important;
}
:is(body.page-id-465126, body.home) .ka_services_strip.ka_services_strip--theme-wes::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: rgba(26,24,32,.6);
}
:is(body.page-id-465126, body.home) .ka_services_strip.ka_services_strip--theme-wes > *{
  position:relative; z-index:1;
}

/* ---- 1d. Deals band (the DARK product slider _1, was #23222a) â€” raised variant ----
   Real markup: the deals band is .ka_product_slider_1 inside its et_pb_section. We texture the
   whole section (via :has) so the dark band reads cohesive with the stats/services bands. ---- */
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1){
  background-color: var(--ka-dark-2) !important;
  background-image:
    radial-gradient(80% 120% at 18% 0%, var(--ka-gold-soft) 0%, transparent 50%),
    var(--ka-tex) !important;
  background-size: 100% 100%, 380px auto !important;
  background-repeat: no-repeat, repeat !important;
  background-blend-mode: screen, soft-light !important;
  position: relative;
  box-shadow: inset 0 18px 30px -20px rgba(20,17,25,.95) !important;
}
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1)::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: rgba(32,29,39,.55);
}
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1) > *{ position:relative; z-index:1; }

/* ---- 1e. Brand poster (S9) â€” .wesb : texture on the TEXT half only ---- */
/* overflow:hidden contains the motion zoom on .wesb__img (a bg-image flex item flush to the
   viewport's right edge; scaling it would otherwise push 22px past the edge -> horizontal scroll). */
:is(body.page-id-465126, body.home) .wesb{ background: var(--ka-dark) !important; overflow: hidden; min-height: 414px !important; }  /* ~ -10% (was 460px) */
:is(body.page-id-465126, body.home) .wesb .wesb__txt{
  position: relative; isolation: isolate; padding-top: 42px !important; padding-bottom: 42px !important;  /* was 64 -> ~ -10% band height */
  background:
    radial-gradient(90% 120% at 0% 50%, var(--ka-gold-soft) 0%, transparent 55%),
    var(--ka-tex);
  background-color: var(--ka-dark);
  background-size: 100% 100%, 340px auto;
  background-repeat: no-repeat, repeat;
  background-blend-mode: screen, soft-light;
}
:is(body.page-id-465126, body.home) .wesb .wesb__txt::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: rgba(26,24,32,.6);
}
:is(body.page-id-465126, body.home) .wesb .wesb__txt > *{ position:relative; z-index:1; }

/* ---- 1e-tilt. Brand poster photo tilted 4deg COUNTERCLOCKWISE (Keven 2026-06-09; nudged 5->4deg, 1deg clockwise, 2026-06-10).
   .wesb__img is a background-size:cover DIV inside overflow:hidden .wesb (dark #1a1820),
   so a bare rotate exposes dark corner triangles -> pair with a cover scale. The minimal
   cover scale at 5deg depends on the frame aspect: ~1.15 for the ~720x415 desktop frame,
   rising toward ~1.20 as the side-by-side photo widens on big screens. scale(1.22) covers
   the whole side-by-side range (verified clean to 1920px; corners pixel-checked).
   GATED to >=881px: below 880px the poster stacks to a full-width SHORT band (260px tall,
   inline @media in the code module), a wide aspect a single scale can't cover without heavy
   crop -- so on stacked layouts the photo renders straight (no tilt, no dark corners), which
   also matches the desktop view Keven asked to tilt.
   home.js gives .wesb__img the classes .ka-mo-poster-img .ka-mo[data-ka-mo=zoom] and the
   reveal animates transform back to scale(1)/none -- which would CLOBBER a static tilt --
   so the rotation is baked into the armed, reveal-in (animation:none) and done states; an
   opacity-only fade-in is kept so the reveal still feels intentional. .wesb is overflow:hidden
   so the tilted/scaled photo is clipped at the section edge (no horizontal scroll). All rules
   scoped + chained through .wesb -> the other poster / shared .ka-mo-poster-img untouched. ---- */
@media (min-width: 881px){
  :is(body.page-id-465126, body.home) .wesb .wesb__img{
    transform: rotate(-3deg) scale(1.22) !important;
    transform-origin: center center;
  }
  html.ka-mo-armed :is(body.page-id-465126, body.home) .wesb .wesb__img.ka-mo-poster-img{
    transform: rotate(-3deg) scale(1.22) !important;
    opacity: 0;
  }
  html.ka-mo-armed :is(body.page-id-465126, body.home) .wesb .wesb__img.ka-mo-poster-img.ka-mo-in{
    animation: none !important;
    transform: rotate(-3deg) scale(1.22) !important;
    opacity: 1;
    transition: opacity .9s cubic-bezier(.22,1,.36,1);
  }
  html.ka-mo-armed :is(body.page-id-465126, body.home) .wesb .wesb__img.ka-mo-done{
    transform: rotate(-3deg) scale(1.22) !important;
    opacity: 1;
  }
}

/* ---- 1f. Showroom poster (S10) â€” .ka_poster : re-base fallback fill only
   (do NOT texture over the photo â€” Standing Rule #27). ---- */
:is(body.page-id-465126, body.home) .ka_poster{
  background-color: var(--ka-dark) !important;
  box-shadow: inset 0 1px 0 rgba(212,162,78,.18), inset 0 -1px 0 rgba(0,0,0,.4) !important;
}
/* ~ -10% height (was 560px) â€” double class beats the plugin's .ka_poster--size-feature min-height */
:is(body.page-id-465126, body.home) .ka_poster.ka_poster--size-feature,
:is(body.page-id-465126, body.home) .ka_poster.ka_poster--size-feature .ka_poster__inner{
  min-height: 504px !important;
}

/* ---- 1g. Closing CTA (S12, was #23222a) â€” raised variant + glow + finale seam ---- */
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes{
  background-color: var(--ka-dark-2) !important;
  background-image:
    radial-gradient(90% 130% at 50% 120%, rgba(212,162,78,.22) 0%, transparent 55%),
    linear-gradient(180deg, rgba(20,17,25,.5) 0%, transparent 25%, transparent 100%),
    var(--ka-tex) !important;
  background-size: 100% 100%, 100% 100%, 380px auto !important;
  background-repeat: no-repeat, no-repeat, repeat !important;
  background-blend-mode: screen, normal, soft-light !important;
  position: relative;
  border-top: 3px solid var(--ka-gold) !important;     /* off #c79a3b */
  border-bottom: 1px solid var(--ka-gold-line) !important; /* premium hand-off to footer */
  padding-top: 66px !important; padding-bottom: 66px !important;  /* -8% (was 72px) per Keven 2026-06-08 */
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: rgba(32,29,39,.55);
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes > *,
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__inner{
  position:relative; z-index:1;
}

/* ---- 1h. Hero (S1) â€” .wesh : lighten texture (photos carry depth) + seam ---- */
:is(body.page-id-465126, body.home) .wesh{
  background-color: var(--ka-dark) !important;
  background-image: var(--ka-tex) !important;
  background-size: 420px auto !important;
  background-repeat: repeat !important;
  background-blend-mode: soft-light !important;
  border-bottom: 1px solid var(--ka-gold-line);
  box-shadow: 0 1px 0 0 rgba(212,162,78,.18);
}

/* @supports fallback: keep faint texture where soft-light is unsupported */
@supports not (background-blend-mode: soft-light){
  :is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes,
  :is(body.page-id-465126, body.home) .ka_services_strip.ka_services_strip--theme-wes,
  :is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes{
    background-image:
      radial-gradient(120% 90% at 50% -10%, rgba(212,162,78,.10) 0%, transparent 55%),
      var(--ka-tex) !important;
    background-size: 100% 100%, 380px auto !important;
  }
}

/* ---- 1i. LIGHT sections = the single canonical light color #fbf6ec, flat (no wash/grain) ----
   New Arrivals = .ka_product_slider_0 and Featured = .ka_product_grid (hidden).
   The deals slider _1 is DARK and is handled by Â§1d above â€” exclude it here. ---- */
:is(body.page-id-465126, body.home) .ka_product_slider_0,
:is(body.page-id-465126, body.home) .ka_product_grid{
  position: relative; isolation: isolate;
  background-color: #fbf6ec !important;   /* flat canonical light color (no grain/wash) */
}
:is(body.page-id-465126, body.home) .ka_product_slider_0::before,
:is(body.page-id-465126, body.home) .ka_product_grid::before{
  content: none !important;   /* grain + radial wash removed: every light band is the identical solid #fbf6ec */
}
:is(body.page-id-465126, body.home) .ka_product_slider_0 > *,
:is(body.page-id-465126, body.home) .ka_product_grid > *{ position: relative; z-index: 1; }
/* (removed) the bottom tan feather â€” it darkened the seam, and the neighbor below is now also #fbf6ec */
:is(body.page-id-465126, body.home) .ka_product_slider_0::after{
  content: none !important;
}

/* Brands marquee â€” the logo row, flat canonical light color #fbf6ec (no wash/grain) */
:is(body.page-id-465126, body.home) .ka_marquee{
  background-color: #fbf6ec !important;   /* unified to canonical light color (was #faf5eb) */
  background-image: none !important;       /* grain/wash removed for a uniform solid fill */
  position: relative;
}
:is(body.page-id-465126, body.home) .ka_marquee > *{ position:relative; z-index:1; }

/* Locations â€” flat canonical light color #fbf6ec (no wash/grain) */
:is(body.page-id-465126, body.home) .ka_location_grid{
  background-color: #fbf6ec !important;   /* canonical light color */
  background-image: none !important;       /* grain/wash removed for a uniform solid fill */
  position: relative;
}
:is(body.page-id-465126, body.home) .ka_location_grid > *{ position:relative; z-index:1; }

/* ---- 1j. UNIFORM LIGHT SECTIONS â€” the wrapping <section> of every light band also gets the single
   canonical light color #fbf6ec, so no dark / old-cream sliver can show behind the module. Two sections
   had a color baked into the page markup (departments = dark #1c1a1f, marquee = #faf5eb), surfaced by
   Divi's per-section rule (.et-l--post > .et_builder_inner_content .et_pb_section.et_pb_section_N, spec
   0,4,0). This block exceeds it at 0,5,1 and targets by CONTENT (:has) so it survives section
   renumbering when 1804 -> live home. (Keven 2026-06-08) ---- */
body.page-id-465126 .et-l--post .et_builder_inner_content .et_pb_section:has(.wescat),
body.page-id-465126 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_product_slider_0),
body.page-id-465126 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_marquee),
body.page-id-465126 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_location_grid),
body.page-id-465126 .et-l--post .et_builder_inner_content .et_pb_section:has(.wtb-sec),
body.home .et-l--post .et_builder_inner_content .et_pb_section:has(.wescat),
body.home .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_product_slider_0),
body.home .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_marquee),
body.home .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_location_grid),
body.home .et-l--post .et_builder_inner_content .et_pb_section:has(.wtb-sec){
  background-color: #fbf6ec !important;
  background-image: none !important;
}

/* forced-colors: drop decorative texture+glow entirely */
@media (forced-colors: active){
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes,
  :is(body.page-id-465126, body.home) .ka_services_strip--theme-wes,
  :is(body.page-id-465126, body.home) .ka_cta--theme-wes,
  :is(body.page-id-465126, body.home) .ka_brand_slider,
  :is(body.page-id-465126, body.home) .wescat,
  :is(body.page-id-465126, body.home) .wesb,
  :is(body.page-id-465126, body.home) .wesh{
    background-image: none !important;
  }
}

/* =====================================================================
   2. COMPONENTS â€” buttons / cards / badges (COMPONENT lens owns buttons)
   ===================================================================== */

/* ---- 2.1 PRIMARY BUTTON SYSTEM â€” one gold-gradient pill, page-wide ----
   gold gradient + gold shadow at rest -> deeper shadow + -2px lift on hover. */
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button,
:is(body.page-id-465126, body.home) .ka_poster__button,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--primary,
:is(body.page-id-465126, body.home) .ka_location_card__button--primary,
:is(body.page-id-465126, body.home) .wesh__btn--primary,
:is(body.page-id-465126, body.home) .wescat__btn,
:is(body.page-id-465126, body.home) .wesb__cta{
  background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%) !important;
  color: #1a1d21 !important;
  border: 0 !important;
  box-shadow: var(--wes-shadow-gold-md) !important;
  transition: transform .25s var(--ka-ease),
              box-shadow .25s var(--ka-ease),
              background .25s var(--ka-ease) !important;
  will-change: transform;
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:hover,
:is(body.page-id-465126, body.home) .ka_poster__button:hover,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--primary:hover,
:is(body.page-id-465126, body.home) .ka_location_card__button--primary:hover,
:is(body.page-id-465126, body.home) .wesh__btn--primary:hover,
:is(body.page-id-465126, body.home) .wescat__card:hover .wescat__btn,
:is(body.page-id-465126, body.home) .wescat__btn:hover,
:is(body.page-id-465126, body.home) .wesb__cta:hover{
  background: linear-gradient(180deg, #EEC272 0%, #DBA952 100%) !important;
  transform: translateY(-2px);
  box-shadow: var(--wes-shadow-gold-lg) !important;
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:active,
:is(body.page-id-465126, body.home) .ka_poster__button:active,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--primary:active,
:is(body.page-id-465126, body.home) .ka_location_card__button--primary:active,
:is(body.page-id-465126, body.home) .wesh__btn--primary:active,
:is(body.page-id-465126, body.home) .wescat__btn:active,
:is(body.page-id-465126, body.home) .wesb__cta:active{
  transform: translateY(0);
  box-shadow: var(--wes-shadow-gold-md) !important;
}
/* arrow-nudge language: add trailing arrow where markup has none + animate */
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button::after,
:is(body.page-id-465126, body.home) .ka_poster__button::after{
  content: "\2192"; margin-left: 10px; transition: transform .25s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:hover::after,
:is(body.page-id-465126, body.home) .ka_poster__button:hover::after,
:is(body.page-id-465126, body.home) .wesh__btn--primary:hover::after,
:is(body.page-id-465126, body.home) .wescat__card:hover .wescat__btn::after,
:is(body.page-id-465126, body.home) .wescat__btn:hover::after,
:is(body.page-id-465126, body.home) .wesb__cta:hover::after,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--primary:hover::after{
  transform: translateX(4px);
}

/* ---- 2.2 SECONDARY / GHOST SYSTEM â€” two context variants, one language ---- */
/* 2.2a secondary on dark (hero ghost, brand-slide secondary) */
:is(body.page-id-465126, body.home) .wesh__btn--ghost,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--secondary{
  background: rgba(255, 255, 255, .06) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .55) !important;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
  transition: transform .25s var(--ka-ease), border-color .25s var(--ka-ease),
              color .25s var(--ka-ease), background .25s var(--ka-ease),
              box-shadow .25s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .wesh__btn--ghost:hover,
:is(body.page-id-465126, body.home) .ka_brand_slide__button--secondary:hover{
  background: rgba(212, 162, 78, .12) !important;
  border-color: #D4A24E !important;
  color: #E6BE6E !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .30);
}
/* 2.2b secondary on light (product-ranking "VIEW" CTA) */
:is(body.page-id-465126, body.home) .ka_product_ranking .ka_ranking__cta{
  border: 1px solid rgba(28, 26, 31, .22) !important;
  border-radius: 2px;
  box-shadow: 0 1px 2px rgba(28, 26, 31, .08);
  transition: transform .2s var(--ka-ease), background .2s var(--ka-ease),
              color .2s var(--ka-ease), border-color .2s var(--ka-ease),
              box-shadow .2s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_ranking__row:hover .ka_ranking__cta,
:is(body.page-id-465126, body.home) .ka_product_ranking .ka_ranking__cta:hover{
  background: #1c1c1e !important; color: #fff !important; border-color: #1c1c1e !important;
  transform: translateY(-1px); box-shadow: var(--wes-shadow-md) !important;
}

/* ---- 2.3 PRODUCT-CARD CTA ("View product") â€” WES gold OUTLINE at rest -> gold FILL on hover.
   (Keven: keep the liked hover/lift, fix the color to brand gold.) ---- */
:is(body.page-id-465126, body.home) .ka_product_card__cta{
  background: #fff !important; color: #8A6A20 !important;
  border: 1.5px solid rgba(212, 162, 78, .55) !important;
  border-radius: 3px !important;
  box-shadow: var(--wes-shadow-sm) !important;
  transition: transform .25s var(--ka-ease), background .25s var(--ka-ease),
              color .25s var(--ka-ease), border-color .25s var(--ka-ease),
              box-shadow .25s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card__cta::after{ content: "\2192"; margin-left: 8px; transition: transform .25s var(--ka-ease); }
/* hover the whole card OR the button -> gold gradient fill + lift (the effect Keven liked) */
:is(body.page-id-465126, body.home) .ka_product_card:hover .ka_product_card__cta,
:is(body.page-id-465126, body.home) .ka_product_card__cta:hover,
:is(body.page-id-465126, body.home) .ka_product_card__cta:focus-visible{
  background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%) !important;
  color: #1a1d21 !important; border-color: transparent !important;
  box-shadow: var(--wes-shadow-gold-md) !important; transform: translateY(-2px);
}
:is(body.page-id-465126, body.home) .ka_product_card:hover .ka_product_card__cta::after,
:is(body.page-id-465126, body.home) .ka_product_card__cta:hover::after,
:is(body.page-id-465126, body.home) .ka_product_card__cta:focus-visible::after{ transform: translateX(4px); }

/* ---- 2.4 LOCATION-CARD secondary ("Call") â€” ink-fill on hover ---- */
:is(body.page-id-465126, body.home) .ka_location_card__button--secondary{
  box-shadow: 0 1px 2px rgba(28, 26, 31, .08) !important;
  transition: transform .2s var(--ka-ease), background .2s var(--ka-ease),
              color .2s var(--ka-ease), border-color .2s var(--ka-ease),
              box-shadow .2s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_location_card__button--secondary:hover{
  background: #1c1c1e !important; color: #fff !important; border-color: #1c1c1e !important;
  transform: translateY(-1px); box-shadow: var(--wes-shadow-md) !important;
}

/* ---- 2.5 PROJECT-BUNDLE button (ink -> gold + lift) ---- */
:is(body.page-id-465126, body.home) .ka_project_bundle .ka_project_bundle__button{
  transition: transform .25s var(--ka-ease), background .25s var(--ka-ease),
              color .25s var(--ka-ease), box-shadow .25s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_project_bundle .ka_project_bundle__button:hover{
  background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%) !important;
  color: #1a1d21 !important; transform: translateY(-2px);
  box-shadow: var(--wes-shadow-gold-lg) !important;
}

/* ---- 2.6 CLOSING-CTA dual-CTA secondary (if a 2nd anchor is added) ---- */
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__buttons{
  display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:center;
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary,
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes a.ka_cta__button + a.ka_cta__button{
  background: transparent !important; color: #fff !important;
  border: 1.5px solid rgba(212,162,78,.6) !important; box-shadow: none !important;
}
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary::after,
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes a.ka_cta__button + a.ka_cta__button::after{ content: none; }
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary:hover,
:is(body.page-id-465126, body.home) .ka_cta.ka_cta--theme-wes a.ka_cta__button + a.ka_cta__button:hover{
  background: rgba(212,162,78,.12) !important; border-color: var(--ka-gold) !important;
  color: #fff !important; transform: translateY(-2px) !important;
}

/* ---- 2.7 CARD ELEVATION â€” every card on the shadow scale + hover lift ---- */
:is(body.page-id-465126, body.home) .ka_product_card,
:is(body.page-id-465126, body.home) .ka_location_card__inner,
:is(body.page-id-465126, body.home) .ka_project_bundle{
  transition: transform .3s var(--ka-ease), box-shadow .3s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card{
  border-radius: 12px !important;
  box-shadow: var(--wes-shadow-md) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card:hover{ box-shadow: var(--wes-shadow-lg) !important; transform: translateY(-4px); }
:is(body.page-id-465126, body.home) .ka_location_card__inner:hover{ box-shadow: var(--wes-shadow-lg) !important; }
/* Johnson City card now uses a pre-composed 16:9 image (wes-loc-johnson-city-fill.webp: full storefront
   + name, sharp, over a blurred fill of itself) so it COVER-fills the frame at the same size as the
   other cards while showing the full "WILLIAMS ELECTRIC SUPPLY". No object-fit override needed. (Keven 2026-06-10) */
/* ---- Clickable location cards -> open the store page in a NEW TAB (stretched overlay link).
   The Get-directions / Call buttons are raised above the overlay so they keep their own actions;
   no nested anchors. Overlay <a> injected by window.__kaLocCards in home.js. (Keven 2026-06-08) ---- */
:is(body.page-id-465126, body.home) .ka_location_card__inner{ position: relative !important; }
:is(body.page-id-465126, body.home) .ka_location_card__cardlink{
  position: absolute; inset: 0; z-index: 1; border-radius: inherit; cursor: pointer;
  font-size: 0; line-height: 0; color: transparent; text-decoration: none; background: transparent;
}
:is(body.page-id-465126, body.home) .ka_location_card__cardlink:focus-visible{ outline: 3px solid #D4A24E; outline-offset: 3px; }
:is(body.page-id-465126, body.home) .ka_location_card__inner:has(.ka_location_card__cardlink){ cursor: pointer; }
/* keep the buttons (and any other inner link) clickable above the overlay */
:is(body.page-id-465126, body.home) .ka_location_card__buttons,
:is(body.page-id-465126, body.home) .ka_location_card__inner a:not(.ka_location_card__cardlink){ position: relative; z-index: 2; }
:is(body.page-id-465126, body.home) .ka_project_bundle:hover{ box-shadow: var(--wes-shadow-lg) !important; }
:is(body.page-id-465126, body.home) .wescat__card{ box-shadow: var(--wes-shadow-lg) !important; }
:is(body.page-id-465126, body.home) .wescat__card:hover{ box-shadow: var(--wes-shadow-xl) !important; }

/* ---- 2.8 BADGE SYSTEM â€” tight, crisp, on-brand chips ---- */
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__badge{
  width: auto !important; max-width: max-content !important;
  display: inline-flex !important; align-items: center !important; gap: 5px;
  top: 12px !important; left: 12px !important; right: auto;
  padding: 6px 12px !important; border-radius: 999px !important;
  font: 700 10px/1 'AR One Sans', sans-serif !important;
  letter-spacing: .10em !important; text-transform: uppercase !important;
  box-shadow: 0 2px 8px rgba(28,26,31,.28) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__badge--new{
  background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%) !important;
  color: #1a1d21 !important;
  box-shadow: var(--wes-shadow-gold-md) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__badge--sale,
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__badge--off-percent{
  background: #b33a3a !important; color: #fff !important;
}
/* STOCK badge â€” real status pill with leading dot (was unscoped shadowless text) */
:is(body.page-id-465126, body.home) .ka_product_card__stock{
  display: inline-flex !important; align-items: center; gap: 6px;
  width: auto; max-width: max-content;
  top: 12px !important; right: 12px !important;
  color: #1c1c1e !important; background: rgba(255, 255, 255, .96) !important;
  border: 1px solid rgba(28, 26, 31, .10);
  padding: 5px 10px 5px 9px !important; border-radius: 999px !important;
  box-shadow: var(--wes-shadow-sm) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card__stock::before{
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: #4f8a4f; box-shadow: 0 0 0 2px rgba(79, 138, 79, .22); flex: 0 0 auto;
}
:is(body.page-id-465126, body.home) .ka_product_card__stock--special-order::before,
:is(body.page-id-465126, body.home) .ka_product_card__stock[data-stock="special"]::before{
  background: #C8902F; box-shadow: 0 0 0 2px rgba(200, 144, 47, .22);
}
:is(body.page-id-465126, body.home) .ka_product_card__stock--special-order,
:is(body.page-id-465126, body.home) .ka_product_card__stock[data-stock="special"]{ color: #7a5a14 !important; }

/* =====================================================================
   3. PER-MODULE POLISH
   ===================================================================== */

/* ---- 3.1 STAT COUNTERS â€” unify gold numbers, premium dividers ---- */
/* trim the band's vertical padding ~9% (56px -> 51px top+bottom) so it reads tighter (Keven 2026-06-08).
   Double class + :is scope = (0,3,1) to beat Divi's generated `body.page-id-465126 .ka_stat_counters` (0,2,1) !important. */
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes{
  padding-top: 18px !important; padding-bottom: 18px !important;   /* sized down ~25% then a further ~15% (Keven 2026-06-10/11): 51 -> 28 -> 18; deeper-than-proportional cut absorbs the fixed label area so total band height drops the target % */
}
/* Stats band ~25% smaller: scale the big numbers 88->66 (x0.75) to match the tighter padding. Double class + descendant beats the module's generated clamp(56,7vw,88). */
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes .ka_stat_counter__number,
:is(body.page-id-465126, body.home) .ka_stat_counters.ka_stat_counters--theme-wes .ka_stat_counter__value{
  font-size: clamp(36px, 4.46vw, 56px) !important;   /* 88 -> 66 (-25%) -> 56 (further -15%) */
  line-height: 1 !important;
}
:is(body.page-id-465126, body.home) .ka_stat_counter__value,
:is(body.page-id-465126, body.home) .ka_stat_counter__number,
:is(body.page-id-465126, body.home) .ka_stat_counter__prefix,
:is(body.page-id-465126, body.home) .ka_stat_counter__suffix,
:is(body.page-id-465126, body.home) .wes-stat-value{
  color: var(--ka-gold) !important;          /* beat the inline #c79a3b font color */
  text-shadow: 0 1px 0 rgba(0,0,0,.25);
}
/* gold-tinted gradient hairline divider (replaces flat 12% white line) */
:is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes .ka_stat_counter:not(:last-child)::after,
:is(body.page-id-465126, body.home) .wes-stat-block:not(:last-child)::after{
  background: linear-gradient(to bottom,
     rgba(212,162,78,0) 0%, rgba(212,162,78,.40) 50%, rgba(212,162,78,0) 100%) !important;
  height: 46px !important;   /* 72 -> 54 -> 46 to match the further ~15%-smaller band */
}
:is(body.page-id-465126, body.home) .ka_stat_counter__value::after,
:is(body.page-id-465126, body.home) .wes-stat-value::after{
  width: 40px !important; height: 2px !important;
  background: linear-gradient(90deg, var(--ka-gold), var(--ka-gold-lite)) !important;
}
:is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes,
:is(body.page-id-465126, body.home) .wes-stats-band{
  border-bottom-color: var(--ka-gold) !important;
}
/* tabular figures so 0 -> 65,000 count-up doesn't reflow */
:is(body.page-id-465126, body.home) .ka_stat_counter__number,
:is(body.page-id-465126, body.home) .ka_stat_counter__value{
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ---- 3.2 SERVICES STRIP â€” icon lift + gold on hover, unified dividers ---- */
/* trim vertical padding ~3% (56px -> 54px top+bottom) per Keven 2026-06-08; double class (0,3,1)
   beats Divi's generated `body.page-id-465126 .ka_services_strip` 56px !important (0,2,1). */
:is(body.page-id-465126, body.home) .ka_services_strip.ka_services_strip--theme-wes{
  padding-top: 54px !important; padding-bottom: 54px !important;
}
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__link{
  transition: transform .25s var(--ka-ease); border-radius: 8px; outline-offset: 4px;
}
:is(body.page-id-465126, body.home) .ka_services_item__icon{
  width: 40px !important; height: 40px !important; color: var(--ka-gold) !important;
  transition: transform .3s var(--ka-ease), color .3s var(--ka-ease), filter .2s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__title{
  transition: color .25s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__link:hover .ka_services_item__icon,
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__link:focus-visible .ka_services_item__icon{
  transform: translateY(-3px) scale(1.06); color: #E6BE6E !important;
  filter: drop-shadow(0 4px 10px rgba(160,120,40,.45));
}
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__link:hover .ka_services_item__title,
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item__link:focus-visible .ka_services_item__title{
  color: #E6BE6E !important;
}
:is(body.page-id-465126, body.home) .ka_services_strip--theme-wes .ka_services_item:not(:last-child)::after{
  background: linear-gradient(to bottom,
     rgba(212,162,78,0), rgba(212,162,78,.32), rgba(212,162,78,0)) !important;
}

/* ---- 3.3 PRODUCT CARDS â€” editorial framing + price hierarchy ---- */
/* brand/company name -> brand gold (was off-brand olive rgb(138,106,32)); legible on white card */
:is(body.page-id-465126, body.home) .ka_product_card__brand{ color: #8A6A20 !important; }
/* slider dots: clearly clickable + gold active state (wired by the home-slider JS below) */
:is(body.page-id-465126, body.home) .ka_slider__dot{ cursor: pointer; transition: background .2s var(--ka-ease), transform .2s var(--ka-ease); }
:is(body.page-id-465126, body.home) .ka_slider__dot:hover{ transform: scale(1.25); }
:is(body.page-id-465126, body.home) .ka_slider__dot.is-active,
:is(body.page-id-465126, body.home) .ka_slider__dot[aria-selected="true"]{ background: var(--ka-gold) !important; }
/* HIDE the product-slider pagination dots (Keven 2026-06-09) â€” the scrollbar already shows
   position; the dots were redundant. display:none (not removed from DOM) so the home-slider JS
   still wires/swipe-scrolls fine; the hero dots (.wesh__dot, separate class) are unaffected. */
:is(body.page-id-465126, body.home) .ka_slider__dots{ display: none !important; }
/* product-section headings (New arrivals / deals / featured): WES gold eyebrow + Spectral h2 + gold italic accent */
:is(body.page-id-465126, body.home) .wes-eyebrow{
  font: 600 12.5px/1 'AR One Sans', sans-serif !important;
  letter-spacing: .2em !important; text-transform: uppercase !important;
  color: #8A6A20 !important; margin: 0 0 14px !important;
}
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1) .wes-eyebrow{ color: #E6BE6E !important; } /* dark deals band -> lighter gold */
:is(body.page-id-465126, body.home) .et_pb_text:has(.wes-eyebrow) h2{ font-family: 'Spectral', Georgia, serif !important; }
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_0) .et_pb_text h2 em,
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_grid) .et_pb_text h2 em{ color: #8A6A20 !important; font-style: italic; font-weight: 500; }
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1) .et_pb_text h2 em{ color: #E6BE6E !important; font-style: italic; font-weight: 500; }
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__image{
  background: radial-gradient(120% 120% at 50% 30%, #ffffff 0%, #fbf6ec 100%) !important;
  padding: 12px !important; box-sizing: border-box;
  height: 195px !important; aspect-ratio: auto !important;   /* was ~298px square -> shorter, less whitespace */
}
/* New Arrivals heading: breathing room â€” was flush to the left edge (x=0) and jammed against the top
   of the band. Indent to align with the cards (~24px) + add a top gap (Keven 2026-06-08). */
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_0) .et_pb_text{
  padding-top: 30px !important; padding-left: 26px !important; padding-right: 26px !important;
}
/* tighten the card body so the cards aren't so tall (reclaim section height) */
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__body{ padding: 16px 20px 18px !important; }
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__cta{ margin-top: 12px !important; }
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__image img{
  object-fit: contain !important;   /* framed fixtures don't crop */
  mix-blend-mode: multiply;         /* drops white product backgrounds into the cream well */
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__price{
  padding-top: 12px !important; border-top: 1px solid rgba(212,162,78,.18) !important;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__price del{
  color: #9b9489 !important; font-weight: 400 !important;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__price ins{
  color: #1c1c1e !important; font-weight: 700 !important;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__title{ transition: color .2s var(--ka-ease); }
:is(body.page-id-465126, body.home) .ka_product_card:hover .ka_product_card__title{ color: var(--ka-gold-deep) !important; }
/* clamp title to 2 lines with reserved height so price never collides */
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__title{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; min-height:2.6em; margin:0 0 14px;
}
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__price{ margin-top:auto; }
:is(body.page-id-465126, body.home) .ka_product_slider .ka_slide{ height:auto; scroll-snap-align:start; }

/* deals/dark product band slider title + arrows/dots gold-aware */
:is(body.page-id-465126, body.home) .ka_product_slider__title{ text-shadow: 0 1px 0 rgba(0,0,0,.3); }
:is(body.page-id-465126, body.home) .ka_product_slider__title em,
:is(body.page-id-465126, body.home) .ka_product_ranking__title em{ color: var(--ka-gold) !important; }
:is(body.page-id-465126, body.home) .ka_slider__dot.is-active,
:is(body.page-id-465126, body.home) .ka_slider__dot[aria-selected="true"]{ background: var(--ka-gold) !important; }
:is(body.page-id-465126, body.home) .ka_slider__arrow:hover{ background: var(--ka-gold) !important; color: #1a1d21 !important; border-color: var(--ka-gold) !important; }
/* location-grid title sits on cream: keep a darker gold for contrast */
:is(body.page-id-465126, body.home) .ka_location_grid__title em{ color: #A87C28 !important; font-style: italic; }

/* ---- 3.4b LOCATIONS â€” 4 tiles in ONE row, reordered, compact (Keven 2026-06-08) ----
   Order: Johnson City, Greeneville, Bristol, Kingsport. DOM is JC(_0) Green(_1) King(_2) Bristol(_3),
   so swap the last two via `order`. */
:is(body.page-id-465126, body.home) .ka_location_grid__grid{
  grid-template-columns: repeat(4, 1fr) !important; gap: 24px !important; align-items: stretch !important;
  grid-auto-rows: 1fr !important;   /* equal row heights so cards match across rows at 2-up/1-up too */
}
:is(body.page-id-465126, body.home) .ka_location_card_2{ order: 4; }   /* Kingsport -> far right */
:is(body.page-id-465126, body.home) .ka_location_card_3{ order: 3; }   /* Bristol -> 3rd */
/* UNIFORM CARD HEIGHTS: the grid row stretches to the tallest card, but the block grid-items weren't
   filling it (percentage-height/stretch quirk). Force the item to fill its row so all 4 cards match,
   content-adaptive (no fixed px). The inner already has height:100%; buttons pin to the bottom. */
:is(body.page-id-465126, body.home) .ka_location_card{ height: 100% !important; }
:is(body.page-id-465126, body.home) .ka_location_card__buttons{ margin-top: auto !important; }
/* the 4 narrower tiles: stack the two buttons full-width (cleaner than side-by-side at ~320px) */
:is(body.page-id-465126, body.home) .ka_location_card__buttons{ flex-direction: column !important; gap: 10px !important; }
:is(body.page-id-465126, body.home) .ka_location_card__button{ width: 100% !important; justify-content: center !important; }
/* hover lift (improvement) â€” the scroll-reveal already staggers these in */
:is(body.page-id-465126, body.home) .ka_location_card__inner{
  height: 100% !important;
  transition: transform .3s var(--ka-ease), box-shadow .3s var(--ka-ease) !important;
}
:is(body.page-id-465126, body.home) .ka_location_card__inner:hover{
  transform: translateY(-6px); box-shadow: var(--wes-shadow-lg) !important;
}
/* responsive: 4-up wide -> 2-up tablet -> 1-up phone (order carries through) */
@media (max-width: 1180px){
  :is(body.page-id-465126, body.home) .ka_location_grid__grid{ grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px){
  :is(body.page-id-465126, body.home) .ka_location_grid__grid{ grid-template-columns: 1fr !important; max-width: 420px; margin-inline: auto; }
}

/* ---- 3.4 BRAND MARQUEE â€” WES heading, bigger logos, no wasted space (Keven 2026-06-08) ---- */
/* heading "Brands we stock" -> WES gold uppercase eyebrow (was olive #8a6a20, mixed case) */
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner,
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner p{
  color: #8A6A20 !important; text-transform: uppercase !important;
  font-family: 'AR One Sans', sans-serif !important; font-weight: 600 !important;
  font-size: 12.5px !important; letter-spacing: .2em !important; font-style: normal !important;
}
/* breathing room above the "BRANDS WE STOCK" eyebrow text â€” 3em (Keven 2026-06-09; 1em -> 2em -> 3em) */
:is(body.page-id-465126, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner{ padding-top: 3em !important; }
:is(body.page-id-465126, body.home) .ka_marquee{
  padding: 30px 0 !important;
  border-top-color: #e0d7c5 !important; border-bottom-color: #e0d7c5 !important;
}
:is(body.page-id-465126, body.home) .ka_marquee::before{
  width: 160px !important;
  background: linear-gradient(to right, #fbf6ec 0%, rgba(251,246,236,0) 100%) !important;
}
:is(body.page-id-465126, body.home) .ka_marquee::after{
  width: 160px !important;
  background: linear-gradient(to left, #fbf6ec 0%, rgba(251,246,236,0) 100%) !important;
}
:is(body.page-id-465126, body.home) .ka_marquee__track{ gap: 84px !important; }
/* KILL the wasted vertical space: each item carried a ~174px bottom margin that inflated the band */
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item{ margin-bottom: 0 !important; }
/* logos ~+50% bigger (was ~64-82px); double-class beats the plugin's img height */
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image,
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image img{
  height: 125px !important; max-height: 125px !important; width: auto !important; max-width: 230px !important;
}
/* clickable logos pulse-cursor */
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__inner{ cursor: pointer; }
:is(body.page-id-465126, body.home) .ka_marquee_item__image,
:is(body.page-id-465126, body.home) .ka_marquee_item__image img{ height: 125px !important; }
:is(body.page-id-465126, body.home) .ka_marquee_item__image img{
  filter: grayscale(1) contrast(.95) !important; opacity: .55 !important;
  transition: opacity .3s ease, filter .3s ease, transform .3s ease !important;
}
:is(body.page-id-465126, body.home) .ka_marquee_item__inner:hover .ka_marquee_item__image img{
  filter: grayscale(0) contrast(1) !important; opacity: 1 !important; transform: translateY(-2px);
}

/* ---- 3.4b BRANDS WE STOCK â€” UNIFORM logo sizing (Keven 2026-06-09).
   Root cause of the old disparity: all 6 source PNGs were 250x250 squares but each logo's ink
   filled a wildly different fraction of its canvas (Crystorama ~94% tall down to Hinkley ~22%),
   so at the same box they rendered at ~4.3x different visible sizes. Fix: the 6 logos were
   re-uploaded TRIMMED (transparent padding removed; ids 1899-1904), so a single cap-height rule
   now makes them visually uniform -- every logo renders at the SAME 60px height (widths vary by
   each logo's natural shape, capped at 210px), sitting on a common baseline. This OVERRIDES the
   Â§3.4 height:125px box above (later-in-file, equal specificity) and also tightens the band. ---- */
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image,
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image img,
:is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__inner img{
  height: auto !important;
  max-height: 60px !important;
  max-width: 210px !important;
  width: auto !important;
  object-fit: contain !important;
}
/* (mobile cap-height handled by Â§6.8 @media max-width:640px â€” keeps all marquee sizing in one place) */

/* ---- 3.5 SHOWROOM POSTER â€” deeper legible directional scrim (Rule #27) ---- */
:is(body.page-id-465126, body.home) .ka_poster__image::after{
  background: linear-gradient(95deg,
     rgba(20,18,22,.90) 0%, rgba(20,18,22,.55) 52%, rgba(20,18,22,.12) 100%) !important;
}
:is(body.page-id-465126, body.home) .ka_poster__title{ text-shadow: 0 2px 18px rgba(0,0,0,.5) !important; }

/* ---- 3.6 CLOSING-CTA title accent gold unify ---- */
:is(body.page-id-465126, body.home) .ka_cta--theme-wes .ka_cta__title em{
  color: var(--ka-gold) !important; font-style: italic;
}

/* ---- 3.7 CUSTOM-CODE GOLD UNIFICATION (off #c79a3b / #e6be6e / #e0c074) ---- */
:is(body.page-id-465126, body.home) .wesh__title em,
:is(body.page-id-465126, body.home) .wescat__h em,
:is(body.page-id-465126, body.home) .wescat__eyebrow,
:is(body.page-id-465126, body.home) .wesb__h em,
:is(body.page-id-465126, body.home) .wesb__eyebrow{ color: #D4A24E !important; }
:is(body.page-id-465126, body.home) .wesh__eyebrow,
:is(body.page-id-465126, body.home) .wescat__line{ color: #E6BE6E !important; }

/* ---- 3.8 HERO â€” immersive height, cinematic overlay, eyebrow/pill, type ---- */
:is(body.page-id-465126, body.home) .wesh{
  height: auto; min-height: clamp(560px, 82vh, 760px);
}
/* ---- 3.8a SLIDER BEHAVIOR ----
   TIMER DISABLED for testing (Keven 2026-06-08): slide 1 is shown instantly via #weshr1[checked]
   in the markup, which also stops the pure-CSS auto-advance (a checked radio sets animation:none).
   These overrides belt-and-suspenders the no-timer state and add a smooth crossfade between slides.
   TO RE-ENABLE THE TIMER LATER: remove `checked` from #weshr1 in the hero code block, remove the two
   `animation: none` overrides below, and fix the slide-1 black-flash (make .wesh__s1 start visible,
   e.g. give the wesh-fade keyframe a 0%{opacity:1} for slide 1 or convert to a JS slider). */
:is(body.page-id-465126, body.home) .wesh__s{
  animation: none !important;
  transition: opacity .7s ease !important;   /* manual nav cross-fades instead of hard-cutting */
}
:is(body.page-id-465126, body.home) .wesh__dot{ animation: none !important; }
/* gold accent word in Playfair Display italic to match the original home hero */
:is(body.page-id-465126, body.home) .wesh__title em{
  font-family: 'Playfair Display', 'Spectral', Georgia, serif !important;
  font-weight: 500; font-style: italic;
}
:is(body.page-id-465126, body.home) .wesh__s::after{
  background:
    linear-gradient(180deg, rgba(18,16,21,.36) 0%, rgba(18,16,21,0) 22%),
    linear-gradient(180deg, rgba(18,16,21,0) 62%, rgba(18,16,21,.47) 100%),
    linear-gradient(102deg, rgba(18,16,21,.73) 0%, rgba(18,16,21,.49) 38%, rgba(18,16,21,.1) 66%, rgba(18,16,21,0) 100%);
}
:is(body.page-id-465126, body.home) .wesh__in{ padding: 0 clamp(26px, 5vw, 72px); }
:is(body.page-id-465126, body.home) .wesh__c{ max-width: 690px; }
:is(body.page-id-465126, body.home) .wesh__pill{
  background: rgba(20,18,22,.55); border: 1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow: var(--wes-shadow-md); padding: 8px 14px;
}
:is(body.page-id-465126, body.home) .wesh__pill::before{
  background: var(--brand-success, #4f8a4f);
}
:is(body.page-id-465126, body.home) .wesh__eyebrow{
  color: #e6be6e; letter-spacing: .2em; position: relative; padding-left: 18px; margin-left: 14px;
}
:is(body.page-id-465126, body.home) .wesh__eyebrow::before{
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 7px; height: 1px; background: var(--brand-accent, #D4A24E);
}
:is(body.page-id-465126, body.home) .wesh__c>.wesh__eyebrow:first-child{ margin-left: 0; padding-left: 0; }
:is(body.page-id-465126, body.home) .wesh__c>.wesh__eyebrow:first-child::before{ display: none; }
:is(body.page-id-465126, body.home) .wesh__title{
  margin-top: 20px; font-size: clamp(40px, 5.4vw, 72px);
  line-height: 1.04; letter-spacing: -.02em; text-shadow: 0 2px 22px rgba(0,0,0,.5);
}
:is(body.page-id-465126, body.home) .wesh__sub{
  margin-top: 20px; max-width: 26em; font-size: clamp(16px, 1.4vw, 18.5px);
  line-height: 1.65; color: rgba(250,245,235,.9);
}
/* hero CTA sizing only (button skin owned by Â§2.1) â€” 14px/.06em tracking to match the original hero */
:is(body.page-id-465126, body.home) .wesh__btn{ padding: 16px 30px; font-size: 14px; letter-spacing: .06em; will-change: transform; }
:is(body.page-id-465126, body.home) .wesh__btn--ghost{
  border: 1px solid rgba(255,255,255,.55);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  box-shadow: 0 2px 10px rgba(0,0,0,.22);
}
:is(body.page-id-465126, body.home) .wesh__btn--ghost:hover{ transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.3); }
/* hero arrows + dots: real depth, brand-gold active */
:is(body.page-id-465126, body.home) .wesh__arw{
  background: rgba(20,18,22,.5); border: 1px solid rgba(255,255,255,.28);
  box-shadow: 0 2px 6px rgba(0,0,0,.22), 0 8px 20px rgba(0,0,0,.26);
  transition: all .22s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .wesh__arw:hover{
  background: var(--brand-accent, #D4A24E); color: #1c1c1e; border-color: var(--brand-accent, #D4A24E);
  transform: translateY(-50%) scale(1.06);
  box-shadow: 0 4px 10px rgba(28,26,31,.22), 0 12px 28px rgba(212,162,78,.34);
}
:is(body.page-id-465126, body.home) .wesh__dot{ box-shadow: 0 1px 3px rgba(0,0,0,.4); }
:is(body.page-id-465126, body.home) #weshr1:checked ~ .wesh__dots .wesh__dot:nth-child(1),
:is(body.page-id-465126, body.home) #weshr2:checked ~ .wesh__dots .wesh__dot:nth-child(2),
:is(body.page-id-465126, body.home) #weshr3:checked ~ .wesh__dots .wesh__dot:nth-child(3),
:is(body.page-id-465126, body.home) #weshr4:checked ~ .wesh__dots .wesh__dot:nth-child(4),
:is(body.page-id-465126, body.home) #weshr5:checked ~ .wesh__dots .wesh__dot:nth-child(5),
:is(body.page-id-465126, body.home) #weshr6:checked ~ .wesh__dots .wesh__dot:nth-child(6){
  background: var(--brand-accent, #D4A24E);
  box-shadow: 0 0 0 4px rgba(212,162,78,.18), 0 1px 3px rgba(0,0,0,.4);
  transform: scale(1.15);
}

/* =====================================================================
   4. MOTION â€” initial-state + reveal (guarded by html.ka-mo-armed ONLY,
   so non-JS / reduced-motion / old browsers always see visible content)
   ===================================================================== */
@media (prefers-reduced-motion: reduce){
  :is(body.page-id-465126, body.home) .ka-mo,
  :is(body.page-id-465126, body.home) .ka-mo-in{
    opacity: 1 !important; transform: none !important; animation: none !important;
  }
}
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo{
  opacity: 0; transform: translate3d(0, 26px, 0); will-change: opacity, transform;
}
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo[data-ka-mo="left"]{ transform: translate3d(-34px, 0, 0); }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo[data-ka-mo="right"]{ transform: translate3d(34px, 0, 0); }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo[data-ka-mo="zoom"]{ transform: scale(1.06); opacity: 0; }

html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo.ka-mo-in{ animation: ka-mo-rise 0.72s var(--ka-ease) both; }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo.ka-mo-in[data-ka-mo="left"]{ animation-name: ka-mo-left; }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo.ka-mo-in[data-ka-mo="right"]{ animation-name: ka-mo-right; }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo.ka-mo-in[data-ka-mo="zoom"]{ animation-name: ka-mo-zoom; animation-duration: 1.2s; }

@keyframes ka-mo-rise{ from{ opacity:0; transform:translate3d(0,26px,0);} to{ opacity:1; transform:translate3d(0,0,0);} }
@keyframes ka-mo-left{ from{ opacity:0; transform:translate3d(-34px,0,0);} to{ opacity:1; transform:translate3d(0,0,0);} }
@keyframes ka-mo-right{ from{ opacity:0; transform:translate3d(34px,0,0);} to{ opacity:1; transform:translate3d(0,0,0);} }
@keyframes ka-mo-zoom{ from{ opacity:0; transform:scale(1.06);} to{ opacity:1; transform:scale(1);} }

/* poster image scale-settle (contain the scale so no layout shift) */
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-poster-img{ overflow: hidden; }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-poster-img.ka-mo-in{ animation: ka-mo-img-settle 1.4s var(--ka-ease) both; }
@keyframes ka-mo-img-settle{ from{ transform: scale(1.06);} to{ transform: scale(1);} }

/* eyebrow gold underline sweep */
:is(body.page-id-465126, body.home) .ka-mo-eyebrow{ position: relative; display: inline-block; }
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-eyebrow::after{
  content: ""; position: absolute; left: 0; bottom: -8px; height: 2px; width: 100%;
  background: var(--brand-accent, #D4A24E);
  transform: scaleX(0); transform-origin: left center; border-radius: 2px;
}
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-eyebrow.ka-mo-in::after,
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-in .ka-mo-eyebrow::after{
  animation: ka-mo-underline 0.7s var(--ka-ease) 0.15s both;
}
@keyframes ka-mo-underline{ from{ transform: scaleX(0);} to{ transform: scaleX(1);} }
:is(body.page-id-465126, body.home) .wescat__head .ka-mo-eyebrow,
:is(body.page-id-465126, body.home) .ka_services_strip__head .ka-mo-eyebrow{
  display: block; width: max-content; margin-left: auto; margin-right: auto;
}
/* post-reveal hygiene */
html.ka-mo-armed :is(body.page-id-465126, body.home) .ka-mo-done{ will-change: auto; opacity: 1; transform: none; }

/* reduced-motion: neutralize component lift/nudge transforms too */
@media (prefers-reduced-motion: reduce){
  :is(body.page-id-465126, body.home) .ka_cta__button,
  :is(body.page-id-465126, body.home) .ka_poster__button,
  :is(body.page-id-465126, body.home) .ka_brand_slide__button--primary,
  :is(body.page-id-465126, body.home) .ka_location_card__button--primary,
  :is(body.page-id-465126, body.home) .ka_location_card__button--secondary,
  :is(body.page-id-465126, body.home) .ka_product_card,
  :is(body.page-id-465126, body.home) .ka_product_card__cta,
  :is(body.page-id-465126, body.home) .ka_services_item__icon,
  :is(body.page-id-465126, body.home) .ka_marquee_item__image img,
  :is(body.page-id-465126, body.home) .wesh__btn--primary,
  :is(body.page-id-465126, body.home) .wescat__btn,
  :is(body.page-id-465126, body.home) .wesb__cta{
    transition: none !important;
  }
  :is(body.page-id-465126, body.home) .ka_cta__button:hover,
  :is(body.page-id-465126, body.home) .ka_poster__button:hover,
  :is(body.page-id-465126, body.home) .ka_brand_slide__button--primary:hover,
  :is(body.page-id-465126, body.home) .ka_location_card__button--primary:hover,
  :is(body.page-id-465126, body.home) .ka_product_card:hover,
  :is(body.page-id-465126, body.home) .ka_product_card__cta:hover,
  :is(body.page-id-465126, body.home) .wesh__btn--primary:hover,
  :is(body.page-id-465126, body.home) .wescat__card:hover .wescat__btn,
  :is(body.page-id-465126, body.home) .wesb__cta:hover{
    transform: none !important;
  }
}

/* =====================================================================
   5. ACCESSIBILITY â€” one consistent gold focus-visible ring page-wide
   ===================================================================== */
:is(body.page-id-465126, body.home) a:focus-visible,
:is(body.page-id-465126, body.home) button:focus-visible,
:is(body.page-id-465126, body.home) [role="button"]:focus-visible,
:is(body.page-id-465126, body.home) .wesh__arw:focus-visible,
:is(body.page-id-465126, body.home) .wesh__dot:focus-visible,
:is(body.page-id-465126, body.home) .wescat__card:focus-visible,
:is(body.page-id-465126, body.home) .ka_product_card:focus-visible,
:is(body.page-id-465126, body.home) .ka_product_card__cta:focus-visible,
:is(body.page-id-465126, body.home) .ka_services_item__link:focus-visible{
  outline: 2px solid #D4A24E !important; outline-offset: 3px !important; border-radius: 3px;
}

/* =====================================================================
   6. RESPONSIVE
   ===================================================================== */

/* ---- 6.0 texture scale + perf on smaller screens ---- */
@media (max-width: 880px){
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes,
  :is(body.page-id-465126, body.home) .ka_services_strip--theme-wes,
  :is(body.page-id-465126, body.home) .ka_cta--theme-wes,
  :is(body.page-id-465126, body.home) .et_pb_section:has(.ka_product_slider_1){
    background-size: 100% 100%, 100% 100%, 240px auto !important;
  }
  :is(body.page-id-465126, body.home) .wescat::before,
  :is(body.page-id-465126, body.home) .wesb .wesb__txt{ background-size: 100% 100%, 240px auto; }
  :is(body.page-id-465126, body.home) .wesh{ background-size: 260px auto !important; }
}

/* ---- 6.1 HERO mobile: re-anchor arrows so they never overlap sub-text ---- */
@media (max-width: 880px){
  :is(body.page-id-465126, body.home) .wesh{ min-height: 600px; }
  :is(body.page-id-465126, body.home) .wesh__title{ font-size: clamp(30px, 7.6vw, 42px); }
  :is(body.page-id-465126, body.home) .wesh__sub{ font-size: 16px; max-width: 30em; }
  :is(body.page-id-465126, body.home) .wesh__arw{
    top: auto; bottom: 14px; transform: none;
    width: 40px; height: 40px; font-size: 22px; background: rgba(20,18,22,.6);
  }
  :is(body.page-id-465126, body.home) .wesh__arw:hover{ transform: scale(1.05); }
  :is(body.page-id-465126, body.home) .wesh__arw--p{ left: 14px; }
  :is(body.page-id-465126, body.home) .wesh__arw--n{ right: 14px; }
  :is(body.page-id-465126, body.home) .wesh__dots{ bottom: 26px; }
  :is(body.page-id-465126, body.home) .wesh__c{ padding-bottom: 66px; }
}
@media (max-width: 560px){
  :is(body.page-id-465126, body.home) .wesh{ min-height: 540px; }
  :is(body.page-id-465126, body.home) .wesh__in{ padding: 0 22px 96px; align-items: center; }
  :is(body.page-id-465126, body.home) .wesh__title{ font-size: clamp(28px, 8.5vw, 38px); }
  :is(body.page-id-465126, body.home) .wesh__sub{ font-size: 15.5px; line-height: 1.55; }
  :is(body.page-id-465126, body.home) .wesh__arw{ width: 38px; height: 38px; }
  :is(body.page-id-465126, body.home) .wesh__btns{ gap: 10px; }
  :is(body.page-id-465126, body.home) .wesh__btn{ width: 100%; justify-content: center; padding: 14px 22px; min-height: 46px; }
}

/* ---- 6.2 PRODUCT GRID (Featured Picks) â€” collapse columns (beat base sheet) ---- */
@media (max-width: 1080px){
  :is(body.page-id-465126, body.home) .ka_product_grid.ka_product_grid{
    --ka-product-cols: 3; grid-template-columns: repeat(3,1fr) !important;
  }
}
@media (max-width: 820px){
  :is(body.page-id-465126, body.home) .ka_product_grid.ka_product_grid{
    --ka-product-cols: 2; grid-template-columns: repeat(2,1fr) !important; gap: 16px !important;
  }
}
@media (max-width: 520px){
  :is(body.page-id-465126, body.home) .ka_product_grid.ka_product_grid{
    --ka-product-cols: 1; grid-template-columns: 1fr !important; gap: 16px !important;
  }
}

/* ---- 6.3 PRODUCT CARD title/price on small screens ---- */
@media (max-width: 520px){
  :is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__title{ font-size: 16px; min-height: 0; -webkit-line-clamp: 3; }
  :is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__body{ padding: 18px 18px 20px; }
  :is(body.page-id-465126, body.home) .ka_product_slider__slider .ka_slide{ flex: 0 0 78vw; max-width: 300px; }
  :is(body.page-id-465126, body.home) .ka_product_card__cta{ align-self: stretch; justify-content: center; min-height: 46px; }
}

/* ---- 6.4 DEPARTMENTS (.wescat) â€” 2-up tablet tier ---- */
@media (min-width: 601px) and (max-width: 900px){
  :is(body.page-id-465126, body.home) .wescat__grid{ grid-template-columns: repeat(2,1fr); max-width: 760px; gap: 18px; }
  :is(body.page-id-465126, body.home) .wescat__card{ height: clamp(300px,40vw,360px); }
}
@media (max-width: 600px){
  :is(body.page-id-465126, body.home) .wescat__grid{ grid-template-columns: 1fr; max-width: 440px; }
  :is(body.page-id-465126, body.home) .wescat__card{ height: 300px; }
  :is(body.page-id-465126, body.home) .wescat__btn{ padding: 13px 22px; min-height: 44px; }
}

/* ---- 6.5 STATS â€” 2x2 tablet tier instead of one tall stack ---- */
@media (min-width: 521px) and (max-width: 820px){
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes .ka_stat_counters__inner{
    grid-template-columns: repeat(2,1fr) !important; gap: 36px 24px !important;
  }
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes .ka_stat_counter::after{ display: none !important; }
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes .ka_stat_counter__value{ font-size: clamp(34px,6vw,46px) !important; }
}
@media (max-width: 520px){
  :is(body.page-id-465126, body.home) .ka_stat_counters--theme-wes .ka_stat_counters__inner{
    grid-template-columns: 1fr !important; gap: 28px !important;
  }
}

/* ---- 6.6 SHOWROOM POSTER mobile â€” stronger directional overlay (Rule #27) ---- */
@media (max-width: 640px){
  :is(body.page-id-465126, body.home) .ka_poster__overlay{
    background: linear-gradient(180deg, rgba(15,14,18,.92) 0%, rgba(15,14,18,.72) 55%, rgba(15,14,18,.40) 100%);
    padding: 56px 22px;
  }
  :is(body.page-id-465126, body.home) .ka_poster__title{ font-size: clamp(30px,8vw,40px); }
}

/* ---- 6.7 BRAND POSTER (.wesb) mobile tap-target + padding ---- */
@media (max-width: 560px){
  :is(body.page-id-465126, body.home) .wesb__txt{ padding: 40px 22px; }
  :is(body.page-id-465126, body.home) .wesb__h{ font-size: clamp(26px,7.5vw,34px); }
  :is(body.page-id-465126, body.home) .wesb__p{ font-size: 16px; }
  :is(body.page-id-465126, body.home) .wesb__cta{ padding: 14px 24px; min-height: 46px; }
}

/* ---- 6.8 MARQUEE logos on phones â€” UNIFORM cap-height (trimmed logos, Keven 2026-06-09).
   Was height:76px (pre-trim, when ink fill varied 22-94%); now the logos are trimmed so a
   single 46px cap-height makes them uniform on small screens. (This is the canonical mobile
   marquee rule; it wins over the desktop Â§3.4b base by being later + matching specificity.) ---- */
@media (max-width: 640px){
  :is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image,
  :is(body.page-id-465126, body.home) .ka_marquee .ka_marquee_item__image img,
  :is(body.page-id-465126, body.home) .ka_marquee_item__image,
  :is(body.page-id-465126, body.home) .ka_marquee_item__image img{
    height: auto !important; max-height: 46px !important; max-width: 160px !important;
    width: auto !important; object-fit: contain !important;
  }
  :is(body.page-id-465126, body.home) .ka_marquee__track{ gap: 52px !important; }
}

/* ---- 6.9 LOCATION CARDS mobile tap-target ---- */
@media (max-width: 520px){
  :is(body.page-id-465126, body.home) .ka_location_card__button--primary,
  :is(body.page-id-465126, body.home) .ka_location_card__button--secondary{
    min-height: 46px; padding-top: 12px; padding-bottom: 12px;
  }
  :is(body.page-id-465126, body.home) .ka_location_card__name{ font-size: 24px; }
}

/* ---- 6.10 PRIMARY/SECONDARY CTAs comfortably tappable on phones ---- */
@media (max-width: 600px){
  :is(body.page-id-465126, body.home) .wescat__btn,
  :is(body.page-id-465126, body.home) .wesb__cta,
  :is(body.page-id-465126, body.home) .ka_cta__button,
  :is(body.page-id-465126, body.home) .ka_poster__button,
  :is(body.page-id-465126, body.home) .ka_product_card__cta{ min-height: 46px; }
}
/* =====================================================================
   7. "OUR TOP BRANDS" CAROUSEL (.wtb) â€” custom product carousel (Keven 2026-06-08)
   Cream WES band between the brand poster and the showroom poster. HTML shell lives in a
   Divi code module; cards are fetched from the WC Store API + rendered by window.__kaTopBrands;
   styled here. Scroll-snap + native swipe + circular gold arrows + a gold progress thumb.
   ===================================================================== */
:is(body.page-id-465126, body.home) .wtb-sec{
  background-color: #fbf6ec !important;   /* canonical light color */
  background-image: none !important;       /* grain/wash removed for a uniform solid fill */
  position: relative; isolation: isolate;
}
:is(body.page-id-465126, body.home) .wtb{
  max-width: 1320px; margin: 0 auto; padding: clamp(40px,4.7vw,58px) clamp(20px,4vw,40px);  /* top/bottom -~13% (was 46-68) per Keven */
  position: relative; z-index: 1;
}
:is(body.page-id-465126, body.home) .wtb__head{ text-align: center; max-width: 700px; margin: 0 auto clamp(22px,2.5vw,32px); }  /* heading->cards gap tightened (was 28-40) */
:is(body.page-id-465126, body.home) .wtb__eyebrow{
  margin: 0 0 12px; color: #8A6A20; font: 600 12.5px/1 'AR One Sans', sans-serif;
  letter-spacing: .2em; text-transform: uppercase;
}
:is(body.page-id-465126, body.home) .wtb__title{
  margin: 0; font-family: 'Spectral', Georgia, serif; font-weight: 700; color: #1c1c1e;
  font-size: clamp(30px,3.6vw,46px); line-height: 1.08; letter-spacing: -.02em;
}
:is(body.page-id-465126, body.home) .wtb__title em{ font-style: italic; font-weight: 500; color: #8A6A20; }
:is(body.page-id-465126, body.home) .wtb__sub{
  margin: 16px auto 0; max-width: 54ch; color: #4a4540; font: 400 16.5px/1.6 'AR One Sans', sans-serif;
}
/* viewport + scroll-snap track (native swipe; scrollbar hidden â€” we draw a gold progress thumb) */
:is(body.page-id-465126, body.home) .wtb__viewport{ position: relative; }
:is(body.page-id-465126, body.home) .wtb__track{
  display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 6px 2px 8px; -ms-overflow-style: none; scrollbar-width: none; cursor: grab;
}
:is(body.page-id-465126, body.home) .wtb__track::-webkit-scrollbar{ display: none; }
/* desktop click-drag: while dragging, scroll instantly + show grabbing cursor */
:is(body.page-id-465126, body.home) .wtb__track.is-dragging{ cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
:is(body.page-id-465126, body.home) .wtb__track.is-dragging .wtb__card{ cursor: grabbing; }
:is(body.page-id-465126, body.home) .wtb__card{
  flex: 0 0 clamp(238px, 23vw, 272px); scroll-snap-align: start; text-decoration: none;
  background: #fff; border: 1px solid #efe7d7; border-radius: 14px; overflow: hidden;
  display: flex; flex-direction: column; box-shadow: var(--wes-shadow-md);
  transition: transform .32s var(--ka-ease), box-shadow .32s var(--ka-ease), border-color .32s var(--ka-ease);
  opacity: 0; transform: translateY(16px); animation: wtb-in .5s var(--ka-ease) forwards;
}
@keyframes wtb-in{ to{ opacity: 1; transform: none; } }
:is(body.page-id-465126, body.home) .wtb__card:hover{
  transform: translateY(-6px); box-shadow: var(--wes-shadow-lg); border-color: rgba(212,162,78,.5);
}
:is(body.page-id-465126, body.home) .wtb__imgwrap{
  height: 200px; display: flex; align-items: center; justify-content: center; padding: 18px; overflow: hidden;
  background: radial-gradient(120% 120% at 50% 30%, #ffffff 0%, #fbf6ec 100%);
}
:is(body.page-id-465126, body.home) .wtb__img{ max-height: 100%; max-width: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .5s var(--ka-ease); }
:is(body.page-id-465126, body.home) .wtb__card:hover .wtb__img{ transform: scale(1.06); }
:is(body.page-id-465126, body.home) .wtb__body{ padding: 16px 18px 20px; display: flex; flex-direction: column; flex: 1; }
:is(body.page-id-465126, body.home) .wtb__cat{ color: #8A6A20; font: 700 10.5px/1 'AR One Sans', sans-serif; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 8px; }
:is(body.page-id-465126, body.home) .wtb__name{
  margin: 0 0 10px; color: #1c1c1e; font-family: 'Spectral', Georgia, serif; font-weight: 600; font-size: 17px; line-height: 1.28;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.56em;
}
:is(body.page-id-465126, body.home) .wtb__price{ font-family: 'Spectral', Georgia, serif; font-weight: 700; font-size: 19px; color: #1c1c1e; padding-top: 8px; border-top: 1px solid rgba(212,162,78,.18); }
:is(body.page-id-465126, body.home) .wtb__price del{ color: #9b9489; font-weight: 400; margin-right: 6px; }
:is(body.page-id-465126, body.home) .wtb__price ins{ text-decoration: none; color: #b33a3a; }
:is(body.page-id-465126, body.home) .wtb__btn{
  margin-top: 14px; display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  font: 700 11.5px/1 'AR One Sans', sans-serif; letter-spacing: .06em; text-transform: uppercase;
  color: #8A6A20; background: #fff; border: 1.5px solid rgba(212,162,78,.55); border-radius: 3px; padding: 10px 16px;
  transition: transform .25s var(--ka-ease), background .25s var(--ka-ease), color .25s var(--ka-ease), border-color .25s var(--ka-ease), box-shadow .25s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .wtb__card:hover .wtb__btn{
  background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%); color: #1a1d21; border-color: transparent;
  box-shadow: var(--wes-shadow-gold-md); transform: translateY(-1px);
}
:is(body.page-id-465126, body.home) .wtb__btn span{ transition: transform .25s var(--ka-ease); }
:is(body.page-id-465126, body.home) .wtb__card:hover .wtb__btn span{ transform: translateX(4px); }
/* controls: circular gold arrows + gold progress thumb */
:is(body.page-id-465126, body.home) .wtb__ctrls{ display: flex; align-items: center; gap: 18px; max-width: 1320px; margin: 18px auto 0; padding: 0 clamp(20px,4vw,40px); }
:is(body.page-id-465126, body.home) .wtb__arw{
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; cursor: pointer;
  display: flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1;
  color: #1c1c1e; background: #fff; border: 1px solid rgba(28,26,31,.16); box-shadow: var(--wes-shadow-sm);
  transition: transform .2s var(--ka-ease), background .2s var(--ka-ease), color .2s var(--ka-ease), border-color .2s var(--ka-ease), box-shadow .2s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .wtb__arw:hover{ background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%); color: #1a1d21; border-color: transparent; transform: scale(1.06); box-shadow: var(--wes-shadow-gold-md); }
:is(body.page-id-465126, body.home) .wtb__arw:disabled{ opacity: .35; cursor: default; transform: none; box-shadow: none; background: #fff; color: #1c1c1e; }
:is(body.page-id-465126, body.home) .wtb__prog{ flex: 1; height: 4px; background: rgba(28,26,31,.10); border-radius: 4px; position: relative; overflow: hidden; }
:is(body.page-id-465126, body.home) .wtb__prog-bar{ position: absolute; top: 0; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #D4A24E, #E6BE6E); transition: left .12s linear, width .12s linear; }
/* "Shop all" end-cap card â€” gives the carousel a destination (-> /shop/) */
:is(body.page-id-465126, body.home) .wtb__card--all{
  align-items: center; justify-content: center; text-align: center;
  background: linear-gradient(165deg, #ffffff 0%, #f6ecd6 100%); border-color: rgba(212,162,78,.45);
}
:is(body.page-id-465126, body.home) .wtb__all-inner{ display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 30px 22px; }
:is(body.page-id-465126, body.home) .wtb__all-ico{
  width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 26px; line-height: 1; color: #1a1d21; background: linear-gradient(180deg, #E4B45E 0%, #D4A24E 100%);
  box-shadow: var(--wes-shadow-gold-md); transition: transform .32s var(--ka-ease);
}
:is(body.page-id-465126, body.home) .wtb__card--all:hover .wtb__all-ico{ transform: scale(1.08) translateX(2px); }
:is(body.page-id-465126, body.home) .wtb__all-title{ font-family: 'Spectral', Georgia, serif; font-weight: 700; font-size: 21px; color: #1c1c1e; }
:is(body.page-id-465126, body.home) .wtb__all-sub{ font: 400 13.5px/1.5 'AR One Sans', sans-serif; color: #4a4540; }

/* responsive */
@media (max-width: 980px){ :is(body.page-id-465126, body.home) .wtb__card{ flex-basis: 256px; } }
@media (max-width: 600px){
  :is(body.page-id-465126, body.home) .wtb__card{ flex-basis: 78vw; max-width: 300px; }
  :is(body.page-id-465126, body.home) .wtb__imgwrap{ height: 200px; }
  :is(body.page-id-465126, body.home) .wtb__arw{ width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce){
  :is(body.page-id-465126, body.home) .wtb__card{ opacity: 1; transform: none; animation: none; }
  :is(body.page-id-465126, body.home) .wtb__track{ scroll-behavior: auto; }
}

/* =====================================================================
   END WES HOME v1 STYLESHEET
   ===================================================================== */
/* ===== end K&A home v1 ===== */

/* ===== K&A: about-70 (page 70 layout overrides - bypass Divi static-CSS cache) ===== */
@media (min-width: 981px){
  body.page-id-465127 .et-l--post .et_flex_column_16_24{ flex: 0 0 53% !important; max-width: 53% !important;
      display: flex !important; flex-direction: column !important; justify-content: center !important; }
  body.page-id-465127 .et-l--post .et_flex_column_8_24{ flex: 0 0 41% !important; max-width: 41% !important; }
  body.page-id-465127 .et-l--post .et_flex_column_16_24 .et_pb_text,
  body.page-id-465127 .et-l--post .et_flex_column_16_24 .et_pb_text_inner,
  body.page-id-465127 .et-l--post .et_flex_column_16_24 .et_pb_text_inner p{ width: 100% !important; max-width: 100% !important; }
  body.page-id-465127 img[src*="wes-about-showroom"]{ width: 100% !important; max-width: 720px !important; height: auto !important; margin: 0 auto !important; }
}
  /* come-see-us CTA (et_pb_section_4): light photo bg + black text; gold button, no border */
  body.page-id-465127 .et_pb_section_4{ background-color: transparent !important;
      background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-about-cta-bg.webp) !important; background-size: cover !important;
      background-position: center !important; background-repeat: no-repeat !important; }
  body.page-id-465127 .et_pb_section_4 h1, body.page-id-465127 .et_pb_section_4 h2,
  body.page-id-465127 .et_pb_section_4 h3, body.page-id-465127 .et_pb_section_4 p,
  body.page-id-465127 .et_pb_section_4 .et_pb_text{ color: #000 !important; }
  body.page-id-465127 #page-container .et_pb_section_4 .et_pb_button,
  body.page-id-465127 #page-container .et_pb_section_4 a.et_pb_button{ border: 0 none !important; border-width: 0 !important; }
  /* quote band (section_3): 'â€” The Williams family' attribution +5px (16 -> 21) */
  body.page-id-465127 #page-container .et_pb_text_12 p{ font-size: 40px !important; }
  body.page-id-465127 #page-container .et_pb_text_12 p:last-child{ font-size: 32px !important; color: #D4A24E !important; }
/* ===== end about-70 ===== */

/* ===== K&A: about-70-hero (hero bg = wes-about-hero-showroom-opt.avif 87 KiB, was .webp 215 KiB; min-height/flex hoisted into this head-loaded rule so the hero has final size at first paint [CLS 0.85 fix]; claude-fable-patton 2026-08-17, prev swap 2026-08-09; bypass static-CSS cache) ===== */
body.page-id-465127 .et_pb_section_0{
  background-image: radial-gradient(ellipse at center, rgba(14,13,16,.34) 0%, rgba(14,13,16,.62) 58%, rgba(14,13,16,.82) 100%), url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-about-hero-showroom-opt.avif) !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
  min-height: 88vh; display: flex; align-items: center; }
body.page-id-465127 .et_pb_section_0 h1{ text-shadow: 0 2px 22px rgba(0,0,0,.55), 0 1px 4px rgba(0,0,0,.6) !important; }
body.page-id-465127 .et_pb_section_0 p{ text-shadow: 0 1px 8px rgba(0,0,0,.6) !important; }
/* eyebrow 'â€” Williams Electric Supply Â· Est. 1962 â€”' -> 20px + lighter gold (#D4A24E -> #E6BE6E) for visibility */
body.page-id-465127 #page-container .et_pb_text_0,
body.page-id-465127 #page-container .et_pb_text_0 .et_pb_text_inner,
body.page-id-465127 #page-container .et_pb_text_0 p,
body.page-id-465127 #page-container .et_pb_text_0 span{ font-size: 20px !important; color: #E6BE6E !important; }
/* ===== end about-70-hero ===== */


/* ------------------------------------------------------------------ *
 * Online-store notice (Keven 2026-08-09)
 * The site is not taking online orders yet, so every item drops its stock
 * indicator and carries the notice instead:
 *   - PDP: the .pdp-stock badge is replaced by .pdp-notice in the global JS.
 *   - Product-slider cards (home "New arrivals"): the server-rendered
 *     "In Stock" pill is hidden here. ka-divi-modules' own stylesheet already
 *     hides that pill this way for the sale/new badge cases, so this matches.
 * ------------------------------------------------------------------ */
.pdp-notice{
  margin: 14px 0 18px;
  padding: 14px 16px;
  border: 1px solid rgba(199,154,59,.38);
  border-left: 3px solid var(--ka-gold, #c79a3b);
  border-radius: 4px;
  background: rgba(199,154,59,.07);
  color: #2b2721;
  font-family: var(--ka-token-brand-font-body, 'AR One Sans', system-ui, sans-serif);
  font-size: 15px;
  line-height: 1.55;
}
.pdp-notice strong{ display: block; color: #1c1a1f; font-weight: 700; }
.pdp-notice a{ color: #8a6420; text-decoration: underline; text-underline-offset: 2px; }
.pdp-notice a:hover{ color: #6d4e18; }
/* No prefers-color-scheme override here: the PDP always renders on the light
   cream page, so a dark-mode variant just painted near-white type onto a light
   panel for anyone whose OS is set to dark. Light values only. */
/* No stock claim on the product-slider cards either. The home-scoped pill rule
   above in this file is `:is(body.page-id-465126, body.home) .ka_product_card__stock`
   with `display: inline-flex !important` -- specificity (0,2,1) -- so the hide has
   to out-rank it rather than merely follow it. */
:is(body.page-id-465126, body.home) .ka_product_card .ka_product_card__stock,
.ka_product_card .ka_product_card__stock.ka_product_card__stock{ display: none !important; }


/* ------------------------------------------------------------------ *
 * Overlay-menu sublist: pin the chevron to the first line (2026-08-09)
 * The Lighting card now carries 16 categories, and the longer labels
 * ("Flush and Semi-flush", "Task and Picture Lights") wrap to two lines.
 * The link is a flex row with `align-items: center`, which floated the gold
 * chevron into the gap between the two lines instead of sitting beside the
 * first word. Top-align it; single-line items are unaffected.
 * ------------------------------------------------------------------ */
.ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist a{
  align-items: flex-start !important;
}
.ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist a::before{
  flex: 0 0 auto;
  line-height: inherit;
}


/* ------------------------------------------------------------------ *
 * Catalog cards: one shared baseline (2026-08-09)
 * Measured before: description 48/72/48px, so the sublists began at
 * 527/551/527 and the CTAs sat at 732/782/732. Everything below only
 * applies at >=600px -- under that the cards stack and there is nothing
 * to align them against.
 * ------------------------------------------------------------------ */
@media (min-width: 600px){
  /* flex column so the CTA can be pushed to the bottom edge */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__inner{
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__body{
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }
  /* descriptions run 2-3 lines; reserve the tallest so every list starts level */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__description{
    min-height: 4.5em;          /* 3 lines x 1.5em line-height */
  }
  /* reserve two lines per row so a wrapped label does not offset its neighbours */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist a{
    min-height: 74px;           /* 2 x 26px line-height + 2 x 11px padding */
  }
  /* one CTA baseline across the row */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__cta{
    margin-top: auto;
  }
}


/* ------------------------------------------------------------------ *
 * Catalog cards, pass 2 -- equal columns (2026-08-09)
 * `repeat(N, 1fr)` lets a long label widen its own column, because 1fr's
 * automatic minimum is min-content. "Panels/Controllers/Breakers" was
 * dragging the Electrical card to 375px against 322px for its siblings,
 * and since the image box is aspect-ratio 16/9 that made its image 30px
 * taller and knocked every line below out of alignment.
 * ------------------------------------------------------------------ */
@media (min-width: 768px){
  .ka_overlay_menu--theme-wes .ka_overlay_menu__cards{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 992px){
  .ka_overlay_menu--theme-wes .ka_overlay_menu__cards{
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
/* a long label wraps rather than forcing its column wider */
.ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist a{
  overflow-wrap: break-word;
  min-width: 0;
}

@media (min-width: 768px){
  /* flex column so the CTA can be pinned to the bottom edge */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__inner{
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__body{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
  }
  /* one CTA baseline across the row. align-self keeps it hugging its own text --
     as a stretched flex item its underline would run the full card width, which
     is not how the CTA was drawn. */
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__cta{
    margin-top: auto !important;
    align-self: flex-start !important;
  }
}


/* ------------------------------------------------------------------ *
 * Catalog cards, pass 3 -- tablet sublist goes single column (2026-08-09)
 * At 768-991px each card is ~348px wide, so a 2-up sublist leaves ~150px
 * per label and "Panels/Controllers/Breakers" wraps to three lines while
 * its neighbours take two -- the rows drift apart again. One column gives
 * every label the full width, nothing wraps, and 6 x 48px happens to equal
 * the 3 x 100px it replaces, so the card does not grow.
 * ------------------------------------------------------------------ */
@media (min-width: 768px) and (max-width: 991px){
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist ul{
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
/* the two-line row floor only makes sense where the sublist is 2-up */
@media (min-width: 992px){
  .ka_overlay_menu--theme-wes .ka_overlay_menu_card__sublist a{
    min-height: 74px !important;   /* 2 x 26px line-height + 2 x 11px padding */
  }
}


/* ------------------------------------------------------------------ *
 * About hero crop on phones (2026-08-09)
 * The hero photo is 1536x1024 and the section is 88vh, so at 375px the
 * cover crop keeps only a ~537px-wide slice of the source. Centred, that
 * slice starts past the teal art-glass chandelier and lands on the plain
 * wall and lamp shades -- the subject of the shot is cut out. Biasing the
 * crop left keeps the chandelier in frame on phones. Tablet and desktop
 * are wide enough to hold it already, so they stay centred.
 * ------------------------------------------------------------------ */
@media (max-width: 600px){
  body.page-id-465127 .et_pb_section_0{
    background-position: 25% center !important;
  }
}


/* ------------------------------------------------------------------ *
 * Search forwarding (2026-08-09)
 * /?s=... is forwarded to /shop/?s=... by ka_global_js. Hide the stock
 * Divi search.php content while that happens so the unstyled fallback
 * never flashes. Header and footer stay visible, so the page still looks
 * like the site for the moment it exists.
 * ------------------------------------------------------------------ */
body.search-results #main-content .et_pb_section:not(.et_pb_section_0_tb_footer),
body.search-results #main-content #left-area,
body.search-results #main-content #sidebar{
  visibility: hidden !important;
}


/* ------------------------------------------------------------------ *
 * FiboSearch bar, wearing the WES header pill (2026-08-10)
 * The bar is moved into the header by ka_global_js (see the matching note
 * there). Out of the box it renders ~74px tall with square corners and the
 * plugin's own greys, which is 30px taller than the slot it now sits in.
 * These rules give it the same white pill the old form had, and put the
 * brand gold on the dropdown's active row instead of the plugin blue.
 * ------------------------------------------------------------------ */
.ka_header_bar--theme-wes .ka_header_bar__fibo{
  flex: 0 0 auto;
  min-width: 280px;
  max-width: 340px;
}
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-search-form,
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-sf-wrapp{
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-sf-wrapp{
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 999px;
  padding: 4px 8px 4px 14px;
  box-shadow: var(--wes-shadow-inset-sm);
}
.ka_header_bar--theme-wes .ka_header_bar__fibo input[type="search"].dgwt-wcas-search-input{
  height: 35px !important;
  min-height: 35px !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: 'AR One Sans', system-ui, sans-serif !important;
  font-size: 14px !important;
  color: #1c1a1f !important;
  padding: 0 6px !important;
}
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-search-submit,
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-search-icon-arrow{
  display: none !important;
}
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-ico-magnifier,
.ka_header_bar--theme-wes .ka_header_bar__fibo .dgwt-wcas-ico-magnifier-handler{
  width: 17px;
  height: 17px;
  fill: #6b6660;
}
/* dropdown: keep the plugin's light panel (legible over any page) but move the
   active row and headings onto the brand gold */
.dgwt-wcas-suggestions-wrapp{
  border-radius: 10px !important;
  border: 1px solid rgba(28,26,31,.10) !important;
  box-shadow: 0 18px 50px rgba(20,18,24,.22) !important;
}
.dgwt-wcas-suggestion-selected,
.dgwt-wcas-suggestion:hover{
  background: rgba(199,154,59,.12) !important;
}
.dgwt-wcas-st-title strong,
.dgwt-wcas-suggestion .dgwt-wcas-st-title strong{
  color: #8a6420 !important;
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion-headline{
  color: #6b6660 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 11px !important;
}
.dgwt-wcas-sp{ color: #1c1a1f !important; font-weight: 700 !important; }

/* Dropdown width. FiboSearch sets width + left inline from the input's box, so
   both need overriding. The pill is 280px; the panel is 440px and shifted left
   by the 160px difference, keeping the right edges flush. */
@media (min-width: 992px){
  .dgwt-wcas-suggestions-wrapp{
    width: 440px !important;
    margin-left: -160px;
  }
  .dgwt-wcas-suggestions-wrapp .dgwt-wcas-st-title{
    line-height: 1.35;
  }
  .dgwt-wcas-suggestions-wrapp .dgwt-wcas-sp{
    white-space: nowrap;
    padding-left: 10px;
  }
}


/* ------------------------------------------------------------------ *
 * Lighting menu card crop (2026-08-10)
 * The card image box is 16:9 (409x230) but this chandelier photo is almost
 * square (780x713), so `cover` trims 144px of height. Centred, that cut the
 * bottom off the fixture. Biasing the crop down keeps the whole chandelier
 * in frame and drops some of the ceiling beams instead, which are only
 * context. Scoped by filename so the other two cards keep their centre crop.
 * ------------------------------------------------------------------ */
.ka_overlay_menu_card__image img[src*="wes-menu-lighting-v2"]{
  object-position: center 68% !important;
}


/* ------------------------------------------------------------------ *
 * Lighting card keeps a little more scrim (2026-08-10)
 * All three cards took the requested 10% reduction, but the Lighting photo
 * is the brightest of the set and its gold subtitle measured 4.26:1 at
 * phone width -- under the 4.5 minimum for body text. This card gets a 7%
 * reduction instead of 10%, which is imperceptible next to its neighbours
 * and puts the line back over the line. Numbers: 4.26 -> 4.63:1.
 * ------------------------------------------------------------------ */
:is(body.page-id-465126, body.home) .wescat__card[href="/lighting/"]::after{
  background: linear-gradient(to top,
    rgba(15,14,18,.80) 0%,
    rgba(15,14,18,.72) 30%,
    rgba(15,14,18,.50) 50%,
    rgba(15,14,18,.13) 75%,
    rgba(15,14,18,0) 100%) !important;
}


/* ------------------------------------------------------------------ *
 * Hero pill, closed state (2026-08-11)
 * The pill is live now (see the matching note in ka_global_js). When the
 * Johnson City showroom is shut, the dot goes amber and stops pulsing --
 * a pulsing green dot next to "Opens 7:30am" would read as open.
 * ------------------------------------------------------------------ */
:is(body.page-id-465126, body.home) .wesh__pill.is-closed::before{
  background: var(--brand-warning, #c9822f) !important;
  box-shadow: none !important;
  animation: none !important;
}
:is(body.page-id-465126, body.home) .wesh__pill.is-closed{
  color: rgba(255,255,255,.92);
}

/* ---------------------------------------------------------------------------
   SITE-MIGRATION addendum (2026-08-12) â€” appended to ka_global_css by
   migrate_site.py push-assets. Kept separate from the migrated stylesheet so
   it is obvious what was added after the migration and why.

   Problem: the ka/product-slider module renders a visible diagnostic
   ("No products found for source ids:1268,...") when its configured source
   resolves to nothing on this catalog. On the migrated brands and home pages
   that leaked internal source-site product IDs onto public pages.

   The design already tried to hide those sections, but its rule keys off an
   inner class the module only emits on SUCCESS, so it never matched in the
   failure case. These rules key off the FAILURE state instead.
   --------------------------------------------------------------------------- */

/* 1. Never show the module's diagnostic to a visitor, anywhere. */
.ka_product_slider__empty {
  display: none !important;
}

/* 2. Where an empty slider is the whole point of its section (the home page's
      "featured picks" and "deals" bands), collapse the section rather than
      leaving a heading with nothing under it. Scoped to the home page so brand
      blocks elsewhere keep their heading and shop-this-brand CTA. */
body.page-id-465126 .et_pb_section:has(.ka_product_slider__empty) {
  display: none !important;
}

/* 3. Belt-and-braces for the same two home sections by module index, matching
      the original design's intent even when the module errors. */
body.page-id-465126 .et_pb_section:has(.ka_product_slider_1),
body.page-id-465126 .et_pb_section:has(.ka_product_grid) {
  display: none !important;
}

/* 4. /brands/ â€” collapse only the EMPTY PRODUCT STRIP inside a brand band, not
      the band itself.
      Every one of the 12 per-brand strips is keyed to source-site product IDs
      that do not exist in this catalog. Hiding the whole band was the first
      attempt and it broke the page: the brand-directory tiles link to
      #brand-<name> anchors, so hiding the sections left 12 dead "VIEW BRAND"
      links. Instead collapse the empty slider (removing the dead whitespace)
      while the band, its anchor and its working "shop all" CTA survive. */
body.page-id-465129 .ka_product_slider:has(.ka_product_slider__empty) {
  display: none !important;
}

/* 4b. Mobile header logo renders 0x0 (measured 7x3 px at 375px wide, but a
       healthy 285x108 at 768px). Cause, traced end to end: the search plugin's
       wrapper (.dgwt-wcas-search-wrapp) carries min-width:280px. At 375px that
       leaves 375 - 280 - 40 (hamburger) - 16 (gaps) - 32 (padding) = 7px for
       the logo's flexible track, so the logo is squeezed to nothing. The
       theme's own mobile fix targets .ka_header_bar__search, which is not in
       the DOM on this build, so it never applies. Pre-existing on both sites.
       Fix: stop the search from claiming a fixed minimum on small screens and
       give the logo a floor. */
@media (max-width: 767px) {
  .dgwt-wcas-search-wrapp {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .ka_header_bar__logo {
    min-width: 132px !important;
    flex: 0 0 auto !important;
  }
  .ka_header_bar__logo img {
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

/* 6. PERF-01 â€” home hero: load slide photos on demand (2026-08-13).
      The hero code block on page 465126 declares all eight slide backgrounds
      unconditionally, so every visitor downloads 2.02 MB to show one static
      slide (the slider timer is intentionally disabled â€” see "3.8a SLIDER
      BEHAVIOR" in the migrated CSS above: #weshr1 ships checked and .wesh__s
      carries animation:none !important). Slide visibility is driven ONLY by
      the :checked radios, so each photo is re-declared under the :checked
      state that reveals its slide, and the unconditional copies neutralised.
      CASCADE NOTE (do not "simplify"): the originals live in an inline <style>
      in the page BODY, which comes AFTER this stylesheet. A bare
      .wesh__sN{background-image:none} LOSES to them (equal specificity, later
      source order â€” verified in Chrome). The .wesh__slides ancestor + home
      scope makes these win. Slide 1 is untouched â€” first paint unchanged.
      WARNING: if the slider timer is ever re-enabled the CSS-animation way
      (per the "TO RE-ENABLE" note in 3.8a), slides would rotate WITHOUT
      :checked and show no photo. Re-enable rotation only via JS that toggles
      the radios, or delete this block first. */
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s2,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s3,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s4,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s5,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s6,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s7,
:is(body.page-id-465126, body.home) .wesh__slides .wesh__s8 {
  background-image: none;
}
:is(body.page-id-465126, body.home) #weshr2:checked ~ .wesh__slides .wesh__s2 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-wire-warehouse.webp); }
:is(body.page-id-465126, body.home) #weshr3:checked ~ .wesh__slides .wesh__s3 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-tiffany-gallery.webp); }
:is(body.page-id-465126, body.home) #weshr4:checked ~ .wesh__slides .wesh__s4 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-conduit-yard-1.webp); }
:is(body.page-id-465126, body.home) #weshr5:checked ~ .wesh__slides .wesh__s5 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-color-wire.webp); }
:is(body.page-id-465126, body.home) #weshr6:checked ~ .wesh__slides .wesh__s6 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-glass-shades.webp); }
:is(body.page-id-465126, body.home) #weshr7:checked ~ .wesh__slides .wesh__s7 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-building-wire.webp); }
:is(body.page-id-465126, body.home) #weshr8:checked ~ .wesh__slides .wesh__s8 { background-image: url(https://williamselectricsupply.com/wp-content/uploads/2026/08/wes-hero-showroom-floor.webp); }

/* 5. Hide the header's Quick Quote pill until its overlay is restored.
      The overlay markup/JS is emitted by the SOURCE site's pre-split plugin
      monolith; the generic plugin running here does not emit it, so the pill is
      a dead control on every page. A missing button is better than one that
      does nothing. The "Request a Quote" text links elsewhere still work and
      navigate to the real /request-a-quote/ page. REMOVE THIS RULE once the
      overlay is restored. */
.ka_header_bar__quickquote,
.wesh__quickquote,
.wesh__bar .wesh__cta--quote {
  display: none !important;
}

/* === KA FiboFilters WES skin v1 (2026-08-16) ===
   Skins the FiboFilters rail + Divi shop grid on williamselectricsupply.com
   to the approved shop-filter mockup: WES gold on cream, Spectral display,
   AR One Sans UI, small-caps hairline group heads, editorial product cards.
   Scope: WooCommerce archive surfaces (shop + product taxonomies). */

/* ---- layout: rail + grid (desktop) ---- */
@media (min-width: 981px) {
  .et_pb_row:has(.fibofilters-vertical-filters-container) {
    display: grid !important;
    grid-template-columns: 304px minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    width: 94%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 8px 0 40px;
  }
  .et_pb_row:has(.fibofilters-vertical-filters-container) > .et_pb_column {
    width: auto !important;
    margin: 0 !important;
  }
  .et_pb_column:has(> .et_pb_code_inner .wes-ff-railbox),
  .et_pb_column:has(.wes-ff-railbox) {
    position: sticky;
    top: 24px;
  }
}
body.woocommerce.archive #main-content,
body.woocommerce-shop #main-content {
  background: var(--wes-color-cream, #fbf6ec);
}

/* ---- archive title (Divi post-title module) ---- */
body.woocommerce.archive .et_pb_post_title .post-meta,
body.woocommerce.archive .et_pb_post_title .et_pb_title_featured_container {
  display: none !important;
}
body.woocommerce.archive .et_pb_post_title {
  text-align: center;
  padding: 34px 16px 0;
}
body.woocommerce.archive .et_pb_post_title h1 {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif);
  font-weight: 800;
  font-size: clamp(30px, 4vw, 46px);
  letter-spacing: -0.01em;
  color: var(--brand-text, #1c1c1e);
  padding-bottom: 0;
}
.wes-ffa-head { text-align: center; padding-top: 6px; }
.wes-ff-topbar { width: 94%; max-width: 1440px; margin: 0 auto; }
.wes-ff-applied { margin: 6px 0 2px; }

/* ---- FiboSearch bar inside the archive head ---- */
.wes-ff-search { max-width: 760px; margin: 18px auto 8px; }
.wes-ff-search .dgwt-wcas-search-wrapp { max-width: none; }
.wes-ff-search .dgwt-wcas-sf-wrapp,
.wes-ff-search .dgwt-wcas-search-form {
  background: transparent;
}
.wes-ff-search .dgwt-wcas-search-input {
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  background: var(--brand-surface, #ffffff) !important;
  border-radius: 999px !important;
  height: 52px !important;
  padding-left: 22px !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 15.5px !important;
  color: var(--brand-text, #1c1c1e) !important;
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1)) !important;
}
.wes-ff-search .dgwt-wcas-search-input:focus {
  border-color: var(--wes-color-gold, #D4A24E) !important;
  box-shadow: 0 0 0 3px rgba(212, 162, 78, 0.25) !important;
}
.wes-ff-search .dgwt-wcas-search-submit {
  background: var(--wes-color-gold, #D4A24E) !important;
  border-radius: 999px !important;
  color: var(--brand-accent-on, #1c1c1e) !important;
}
.wes-ff-search .dgwt-wcas-ico-magnifier,
.wes-ff-search .dgwt-wcas-ico-magnifier-handler svg,
.wes-ff-search svg.dgwt-wcas-ico-magnifier path {
  fill: var(--wes-color-gold-dark, #B58A3D) !important;
}

/* ---- FiboFilters rail panel ---- */
.fibofilters-vertical-filters-container {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: var(--wes-radius-lg, 12px);
  box-shadow: var(--wes-shadow-md, 0 2px 4px rgba(28,26,31,.1), 0 6px 16px rgba(28,26,31,.14));
  padding: 20px 18px 14px;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  color: var(--brand-text, #1c1c1e);
}

/* group headline: small-caps + hairline + gold chevron (mockup motif) */
.fibofilters-block { border-bottom: 1px solid var(--brand-border-soft, #eee5da); }
.fibofilters-block:last-child { border-bottom: none; }
.fibofilters-block__headline-box { padding: 4px 0; }
.fibofilters-block__headline,
.fibofilters-block__headline * {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--brand-text, #1c1c1e) !important;
}
.fibofilters-block__headline-box-inner {
  display: flex;
  align-items: center;
  gap: 12px;
}
.fibofilters-block__headline-box-inner::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--wes-color-line, #e8e8e8);
}
.fibofilters-block__chevron-btn { order: 99; }
.fibofilters-block__chevron-btn-icon,
.fibofilters-block__chevron-btn svg {
  stroke: var(--wes-color-gold-dark, #B58A3D);
  fill: var(--wes-color-gold-dark, #B58A3D);
}

/* option rows */
.fibofilters-item {
  border-radius: 8px;
  font-size: 14px;
}
.fibofilters-item__interactive { padding: 5px 8px; border-radius: 8px; }
.fibofilters-item__interactive:hover { background: var(--ka-gold-soft, rgba(212,162,78,.16)); }
.fibofilters-item__label { color: var(--brand-text, #1c1c1e); font-weight: 500; }
.fibofilters-item__counter {
  color: #a89f90;
  font-size: 12.5px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
/* current / selected states (link tree uses aria-current; inputs use :checked) */
.fibofilters-item [aria-current],
.fibofilters-item--selected .fibofilters-item__label,
.fibofilters-item__interactive:has(input:checked) .fibofilters-item__label {
  font-weight: 700;
  color: var(--brand-text, #1c1c1e);
}
.fibofilters-item--link:has([aria-current]) > .fibofilters-item__interactive,
.fibofilters-item--is-current > .fibofilters-item__interactive {
  background: var(--wes-color-dark, #1c1d23);
}
.fibofilters-item--link:has([aria-current]) > .fibofilters-item__interactive .fibofilters-item__label,
.fibofilters-item--is-current > .fibofilters-item__interactive .fibofilters-item__label {
  color: #ffffff;
}
.fibofilters-item--link:has([aria-current]) > .fibofilters-item__interactive .fibofilters-item__counter,
.fibofilters-item--is-current > .fibofilters-item__interactive .fibofilters-item__counter {
  color: var(--wes-color-gold, #D4A24E);
}

/* hierarchical tree: indent + left guide, gold carets */
.fibofilters-block__items-list .fibofilters-block__items-list,
.fibofilters-item--is-hierarchical .fibofilters-item--is-hierarchical {
  margin-left: 10px;
  padding-left: 12px;
  border-left: 1px solid var(--brand-border-soft, #eee5da);
}
.fibofilters-collapser svg,
.fibofilters-collapser-container svg {
  stroke: var(--wes-color-gold-dark, #B58A3D);
}

/* native controls: gold accent */
.fibofilters-vertical-filters-container input[type="checkbox"],
.fibofilters-vertical-filters-container input[type="radio"] {
  accent-color: var(--wes-color-gold-dark, #B58A3D);
  width: 17px;
  height: 17px;
}
.fibofilters-item__control { border-color: #b9ad97; }

/* text inputs (min/max, search-in-filter) */
.fibofilters-vertical-filters-container input[type="text"],
.fibofilters-vertical-filters-container input[type="number"],
.fibofilters-vertical-filters-container input[type="search"],
.fibofilters-input__element {
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 6px !important;
  background: var(--brand-surface, #ffffff) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 14px !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 7px 10px !important;
}
.fibofilters-vertical-filters-container input:focus-visible {
  outline: 2px solid var(--wes-color-gold, #D4A24E) !important;
  outline-offset: 1px;
}

/* price slider + histogram */
.fibofilters-range__segment { background: var(--wes-color-cream-2, #e6dfd1); height: 4px; }
.fibofilters-range__segment--active,
.fibofilters-range__segment:not(.fibofilters-range__segment--inactive) {
  background: var(--wes-color-gold, #D4A24E);
}
.fibofilters-button.fibofilters-range__handle {
  background: #ffffff;
  border: 2.5px solid var(--wes-color-gold, #D4A24E);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1));
  width: 18px;
  height: 18px;
  border-radius: 50%;
}
.fibofilters-slider-histogram__item { background: var(--wes-color-cream-2, #e6dfd1); }
.fibofilters-slider-histogram__item--active { background: rgba(212, 162, 78, 0.55); }

/* buttons + show-more links */
.fibofilters-vertical-filters-container .fibofilters-button:not(.fibofilters-range__handle) {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  color: var(--wes-color-gold-dark, #B58A3D);
  font-weight: 650;
}
.fibofilters-vertical-filters-container a,
.fibofilters-more-less {
  color: var(--wes-color-gold-dark, #B58A3D);
}

/* applied-filters chips (top bar) */
.fibofilters-applied-filters .fibofilters-item,
.fibofilters-applied-filters__item,
[class*="fibofilters-applied"] .fibofilters-button {
  background: var(--ka-gold-soft, rgba(212,162,78,.16));
  border: 1px solid rgba(212, 162, 78, 0.55);
  border-radius: 999px;
  color: var(--brand-text, #1c1c1e);
  font-size: 12.5px;
  font-weight: 600;
}

/* mobile drawer trigger */
.fibofilters-mobile-filters-container .fibofilters-button,
[class*="fibofilters-mobile"] button {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 10px;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-weight: 650;
  color: var(--brand-text, #1c1c1e);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1));
}

/* ---- product grid (Divi shop module / WC loop) ---- */
body.woocommerce.archive .et_pb_shop ul.products,
body.woocommerce-shop .et_pb_shop ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
}
@media (max-width: 1250px) {
  body.woocommerce.archive .et_pb_shop ul.products,
  body.woocommerce-shop .et_pb_shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  body.woocommerce.archive .et_pb_shop ul.products,
  body.woocommerce-shop .et_pb_shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body.woocommerce.archive .et_pb_shop ul.products li.product,
body.woocommerce-shop .et_pb_shop ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  background: var(--brand-surface, #ffffff);
  border-radius: var(--wes-radius-md, 8px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 14px 14px 16px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
body.woocommerce.archive .et_pb_shop ul.products li.product:hover,
body.woocommerce-shop .et_pb_shop ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: var(--wes-shadow-md, 0 2px 4px rgba(28,26,31,.1), 0 6px 16px rgba(28,26,31,.14));
}
body.woocommerce.archive .et_pb_shop li.product img,
body.woocommerce-shop .et_pb_shop li.product img {
  border-radius: 6px;
  background: #ffffff;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  width: 100%;
  margin-bottom: 10px;
}
body.woocommerce.archive .et_pb_shop li.product .woocommerce-loop-product__title,
body.woocommerce-shop .et_pb_shop li.product .woocommerce-loop-product__title {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 0 0 6px !important;
  min-height: 2.7em;
}
body.woocommerce.archive .et_pb_shop li.product .price,
body.woocommerce-shop .et_pb_shop li.product .price {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 600 !important;
  font-size: 16.5px !important;
  color: var(--wes-color-gold-dark, #B58A3D) !important;
}
body.woocommerce.archive .et_pb_shop li.product .price del,
body.woocommerce-shop .et_pb_shop li.product .price del {
  color: #a89f90 !important;
  font-size: 13px;
}
body.woocommerce.archive .et_pb_shop li.product .onsale,
body.woocommerce-shop .et_pb_shop li.product .onsale {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 999px !important;
  padding: 4px 12px !important;
}

/* result count + ordering toolbar */
body.woocommerce.archive .woocommerce-result-count,
body.woocommerce-shop .woocommerce-result-count {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 14px;
  color: var(--brand-text-muted, #4a4540);
}
body.woocommerce.archive .woocommerce-ordering select,
body.woocommerce-shop .woocommerce-ordering select {
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 8px;
  background: var(--brand-surface, #ffffff);
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 13.5px;
  color: var(--brand-text, #1c1c1e);
  padding: 7px 10px;
}

/* pagination */
body.woocommerce.archive .woocommerce-pagination,
body.woocommerce-shop .woocommerce-pagination { text-align: center; margin-top: 26px; }
body.woocommerce.archive .woocommerce-pagination .page-numbers,
body.woocommerce-shop .woocommerce-pagination .page-numbers {
  border: none;
  display: inline-flex;
  gap: 6px;
}
body.woocommerce.archive .woocommerce-pagination .page-numbers li .page-numbers,
body.woocommerce-shop .woocommerce-pagination .page-numbers li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 10px;
  background: var(--brand-surface, #ffffff);
  color: var(--brand-text, #1c1c1e);
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-weight: 650;
  font-size: 14px;
}
body.woocommerce.archive .woocommerce-pagination .page-numbers li .page-numbers.current,
body.woocommerce-shop .woocommerce-pagination .page-numbers li .page-numbers.current {
  background: var(--wes-color-dark, #1c1d23);
  border-color: var(--wes-color-dark, #1c1d23);
  color: var(--wes-color-gold, #D4A24E);
}
body.woocommerce.archive .woocommerce-pagination .page-numbers li .page-numbers:hover:not(.current),
body.woocommerce-shop .woocommerce-pagination .page-numbers li .page-numbers:hover:not(.current) {
  border-color: var(--wes-color-gold, #D4A24E);
}
/* ---- specificity overrides: Divi preset CSS carries #et-boc + !important,
   the legacy editorial loop CSS carries 5-class selectors. Two IDs win both. ---- */
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .woocommerce-loop-product__title,
#page-container #et-boc .et-l .et_pb_shop ul.products li.product h2,
#page-container #et-boc .et-l .et_pb_shop ul.products li.product h3 {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 0 0 6px !important;
  margin: 0 !important;
  min-height: 2.7em;
}
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .price,
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .price .woocommerce-Price-amount {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 600 !important;
  font-size: 16.5px !important;
  color: var(--wes-color-gold-dark, #B58A3D) !important;
}
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .price del,
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .price del .woocommerce-Price-amount {
  color: #a89f90 !important;
  font-size: 13px !important;
}
#page-container #et-boc .et-l .et_pb_shop ul.products li.product .onsale {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 4px 12px !important;
}
/* archive title module: Spectral display, centered, no meta line */
#page-container #et-boc .et-l .et_pb_post_title .et_pb_title_meta_container,
#page-container #et-boc .et-l .et_pb_post_title .et_pb_title_featured_container {
  display: none !important;
}
#page-container #et-boc .et-l .et_pb_post_title {
  text-align: center !important;
  padding: 34px 16px 0 !important;
  background: transparent !important;
}
#page-container #et-boc .et-l .et_pb_post_title h1.entry-title {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 800 !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  letter-spacing: -0.01em !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding-bottom: 0 !important;
}
/* toolbar + pagination, boosted */
#page-container #et-boc .et-l .et_pb_shop .woocommerce-result-count {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 14px !important;
  color: var(--brand-text-muted, #4a4540) !important;
  float: left;
  margin: 6px 0 14px;
}
#page-container #et-boc .et-l .et_pb_shop .woocommerce-ordering select {
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 8px !important;
  background: var(--brand-surface, #ffffff) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13.5px !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 7px 10px !important;
}
#page-container #et-boc .et-l .et_pb_shop .woocommerce-pagination .page-numbers li .page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 10px !important;
  background: var(--brand-surface, #ffffff) !important;
  color: var(--brand-text, #1c1c1e) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-weight: 650 !important;
  font-size: 14px !important;
}
#page-container #et-boc .et-l .et_pb_shop .woocommerce-pagination .page-numbers li .page-numbers.current {
  background: var(--wes-color-dark, #1c1d23) !important;
  border-color: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
}
/* quick-view + wishlist buttons on cards: quiet WES treatment */
#page-container #et-boc .et-l .et_pb_shop li.product a.quick_view.button {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
}
/* FiboSearch: keep icon clear of placeholder text */
.wes-ff-search .dgwt-wcas-search-input { padding-left: 52px !important; }
/* kill the migrated divi-shop preset's dark gradient; let the cream ground show */
#page-container #et-boc .et-l .et_pb_shop {
  background-image: none !important;
  background-color: transparent !important;
}
#page-container #et-boc .et-l .et_pb_section:has(.fibofilters-vertical-filters-container) {
  background-color: transparent !important;
}
/* hide the empty WC notices sliver above the grid */
.woocommerce-notices-wrapper:empty { display: none !important; }

/* ---- shop landing: department tiles ---- */
.wes-shop2--landing { padding-bottom: 56px; }
.wes-tier-tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  width: 92%;
  max-width: 1280px;
  margin: 34px auto 0;
}
@media (max-width: 1100px) { .wes-tier-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wes-tier-tiles { grid-template-columns: 1fr; } }
.wes-tier-tile {
  display: flex;
  flex-direction: column;
  gap: 7px;
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: var(--wes-radius-lg, 12px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 26px 24px 22px;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.wes-tier-tile:hover {
  transform: translateY(-3px);
  box-shadow: var(--wes-shadow-md, 0 2px 4px rgba(28,26,31,.1), 0 6px 16px rgba(28,26,31,.14));
}
.wes-tier-tile__name {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif);
  font-weight: 700;
  font-size: 22px;
  color: var(--brand-text, #1c1c1e);
  line-height: 1.2;
}
.wes-tier-tile__count {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wes-color-gold-dark, #B58A3D);
}
.wes-tier-tile__desc {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--brand-text-muted, #4a4540);
  flex: 1;
}
.wes-tier-tile__go {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-text, #1c1c1e);
  margin-top: 8px;
}
.wes-tier-tile:hover .wes-tier-tile__go { color: var(--wes-color-gold-dark, #B58A3D); }
/* ---- shop page (default WC archive + horizontal filter bar) ---- */
/* categories keep the vertical rail; suppress the auto horizontal bar there */
body.tax-product_cat .fibofilters-horizontal-filters-container,
body.tax-product_tag .fibofilters-horizontal-filters-container {
  display: none !important;
}
body.woocommerce-shop .fibofilters-horizontal-filters-container {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: var(--wes-radius-lg, 12px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 14px 18px;
  margin: 10px auto 22px;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
}
body.woocommerce-shop #main-content .woocommerce-products-header__title {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 800 !important;
  font-size: clamp(30px, 4vw, 44px) !important;
  color: var(--brand-text, #1c1c1e) !important;
}
body.woocommerce-shop #main-content { padding-top: 20px; }
/* default-loop cards on the shop page (no .et_pb_shop wrapper there) */
body.woocommerce-shop #main-content ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 1250px) {
  body.woocommerce-shop #main-content ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  body.woocommerce-shop #main-content ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body.woocommerce-shop #main-content ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  background: var(--brand-surface, #ffffff);
  border-radius: var(--wes-radius-md, 8px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 14px 14px 16px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
body.woocommerce-shop #main-content ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: var(--wes-shadow-md, 0 2px 4px rgba(28,26,31,.1), 0 6px 16px rgba(28,26,31,.14));
}
body.woocommerce-shop #main-content ul.products li.product img {
  border-radius: 6px;
  background: #ffffff;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  width: 100%;
  margin-bottom: 10px;
}
body.woocommerce-shop #main-content ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 0 0 6px !important;
  min-height: 2.7em;
}
body.woocommerce-shop #main-content ul.products li.product .price,
body.woocommerce-shop #main-content ul.products li.product .price .woocommerce-Price-amount {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 600 !important;
  font-size: 16.5px !important;
  color: var(--wes-color-gold-dark, #B58A3D) !important;
}
body.woocommerce-shop #main-content ul.products li.product a.quick_view.button {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
}
body.woocommerce-shop #main-content .woocommerce-pagination .page-numbers li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 10px;
  background: var(--brand-surface, #ffffff);
  color: var(--brand-text, #1c1c1e);
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-weight: 650;
}
body.woocommerce-shop #main-content .woocommerce-pagination .page-numbers li .page-numbers.current {
  background: var(--wes-color-dark, #1c1d23);
  border-color: var(--wes-color-dark, #1c1d23);
  color: var(--wes-color-gold, #D4A24E);
}
/* mobile: the FF mobile pills own <981px; hide the vertical rail there */
@media (max-width: 980px) {
  .fibofilters-vertical-filters-container { display: none !important; }
}
/* ---- SHOP PAGE DESIGN PASS v2 (definitive; two-ID selectors) ---- */
/* rhythm: kill the stacked 72px paddings; hero flows into toolbar */
body.woocommerce-shop #page-container #main-content .container { padding-top: 0 !important; }
body.woocommerce-shop #page-container #left-area { padding-top: 0 !important; padding-bottom: 48px !important; }
body.woocommerce-shop .wes-shop-hero { margin-bottom: 0 !important; padding-bottom: 2px; }

/* toolbar line: count left, sort right, tight */
body.woocommerce-shop #page-container #left-area .woocommerce-result-count {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13.5px !important;
  color: var(--brand-text-muted, #4a4540) !important;
  margin: 4px 0 10px !important;
}
body.woocommerce-shop #page-container #left-area .woocommerce-ordering { margin: 0 0 10px !important; }
body.woocommerce-shop #page-container #left-area .woocommerce-ordering select {
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 10px !important;
  background: var(--brand-surface, #ffffff) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 13px !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 8px 12px !important;
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1));
}

/* filter pills bar */
body.woocommerce-shop .fibofilters-horizontal-filters-container {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: var(--wes-radius-lg, 12px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 12px 14px;
  margin: 2px 0 20px;
}
.fibofilters-horizontal-filters .fibofilters-button.filter-button,
.fibofilters-horizontal-filters button.filter-button {
  background: var(--brand-surface, #ffffff) !important;
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 10px !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 9px 16px !important;
}
.fibofilters-horizontal-filters .fibofilters-button.filter-button:hover,
.fibofilters-horizontal-filters button.filter-button:hover {
  border-color: var(--wes-color-gold, #D4A24E) !important;
  background: var(--ka-gold-soft, rgba(212,162,78,.16)) !important;
}

/* dropdown/popup panels + off-canvas: same editorial treatment as the rail */
.fibofilters-horizontal-filters .fibofilters-block__content,
[class*="fibofilters-offcanvas"], .fibofilters-all-filters, .fibofilters-sidebar {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  color: var(--brand-text, #1c1c1e);
}
.fibofilters-horizontal-filters .fibofilters-block__content {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: 12px;
  box-shadow: var(--wes-shadow-lg, 0 4px 8px rgba(28,26,31,.12), 0 14px 28px rgba(28,26,31,.18));
}
/* group skin shared with the horizontal container + any panel */
.fibofilters-horizontal-filters .fibofilters-block__headline,
.fibofilters-horizontal-filters .fibofilters-block__headline * {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--brand-text, #1c1c1e) !important;
}
.fibofilters-horizontal-filters .fibofilters-item__interactive { padding: 5px 8px; border-radius: 8px; }
.fibofilters-horizontal-filters .fibofilters-item__interactive:hover { background: var(--ka-gold-soft, rgba(212,162,78,.16)); }
.fibofilters-horizontal-filters .fibofilters-item__label { color: var(--brand-text, #1c1c1e); font-weight: 500; font-size: 14px; }
.fibofilters-horizontal-filters .fibofilters-item__counter {
  color: #a89f90; font-size: 12.5px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.fibofilters-horizontal-filters input[type="checkbox"],
.fibofilters-horizontal-filters input[type="radio"] { accent-color: var(--wes-color-gold-dark, #B58A3D); width: 17px; height: 17px; }
.fibofilters-horizontal-filters input[type="text"],
.fibofilters-horizontal-filters input[type="number"],
.fibofilters-horizontal-filters input[type="search"] {
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 6px !important;
  background: var(--brand-surface, #ffffff) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 14px !important;
  color: var(--brand-text, #1c1c1e) !important;
}
.fibofilters-horizontal-filters .fibofilters-range__segment { background: var(--wes-color-cream-2, #e6dfd1); }
.fibofilters-horizontal-filters .fibofilters-range__segment--active { background: var(--wes-color-gold, #D4A24E); }
.fibofilters-horizontal-filters .fibofilters-button.fibofilters-range__handle {
  background: #fff; border: 2.5px solid var(--wes-color-gold, #D4A24E); border-radius: 50%;
}
.fibofilters-horizontal-filters .fibofilters-slider-histogram__item { background: var(--wes-color-cream-2, #e6dfd1); }
.fibofilters-horizontal-filters .fibofilters-slider-histogram__item--active { background: rgba(212,162,78,.55); }
.fibofilters-horizontal-filters .fibofilters-collapser svg { stroke: var(--wes-color-gold-dark, #B58A3D); }
.fibofilters-horizontal-filters .fibofilters-more-less { color: var(--wes-color-gold-dark, #B58A3D) !important; }

/* compact editorial cards â€” the density pass */
body.woocommerce-shop #page-container #main-content ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 0 !important;
}
@media (min-width: 1350px) {
  body.woocommerce-shop #page-container #main-content ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}
@media (max-width: 1100px) {
  body.woocommerce-shop #page-container #main-content ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 700px) {
  body.woocommerce-shop #page-container #main-content ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
body.woocommerce-shop #page-container #main-content ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  padding: 12px 12px 14px !important;
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border-soft, #eee5da);
  border-radius: var(--wes-radius-md, 8px);
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  transition: transform 0.16s ease, box-shadow 0.16s ease;
  position: relative;
}
body.woocommerce-shop #page-container #main-content ul.products li.product:hover {
  transform: translateY(-2px);
  box-shadow: var(--wes-shadow-md, 0 2px 4px rgba(28,26,31,.1), 0 6px 16px rgba(28,26,31,.14));
}
body.woocommerce-shop #page-container #main-content ul.products li.product img {
  height: 168px !important;
  width: 100% !important;
  object-fit: contain !important;
  background: #ffffff;
  border-radius: 6px;
  margin-bottom: 8px !important;
}
body.woocommerce-shop #page-container #main-content ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 12.5px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  color: var(--brand-text, #1c1c1e) !important;
  padding: 0 0 4px !important;
  margin: 0 !important;
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.woocommerce-shop #page-container #main-content ul.products li.product .price,
body.woocommerce-shop #page-container #main-content ul.products li.product .price .woocommerce-Price-amount {
  font-family: var(--wes-font-heading, 'Spectral', Georgia, serif) !important;
  font-weight: 600 !important;
  font-size: 15.5px !important;
  color: var(--wes-color-gold-dark, #B58A3D) !important;
}
body.woocommerce-shop #page-container #main-content ul.products li.product a.quick_view.button {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.13em !important;
  text-transform: uppercase !important;
  border-radius: 7px !important;
  padding: 7px 12px !important;
  margin-top: 4px;
  display: inline-block;
}
/* wishlist heart: overlay the image corner instead of stretching the card */
body.woocommerce-shop #page-container #main-content ul.products li.product .ka-wl-loop-btn {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
}
body.woocommerce-shop #page-container #main-content ul.products li.product .ka-wl-loop-btn button {
  width: 32px !important; height: 32px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1));
}
body.woocommerce-shop #page-container #main-content .woocommerce-pagination { text-align: center; margin: 26px 0 0; }
/* uniform pill styling for every bar control incl. All filters */
.fibofilters-horizontal-filters .fibofilters-button:not(.fibofilters-range__handle) {
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 10px;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-text, #1c1c1e);
  padding: 9px 16px;
}
.fibofilters-horizontal-filters .fibofilters-button:not(.fibofilters-range__handle):hover {
  border-color: var(--wes-color-gold, #D4A24E);
  background: var(--ka-gold-soft, rgba(212,162,78,.16));
}
/* active/open pill: gold, not the plugin blue */
.fibofilters-horizontal-filters .fibofilters-button[aria-expanded="true"],
.fibofilters-horizontal-filters [class*="--active"] .fibofilters-button,
.fibofilters-horizontal-filters .fibofilters-button[class*="--active"],
.fibofilters-horizontal-filters .fibofilters-button[class*="--opened"] {
  background: var(--ka-gold-soft, rgba(212,162,78,.16)) !important;
  border-color: var(--wes-color-gold, #D4A24E) !important;
  color: var(--brand-text, #1c1c1e) !important;
  box-shadow: none !important;
}
/* ---- SHOP DETAIL PASS v3: one aligned column, real WES buttons ---- */
/* single content column: everything aligns to the search bar's edges */
body.woocommerce-shop #page-container #main-content .container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.woocommerce-shop #page-container #left-area {
  width: 100% !important;
  max-width: 1320px !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}
body.woocommerce-shop #page-container #left-area .woocommerce {
  padding: 0 !important;
  margin: 0 !important;
}
body.woocommerce-shop #page-container #left-area ul.products,
body.woocommerce-shop .fibofilters-horizontal-filters-container {
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
body.woocommerce-shop .fibofilters-horizontal-filters-container { margin-bottom: 20px !important; }

/* product-card CTA: the site's real button (gold pill, ink text) sized for cards */
body.woocommerce-shop #page-container #main-content ul.products li.product a.quick_view.button {
  background: var(--wes-color-gold, #D4A24E) !important;
  color: var(--brand-accent-on, #1c1c1e) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 8px 18px !important;
  border: none !important;
  box-shadow: none !important;
  display: inline-block;
  margin-top: auto !important;
  align-self: flex-start;
  transition: background 0.15s ease;
}
body.woocommerce-shop #page-container #main-content ul.products li.product a.quick_view.button:hover {
  background: var(--wes-color-gold-dark, #B58A3D) !important;
  color: var(--brand-accent-on, #1c1c1e) !important;
}

/* card internals: flex column so every CTA sits on the same baseline */
body.woocommerce-shop #page-container #main-content ul.products li.product {
  display: flex !important;
  flex-direction: column;
}
body.woocommerce-shop #page-container #main-content ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex;
  flex-direction: column;
  flex: 1;
}
body.woocommerce-shop #page-container #main-content ul.products li.product > a.woocommerce-LoopProduct-link .price {
  margin-top: auto !important;
  padding-top: 4px;
}

/* sale badge + struck price on the shop loop */
body.woocommerce-shop #page-container #main-content ul.products li.product .onsale {
  background: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: 4px 11px !important;
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
}
body.woocommerce-shop #page-container #main-content ul.products li.product .price del,
body.woocommerce-shop #page-container #main-content ul.products li.product .price del .woocommerce-Price-amount {
  color: #a89f90 !important;
  font-size: 12.5px !important;
}

/* popup panels: drop the stray collapser caret; give the panel breathing room */
.fibofilters-horizontal-filters .fibofilters-block__content .fibofilters-collapser-container:first-child > .fibofilters-collapser:only-child,
.fibofilters-horizontal-filters .fibofilters-block__content > .fibofilters-block__content-inner > .fibofilters-collapser {
  display: none !important;
}
.fibofilters-horizontal-filters .fibofilters-block__content-inner { padding: 14px 14px 12px; }

/* applied-filter chips (rendered when filters are active): WES gold chips */
.fibofilters-applied-filters .fibofilters-item,
.fibofilters-applied-filters button,
[class*="fibofilters-applied"] .fibofilters-item__interactive {
  background: var(--ka-gold-soft, rgba(212,162,78,.16)) !important;
  border: 1px solid rgba(212, 162, 78, 0.55) !important;
  border-radius: 999px !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: var(--brand-text, #1c1c1e) !important;
}

/* pagination: ensure the WES pills apply to the shop loop's markup too */
body.woocommerce-shop #page-container #main-content .woocommerce-pagination ul.page-numbers {
  border: none !important;
  display: inline-flex;
  gap: 6px;
}
body.woocommerce-shop #page-container #main-content .woocommerce-pagination ul.page-numbers li {
  border: none !important;
}
body.woocommerce-shop #page-container #main-content .woocommerce-pagination ul.page-numbers li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--brand-border, #e0d7c5) !important;
  border-radius: 10px !important;
  background: var(--brand-surface, #ffffff) !important;
  color: var(--brand-text, #1c1c1e) !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-weight: 650 !important;
  font-size: 14px !important;
  padding: 0 10px !important;
}
body.woocommerce-shop #page-container #main-content .woocommerce-pagination ul.page-numbers li .page-numbers.current {
  background: var(--wes-color-dark, #1c1d23) !important;
  border-color: var(--wes-color-dark, #1c1d23) !important;
  color: var(--wes-color-gold, #D4A24E) !important;
}
body.woocommerce-shop #page-container #main-content .woocommerce-pagination ul.page-numbers li .page-numbers:hover:not(.current) {
  border-color: var(--wes-color-gold, #D4A24E) !important;
}

/* count + sort on one tidy baseline within the same column */
body.woocommerce-shop #page-container #left-area .woocommerce-result-count { margin: 2px 0 12px !important; }
body.woocommerce-shop #page-container #left-area .woocommerce-ordering { margin: -4px 0 12px !important; }
/* === end KA FiboFilters WES skin v1 === */

/* === KA shop hero restore css (2026-08-16) === */
body.woocommerce-shop .woocommerce-products-header,
body.woocommerce-shop .woocommerce-breadcrumb { display: none !important; }
.wes-shop-hero { padding: 8px 16px 6px; }
.wes-hero-searchwrap { max-width: 760px; margin: 18px auto 6px; }
.wes-hero-search {
  display: flex; align-items: center; gap: 10px;
  background: var(--brand-surface, #ffffff);
  border: 1px solid var(--brand-border, #e0d7c5);
  border-radius: 999px;
  box-shadow: var(--wes-shadow-sm, 0 1px 2px rgba(28,26,31,.1), 0 2px 6px rgba(28,26,31,.08));
  padding: 6px 6px 6px 22px;
}
.wes-hero-search:focus-within {
  border-color: var(--wes-color-gold, #D4A24E);
  box-shadow: 0 0 0 3px rgba(212, 162, 78, 0.25);
}
.wes-hero-search__ico { width: 20px; height: 20px; color: var(--wes-color-gold-dark, #B58A3D); flex: none; }
.wes-hero-search input[type="search"] {
  flex: 1; border: none !important; outline: none !important; background: transparent !important;
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif) !important;
  font-size: 15.5px !important; color: var(--brand-text, #1c1c1e) !important;
  height: 40px; box-shadow: none !important; padding: 0 !important;
}
.wes-hero-search__btn {
  background: var(--wes-color-gold, #D4A24E); color: var(--brand-accent-on, #1c1c1e);
  font-family: var(--wes-font-body, 'AR One Sans', sans-serif);
  font-weight: 700; font-size: 14px; border: none; border-radius: 999px;
  padding: 10px 26px; cursor: pointer;
}
.wes-hero-search__btn:hover { background: var(--wes-color-gold-dark, #B58A3D); }
/* hero-focused search: neutralize the header pill's panel offset hack */
@media (min-width: 992px) {
  .dgwt-wcas-suggestions-wrapp.wes-hero-panels { margin-left: 0 !important; }
}
/* default Divi archive reserves an empty sidebar on the shop page: reclaim it */
body.woocommerce-shop #left-area { width: 100% !important; padding-right: 0 !important; float: none !important; }
body.woocommerce-shop #sidebar { display: none !important; }
body.woocommerce-shop #main-content .container::before { display: none !important; }
body.woocommerce-shop #main-content .container { padding-top: 0 !important; }
body.woocommerce-shop #left-area { padding-top: 0 !important; }
body.woocommerce-shop #main-content .container { padding-bottom: 40px; }
body.woocommerce-shop .wes-shop-hero { margin-bottom: -60px; }
@media (max-width: 980px) { body.woocommerce-shop .wes-shop-hero { margin-bottom: 0; } }
/* === end KA shop hero restore css === */

/* === KA shop perf pass css (2026-08-17) === */
/* CLS: reserve the injected hero's measured footprint until it mounts */
body.woocommerce-shop:not(.wes-hero-in) #main-content::before {
  content: ''; display: block; height: 359px;
}
@media (max-width: 980px) {
  body.woocommerce-shop:not(.wes-hero-in) #main-content::before { height: 320px; }
}
@media (max-width: 600px) {
  body.woocommerce-shop:not(.wes-hero-in) #main-content::before { height: 422px; }
}
/* === end KA shop perf pass css === */
