
/* 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://kainnovations.net/wp-content/uploads/2026/05/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:#B58A3D; 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:#B58A3D; 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:#B58A3D;
  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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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(2,1fr); gap:32px; }
.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:16px; left:16px; background:rgba(26,29,33,.85); color:#fff; font-family:'AR One Sans',sans-serif; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:6px 12px; border-radius:2px; backdrop-filter:blur(4px); }
.wes-counter-badge--flagship { background:#D4A24E; color:#1a1d21; }
.wes-counter-body { padding:28px 28px 24px; display:flex; flex-direction:column; flex:1; }
.wes-counter-name { font-family:'Spectral',serif; font-size:28px; font-weight:700; color:#1c1c1e; margin:0 0 4px; letter-spacing:-0.01em; }
.wes-counter-detail { font-family:'AR One Sans',sans-serif; font-size:13px; line-height:1.5; color:#B58A3D; margin:0 0 20px; font-weight:500; letter-spacing:.02em; }
.wes-counter-meta { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:10px; }
.wes-counter-meta li { display:flex; align-items:flex-start; gap:10px; font-family:'AR One Sans',sans-serif; font-size:14px; line-height:1.5; color:#1c1c1e; }
.wes-counter-icon { flex-shrink:0; color:#B58A3D; 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; gap:8px; flex-wrap:wrap; margin-top:auto; padding-top:16px; border-top:1px solid rgba(28,26,31,.06); }
.wes-counter-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:10px 16px; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
@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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
@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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; }
.wes-pf-card-go { font-family:'AR One Sans',sans-serif; color:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; }
.wes-qq-file-name { font-family:'AR One Sans',sans-serif; font-size:12.5px; color:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D !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:#B58A3D !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:#B58A3D; text-decoration:none; font-weight:600; }
body.single-product .wes-sp-promise-icon { color:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D !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:#B58A3D; }
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:#B58A3D; 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:#B58A3D; }
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:#B58A3D; 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:#B58A3D; }
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:#B58A3D; }
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:#B58A3D; 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:#B58A3D; }
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:#B58A3D; }
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:#B58A3D; 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:#B58A3D; }
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:#B58A3D !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:#B58A3D !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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; 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:#B58A3D; }
.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:#B58A3D; 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-82, body.page-id-84, body.page-id-86, body.page-id-88)
  :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-82, body.page-id-84, body.page-id-86, body.page-id-88)
  :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-82, body.page-id-84, body.page-id-86, body.page-id-88)
  :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-82, body.page-id-84, body.page-id-86, body.page-id-88)
  :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-82, body.page-id-84, body.page-id-86, body.page-id-88) .ka-loc-reveal {
      opacity: 0;
      will-change: transform, opacity;
    }
    :is(body.page-id-82, body.page-id-84, body.page-id-86, body.page-id-88) .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-1804, 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-1804, 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://kainnovations.net/wp-content/uploads/2026/05/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-1804, body.home){ overflow-x:hidden; }
:is(body.page-id-1804, body.home) .wesh,
:is(body.page-id-1804, body.home) .wescat,
:is(body.page-id-1804, 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-1804 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-1804:not(.et-fb):not(.et-fb-preview):not(.et-bfb) .et_pb_section:has(.ka_product_slider_1),
body.page-id-1804: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-1804, 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-1804, 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-1804, 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-1804, body.home) .et_pb_section:has(.wescat),
:is(body.page-id-1804, body.home) .wescat{
  background: #fbf6ec !important;
}
:is(body.page-id-1804, 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-1804, body.home) .wescat::before,
:is(body.page-id-1804, body.home) .wescat::after{ display: none !important; }  /* drop texture + dark veil */
:is(body.page-id-1804, body.home) .wescat__head,
:is(body.page-id-1804, body.home) .wescat__grid{ position: relative; z-index: 1; }
/* dark type on the now-white band */
:is(body.page-id-1804, body.home) .wescat__h{ color: #1c1c1e !important; }
:is(body.page-id-1804, 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-1804, body.home) .wescat .wescat__eyebrow,
:is(body.page-id-1804, body.home) .wescat .wescat__h em{ color: #B58A3D !important; }
/* more breathing room between the three cards + ~15% shorter cards (460 -> 370) */
:is(body.page-id-1804, body.home) .wescat__head{ margin-bottom: 40px !important; }
:is(body.page-id-1804, body.home) .wescat__grid{ gap: 34px !important; }
:is(body.page-id-1804, 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-1804, body.home) .wescat__img--decor{
  background-position: center 68% !important;
}
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wesb{ background: var(--ka-dark) !important; overflow: hidden; min-height: 414px !important; }  /* ~ -10% (was 460px) */
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .wesb .wesb__img{
    transform: rotate(-3deg) scale(1.22) !important;
    transform-origin: center center;
  }
  html.ka-mo-armed :is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_poster.ka_poster--size-feature,
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes > *,
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_stat_counters.ka_stat_counters--theme-wes,
  :is(body.page-id-1804, body.home) .ka_services_strip.ka_services_strip--theme-wes,
  :is(body.page-id-1804, 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-1804, body.home) .ka_product_slider_0,
:is(body.page-id-1804, body.home) .ka_product_grid{
  position: relative; isolation: isolate;
  background-color: #fbf6ec !important;   /* flat canonical light color (no grain/wash) */
}
:is(body.page-id-1804, body.home) .ka_product_slider_0::before,
:is(body.page-id-1804, 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-1804, body.home) .ka_product_slider_0 > *,
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_marquee > *{ position:relative; z-index:1; }

/* Locations — flat canonical light color #fbf6ec (no wash/grain) */
:is(body.page-id-1804, 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-1804, 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-1804 .et-l--post .et_builder_inner_content .et_pb_section:has(.wescat),
body.page-id-1804 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_product_slider_0),
body.page-id-1804 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_marquee),
body.page-id-1804 .et-l--post .et_builder_inner_content .et_pb_section:has(.ka_location_grid),
body.page-id-1804 .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-1804, body.home) .ka_stat_counters--theme-wes,
  :is(body.page-id-1804, body.home) .ka_services_strip--theme-wes,
  :is(body.page-id-1804, body.home) .ka_cta--theme-wes,
  :is(body.page-id-1804, body.home) .ka_brand_slider,
  :is(body.page-id-1804, body.home) .wescat,
  :is(body.page-id-1804, body.home) .wesb,
  :is(body.page-id-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button,
:is(body.page-id-1804, body.home) .ka_poster__button,
:is(body.page-id-1804, body.home) .ka_brand_slide__button--primary,
:is(body.page-id-1804, body.home) .ka_location_card__button--primary,
:is(body.page-id-1804, body.home) .wesh__btn--primary,
:is(body.page-id-1804, body.home) .wescat__btn,
:is(body.page-id-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:hover,
:is(body.page-id-1804, body.home) .ka_poster__button:hover,
:is(body.page-id-1804, body.home) .ka_brand_slide__button--primary:hover,
:is(body.page-id-1804, body.home) .ka_location_card__button--primary:hover,
:is(body.page-id-1804, body.home) .wesh__btn--primary:hover,
:is(body.page-id-1804, body.home) .wescat__card:hover .wescat__btn,
:is(body.page-id-1804, body.home) .wescat__btn:hover,
:is(body.page-id-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:active,
:is(body.page-id-1804, body.home) .ka_poster__button:active,
:is(body.page-id-1804, body.home) .ka_brand_slide__button--primary:active,
:is(body.page-id-1804, body.home) .ka_location_card__button--primary:active,
:is(body.page-id-1804, body.home) .wesh__btn--primary:active,
:is(body.page-id-1804, body.home) .wescat__btn:active,
:is(body.page-id-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button::after,
:is(body.page-id-1804, body.home) .ka_poster__button::after{
  content: "\2192"; margin-left: 10px; transition: transform .25s var(--ka-ease);
}
:is(body.page-id-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button:hover::after,
:is(body.page-id-1804, body.home) .ka_poster__button:hover::after,
:is(body.page-id-1804, body.home) .wesh__btn--primary:hover::after,
:is(body.page-id-1804, body.home) .wescat__card:hover .wescat__btn::after,
:is(body.page-id-1804, body.home) .wescat__btn:hover::after,
:is(body.page-id-1804, body.home) .wesb__cta:hover::after,
:is(body.page-id-1804, 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-1804, body.home) .wesh__btn--ghost,
:is(body.page-id-1804, 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-1804, body.home) .wesh__btn--ghost:hover,
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_ranking__row:hover .ka_ranking__cta,
:is(body.page-id-1804, 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-1804, body.home) .ka_product_card__cta{
  background: #fff !important; color: #B58A3D !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-1804, 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-1804, body.home) .ka_product_card:hover .ka_product_card__cta,
:is(body.page-id-1804, body.home) .ka_product_card__cta:hover,
:is(body.page-id-1804, 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-1804, body.home) .ka_product_card:hover .ka_product_card__cta::after,
:is(body.page-id-1804, body.home) .ka_product_card__cta:hover::after,
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary,
:is(body.page-id-1804, 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-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary::after,
:is(body.page-id-1804, body.home) .ka_cta.ka_cta--theme-wes a.ka_cta__button + a.ka_cta__button::after{ content: none; }
:is(body.page-id-1804, body.home) .ka_cta.ka_cta--theme-wes .ka_cta__button--secondary:hover,
:is(body.page-id-1804, 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-1804, body.home) .ka_product_card,
:is(body.page-id-1804, body.home) .ka_location_card__inner,
:is(body.page-id-1804, body.home) .ka_project_bundle{
  transition: transform .3s var(--ka-ease), box-shadow .3s var(--ka-ease) !important;
}
:is(body.page-id-1804, body.home) .ka_product_card{
  border-radius: 12px !important;
  box-shadow: var(--wes-shadow-md) !important;
}
:is(body.page-id-1804, body.home) .ka_product_card:hover{ box-shadow: var(--wes-shadow-lg) !important; transform: translateY(-4px); }
:is(body.page-id-1804, 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-1804, body.home) .ka_location_card__inner{ position: relative !important; }
:is(body.page-id-1804, 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-1804, body.home) .ka_location_card__cardlink:focus-visible{ outline: 3px solid #D4A24E; outline-offset: 3px; }
:is(body.page-id-1804, 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-1804, body.home) .ka_location_card__buttons,
:is(body.page-id-1804, body.home) .ka_location_card__inner a:not(.ka_location_card__cardlink){ position: relative; z-index: 2; }
:is(body.page-id-1804, body.home) .ka_project_bundle:hover{ box-shadow: var(--wes-shadow-lg) !important; }
:is(body.page-id-1804, body.home) .wescat__card{ box-shadow: var(--wes-shadow-lg) !important; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_product_card .ka_product_card__badge--sale,
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_product_card__stock--special-order::before,
:is(body.page-id-1804, 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-1804, body.home) .ka_product_card__stock--special-order,
:is(body.page-id-1804, 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-1804 .ka_stat_counters` (0,2,1) !important. */
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counters.ka_stat_counters--theme-wes .ka_stat_counter__number,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counter__value,
:is(body.page-id-1804, body.home) .ka_stat_counter__number,
:is(body.page-id-1804, body.home) .ka_stat_counter__prefix,
:is(body.page-id-1804, body.home) .ka_stat_counter__suffix,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counters--theme-wes .ka_stat_counter:not(:last-child)::after,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counter__value::after,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counters--theme-wes,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counter__number,
:is(body.page-id-1804, 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-1804 .ka_services_strip` 56px !important (0,2,1). */
:is(body.page-id-1804, body.home) .ka_services_strip.ka_services_strip--theme-wes{
  padding-top: 54px !important; padding-bottom: 54px !important;
}
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_services_strip--theme-wes .ka_services_item__title{
  transition: color .25s var(--ka-ease);
}
:is(body.page-id-1804, body.home) .ka_services_strip--theme-wes .ka_services_item__link:hover .ka_services_item__icon,
:is(body.page-id-1804, 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-1804, body.home) .ka_services_strip--theme-wes .ka_services_item__link:hover .ka_services_item__title,
:is(body.page-id-1804, body.home) .ka_services_strip--theme-wes .ka_services_item__link:focus-visible .ka_services_item__title{
  color: #E6BE6E !important;
}
:is(body.page-id-1804, 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-1804, body.home) .ka_product_card__brand{ color: #B58A3D !important; }
/* slider dots: clearly clickable + gold active state (wired by the home-slider JS below) */
:is(body.page-id-1804, body.home) .ka_slider__dot{ cursor: pointer; transition: background .2s var(--ka-ease), transform .2s var(--ka-ease); }
:is(body.page-id-1804, body.home) .ka_slider__dot:hover{ transform: scale(1.25); }
:is(body.page-id-1804, body.home) .ka_slider__dot.is-active,
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .wes-eyebrow{
  font: 600 12.5px/1 'AR One Sans', sans-serif !important;
  letter-spacing: .2em !important; text-transform: uppercase !important;
  color: #B58A3D !important; margin: 0 0 14px !important;
}
:is(body.page-id-1804, body.home) .et_pb_section:has(.ka_product_slider_1) .wes-eyebrow{ color: #E6BE6E !important; } /* dark deals band -> lighter gold */
:is(body.page-id-1804, body.home) .et_pb_text:has(.wes-eyebrow) h2{ font-family: 'Spectral', Georgia, serif !important; }
:is(body.page-id-1804, body.home) .et_pb_section:has(.ka_product_slider_0) .et_pb_text h2 em,
:is(body.page-id-1804, body.home) .et_pb_section:has(.ka_product_grid) .et_pb_text h2 em{ color: #B58A3D !important; font-style: italic; font-weight: 500; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_product_card .ka_product_card__body{ padding: 16px 20px 18px !important; }
:is(body.page-id-1804, body.home) .ka_product_card .ka_product_card__cta{ margin-top: 12px !important; }
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_product_card .ka_product_card__price del{
  color: #9b9489 !important; font-weight: 400 !important;
}
:is(body.page-id-1804, body.home) .ka_product_card .ka_product_card__price ins{
  color: #1c1c1e !important; font-weight: 700 !important;
}
:is(body.page-id-1804, body.home) .ka_product_card .ka_product_card__title{ transition: color .2s var(--ka-ease); }
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_product_card .ka_product_card__price{ margin-top:auto; }
:is(body.page-id-1804, 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-1804, body.home) .ka_product_slider__title{ text-shadow: 0 1px 0 rgba(0,0,0,.3); }
:is(body.page-id-1804, body.home) .ka_product_slider__title em,
:is(body.page-id-1804, body.home) .ka_product_ranking__title em{ color: var(--ka-gold) !important; }
:is(body.page-id-1804, body.home) .ka_slider__dot.is-active,
:is(body.page-id-1804, body.home) .ka_slider__dot[aria-selected="true"]{ background: var(--ka-gold) !important; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_location_card_2{ order: 4; }   /* Kingsport -> far right */
:is(body.page-id-1804, 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-1804, body.home) .ka_location_card{ height: 100% !important; }
:is(body.page-id-1804, 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-1804, body.home) .ka_location_card__buttons{ flex-direction: column !important; gap: 10px !important; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_location_grid__grid{ grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px){
  :is(body.page-id-1804, 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-1804, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner,
:is(body.page-id-1804, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner p{
  color: #B58A3D !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-1804, body.home) .et_pb_section:has(.ka_marquee) .et_pb_text_inner{ padding-top: 3em !important; }
:is(body.page-id-1804, body.home) .ka_marquee{
  padding: 30px 0 !important;
  border-top-color: #e0d7c5 !important; border-bottom-color: #e0d7c5 !important;
}
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_marquee .ka_marquee_item__image,
:is(body.page-id-1804, 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-1804, body.home) .ka_marquee .ka_marquee_item__inner{ cursor: pointer; }
:is(body.page-id-1804, body.home) .ka_marquee_item__image,
:is(body.page-id-1804, body.home) .ka_marquee_item__image img{ height: 125px !important; }
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_marquee .ka_marquee_item__image,
:is(body.page-id-1804, body.home) .ka_marquee .ka_marquee_item__image img,
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wesh__title em,
:is(body.page-id-1804, body.home) .wescat__h em,
:is(body.page-id-1804, body.home) .wescat__eyebrow,
:is(body.page-id-1804, body.home) .wesb__h em,
:is(body.page-id-1804, body.home) .wesb__eyebrow{ color: #D4A24E !important; }
:is(body.page-id-1804, body.home) .wesh__eyebrow,
:is(body.page-id-1804, body.home) .wescat__line{ color: #E6BE6E !important; }

/* ---- 3.8 HERO — immersive height, cinematic overlay, eyebrow/pill, type ---- */
:is(body.page-id-1804, 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-1804, body.home) .wesh__s{
  animation: none !important;
  transition: opacity .7s ease !important;   /* manual nav cross-fades instead of hard-cutting */
}
:is(body.page-id-1804, body.home) .wesh__dot{ animation: none !important; }
/* gold accent word in Playfair Display italic to match the original home hero */
:is(body.page-id-1804, body.home) .wesh__title em{
  font-family: 'Playfair Display', 'Spectral', Georgia, serif !important;
  font-weight: 500; font-style: italic;
}
:is(body.page-id-1804, 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-1804, body.home) .wesh__in{ padding: 0 clamp(26px, 5vw, 72px); }
:is(body.page-id-1804, body.home) .wesh__c{ max-width: 690px; }
:is(body.page-id-1804, 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-1804, body.home) .wesh__pill::before{
  background: var(--brand-success, #4f8a4f);
}
:is(body.page-id-1804, body.home) .wesh__eyebrow{
  color: #e6be6e; letter-spacing: .2em; position: relative; padding-left: 18px; margin-left: 14px;
}
:is(body.page-id-1804, 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-1804, body.home) .wesh__c>.wesh__eyebrow:first-child{ margin-left: 0; padding-left: 0; }
:is(body.page-id-1804, body.home) .wesh__c>.wesh__eyebrow:first-child::before{ display: none; }
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .wesh__btn{ padding: 16px 30px; font-size: 14px; letter-spacing: .06em; will-change: transform; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wesh__dot{ box-shadow: 0 1px 3px rgba(0,0,0,.4); }
:is(body.page-id-1804, body.home) #weshr1:checked ~ .wesh__dots .wesh__dot:nth-child(1),
:is(body.page-id-1804, body.home) #weshr2:checked ~ .wesh__dots .wesh__dot:nth-child(2),
:is(body.page-id-1804, body.home) #weshr3:checked ~ .wesh__dots .wesh__dot:nth-child(3),
:is(body.page-id-1804, body.home) #weshr4:checked ~ .wesh__dots .wesh__dot:nth-child(4),
:is(body.page-id-1804, body.home) #weshr5:checked ~ .wesh__dots .wesh__dot:nth-child(5),
:is(body.page-id-1804, 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-1804, body.home) .ka-mo,
  :is(body.page-id-1804, body.home) .ka-mo-in{
    opacity: 1 !important; transform: none !important; animation: none !important;
  }
}
html.ka-mo-armed :is(body.page-id-1804, body.home) .ka-mo{
  opacity: 0; transform: translate3d(0, 26px, 0); will-change: opacity, transform;
}
html.ka-mo-armed :is(body.page-id-1804, body.home) .ka-mo[data-ka-mo="left"]{ transform: translate3d(-34px, 0, 0); }
html.ka-mo-armed :is(body.page-id-1804, body.home) .ka-mo[data-ka-mo="right"]{ transform: translate3d(34px, 0, 0); }
html.ka-mo-armed :is(body.page-id-1804, body.home) .ka-mo[data-ka-mo="zoom"]{ transform: scale(1.06); opacity: 0; }

html.ka-mo-armed :is(body.page-id-1804, 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-1804, body.home) .ka-mo.ka-mo-in[data-ka-mo="left"]{ animation-name: ka-mo-left; }
html.ka-mo-armed :is(body.page-id-1804, body.home) .ka-mo.ka-mo-in[data-ka-mo="right"]{ animation-name: ka-mo-right; }
html.ka-mo-armed :is(body.page-id-1804, 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-1804, body.home) .ka-mo-poster-img{ overflow: hidden; }
html.ka-mo-armed :is(body.page-id-1804, 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-1804, body.home) .ka-mo-eyebrow{ position: relative; display: inline-block; }
html.ka-mo-armed :is(body.page-id-1804, 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-1804, body.home) .ka-mo-eyebrow.ka-mo-in::after,
html.ka-mo-armed :is(body.page-id-1804, 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-1804, body.home) .wescat__head .ka-mo-eyebrow,
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_cta__button,
  :is(body.page-id-1804, body.home) .ka_poster__button,
  :is(body.page-id-1804, body.home) .ka_brand_slide__button--primary,
  :is(body.page-id-1804, body.home) .ka_location_card__button--primary,
  :is(body.page-id-1804, body.home) .ka_location_card__button--secondary,
  :is(body.page-id-1804, body.home) .ka_product_card,
  :is(body.page-id-1804, body.home) .ka_product_card__cta,
  :is(body.page-id-1804, body.home) .ka_services_item__icon,
  :is(body.page-id-1804, body.home) .ka_marquee_item__image img,
  :is(body.page-id-1804, body.home) .wesh__btn--primary,
  :is(body.page-id-1804, body.home) .wescat__btn,
  :is(body.page-id-1804, body.home) .wesb__cta{
    transition: none !important;
  }
  :is(body.page-id-1804, body.home) .ka_cta__button:hover,
  :is(body.page-id-1804, body.home) .ka_poster__button:hover,
  :is(body.page-id-1804, body.home) .ka_brand_slide__button--primary:hover,
  :is(body.page-id-1804, body.home) .ka_location_card__button--primary:hover,
  :is(body.page-id-1804, body.home) .ka_product_card:hover,
  :is(body.page-id-1804, body.home) .ka_product_card__cta:hover,
  :is(body.page-id-1804, body.home) .wesh__btn--primary:hover,
  :is(body.page-id-1804, body.home) .wescat__card:hover .wescat__btn,
  :is(body.page-id-1804, body.home) .wesb__cta:hover{
    transform: none !important;
  }
}

/* =====================================================================
   5. ACCESSIBILITY — one consistent gold focus-visible ring page-wide
   ===================================================================== */
:is(body.page-id-1804, body.home) a:focus-visible,
:is(body.page-id-1804, body.home) button:focus-visible,
:is(body.page-id-1804, body.home) [role="button"]:focus-visible,
:is(body.page-id-1804, body.home) .wesh__arw:focus-visible,
:is(body.page-id-1804, body.home) .wesh__dot:focus-visible,
:is(body.page-id-1804, body.home) .wescat__card:focus-visible,
:is(body.page-id-1804, body.home) .ka_product_card:focus-visible,
:is(body.page-id-1804, body.home) .ka_product_card__cta:focus-visible,
:is(body.page-id-1804, 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-1804, body.home) .ka_stat_counters--theme-wes,
  :is(body.page-id-1804, body.home) .ka_services_strip--theme-wes,
  :is(body.page-id-1804, body.home) .ka_cta--theme-wes,
  :is(body.page-id-1804, body.home) .et_pb_section:has(.ka_product_slider_1){
    background-size: 100% 100%, 100% 100%, 240px auto !important;
  }
  :is(body.page-id-1804, body.home) .wescat::before,
  :is(body.page-id-1804, body.home) .wesb .wesb__txt{ background-size: 100% 100%, 240px auto; }
  :is(body.page-id-1804, 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-1804, body.home) .wesh{ min-height: 600px; }
  :is(body.page-id-1804, body.home) .wesh__title{ font-size: clamp(30px, 7.6vw, 42px); }
  :is(body.page-id-1804, body.home) .wesh__sub{ font-size: 16px; max-width: 30em; }
  :is(body.page-id-1804, 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-1804, body.home) .wesh__arw:hover{ transform: scale(1.05); }
  :is(body.page-id-1804, body.home) .wesh__arw--p{ left: 14px; }
  :is(body.page-id-1804, body.home) .wesh__arw--n{ right: 14px; }
  :is(body.page-id-1804, body.home) .wesh__dots{ bottom: 26px; }
  :is(body.page-id-1804, body.home) .wesh__c{ padding-bottom: 66px; }
}
@media (max-width: 560px){
  :is(body.page-id-1804, body.home) .wesh{ min-height: 540px; }
  :is(body.page-id-1804, body.home) .wesh__in{ padding: 0 22px 96px; align-items: center; }
  :is(body.page-id-1804, body.home) .wesh__title{ font-size: clamp(28px, 8.5vw, 38px); }
  :is(body.page-id-1804, body.home) .wesh__sub{ font-size: 15.5px; line-height: 1.55; }
  :is(body.page-id-1804, body.home) .wesh__arw{ width: 38px; height: 38px; }
  :is(body.page-id-1804, body.home) .wesh__btns{ gap: 10px; }
  :is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .ka_product_card .ka_product_card__title{ font-size: 16px; min-height: 0; -webkit-line-clamp: 3; }
  :is(body.page-id-1804, body.home) .ka_product_card .ka_product_card__body{ padding: 18px 18px 20px; }
  :is(body.page-id-1804, body.home) .ka_product_slider__slider .ka_slide{ flex: 0 0 78vw; max-width: 300px; }
  :is(body.page-id-1804, 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-1804, body.home) .wescat__grid{ grid-template-columns: repeat(2,1fr); max-width: 760px; gap: 18px; }
  :is(body.page-id-1804, body.home) .wescat__card{ height: clamp(300px,40vw,360px); }
}
@media (max-width: 600px){
  :is(body.page-id-1804, body.home) .wescat__grid{ grid-template-columns: 1fr; max-width: 440px; }
  :is(body.page-id-1804, body.home) .wescat__card{ height: 300px; }
  :is(body.page-id-1804, 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-1804, 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-1804, body.home) .ka_stat_counters--theme-wes .ka_stat_counter::after{ display: none !important; }
  :is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wesb__txt{ padding: 40px 22px; }
  :is(body.page-id-1804, body.home) .wesb__h{ font-size: clamp(26px,7.5vw,34px); }
  :is(body.page-id-1804, body.home) .wesb__p{ font-size: 16px; }
  :is(body.page-id-1804, 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-1804, body.home) .ka_marquee .ka_marquee_item__image,
  :is(body.page-id-1804, body.home) .ka_marquee .ka_marquee_item__image img,
  :is(body.page-id-1804, body.home) .ka_marquee_item__image,
  :is(body.page-id-1804, 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-1804, body.home) .ka_marquee__track{ gap: 52px !important; }
}

/* ---- 6.9 LOCATION CARDS mobile tap-target ---- */
@media (max-width: 520px){
  :is(body.page-id-1804, body.home) .ka_location_card__button--primary,
  :is(body.page-id-1804, body.home) .ka_location_card__button--secondary{
    min-height: 46px; padding-top: 12px; padding-bottom: 12px;
  }
  :is(body.page-id-1804, 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-1804, body.home) .wescat__btn,
  :is(body.page-id-1804, body.home) .wesb__cta,
  :is(body.page-id-1804, body.home) .ka_cta__button,
  :is(body.page-id-1804, body.home) .ka_poster__button,
  :is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wtb__eyebrow{
  margin: 0 0 12px; color: #B58A3D; font: 600 12.5px/1 'AR One Sans', sans-serif;
  letter-spacing: .2em; text-transform: uppercase;
}
:is(body.page-id-1804, 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-1804, body.home) .wtb__title em{ font-style: italic; font-weight: 500; color: #B58A3D; }
:is(body.page-id-1804, 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-1804, body.home) .wtb__viewport{ position: relative; }
:is(body.page-id-1804, 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-1804, body.home) .wtb__track::-webkit-scrollbar{ display: none; }
/* desktop click-drag: while dragging, scroll instantly + show grabbing cursor */
:is(body.page-id-1804, body.home) .wtb__track.is-dragging{ cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
:is(body.page-id-1804, body.home) .wtb__track.is-dragging .wtb__card{ cursor: grabbing; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, 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-1804, body.home) .wtb__card:hover .wtb__img{ transform: scale(1.06); }
:is(body.page-id-1804, body.home) .wtb__body{ padding: 16px 18px 20px; display: flex; flex-direction: column; flex: 1; }
:is(body.page-id-1804, body.home) .wtb__cat{ color: #B58A3D; font: 700 10.5px/1 'AR One Sans', sans-serif; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 8px; }
:is(body.page-id-1804, 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-1804, 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-1804, body.home) .wtb__price del{ color: #9b9489; font-weight: 400; margin-right: 6px; }
:is(body.page-id-1804, body.home) .wtb__price ins{ text-decoration: none; color: #b33a3a; }
:is(body.page-id-1804, 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: #B58A3D; 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-1804, 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-1804, body.home) .wtb__btn span{ transition: transform .25s var(--ka-ease); }
:is(body.page-id-1804, body.home) .wtb__card:hover .wtb__btn span{ transform: translateX(4px); }
/* controls: circular gold arrows + gold progress thumb */
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .wtb__arw:disabled{ opacity: .35; cursor: default; transform: none; box-shadow: none; background: #fff; color: #1c1c1e; }
:is(body.page-id-1804, 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-1804, 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-1804, 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-1804, body.home) .wtb__all-inner{ display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 30px 22px; }
:is(body.page-id-1804, 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-1804, body.home) .wtb__card--all:hover .wtb__all-ico{ transform: scale(1.08) translateX(2px); }
:is(body.page-id-1804, body.home) .wtb__all-title{ font-family: 'Spectral', Georgia, serif; font-weight: 700; font-size: 21px; color: #1c1c1e; }
:is(body.page-id-1804, 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-1804, body.home) .wtb__card{ flex-basis: 256px; } }
@media (max-width: 600px){
  :is(body.page-id-1804, body.home) .wtb__card{ flex-basis: 78vw; max-width: 300px; }
  :is(body.page-id-1804, body.home) .wtb__imgwrap{ height: 200px; }
  :is(body.page-id-1804, body.home) .wtb__arw{ width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce){
  :is(body.page-id-1804, body.home) .wtb__card{ opacity: 1; transform: none; animation: none; }
  :is(body.page-id-1804, 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-70 .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-70 .et-l--post .et_flex_column_8_24{ flex: 0 0 41% !important; max-width: 41% !important; }
  body.page-id-70 .et-l--post .et_flex_column_16_24 .et_pb_text,
  body.page-id-70 .et-l--post .et_flex_column_16_24 .et_pb_text_inner,
  body.page-id-70 .et-l--post .et_flex_column_16_24 .et_pb_text_inner p{ width: 100% !important; max-width: 100% !important; }
  body.page-id-70 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-70 .et_pb_section_4{ background-color: transparent !important;
      background-image: url(https://kainnovations.net/wp-content/uploads/2026/06/wes-about-cta-bg.webp) !important; background-size: cover !important;
      background-position: center !important; background-repeat: no-repeat !important; }
  body.page-id-70 .et_pb_section_4 h1, body.page-id-70 .et_pb_section_4 h2,
  body.page-id-70 .et_pb_section_4 h3, body.page-id-70 .et_pb_section_4 p,
  body.page-id-70 .et_pb_section_4 .et_pb_text{ color: #000 !important; }
  body.page-id-70 #page-container .et_pb_section_4 .et_pb_button,
  body.page-id-70 #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-70 #page-container .et_pb_text_12 p{ font-size: 40px !important; }
  body.page-id-70 #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.webp, swapped 2026-08-09; bypass static-CSS cache) ===== */
body.page-id-70 .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://kainnovations.net/wp-content/uploads/2026/08/wes-about-hero-showroom.webp) !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }
body.page-id-70 .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-70 .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-70 #page-container .et_pb_text_0,
body.page-id-70 #page-container .et_pb_text_0 .et_pb_text_inner,
body.page-id-70 #page-container .et_pb_text_0 p,
body.page-id-70 #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-1804, 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-1804, 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-70 .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-1804, 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-1804, body.home) .wesh__pill.is-closed::before{
  background: var(--brand-warning, #c9822f) !important;
  box-shadow: none !important;
  animation: none !important;
}
:is(body.page-id-1804, body.home) .wesh__pill.is-closed{
  color: rgba(255,255,255,.92);
}
