@font-face {
  font-family: Manrope;
  src: url("./assets/fonts/manrope-400.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("./assets/fonts/manrope-500.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("./assets/fonts/manrope-600.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("./assets/fonts/manrope-700.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("./assets/fonts/manrope-800.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
:root {
  --bg: #fff;
  --surface: #f5f5f0;
  --ink: #202924;
  --muted: #68716b;
  --line: #e1e5df;
  --accent: #ee713b;
  --accent-hover: #db5b25;
  --dark: #243a30;
  --radius: 20px;
  --font: Manrope, Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 108px;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.6;
}
body.modal-open {
  overflow: hidden;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
textarea {
  font: inherit;
}
button,
a,
input,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: 0.55;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
svg {
  display: block;
}
h1,
h2,
h3,
h4,
p {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  line-height: 1.16;
}
h1,
h2 {
  font-weight: 600;
  letter-spacing: -0.055em;
}
h2 {
  font-size: clamp(34px, 3.5vw, 49px);
}
h3 {
  font-size: 20px;
  letter-spacing: -0.035em;
}
em {
  font-style: normal;
  color: #7a8877;
}
strong {
  font-weight: 700;
}
[hidden] {
  display: none !important;
}
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 5px;
}
.container {
  width: min(1280px, calc(100% - 96px));
  margin-inline: auto;
}
.section {
  padding-block: 104px;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 40px;
}
.section-heading > p {
  max-width: 400px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}
.section-heading > p strong {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 20px;
}
.muted {
  color: var(--muted);
}
.live-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  flex-shrink: 0;
  background: #708b56;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #708b5610;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  min-height: 56px;
  padding: 16px 24px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  transition:
    background 0.18s,
    transform 0.18s,
    color 0.18s;
}
.button span[aria-hidden] {
  font-size: 21px;
  line-height: 1;
}
.button:hover {
  transform: translateY(-2px);
}
.primary {
  background: var(--accent);
  color: #19251d;
}
.primary:hover {
  background: var(--accent-hover);
  color: #fff;
}
.secondary {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
}
.secondary:hover {
  background: var(--surface);
}
.dark {
  background: var(--dark);
  color: #fff;
}
.small {
  min-height: 44px;
  padding: 11px 17px;
  gap: 20px;
  font-size: 12px;
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-weight: 650;
  font-size: 13px;
  text-decoration: underline;
  text-decoration-color: #b9c1b8;
  text-underline-offset: 6px;
}
.text-link:hover {
  color: var(--accent-hover);
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 24px;
  background: #fff;
  padding: 16px;
  z-index: 100;
}
.skip-link:focus {
  top: 10px;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 88px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.brand-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 42px;
  gap: 4px;
}
.brand-mark i {
  display: block;
  width: 7px;
  height: 27px;
  background: var(--dark);
  border-radius: 5px;
  transform: skew(-18deg);
}
.brand-mark i:nth-child(2) {
  height: 38px;
  background: var(--accent);
}
.brand strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.04em;
}
.brand-rf {
  color: var(--muted);
}
.brand small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-top: 3px;
}
.desktop-nav {
  display: flex;
  gap: 24px;
  font-size: 12px;
  font-weight: 600;
}
.desktop-nav a:hover {
  color: var(--accent-hover);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}
.phone strong {
  font-size: 15px;
  letter-spacing: -0.04em;
}
.phone span {
  display: block;
  text-align: right;
  font-size: 10px;
  color: var(--muted);
}
.hero {
  display: grid;
  grid-template-columns: 1.06fr 1fr;
  gap: 56px;
  align-items: center;
  padding-block: 56px 48px;
}
.hero-copy {
  padding: 20px 0;
}
.hero h1 {
  font-size: clamp(42px, 4.8vw, 68px);
  line-height: 1.07;
}
.hero .lead {
  max-width: 460px;
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 24px;
}
.cta-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 32px;
}
.microcopy {
  font-size: 11px;
  color: var(--muted);
  margin-top: 17px;
}
.microcopy > span {
  color: #5b7658;
  margin-right: 6px;
}
.hero-product {
  background: var(--surface);
  border: 1px solid #edeee7;
  border-radius: 24px;
  padding: 24px 28px 18px;
  overflow: hidden;
}
.product-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.product-top .eyebrow {
  margin: 0;
  font-size: 9px;
}
.pill {
  font-size: 10px;
  padding: 5px 10px;
  border: 1px solid #dbe0d5;
  border-radius: 20px;
  white-space: nowrap;
}
.hero-photo {
  height: 310px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
}
.hero-photo img {
  height: 95%;
  width: auto;
  object-fit: contain;
  mix-blend-mode: multiply;
  position: relative;
  z-index: 1;
}
.product-watermark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: 235px;
  line-height: 1;
  color: #e5e8df;
  font-weight: 800;
  letter-spacing: -0.08em;
}
.photo-note {
  position: absolute;
  right: 0;
  bottom: 16px;
  z-index: 2;
  background: #ffffffed;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 8px 10px;
  font-size: 9px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.photo-note .live-dot {
  width: 5px;
  height: 5px;
}
.hero-model {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hero-model .muted {
  font-size: 10px;
}
.hero-model h2 {
  font-size: 32px;
  letter-spacing: -0.05em;
  margin-top: 4px;
}
.round-link {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid #cbd2c5;
  border-radius: 50%;
  font-size: 23px;
}
.round-link:hover {
  background: var(--accent);
}
.hero-specs {
  display: grid;
  grid-template-columns: 1.1fr 0.8fr 1.15fr;
  gap: 14px;
  border-top: 1px solid #dbe0d5;
  padding-top: 16px;
  margin-top: 16px;
}
.hero-specs strong {
  font-size: 18px;
  white-space: nowrap;
  letter-spacing: -0.045em;
}
.hero-specs strong small {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0;
}
.hero-specs > div:last-child strong {
  font-size: 13px;
}
.hero-specs span {
  display: block;
  color: var(--muted);
  font-size: 9px;
  margin-top: 2px;
}
.sample-caption {
  color: var(--muted);
  font-size: 9px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e0e4da;
  line-height: 1.6;
}
.benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding-block: 26px;
  gap: 32px;
}
.benefits > div {
  display: flex;
  gap: 18px;
  align-items: center;
}
.benefits > div + div {
  border-left: 1px solid var(--line);
  padding-left: 32px;
}
.benefit-icon {
  font-size: 11px;
  color: #8a957e;
}
.benefits strong {
  display: block;
  font-size: 13px;
}
.benefits p > span {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-top: 4px;
}
.use-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.use-card {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  transition:
    background 0.2s,
    border-color 0.2s;
}
.use-card:hover {
  background: var(--surface);
  border-color: #a5b198;
}
.use-index {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 10px;
}
.use-index > span {
  font-size: 20px;
}
.use-card svg {
  height: 56px;
  width: 56px;
  fill: none;
  stroke: #677d63;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  margin-block: 24px;
}
.use-card h3 {
  font-size: 18px;
}
.use-card p {
  font-size: 12px;
  line-height: 1.8;
  color: var(--muted);
  margin-top: 12px;
  margin-bottom: 24px;
}
.use-bottom {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 10px;
  font-weight: 650;
}
.section-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 28px;
  color: var(--muted);
  font-size: 12px;
}
.section-foot .text-link {
  color: var(--ink);
  font-size: 12px;
}
.quiz-section {
  padding-block: 88px;
  background: var(--surface);
  scroll-margin-top: 0;
}
.quiz-shell {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 20px;
  align-items: stretch;
}
.quiz-aside {
  padding: 32px;
  background: #e8ece1;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
}
.quiz-aside .eyebrow {
  font-size: 9px;
  margin-bottom: 14px;
}
.quiz-aside h3 {
  font-size: 22px;
  line-height: 1.25;
}
.quiz-aside ol {
  padding: 0;
  list-style: none;
  font-size: 11px;
  line-height: 1.7;
  margin: 22px 0 12px;
  counter-reset: quiz;
}
.quiz-aside li {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}
.quiz-aside li:before {
  content: "✓";
  color: #607955;
}
.quiz-aside-photo {
  position: relative;
  margin-top: auto;
  padding-top: 12px;
}
.quiz-aside-photo img {
  width: 180px;
  height: 175px;
  object-fit: contain;
  margin: auto;
  mix-blend-mode: multiply;
}
.quiz-aside-photo > span {
  display: block;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  margin-top: 12px;
}
.quiz-aside-photo small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  font-weight: 400;
}
.quiz-help {
  border-top: 1px solid #cfd7c5;
  margin-top: 24px;
  padding-top: 18px;
  font-size: 10px;
}
.quiz-help > span {
  display: block;
  color: var(--muted);
  margin-bottom: 6px;
}
.quiz-help > a {
  font-size: 14px;
  font-weight: 700;
}
.quiz-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 36px 40px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  scroll-margin-top: 104px;
}
.quiz-progress {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  gap: 12px;
  margin-bottom: 32px;
}
.quiz-time {
  font-size: 10px;
  font-weight: 400;
  color: var(--muted);
}
.quiz-progress-bar {
  width: 100%;
  height: 3px;
  background: #edf0e9;
  border-radius: 4px;
  overflow: hidden;
}
.quiz-progress-bar i {
  display: block;
  width: 20%;
  height: 100%;
  background: var(--accent);
  transition: width 0.25s;
}
.quiz-stage {
  flex: 1;
}
.quiz-question h3 {
  font-size: 28px;
  line-height: 1.25;
  outline: none;
}
.quiz-question p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 10px;
  max-width: 550px;
}
.quiz-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 26px;
}
.quiz-option {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px 16px;
  min-height: 65px;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink);
  transition:
    background 0.15s,
    border-color 0.15s;
}
.quiz-option:before {
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  border: 1px solid #bcc5b8;
  border-radius: 50%;
}
.quiz-option:hover {
  background: var(--surface);
  border-color: #a1af96;
}
.quiz-option.is-selected {
  background: #f1f4ec;
  border-color: #819777;
}
.quiz-option.is-selected:before {
  border: 5px solid var(--dark);
}
.quiz-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.quiz-nav .primary {
  margin-left: auto;
  min-width: 170px;
}
.quiz-nav .button {
  font-size: 12px;
  min-height: 49px;
  padding: 13px 20px;
}
.quiz-error,
.form-status.is-error {
  color: #a3331c;
  font-size: 12px;
  margin-top: 16px;
}
.quiz-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 28px;
}
.field-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 8px;
}
.quiz-input-wrap {
  position: relative;
  display: block;
}
.quiz-input-wrap input {
  padding-right: 55px;
}
.quiz-input-wrap > span {
  position: absolute;
  right: 18px;
  top: 17px;
  font-size: 14px;
  color: var(--muted);
}
input:not([type="checkbox"]),
textarea {
  display: block;
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  border: 1px solid #cfd6c9;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  outline-offset: 2px;
}
input::placeholder,
textarea::placeholder {
  color: #90998e;
}
input:focus,
textarea:focus {
  border-color: #839777;
}
input[aria-invalid="true"] {
  border-color: #af351f;
}
.preset-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.preset {
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--surface);
  font-size: 11px;
  color: var(--ink);
}
.preset:hover {
  border-color: #8b9e7f;
}
.unknown-option {
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--muted);
  cursor: pointer;
}
.unknown-option input,
.consent input {
  accent-color: var(--dark);
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}
.temperature-field {
  max-width: 340px;
  margin-top: 28px;
}
.input-hint {
  font-size: 11px;
  color: var(--muted);
  margin-top: 16px;
}
.is-result {
  grid-template-columns: 1fr;
}
.is-result .quiz-aside {
  display: none;
}
.is-result .quiz-card {
  padding: 40px;
}
.result-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 22px;
}
.result-heading h3 {
  font-size: 32px;
  max-width: 550px;
}
.result-heading p {
  font-size: 13px;
  color: var(--muted);
  max-width: 570px;
  margin-top: 12px;
}
.result-number {
  background: var(--surface);
  border-radius: 10px;
  padding: 20px 28px;
  flex-shrink: 0;
  text-align: right;
}
.result-number strong {
  font-size: 36px;
  letter-spacing: -0.06em;
  display: block;
  line-height: 1.1;
}
.result-number small {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
}
.result-number > span {
  font-size: 10px;
  color: var(--muted);
}
.result-summary {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.result-summary span {
  font-size: 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 5px 9px;
}
.result-models {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}
.result-caveat {
  font-size: 11px;
  color: var(--muted);
  margin-top: 20px;
  max-width: 850px;
}
.no-models {
  background: var(--surface);
  border-radius: 12px;
  padding: 28px;
  margin-top: 24px;
}
.no-models p {
  margin-top: 10px;
  font-size: 13px;
  color: var(--muted);
}
.catalog-toolbar {
  margin-bottom: 28px;
}
.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.filter {
  border: 1px solid var(--line);
  background: #fff;
  padding: 11px 16px;
  border-radius: 7px;
  font-size: 12px;
  color: var(--muted);
}
.filter span {
  margin-left: 6px;
  font-size: 10px;
  opacity: 0.75;
}
.filter.is-active {
  color: #fff;
  border-color: var(--dark);
  background: var(--dark);
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.model-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
}
.model-photo {
  position: relative;
  display: grid;
  place-items: center;
  background: #f6f7f3;
  height: 250px;
  padding: 32px 24px 16px;
}
.model-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.model-kind {
  position: absolute;
  top: 14px;
  left: 16px;
  font-size: 9px;
  color: #63705e;
  z-index: 1;
}
.photo-placeholder {
  width: 100%;
  height: 100%;
  min-height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  color: #8c9785;
  font-size: 11px;
  border: 1px dashed #c7cfc0;
  border-radius: 8px;
}
.photo-placeholder svg {
  width: 35px;
  height: 35px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
}
.model-info {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.model-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.model-title h3 {
  font-size: 25px;
}
.model-title > span {
  font-size: 10px;
  color: var(--muted);
}
.model-info > p {
  font-size: 11px;
  color: var(--muted);
  margin-top: 8px;
  min-height: 36px;
}
.model-specs {
  margin: 18px 0 20px;
  font-size: 11px;
}
.model-specs > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #edf0e8;
}
.model-specs dt {
  color: var(--muted);
}
.model-specs dd {
  margin: 0;
  text-align: right;
  font-weight: 600;
}
.model-cta {
  width: 100%;
  margin-top: auto;
  font-size: 12px;
  min-height: 47px;
  padding: 12px 16px;
  justify-content: space-between;
}
.model-card:hover .model-cta {
  border-color: #b4c0aa;
}
.catalog-more {
  display: flex;
  margin: 32px auto 0;
  min-width: 270px;
  font-size: 12px;
}
.catalog-note {
  font-size: 10px;
  color: var(--muted);
  text-align: center;
  margin: 22px auto 0;
  max-width: 760px;
}
.engineering-section {
  background: var(--dark);
  color: #fff;
  padding-block: 80px;
}
.engineering-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 110px;
  align-items: center;
}
.engineering-section .eyebrow {
  color: #b7c5b1;
  font-size: 10px;
}
.engineering-section h2 {
  font-size: 43px;
}
.engineering-grid > div > p:not(.eyebrow) {
  color: #c2ccc0;
  font-size: 14px;
  line-height: 1.9;
  margin: 24px 0 28px;
  max-width: 430px;
}
.engineering-factors article {
  display: flex;
  gap: 24px;
  padding-block: 28px;
  border-bottom: 1px solid #52644f;
}
.engineering-factors article:first-child {
  padding-top: 0;
}
.engineering-factors article > span {
  color: #afc39f;
  font-size: 11px;
  margin-top: 5px;
}
.engineering-factors h3 {
  font-size: 20px;
}
.engineering-factors p {
  color: #c2ccc0;
  font-size: 12px;
  line-height: 1.8;
  margin-top: 10px;
}
.supply-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding: 0;
  list-style: none;
  margin: 52px 0 0;
}
.supply-steps li > span {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 18px;
  margin-bottom: 30px;
  color: #8b9780;
  font-size: 24px;
  letter-spacing: -0.05em;
}
.supply-steps i {
  font-style: normal;
  font-size: 18px;
}
.supply-steps h3 {
  font-size: 19px;
}
.supply-steps p {
  margin-top: 14px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.8;
}
.faq-section {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 80px;
  padding-block: 40px 96px;
}
.faq-section .text-link {
  margin-top: 24px;
}
.faq-list details {
  border-bottom: 1px solid var(--line);
  padding: 21px 0;
}
.faq-list details:first-child {
  border-top: 1px solid var(--line);
}
.faq-list summary {
  list-style: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  align-items: center;
}
.faq-list summary::-webkit-details-marker {
  display: none;
}
.faq-list summary:after {
  content: "+";
  font-size: 24px;
  font-weight: 400;
  color: #75856b;
}
.faq-list details[open] summary:after {
  content: "−";
}
.faq-list p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.8;
  max-width: 550px;
  margin-top: 16px;
}
.final-cta {
  background: var(--surface);
  border-radius: 24px;
  padding: 56px 64px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 72px;
}
.final-cta h2 {
  font-size: 52px;
}
.final-cta p:not(.eyebrow) {
  font-size: 13px;
  color: var(--muted);
  max-width: 370px;
  margin-top: 18px;
  margin-bottom: 28px;
}
.final-contact {
  border-left: 1px solid #d9dfd2;
  padding-left: 64px;
}
.final-contact > span {
  font-size: 11px;
  color: var(--muted);
}
.final-contact > a {
  display: block;
  font-size: 39px;
  letter-spacing: -0.05em;
  font-weight: 600;
  line-height: 1.2;
  margin: 16px 0;
}
.final-contact > a > span {
  color: #8a9a7b;
  font-weight: 400;
}
.final-contact p:not(.eyebrow) {
  font-size: 11px;
  margin-bottom: 0;
}
.site-footer {
  padding-bottom: 32px;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line);
}
.footer-top > a:last-child {
  font-size: 15px;
  font-weight: 600;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 22px;
  font-size: 9px;
  color: var(--muted);
}
.mobile-dock {
  display: none;
}
.lead-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
  background: var(--surface);
  padding: 28px;
  border-radius: 12px;
  margin-top: 32px;
}
.lead-form-intro,
.lead-form .full-width,
.lead-form .consent,
.lead-form .form-status,
.lead-form .lead-actions {
  grid-column: 1/-1;
}
.lead-form h4 {
  font-size: 24px;
  letter-spacing: -0.04em;
}
.lead-form-intro > p {
  font-size: 12px;
  color: var(--muted);
  margin: 10px 0;
}
.lead-form label > span:not(.consent-text) {
  display: block;
  font-size: 11px;
  margin-bottom: 7px;
  font-weight: 600;
}
.lead-form input,
.lead-form textarea {
  font-size: 13px;
}
.consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 10px;
  line-height: 1.6;
  color: var(--muted);
}
.consent input {
  margin: 0;
}
.consent a {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.lead-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.form-status {
  font-size: 12px;
  line-height: 1.7;
}
.form-status:empty {
  display: none;
}
.form-status.is-success {
  color: #325c2b;
}
.model-dialog {
  width: min(880px, calc(100% - 32px));
  border: 0;
  border-radius: 18px;
  padding: 36px;
  color: var(--ink);
  max-height: 90dvh;
  overflow: auto;
}
.model-dialog::backdrop {
  background: #15251ed0;
  backdrop-filter: blur(4px);
}
.dialog-close {
  position: absolute;
  right: 16px;
  top: 14px;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 27px;
  line-height: 1;
  background: #fff;
  color: var(--ink);
  z-index: 2;
}
.dialog-product {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 28px;
  align-items: center;
  padding-right: 20px;
}
.dialog-product .model-photo {
  height: 220px;
  border-radius: 12px;
}
.dialog-product h2 {
  font-size: 36px;
}
.dialog-product p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 12px;
}
.dialog-product .model-specs {
  margin-bottom: 0;
}
.model-dialog .lead-form {
  padding: 24px;
  margin-top: 24px;
}
.model-dialog .lead-form h4 {
  font-size: 22px;
}
.policy-page {
  width: min(860px, calc(100% - 48px));
  margin: 64px auto;
}
.policy-page h1 {
  font-size: 42px;
  overflow-wrap: anywhere;
}
.policy-page .lead {
  font-size: 17px;
  margin-block: 24px;
}
.policy-page section {
  margin: 36px 0;
}
.policy-page h2 {
  font-size: 25px;
  margin-bottom: 16px;
}
.policy-page .site-header {
  padding: 24px;
}
@media (min-width: 1450px) {
  .hero {
    gap: 80px;
    padding-top: 72px;
  }
  .hero-photo {
    height: 350px;
  }
  .hero h1 {
    font-size: 72px;
  }
}
@media (max-width: 1150px) {
  .container {
    width: calc(100% - 64px);
  }
  .desktop-nav {
    gap: 16px;
  }
  .header-actions {
    gap: 16px;
  }
  .hero {
    gap: 32px;
  }
  .hero h1 {
    font-size: 52px;
  }
  .hero .lead {
    font-size: 14px;
  }
  .cta-row {
    gap: 20px;
  }
  .hero-product {
    padding: 20px;
  }
  .hero-photo {
    height: 285px;
  }
  .hero-specs {
    gap: 10px;
  }
  .hero-specs strong {
    font-size: 16px;
  }
  .hero-specs > div:last-child strong {
    font-size: 11px;
  }
  .benefits {
    gap: 20px;
  }
  .benefits > div + div {
    padding-left: 20px;
  }
  .use-card {
    padding: 20px;
  }
  .use-card h3 {
    font-size: 17px;
  }
  .quiz-shell {
    grid-template-columns: 270px 1fr;
  }
  .quiz-aside {
    padding: 24px;
  }
  .quiz-card {
    padding: 28px;
  }
  .quiz-option {
    padding: 15px 12px;
    font-size: 11px;
  }
  .engineering-grid {
    gap: 64px;
  }
  .final-cta {
    padding: 48px;
  }
  .final-contact {
    padding-left: 40px;
  }
  .final-cta h2 {
    font-size: 43px;
  }
  .final-contact > a {
    font-size: 35px;
  }
  .model-photo {
    height: 225px;
  }
  .model-info {
    padding: 20px;
  }
}
@media (max-width: 900px) {
  .desktop-nav {
    display: none;
  }
  .hero h1 {
    font-size: 44px;
  }
  .hero {
    gap: 24px;
  }
  .hero-photo {
    height: 250px;
  }
  .hero-product {
    padding: 20px 16px;
  }
  .hero-specs {
    grid-template-columns: 1fr 1fr;
  }
  .hero-specs > div:last-child {
    display: none;
  }
  .hero .eyebrow {
    font-size: 9px;
  }
  .hero .lead {
    font-size: 13px;
  }
  .product-watermark {
    font-size: 180px;
  }
  .hero .cta-row .text-link {
    font-size: 12px;
  }
  .benefits strong {
    font-size: 11px;
  }
  .benefits p > span {
    font-size: 9px;
  }
  .benefits > div {
    gap: 10px;
  }
  .section {
    padding-block: 72px;
  }
  .section-heading {
    gap: 32px;
  }
  .section-heading > p {
    font-size: 12px;
    max-width: 310px;
  }
  .use-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .use-card {
    padding: 24px;
  }
  .use-card svg {
    margin-block: 16px;
  }
  .use-card p {
    max-width: 260px;
  }
  .quiz-shell {
    grid-template-columns: 220px 1fr;
    gap: 16px;
  }
  .quiz-aside {
    padding: 24px 20px;
  }
  .quiz-aside h3 {
    font-size: 20px;
  }
  .quiz-aside ol {
    font-size: 10px;
  }
  .quiz-card {
    padding: 24px;
  }
  .quiz-options {
    gap: 8px;
  }
  .quiz-option {
    padding: 12px;
    min-height: 68px;
    gap: 9px;
  }
  .quiz-question h3 {
    font-size: 25px;
  }
  .quiz-time {
    font-size: 9px;
  }
  .quiz-fields {
    gap: 12px;
  }
  .quiz-fields input {
    font-size: 13px;
  }
  .catalog-grid {
    gap: 16px;
  }
  .model-photo {
    height: 200px;
  }
  .model-info {
    padding: 16px;
  }
  .model-specs {
    font-size: 10px;
  }
  .model-title h3 {
    font-size: 23px;
  }
  .model-cta {
    font-size: 11px;
    padding: 12px;
    gap: 12px;
  }
  .engineering-grid {
    gap: 40px;
  }
  .engineering-section h2 {
    font-size: 36px;
  }
  .engineering-factors h3 {
    font-size: 18px;
  }
  .supply-steps {
    gap: 24px;
    grid-template-columns: repeat(2, 1fr);
  }
  .faq-section {
    gap: 40px;
    padding-bottom: 72px;
  }
  .faq-list summary {
    font-size: 12px;
  }
  .final-cta {
    padding: 40px;
    gap: 32px;
  }
  .final-cta h2 {
    font-size: 37px;
  }
  .final-contact {
    padding-left: 32px;
  }
  .final-contact > a {
    font-size: 30px;
  }
  .footer-bottom {
    flex-wrap: wrap;
    gap: 12px;
  }
  .result-models {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .is-result .quiz-card {
    padding: 28px;
  }
}
@media (max-width: 650px) {
  html {
    scroll-padding-top: 82px;
  }
  .container {
    width: calc(100% - 40px);
  }
  .header-inner {
    height: 72px;
    gap: 12px;
  }
  .brand {
    gap: 7px;
  }
  .brand-mark {
    width: 28px;
    height: 32px;
    gap: 3px;
  }
  .brand-mark i {
    width: 5px;
    height: 22px;
  }
  .brand-mark i:nth-child(2) {
    height: 30px;
  }
  .brand strong {
    font-size: 12px;
  }
  .brand small {
    font-size: 8px;
    margin-top: 1px;
  }
  .header-actions {
    gap: 0;
  }
  .header-actions > .button {
    display: none;
  }
  .phone strong {
    font-size: 11px;
    letter-spacing: -0.045em;
  }
  .phone span {
    font-size: 8px;
  }
  .hero {
    grid-template-columns: 1fr;
    padding-block: 36px 28px;
    gap: 28px;
  }
  .hero-copy {
    padding: 0;
  }
  .hero .eyebrow {
    font-size: 9px;
    letter-spacing: 0.095em;
    margin-bottom: 20px;
  }
  .hero h1 {
    font-size: clamp(39px, 10.3vw, 58px);
    line-height: 1.1;
    letter-spacing: -0.06em;
  }
  .hero .lead {
    font-size: 13px;
    line-height: 1.8;
    margin-top: 18px;
    max-width: 410px;
  }
  .cta-row {
    margin-top: 24px;
    gap: 18px;
  }
  .hero .cta-row .button {
    width: 100%;
    justify-content: space-between;
    font-size: 13px;
    min-height: 54px;
  }
  .hero .cta-row .text-link {
    display: none;
  }
  .microcopy {
    font-size: 10px;
    margin-top: 12px;
  }
  .hero-product {
    border-radius: 16px;
    padding: 20px;
  }
  .product-top .eyebrow {
    font-size: 8px;
  }
  .pill {
    font-size: 9px;
  }
  .hero-photo {
    height: 240px;
    margin-top: 8px;
  }
  .hero-photo img {
    height: 100%;
  }
  .product-watermark {
    font-size: 210px;
  }
  .photo-note {
    font-size: 8px;
    bottom: 10px;
    padding: 7px 8px;
  }
  .hero-model h2 {
    font-size: 28px;
  }
  .hero-specs {
    grid-template-columns: 1.1fr 0.8fr 1.1fr;
    padding-top: 14px;
    margin-top: 14px;
  }
  .hero-specs > div:last-child {
    display: block;
  }
  .hero-specs strong {
    font-size: 17px;
  }
  .hero-specs strong small {
    font-size: 10px;
  }
  .hero-specs > div:last-child strong {
    font-size: 11px;
  }
  .hero-specs span {
    font-size: 8px;
  }
  .sample-caption {
    font-size: 8px;
    margin-top: 14px;
  }
  .benefits {
    grid-template-columns: 1fr;
    gap: 16px;
    padding-block: 22px;
  }
  .benefits > div {
    gap: 16px;
  }
  .benefits > div + div {
    border: 0;
    padding: 0;
  }
  .benefits strong {
    font-size: 12px;
  }
  .benefits p > span {
    font-size: 10px;
    margin-top: 2px;
  }
  .benefit-icon {
    font-size: 10px;
    min-width: 20px;
  }
  .section {
    padding-block: 60px;
  }
  .section-heading {
    display: block;
    margin-bottom: 28px;
  }
  .eyebrow {
    font-size: 9px;
    letter-spacing: 0.11em;
    margin-bottom: 16px;
  }
  h2 {
    font-size: 34px;
    line-height: 1.13;
    letter-spacing: -0.05em;
  }
  .section-heading > p {
    margin-top: 18px;
    font-size: 12px;
    line-height: 1.8;
    max-width: 100%;
  }
  .section-heading > p br {
    display: none;
  }
  .use-grid {
    gap: 12px;
  }
  .use-card {
    padding: 16px;
  }
  .use-card svg {
    height: 42px;
    width: 42px;
    margin-block: 16px;
  }
  .use-card h3 {
    font-size: 16px;
    line-height: 1.25;
    overflow-wrap: normal;
  }
  .use-card p {
    font-size: 10px;
    line-height: 1.8;
    margin-top: 10px;
    margin-bottom: 16px;
  }
  .use-index {
    font-size: 9px;
  }
  .use-bottom {
    font-size: 9px;
    line-height: 1.5;
    padding-top: 12px;
    gap: 4px;
  }
  .section-foot {
    display: block;
    text-align: center;
    font-size: 11px;
    line-height: 1.8;
    margin-top: 24px;
  }
  .section-foot .text-link {
    font-size: 11px;
    margin-top: 6px;
  }
  .quiz-section {
    padding-block: 52px;
  }
  .quiz-section .section-heading > p strong {
    font-size: 11px;
    display: block;
    margin-top: 6px;
  }
  .quiz-shell {
    display: block;
  }
  .quiz-aside {
    display: none;
  }
  .quiz-card,
  .is-result .quiz-card {
    padding: 24px 20px;
    border-radius: 12px;
    scroll-margin-top: 88px;
  }
  .quiz-progress {
    margin-bottom: 24px;
    gap: 14px;
  }
  .quiz-progress > span {
    font-size: 10px;
  }
  .quiz-progress .quiz-time {
    font-size: 8px;
  }
  .quiz-question h3 {
    font-size: 23px;
  }
  .quiz-question p {
    font-size: 11px;
    line-height: 1.8;
  }
  .quiz-options {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 22px;
  }
  .quiz-option {
    font-size: 12px;
    padding: 14px;
    min-height: 54px;
  }
  .quiz-fields {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 24px;
  }
  .quiz-fields input {
    font-size: 16px;
  }
  .temperature-field {
    max-width: 100%;
  }
  .quiz-input-wrap input {
    font-size: 16px;
  }
  .quiz-nav {
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
  }
  .quiz-nav .primary {
    min-width: 0;
    flex: 1;
    max-width: 210px;
  }
  .quiz-nav .button {
    padding: 13px 14px;
    font-size: 11px;
  }
  .unknown-option {
    font-size: 11px;
    align-items: flex-start;
  }
  .catalog-filters {
    gap: 7px;
  }
  .filter {
    font-size: 10px;
    padding: 9px 11px;
  }
  .catalog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .model-photo {
    height: 155px;
    padding: 32px 12px 12px;
  }
  .model-kind {
    font-size: 7px;
    left: 12px;
    top: 12px;
  }
  .model-info {
    padding: 14px 12px;
  }
  .model-title {
    display: block;
  }
  .model-title h3 {
    font-size: 21px;
  }
  .model-title > span {
    display: block;
    font-size: 8px;
    margin-top: 3px;
  }
  .model-info > p {
    font-size: 9px;
    min-height: 43px;
    line-height: 1.7;
  }
  .model-specs {
    font-size: 8px;
    margin-block: 10px 14px;
  }
  .model-specs > div {
    display: block;
    gap: 0;
    padding-block: 5px;
  }
  .model-specs dd {
    text-align: left;
    font-size: 10px;
    margin-top: 2px;
  }
  .model-cta {
    min-height: 42px;
    font-size: 9px;
    gap: 6px;
    padding: 10px 8px;
    line-height: 1.45;
  }
  .model-cta span[aria-hidden] {
    font-size: 16px;
  }
  .catalog-more {
    font-size: 11px;
    min-width: 240px;
    margin-top: 24px;
  }
  .catalog-note {
    font-size: 9px;
    text-align: left;
  }
  .engineering-section {
    padding-block: 52px;
  }
  .engineering-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .engineering-section h2 {
    font-size: 34px;
  }
  .engineering-section .eyebrow {
    font-size: 8px;
  }
  .engineering-grid > div > p:not(.eyebrow) {
    font-size: 12px;
    margin-block: 20px 24px;
  }
  .engineering-grid .button {
    font-size: 12px;
    width: 100%;
    justify-content: space-between;
  }
  .engineering-factors article {
    padding-block: 22px;
    gap: 20px;
  }
  .engineering-factors h3 {
    font-size: 18px;
  }
  .engineering-factors p {
    font-size: 11px;
  }
  .supply-steps {
    gap: 28px 20px;
    margin-top: 32px;
  }
  .supply-steps li > span {
    font-size: 20px;
    margin-bottom: 18px;
    padding-top: 14px;
  }
  .supply-steps h3 {
    font-size: 16px;
  }
  .supply-steps p {
    font-size: 10px;
    line-height: 1.8;
    margin-top: 10px;
  }
  .faq-section {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-top: 0;
    padding-bottom: 56px;
  }
  .faq-section .text-link {
    font-size: 12px;
    margin-top: 18px;
  }
  .faq-list summary {
    font-size: 12px;
    gap: 20px;
  }
  .faq-list p {
    font-size: 11px;
  }
  .faq-list details {
    padding-block: 18px;
  }
  .final-cta {
    grid-template-columns: 1fr;
    padding: 28px 24px;
    gap: 30px;
    border-radius: 16px;
    margin-bottom: 40px;
  }
  .final-cta h2 {
    font-size: 35px;
  }
  .final-cta p:not(.eyebrow) {
    font-size: 12px;
    margin-top: 16px;
    margin-bottom: 24px;
  }
  .final-cta .button {
    font-size: 12px;
    width: 100%;
    justify-content: space-between;
  }
  .final-contact {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 24px 0 0;
  }
  .final-contact > a {
    font-size: 34px;
    margin-block: 12px;
  }
  .final-contact > a br {
    display: none;
  }
  .final-contact > span {
    font-size: 10px;
  }
  .final-contact p:not(.eyebrow) {
    display: none;
  }
  .footer-top {
    display: block;
  }
  .footer-top > a:last-child {
    display: block;
    font-size: 14px;
    margin-top: 20px;
  }
  .footer-bottom {
    display: block;
    font-size: 9px;
    line-height: 1.8;
  }
  .footer-bottom > * {
    display: block;
    margin-bottom: 8px;
  }
  .site-footer {
    padding-bottom: 105px;
  }
  .mobile-dock {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    align-items: center;
    gap: 16px;
    padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: #fff;
    z-index: 40;
  }
  .dock-phone {
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
  }
  .dock-phone span {
    margin-left: 5px;
  }
  .mobile-dock .button {
    flex: 1;
    min-height: 45px;
    font-size: 11px;
    gap: 12px;
    padding: 12px;
  }
  .mobile-dock .button span {
    font-size: 17px;
  }
  .result-heading {
    display: block;
  }
  .result-heading h3 {
    font-size: 26px;
  }
  .result-heading p {
    font-size: 11px;
  }
  .result-number {
    margin-top: 20px;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px;
  }
  .result-number strong {
    font-size: 30px;
  }
  .result-number > span {
    font-size: 9px;
  }
  .result-summary {
    gap: 6px;
  }
  .result-summary span {
    font-size: 9px;
  }
  .result-models {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .result-models .model-card {
    display: grid;
    grid-template-columns: 100px 1fr;
    align-items: stretch;
  }
  .result-models .model-photo {
    height: 100%;
    min-height: 200px;
    padding: 30px 8px 12px;
  }
  .result-models .model-kind {
    left: 7px;
    top: 12px;
    font-size: 7px;
    max-width: 90px;
  }
  .result-models .model-info {
    padding: 18px 14px;
  }
  .result-models .model-info > p {
    min-height: 0;
  }
  .result-models .model-specs > div {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .result-models .model-specs dd {
    text-align: right;
    font-size: 9px;
    margin: 0;
  }
  .result-models .model-cta {
    font-size: 10px;
  }
  .result-caveat {
    font-size: 9px;
    line-height: 1.8;
  }
  .lead-form {
    display: block;
    padding: 20px 16px;
    margin-top: 24px;
  }
  .lead-form h4 {
    font-size: 23px;
  }
  .lead-form-intro > p {
    font-size: 11px;
    margin-bottom: 20px;
  }
  .lead-form label {
    margin-bottom: 16px;
  }
  .lead-form input,
  .lead-form textarea {
    font-size: 16px;
  }
  .lead-form .consent {
    font-size: 9px;
    margin-top: 18px;
    display: flex;
  }
  .lead-actions {
    display: block;
  }
  .lead-actions .button {
    width: 100%;
    font-size: 12px;
  }
  .lead-actions .text-link {
    margin-top: 18px;
    font-size: 11px;
  }
  .form-status {
    margin-top: 16px;
    font-size: 11px;
  }
  .model-dialog {
    padding: 28px 20px;
    max-height: calc(100dvh - 32px);
  }
  .dialog-product {
    grid-template-columns: 100px 1fr;
    gap: 16px;
    padding: 30px 0 0;
  }
  .dialog-product .model-photo {
    height: 155px;
    padding: 28px 8px 8px;
  }
  .dialog-product h2 {
    font-size: 28px;
  }
  .dialog-product p {
    font-size: 10px;
  }
  .dialog-product .model-specs {
    font-size: 9px;
  }
  .dialog-product .model-specs > div {
    display: flex;
    gap: 10px;
  }
  .dialog-product .model-specs dd {
    font-size: 9px;
    text-align: right;
    margin: 0;
  }
  .model-dialog .lead-form {
    padding: 18px 14px;
  }
  .model-dialog .lead-form h4 {
    font-size: 22px;
  }
  .no-models {
    padding: 20px;
  }
  .no-models h4 {
    font-size: 19px;
  }
  .no-models p {
    font-size: 11px;
  }
  .policy-page {
    margin-block: 40px;
  }
  .policy-page h1 {
    font-size: 32px;
  }
  .policy-page .lead {
    font-size: 15px;
  }
  .policy-page h2 {
    font-size: 23px;
  }
  .policy-page p,
  .policy-page li {
    font-size: 13px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    transition: none !important;
    animation: none !important;
  }
}
html {
  scroll-padding-bottom: 100px;
}
@media (max-width: 650px) {
  .quiz-visible .mobile-dock {
    display: none;
  }
  .quiz-nav {
    scroll-margin-bottom: 100px;
  }
  .hero-photo img {
    height: 104%;
  }
}
@media (max-width: 650px) {
  .result-models .model-card {
    display: flex;
    flex-direction: column;
  }
  .result-models .model-photo {
    height: 205px;
    min-height: 0;
    padding: 32px 20px 12px;
  }
  .result-models .model-photo img {
    height: 100%;
    width: 100%;
    object-fit: contain;
  }
  .result-models .model-kind {
    font-size: 9px;
    top: 14px;
    left: 18px;
    max-width: none;
  }
  .result-models .model-info {
    padding: 22px 20px;
  }
  .result-models .model-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .result-models .model-title h3 {
    font-size: 27px;
  }
  .result-models .model-title > span {
    font-size: 10px;
  }
  .result-models .model-info > p {
    font-size: 11px;
    margin-top: 10px;
  }
  .result-models .model-specs {
    font-size: 10px;
    margin-block: 18px;
  }
  .result-models .model-specs dd {
    font-size: 11px;
  }
  .result-models .model-specs > div {
    padding-block: 8px;
  }
  .result-models .model-cta {
    min-height: 46px;
    font-size: 12px;
  }
}
.model-photo {
  overflow: hidden;
  flex-shrink: 0;
}
.model-photo img,
.result-models .model-photo img {
  position: absolute;
  inset: 32px 16px 16px;
  width: calc(100% - 32px);
  height: calc(100% - 48px);
  object-fit: contain;
}

/* Shared category pages and navigation. */
.footer-navigation { display:grid; grid-template-columns:1.2fr .9fr 1fr; gap:48px; padding:38px 0; border-bottom:1px solid var(--line); }
.footer-navigation h2 { font-size:14px; line-height:1.4; letter-spacing:0; margin:0 0 18px; }
.footer-navigation nav { display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
.footer-navigation nav h2 { margin-bottom:7px; }
.footer-navigation a { font-size:13px; line-height:1.65; }
.footer-navigation a:hover { color:var(--accent-hover); }
.footer-navigation [aria-current="page"] { color:var(--ink); font-weight:700; }
.footer-help p { color:var(--muted); font-size:13px; max-width:290px; margin:0 0 18px; }
.footer-help > span { display:block; color:var(--muted); font-size:11px; margin-top:9px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px 12px; color:var(--muted); font-size:12px; padding-top:28px; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:4px; }
.category-hero { padding-top:40px; padding-bottom:56px; gap:64px; align-items:center; }
.category-hero h1 { font-size:clamp(38px,4.3vw,64px); line-height:1.1; letter-spacing:-.055em; }
.category-hero h1 em { display:block; }
.category-hero .lead { max-width:610px; font-size:16px; line-height:1.8; }
.category-hero .hero-photo { height:310px; }
.category-hero .hero-photo img { height:100%; width:100%; object-fit:contain; }
.category-hero .hero-specs { grid-template-columns:1fr 1fr; }
.category-hero .hero-specs strong { font-size:23px; }
.category-hero .hero-specs small { font-size:11px; }
.category-hero .sample-caption { line-height:1.65; margin-bottom:0; }
.category-hero .product-top { flex-wrap:wrap; gap:10px; }
.category-hero .pill { font-size:10px; }
.category-hero .hero-model .muted { font-size:11px; }
.category-page .benefits strong { font-size:13px; }
.page-jumps { display:flex; flex-wrap:wrap; gap:12px 28px; padding-top:30px; padding-bottom:4px; font-size:12px; }
.page-jumps a { padding:5px 0; color:var(--muted); border-bottom:1px solid var(--line); }
.page-jumps a:hover { color:var(--ink); border-color:var(--ink); }
.category-page .section-heading h2 { max-width:760px; }
.category-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.category-cards article { padding:32px; border:1px solid var(--line); border-radius:var(--radius); }
.category-cards .use-index { margin-bottom:26px; color:#839184; }
.category-cards h3 { font-size:21px; line-height:1.35; letter-spacing:-.035em; margin:0 0 17px; }
.category-cards p { color:var(--muted); font-size:14px; line-height:1.85; margin:0; }
.category-selection { background:var(--surface); padding:80px 0; }
.selection-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.selection-intro h2 { max-width:520px; }
.selection-intro > p:not(.eyebrow) { color:var(--muted); line-height:1.85; margin:26px 0 30px; max-width:500px; }
.selection-list { padding:0; margin:0; list-style:none; }
.selection-list li { display:grid; grid-template-columns:36px 1fr; gap:18px; padding:26px 0; border-bottom:1px solid #dce2d9; }
.selection-list li:first-child { padding-top:0; }
.selection-list li > span { font-size:12px; color:#81927d; padding-top:4px; }
.selection-list h3 { font-size:20px; line-height:1.4; margin:0 0 10px; letter-spacing:-.025em; }
.selection-list p { color:var(--muted); font-size:14px; line-height:1.8; margin:0; }
.solution-cards article { background:var(--surface); border-color:var(--surface); }
.context-link { margin:30px 0 0; color:var(--muted); font-size:14px; line-height:1.9; max-width:860px; }
.context-link a { color:var(--ink); text-decoration:underline; text-underline-offset:4px; text-decoration-color:#9aa99c; }
.category-equipment { padding-top:0; }
.category-equipment .section-heading { align-items:start; }
.category-equipment .section-heading > p { max-width:400px; }
.catalog-footnote { color:var(--muted); font-size:12px; line-height:1.8; margin-top:22px; max-width:820px; }
.pool-equipment { display:grid; grid-template-columns:1fr 1.1fr; gap:50px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:38px; align-items:center; }
.pool-equipment-photo { margin:0; padding:24px; min-width:0; border:1px solid var(--line); border-radius:12px; background:#fff; }
.pool-equipment-photo img { display:block; width:100%; height:290px; object-fit:contain; }
.pool-equipment-photo figcaption { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 16px; padding-top:20px; border-top:1px solid var(--line); }
.pool-equipment-photo strong { font-size:18px; letter-spacing:-.025em; }
.pool-equipment-photo figcaption span { color:var(--muted); font-size:11px; }
.pool-equipment h3 { font-size:27px; line-height:1.3; letter-spacing:-.04em; margin:0 0 20px; }
.pool-equipment p { color:var(--muted); font-size:14px; line-height:1.8; margin-bottom:26px; }
.category-commercial { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.category-commercial > div > p:not(.eyebrow) { color:var(--muted); margin-top:24px; line-height:1.9; max-width:500px; }
.category-commercial ol { list-style:none; counter-reset:commercial; margin:0; padding:0; }
.category-commercial li { position:relative; padding:0 0 28px 52px; counter-increment:commercial; }
.category-commercial li::before { content:'0' counter(commercial); position:absolute; left:0; top:3px; color:#879682; font-size:12px; }
.category-commercial strong { display:block; font-size:19px; line-height:1.5; margin-bottom:8px; }
.category-commercial li span { display:block; color:var(--muted); font-size:14px; line-height:1.8; }
.category-page .final-cta h2 { font-size:clamp(30px,3.5vw,48px); }
.category-page .quiz-section .section-heading h2 { max-width:640px; }
@media (max-width:1000px) {
  .category-hero { gap:32px; }
  .category-hero h1 { font-size:44px; }
  .category-hero .hero-photo { height:250px; }
  .category-cards article { padding:25px; }
  .selection-layout,.category-commercial { gap:40px; }
  .footer-navigation { gap:25px; }
}
@media (max-width:760px) {
  .category-hero { grid-template-columns:1fr; padding-top:32px; }
  .category-hero h1 { font-size:44px; max-width:620px; }
  .category-hero .hero-product { max-width:540px; width:100%; margin:auto; }
  .category-hero .hero-photo { height:300px; }
  .category-cards { grid-template-columns:1fr; gap:14px; }
  .category-cards .use-index { margin-bottom:16px; }
  .category-cards article { padding:28px; }
  .selection-layout,.category-commercial { grid-template-columns:1fr; }
  .category-selection { padding:56px 0; }
  .pool-equipment { gap:28px; grid-template-columns:1fr; padding:28px; }
  .pool-equipment-photo { padding:18px; }
  .pool-equipment-photo img { height:240px; }
  .footer-navigation { grid-template-columns:1fr 1fr; }
  .footer-help { grid-column:1/-1; border-top:1px solid var(--line); padding-top:25px; }
}
@media (max-width:480px) {
  .breadcrumbs { font-size:10px; padding-top:23px; }
  .category-hero h1 { font-size:37px; }
  .category-hero .lead { font-size:14px; line-height:1.85; }
  .category-hero .hero-specs strong { font-size:21px; }
  .category-hero .hero-photo { height:250px; }
  .category-hero .hero-specs { padding-inline:18px; }
  .category-hero .sample-caption { font-size:10px; }
  .category-cards h3 { font-size:21px; }
  .category-cards p,.selection-list p { font-size:13px; }
  .category-page .catalog-grid { grid-template-columns:1fr; }
  .category-page .catalog-grid .model-card { display:flex; flex-direction:column; }
  .category-page .catalog-grid .model-photo { height:260px; min-height:0; }
  .category-page .catalog-grid .model-info { padding:24px; }
  .category-page .catalog-grid .model-title h3 { font-size:26px; }
  .category-page .catalog-grid .model-specs { font-size:12px; }
  .category-page .catalog-grid .model-specs dd { font-size:13px; }
  .category-page .catalog-grid .model-cta { min-height:48px; font-size:13px; }
  .footer-navigation { gap:28px 18px; }
  .footer-navigation a { font-size:11px; }
  .footer-navigation h2 { font-size:12px; }
  .page-jumps { gap:9px 20px; font-size:11px; }
}
