/* Product catalog + rich detail (tokens from site.css) */
.prod-wrap{ max-width:1280px; margin:0 auto; padding:0 24px; }
.prod-hero{ position:relative; background:linear-gradient(180deg,#fff,#f8f8f8); border-bottom:1px solid #eee; color:#1a1a1a; padding:114px 0 52px; text-align:center; overflow:hidden; }
.prod-hero::before{ content:''; position:absolute; inset:0 0 auto 0; height:3px; background:linear-gradient(90deg,var(--brand-red,#c8102e),#df0024); }
.prod-eyebrow{ text-transform:uppercase; letter-spacing:.13em; font-size:12.5px; font-weight:700; color:var(--brand-red,#c8102e); margin:0 0 16px; }
.prod-h1{ font-size:clamp(34px,5vw,56px); line-height:1.04; font-weight:700; margin:0 auto; max-width:18ch; color:#1a1a1a; letter-spacing:-.01em; }
.prod-lead{ margin:20px auto 26px; max-width:60ch; font-size:18px; line-height:1.55; color:#666; }
.prod-cta{ display:inline-block; background:var(--brand-red,#c8102e); color:#fff; text-decoration:none; padding:14px 30px; border-radius:11px; font-weight:600; }
.prod-cta:hover{ background:var(--brand-red-dark,#8c0a1f); }
/* dark "Find Your Diagnostic Tool" hero (matches the icar reference) */
.prod-hero-dark{ background:linear-gradient(135deg,#16181d 0%,#0b0c0f 55%,#1b1d24 100%); color:#fff; padding:122px 0 58px; border-bottom:0; }
.prod-hero-dark .prod-hero-bg{ position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:radial-gradient(900px 380px at 78% 8%, rgba(200,16,46,.30), transparent 60%),
             radial-gradient(700px 320px at 12% 100%, rgba(80,90,120,.22), transparent 60%); }
.prod-hero-dark .prod-wrap{ position:relative; z-index:1; }
.prod-hero-dark .prod-eyebrow{ color:#ff5566; }
.prod-hero-dark .prod-h1{ color:#fff; }
.prod-hero-dark .prod-lead{ color:rgba(255,255,255,.72); }

/* ===== filter tabs (instant, client-side) ===== */
.prod-tabs{ display:flex; gap:8px; flex-wrap:wrap; padding:34px 0 0; }
.prod-tab{ display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:100px; border:1px solid rgba(0,0,0,.12); background:#fff; font-size:14px; font-weight:600; color:var(--ink-2,#444); cursor:pointer; transition:border-color .15s, background .15s, color .15s; font-family:inherit; }
.prod-tab i{ font-size:17px; }
.prod-tab:hover{ border-color:var(--brand-red,#c8102e); color:var(--brand-red,#c8102e); }
.prod-tab.on{ background:var(--brand-red,#c8102e); border-color:var(--brand-red,#c8102e); color:#fff; }
.prod-tab-n{ font-size:12px; font-weight:700; padding:1px 8px; border-radius:100px; background:rgba(0,0,0,.06); color:var(--ink-3,#86868b); }
.prod-tab.on .prod-tab-n{ background:rgba(255,255,255,.24); color:#fff; }
/* horizontal category (type) tab bar at the top of the catalogue (icar-style) */
.prod-cattabs{ margin:26px 0 2px; border-bottom:1px solid rgba(0,0,0,.08); }
.prod-cattabs .prod-tabs{ display:flex; flex-wrap:nowrap; gap:8px; padding:0 0 14px; overflow-x:auto; scrollbar-width:none; }
@media(max-width:833px){ .prod-cattabs .prod-tabs{ flex-wrap:wrap; overflow-x:visible; } }
.prod-cattabs .prod-tabs::-webkit-scrollbar{ display:none; }
.prod-cattabs .prod-tab{ flex:0 0 auto; }
.prod-cattabs .prod-tab i{ font-size:17px; }

/* ===== shop by vehicle make ===== */
.prod-makes{ display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-top:20px; padding:16px 18px; background:#f7f7f9; border:1px solid rgba(0,0,0,.06); border-radius:14px; }
.prod-makes-label{ display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:700; color:var(--ink,#1d1d1f); white-space:nowrap; padding-top:6px; }
.prod-makes-label i{ font-size:17px; color:var(--brand-red,#c8102e); }
.prod-makes-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.prod-make{ display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:100px; border:1px solid rgba(0,0,0,.12); background:#fff; font-size:13px; font-weight:600; color:var(--ink-2,#444); cursor:pointer; transition:border-color .15s, background .15s, color .15s; font-family:inherit; }
.prod-make:hover{ border-color:var(--brand-red,#c8102e); color:var(--brand-red,#c8102e); }
.prod-make.on{ background:#1d1d1f; border-color:#1d1d1f; color:#fff; }
.prod-make-n{ font-size:11px; font-weight:700; padding:1px 7px; border-radius:100px; background:rgba(0,0,0,.06); color:var(--ink-3,#86868b); }
.prod-make.on .prod-make-n{ background:rgba(255,255,255,.22); color:#fff; }

/* ===== sticky filter sidebar layout (icarsoft.net style) ===== */
.prod-layout{ display:grid; grid-template-columns:248px minmax(0,1fr); gap:38px; align-items:start; padding-top:34px; padding-bottom:60px; }
.prod-sidebar{ position:sticky; top:84px; display:flex; flex-direction:column; gap:26px; }
/* reserve vertical space so a heavily-filtered (few results) grid doesn't let the
   footer ride up and crowd the taller sidebar */
.prod-main{ min-width:0; min-height:62vh; }
.prod-filter-h{ display:flex; align-items:center; gap:7px; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:#86868b; font-weight:700; margin:0 0 12px; }
.prod-filter-h i{ font-size:15px; color:var(--brand-red,#c8102e); }
/* vertical filter rows inside the sidebar (override the horizontal pill defaults) */
.prod-sidebar .prod-tabs{ display:flex; flex-direction:column; gap:3px; padding:0; flex-wrap:nowrap; }
.prod-sidebar .prod-makes{ display:flex; flex-direction:column; gap:3px; padding:0; margin:0; background:none; border:none; }
.prod-sidebar .prod-tab,
.prod-sidebar .prod-make{ width:100%; justify-content:flex-start; gap:10px; padding:9px 12px; border-radius:10px; border:1px solid transparent; background:transparent; font-size:14px; }
.prod-sidebar .prod-tab i{ font-size:18px; color:#86868b; flex-shrink:0; }
.prod-sidebar .prod-tab .prod-tab-l,
.prod-sidebar .prod-make .prod-tab-l{ flex:1; text-align:left; }
.prod-sidebar .prod-tab:hover,
.prod-sidebar .prod-make:hover{ background:#f5f5f7; border-color:transparent; color:var(--ink,#1d1d1f); }
.prod-sidebar .prod-tab:hover i{ color:var(--ink,#1d1d1f); }
.prod-sidebar .prod-tab.on,
.prod-sidebar .prod-make.on{ background:#fef2f2; border-color:transparent; color:var(--brand-red,#c8102e); }
.prod-sidebar .prod-tab.on i{ color:var(--brand-red,#c8102e); }
.prod-sidebar .prod-tab.on .prod-tab-n{ background:var(--brand-red,#c8102e); color:#fff; }
.prod-sidebar .prod-make.on .prod-make-n{ background:var(--brand-red,#c8102e); color:#fff; }
/* BY CATEGORY multi-select checkboxes */
.prod-filter-h-dot{ display:flex; align-items:center; gap:8px; }
.prod-filter-h-dot::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--brand-red,#c8102e); flex:0 0 auto; }
.prod-makes-check .prod-make{ display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.prod-cb{ flex:0 0 auto; width:16px; height:16px; border:1.5px solid rgba(0,0,0,.28); border-radius:4px; position:relative; transition:border-color .15s, background .15s; }
.prod-makes-check .prod-make.on .prod-cb{ background:var(--brand-red,#c8102e); border-color:var(--brand-red,#c8102e); }
.prod-makes-check .prod-make.on .prod-cb::after{ content:''; position:absolute; left:4px; top:1px; width:4px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.prod-makes-check .prod-make .prod-tab-l{ flex:1; }
/* 'All makes' has no visible checkbox */
.prod-makes-check .prod-make[data-brand="all"] .prod-cb{ display:none; }

/* ===== toolbar: count + search + selects ===== */
.prod-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin:0 0 24px; padding-bottom:18px; border-bottom:1px solid rgba(0,0,0,.08); }
.prod-count{ font-size:14px; color:var(--ink-3,#86868b); margin:0; font-weight:550; }
.prod-controls{ display:flex; gap:10px; flex-wrap:wrap; }
.prod-search{ display:flex; align-items:center; gap:8px; background:#f5f5f7; border:1px solid transparent; border-radius:11px; padding:0 14px; transition:border-color .15s, background .15s; }
.prod-search:focus-within{ background:#fff; border-color:var(--brand-red,#c8102e); }
.prod-search i{ color:#86868b; font-size:17px; }
.prod-search input{ border:none; background:none; outline:none; padding:11px 2px; font-size:14.5px; width:200px; font-family:inherit; }
.prod-select{ border:1px solid rgba(0,0,0,.14); border-radius:11px; padding:11px 14px; font-size:14px; background:#fff; color:var(--ink,#1d1d1f); font-family:inherit; cursor:pointer; max-width:230px; }
.prod-select:focus{ outline:none; border-color:var(--brand-red,#c8102e); }

/* ===== product grid + cards (hover: border→brand, lift, image zoom) ===== */
.prod-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:20px; padding-bottom:64px; }
.prod-card{ background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:transform .25s, box-shadow .25s, border-color .2s; }
.prod-card:hover{ transform:translateY(-4px); box-shadow:0 22px 46px -26px rgba(0,0,0,.3); border-color:var(--brand-red,#c8102e); }
.prod-card-media{ display:block; aspect-ratio:4/3; background:#f7f7f9; padding:18px; overflow:hidden; border-bottom:1px solid rgba(0,0,0,.05); }
.prod-card-media img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .5s ease; }
.prod-card:hover .prod-card-media img{ transform:scale(1.06); }
.prod-card-body{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
.prod-card-cat{ font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--brand-red,#c8102e); }
.prod-card-name{ font-size:16px; font-weight:650; margin:0; line-height:1.3; }
.prod-card-name a{ color:var(--ink,#1d1d1f); text-decoration:none; }
.prod-card-sub{ font-size:13px; line-height:1.45; color:var(--ink-3,#86868b); margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.prod-card-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; }
.prod-card-price{ font-size:16px; font-weight:700; color:var(--ink,#1d1d1f); }
.prod-card-price-rfq{ font-size:13px; font-weight:600; color:var(--ink-3,#86868b); }
.prod-card-quote{ font-size:13px; font-weight:600; color:var(--brand-red,#c8102e); text-decoration:none; }
.prod-card-quote:hover{ text-decoration:underline; }
.prod-card-go{ font-size:13px; font-weight:600; color:var(--brand-red,#c8102e); display:inline-flex; align-items:center; gap:4px; }
.prod-card-go i{ transition:transform .15s; }
.prod-card:hover .prod-card-go i{ transform:translateX(3px); }

/* ===== empty state ===== */
.prod-empty{ text-align:center; padding:70px 20px 90px; color:var(--ink-3,#86868b); }
.prod-empty i{ font-size:54px; color:#c7c7cc; }
.prod-empty p{ font-size:17px; margin:14px 0 18px; }
.prod-reset{ background:var(--brand-red,#c8102e); color:#fff; border:none; border-radius:11px; padding:12px 26px; font-size:15px; font-weight:600; cursor:pointer; font-family:inherit; }
.prod-reset:hover{ background:var(--brand-red-dark,#8c0a1f); }
/* mobile: type tabs + make chips become a swipeable horizontal rail instead of wrapping */
/* stack the sidebar above the grid on narrower screens; filters become horizontal pills */
@media(max-width:900px){
  .prod-layout{ grid-template-columns:minmax(0,1fr); gap:22px; padding-top:24px; }
  .prod-sidebar{ position:static; gap:16px; }
  .prod-sidebar .prod-tabs, .prod-sidebar .prod-makes{ flex-direction:row; flex-wrap:wrap; overflow-x:visible; gap:8px; padding-bottom:4px; }
  .prod-sidebar .prod-tabs::-webkit-scrollbar, .prod-sidebar .prod-makes::-webkit-scrollbar{ display:none; }
  .prod-sidebar .prod-tab, .prod-sidebar .prod-make{ flex:0 0 auto; width:auto; border:1px solid rgba(0,0,0,.12); border-radius:100px; background:#fff; }
  .prod-sidebar .prod-tab.on, .prod-sidebar .prod-make.on{ border-color:var(--brand-red,#c8102e); }
}
@media(max-width:560px){ .prod-search input{ width:140px; } .prod-toolbar{ gap:12px; } }

/* ============================================================
   Product detail — clean, light, content-rich (icarsoft.net style)
   ============================================================ */
.pd{ --ink:#1a1a1a; --ink-soft:#333; --ink-muted:#666; --line:#dedede; --line-soft:#eee; --surface-soft:#f8f8f8; }
.pd-wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.pd-crumb{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; font-size:13px; color:var(--ink-muted); padding:96px 0 0; }
.pd-crumb a{ color:var(--ink-muted); text-decoration:none; }
.pd-crumb a:hover{ color:var(--brand-red,#c8102e); }
.pd-crumb i{ font-size:14px; color:#c7c7cc; }
.pd-crumb span{ color:var(--ink); font-weight:550; }

/* hero */
.pd-hero{ padding:26px 0 56px; }
.pd-hero-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:54px; align-items:start; }
@media(max-width:880px){ .pd-hero-grid{ grid-template-columns:1fr; gap:30px; } }
.pd-main{ aspect-ratio:1/1; background:var(--surface-soft); border:1px solid var(--line-soft); border-radius:18px; display:flex; align-items:center; justify-content:center; padding:34px; }
.pd-main img{ max-width:100%; max-height:100%; object-fit:contain; mix-blend-mode:multiply; }
.pd-thumbs{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.pd-thumb{ width:68px; height:68px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:6px; cursor:pointer; transition:border-color .15s; }
.pd-thumb:hover{ border-color:var(--ink-muted); }
.pd-thumb.on{ border-color:var(--brand-red,#c8102e); border-width:2px; }
.pd-thumb img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.pd-cat{ font-size:12.5px; font-weight:700; color:var(--brand-red,#c8102e); text-transform:uppercase; letter-spacing:.06em; margin:0 0 10px; }
.pd-title{ font-size:clamp(28px,3.6vw,42px); font-weight:700; line-height:1.08; margin:0 0 14px; color:var(--ink); }
.pd-sub{ font-size:16.5px; line-height:1.6; color:var(--ink-muted); margin:0 0 22px; }

/* quick specs strip */
.pd-quickspecs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:12px; overflow:hidden; margin:0 0 24px; }
.pd-qs{ background:#fff; padding:13px 16px; display:flex; flex-direction:column; gap:3px; }
.pd-qs-k{ font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-muted); }
.pd-qs-v{ font-size:14.5px; font-weight:600; color:var(--ink); }

/* B2B buy/inquiry block */
.pd-buy{ border:1px solid var(--line); border-radius:16px; padding:22px 24px; margin:0 0 22px; background:#fff; }
.pd-price-row{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.pd-price{ font-size:30px; font-weight:700; color:var(--ink); }
.pd-price-note{ font-size:13px; color:var(--ink-muted); }
.pd-avail{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--ink-soft); margin:0 0 18px; }
.pd-avail i{ color:var(--brand-red,#c8102e); font-size:18px; }
.pd-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.pd-btn-red{ display:inline-flex; align-items:center; gap:8px; background:var(--brand-red,#c8102e); color:#fff; padding:13px 24px; border-radius:11px; text-decoration:none; font-weight:600; font-size:15px; transition:background .15s; }
.pd-btn-red:hover{ background:var(--brand-red-dark,#8c0a1f); }
.pd-btn-line{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); color:var(--ink); padding:13px 24px; border-radius:11px; text-decoration:none; font-weight:600; font-size:15px; transition:border-color .15s; }
.pd-btn-line:hover{ border-color:var(--ink); }
.pd-trust{ display:flex; gap:8px 22px; flex-wrap:wrap; font-size:13.5px; color:var(--ink-soft); }
.pd-trust span{ display:inline-flex; align-items:center; gap:7px; }
.pd-trust i{ color:#1aa06d; font-size:18px; }

/* sticky in-page sub-nav */
.pd-subnav{ position:sticky; top:60px; z-index:30; background:rgba(255,255,255,.92); backdrop-filter:saturate(180%) blur(12px); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
.pd-subnav-inner{ display:flex; gap:6px; overflow-x:auto; }
.pd-subnav a{ white-space:nowrap; padding:15px 16px; font-size:14px; font-weight:550; color:var(--ink-muted); text-decoration:none; border-bottom:2px solid transparent; transition:color .15s, border-color .15s; }
.pd-subnav a:hover{ color:var(--ink); }
.pd-subnav a.on{ color:var(--brand-red,#c8102e); border-bottom-color:var(--brand-red,#c8102e); }

/* content sections */
.pd-section{ padding:54px 0; scroll-margin-top:120px; }
.pd-section-grey{ background:var(--surface-soft); }
.pd-h2{ font-size:clamp(22px,2.6vw,30px); font-weight:680; margin:0 0 26px; color:var(--ink); }
.pd-legacy{ width:100%; border:0; display:block; min-height:300px; overflow:hidden; }

.pd-specs{ width:100%; border-collapse:collapse; max-width:760px; }
.pd-specs th{ text-align:left; font-weight:600; color:var(--ink-muted); font-size:14.5px; padding:14px 20px 14px 0; width:200px; border-bottom:1px solid var(--line); vertical-align:top; }
.pd-specs td{ font-size:14.5px; color:var(--ink); padding:14px 0; border-bottom:1px solid var(--line); }

.pd-box-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:18px; }
.pd-box-item{ background:#fff; border:1px solid var(--line-soft); border-radius:14px; padding:18px; text-align:center; }
.pd-box-item img{ width:100%; aspect-ratio:1/1; object-fit:contain; mix-blend-mode:multiply; margin-bottom:10px; }
.pd-box-ph{ display:flex; align-items:center; justify-content:center; aspect-ratio:1/1; font-size:38px; color:#c7c7cc; margin-bottom:10px; }
.pd-box-item p{ font-size:13.5px; font-weight:600; margin:0; color:var(--ink-soft); }

/* downloads */
.pd-dl-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.pd-dl{ display:flex; align-items:center; gap:14px; padding:15px 18px; background:#fff; border:1px solid var(--line); border-radius:12px; text-decoration:none; transition:border-color .15s, transform .15s; }
.pd-dl:hover{ border-color:var(--brand-red,#c8102e); transform:translateX(2px); }
.pd-dl-icon{ width:38px; height:38px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:var(--surface-soft); border-radius:9px; color:var(--brand-red,#c8102e); font-size:20px; }
.pd-dl-name{ flex:1; font-size:14.5px; font-weight:550; color:var(--ink); }
.pd-dl-meta{ font-size:12px; color:var(--ink-muted); }
.pd-dl-go{ color:#c7c7cc; font-size:18px; }
.pd-dl:hover .pd-dl-go{ color:var(--brand-red,#c8102e); }
.pd-dl-more{ font-size:14px; color:var(--ink-muted); margin:20px 0 0; }
.pd-dl-more a{ color:var(--brand-red,#c8102e); }

/* related */
.pd-rel-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:18px; }
.pd-rel-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; text-decoration:none; color:inherit; transition:transform .2s, box-shadow .2s, border-color .2s; }
.pd-rel-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -26px rgba(0,0,0,.3); border-color:var(--brand-red,#c8102e); }
.pd-rel-img{ aspect-ratio:4/3; background:var(--surface-soft); border-radius:10px; padding:14px; margin-bottom:12px; overflow:hidden; }
.pd-rel-img img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .4s; }
.pd-rel-card:hover .pd-rel-img img{ transform:scale(1.05); }
.pd-rel-card h3{ font-size:15px; font-weight:650; margin:0 0 5px; color:var(--ink); }
.pd-rel-price{ font-size:14px; color:var(--ink); font-weight:700; margin:0; }
.pd-rel-rfq{ color:var(--ink-muted); font-weight:600; font-size:13px; }

/* ===== search page ===== */
.search-box{ display:flex; align-items:center; gap:8px; max-width:600px; margin:24px auto 0; background:#fff; border:1px solid #dedede; border-radius:100px; padding:6px 6px 6px 20px; box-shadow:0 10px 30px -18px rgba(0,0,0,.25); }
.search-box:focus-within{ border-color:var(--brand-red,#c8102e); }
.search-box i{ color:#878787; font-size:19px; }
.search-box input{ flex:1; border:none; outline:none; font-size:16px; padding:12px 4px; background:none; font-family:inherit; }
.search-box button{ background:var(--brand-red,#c8102e); color:#fff; border:none; border-radius:100px; padding:12px 26px; font-size:15px; font-weight:600; cursor:pointer; font-family:inherit; transition:background .15s; }
.search-box button:hover{ background:var(--brand-red-dark,#8c0a1f); }
.search-count{ font-size:14px; color:var(--ink-3,#86868b); margin:30px 0 4px; }
.search-count strong{ color:var(--ink,#1d1d1f); }
.search-hint{ display:flex; align-items:center; gap:9px; justify-content:center; color:#666; font-size:15px; padding:50px 0 70px; }
.search-hint i{ color:var(--brand-red,#c8102e); font-size:19px; }
.search-sec{ padding:40px 0 0; }
.search-sec:last-child{ padding-bottom:70px; }
.search-sec-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 22px; }
.search-sec-head h2{ font-size:24px; font-weight:680; margin:0; color:#1a1a1a; display:flex; align-items:center; gap:10px; }
.search-sec-head h2 span{ font-size:13px; font-weight:700; color:#fff; background:var(--brand-red,#c8102e); border-radius:100px; padding:2px 11px; }
.search-sec-head a{ font-size:14px; font-weight:600; color:var(--brand-red,#c8102e); text-decoration:none; white-space:nowrap; }
.search-articles{ display:grid; gap:10px; }
.search-article{ display:flex; align-items:center; gap:14px; padding:15px 18px; border:1px solid #dedede; border-radius:12px; background:#fff; text-decoration:none; transition:border-color .15s, transform .15s; }
.search-article:hover{ border-color:var(--brand-red,#c8102e); transform:translateX(2px); }
.search-article-ico{ width:40px; height:40px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:#f8f8f8; border-radius:10px; color:var(--brand-red,#c8102e); font-size:19px; }
.search-article-body{ flex:1; display:flex; flex-direction:column; gap:3px; min-width:0; }
.search-article-title{ font-size:15px; font-weight:600; color:#1a1a1a; }
.search-article-desc{ font-size:13px; color:#878787; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-article-go{ color:#c7c7cc; font-size:18px; flex-shrink:0; }
.search-article:hover .search-article-go{ color:var(--brand-red,#c8102e); }

/* ===== product detail: rating, coverage, reviews, quote form ===== */
.pd-stars{ display:inline-flex; gap:1px; color:#f5a623; font-size:16px; line-height:1; }
.pd-stars .ti-star{ color:#dcdce0; }
.pd-rating{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; margin:0 0 14px; }
.pd-rating-val{ font-weight:700; color:#1a1a1a; font-size:14px; }
.pd-rating-n{ font-size:13px; color:#878787; }
.pd-rating:hover .pd-rating-n{ color:var(--brand-red,#c8102e); }
.pd-coverage{ display:inline-flex; align-items:center; gap:8px; margin-top:12px; font-size:14px; font-weight:600; color:var(--brand-red,#c8102e); text-decoration:none; }
.pd-coverage:hover{ text-decoration:underline; }
.pd-coverage .ti-external-link{ font-size:14px; opacity:.7; }

.pd-rev-summary{ display:flex; align-items:center; gap:22px; margin-bottom:26px; }
.pd-rev-avg{ font-size:46px; font-weight:800; color:#1a1a1a; line-height:1; }
.pd-rev-avg span{ font-size:20px; color:#878787; font-weight:600; }
.pd-stars-lg{ font-size:22px; }
.pd-rev-count{ margin:6px 0 0; font-size:14px; color:#666; }
.pd-rev-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:16px; }
.pd-rev{ background:#fff; border:1px solid var(--line,#dedede); border-radius:14px; padding:18px 20px; }
.pd-rev-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.pd-rev-date{ font-size:12.5px; color:#a0a0a6; }
.pd-rev-body{ font-size:14.5px; line-height:1.6; color:#333; margin:0; }
.pd-rev-reply{ margin-top:12px; padding:12px 14px; background:#f8f8f8; border-radius:10px; font-size:13.5px; line-height:1.55; color:#444; }
.pd-rev-reply strong{ color:var(--brand-red,#c8102e); display:inline-flex; align-items:center; gap:5px; margin-right:6px; }

.pd-quote{ display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:start; }
.pd-quote-intro .pd-h2{ margin-bottom:14px; }
.pd-quote-intro p{ font-size:15.5px; line-height:1.6; color:#555; margin:0 0 20px; }
.pd-quote-trust{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.pd-quote-trust li{ display:flex; align-items:center; gap:10px; font-size:14.5px; color:#333; }
.pd-quote-trust i{ color:#1aa06d; font-size:19px; }
.pd-quote-form{ background:#fff; border:1px solid var(--line,#dedede); border-radius:16px; padding:24px; }
@media(max-width:860px){ .pd-quote{ grid-template-columns:1fr; gap:28px; } }

/* ===== mobile sticky CTA bar (hidden on desktop / until scrolled past hero) ===== */
.pd-mcta{ display:none; }
@media(max-width:768px){
  .pd-mcta{
    display:flex; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:8000;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(255,255,255,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-top:1px solid rgba(0,0,0,.08); box-shadow:0 -8px 24px -16px rgba(0,0,0,.4);
    transform:translateY(120%); transition:transform .28s ease; pointer-events:none;
  }
  .pd-mcta.show{ transform:translateY(0); pointer-events:auto; }
  .pd-mcta a{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:50px; border-radius:12px; font-size:15px; font-weight:650; text-decoration:none; }
  .pd-mcta-quote{ background:var(--brand-red,#c8102e); color:#fff; }
  .pd-mcta-dealer{ background:#fff; color:var(--ink,#1d1d1f); border:1px solid rgba(0,0,0,.16); }
  .pd-mcta i{ font-size:18px; }
  /* keep the page-bottom content clear of the bar */
  .pd #quote{ scroll-margin-bottom:80px; }

  /* collapsed legacy overview with a "show full overview" toggle */
  #overview.pd-ov-collapsed{ position:relative; }
  #overview.pd-ov-collapsed .pd-legacy{ max-height:540px !important; }
  #overview.pd-ov-collapsed::after{ content:''; position:absolute; left:0; right:0; bottom:56px; height:120px; background:linear-gradient(rgba(255,255,255,0), #fff); pointer-events:none; }
  .pd-ov-more{
    display:inline-flex; align-items:center; gap:6px; margin:14px auto 0; padding:11px 22px;
    background:#fff; color:var(--brand-red,#c8102e); border:1px solid var(--brand-red,#c8102e);
    border-radius:100px; font-size:14px; font-weight:650; font-family:inherit; cursor:pointer;
    position:relative; z-index:1; left:50%; transform:translateX(-50%);
  }
}

/* ============ Product comparison ============ */
.prod-card{ position:relative; }
.prod-compare{ position:absolute; top:10px; left:10px; z-index:3; display:inline-flex; align-items:center; gap:5px; background:rgba(255,255,255,.94); border:1px solid #e2e2e6; border-radius:20px; padding:4px 10px 4px 8px; font-size:11.5px; font-weight:600; color:#57575c; cursor:pointer; box-shadow:0 2px 8px -3px rgba(0,0,0,.25); opacity:0; transition:opacity .15s; }
.prod-card:hover .prod-compare,.prod-card.is-comparing .prod-compare{ opacity:1; }
.prod-compare input{ width:14px; height:14px; margin:0; accent-color:var(--brand-red,#c8102e); }
.prod-compare i{ font-size:14px; }
.prod-card.is-comparing{ outline:2px solid var(--brand-red,#c8102e); outline-offset:-2px; border-radius:14px; }
.prod-card.is-comparing .prod-compare{ background:var(--brand-red,#c8102e); color:#fff; border-color:var(--brand-red,#c8102e); }

.cmp-tray{ position:fixed; left:0; right:0; bottom:0; z-index:60; background:#101014; color:#fff; box-shadow:0 -10px 30px -12px rgba(0,0,0,.5); }
.cmp-tray-inner{ max-width:1240px; margin:0 auto; display:flex; align-items:center; gap:16px; padding:12px 24px; flex-wrap:wrap; }
.cmp-tray-items{ display:flex; gap:8px; flex:1; flex-wrap:wrap; min-width:0; }
.cmp-chip{ display:inline-flex; align-items:center; gap:7px; background:#22232a; border-radius:20px; padding:4px 6px 4px 4px; font-size:12.5px; }
.cmp-chip img{ width:26px; height:26px; object-fit:contain; background:#fff; border-radius:50%; }
.cmp-chip button{ background:none; border:0; color:#b8b8be; font-size:16px; line-height:1; cursor:pointer; padding:0 4px; }
.cmp-chip button:hover{ color:#fff; }
.cmp-tray-actions{ display:flex; gap:10px; align-items:center; }
.cmp-clear{ background:none; border:1px solid #3a3b44; color:#cfcfd6; border-radius:9px; padding:9px 14px; font-size:13px; cursor:pointer; }
.cmp-clear:hover{ border-color:#5a5b66; }
.cmp-open{ background:var(--brand-red,#c8102e); border:0; color:#fff; border-radius:9px; padding:9px 20px; font-size:13.5px; font-weight:700; cursor:pointer; }
.cmp-open:disabled{ opacity:.5; cursor:not-allowed; }
.cmp-tray.cmp-limit{ animation:cmpShake .4s; }
.cmp-tray.cmp-limit .cmp-tray-inner::after{ content:"Compare up to 4 tools at a time"; color:#ff9db0; font-size:12.5px; }
@keyframes cmpShake{ 0%,100%{transform:none} 25%{transform:translateX(-4px)} 75%{transform:translateX(4px)} }

.cmp-modal{ position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; padding:24px; }
.cmp-scrim{ position:absolute; inset:0; background:rgba(10,10,12,.6); backdrop-filter:blur(2px); }
.cmp-panel{ position:relative; background:#fff; border-radius:18px; width:min(980px,100%); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 40px 90px -30px rgba(0,0,0,.5); }
.cmp-panel-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border-bottom:1px solid #ececef; }
.cmp-panel-head h2{ margin:0; font-size:19px; }
.cmp-close{ background:#f2f2f4; border:0; width:34px; height:34px; border-radius:50%; cursor:pointer; font-size:18px; color:#57575c; display:inline-flex; align-items:center; justify-content:center; }
.cmp-close:hover{ background:#e6e6ea; }
.cmp-table-wrap{ overflow:auto; padding:6px 24px 24px; }
.cmp-grid{ display:grid; gap:0; min-width:520px; }
.cmp-rowlabel{ font-size:12px; font-weight:700; color:#86868b; text-transform:uppercase; letter-spacing:.03em; padding:14px 12px; border-bottom:1px solid #f0f0f2; display:flex; align-items:center; }
.cmp-cell{ padding:14px 12px; border-bottom:1px solid #f0f0f2; border-left:1px solid #f0f0f2; font-size:13.5px; color:#3a3a40; line-height:1.5; }
.cmp-c-media{ display:block; }
.cmp-c-media img{ width:100%; height:120px; object-fit:contain; }
.cmp-c-name{ font-weight:700; font-size:15px; color:#1d1d1f; }
.cmp-c-btn{ display:inline-block; background:#1d1d1f; color:#fff; border-radius:9px; padding:8px 14px; font-size:12.5px; font-weight:600; margin:2px 6px 2px 0; }
.cmp-c-quote{ display:inline-block; color:var(--brand-red,#c8102e); font-weight:700; font-size:12.5px; padding:8px 0; }
@media(max-width:600px){ .prod-compare span{ display:none; } }

/* ==========================================================================
   Category "shelves" catalog (cat2) — distinct editorial/horizontal design
   ========================================================================== */
.cat2{ --edge:#e7e7ec; background:#fff; }
.cat2-wrap{ max-width:1240px; margin:0 auto; padding:0 24px; }

/* hero */
.cat2-hero{ position:relative; background:#0c0c10; color:#fff; overflow:hidden; padding:54px 0 60px; }
.cat2-hero-bg{ position:absolute; inset:0; background:
   radial-gradient(1100px 380px at 88% -10%, rgba(200,16,46,.4), transparent 60%),
   linear-gradient(180deg,#151519,#0a0a0d); }
.cat2-hero-bg::after{ content:""; position:absolute; inset:0; opacity:.28;
   background-image:linear-gradient(#ffffff14 1px,transparent 1px),linear-gradient(90deg,#ffffff14 1px,transparent 1px); background-size:44px 44px; -webkit-mask-image:linear-gradient(180deg,#000,transparent 78%); }
.cat2-hero .cat2-wrap{ position:relative; }
.cat2-eyebrow{ font:600 12px/1 ui-monospace,Consolas,monospace; letter-spacing:.18em; text-transform:uppercase; color:#9a9aa4; display:flex; align-items:center; gap:9px; margin:0 0 18px; }
.cat2-dot{ width:8px; height:8px; border-radius:50%; background:#2ec26b; box-shadow:0 0 0 4px rgba(46,194,107,.18); }
.cat2-h1{ font-size:clamp(34px,5.2vw,58px); line-height:1.03; letter-spacing:-.02em; margin:0 0 16px; font-weight:800; }
.cat2-lead{ max-width:600px; color:#c3c3cb; font-size:16px; line-height:1.6; margin:0 0 26px; }
.cat2-stats{ display:flex; flex-wrap:wrap; gap:12px 26px; align-items:center; }
.cat2-stats span{ font-size:13px; color:#9a9aa4; }
.cat2-stats b{ color:#fff; font-size:19px; font-weight:800; margin-right:5px; }
.cat2-hero-cta{ display:inline-flex; align-items:center; gap:7px; background:#c8102e; color:#fff; font-weight:700; font-size:13.5px; padding:10px 18px; border-radius:24px; }
.cat2-hero-cta:hover{ background:#a50d26; }

/* sticky rail */
.cat2-rail{ position:sticky; top:0; z-index:30; background:rgba(255,255,255,.9); backdrop-filter:saturate(1.6) blur(12px); border-bottom:1px solid var(--edge); }
.cat2-rail-inner{ display:flex; align-items:center; gap:16px; padding-top:10px; padding-bottom:10px; }
.cat2-pills{ display:flex; gap:7px; overflow-x:auto; flex:1; scrollbar-width:none; padding-bottom:2px; }
.cat2-pills::-webkit-scrollbar{ display:none; }
.cat2-pill{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; border:1px solid var(--edge); background:#fff; color:#3a3a40; font-size:13px; font-weight:600; padding:8px 13px; border-radius:22px; cursor:pointer; }
.cat2-pill i{ font-size:15px; color:#9a9aa4; }
.cat2-pill em{ font-style:normal; font-size:11px; color:#9a9aa4; background:#f2f2f5; padding:1px 6px; border-radius:10px; }
.cat2-pill:hover{ border-color:#c8102e; color:#c8102e; }
.cat2-pill.on{ background:#151519; border-color:#151519; color:#fff; }
.cat2-pill.on i,.cat2-pill.on em{ color:#fff; background:rgba(255,255,255,.16); }
.cat2-tools{ display:flex; align-items:center; gap:9px; flex:none; }
.cat2-search{ position:relative; }
.cat2-search i{ position:absolute; left:11px; top:50%; transform:translateY(-50%); color:#9a9aa4; font-size:15px; }
.cat2-search input{ width:190px; padding:9px 12px 9px 32px; border:1px solid var(--edge); border-radius:22px; font-size:13.5px; }
.cat2-search input:focus{ outline:none; border-color:#c8102e; box-shadow:0 0 0 3px rgba(200,16,46,.1); }
.cat2-filter-btn{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--edge); background:#fff; color:#3a3a40; font-size:13px; font-weight:600; padding:9px 14px; border-radius:22px; cursor:pointer; }
.cat2-filter-btn.on,.cat2-filter-btn:hover{ border-color:#c8102e; color:#c8102e; }
.cat2-brands{ border-top:1px solid var(--edge); }
.cat2-brands-inner{ display:flex; flex-wrap:wrap; gap:7px; padding-top:11px; padding-bottom:11px; }
.cat2-brand{ border:1px solid var(--edge); background:#fff; color:#3a3a40; font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:20px; cursor:pointer; }
.cat2-brand em{ font-style:normal; color:#9a9aa4; font-size:11px; margin-left:3px; }
.cat2-brand:hover{ border-color:#c8102e; color:#c8102e; }
.cat2-brand.on{ background:#c8102e; border-color:#c8102e; color:#fff; }
.cat2-brand.on em{ color:rgba(255,255,255,.75); }

/* section shelf */
.cat2-body{ padding-top:34px; padding-bottom:70px; }
.cat2-sec{ margin:0 0 46px; scroll-margin-top:150px; }
.cat2-sec-head{ display:flex; align-items:flex-end; gap:18px; margin:0 0 18px; }
.cat2-idx{ font:800 40px/0.8 ui-monospace,Consolas,monospace; color:#ececef; letter-spacing:-.03em; flex:none; }
.cat2-sec-title{ flex:1; min-width:0; }
.cat2-sec-title h2{ margin:0; font-size:23px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px; }
.cat2-sec-title h2 i{ color:#c8102e; font-size:22px; }
.cat2-blurb{ margin:5px 0 0; font-size:13.5px; color:#77777e; line-height:1.5; max-width:640px; }
.cat2-sec-n{ font-size:12.5px; color:#9a9aa4; white-space:nowrap; padding-bottom:3px; }
.cat2-arrows{ display:flex; gap:7px; flex:none; padding-bottom:2px; }
.cat2-arrow{ width:34px; height:34px; border:1px solid var(--edge); background:#fff; border-radius:50%; cursor:pointer; color:#57575c; display:inline-flex; align-items:center; justify-content:center; }
.cat2-arrow:hover{ border-color:#151519; color:#151519; }
.cat2-arrow i{ font-size:18px; }

.cat2-shelf{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x proximity; padding:4px 2px 14px; scrollbar-width:thin; }
.cat2-shelf::-webkit-scrollbar{ height:8px; }
.cat2-shelf::-webkit-scrollbar-thumb{ background:#dedee3; border-radius:8px; }
.cat2-shelf .prod-card{ flex:0 0 258px; width:258px; scroll-snap-align:start; background:#fff; border:1px solid var(--edge); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .15s,border-color .15s,transform .15s; }
.cat2-shelf .prod-card:hover{ border-color:#d7d7dd; box-shadow:0 18px 40px -24px rgba(0,0,0,.4); transform:translateY(-2px); }
/* when a filter is active, flow the visible cards into a wrapping grid instead of a shelf */
.cat2-body.is-filtering .cat2-shelf{ flex-wrap:wrap; overflow:visible; }
.cat2-body.is-filtering .cat2-arrows{ display:none; }

.cat2-empty{ text-align:center; color:#77777e; padding:60px 20px; }
.cat2-empty i{ font-size:36px; color:#c8c8ce; }
.cat2-empty p{ margin:10px 0 14px; }
.cat2-reset{ border:1px solid var(--edge); background:#fff; padding:9px 18px; border-radius:22px; font-weight:600; cursor:pointer; }
.cat2-reset:hover{ border-color:#c8102e; color:#c8102e; }

@media(max-width:820px){
  .cat2-idx{ display:none; }
  .cat2-tools .cat2-search input{ width:130px; }
  .cat2-sec-head{ flex-wrap:wrap; gap:10px; }
  .cat2-sec-n{ order:3; }
}

/* respect the hidden attribute (class display: rules would otherwise override UA [hidden]) */
.cmp-modal[hidden]{ display:none; }
.cmp-tray[hidden]{ display:none; }

/* ==========================================================================
   Faceted tier catalog (pcat) — sidebar + tier sections + card grid
   ========================================================================== */
.pcat{ background:#f7f7f9; }
.pcat-hero{ position:relative; background:#0c0c10; color:#fff; overflow:hidden; padding:48px 0 40px; }
.pcat-hero-bg{ position:absolute; inset:0; background:
   radial-gradient(1000px 340px at 86% -20%, rgba(200,16,46,.42), transparent 60%),
   linear-gradient(180deg,#16161b,#0a0a0d); }
.pcat-hero-bg::after{ content:""; position:absolute; inset:0; opacity:.25;
   background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px); background-size:42px 42px; -webkit-mask-image:linear-gradient(180deg,#000,transparent 82%); }
.pcat-hero-inner{ position:relative; max-width:1240px; margin:0 auto; padding:0 24px; }
.pcat-eyebrow{ font:600 12px/1 ui-monospace,Consolas,monospace; letter-spacing:.16em; text-transform:uppercase; color:#9a9aa4; display:flex; align-items:center; gap:9px; margin:0 0 14px; }
.pcat-dot{ width:8px; height:8px; border-radius:50%; background:#2ec26b; box-shadow:0 0 0 4px rgba(46,194,107,.18); }
.pcat-h1{ font-size:clamp(30px,4.4vw,46px); line-height:1.05; letter-spacing:-.02em; margin:0 0 12px; font-weight:800; }
.pcat-lead{ max-width:620px; color:#c3c3cb; font-size:15.5px; line-height:1.6; margin:0 0 26px; }
.pcat-scenarios{ display:flex; gap:12px; flex-wrap:wrap; }
.pcat-scn{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:132px; text-align:left; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.12); border-radius:13px; padding:13px 15px; color:#fff; cursor:pointer; transition:border-color .15s,background .15s; }
.pcat-scn:hover{ border-color:#c8102e; background:rgba(200,16,46,.12); }
.pcat-scn i{ font-size:20px; color:#ff6076; margin-bottom:5px; }
.pcat-scn b{ font-size:14px; font-weight:700; }
.pcat-scn span{ font-size:11.5px; color:#9a9aa4; }
.pcat-scn-cta{ background:#c8102e; border-color:#c8102e; }
.pcat-scn-cta:hover{ background:#a50d26; }
.pcat-scn-cta i{ color:#fff; }
.pcat-scn-cta span{ color:rgba(255,255,255,.8); }

.pcat-shell{ max-width:1240px; margin:0 auto; padding:26px 24px 70px; display:grid; grid-template-columns:212px 1fr; gap:30px; align-items:start; }

/* sidebar */
.pcat-side{ position:sticky; top:80px; background:#fff; border:1px solid #e7e7ec; border-radius:14px; padding:6px 16px 14px; max-height:calc(100vh - 100px); overflow:auto; }
.pcat-side-head{ display:flex; align-items:center; justify-content:space-between; padding:12px 0 8px; border-bottom:1px solid #f0f0f2; position:sticky; top:0; background:#fff; }
.pcat-side-head span{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#86868b; }
.pcat-clear{ font-size:12px; color:#c8102e; background:none; border:0; cursor:pointer; font-weight:600; }
.pcat-fgroup{ padding:12px 0; border-bottom:1px solid #f4f4f6; }
.pcat-fgroup:last-child{ border-bottom:none; }
.pcat-fgroup h3{ margin:0 0 8px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#9a9aa4; }
.pcat-facet{ display:flex; align-items:center; gap:9px; padding:5px 0; font-size:13px; color:#3a3a40; cursor:pointer; }
.pcat-facet input{ width:15px; height:15px; margin:0; accent-color:#c8102e; flex:none; }
.pcat-facet span{ flex:1; min-width:0; line-height:1.3; }
.pcat-facet em{ font-style:normal; font-size:11.5px; color:#a7a7ad; }
.pcat-facet:hover span{ color:#c8102e; }

/* main */
.pcat-main{ min-width:0; }
.pcat-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 22px; flex-wrap:wrap; }
.pcat-count{ font-size:14px; color:#57575c; margin:0; }
.pcat-count b{ color:#1d1d1f; font-size:16px; }
.pcat-toolbar-r{ display:flex; gap:10px; align-items:center; }
.pcat-search{ position:relative; }
.pcat-search i{ position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#9a9aa4; font-size:15px; }
.pcat-search input{ width:240px; max-width:52vw; padding:10px 14px 10px 34px; border:1px solid #e0e0e5; border-radius:22px; font-size:13.5px; background:#fff; }
.pcat-search input:focus{ outline:none; border-color:#c8102e; box-shadow:0 0 0 3px rgba(200,16,46,.1); }
.pcat-side-toggle{ display:none; align-items:center; gap:6px; border:1px solid #e0e0e5; background:#fff; border-radius:22px; padding:10px 15px; font-size:13.5px; font-weight:600; cursor:pointer; }

/* tier sections */
.pcat-tier{ margin:0 0 40px; }
.pcat-tier-head{ margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid #ececef; }
.pcat-tier-eyebrow{ margin:0 0 4px; font:600 11.5px/1 ui-monospace,Consolas,monospace; letter-spacing:.12em; text-transform:uppercase; color:#c8102e; }
.pcat-tier-eyebrow span{ color:#9a9aa4; }
.pcat-tier-head h2{ margin:0; font-size:22px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px; }
.pcat-tier-head h2 i{ color:#c8102e; font-size:21px; }
.pcat-tier-n{ font-size:12px; font-weight:600; color:#9a9aa4; background:#f1f1f4; padding:3px 10px; border-radius:20px; letter-spacing:0; }
.pcat-tier-blurb{ margin:8px 0 0; font-size:13.5px; color:#77777e; line-height:1.5; max-width:760px; }

.pcat-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(224px,1fr)); gap:18px; }
.pcat-grid .prod-card{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #e7e7ec; border-radius:15px; overflow:hidden; transition:box-shadow .15s,border-color .15s,transform .15s; }
.pcat-grid .prod-card:hover{ border-color:#d7d7dd; box-shadow:0 18px 40px -26px rgba(0,0,0,.4); transform:translateY(-2px); }
/* aspect-ratio:auto overrides the general .prod-card-media 4/3 box — otherwise the media is a
   tall 4:3 rectangle while the image is only 150px, leaving a big empty gap on every card. */
.pcat-grid .prod-card-media{ display:block; aspect-ratio:auto; background:linear-gradient(180deg,#fafafb,#f2f2f5); padding:16px; }
.pcat-grid .prod-card-media img{ width:100%; height:150px; object-fit:contain; }
/* phones: 2 compact columns so the catalog is scannable instead of one giant card per screen */
@media(max-width:600px){
  .pcat-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .pcat-grid .prod-card-media{ padding:12px; }
  .pcat-grid .prod-card-media img{ height:104px; }
  .pcat-grid .prod-card-body{ padding:11px 12px 13px; }
  .pcat-grid .prod-card-name{ font-size:13.5px; }
  .pcat-grid .prod-card-sub{ display:none; }
  .pcat-grid .prod-card-foot{ flex-wrap:wrap; gap:6px 10px; }
}
.pcat-grid .prod-card-body{ padding:13px 15px 15px; display:flex; flex-direction:column; flex:1; }
.pc-tag{ align-self:flex-start; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8a5a10; background:#fdf3e2; padding:3px 8px; border-radius:6px; margin-bottom:8px; }
.pcat-grid .prod-card-name{ margin:0 0 6px; font-size:15.5px; line-height:1.25; font-weight:700; }
.pcat-grid .prod-card-name a{ color:#1d1d1f; }
.pcat-grid .prod-card-name a:hover{ color:#c8102e; }
.pcat-grid .prod-card-sub{ margin:0 0 12px; font-size:12.5px; color:#77777e; line-height:1.5; }
.pcat-grid .prod-card-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:10px; border-top:1px solid #f2f2f5; }
.pcat-grid .prod-card-quote{ font-size:12.5px; font-weight:600; color:#c8102e; }
.pcat-grid .prod-card-go{ font-size:12.5px; font-weight:600; color:#1d1d1f; display:inline-flex; align-items:center; gap:4px; }
.pcat-grid .prod-card-go:hover{ color:#c8102e; }

.pcat-empty{ text-align:center; color:#77777e; padding:60px 20px; }
.pcat-empty i{ font-size:36px; color:#c8c8ce; }
.pcat-empty p{ margin:10px 0 14px; }
.pcat-reset{ border:1px solid #e0e0e5; background:#fff; padding:9px 18px; border-radius:22px; font-weight:600; cursor:pointer; }

@media(max-width:900px){
  .pcat-shell{ grid-template-columns:1fr; }
  .pcat-side{ position:fixed; z-index:70; left:0; top:0; bottom:0; width:280px; max-height:none; border-radius:0; transform:translateX(-100%); transition:transform .2s; box-shadow:0 0 40px rgba(0,0,0,.3); }
  .pcat-side.open{ transform:none; }
  .pcat-side-toggle{ display:inline-flex; }
}

/* ==========================================================================
   Category explorer (pex) — left category rail + right category panels
   (matches the nav mega-menu taxonomy). Reuses .pcat-grid card styles.
   ========================================================================== */
.pex{ background:#f7f7f9; }
.pex-hero{ position:relative; background:#0c0c10; color:#fff; overflow:hidden; padding:40px 0 34px; }
.pex-hero-bg{ position:absolute; inset:0; background:
   radial-gradient(900px 300px at 88% -30%, rgba(200,16,46,.4), transparent 60%),
   linear-gradient(180deg,#16161b,#0a0a0d); }
.pex-hero-bg::after{ content:""; position:absolute; inset:0; opacity:.22;
   background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px); background-size:42px 42px; -webkit-mask-image:linear-gradient(180deg,#000,transparent 82%); }
.pex-hero-inner{ position:relative; max-width:1240px; margin:0 auto; padding:0 24px; }
.pex-eyebrow{ font:600 12px/1 ui-monospace,Consolas,monospace; letter-spacing:.16em; text-transform:uppercase; color:#9a9aa4; display:flex; align-items:center; gap:9px; margin:0 0 12px; }
.pex-dot{ width:8px; height:8px; border-radius:50%; background:#2ec26b; box-shadow:0 0 0 4px rgba(46,194,107,.18); }
.pex-h1{ font-size:clamp(28px,4vw,42px); line-height:1.05; letter-spacing:-.02em; margin:0 0 10px; font-weight:800; }
.pex-lead{ max-width:640px; color:#c3c3cb; font-size:15px; line-height:1.6; margin:0; }

.pex-shell{ max-width:1240px; margin:0 auto; padding:24px 24px 70px; display:grid; grid-template-columns:288px 1fr; gap:30px; align-items:start; }

/* left category rail */
.pex-side{ position:sticky; top:80px; background:#fff; border:1px solid #e7e7ec; border-radius:14px; padding:12px; max-height:calc(100vh - 100px); overflow:auto; }
.pex-side-h{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#9a9aa4; margin:6px 8px 10px; }
.pex-cat{ width:100%; display:flex; align-items:center; gap:9px; text-align:left; background:none; border:0; border-radius:10px; padding:10px 11px; font-size:13.5px; font-weight:600; color:#3a3a40; cursor:pointer; line-height:1.3; }
.pex-cat-i{ font-size:17px; color:#a7a7ad; flex:none; }
.pex-cat span{ flex:1; min-width:0; }
.pex-cat em{ font-style:normal; font-size:11.5px; color:#a7a7ad; background:#f2f2f5; padding:1px 7px; border-radius:10px; }
.pex-cat-x{ font-size:15px; color:#c8c8ce; flex:none; opacity:0; }
.pex-cat:hover{ background:#f6f6f8; color:#c8102e; }
.pex-cat:hover .pex-cat-x{ opacity:1; }
.pex-cat.on{ background:#151519; color:#fff; }
.pex-cat.on .pex-cat-i,.pex-cat.on .pex-cat-x{ color:#fff; opacity:1; }
.pex-cat.on em{ color:#fff; background:rgba(255,255,255,.16); }

/* right main */
.pex-main{ min-width:0; }
.pex-toolbar{ display:flex; align-items:center; gap:14px; margin:0 0 22px; flex-wrap:wrap; }
.pex-count{ font-size:14px; color:#57575c; margin:0; }
.pex-count b{ color:#1d1d1f; font-size:16px; }
.pex-search{ position:relative; margin-left:auto; }
.pex-search i{ position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#9a9aa4; font-size:15px; }
.pex-search input{ width:250px; max-width:52vw; padding:10px 14px 10px 34px; border:1px solid #e0e0e5; border-radius:22px; font-size:13.5px; background:#fff; }
.pex-search input:focus{ outline:none; border-color:#c8102e; box-shadow:0 0 0 3px rgba(200,16,46,.1); }
.pex-side-toggle{ display:none; align-items:center; gap:6px; border:1px solid #e0e0e5; background:#fff; border-radius:22px; padding:10px 15px; font-size:13.5px; font-weight:600; cursor:pointer; }

/* category panels */
.pex-panel{ margin:0 0 38px; }
.pex-phead{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid #ececef; }
.pex-phead h2{ margin:0; font-size:21px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px; }
.pex-phead h2 i{ color:#c8102e; font-size:20px; }
.pex-pblurb{ margin:7px 0 0; font-size:13px; color:#77777e; line-height:1.5; max-width:720px; }
.pex-pn{ font-size:12px; font-weight:600; color:#9a9aa4; background:#f1f1f4; padding:4px 11px; border-radius:20px; white-space:nowrap; flex:none; margin-top:3px; }
.pex-brands{ display:flex; flex-wrap:wrap; gap:7px; margin:0 0 18px; }
.pex-brand{ border:1px solid #e0e0e5; background:#fff; color:#3a3a40; font-size:12.5px; font-weight:600; padding:6px 12px; border-radius:20px; cursor:pointer; }
.pex-brand em{ font-style:normal; color:#a7a7ad; font-size:11px; margin-left:3px; }
.pex-brand:hover{ border-color:#c8102e; color:#c8102e; }
.pex-brand.on{ background:#c8102e; border-color:#c8102e; color:#fff; }
.pex-brand.on em{ color:rgba(255,255,255,.75); }

.pex-empty{ text-align:center; color:#77777e; padding:60px 20px; }
.pex-empty i{ font-size:36px; color:#c8c8ce; }
.pex-empty p{ margin:10px 0 14px; }
.pex-reset{ border:1px solid #e0e0e5; background:#fff; padding:9px 18px; border-radius:22px; font-weight:600; cursor:pointer; }

@media(max-width:900px){
  .pex-shell{ grid-template-columns:1fr; }
  .pex-side{ position:fixed; z-index:70; left:0; top:0; bottom:0; width:300px; max-height:none; border-radius:0; transform:translateX(-100%); transition:transform .2s; box-shadow:0 0 40px rgba(0,0,0,.3); }
  .pex-side.open{ transform:none; }
  .pex-side-toggle{ display:inline-flex; }
  .pex-search{ margin-left:0; }
}

/* compare spec cells */
.cmp-na{ color:#c0c0c6; }
.cmp-yes{ display:inline-flex; align-items:center; gap:4px; color:#1f9d55; font-weight:600; }
.cmp-no{ display:inline-flex; align-items:center; gap:4px; color:#a7a7ad; }
.cmp-yes i,.cmp-no i{ font-size:15px; }
.cmp-fns{ display:flex; flex-wrap:wrap; gap:5px; }
.cmp-fn{ font-size:11.5px; background:#f1f1f4; color:#3a3a40; padding:2px 8px; border-radius:6px; line-height:1.5; }
/* compare: full-width group header (e.g. Special service functions) */
.cmp-group{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#c8102e; background:linear-gradient(90deg,#fdf0f2,#fff); padding:11px 12px; border-top:1px solid #f0d5da; border-bottom:1px solid #f3e2e5; margin-top:2px; }

/* compare: highlight rows where products differ */
.cmp-cell.cmp-diff{ background:#fff8f2; }
.cmp-rowlabel.cmp-diff{ background:#fff8f2; color:#b3122e; }
.cmp-diff-dot{ display:inline-block; width:6px; height:6px; border-radius:50%; background:#E8651A; margin-left:6px; vertical-align:middle; }

/* catalog hero → guided selector button */
.pex-guide-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;background:#fff;color:#c8102e;border:1.5px solid rgba(255,255,255,.85);border-radius:999px;padding:11px 20px;font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.12);transition:.15s}
.pex-guide-btn:hover{background:#c8102e;color:#fff;border-color:#c8102e;transform:translateY(-1px)}
.pex-guide-btn .ti-wand{font-size:17px}
