@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-cyrillic-400-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-cyrillic-500-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/source-serif-4-cyrillic-600-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-ext-600-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Color */
  --wa-ink: #1a1814;
  --wa-ink-soft: #3f3a32;
  --wa-muted: #5c574e;
  --wa-paper: #f4f1ea;
  --wa-surface: #fffdf8;
  --wa-line: #e4dfd4;
  --wa-line-strong: #d4cfc3;
  --wa-wash: #efeae0;
  --wa-accent: #0e4a52;
  --wa-accent-hover: #0a353b;
  --wa-on-accent: #fffdf8;
  --wa-warn: #9a4b12;
  --wa-danger: #9b1c1c;
  --wa-good: #1f6b4a;
  --wa-best: #e8f3ee;
  --wa-worst: #f8ece8;
  --wa-chip: #ece7dc;
  --wa-callout: #f3eee3;
  --wa-map-soft: #2a9d6e;
  --wa-map-moderate: #3d7a6a;
  --wa-map-medium: #c47a1a;
  --wa-map-hard: #9b1c1c;
  --wa-map-unknown: #9a958c;
  --wa-overlay: rgba(26, 24, 20, 0.4);
  --wa-disabled: 0.45;

  /* Spacing — 4pt grid. Named tokens for layout, numbered for components. */
  --wa-1: 4px;
  --wa-2: 8px;
  --wa-3: 12px;
  --wa-4: 16px;
  --wa-5: 20px;
  --wa-6: 24px;
  --wa-8: 32px;
  --wa-10: 40px;
  --wa-12: 48px;
  --wa-16: 64px;
  --wa-20: 80px;
  --wa-space: var(--wa-1);
  --wa-gutter: var(--wa-4);
  --wa-gutter-lg: var(--wa-8);
  --wa-stack: var(--wa-4);
  --wa-section-y: var(--wa-12);
  --wa-page-y: var(--wa-6);
  --wa-footer-y: var(--wa-12);
  --wa-footer-bottom: var(--wa-10);
  --wa-label-gap: var(--wa-2);
  --wa-control-pad-y: 10px;
  --wa-control-pad-x: var(--wa-4);
  --wa-textarea: 120px;
  --wa-select-caret: 16px;
  --wa-list-indent: var(--wa-5);

  /* Layout */
  --wa-prose: 720px;
  --wa-max: 1120px;
  --wa-max-wide: 1280px;
  --wa-form-max: 640px;
  --wa-header-h: 64px;
  --wa-sticky-h: 72px;
  --wa-card-min: 240px;
  --wa-filter-min: 160px;
  --wa-compare-col: 140px;
  --wa-adminbar: 32px;
  --wa-adminbar-sm: 46px;

  /* Type */
  --wa-font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --wa-display: "Source Serif 4", Charter, "Iowan Old Style", Palatino, Georgia, "Times New Roman", serif;
  --wa-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --wa-text-2xs: 11px;
  --wa-text-xs: 12px;
  --wa-text-caption: 13px;
  --wa-text-sm: 14px;
  --wa-text-md: 16px;
  --wa-text-lg: 18px;
  --wa-text-xl: 20px;
  --wa-text-2xl: 24px;
  --wa-text-3xl: clamp(32px, 4vw, 44px);
  --wa-text-display: clamp(28px, 3.2vw, 40px);
  --wa-text-stat: 40px;
  --wa-leading-tight: 1.2;
  --wa-leading: 1.55;
  --wa-leading-loose: 1.7;
  --wa-tracking: -0.02em;
  --wa-tracking-wide: 0.08em;

  /* Shape / elevation / motion */
  --wa-hairline: 1px;
  --wa-accent-bar: 3px;
  --wa-radius: 8px;
  --wa-radius-sm: 6px;
  --wa-radius-pill: 999px;
  --wa-shadow: 0 1px 0 rgba(26, 24, 20, 0.04);
  --wa-shadow-md: 0 12px 28px rgba(26, 24, 20, 0.08);
  --wa-shadow-up: 0 -8px 24px rgba(26, 24, 20, 0.06);
  --wa-duration: 160ms;
  --wa-ease: cubic-bezier(0.2, 0, 0, 1);

  /* Interaction / chrome */
  --wa-tap: 44px;
  --wa-chip-h: 32px;
  --wa-chip-pad-x: var(--wa-3);
  --wa-icon: 28px;
  --wa-dot: 10px;
  --wa-check: 18px;
  --wa-burger-w: 18px;
  --wa-burger-h: 2px;
  --wa-burger-gap: 6px;
  --wa-focus: 2px;
  --wa-underline: 3px;
  --wa-safe-top: env(safe-area-inset-top, 0px);
  --wa-safe-bottom: env(safe-area-inset-bottom, 0px);
  --wa-safe-left: env(safe-area-inset-left, 0px);
  --wa-safe-right: env(safe-area-inset-right, 0px);

  /* Z */
  --wa-z-base: 1;
  --wa-z-sticky: 20;
  --wa-z-header: 40;
  --wa-z-nav: 50;
  --wa-z-skip: 100;
}

/* Breakpoints (media queries cannot read custom properties):
   600  compact cards
   768  stacked compare / map labels off
   1100 burger + single column
*/

*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
::selection {
  background: color-mix(in srgb, var(--wa-accent) 18%, transparent);
  color: var(--wa-ink);
}
::placeholder { color: var(--wa-muted); opacity: 1; }
body {
  margin: 0;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--wa-paper);
  color: var(--wa-ink);
  font-family: var(--wa-font);
  font-size: var(--wa-text-md);
  line-height: var(--wa-leading);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; }
img { display: block; }
p { margin: 0 0 var(--wa-4); }
p:last-child { margin-bottom: 0; }
a {
  color: var(--wa-accent);
  text-underline-offset: var(--wa-underline);
  transition: color var(--wa-duration) var(--wa-ease);
}
a:hover { color: var(--wa-accent-hover); }
:focus-visible {
  outline: var(--wa-focus) solid var(--wa-accent);
  outline-offset: var(--wa-focus);
}
:disabled, [aria-disabled="true"] {
  opacity: var(--wa-disabled);
  cursor: not-allowed;
  pointer-events: none;
}
code, kbd {
  font-family: var(--wa-mono);
  font-size: 0.92em;
  background: var(--wa-chip);
  padding: 0.1em 0.35em;
  border-radius: var(--wa-radius-sm);
}
hr {
  border: 0;
  border-top: var(--wa-hairline) solid var(--wa-line);
  margin: var(--wa-8) 0;
}
figure { margin: 0; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }

.wa-container {
  width: 100%;
  max-width: var(--wa-max);
  margin-inline: auto;
  padding-left: max(var(--wa-gutter), var(--wa-safe-left));
  padding-right: max(var(--wa-gutter), var(--wa-safe-right));
}
.wa-container.wa-page--wide,
.wa-page--wide .wa-container { max-width: var(--wa-max-wide); }
.wa-main { flex: 1 0 auto; padding-bottom: var(--wa-12); }
.wa-page { padding-top: var(--wa-page-y); }
.wa-pagehead { margin-bottom: var(--wa-8); max-width: var(--wa-prose); }
.wa-lede { font-size: var(--wa-text-lg); color: var(--wa-ink-soft); margin: 0 0 var(--wa-4); line-height: var(--wa-leading); }
.wa-kicker {
  font-size: var(--wa-text-xs);
  letter-spacing: var(--wa-tracking-wide);
  text-transform: uppercase;
  color: var(--wa-muted);
  margin: 0 0 var(--wa-2);
}
.wa-muted { color: var(--wa-muted); }
.wa-note, .wa-disclosure, .wa-source, .wa-price-meta { font-size: var(--wa-text-sm); color: var(--wa-muted); }
.wa-price-meta.is-stale, .wa-missing { color: var(--wa-warn); }
.wa-section { margin-top: var(--wa-section-y); }
.wa-prose { max-width: var(--wa-prose); }
.wa-prose p { margin: 0 0 var(--wa-4); }
.wa-prose h2 { margin-top: var(--wa-8); }
.wa-prose ul, .wa-prose ol { padding-left: var(--wa-list-indent); margin: 0 0 var(--wa-4); }
.wa-prose li { margin: 0 0 var(--wa-2); }

h1, h2, h3, .wa-logo {
  font-family: var(--wa-display);
  font-weight: 600;
  letter-spacing: var(--wa-tracking);
  line-height: var(--wa-leading-tight);
}
h1 { font-size: var(--wa-text-3xl); margin: 0 0 var(--wa-3); }
h2 { font-size: var(--wa-text-2xl); margin: 0 0 var(--wa-3); }
h3 { font-size: var(--wa-text-xl); margin: 0 0 var(--wa-2); }

.wp-block-group.wa-header,
.wp-block-group.wa-footer {
  margin-block: 0;
  max-width: none;
}
.wp-block-group.wa-header > :where(:not(.alignfull)),
.wp-block-group.wa-footer > :where(:not(.alignfull)) {
  max-width: none;
}

.wa-header {
  position: sticky;
  top: 0;
  z-index: var(--wa-z-header);
  background: var(--wa-surface);
  border-top: var(--wa-accent-bar) solid var(--wa-accent);
  border-bottom: var(--wa-hairline) solid var(--wa-line);
  padding-top: var(--wa-safe-top);
}
.wa-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wa-4) var(--wa-6);
  min-height: var(--wa-header-h);
}
.wa-logo {
  color: var(--wa-ink);
  text-decoration: none;
  font-size: var(--wa-text-xl);
  display: inline-flex;
  align-items: center;
  gap: var(--wa-2);
  min-width: 0;
}
.wa-logo:hover { color: var(--wa-ink); }
.wa-mark {
  display: block;
  width: var(--wa-icon);
  height: var(--wa-icon);
  color: var(--wa-accent);
  flex-shrink: 0;
}
.wa-logo__text {
  font-family: var(--wa-display);
  font-weight: 600;
  letter-spacing: var(--wa-tracking);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 600px) {
  .wa-logo { font-size: var(--wa-text-lg); }
  .wa-logo__text { letter-spacing: -0.03em; }
}
.wa-nav { position: static; }
.wa-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wa-2) var(--wa-4);
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: flex-end;
}
.wa-nav a {
  color: var(--wa-ink-soft);
  text-decoration: none;
  font-size: var(--wa-text-sm);
  font-weight: 500;
  min-height: var(--wa-tap);
  display: inline-flex;
  align-items: center;
}
.wa-nav a:hover { color: var(--wa-ink); }
.wa-nav a[aria-current="page"] {
  color: var(--wa-ink);
  box-shadow: inset 0 calc(-1 * var(--wa-focus)) 0 var(--wa-accent);
}
.wa-nav__cta {
  font-weight: 500;
  color: var(--wa-accent) !important;
}
.wa-nav__cta:hover { color: var(--wa-accent-hover) !important; }
.wa-nav__cta[aria-current="page"] { color: var(--wa-ink) !important; }
.wa-nav__toggle {
  display: none;
  align-items: center;
  gap: var(--wa-2);
  min-height: var(--wa-tap);
  min-width: var(--wa-tap);
  padding: 0 var(--wa-3);
  border-radius: var(--wa-radius-sm);
  border: 0;
  background: transparent;
  color: var(--wa-ink);
  font: inherit;
  font-size: var(--wa-text-sm);
  font-weight: 500;
  cursor: pointer;
}
.wa-nav__toggle:hover,
.wa-nav.is-open .wa-nav__toggle { background: var(--wa-chip); }
.wa-nav__burger {
  display: block;
  width: var(--wa-burger-w);
  height: var(--wa-burger-h);
  background: currentColor;
  box-shadow: 0 calc(var(--wa-burger-gap) * -1) 0 currentColor, 0 var(--wa-burger-gap) 0 currentColor;
}

.wa-footer {
  flex-shrink: 0;
  border-top: var(--wa-hairline) solid var(--wa-line);
  padding: var(--wa-footer-y) 0 calc(var(--wa-footer-bottom) + var(--wa-safe-bottom));
  background: var(--wa-surface);
}
.wa-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--wa-8);
  margin: 0 0 var(--wa-6);
}
.wa-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.wa-footer a {
  display: inline-flex;
  align-items: center;
  min-height: var(--wa-tap);
}
.wa-footer .wa-logo { margin: 0 0 var(--wa-3); color: var(--wa-ink); }
.wa-footer .wa-btn { display: inline-flex; margin-top: var(--wa-2); text-decoration: none; }
.wa-footer .wa-disclosure { margin: 0; padding-bottom: var(--wa-2); }
.wa-footer .wa-kicker { margin-bottom: var(--wa-2); }

.wa-card, .wa-panel, .wa-buybox {
  background: var(--wa-surface);
  border: var(--wa-hairline) solid var(--wa-line);
  border-radius: var(--wa-radius);
  padding: var(--wa-5);
  box-shadow: var(--wa-shadow);
}
.wa-cards, .wa-measure-grid, .wa-tco {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--wa-card-min), 1fr));
  gap: var(--wa-4);
}
.wa-product-card { display: flex; flex-direction: column; gap: var(--wa-3); }
.wa-product-card__meta { display: flex; justify-content: space-between; gap: var(--wa-3); align-items: baseline; }
.wa-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wa-2);
  margin-top: var(--wa-4);
}
.wa-product-card .wa-actions { margin-top: auto; }

.wa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--wa-tap);
  padding: 0 var(--wa-4);
  border-radius: var(--wa-radius-sm);
  border: var(--wa-hairline) solid var(--wa-line);
  background: var(--wa-surface);
  color: var(--wa-ink);
  text-decoration: none;
  font: inherit;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  transition: background var(--wa-duration) var(--wa-ease), color var(--wa-duration) var(--wa-ease), border-color var(--wa-duration) var(--wa-ease);
}
.wa-btn:hover { color: var(--wa-ink); border-color: var(--wa-line-strong); background: var(--wa-wash); }
.wa-btn--primary { background: var(--wa-accent); color: var(--wa-on-accent); border-color: var(--wa-accent); }
.wa-btn--primary:hover { background: var(--wa-accent-hover); color: var(--wa-on-accent); border-color: var(--wa-accent-hover); }
.wa-btn--ghost { background: transparent; }
.wa-btn--ghost:hover { background: var(--wa-chip); }

.wa-chip, .wa-badge {
  display: inline-flex;
  align-items: center;
  min-height: var(--wa-chip-h);
  padding: 0 var(--wa-chip-pad-x);
  border-radius: var(--wa-radius-pill);
  background: var(--wa-chip);
  color: var(--wa-ink-soft);
  font-size: var(--wa-text-caption);
  text-decoration: none;
  line-height: 1;
  border: 0;
}
.wa-chip:hover { color: var(--wa-ink); background: var(--wa-wash); }
.wa-chips { display: flex; flex-wrap: wrap; gap: var(--wa-2); margin: var(--wa-4) 0; }
.wa-money-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wa-2);
  margin-top: var(--wa-6);
}
.wa-money-nav .wa-chip { min-height: var(--wa-tap); padding-inline: var(--wa-3); }

.wa-score { display: flex; align-items: baseline; gap: var(--wa-2); }
.wa-score__n { font-family: var(--wa-display); font-size: var(--wa-text-stat); line-height: 1; }
.wa-score__l { font-size: var(--wa-text-xs); color: var(--wa-muted); }

.wa-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  border: var(--wa-hairline) solid var(--wa-line);
  border-radius: var(--wa-radius);
  background: var(--wa-surface);
}
.wa-table { width: 100%; border-collapse: collapse; font-size: var(--wa-text-sm); }
.wa-table th, .wa-table td {
  padding: var(--wa-3) var(--wa-4);
  text-align: left;
  border-bottom: var(--wa-hairline) solid var(--wa-line);
  vertical-align: top;
}
.wa-table thead th { background: var(--wa-wash); font-weight: 600; }
.wa-table--compare thead th:first-child,
.wa-table--compare tbody th {
  position: sticky;
  left: 0;
  background: var(--wa-surface);
  z-index: var(--wa-z-base);
  min-width: var(--wa-compare-col);
}
.wa-table .is-best { background: var(--wa-best); }
.wa-table .is-worst { background: var(--wa-worst); }

.wa-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wa-4); }
label { display: flex; flex-direction: column; gap: var(--wa-label-gap); font-size: var(--wa-text-sm); }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="image"]),
select,
textarea {
  font: inherit;
  line-height: var(--wa-leading);
  padding-top: var(--wa-control-pad-y);
  padding-bottom: var(--wa-control-pad-y);
  padding-left: var(--wa-control-pad-x);
  padding-right: var(--wa-control-pad-end, var(--wa-control-pad-x));
  border: var(--wa-hairline) solid var(--wa-line);
  border-radius: var(--wa-radius-sm);
  background-color: var(--wa-surface);
  min-height: var(--wa-tap);
  width: 100%;
  color: var(--wa-ink);
  -webkit-appearance: none;
  appearance: none;
}
select {
  background-image: linear-gradient(45deg, transparent 50%, var(--wa-muted) 50%), linear-gradient(135deg, var(--wa-muted) 50%, transparent 50%);
  background-position: calc(100% - var(--wa-select-caret)) 50%, calc(100% - 11px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: var(--wa-8);
}
textarea { min-height: var(--wa-textarea); resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: var(--wa-line-strong); }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--wa-accent); }
input[type="number"] { -moz-appearance: textfield; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.wa-tabs { display: flex; gap: var(--wa-2); margin-bottom: var(--wa-4); flex-wrap: wrap; }
.wa-tabs button {
  border: 0;
  background: transparent;
  border-bottom: var(--wa-focus) solid transparent;
  padding: var(--wa-2) var(--wa-1);
  font: inherit;
  cursor: pointer;
  color: var(--wa-muted);
  min-height: var(--wa-tap);
}
.wa-tabs button.is-active { color: var(--wa-ink); border-bottom-color: var(--wa-accent); }
.wa-checks { display: grid; gap: var(--wa-2); border: 0; padding: 0; margin: 0; }
.wa-checks label { flex-direction: row; align-items: center; min-height: var(--wa-tap); gap: var(--wa-2); }
.wa-checks input {
  width: var(--wa-check);
  height: var(--wa-check);
  min-height: var(--wa-check);
  padding: 0;
  accent-color: var(--wa-accent);
  appearance: auto;
}
.wa-advisor { display: grid; gap: var(--wa-5); }
.wa-details { margin-top: var(--wa-4); }
.wa-details summary,
details summary {
  cursor: pointer;
  min-height: var(--wa-tap);
  display: flex;
  align-items: center;
  font-weight: 500;
}
details { margin-top: var(--wa-3); }

.wa-hero { padding: var(--wa-12) 0 var(--wa-8); }
.wa-hero h1 { max-width: 22ch; }

/* Billboard home — one composition, full-bleed atmosphere */
.wa-billboard {
  position: relative;
  isolation: isolate;
  min-height: min(88vh, 720px);
  display: flex;
  align-items: flex-end;
  padding: var(--wa-16) 0 var(--wa-12);
  overflow: hidden;
  color: var(--wa-on-accent);
  background: var(--wa-accent);
}
.wa-billboard__wash {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(ellipse 90% 70% at 78% 18%, color-mix(in srgb, #7ec8c4 38%, transparent), transparent 58%),
    radial-gradient(ellipse 70% 55% at 12% 88%, color-mix(in srgb, #0a353b 55%, transparent), transparent 60%),
    linear-gradient(165deg, #125a63 0%, var(--wa-accent) 42%, #072f34 100%);
  animation: wa-billboard-drift 18s var(--wa-ease) infinite alternate;
}
.wa-billboard__wash::after {
  content: "";
  position: absolute;
  inset: -10% -5%;
  background:
    radial-gradient(circle at 30% 40%, color-mix(in srgb, #fff 8%, transparent) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 60%, color-mix(in srgb, #fff 6%, transparent) 0 1.5px, transparent 2.5px);
  background-size: 48px 48px, 72px 72px;
  opacity: 0.35;
  pointer-events: none;
}
.wa-billboard__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--wa-max);
  animation: wa-rise 700ms var(--wa-ease) both;
}
.wa-billboard__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--wa-3);
  margin: 0 0 var(--wa-5);
  font-family: var(--wa-display);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 600;
  letter-spacing: var(--wa-tracking);
  line-height: var(--wa-leading-tight);
  color: var(--wa-on-accent);
}
.wa-billboard__brand .wa-mark { color: color-mix(in srgb, var(--wa-on-accent) 88%, #7ec8c4); flex-shrink: 0; }
.wa-billboard__title {
  max-width: 16ch;
  margin: 0 0 var(--wa-4);
  font-size: clamp(36px, 5.5vw, 56px);
  color: var(--wa-on-accent);
}
.wa-billboard__lede {
  max-width: 42ch;
  margin: 0 0 var(--wa-6);
  font-size: var(--wa-text-lg);
  line-height: var(--wa-leading);
  color: color-mix(in srgb, var(--wa-on-accent) 86%, transparent);
}
.wa-billboard .wa-hero-form {
  margin-top: 0;
  max-width: min(100%, 560px);
  gap: var(--wa-3);
}
.wa-billboard .wa-hero-form input {
  border-color: transparent;
  box-shadow: var(--wa-shadow-md);
}
.wa-billboard .wa-btn--primary {
  background: var(--wa-on-accent);
  color: var(--wa-accent);
  border-color: var(--wa-on-accent);
}
.wa-billboard .wa-btn--primary:hover {
  background: #fff;
  color: var(--wa-accent-hover);
  border-color: #fff;
}
.wa-billboard .wa-field-locate__btn { color: var(--wa-accent); }
.wa-billboard .wa-locate-status { color: color-mix(in srgb, var(--wa-on-accent) 80%, transparent); }
.wa-billboard__alt { margin: var(--wa-3) 0 0; font-size: var(--wa-text-sm); }
.wa-billboard__alt a { color: color-mix(in srgb, var(--wa-on-accent) 92%, transparent); }
.wa-billboard__alt a:hover { color: #fff; }

.wa-path__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--wa-4);
  counter-reset: wa-path;
}
.wa-path__steps li {
  position: relative;
  padding: var(--wa-4) var(--wa-4) var(--wa-4) calc(var(--wa-10) + var(--wa-2));
  border-left: var(--wa-accent-bar) solid var(--wa-accent);
  background: var(--wa-surface);
  border-radius: 0 var(--wa-radius) var(--wa-radius) 0;
  counter-increment: wa-path;
}
.wa-path__steps li::before {
  content: counter(wa-path);
  position: absolute;
  left: var(--wa-4);
  top: var(--wa-4);
  font-family: var(--wa-display);
  font-size: var(--wa-text-xl);
  color: var(--wa-accent);
  line-height: 1;
}
.wa-path__steps strong { display: block; margin-bottom: var(--wa-1); }

@keyframes wa-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes wa-billboard-drift {
  from { transform: scale(1); }
  to { transform: scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  .wa-billboard__wash { animation: none; }
  .wa-billboard__inner { animation: none; }
}

.wa-hero-form {
  display: flex;
  gap: var(--wa-2);
  max-width: var(--wa-form-max);
  margin: var(--wa-6) 0 var(--wa-3);
  align-items: stretch;
}
.wa-hero-form .wa-field-locate { flex: 1; min-width: 0; }
.wa-hero-form .wa-btn { flex-shrink: 0; }

.wa-field-locate {
  position: relative;
  width: 100%;
  --wa-control-pad-end: calc(36px + var(--wa-3));
}
.wa-field-locate input {
  width: 100%;
}
.wa-field-locate__btn {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0 var(--wa-radius-sm) var(--wa-radius-sm) 0;
  background: transparent;
  color: var(--wa-accent);
  cursor: pointer;
  line-height: 0;
  transform: none;
}
.wa-field-locate__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  /* keep full-height hit target without shifting the glyph */
}
.wa-field-locate__btn svg {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transform-origin: 50% 50%;
  pointer-events: none;
}
.wa-field-locate__btn:hover { background: var(--wa-chip); color: var(--wa-accent-hover); }
.wa-field-locate__btn:disabled { opacity: var(--wa-disabled); cursor: wait; }
.wa-field-locate__btn.is-busy svg { animation: wa-locate-spin 0.9s linear infinite; }
@keyframes wa-locate-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .wa-field-locate__btn.is-busy svg { animation: none; }
}

.wa-locate-status {
  font-size: var(--wa-text-sm);
  color: var(--wa-muted);
  margin: 0 0 var(--wa-3);
  max-width: 48ch;
}
.wa-locate-status[hidden] { display: none !important; }
.wa-hero-links { display: flex; flex-wrap: wrap; gap: var(--wa-3); margin-top: var(--wa-4); }
.wa-trust-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--wa-4);
  margin-top: var(--wa-8);
  padding-top: var(--wa-6);
  border-top: var(--wa-hairline) solid var(--wa-line);
}
.wa-trust-strip p { margin: 0; font-size: var(--wa-text-sm); color: var(--wa-ink-soft); }
.wa-hero-product {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr;
  gap: var(--wa-8);
  align-items: start;
}
.wa-buybox { position: sticky; top: calc(var(--wa-header-h) + var(--wa-4) + var(--wa-safe-top)); }
.wa-offers { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--wa-3); }
.wa-offers li { display: grid; gap: var(--wa-2); }
.wa-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wa-4); margin-top: var(--wa-4); }
.wa-dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--wa-3) var(--wa-6); }
.wa-dl div { border-top: var(--wa-hairline) solid var(--wa-line); padding-top: var(--wa-2); }
.wa-dl dt { font-size: var(--wa-text-xs); color: var(--wa-muted); }
.wa-dl dd { margin: 0; }
.wa-measure-val { font-family: var(--wa-display); font-size: var(--wa-text-display); margin: var(--wa-1) 0 var(--wa-2); }
.wa-callout { background: var(--wa-callout); border-radius: var(--wa-radius); padding: var(--wa-4) var(--wa-5); }
.wa-callout p { margin: 0 0 var(--wa-2); }
.wa-callout p:last-child { margin-bottom: 0; }
.wa-price {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--wa-1);
  margin: var(--wa-2) 0 var(--wa-4);
}
.wa-price__now { font-size: var(--wa-text-display); font-family: var(--wa-display); font-weight: 600; line-height: 1.15; }
.wa-price__range { font-size: var(--wa-text-sm); color: var(--wa-muted); max-width: 36ch; }
.wa-crumbs { font-size: var(--wa-text-caption); color: var(--wa-muted); margin-bottom: var(--wa-4); line-height: 1.5; overflow-wrap: anywhere; }
.wa-list { padding-left: var(--wa-list-indent); margin: 0 0 var(--wa-4); }
.wa-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wa-3);
  align-items: end;
  margin-bottom: var(--wa-6);
}
.wa-filters label { min-width: var(--wa-filter-min); }
.wa-citylist { columns: 2; list-style: none; padding: 0; margin: 0; }
.wa-citylist li { margin: 0 0 var(--wa-2); break-inside: avoid; }

.wa-map {
  margin: 0 0 var(--wa-8);
  background: var(--wa-surface);
  border: var(--wa-hairline) solid var(--wa-line);
  border-radius: var(--wa-radius);
  overflow: hidden;
}
.wa-map__canvas {
  width: 100%;
  height: min(480px, 70vh);
  min-height: 280px;
  background: var(--wa-wash);
  z-index: var(--wa-z-base);
}
.wa-map--osm .leaflet-container {
  font: inherit;
  background: var(--wa-wash);
}
.wa-map--osm .leaflet-popup-content {
  margin: var(--wa-3) var(--wa-4);
  line-height: var(--wa-leading);
  color: var(--wa-ink);
}
.wa-map--osm .leaflet-popup-content a { color: var(--wa-accent); }
.wa-map svg { display: block; width: 100%; height: auto; }
.wa-map a { text-decoration: none; }
.wa-map a:hover .wa-map__dot { stroke: var(--wa-ink); stroke-width: var(--wa-focus); }
.wa-map__label { font-size: var(--wa-text-2xs); fill: var(--wa-ink-soft); font-family: var(--wa-font); }
.wa-map__dot--soft { fill: var(--wa-map-soft); }
.wa-map__dot--moderate { fill: var(--wa-map-moderate); }
.wa-map__dot--medium { fill: var(--wa-map-medium); }
.wa-map__dot--hard { fill: var(--wa-map-hard); }
.wa-map__dot--unknown { fill: var(--wa-map-unknown); }
.wa-map figcaption {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wa-3) var(--wa-4);
  padding: var(--wa-3) var(--wa-4);
  border-top: var(--wa-hairline) solid var(--wa-line);
  font-size: var(--wa-text-sm);
  color: var(--wa-muted);
}
.wa-map-legend { display: inline-flex; align-items: center; gap: var(--wa-2); }
.wa-map-legend i {
  width: var(--wa-dot);
  height: var(--wa-dot);
  border-radius: 50%;
  display: inline-block;
}
.wa-map-legend .soft { background: var(--wa-map-soft); }
.wa-map-legend .moderate { background: var(--wa-map-moderate); }
.wa-map-legend .medium { background: var(--wa-map-medium); }
.wa-map-legend .hard { background: var(--wa-map-hard); }
.wa-map-legend .unknown { background: var(--wa-map-unknown); }

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.skip-link {
  position: absolute;
  left: max(var(--wa-4), var(--wa-safe-left));
  top: calc(-1 * var(--wa-10));
  z-index: var(--wa-z-skip);
  background: var(--wa-accent);
  color: var(--wa-on-accent);
  padding: var(--wa-2) var(--wa-3);
  border-radius: var(--wa-radius-sm);
  text-decoration: none;
}
.skip-link:focus { top: calc(var(--wa-2) + var(--wa-safe-top)); color: var(--wa-on-accent); }

.wa-compare-stack { display: none; }
.wa-compare-stack__row h2 { font-size: var(--wa-text-md); margin: 0 0 var(--wa-2); }
.wa-compare-stack__row ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--wa-2); }
.wa-compare-stack__row li {
  display: flex;
  justify-content: space-between;
  gap: var(--wa-3);
  padding: var(--wa-2) var(--wa-3);
  border-radius: var(--wa-radius-sm);
  background: var(--wa-callout);
}
.wa-compare-stack__row li.is-best { background: var(--wa-best); }
.wa-compare-stack__row li.is-worst { background: var(--wa-worst); }
.wa-compare-stack__row strong { text-align: right; }

.wa-sticky-cta { display: none; }

@media (min-width: 1101px) {
  :root {
    --wa-gutter: var(--wa-gutter-lg);
    --wa-page-y: var(--wa-8);
  }
}

@media (max-width: 1100px) {
  :root { --wa-section-y: var(--wa-8); }
  .wa-hero-product, .wa-split, .wa-grid-3, .wa-dl, .wa-footer__grid, .wa-trust-strip { grid-template-columns: 1fr; }
  .wa-hero-form { flex-direction: column; gap: var(--wa-3); }
  .wa-hero-form .wa-field-locate,
  .wa-hero-form .wa-btn { width: 100%; }
  .wa-billboard { min-height: auto; align-items: flex-start; padding: var(--wa-10) 0 var(--wa-8); }
  .wa-billboard__title { font-size: clamp(28px, 8vw, 40px); }
  .wa-billboard__brand { font-size: clamp(22px, 6vw, 32px); }
  .wa-nav__toggle { display: inline-flex; }
  .wa-nav ul {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--wa-surface);
    border-bottom: var(--wa-hairline) solid var(--wa-line);
    padding: var(--wa-2) max(var(--wa-gutter), var(--wa-safe-left)) var(--wa-3) max(var(--wa-gutter), var(--wa-safe-right));
    flex-direction: column;
    gap: 0;
    z-index: var(--wa-z-nav);
    min-width: 0;
    box-shadow: var(--wa-shadow-md);
  }
  .wa-nav ul a { display: flex; align-items: center; min-height: var(--wa-tap); }
  .wa-nav.is-open ul { display: flex; }
  .wa-buybox { position: static; }
  .wa-citylist { columns: 1; }
  body.wa-route-product .wa-main { padding-bottom: calc(var(--wa-sticky-h) + var(--wa-8) + var(--wa-safe-bottom)); }
  body.wa-route-product .wa-footer { padding-bottom: calc(var(--wa-footer-bottom) + var(--wa-sticky-h) + var(--wa-safe-bottom)); }
  .wa-sticky-cta {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--wa-z-sticky);
    background: var(--wa-surface);
    border-top: var(--wa-hairline) solid var(--wa-line);
    padding: var(--wa-3) max(var(--wa-gutter), var(--wa-safe-left)) calc(var(--wa-3) + var(--wa-safe-bottom)) max(var(--wa-gutter), var(--wa-safe-right));
    gap: var(--wa-3);
    align-items: center;
    justify-content: space-between;
    box-shadow: var(--wa-shadow-up);
  }
  .wa-sticky-cta span { font-size: var(--wa-text-sm); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .wa-sticky-cta .wa-btn { flex-shrink: 0; }
}

@media (max-width: 768px) {
  .wa-compare-desktop { display: none; }
  .wa-compare-stack { display: grid; gap: var(--wa-3); }
  .wa-hero { padding: var(--wa-8) 0 var(--wa-6); }
  .wa-map__label { display: none; }
}

@media (max-width: 600px) {
  .wa-table--compare td, .wa-table--compare th { min-width: var(--wa-compare-col); }
  .wa-cards, .wa-measure-grid, .wa-tco { grid-template-columns: 1fr; }
  .wa-dl { grid-template-columns: 1fr; }
}

@media screen and (min-width: 783px) {
  body.admin-bar .wa-header { top: var(--wa-adminbar); }
  body.admin-bar .wa-buybox { top: calc(var(--wa-adminbar) + var(--wa-header-h) + var(--wa-4)); }
}
@media screen and (max-width: 782px) {
  body.admin-bar .wa-header { top: var(--wa-adminbar-sm); }
}

@media print {
  .wa-header, .wa-footer, .wa-sticky-cta, .wa-nav__toggle, .skip-link { display: none !important; }
  body { background: #fff; color: #000; display: block; }
  a { color: inherit; }
  .wa-card, .wa-panel, .wa-buybox { box-shadow: none; }
}

@media (prefers-contrast: more) {
  :root {
    --wa-line: #b7b1a4;
    --wa-muted: #3f3a32;
  }
}

/* Methodology / trust page */
.wa-methodology .wa-pagehead { margin-bottom: var(--wa-6); }
.wa-toc {
  background: var(--wa-surface);
  border: var(--wa-hairline) solid var(--wa-line);
  border-radius: var(--wa-radius);
  padding: var(--wa-4) var(--wa-5);
  margin: 0 0 var(--wa-8);
  max-width: var(--wa-prose);
}
.wa-toc ol {
  margin: var(--wa-2) 0 0;
  padding-left: var(--wa-list-indent);
  columns: 2;
  column-gap: var(--wa-6);
}
.wa-toc li { break-inside: avoid; margin: 0 0 var(--wa-2); }
.wa-toc a { text-underline-offset: 0.15em; }
.wa-flow {
  list-style: none;
  margin: 0 0 var(--wa-8);
  padding: 0;
  display: grid;
  gap: var(--wa-3);
  max-width: 52rem;
}
.wa-flow li {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: var(--wa-3);
  row-gap: var(--wa-1);
  padding: var(--wa-3) var(--wa-4);
  background: var(--wa-surface);
  border-left: 3px solid var(--wa-accent);
  border-radius: 0 var(--wa-radius) var(--wa-radius) 0;
}
.wa-flow__n {
  grid-row: 1 / span 2;
  align-self: center;
  width: 1.75rem;
  height: 1.75rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--wa-accent);
  color: var(--wa-on-accent);
  font-size: var(--wa-text-sm);
  font-weight: 600;
}
.wa-flow strong { grid-column: 2; }
.wa-flow span:last-child { grid-column: 2; color: var(--wa-muted); font-size: var(--wa-text-sm); }
.wa-callout--limit {
  border: var(--wa-hairline) solid color-mix(in srgb, var(--wa-warn, #c47a1a) 35%, var(--wa-line));
  background: color-mix(in srgb, var(--wa-callout) 88%, #f6e7c8);
}
.wa-callout--limit h2 { margin-top: 0; font-size: var(--wa-text-xl); }
.wa-glossary {
  display: grid;
  gap: var(--wa-3);
  margin: 0 0 var(--wa-6);
}
.wa-glossary dt { font-weight: 600; margin: 0; }
.wa-glossary dd { margin: 0; color: var(--wa-muted); }
.wa-table--weights td:nth-child(2) { white-space: nowrap; }
.wa-trust-line {
  font-size: var(--wa-text-sm);
  color: var(--wa-muted);
  margin: 0 0 var(--wa-3);
  max-width: 56ch;
}
.wa-score-note {
  font-size: var(--wa-text-xs);
  color: var(--wa-muted);
  margin: calc(var(--wa-1) * -1) 0 var(--wa-2);
}
.wa-chips--reasons { margin: var(--wa-2) 0 var(--wa-3); }
.wa-chips--reasons .wa-chip {
  cursor: default;
  font-size: var(--wa-text-xs);
  min-height: 1.75rem;
}
@media (max-width: 700px) {
  .wa-toc ol { columns: 1; }
  .wa-flow li { grid-template-columns: auto 1fr; }
}
