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

/* ==========================================================================
   TorqueBarn — industrial workshop / instrument-gauge design system
   Palette: graphite steel + high-vis amber. Type: Barlow Condensed / Barlow.
   ========================================================================== */

:root{
  --ink:#12151b;
  --graphite:#171b23;
  --graphite-2:#1e232d;
  --steel:#2a313d;
  --steel-line:#374050;

  --paper:#eef1f5;
  --paper-2:#e4e8ee;
  --card:#ffffff;

  --amber:#ff8a1f;
  --amber-2:#ffab3d;
  --amber-deep:#e56f00;
  --hi:#ffd23d;

  --text:#161a22;
  --muted:#5d6a7a;
  --muted-2:#8592a3;
  --line:#d9dee6;

  --ok:#1f9d55;
  --bad:#d64545;

  --font-display:'Barlow Condensed',Impact,sans-serif;
  --font-body:'Barlow','Segoe UI',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;

  --radius:14px;
  --radius-sm:9px;
  --maxw:1200px;
  --shadow:0 1px 2px rgba(18,21,27,.06),0 8px 24px rgba(18,21,27,.08);
  --shadow-lg:0 24px 60px -18px rgba(18,21,27,.35);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper);
  line-height:1.6;
  font-size:16px;
  overflow-x:hidden;
  background-image:
    linear-gradient(rgba(23,27,35,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(23,27,35,.028) 1px,transparent 1px);
  background-size:26px 26px;
  background-position:center top;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.02;letter-spacing:.01em;margin:0}
p{margin:0 0 1em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;width:100%}

/* section heading shared */
.section-head{max-width:640px;margin:0 auto 34px;text-align:center}
.section-head h2{font-size:clamp(30px,4.4vw,46px);text-transform:uppercase;letter-spacing:.02em}
.section-head p{color:var(--muted);font-size:17px;margin:10px 0 0}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--amber-deep);margin-bottom:14px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--amber);display:inline-block}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================ HEADER / NAV ================================ */
.dz-header{
  position:sticky;top:0;z-index:80;
  background:rgba(18,21,27,.92);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--steel-line);
  color:#fff;
}
.dz-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.6}
.dz-header__inner{
  max-width:var(--maxw);margin:0 auto;padding:12px 22px;
  display:flex;align-items:center;gap:20px;
}
.dz-brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.dz-brand__logo{width:40px;height:40px;object-fit:cover;background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.dz-brand__name{
  font-family:var(--font-display);font-weight:800;font-size:25px;letter-spacing:.03em;
  text-transform:uppercase;color:#fff;line-height:1;
}
.dz-brand__name b{color:var(--amber);font-weight:800}
.dz-brand__gauge{display:none}
.dz-gauge-mini{width:34px;height:19px}
.dz-gauge-mini__track{fill:none;stroke:var(--steel-line);stroke-width:3}
.dz-gauge-mini__fill{fill:none;stroke:var(--amber);stroke-width:3;stroke-dasharray:50;stroke-dashoffset:14}
.dz-gauge-mini__hub{fill:var(--amber)}

/* search in header */
.dz-header__search{margin-left:auto;flex:0 1 340px;display:flex;position:relative}
.dz-header__search input{
  width:100%;padding:10px 40px 10px 16px;border-radius:999px;
  border:1px solid var(--steel-line);background:rgba(255,255,255,.06);color:#fff;
  font-family:var(--font-body);font-size:14px;outline:none;transition:.25s var(--ease);
}
.dz-header__search input::placeholder{color:#8f9bab}
.dz-header__search input:focus{border-color:var(--amber);background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(255,138,31,.18)}
.dz-header__search button{
  position:absolute;right:5px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border:none;border-radius:50%;background:var(--amber);color:#12151b;
  cursor:pointer;display:grid;place-items:center;font-size:15px;transition:.2s
}
.dz-header__search button:hover{background:var(--hi)}

.dz-nav__list{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.dz-nav__link{
  display:block;padding:9px 14px;border-radius:8px;font-weight:600;font-size:14px;
  letter-spacing:.02em;color:#d3dae4;text-transform:uppercase;transition:.2s var(--ease);position:relative
}
.dz-nav__link:hover{color:#fff;background:rgba(255,255,255,.07)}
.dz-nav__link--cta{background:var(--amber);color:#12151b}
.dz-nav__link--cta:hover{background:var(--hi);color:#12151b}

/* mobile nav toggle */
.dz-nav-toggle{position:relative}
.dz-nav-toggle__btn{list-style:none;display:none;cursor:pointer;padding:8px;border-radius:8px}
.dz-nav-toggle__btn::-webkit-details-marker{display:none}
.dz-nav-toggle__bar{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:.3s}
.dz-nav-toggle[open] .dz-nav-toggle__bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.dz-nav-toggle[open] .dz-nav-toggle__bar:nth-child(2){opacity:0}
.dz-nav-toggle[open] .dz-nav-toggle__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:860px){
  .dz-header__inner{flex-wrap:wrap}
  .dz-header__search{order:3;flex:1 1 100%;margin-left:0}
  .dz-nav-toggle{margin-left:auto;order:2;position:static}
  .dz-nav-toggle__btn{display:block}
  .dz-nav{
    position:absolute;top:100%;right:22px;left:22px;z-index:90;
    background:var(--graphite-2);border:1px solid var(--steel-line);border-radius:12px;
    padding:8px;box-shadow:var(--shadow-lg);
  }
  .dz-nav__list{flex-direction:column;gap:2px}
  .dz-nav__link{padding:12px 14px}
}

/* ============================ HERO (index) =============================== */
.dz-hero-lab{
  position:relative;color:#fff;overflow:hidden;
  background:radial-gradient(120% 120% at 78% 0%,#242b38 0%,#12151b 55%);
  padding:0;
}
.dz-hero-bg-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.20;filter:grayscale(.3) contrast(1.05);mix-blend-mode:luminosity;
}
.dz-hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(18,21,27,.55),rgba(18,21,27,.92)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 46px);
}
/* corner gauge deco */
.dz-hero-gauge{position:absolute;right:-90px;top:50%;transform:translateY(-50%);width:420px;height:420px;opacity:.5;pointer-events:none}
.dz-gauge-ring{position:absolute;inset:0;border-radius:50%;border:2px dashed rgba(255,138,31,.35);animation:spin 60s linear infinite}
.dz-gauge-ring-inner{position:absolute;inset:44px;border-radius:50%;border:2px solid rgba(255,255,255,.08)}
.dz-gauge-needle{position:absolute;left:50%;bottom:50%;width:3px;height:44%;background:linear-gradient(var(--amber),transparent);transform-origin:bottom center;transform:rotate(38deg);border-radius:3px;animation:needle 5s var(--ease) infinite alternate}
.dz-gauge-hub{position:absolute;left:50%;top:50%;width:16px;height:16px;background:var(--amber);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px var(--amber)}
.dz-gauge-ticks span{position:absolute;left:50%;top:50%;width:2px;height:10px;background:rgba(255,255,255,.25);transform-origin:0 130px}
.dz-gauge-ticks span:nth-child(1){transform:rotate(-90deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(2){transform:rotate(-54deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(3){transform:rotate(-18deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(4){transform:rotate(18deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(5){transform:rotate(54deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(6){transform:rotate(90deg) translateX(-1px)}
.dz-gauge-ticks span:nth-child(7){transform:rotate(126deg) translateX(-1px)}

.dz-hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:78px 22px 88px}
.dz-hero-logo-wrap{display:none}
.dz-hero-eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);
  font-size:12px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--amber);border:1px solid rgba(255,138,31,.4);border-radius:999px;
  padding:7px 14px;margin-bottom:24px;background:rgba(255,138,31,.08)
}
.dz-hero-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber);animation:pulse 2s infinite}
.dz-hero-headline{
  font-size:clamp(42px,7vw,84px);line-height:.95;text-transform:uppercase;
  max-width:16ch;letter-spacing:.005em
}
.dz-hero-headline span{display:block}
.dz-hero-prefix{color:#fff}
.dz-hero-highlight{color:var(--amber);position:relative;width:max-content}
.dz-hero-highlight::after{content:"";position:absolute;left:0;bottom:.08em;width:100%;height:.09em;background:var(--hi);border-radius:2px;transform:scaleX(0);transform-origin:left;animation:wipe 1s var(--ease) .6s forwards}
.dz-hero-suffix{color:#fff}
.dz-hero-subtitle{max-width:52ch;color:#c2cbd7;font-size:clamp(16px,2vw,19px);margin:22px 0 0}
.dz-hero-underline{display:none}

/* hero search */
.dz-hero-search{margin-top:30px;max-width:560px;display:flex;gap:10px}
.dz-hero-search input{
  flex:1;padding:15px 20px;border-radius:12px;border:1px solid var(--steel-line);
  background:rgba(255,255,255,.07);color:#fff;font-size:16px;font-family:var(--font-body);outline:none;transition:.25s
}
.dz-hero-search input::placeholder{color:#95a1b1}
.dz-hero-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,138,31,.2)}
.dz-hero-search button{
  padding:15px 30px;border:none;border-radius:12px;background:var(--amber);color:#12151b;
  font-family:var(--font-display);font-weight:800;font-size:17px;text-transform:uppercase;letter-spacing:.04em;
  cursor:pointer;transition:.2s var(--ease)
}
.dz-hero-search button:hover{background:var(--hi);transform:translateY(-2px)}

.dz-hero-stats{display:flex;flex-wrap:wrap;gap:14px 34px;margin-top:34px}
.dz-hero-stat{display:flex;flex-direction:column}
.dz-hero-stat b{font-family:var(--font-display);font-size:34px;color:#fff;line-height:1}
.dz-hero-stat b em{color:var(--amber);font-style:normal}
.dz-hero-stat span{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#95a1b1;margin-top:5px}
.dz-hero-stat+.dz-hero-stat{padding-left:34px;border-left:1px solid var(--steel-line)}

/* ============================ AFFILIATE DISCLOSURE ======================= */
.aff-disc{
  display:flex;align-items:center;gap:12px;margin:26px 0 0;padding:14px 18px;
  background:#fff8ef;border:1px solid #ffd9ac;
  border-radius:10px;font-size:14px;color:#7a5a32
}
.aff-ic{width:24px;height:24px;background:var(--amber);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:13px;flex-shrink:0}
main.wrap{padding-top:8px;padding-bottom:60px}
main.wrap>section,main.wrap>.filter-bar,main.wrap>.tb-toolbar{margin-top:64px}

/* ============================ EDITOR'S TOP PICKS ========================= */
.dz-picks{margin-top:64px}
.dz-picks__head{max-width:640px;margin:0 auto 36px;text-align:center}
.dz-picks__title{font-size:clamp(30px,4.4vw,46px);text-transform:uppercase}
.dz-picks__sub{color:var(--muted);font-size:17px;margin:10px 0 0}
.tp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tp-card{
  position:relative;background:var(--graphite);color:#fff;border-radius:var(--radius);
  border:1px solid var(--steel-line);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s
}
.tp-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--amber)}
.tp-card--1{border-color:rgba(255,138,31,.5)}
.tp-card__rank{
  position:absolute;top:0;left:0;z-index:3;
  font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:.06em;
  color:#12151b;background:var(--amber);padding:6px 18px 6px 12px;text-transform:uppercase;
  clip-path:polygon(0 0,100% 0,84% 100%,0 100%)
}
.tp-card--1 .tp-card__rank{background:var(--hi)}
.tp-card__media{position:relative;aspect-ratio:16/11;background:#fff;overflow:hidden}
.tp-card__media img{width:100%;height:100%;object-fit:cover;padding:0;transition:transform .5s var(--ease)}
.tp-card:hover .tp-card__media img{transform:scale(1.06)}
.tp-card__score{
  position:absolute;right:12px;bottom:12px;width:56px;height:56px;border-radius:50%;
  background:conic-gradient(var(--amber) var(--p,90%),rgba(255,255,255,.15) 0);
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.3)
}
.tp-card__score i{width:44px;height:44px;border-radius:50%;background:var(--graphite);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:15px;color:#fff;font-style:normal}
.tp-card__body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.tp-card__cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.tp-card__name{font-size:22px;line-height:1.05;margin:8px 0 12px;text-transform:uppercase;color:#fff}
.tp-card__name a:hover{color:var(--amber)}
.tp-card__feat{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:7px}
.tp-card__feat li{font-size:14px;color:#c2cbd7;padding-left:20px;position:relative}
.tp-card__feat li::before{content:"";position:absolute;left:0;top:8px;width:9px;height:9px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg)}
.tp-card__cta{
  margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px;border-radius:9px;background:var(--amber);color:#12151b;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:16px;
  transition:.2s var(--ease)
}
.tp-card__cta:hover{background:var(--hi);gap:12px}

/* legacy podium fallback */
.dz-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.dz-podium__slot{background:var(--graphite);color:#fff;border-radius:var(--radius);padding:0 0 18px;overflow:hidden;border:1px solid var(--steel-line);position:relative}
.dz-podium__imgwrap{display:block;background:#fff;aspect-ratio:16/11}
.dz-podium__imgwrap img{width:100%;height:100%;object-fit:contain;padding:20px}
.dz-podium__body{padding:0 18px}
.dz-podium__cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin:14px 0 6px}
.dz-podium__name{font-size:20px;text-transform:uppercase;line-height:1.05}
.dz-podium__cta{display:inline-block;margin-top:12px;padding:11px 18px;background:var(--amber);color:#12151b;border-radius:9px;font-family:var(--font-display);font-weight:800;text-transform:uppercase}
.dz-badge-rank{position:absolute;top:0;left:0;z-index:3;background:var(--amber);color:#12151b;font-family:var(--font-display);font-weight:800;padding:6px 16px 6px 12px;clip-path:polygon(0 0,100% 0,84% 100%,0 100%)}

/* ============================ SHOP BY CATEGORY (new) ==================== */
.tb-cats{margin-top:64px}
.tb-cats__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.tb-cat{
  display:flex;flex-direction:column;gap:10px;padding:20px 16px;border-radius:var(--radius);
  background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;
  transition:.28s var(--ease);position:relative;overflow:hidden;font-family:inherit
}
.tb-cat::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--amber);transition:width .3s var(--ease)}
.tb-cat:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--amber)}
.tb-cat:hover::after{width:100%}
.tb-cat__ic{width:44px;height:44px;border-radius:11px;background:linear-gradient(140deg,var(--graphite),var(--steel));display:grid;place-items:center;font-size:22px}
.tb-cat__name{font-family:var(--font-display);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.01em;line-height:1.05;color:var(--text)}
.tb-cat__count{font-family:var(--font-mono);font-size:12px;color:var(--muted)}

/* ============================ COMPARE TABLE ============================= */
.compare-section{margin-top:64px}
.compare-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);background:var(--card)}
.compare-table{width:100%;border-collapse:collapse;min-width:760px}
.compare-table thead th{
  background:var(--graphite);color:#fff;font-family:var(--font-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:13px;text-align:left;padding:15px 16px;white-space:nowrap
}
.compare-table tbody tr{border-top:1px solid var(--line);cursor:pointer;transition:background .18s}
.compare-table tbody tr:hover{background:#fff6ec}
.compare-table td{padding:15px 16px;vertical-align:middle;font-size:15px}
.compare-table td:first-child{font-size:22px;text-align:center;width:64px}
.compare-name{font-family:var(--font-display);font-weight:700;font-size:17px;line-height:1.1;text-transform:uppercase;letter-spacing:.01em}
.compare-table .cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.compare-bar{height:6px;border-radius:4px;background:var(--paper-2);margin-top:7px;overflow:hidden;width:120px}
.compare-bar-fill{height:100%;background:linear-gradient(90deg,var(--amber-deep),var(--amber));border-radius:4px;transition:width 1.1s var(--ease)}
.compare-table a{color:var(--amber-deep);font-weight:700;white-space:nowrap}
.compare-table a:hover{text-decoration:underline}

/* ============================ FILTER BAR / SEARCH ======================= */
.tb-toolbar{margin-top:64px}
.tb-listing-search{position:relative;max-width:520px;margin:0 auto 20px}
.tb-listing-search input{
  width:100%;padding:14px 46px 14px 18px;border-radius:12px;border:1px solid var(--line);
  background:var(--card);font-size:15px;font-family:var(--font-body);outline:none;transition:.2s;box-shadow:var(--shadow)
}
.tb-listing-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,138,31,.18)}
.tb-listing-search .ic{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--muted)}

.filter-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 30px;padding:16px 18px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)
}
.filter-bar label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.filter-select{
  font-family:var(--font-body);font-size:14px;padding:9px 14px;border-radius:9px;border:1px solid var(--line);
  background:var(--paper);color:var(--text);cursor:pointer;outline:none;transition:.2s
}
.filter-select:focus{border-color:var(--amber)}
.filter-reset{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:9px 18px;border:1px solid var(--steel);background:var(--graphite);color:#fff;border-radius:9px;cursor:pointer;transition:.2s
}
.filter-reset:hover{background:var(--amber);color:#12151b;border-color:var(--amber)}
.filter-results{margin-left:auto;font-family:var(--font-mono);font-size:13px;color:var(--muted);font-weight:700}

/* ============================ LISTING GRID / CARDS ====================== */
.dz-listing{margin-top:0}
.dz-grid,.pg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dz-item{
  display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;position:relative
}
.dz-item::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--amber);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);z-index:2}
.dz-item:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--amber)}
.dz-item:hover::before{transform:scaleX(1)}
.dz-item-media{background:#fff;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid var(--line)}
.dz-item-img{width:100%;height:100%;object-fit:cover;padding:0;transition:transform .5s var(--ease)}
.dz-item:hover .dz-item-img{transform:scale(1.07)}
.dz-item-body{padding:18px;display:flex;flex-direction:column;flex:1}
.dz-item-cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep);font-weight:700}
.dz-item-name{font-size:19px;line-height:1.08;margin:8px 0 12px;text-transform:uppercase;letter-spacing:.005em;min-height:2.1em}
.dz-item:hover .dz-item-name{color:var(--amber-deep)}
.dz-item-highlights{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:6px}
.dz-highlight{font-size:13.5px;color:var(--muted);padding-left:19px;position:relative}
.dz-highlight::before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg)}
/* rating gauge on card */
.dz-item .dz-gauge{margin-top:auto;display:flex;align-items:center;gap:12px}
.dz-gauge-dial{
  --pct:90%;width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:conic-gradient(var(--amber) var(--pct),var(--paper-2) 0);
  display:grid;place-items:center;position:relative
}
.dz-gauge-fill{display:none}
.dz-gauge-center{width:34px;height:34px;border-radius:50%;background:var(--card);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line)}
.dz-gauge-value{font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--text)}
.dz-gauge-dial::after{content:"RATING";position:absolute;left:56px;white-space:nowrap;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--muted)}

/* pagination */
#pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:38px}
.page-btn{
  min-width:42px;padding:10px 14px;border:1px solid var(--line);background:var(--card);border-radius:9px;
  font-family:var(--font-display);font-weight:700;font-size:15px;cursor:pointer;transition:.18s;color:var(--text)
}
.page-btn:hover{border-color:var(--amber);color:var(--amber-deep)}
.page-btn.active{background:var(--amber);border-color:var(--amber);color:#12151b}
.page-btn.disabled{opacity:.4;cursor:default;pointer-events:none}

/* ============================ STATS BAND ================================ */
.dz-stats{margin-top:64px}
.dz-stats-band{
  display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--steel-line);
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--steel-line)
}
.dz-stat-item{background:var(--graphite);color:#fff;padding:30px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.dz-stat-number{font-family:var(--font-display);font-weight:800;font-size:42px;line-height:1;color:var(--amber)}
.dz-stat-unit{font-size:.5em;color:#95a1b1}
.dz-stat-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#95a1b1}
.dz-stat-badge{font-family:var(--font-display);font-weight:800;font-size:22px;text-transform:uppercase;color:#fff}
.dz-stat-item svg.dz-gauge{width:52px;height:52px}
.dz-stat-item .dz-gauge-track{fill:none;stroke:rgba(255,255,255,.14);stroke-width:4}
.dz-stat-item .dz-gauge-fill{display:block;fill:none;stroke:var(--amber);stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dasharray 1.4s var(--ease)}

/* ============================ FAQ ====================================== */
.dz-faq-section{margin-top:64px}
.dz-faq-intro{max-width:640px;margin:0 auto 30px;text-align:center;position:relative}
.dz-faq-title{font-size:clamp(30px,4.4vw,46px);text-transform:uppercase}
.dz-faq-sub{color:var(--muted);font-size:17px;margin:10px 0 0}
.dz-faq-intro .dz-gauge-badge{display:none}
.dz-faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.dz-faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s}
.dz-faq-item[open]{border-color:var(--amber)}
.dz-faq-q{
  cursor:pointer;list-style:none;padding:18px 22px;font-family:var(--font-display);font-weight:700;font-size:19px;
  text-transform:uppercase;letter-spacing:.01em;display:flex;justify-content:space-between;align-items:center;gap:16px
}
.dz-faq-q::-webkit-details-marker{display:none}
.dz-faq-q::after{content:"+";font-size:26px;color:var(--amber);transition:transform .25s;font-family:var(--font-body);line-height:1}
.dz-faq-item[open] .dz-faq-q::after{transform:rotate(45deg)}
.dz-faq-a{padding:0 22px 20px;color:var(--muted);font-size:15px}
.dz-faq-a p{margin:0}

/* ============================ FOOTER =================================== */
.dz-footer{background:var(--ink);color:#c2cbd7;margin-top:80px;position:relative}
.dz-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--amber-deep),var(--amber),var(--hi))}
.dz-footer-inner{max-width:var(--maxw);margin:0 auto;padding:54px 22px 30px}
.dz-footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.dz-footer-brand{max-width:420px}
.dz-footer-logo{width:52px;height:52px;object-fit:cover;background:#fff;border-radius:12px;margin-bottom:14px}
.dz-footer-desc{font-size:14.5px;line-height:1.7;color:#95a1b1;margin:0}
.dz-footer-links{display:flex;flex-direction:column;gap:12px}
.dz-footer-link{font-family:var(--font-mono);font-size:13px;letter-spacing:.05em;color:#c2cbd7;transition:.2s}
.dz-footer-link:hover{color:var(--amber);padding-left:5px}
.dz-footer-divider{height:1px;background:var(--steel-line);margin:34px 0 20px}
.dz-footer-disclosure{font-size:12.5px;line-height:1.6;color:#6c7889;max-width:860px;margin:0 0 18px}
.dz-footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.dz-footer-copy{font-size:13px;color:#6c7889;margin:0}
.dz-footer-gauge{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6c7889}
.dz-footer-gauge-arc{width:26px;height:14px;border:2px solid var(--steel-line);border-bottom:none;border-radius:26px 26px 0 0;position:relative}
.dz-footer-gauge-arc::after{content:"";position:absolute;left:50%;bottom:0;width:2px;height:11px;background:var(--amber);transform-origin:bottom;transform:translateX(-50%) rotate(28deg)}
.dz-footer-gauge-needle{display:none}

/* ============================ COOKIE BANNER ============================ */
#cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:120;max-width:560px;margin:0 auto;
  background:var(--graphite);color:#fff;border:1px solid var(--steel-line);border-radius:14px;
  padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;box-shadow:var(--shadow-lg)
}
html:not(.cookie-ask) #cookie-banner{display:none}
#cookie-banner p{margin:0;font-size:14px}
#cookie-banner a{color:var(--amber)}
.cookie-btns{display:flex;gap:8px}
.cookie-btns button{padding:9px 18px;border-radius:8px;border:none;cursor:pointer;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:14px}
#cookie-accept{background:var(--amber);color:#12151b}
#cookie-decline{background:transparent;color:#c2cbd7;border:1px solid var(--steel-line)}

/* ============================ AD PLACEMENT ============================= */
.ad-placement{margin:64px 0 0}
.ad-placement-inner{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.ad-unit{min-height:0}

/* ========================================================================
   PRODUCT PAGE
   ======================================================================== */
.product-lab-report{max-width:960px;margin:26px auto 0}
.lr-panel{
  background:var(--graphite);color:#fff;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--steel-line);padding:0
}
.dz-hero--lab{background:radial-gradient(120% 140% at 85% 0%,#242b38,#171b23);padding:34px 34px 26px}
.dz-hero__grid{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.dz-hero__meta{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.dz-hero__category{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#12151b;background:var(--amber);padding:5px 11px;border-radius:6px;font-weight:700}
.dz-hero__brand{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#95a1b1}
.dz-hero__name{font-size:clamp(26px,4vw,40px);line-height:1;text-transform:uppercase;color:#fff}
.lr-panel .dz-hero__tagline{color:#c2cbd7;margin:14px 0 0;font-size:16px;max-width:52ch}
.dz-hero__bracket{display:flex;gap:6px;margin-top:18px}
.dz-hero__bolt{width:9px;height:9px;border-radius:50%;background:var(--steel-line)}
.dz-hero__bolt:first-child{background:var(--amber)}

/* hero score gauge (semi ring) */
.dz-gauge--hero{position:relative;width:150px;height:96px;text-align:center}
.dz-gauge--hero .dz-gauge__svg{width:150px;height:90px}
.dz-gauge__track{fill:none;stroke:rgba(255,255,255,.14);stroke-width:8;stroke-linecap:round}
.dz-gauge__fill{fill:none;stroke:var(--amber);stroke-width:8;stroke-linecap:round;transition:stroke-dasharray 1.4s var(--ease)}
.dz-gauge__value{position:absolute;left:0;right:0;top:38px;font-family:var(--font-mono)}
.dz-gauge__num{font-size:34px;font-weight:700;color:#fff}
.dz-gauge__pct{font-size:16px;color:var(--amber)}
.dz-gauge__label{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#95a1b1;margin-top:2px}

.product .rating{padding:0 34px;margin:18px 0 0;color:var(--amber);font-family:var(--font-mono);font-weight:700;font-size:18px}
.score-bar-wrap{padding:14px 34px 30px}
.score-bar-label{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#95a1b1;margin-bottom:8px}
.score-bar-track{height:10px;background:rgba(255,255,255,.1);border-radius:6px;overflow:hidden}
.score-bar-fill{height:100%;background:linear-gradient(90deg,var(--amber-deep),var(--amber),var(--hi));border-radius:6px}

.lr-body{background:var(--card);color:var(--text);padding:34px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;padding:0;cursor:pointer;transition:.25s var(--ease)}
.gallery img:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(18,21,27,.18)}
.gallery img.gallery-main{grid-column:1/-1;aspect-ratio:4/3;padding:0;object-fit:cover;cursor:default}

.verdict-box{
  background:linear-gradient(140deg,#fff6ec,#fff);border:1px solid #ffd9ac;
  border-radius:12px;padding:22px 24px;margin-bottom:28px
}
.verdict-label{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--amber-deep);font-size:15px;margin-bottom:8px}
.verdict-text{font-size:16px;line-height:1.7}

.dz-spec-section{margin:0 0 28px}
.dz-spec-title,.product h2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:26px;margin:0 0 18px;letter-spacing:.01em}
.dz-spec-gauge-wrap{display:none}
.dz-spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.dz-spec-card{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:15px 16px;display:flex;flex-direction:column;gap:6px}
.dz-spec-chip{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.dz-spec-value{font-family:var(--font-display);font-weight:700;font-size:18px}

ul.clean{list-style:none;padding:0;margin:0 0 26px}
ul.clean li{padding:9px 0 9px 26px;position:relative;border-bottom:1px solid var(--line);font-size:15px}
ul.clean li::before{content:"";position:absolute;left:2px;top:15px;width:9px;height:9px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg)}

.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 28px}
.chip{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.chip h3{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:20px;margin:0 0 14px}
.chip:first-child h3{color:var(--ok)}
.chip:last-child h3{color:var(--bad)}
.chip ul.clean{margin:0}
.chip ul.clean li{border-bottom:none;padding:6px 0;color:var(--text)}
.chip ul.clean li::before{content:none;display:none}

/* buybox */
.dz-buybox{margin:0 0 26px}
.dz-buybox__inner{
  background:var(--graphite);color:#fff;border:1px solid var(--steel-line);border-radius:14px;
  padding:26px;display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center
}
.dz-buybox .dz-buybox__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin:0 0 6px}
.dz-buybox__name{font-size:22px;text-transform:uppercase;line-height:1.05;margin:0 0 14px;color:#fff}
.dz-buybox__trust{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:7px}
.dz-buybox__trust-item{font-size:13.5px;color:#c2cbd7;padding-left:22px;position:relative}
.dz-buybox__trust-item::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);transform:rotate(45deg)}
.dz-gauge--buybox{width:112px;height:112px;position:relative;display:grid;place-items:center;justify-self:end}
.dz-gauge--buybox .dz-gauge__svg{width:112px;height:112px;transform:rotate(-90deg)}
.dz-gauge--buybox .dz-gauge__track{stroke:rgba(255,255,255,.12);stroke-width:8}
.dz-gauge--buybox .dz-gauge__fill{stroke:var(--amber);stroke-width:8;transition:stroke-dasharray 1.4s var(--ease)}
.dz-gauge--buybox .dz-gauge__label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0}
.dz-gauge--buybox .dz-gauge__num{font-family:var(--font-mono);font-size:30px;font-weight:700;color:#fff}
.dz-gauge--buybox .dz-gauge__den{font-family:var(--font-mono);font-size:13px;color:#95a1b1}
.dz-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.dz-btn--filled,.dz-buybox__cta{
  grid-column:1/-1;width:100%;padding:16px;border-radius:11px;background:var(--amber);color:#12151b;font-size:18px;transition:.2s var(--ease)
}
.dz-buybox__cta:hover{background:var(--hi);transform:translateY(-2px)}
.dz-buybox .dz-buybox__micro{grid-column:1/-1;text-align:center;font-size:12px;color:#95a1b1;margin:0}
.cta-disclosure{font-size:13px;color:var(--muted);text-align:center;margin:0 0 26px}

.product p{font-size:16px;line-height:1.75;color:#2c333d}
.review{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:16px 18px;margin:0 0 14px;font-size:15px}
.review strong{font-family:var(--font-display);font-weight:700;font-size:17px;text-transform:uppercase}

/* related */
.related-section{margin-top:64px;padding-bottom:10px}
.featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.related-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s var(--ease);display:flex;flex-direction:column}
.related-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--amber)}
.featured-img{background:#fff;aspect-ratio:4/3;border-bottom:1px solid var(--line);overflow:hidden}
.featured-img img{width:100%;height:100%;object-fit:cover;padding:0;transition:transform .5s var(--ease)}
.related-card:hover .featured-img img{transform:scale(1.07)}
.featured-body{padding:16px}
.featured-title{font-family:var(--font-display);font-weight:700;font-size:17px;text-transform:uppercase;line-height:1.1;margin-bottom:8px}
.featured-body .cat{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep)}
.featured-body .rating{font-family:var(--font-mono);font-size:13px;color:var(--muted);margin-top:6px;padding:0}

/* ============================ KEYFRAMES =============================== */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes needle{0%{transform:rotate(-40deg)}100%{transform:rotate(52deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes wipe{to{transform:scaleX(1)}}

/* ============================ RESPONSIVE ============================== */
@media(max-width:980px){
  .tp-grid,.dz-podium{grid-template-columns:1fr 1fr}
  .tb-cats__grid{grid-template-columns:repeat(3,1fr)}
  .dz-stats-band{grid-template-columns:repeat(3,1fr)}
  .featured-grid{grid-template-columns:1fr 1fr}
  .dz-grid,.pg-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .dz-hero__grid{grid-template-columns:1fr}
  .dz-hero__gaugewrap{justify-self:start}
  .dz-buybox__inner{grid-template-columns:1fr;text-align:left}
  .dz-gauge--buybox{justify-self:start}
  .cols{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .lr-body,.dz-hero--lab{padding:22px}
}
@media(max-width:600px){
  .tp-grid,.dz-podium,.dz-grid,.pg-grid,.tb-cats__grid,.featured-grid,.dz-stats-band{grid-template-columns:1fr}
  .dz-hero-stat+.dz-hero-stat{padding-left:0;border-left:none}
  .dz-hero-inner{padding:56px 22px 64px}
  .dz-hero-search{flex-direction:column}
  .filter-results{margin-left:0;width:100%}
}
