/* Hallmark · genre: modern-minimal · macrostructure: Catalogue (product centre) + Split Studio (site shell) · theme: Cobalt · tone: technical · anchor hue: cobalt · enrichment: supplied product photography · nav: N1b · footer: Ft5 · contrast: pass (40–41) · slop: pass (42–58) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · mobile: pass (34, 49–57) */
/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V5 */
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Source+Sans+3:wght@400;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");
@import url("tokens.css");

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; overflow-x: clip; }
html { scroll-behavior: smooth; }
body {
  min-width: 20rem;
  background: var(--color-paper);
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: var(--rule-hair); text-underline-offset: 0.22em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:disabled { opacity: 0.55; cursor: not-allowed; color: var(--color-rule-2); }
h1, h2, h3, p, figure, blockquote { margin: 0; }
h1, h2, h3 {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.08;
  min-width: 0;
  overflow-wrap: anywhere;
}
h1 { font-size: var(--text-display); max-width: 13ch; }
h2 { font-size: clamp(2.1rem, 4vw, var(--text-3xl)); max-width: 18ch; }
h3 { font-size: var(--text-lg); letter-spacing: -0.02em; }
p { max-width: 68ch; }
.tnum { font-variant-numeric: tabular-nums; }
.skip-link { position: fixed; inset: var(--space-md) auto auto var(--space-md); z-index: var(--z-toast); transform: translateY(-200%); background: var(--color-ink); color: var(--color-paper); padding: var(--space-sm) var(--space-md); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.container { width: min(100%, var(--page-max)); margin-inline: auto; padding-inline: var(--page-gutter); }
.section { padding-block: var(--space-3xl); }
.section--tight { padding-block: var(--space-2xl); }
.section--paper-2 { background: var(--color-paper-2); color: var(--color-ink-2); }
.section--dark { background: var(--color-graphite); color: var(--color-on-dark); }
.section--dark h2, .section--dark h3 { color: var(--color-on-dark); }
.section--dark p { color: var(--color-on-dark-muted); }
.head-hang { padding-block: 0 var(--space-xl); }
.head-hang p { margin-block-start: var(--space-md); color: var(--color-muted); font-size: var(--text-md); }
.kicker { color: var(--color-accent-dark); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }

.site-nav { position: sticky; inset-block-start: 0; z-index: var(--z-sticky); background: var(--color-paper); border-block-end: var(--rule-hair) solid var(--color-rule); }
.nav-inner { min-height: var(--nav-height); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--space-lg); }
.brand { display: inline-flex; align-items: center; gap: var(--space-sm); width: max-content; text-decoration: none; white-space: nowrap; }
.brand-mark { display: grid; place-items: center; width: 2rem; height: 2rem; background: var(--color-ink); color: var(--color-paper); border-radius: var(--radius-sm); font-family: var(--font-display); font-weight: 700; }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { color: var(--color-ink); font-family: var(--font-display); font-size: 1.05rem; }
.brand-copy small { margin-block-start: var(--space-2xs); color: var(--color-muted); font-family: var(--font-body); font-size: 0.625rem; letter-spacing: 0.08em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; justify-content: center; gap: var(--space-2xs); }
.nav-link { min-height: 2.75rem; display: inline-flex; align-items: center; padding-inline: var(--space-sm); border-radius: var(--radius-sm); color: var(--color-muted); font-weight: 600; text-decoration: none; white-space: nowrap; transition: color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out); }
.nav-link[aria-current="page"] { color: var(--color-ink); background: var(--color-paper-2); }
.nav-actions { display: flex; justify-content: flex-end; align-items: center; gap: var(--space-xs); }
.kbd-button, .menu-toggle { min-height: 2.75rem; border: var(--rule-hair) solid var(--color-rule-2); background: var(--color-paper); color: var(--color-muted); border-radius: var(--radius-sm); cursor: pointer; }
.kbd-button { padding-inline: var(--space-sm); font-family: var(--font-body); font-size: var(--text-xs); }
.menu-toggle { display: none; width: 2.75rem; padding: 0; place-items: center; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 1.15rem; height: var(--rule-hair); background: var(--color-ink); }
.menu-toggle { gap: var(--space-2xs); }
.kbd-button:active, .menu-toggle:active { transform: translateY(1px); }
.kbd-button:disabled, .menu-toggle:disabled { opacity: 0.55; cursor: not-allowed; color: var(--color-rule-2); }
.mobile-menu { display: none; padding-block: var(--space-sm) var(--space-md); border-block-start: var(--rule-hair) solid var(--color-rule); }
.mobile-menu[hidden] { display: none; }
.mobile-menu a { display: flex; min-height: 2.75rem; align-items: center; font-weight: 600; text-decoration: none; white-space: nowrap; }

.btn { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); padding-inline: var(--space-lg); border: var(--rule-hair) solid transparent; border-radius: var(--radius-sm); font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform var(--dur-micro) var(--ease-out), background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out); }
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--color-accent); color: var(--color-accent-ink); }
.btn--outline { background: transparent; color: var(--color-ink); border-color: var(--color-rule-2); }
.btn[aria-disabled="true"], .btn:disabled { opacity: 0.55; cursor: not-allowed; }

.hero { padding-block-start: clamp(var(--space-xl), 6vw, var(--space-2xl)); padding-block-end: clamp(var(--space-2xl), 9vw, var(--space-4xl)); }
.hero-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: center; }
.hero-copy { display: grid; gap: var(--space-lg); }
.hero-copy .lede { color: var(--color-muted); font-size: var(--text-md); max-width: 58ch; }
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.hero-figure { position: relative; min-height: 29rem; overflow: clip; border-radius: var(--radius-md); background: var(--color-graphite); }
.hero-figure img { width: 100%; height: 100%; min-height: 29rem; object-fit: cover; opacity: 0.86; }
.hero-figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, var(--color-graphite)); pointer-events: none; }
.hero-note { position: absolute; z-index: var(--z-raised); inset: auto var(--space-lg) var(--space-lg); color: var(--color-on-dark); font-family: var(--font-body); font-size: var(--text-sm); }

.stat-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: var(--rule-hair) solid var(--color-rule); }
.stat { padding: var(--space-lg); border-inline-end: var(--rule-hair) solid var(--color-rule); }
.stat:last-child { border-inline-end: 0; }
.stat b { display: block; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-2xl); line-height: 1; }
.stat span { display: block; margin-block-start: var(--space-xs); color: var(--color-muted); }

.split-stack { display: grid; gap: var(--space-3xl); }
.split-row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: center; }
.split-row:nth-child(even) .split-media { order: -1; }
.split-copy { display: grid; gap: var(--space-md); align-content: center; }
.split-copy p { color: var(--color-muted); }
.split-media { overflow: clip; min-height: 21rem; background: var(--color-paper-3); border-radius: var(--radius-md); }
.split-media img { width: 100%; height: 100%; min-height: 21rem; object-fit: cover; }
.scope-list { list-style: none; display: grid; gap: var(--space-xs); margin: 0; padding: 0; }
.scope-list li { position: relative; padding-inline-start: var(--space-lg); }
.scope-list li::before { content: ""; position: absolute; inset: 0.7em auto auto 0; width: 0.5rem; height: 0.125rem; background: var(--color-accent); }

.steps { list-style: none; display: grid; margin: 0; padding: 0; }
.step { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: var(--space-lg); padding-block: var(--space-xl); border-block-end: var(--rule-hair) solid var(--color-graphite-2); }
.step:first-child { border-block-start: var(--rule-hair) solid var(--color-graphite-2); }
.stage { color: var(--color-accent); font-family: var(--font-mono); font-size: var(--text-sm); }
.step p { margin-block-start: var(--space-xs); }

.page-hero { padding-block: var(--space-2xl) var(--space-3xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); align-items: end; }
.page-hero h1 { font-size: clamp(2.75rem, 6vw, 5.25rem); }
.page-hero p { color: var(--color-muted); font-size: var(--text-md); }
.facts-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-2xl); }
.facts-grid aside { padding: var(--space-lg); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-sm); }
.facts-grid aside dl { margin: 0; }
.facts-grid aside div { display: grid; grid-template-columns: 7rem 1fr; gap: var(--space-md); padding-block: var(--space-sm); border-block-end: var(--rule-hair) solid var(--color-rule); }
.facts-grid aside div:last-child { border-block-end: 0; }
.facts-grid dt { color: var(--color-muted); }
.facts-grid dd { margin: 0; color: var(--color-ink); font-weight: 600; }

.placeholder-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-lg); }
.placeholder { min-height: 18rem; display: flex; flex-direction: column; justify-content: flex-end; gap: var(--space-xs); padding: var(--space-lg); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-sm); }
.placeholder:nth-child(1) { grid-column: span 7; min-height: 26rem; }
.placeholder:nth-child(2) { grid-column: span 5; }
.placeholder:nth-child(3) { grid-column: 3 / span 8; }
.placeholder strong { color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-lg); }
.placeholder small { color: var(--color-muted); }

.news-list { display: grid; }
.news-item { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-xl); padding-block: var(--space-xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.news-item:first-child { border-block-start: var(--rule-hair) solid var(--color-rule); }
.news-date { color: var(--color-muted); font-family: var(--font-body); font-size: var(--text-sm); }
.news-copy { display: grid; gap: var(--space-sm); }
.news-copy p { color: var(--color-muted); }

.route-list { display: grid; border-block-start: var(--rule-hair) solid var(--color-rule); }
.route-item { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr) auto; gap: var(--space-xl); align-items: start; padding-block: var(--space-xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.route-item__title { display: grid; gap: var(--space-xs); }
.route-item__title span { color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); }
.route-item__body { display: grid; gap: var(--space-sm); }
.route-item__body p { color: var(--color-muted); }
.route-item__link { align-self: center; color: var(--color-accent-dark); font-weight: 700; text-decoration: none; white-space: nowrap; }
.route-item__link::after { content: " →"; }
.route-item__link:active { transform: translateY(1px); }

.editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xl); }
.editorial-panel { min-width: 0; padding-block-start: var(--space-lg); border-block-start: 3px solid var(--color-ink); }
.editorial-panel h3 { margin-block-end: var(--space-sm); }
.editorial-panel p { color: var(--color-muted); }
.editorial-panel .scope-list { margin-block-start: var(--space-md); }
.editorial-panel--accent { border-block-start-color: var(--color-accent); }

.decision-band { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-2xl); align-items: start; padding: var(--space-xl); border: var(--rule-hair) solid var(--color-rule-2); background: var(--color-paper-2); }
.decision-band__body { display: grid; gap: var(--space-md); }
.decision-band__body p { color: var(--color-muted); }
.definition-list { margin: 0; border-block-start: var(--rule-hair) solid var(--color-rule); }
.definition-list div { display: grid; grid-template-columns: minmax(8rem, 3fr) minmax(0, 7fr); gap: var(--space-xl); padding-block: var(--space-md); border-block-end: var(--rule-hair) solid var(--color-rule); }
.definition-list dt { color: var(--color-ink); font-weight: 700; }
.definition-list dd { margin: 0; color: var(--color-muted); }
.status-note { padding: var(--space-lg); border-inline-start: 4px solid var(--color-accent); background: var(--color-paper-2); }
.status-note strong { display: block; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); }
.status-note p { margin-block-start: var(--space-xs); color: var(--color-muted); }
.legal { max-width: 52rem; }
.legal h2 { margin-block: var(--space-2xl) var(--space-md); font-size: var(--text-2xl); }
.legal h3 { margin-block: var(--space-xl) var(--space-sm); }
.legal p, .legal li { color: var(--color-muted); }
.legal ul { padding-inline-start: var(--space-lg); }
.subnav { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-block-start: var(--space-lg); }
.subnav a { min-height: 2.5rem; display: inline-flex; align-items: center; padding-inline: var(--space-md); border: var(--rule-hair) solid var(--color-rule-2); color: var(--color-ink); text-decoration: none; white-space: nowrap; }
.empty-state { min-height: 18rem; display: grid; align-content: end; padding: var(--space-xl); border: var(--rule-hair) dashed var(--color-rule-2); background: var(--color-paper-2); }
.empty-state span { color: var(--color-muted); font-family: var(--font-mono); font-size: var(--text-xs); }
.empty-state strong { margin-block-start: var(--space-xs); color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-lg); }
.empty-state p { margin-block-start: var(--space-xs); color: var(--color-muted); }

.catalogue-hero { padding-block: var(--space-2xl) var(--space-3xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.catalogue-hero__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(16rem, 4fr); gap: var(--space-2xl); align-items: end; }
.catalogue-hero__copy { display: grid; gap: var(--space-lg); }
.catalogue-hero__copy p { color: var(--color-muted); font-size: var(--text-md); }
.catalogue-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: var(--rule-hair) solid var(--color-rule); }
.catalogue-index div { padding-block: var(--space-md); }
.catalogue-index div:nth-child(odd) { border-inline-end: var(--rule-hair) solid var(--color-rule); padding-inline-end: var(--space-md); }
.catalogue-index div:nth-child(even) { padding-inline-start: var(--space-md); }
.catalogue-index b { display: block; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-xl); line-height: 1; }
.catalogue-index span { color: var(--color-muted); font-size: var(--text-sm); }
.category-band { display: grid; grid-template-columns: minmax(13rem, 3fr) minmax(0, 9fr); gap: var(--space-2xl); padding-block: var(--space-2xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.category-band:first-child { border-block-start: var(--rule-hair) solid var(--color-rule); }
.category-band__intro { display: grid; align-content: start; gap: var(--space-md); }
.category-band__intro p { color: var(--color-muted); }
.category-band__intro .btn { justify-self: start; }
.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xl) var(--space-lg); }
.product-card { min-width: 0; }
.product-card__media { position: relative; aspect-ratio: 4 / 3; overflow: clip; background: var(--color-paper-3); border-radius: var(--radius-sm); }
.product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-long) var(--ease-out); }
.product-card__media--pending img { filter: saturate(0.35); opacity: 0.72; }
.product-card__body { display: grid; gap: var(--space-sm); padding-block-start: var(--space-md); }
.product-card__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); color: var(--color-muted); font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; }
.product-card__body p { color: var(--color-muted); }
.product-card__actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); }
.text-link { color: var(--color-accent-dark); font-weight: 700; text-decoration: none; }
.text-link::after { content: " →"; }
.text-link:active { transform: translateY(1px); }
.source-link { color: var(--color-muted); font-size: var(--text-sm); }
.data-note { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-2xl); padding: var(--space-xl); background: var(--color-paper-2); border-block: var(--rule-hair) solid var(--color-rule); }
.data-note p { color: var(--color-muted); }
.detail-hero { position: relative; isolation: isolate; display: grid; min-height: clamp(35rem, 50vw, 46rem); overflow: clip; background: #07172b; border-block-end: var(--rule-hair) solid var(--color-rule); }
.detail-hero__background { position: absolute; z-index: 0; inset: 0; display: block; }
.detail-hero__background img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.detail-hero__overlay { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(4, 18, 35, .98) 0%, rgba(4, 18, 35, .9) 34%, rgba(4, 18, 35, .58) 57%, rgba(4, 18, 35, .16) 78%), linear-gradient(180deg, rgba(4, 18, 35, .12), rgba(4, 18, 35, .48)); }
.detail-hero__inner { position: relative; z-index: 2; display: grid; align-items: center; width: min(calc(100% - (2 * var(--page-gutter))), var(--page-max)); min-height: inherit; margin-inline: auto; }
.detail-hero__copy { display: grid; gap: var(--space-lg); width: min(100%, 48rem); padding-block: var(--space-3xl); color: var(--color-on-dark); }
.detail-hero__intro { display: grid; gap: var(--space-sm); }
.product-breadcrumb { font-family: var(--font-mono); font-size: var(--text-xs); line-height: 1.5; letter-spacing: .04em; text-transform: uppercase; }
.product-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; margin: 0; padding: 0; list-style: none; }
.product-breadcrumb li { display: inline-flex; align-items: center; gap: .55rem; }
.product-breadcrumb li + li::before { content: "/"; color: rgba(255, 255, 255, .42); }
.product-breadcrumb a, .product-breadcrumb a:visited { color: rgba(255, 255, 255, .72); text-decoration: none; }
.product-breadcrumb a:hover, .product-breadcrumb a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: .25em; }
.product-breadcrumb [aria-current="page"] { color: #fff; }
.detail-hero__copy h1 { color: var(--color-on-dark); font-size: clamp(3.25rem, 6vw, 6rem); line-height: .98; letter-spacing: -.045em; text-wrap: balance; text-shadow: 0 .125rem 1.5rem rgba(0, 0, 0, .28); }
.detail-hero__copy p { color: rgba(255, 255, 255, .88); font-size: clamp(1rem, 1.45vw, 1.25rem); line-height: 1.65; max-width: 58ch; }
.detail-hero__copy .kicker { color: #a7d9ff; font-size: var(--text-xs); }
.detail-hero .btn--outline, .detail-hero .btn--outline:visited { color: #fff; border-color: rgba(255, 255, 255, .72); }
.detail-hero .btn--outline:hover, .detail-hero .btn--outline:focus-visible { color: #07172b; background: #fff; border-color: #fff; }
.detail-hero__concept { width: fit-content; padding-block-start: var(--space-sm); border-block-start: 1px solid rgba(255, 255, 255, .32); color: rgba(255, 255, 255, .72); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .04em; }
.spec-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(16rem, 5fr); gap: var(--space-3xl); }
.spec-copy { display: grid; gap: var(--space-xl); align-content: start; }
.spec-block { padding-block-start: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-rule); }
.spec-block p { margin-block-start: var(--space-sm); color: var(--color-muted); }
.spec-table { margin: 0; border-block-start: var(--rule-hair) solid var(--color-rule); }
.spec-table div { display: grid; grid-template-columns: minmax(8rem, 5fr) minmax(0, 7fr); gap: var(--space-lg); padding-block: var(--space-md); border-block-end: var(--rule-hair) solid var(--color-rule); }
.spec-table dt { color: var(--color-muted); }
.spec-table dd { margin: 0; color: var(--color-ink); font-weight: 700; }
.verification-panel { padding: var(--space-lg); background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); }
.verification-panel strong { display: block; color: var(--color-ink); font-family: var(--font-display); font-size: var(--text-md); }
.verification-panel p { margin-block-start: var(--space-sm); color: var(--color-muted); }
.verification-panel .source-link { display: inline-block; margin-block-start: var(--space-md); }

.contact-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-3xl); }
.contact-cards { display: grid; gap: var(--space-md); align-content: start; }
.contact-card { padding-block: var(--space-md); border-block-end: var(--rule-hair) solid var(--color-rule); }
.contact-card span { display: block; color: var(--color-muted); font-size: var(--text-sm); }
.contact-card a, .contact-card strong { color: var(--color-ink); font-size: var(--text-md); font-weight: 700; text-decoration: none; }
.form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); }
.field { display: grid; gap: var(--space-xs); }
.field--wide { grid-column: 1 / -1; }
.field label { color: var(--color-ink); font-weight: 700; }
.field input, .field textarea, .field select { width: 100%; min-height: 2.75rem; border: var(--rule-hair) solid var(--color-rule-2); outline: 2px solid transparent; outline-offset: 1px; border-radius: var(--radius-sm); background: var(--color-paper); color: var(--color-ink); padding-inline: var(--space-md); }
.field textarea { min-height: 8rem; padding-block: var(--space-sm); resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible { outline-color: var(--color-focus); }
.field [aria-invalid="true"] { border-color: var(--color-error); }
.field input:disabled, .field textarea:disabled, .field select:disabled { opacity: 0.55; cursor: not-allowed; color: var(--color-rule-2); }
.field-help { min-height: 1lh; color: var(--color-muted); font-size: var(--text-sm); }
.field-help[data-tone="error"] { color: var(--color-error); }
.form-status { min-height: 1lh; color: var(--color-muted); }
.form-status[data-tone="error"] { color: var(--color-error); }
.form-status[data-tone="success"] { color: var(--color-success); }

.foot-stmt { padding-block: var(--space-3xl) var(--space-xl); background: var(--color-graphite); color: var(--color-on-dark); }
.foot-stmt__line { max-width: 28ch; color: var(--color-on-dark); font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.75rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1.05; }
.foot-stmt__links { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-lg); margin-block-start: var(--space-2xl); }
.foot-stmt__links a { color: var(--color-on-dark-muted); text-decoration: none; white-space: nowrap; }
.foot-stmt__meta { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-lg); margin-block-start: var(--space-xl); padding-block-start: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-graphite-2); color: var(--color-on-dark-muted); font-size: var(--text-sm); }

.command-dialog { position: fixed; inset: 0; width: min(42rem, calc(100% - 2rem)); height: fit-content; max-height: min(80dvh, 40rem); margin: auto; padding: 0; border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-md); background: var(--color-paper); color: var(--color-ink); }
.command-dialog::backdrop { background: var(--color-backdrop); }
.command-head { display: flex; gap: var(--space-sm); padding: var(--space-md); border-block-end: var(--rule-hair) solid var(--color-rule); }
.command-head input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--color-ink); }
.command-close { min-width: 2.75rem; min-height: 2.75rem; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-sm); background: var(--color-paper); cursor: pointer; }
.command-list { list-style: none; display: grid; gap: var(--space-xs); max-height: 50dvh; overflow: auto; margin: 0; padding: var(--space-md); }
.command-list a { display: flex; align-items: center; justify-content: space-between; min-height: 3rem; padding-inline: var(--space-md); border-radius: var(--radius-sm); text-decoration: none; white-space: nowrap; }
.command-list a:hover, .command-list a:focus-visible { background: var(--color-paper-2); }
.command-list small { color: var(--color-muted); font-family: var(--font-body); }

@media (hover: hover) and (pointer: fine) {
  .nav-link:hover { color: var(--color-ink); background: var(--color-paper-2); }
  .btn--primary:hover { background: var(--color-accent-dark); transform: translateY(-1px); }
  .btn--outline:hover { border-color: var(--color-accent); color: var(--color-accent-dark); transform: translateY(-1px); }
  .foot-stmt__links a:hover { color: var(--color-on-dark); }
  .field input:hover, .field textarea:hover, .field select:hover { background: var(--color-paper-2); }
  .route-item__link:hover { color: var(--color-accent); }
  .subnav a:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }
  .product-card:hover .product-card__media img { transform: scale(1.025); }
  .text-link:hover { color: var(--color-accent); }
}
@media (max-width: 59.99rem) {
  .nav-inner { grid-template-columns: 1fr auto; }
  .nav-links, .kbd-button, .nav-actions .btn { display: none; }
  .menu-toggle { display: grid; }
  .mobile-menu:not([hidden]) { display: grid; }
  .hero-split, .page-hero-grid, .facts-grid, .contact-layout { grid-template-columns: minmax(0, 1fr); }
  .hero-figure { min-height: 22rem; }
  .hero-figure img { min-height: 22rem; }
  .split-row { grid-template-columns: minmax(0, 1fr); }
  .split-row:nth-child(even) .split-media { order: 0; }
  .stat-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(2) { border-inline-end: 0; }
  .stat:nth-child(-n+2) { border-block-end: var(--rule-hair) solid var(--color-rule); }
  .placeholder:nth-child(1), .placeholder:nth-child(2), .placeholder:nth-child(3) { grid-column: 1 / -1; min-height: 18rem; }
  .route-item { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); }
  .route-item__link { justify-self: start; }
  .editorial-grid { grid-template-columns: minmax(0, 1fr); }
  .decision-band { grid-template-columns: minmax(0, 1fr); }
  .catalogue-hero__grid, .category-band, .spec-layout, .data-note { grid-template-columns: minmax(0, 1fr); }
  .detail-hero { min-height: 42rem; }
  .detail-hero__overlay { background: linear-gradient(90deg, rgba(4, 18, 35, .97) 0%, rgba(4, 18, 35, .84) 54%, rgba(4, 18, 35, .35) 100%), linear-gradient(180deg, rgba(4, 18, 35, .15), rgba(4, 18, 35, .65)); }
  .detail-hero__copy { width: min(100%, 40rem); padding-block: var(--space-2xl); }
}
@media (max-width: 39.99rem) {
  .section { padding-block: var(--space-2xl); }
  .hero { padding-block: var(--space-2xl); }
  .hero-actions { display: grid; }
  .hero-actions .btn { width: 100%; }
  .hero-figure, .hero-figure img { min-height: 18rem; }
  .stat-strip { grid-template-columns: minmax(0, 1fr); }
  .stat, .stat:nth-child(2) { border-inline-end: 0; border-block-end: var(--rule-hair) solid var(--color-rule); }
  .stat:last-child { border-block-end: 0; }
  .step { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
  .news-item { grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
  .form { grid-template-columns: minmax(0, 1fr); }
  .field--wide { grid-column: auto; }
  .detail-hero { min-height: 46rem; }
  .detail-hero__background img { object-position: center; }
  .detail-hero__overlay { background: linear-gradient(180deg, rgba(4, 18, 35, .5) 0%, rgba(4, 18, 35, .8) 44%, rgba(4, 18, 35, .98) 100%); }
  .detail-hero__inner { align-items: end; }
  .detail-hero__copy { gap: var(--space-md); padding-block: var(--space-2xl); }
  .product-breadcrumb { font-size: .68rem; }
  .detail-hero__copy h1 { font-size: clamp(2.75rem, 13vw, 4rem); }
  .detail-hero__copy p { font-size: 1rem; }
  .foot-stmt__meta { align-items: flex-start; flex-direction: column; }
  .brand-copy small { display: none; }
  .definition-list div { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
  .product-grid { grid-template-columns: minmax(0, 1fr); }
  .catalogue-index { grid-template-columns: minmax(0, 1fr); }
  .catalogue-index div:nth-child(odd) { border-inline-end: 0; padding-inline-end: 0; }
  .catalogue-index div:nth-child(even) { padding-inline-start: 0; }
  .catalogue-index div + div { border-block-start: var(--rule-hair) solid var(--color-rule); }
  .spec-table div { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 150ms !important; animation-iteration-count: 1 !important; transition-duration: 150ms !important; }
}
