/* ============================================================
   AKS AUTOMOTIVE — "BLUEPRINT EDITORIAL" Design System
   A technical-publication aesthetic for a precision oil-pump
   manufacturer. Warm paper + near-black void, electric royal
   blue + signal red, oversized editorial type, monospaced spec
   data, visible structural hairlines. Logical properties for RTL.
   Static, dependency-free.
   ============================================================ */

/* ---------- Design Tokens ---------- */
:root {
  /* Light — engineered white + steel (white-dominant, industrial) */
  --paper: #F4F5F7;          /* page canvas — clean near-white, faint steel cast */
  --paper-2: #E8EBEE;        /* light steel band */
  --card: #FFFFFF;           /* clean white surfaces */
  --card-flat: #F4F5F7;
  --ink: #14171B;            /* anthracite text */
  --ink-2: #474D55;          /* steel-gray secondary */
  --ink-3: #828891;          /* muted / meta */
  --hair: rgba(20,23,27,.18);   /* structural hairline */
  --hair-2: rgba(20,23,27,.09); /* faint hairline */

  /* Industrial structural tones — brushed metal / steel / cast */
  --anthracite: #15181C;     /* matte near-black */
  --graphite: #22272E;       /* graphite surface */
  --steel: #39414B;          /* steel gray */
  --steel-2: #5A626C;        /* lighter steel */
  --metal: #C4CAD1;          /* brushed-metal line */
  --metal-2: #DCE0E5;        /* faint metal line */

  /* Dark — "Void" (near-black, faint blue cast) */
  --void: #0A0C11;
  --void-2: #11141C;
  --void-card: #161A24;
  --void-ink: #ECEAE2;
  --void-ink-2: #9AA0AD;
  --void-ink-3: #6A6F7B;
  --void-hair: rgba(236,234,226,.14);
  --void-hair-2: rgba(236,234,226,.07);

  /* Brand accents — deep steel-navy structure + confident signal red */
  --blue: #1C3A5E;           /* deep steel navy — structure / links */
  --blue-deep: #142A45;
  --blue-bright: #3E6A9E;    /* on dark */
  --blue-ghost: rgba(28,58,94,.10);
  --red: #D81E12;            /* signal red — confident primary action */
  --red-deep: #AE1109;
  --red-bright: #F23B2C;     /* on dark */
  --red-ghost: rgba(216,30,18,.10);

  /* Semantic */
  --ok: #16864A;
  --ok-bright: #3DD68C;
  --danger: #D5342B;
  --danger-tint: rgba(213,52,43,.12);

  /* Radius — tight, technical */
  --r-xs: 3px;
  --r-sm: 5px;
  --r: 8px;
  --r-lg: 12px;
  --r-pill: 999px;

  /* Elevation — soft, low, paper-tinted */
  --e1: 0 1px 2px rgba(20,22,30,.05);
  --e2: 0 10px 30px -14px rgba(20,22,30,.22), 0 2px 6px rgba(20,22,30,.05);
  --e3: 0 28px 60px -28px rgba(20,22,30,.34), 0 6px 16px rgba(20,22,30,.08);
  --e-void: 0 40px 90px -30px rgba(0,0,0,.7);

  /* Motion */
  --d1: 180ms;
  --d2: 320ms;
  --d3: 560ms;
  --d4: 900ms;
  --ease: cubic-bezier(.22, 1, .36, 1);     /* expressive out */
  --ease-in: cubic-bezier(.5, 0, .75, 0);
  --ease-spring: cubic-bezier(.34, 1.45, .5, 1);

  /* Layout */
  --container: 1320px;
  --container-wide: 1480px;
  --container-narrow: 760px;
  --gutter: clamp(1.15rem, 4.2vw, 3.5rem);
  --nav-h: 78px;
  --rail: 56px;             /* vertical side-rail width (desktop) */

  /* z-index */
  --z-base: 0;
  --z-raised: 10;
  --z-rail: 30;
  --z-sticky: 40;
  --z-overlay: 100;
  --z-modal: 1000;

  /* Fonts */
  --f-display: "Bricolage Grotesque", "Geist", system-ui, -apple-system, Arial, sans-serif;
  --f-body: "Geist", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  --f-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --f-ar: "Cairo", "Segoe UI", Tahoma, sans-serif;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--f-body);
  font-size: clamp(15px, 1vw + 0.6rem, 17px);
  line-height: 1.6;
  color: var(--ink);
  background: #F6F8FA;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  font-feature-settings: "ss01" 1, "cv05" 1;
}
[lang="ar"] body, [dir="rtl"] body { font-family: var(--f-ar); }
/* Clean, white-dominant light background — soft sheen from the top into a faint steel tint (no grid) */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(125% 80% at 50% 0%, #FFFFFF 0%, rgba(255,255,255,0) 56%),
    linear-gradient(180deg, #F7F9FB 0%, #EFF2F5 100%);
}

img, svg, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: none; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; }
::selection { background: var(--red); color: #fff; }
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: var(--r-xs);
}

/* ---------- Typography ---------- */
h1, h2, h3, h4 {
  font-family: var(--f-display);
  font-weight: 700;
  line-height: .98;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}
[lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3, [lang="ar"] h4 {
  font-family: var(--f-ar); letter-spacing: 0; line-height: 1.18; font-weight: 800;
}
.display { font-size: clamp(2.5rem, 5.6vw, 5.6rem); font-weight: 800; line-height: .94; letter-spacing: -0.035em; }
h1 { font-size: clamp(2.4rem, 6vw, 4.6rem); font-weight: 800; letter-spacing: -0.035em; }
h2 { font-size: clamp(1.9rem, 4.4vw, 3.3rem); font-weight: 700; }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 700; }
p { text-wrap: pretty; }
.lead { font-size: clamp(1.06rem, 1.4vw, 1.32rem); color: var(--ink-2); line-height: 1.55; max-inline-size: 60ch; font-weight: 400; }
.lead strong { color: var(--ink); font-weight: 700; }
.void .lead strong { color: #fff; }
.mono { font-family: var(--f-mono); font-feature-settings: "tnum" 1, "zero" 1; letter-spacing: -0.01em; }
.measure { max-inline-size: 62ch; }

/* About story — editorial two-column body so the page reads wide, not tall */
.about-container { max-inline-size: 1120px; }
.about-story { columns: 2; column-gap: clamp(2rem, 4vw, 3.6rem); }
.about-story .lead { max-inline-size: none; margin-block-end: 1.15rem; break-inside: avoid; font-size: clamp(1rem, .55vw + .82rem, 1.12rem); line-height: 1.62; }
.about-story .lead:last-child { margin-block-end: 0; }
@media (max-width: 760px) { .about-story { columns: 1; } }

/* Legal pages (privacy / terms) */
.legal-doc { max-inline-size: 72ch; }
.legal-doc > p { color: var(--ink-2); line-height: 1.7; margin-block-end: 1.1rem; }
.legal-doc .legal-meta { color: var(--ink-3); font-size: .78rem; letter-spacing: .04em; margin-block-end: 1.6rem; }
.legal-doc h2 { font-size: clamp(1.2rem, 2vw, 1.5rem); letter-spacing: -0.01em; color: var(--ink); margin-block: 2.1rem .7rem; }
.legal-doc ul { margin: 0 0 1.1rem; padding-inline-start: 1.35rem; color: var(--ink-2); line-height: 1.7; list-style: disc; }
.legal-doc li { margin-block-end: .35rem; display: list-item; }
.legal-doc li::marker { color: var(--red); }

/* Kicker / eyebrow — technical label with index dot */
.kicker {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--f-mono); font-size: .73rem; font-weight: 500;
  letter-spacing: .26em; text-transform: uppercase; color: var(--ink-2);
}
.kicker::before {
  content: ""; inline-size: 7px; block-size: 7px; flex: none;
  background: var(--red); border-radius: 50%;
}
.kicker.live::before { animation: livedot 2.4s var(--ease) infinite; }
.kicker.on-void { color: var(--void-ink-2); }
[lang="ar"] .kicker { letter-spacing: .08em; }

/* Section index — engineering spec label, e.g. "▮ 01 / KATALOG" */
.s-index {
  position: relative; padding-inline-start: 1.2rem;
  font-family: var(--f-mono); font-size: .74rem; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase; color: var(--ink-3);
  display: inline-flex; align-items: center; gap: .7rem;
}
.s-index::before {
  content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 50%;
  transform: translateY(-50%); inline-size: 15px; block-size: 2px; background: var(--red);
}
.s-index b { color: var(--ink); font-weight: 700; }
.s-index.on-void b { color: #fff; }
.s-index.on-void { color: var(--void-ink-3); }

.text-mute { color: var(--ink-3); }

/* ---------- Layout primitives ---------- */
.container { inline-size: 100%; max-inline-size: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container.wide { max-inline-size: var(--container-wide); }
.container.narrow { max-inline-size: var(--container-narrow); }
.section { padding-block: clamp(4.5rem, 10vw, 9rem); position: relative; }
.section.tight { padding-block: clamp(3rem, 6vw, 5rem); }

.void { background: var(--void); color: var(--void-ink); }
.void h1, .void h2, .void h3, .void h4 { color: #fff; }
.void .lead { color: var(--void-ink-2); }
.paper-2 { background: var(--paper-2); }
.paper-2, .void { border-block: 1px solid var(--hair-2); }
.void { border-color: var(--void-hair-2); }

.grid { display: grid; gap: clamp(1rem, 2vw, 1.6rem); }

/* Section header — editorial, asymmetric */
.s-head { display: grid; gap: 1.1rem; margin-block-end: clamp(2.4rem, 5vw, 4rem); }
.s-head h2 { max-inline-size: 18ch; }
.s-head .lead { margin-block-start: .3rem; }
.s-head.split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: end; gap: clamp(1.4rem, 4vw, 4rem);
}
.s-head.split .lead { align-self: end; }
.s-head.center { justify-items: center; text-align: center; }
.s-head.center .lead { margin-inline: auto; }

/* (grid wash removed — pages use a clean light background instead) */
.blueprint::before { display: none; }
.blueprint > * { position: relative; z-index: 1; }

/* Registration / corner ticks (engineering marks) */
.ticked { position: relative; }
.ticked::before, .ticked::after {
  content: ""; position: absolute; inline-size: 12px; block-size: 12px; z-index: 4;
  border-color: var(--blue); pointer-events: none;
}
.ticked::before { inset-block-start: 9px; inset-inline-start: 9px; border-block-start: 2px solid; border-inline-start: 2px solid; }
.ticked::after { inset-block-end: 9px; inset-inline-end: 9px; border-block-end: 2px solid; border-inline-end: 2px solid; }

/* ---------- Vertical side rail (desktop) ---------- */
.side-rail {
  position: fixed; inset-block: 0; inset-inline-start: 0; inline-size: var(--rail); z-index: var(--z-rail);
  display: none; flex-direction: column; align-items: center; justify-content: space-between;
  padding-block: calc(var(--nav-h) + 1rem) 1.4rem; pointer-events: none;
  border-inline-end: 1px solid var(--hair-2);
  mix-blend-mode: difference;
}
.side-rail .rail-text {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: var(--f-mono); font-size: .68rem; letter-spacing: .34em; text-transform: uppercase;
  color: #fff; opacity: .8;
}
.side-rail .rail-tick { writing-mode: vertical-rl; font-family: var(--f-mono); font-size: .62rem; letter-spacing: .2em; color: #fff; opacity: .55; }
[dir="rtl"] .side-rail { inset-inline-start: auto; inset-inline-end: 0; border-inline: none; border-inline-start: 1px solid var(--hair-2); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  font-family: var(--f-body); font-weight: 600; font-size: .96rem; letter-spacing: -0.01em;
  padding: .85rem 1.5rem; border-radius: 26px; min-block-size: 50px;
  border: 1.5px solid transparent; position: relative; white-space: nowrap;
  transition: transform var(--d1) var(--ease), background var(--d1) ease, color var(--d1) ease,
              border-color var(--d1) ease, box-shadow var(--d2) var(--ease),
              border-radius .34s cubic-bezier(.2, .8, .2, 1.2);
  will-change: transform;
}
.btn svg { inline-size: 1.1em; block-size: 1.1em; flex: none; }
.btn .arrow { transition: transform var(--d1) var(--ease); }
.btn:hover .arrow { transform: translateX(4px); }
[dir="rtl"] .btn .arrow { transform: scaleX(-1); }
[dir="rtl"] .btn:hover .arrow { transform: scaleX(-1) translateX(4px); }

/* Red action buttons — muted brick-red tone (matches the provided reference) */
.btn-primary { background: #A83836; color: #fff; box-shadow: 0 12px 28px -14px rgba(168,56,54,.6); }
.btn-primary:hover { background: #8E2F2D; transform: translateY(-2px); box-shadow: 0 18px 36px -14px rgba(168,56,54,.65); }
.btn-primary:active { transform: translateY(0); }

.btn-ink { background: var(--ink); color: var(--paper); }
.btn-ink:hover { background: #000; transform: translateY(-2px); }
.void .btn-ink { background: #fff; color: var(--void); }
.void .btn-ink:hover { background: var(--void-ink); }

.btn-ghost { border-color: var(--hair); color: var(--ink); background: transparent; }
.btn-ghost:hover { border-color: var(--ink); transform: translateY(-2px); }
.void .btn-ghost { border-color: var(--void-hair); color: var(--void-ink); }
.void .btn-ghost:hover { border-color: #fff; color: #fff; background: rgba(255,255,255,.04); }

.btn-lg { padding: 1.05rem 2rem; font-size: 1.04rem; min-block-size: 58px; border-radius: 30px; }
.btn-block { inline-size: 100%; }

/* ---- Material 3 "expressive" press: ripple + shape morph (adapted, vanilla).
   Applied to .btn via app.js; the gold .cat-btn is deliberately excluded. ---- */
.btn .md3-label { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: inherit; }
.btn .md3-surface { position: absolute; inset: 0; z-index: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
/* hover / pressed state layer (MD3 on-color overlay) */
.btn .md3-surface::before { content: ""; position: absolute; inset: 0; background: currentColor; opacity: 0; transition: opacity .2s linear; }
.btn:hover .md3-surface::before { opacity: .08; }
.btn[data-pressed="true"] .md3-surface::before { opacity: .12; }
/* the expanding ripple */
.md3-ripple { position: absolute; border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%) scale(0); opacity: .26;
  background: radial-gradient(closest-side, currentColor, transparent);
  transition: transform 450ms cubic-bezier(.2, 0, 0, 1), opacity 560ms linear; }
.md3-ripple.go { transform: translate(-50%, -50%) scale(1); opacity: 0; }
/* shape morph (round pill squishes in) + leading-icon squish on press */
.btn[data-pressed="true"] { border-radius: 14px; }
.btn-lg[data-pressed="true"] { border-radius: 18px; }
.btn svg:not(.arrow) { transition: transform var(--d1) cubic-bezier(.2, .8, .2, 1.2); }
.btn[data-pressed="true"] svg:not(.arrow) { transform: scale(.9); }
@media (prefers-reduced-motion: reduce) {
  .md3-ripple { display: none; }
  .btn[data-pressed="true"] { border-radius: var(--r-pill); }
  .btn[data-pressed="true"] svg:not(.arrow) { transform: none; }
}

/* Inline editorial link with underline grow */
.ilink {
  display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--ink);
  padding-block-end: 2px; position: relative;
}
.ilink::after { content: ""; position: absolute; inset-block-end: 0; inset-inline: 0; block-size: 1.5px; background: currentColor; transform: scaleX(0); transform-origin: inline-start; transition: transform var(--d2) var(--ease); }
.ilink:hover::after { transform: scaleX(1); }
.ilink .arrow { transition: transform var(--d1) var(--ease); }
.ilink:hover .arrow { transform: translateX(4px); }
[dir="rtl"] .ilink .arrow { transform: scaleX(-1); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset-block-start: 0; inset-inline: 0; z-index: var(--z-sticky);
  block-size: var(--nav-h); display: flex; align-items: center;
  transition: background var(--d2) ease, box-shadow var(--d2) ease, block-size var(--d2) ease, backdrop-filter var(--d2) ease;
}
.site-header.scrolled {
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  backdrop-filter: saturate(150%) blur(16px);
  box-shadow: 0 1px 0 var(--hair);
  --nav-h: 64px;
}
/* Desktop: on scroll the bar condenses into a floating, rounded, bordered
   island detached from the top edge (adapted from the header-2 pattern). */
@media (min-width: 1241px) {
  .site-header.scrolled {
    background: transparent;
    backdrop-filter: none;
    box-shadow: none;
    padding-block-start: 13px;
    --nav-h: 78px;
  }
  .site-header.scrolled .header-inner {
    max-inline-size: 1280px;
    padding-block: .5rem;
    padding-inline: 1.15rem;
    border-radius: 18px;
    background: color-mix(in srgb, var(--paper) 86%, transparent);
    -webkit-backdrop-filter: saturate(150%) blur(16px);
    backdrop-filter: saturate(150%) blur(16px);
    border: 1px solid var(--hair);
    box-shadow: 0 22px 46px -26px rgba(20, 22, 30, .5), 0 3px 12px -6px rgba(20, 22, 30, .2);
  }
}
.header-inner { inline-size: 100%; display: flex; align-items: center; gap: 1.5rem;
  transition: max-inline-size var(--d3) var(--ease), padding var(--d3) var(--ease),
              border-radius var(--d3) var(--ease), background var(--d2) ease,
              box-shadow var(--d2) ease, border-color var(--d2) ease; }
.brand { display: inline-flex; align-items: center; }
.brand-logo { block-size: 48px; inline-size: auto; display: block; transition: transform var(--d3) var(--ease-spring); }
.brand:hover .brand-logo { transform: scale(1.05) rotate(-1deg); }
.site-header.scrolled .brand-logo { block-size: 42px; }
.site-footer .brand-logo { block-size: 96px; }
.mobile-drawer .brand-logo { block-size: 54px; }

/* Brand slogan lockup — refined two-line tagline beside the header logo */
.brand-slogan {
  display: flex; flex-direction: column; justify-content: center; gap: 3px;
  margin-inline-start: .9rem; padding-inline-start: .95rem; min-block-size: 36px;
  border-inline-start: 1px solid rgba(255,255,255,.22); line-height: 1;
  transition: border-color var(--d2) ease;
}
.scrolled .brand-slogan { border-inline-start-color: var(--hair); }
.brand-slogan .l1 {
  font-family: var(--f-mono); font-size: .56rem; font-weight: 500; letter-spacing: .34em;
  text-transform: uppercase; color: rgba(255,255,255,.6); transition: color var(--d2) ease;
}
.scrolled .brand-slogan .l1 { color: var(--ink-3); }
.brand-slogan .l2 {
  font-family: var(--f-display); font-weight: 700; font-size: 1rem; letter-spacing: .015em;
  color: #fff; transition: color var(--d2) ease;
}
.scrolled .brand-slogan .l2 { color: var(--ink); }
@media (max-width: 1320px) { .brand-slogan { display: none; } }

/* nav links — light on dark hero, ink when scrolled */
.main-nav { display: flex; align-items: center; gap: .15rem; margin-inline-start: auto; }
.nav-link {
  position: relative; padding: .5rem .85rem; border-radius: var(--r-sm);
  font-family: var(--f-mono); font-size: .82rem; font-weight: 500; letter-spacing: .02em;
  color: #fff; opacity: .82; transition: opacity var(--d1) ease, color var(--d1) ease;
}
.on-dark-hero:not(.scrolled) .nav-link { color: #fff; }
.scrolled .nav-link { color: var(--ink); opacity: .7; }
/* Home has a LIGHT hero → header reads dark; full ink + a touch heavier for legibility (no wash) */
.site-header.light-hero:not(.scrolled) .nav-link { color: var(--ink); opacity: 1; font-weight: 600; }
.site-header.light-hero:not(.scrolled) .menu-toggle { border-color: var(--hair); color: var(--ink); }
.site-header.light-hero:not(.scrolled) .lang-btn { border-color: var(--hair); color: var(--ink); }
.site-header.light-hero:not(.scrolled) .brand-slogan { border-inline-start-color: var(--hair); }
.site-header.light-hero:not(.scrolled) .brand-slogan .l1 { color: var(--ink-3); }
.site-header.light-hero:not(.scrolled) .brand-slogan .l2 { color: var(--ink); }
.nav-link:hover { opacity: 1; }
.nav-link::after {
  content: ""; position: absolute; inset-block-end: .12rem; inset-inline: .85rem; block-size: 2px;
  background: var(--red); transform: scaleX(0); transform-origin: inline-start;
  transition: transform var(--d2) var(--ease);
}
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
.nav-link.active { opacity: 1; font-weight: 600; }

.header-actions { display: flex; align-items: center; gap: .55rem; }
/* Desktop: centered nav (logo · nav · actions) for a balanced, integrated header.
   Uses physical left/translate so it stays centred in both LTR and RTL. */
@media (min-width: 1241px) {
  .header-inner { position: relative; }
  .main-nav { position: absolute; left: 50%; transform: translateX(-50%); margin-inline-start: 0; inline-size: max-content; }
  .nav-link { white-space: nowrap; }
  .header-actions { margin-inline-start: auto; }
}

/* Language switcher */
.lang-switch { position: relative; }
.lang-btn {
  display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .7rem; border-radius: var(--r-sm);
  font-family: var(--f-mono); font-weight: 500; font-size: .8rem; letter-spacing: .04em;
  border: 1.5px solid rgba(255,255,255,.24); color: #fff; background: rgba(255,255,255,.04);
  transition: border-color var(--d1) ease, color var(--d1) ease, background var(--d1) ease;
}
.scrolled .lang-btn { border-color: var(--hair); color: var(--ink); background: transparent; }
.lang-btn:hover { border-color: var(--red); }
.lang-btn svg { inline-size: 1em; block-size: 1em; }
.lang-menu {
  position: absolute; inset-block-start: calc(100% + .55rem); inset-inline-end: 0; min-inline-size: 196px;
  background: var(--card); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--e3); padding: .35rem;
  opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.98); transform-origin: top inline-end;
  transition: opacity var(--d2) var(--ease), transform var(--d2) var(--ease), visibility var(--d2);
  z-index: var(--z-overlay);
}
.lang-switch.open .lang-menu { opacity: 1; visibility: visible; transform: none; }
.lang-option {
  display: flex; align-items: center; gap: .7rem; inline-size: 100%; padding: .58rem .7rem; border-radius: var(--r-sm);
  text-align: start; font-weight: 500; color: var(--ink); transition: background var(--d1) ease;
}
.lang-option:hover { background: var(--paper-2); }
.lang-option .flag { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .06em; color: var(--ink-3); }
.lang-option.active { color: var(--red); }
.lang-option.active .flag { color: var(--red); }
.lang-option .tick { margin-inline-start: auto; color: var(--red); opacity: 0; }
.lang-option .tick svg { inline-size: 1em; block-size: 1em; }
.lang-option.active .tick { opacity: 1; }

/* Header actions stack — CTA on top, the language flags lined up directly beneath it */
.ha-stack { display: flex; flex-direction: column; align-items: flex-end; gap: .42rem; }
.lang-flags { display: flex; align-items: center; gap: .34rem; }
.flag-opt {
  inline-size: 26px; block-size: 17px; padding: 0; line-height: 0; cursor: pointer; background: none;
  border: 1px solid rgba(128,132,138,.4); border-radius: 3px; overflow: hidden; opacity: .5;
  transition: opacity var(--d1) ease, transform var(--d1) ease, box-shadow var(--d1) ease;
}
.flag-opt svg { inline-size: 100%; block-size: 100%; display: block; }
.flag-opt:hover { opacity: .92; transform: translateY(-1px); }
.flag-opt.active { opacity: 1; box-shadow: 0 0 0 2px var(--red); border-color: var(--red); }
[dir="rtl"] .ha-stack { align-items: flex-start; }

/* Mobile nav */
.menu-toggle { display: none; inline-size: 48px; block-size: 48px; align-items: center; justify-content: center; border-radius: var(--r-sm); border: 1.5px solid rgba(255,255,255,.24); color: #fff; }
.scrolled .menu-toggle { border-color: var(--hair); color: var(--ink); }
/* Animated menu toggle — line morphs hamburger → close hook (header-2 icon) */
.menu-toggle .mt-icon { inline-size: 22px; block-size: 22px; transition: transform .3s ease-in-out; }
.menu-toggle .mt-bar { stroke-dasharray: 12 63; transition: stroke-dasharray .3s ease-in-out, stroke-dashoffset .3s ease-in-out; }
body.menu-open .menu-toggle .mt-icon { transform: rotate(-45deg); }
body.menu-open .menu-toggle .mt-bar { stroke-dasharray: 20 300; stroke-dashoffset: -32.42px; }

.mobile-drawer {
  position: fixed; top: 0; bottom: 0; right: 0; left: auto; inline-size: min(86vw, 360px);
  z-index: var(--z-modal); background: var(--void); color: var(--void-ink);
  padding: clamp(4.6rem, 17vw, 5.5rem) clamp(1.4rem, 6vw, 2rem) 2rem;
  display: flex; flex-direction: column; gap: .1rem; transform: translateX(100%);
  transition: transform var(--d3) var(--ease); overflow-y: auto;
  box-shadow: -24px 0 60px -24px rgba(0, 0, 0, .65);
}
/* RTL: drawer mirrors to the left edge and slides in from the left */
[dir="rtl"] .mobile-drawer { right: auto; left: 0; transform: translateX(-100%); box-shadow: 24px 0 60px -24px rgba(0, 0, 0, .65); }
.drawer-close { position: absolute; inset-block-start: 1.1rem; inset-inline-end: 1.1rem; inline-size: 42px; block-size: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-sm); border: 1px solid var(--void-hair); color: var(--void-ink); background: transparent; transition: background var(--d1) ease, border-color var(--d1) ease; }
.drawer-close:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .3); }
.drawer-close svg { inline-size: 20px; block-size: 20px; }
body.menu-open { overflow: hidden; }
body.menu-open .mobile-drawer { transform: none; }
.mobile-drawer a.m-link {
  font-family: var(--f-display); font-weight: 700; font-size: clamp(1.7rem, 7vw, 2.4rem); color: #fff;
  padding-block: .75rem; border-block-end: 1px solid var(--void-hair);
  display: flex; align-items: baseline; gap: .9rem; transition: color var(--d1), padding-inline-start var(--d2) var(--ease);
}
.mobile-drawer a.m-link .mx { font-family: var(--f-mono); font-size: .8rem; color: var(--void-ink-3); font-weight: 500; }
.mobile-drawer a.m-link:hover, .mobile-drawer a.m-link.active { color: var(--red-bright); padding-inline-start: .4rem; }
.scrim { position: fixed; inset: 0; z-index: var(--z-overlay); background: rgba(8,10,16,.55); opacity: 0; visibility: hidden; transition: opacity var(--d2); }
body.menu-open .scrim { opacity: 1; visibility: visible; }

/* ============================================================
   HERO — editorial, asymmetric
   ============================================================ */
.hero {
  position: relative; min-block-size: clamp(600px, 86vh, 880px); display: flex; align-items: center;
  padding-block: calc(var(--nav-h) + 2rem) 3rem; background: var(--paper); color: var(--ink); overflow: hidden;
}
@media (min-width: 1025px) and (max-height: 900px) {
  .hero .display { font-size: clamp(2.3rem, 4.4vw, 4.4rem); }
  .hero-stats { margin-block-start: 1.9rem; padding-block-start: 1.4rem; }
  .hero .display { margin-block: 1rem 1.1rem; }
}
.hero-photo {
  position: absolute; inset: 0; z-index: 0;
  background: var(--void) url("../img/hero.webp") center bottom / cover no-repeat;
  transform: scale(1.04); will-change: transform; transition: transform .5s var(--ease);
}
.hero-scrim {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(to right, rgba(10,12,17,.80) 0%, rgba(10,12,17,.42) 32%, rgba(10,12,17,.08) 60%, transparent 80%),
    linear-gradient(to bottom, rgba(10,12,17,.52) 0%, rgba(10,12,17,.06) 26%, transparent 48%);
}
/* RTL (Arabic): copy flows to the right, so darken the right side instead.
   Gradient directions don't auto-mirror — flip explicitly. Desktop only;
   the phone scrim (≤820px) is symmetric and needs no flip. */
@media (min-width: 821px) {
  [dir="rtl"] .hero-scrim {
    background:
      linear-gradient(to left, rgba(10,12,17,.80) 0%, rgba(10,12,17,.42) 32%, rgba(10,12,17,.08) 60%, transparent 80%),
      linear-gradient(to bottom, rgba(10,12,17,.52) 0%, rgba(10,12,17,.06) 26%, transparent 48%);
  }
  /* shift the lineup so the visible trucks sit on the left, clear of the text */
  [dir="rtl"] .hero-photo { background-position: left bottom; }
}
.hero-glow { position: absolute; inset-block-start: -16%; inset-inline-end: -8%; inline-size: 56vw; max-inline-size: 760px; aspect-ratio: 1; background: radial-gradient(circle, rgba(36,64,234,.34), transparent 64%); filter: blur(14px); pointer-events: none; }
.hero-glow.red { inset-block-end: -22%; inset-block-start: auto; inset-inline-start: -14%; inset-inline-end: auto; inline-size: 40vw; max-inline-size: 520px; background: radial-gradient(circle, rgba(226,35,26,.26), transparent 66%); }

.hero-inner { position: relative; z-index: 2; inline-size: 100%; }
.hero-copy { max-inline-size: 660px; }

/* ── Full-width hero: full-bleed photo (background cross-slides) + fixed copy overlay ── */
.hero-fw { display: block; min-block-size: auto; align-items: stretch; }
.hero-fw .container { position: relative; z-index: 2; }
.hero-aura { display: none; }

/* Stage = clip container; no frame — soft float-shadow only */
.hero-stage { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--r-lg); background: var(--paper); box-shadow: 0 34px 70px -54px rgba(20,22,30,.38); }
/* background track — only the photo slides; copy / scrim / badge / dots stay fixed above it */
.hero-track { position: relative; z-index: 0; display: flex; direction: ltr; will-change: transform; transition: transform .85s cubic-bezier(.7,0,.2,1); }
@media (prefers-reduced-motion: reduce) { .hero-track { transition: none; } }
.hero-slide { position: relative; flex: 0 0 100%; min-inline-size: 0; }
/* slide content follows the document direction (so slide 2's image seats on the side
   opposite the copy); the track itself stays LTR so the slide maths is direction-agnostic */
[dir="rtl"] .hero-slide { direction: rtl; }
.hs-img { display: block; inline-size: 100%; block-size: clamp(600px, 64vh, 720px); object-fit: cover; object-position: 50% 36%; }
/* slide 2 (road truck) — full photo by height (no top/bottom crop), seated to the right and
   pushed outward so the truck's FRONT clears the copy; inner edge dissolved into the page */
.hero-slide-2 { background: var(--paper); }
.hero-slide-2 .hs-img { position: absolute; inset-block: 0; inset-inline-end: -15%; inset-inline-start: auto;
  inline-size: auto; max-inline-size: none; block-size: 100%; object-fit: contain; object-position: right center;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 14%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 14%, #000 100%); }
[dir="rtl"] .hero-slide-2 .hs-img { object-position: left center;
  -webkit-mask-image: linear-gradient(to left, transparent 0, #000 14%, #000 100%);
  mask-image: linear-gradient(to left, transparent 0, #000 14%, #000 100%); }
/* slide 3 (product collage) — fills the stage; light collage backdrop matches the page */
.hero-slide-3 .hs-img { object-position: 50% 50%; }
/* RTL: nudge slide 3 a touch to the left. The photo fills the stage width exactly
   (vertical crop), so object-position can't pan horizontally — a small scale opens
   just enough slack to shift left without exposing an edge. */
[dir="rtl"] .hero-slide-3 .hs-img { transform: scale(1.07) translateX(-2.5%); }

/* slide indicator dots */
.hero-dots { position: absolute; z-index: 3; inset-inline: 0; inset-block-end: clamp(.9rem, 2vw, 1.5rem); display: flex; justify-content: center; gap: .5rem; pointer-events: none; }
.hero-dot { pointer-events: auto; inline-size: 26px; block-size: 5px; padding: 0; border: 0; border-radius: var(--r-pill); cursor: pointer;
  background: rgba(90,98,108,.55); box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); transition: inline-size var(--d2) var(--ease), background var(--d1) ease; }
.hero-dot:hover { background: rgba(90,98,108,.8); }
.hero-dot.is-active { inline-size: 42px; background: var(--red); box-shadow: inset 0 0 0 1px rgba(255,255,255,.4); }
.hero-fw .display { font-size: clamp(2.1rem, 3.8vw, 3.7rem); margin-block: .7rem 1rem; }
.hero-fw .lead { font-size: .98rem; }
.hs-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(96deg, rgba(244,245,247,.99) 0%, rgba(244,245,247,.97) 30%, rgba(244,245,247,.60) 46%, rgba(244,245,247,0) 62%); }
[dir="rtl"] .hs-scrim { background: linear-gradient(264deg, rgba(244,245,247,.99) 0%, rgba(244,245,247,.97) 30%, rgba(244,245,247,.60) 46%, rgba(244,245,247,0) 62%); }
.hs-copy { position: absolute; z-index: 2; inset-block-start: 50%; transform: translateY(-50%); inset-inline-start: clamp(1.4rem, 5vw, 4.4rem); inset-inline-end: clamp(1.4rem, 5vw, 4.4rem); max-inline-size: min(540px, 50%); }
.hero-fw .kicker { color: var(--ink-2); }
.hero-fw .lead { max-inline-size: 40ch; }
.hero-fw .hero-cta { margin-block-start: 1.8rem; }
.hero-fw .btn-ghost { background: rgba(255,255,255,.62); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.hero-fw .hero-badge { inset-inline-start: auto; inset-inline-end: clamp(1.1rem,3vw,2rem); inset-block-end: clamp(1.1rem,3vw,2rem); }
/* hero product strip — frameless; the light studio backdrop of each photo is
   knocked out with multiply so the parts blend straight into the page. No box,
   no border, no dividers; photos kept close together. */
.hg-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-block-start: clamp(.4rem, 1vw, .8rem); }
/* contain so the whole part is visible (never cropped); the light studio backdrop blends via multiply */
.hg-thumb { display: block; aspect-ratio: 5 / 4; background: transparent center / contain no-repeat; transition: transform var(--d2) var(--ease); }
.hg-thumb:hover { transform: translateY(-3px) scale(1.03); }
/* technical chip — sharp anthracite plate with a faint brushed-metal sheen */
.hero-badge { position: absolute; z-index: 4; display: inline-flex; align-items: baseline; gap: .5rem; line-height: 1; padding: .5rem .75rem; border-radius: var(--r-xs); background-color: var(--anthracite); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 3px); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 12px 28px -14px rgba(0,0,0,.5); }
.hero-badge b { font-family: var(--f-display); font-weight: 800; font-size: 1.1rem; color: #fff; letter-spacing: -.01em; }
.hero-badge i { font-family: var(--f-mono); font-style: normal; font-size: .54rem; letter-spacing: .2em; color: var(--red-bright); }

.hero-foot { display: flex; align-items: flex-end; flex-wrap: wrap; gap: clamp(1.4rem, 4vw, 3rem); margin-block-start: clamp(1.6rem, 3vw, 2.4rem); }
.hero-foot .hero-stats { margin-block-start: 0; padding-block-start: 0; border-block-start: 0; }
/* Catalogue download — flat, saturated amber button (no emboss/gloss) */
.hero-cat-link {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--f-body); font-weight: 600; font-size: .94rem; letter-spacing: .005em;
  color: #fff; padding: .72rem 1.4rem; border-radius: 10px; border: none;
  background: #E8890F;
  transition: background var(--d1) ease;
}
/* sits on its own line under the hero CTA row */
.hs-copy .hero-cat-link { margin-block-start: 1rem; }
.hero-cat-link svg { inline-size: 16px; block-size: 16px; color: #fff; }
[dir="rtl"] .hero-cat-link svg { transform: scaleX(-1); }
.hero-cat-link:hover { background: #CE7809; }
@media (max-width: 820px) {
  /* full-bleed photo banner — edge-to-edge + up under the header; copy below */
  .hero { padding-block: 0 2.4rem; }
  .hero > .container { padding-inline: 0; }
  .hero .hero-stage { border-radius: 0; box-shadow: none; }
  .hs-img { block-size: clamp(300px, 60vw, 440px); }
  /* on mobile the copy sits below, so slide 2 is a plain full banner like slide 1 (incl. RTL) */
  .hero-slide-2 .hs-img, [dir="rtl"] .hero-slide-2 .hs-img { position: static; inset: auto; inline-size: 100%; max-inline-size: none; block-size: clamp(300px, 60vw, 440px); object-fit: cover; object-position: 50% 50%; -webkit-mask-image: none; mask-image: none; }
  .hs-scrim { display: none; }
  .hs-copy { position: static; transform: none; inset: auto; max-inline-size: 100%; margin-block-start: 1.5rem; padding-inline: var(--gutter); padding-block-end: clamp(.5rem, 2vw, .9rem); }
  .hg-thumbs, .hero-foot { box-sizing: border-box; padding-inline: var(--gutter); }
  .hg-thumbs { grid-template-columns: repeat(2, 1fr); }
  .hero-aura { inset-inline-end: -30%; opacity: .6; }
  /* badge sits just under the header (top of photo is now behind the header) */
  .hero-fw .hero-badge { inset-block-start: calc(var(--nav-h) + .5rem); inset-block-end: auto; inset-inline-end: var(--gutter); inset-inline-start: auto; }
  /* dots ride the bottom of the photo */
  .hero-dots { inset-block-end: auto; inset-block-start: calc(clamp(300px, 60vw, 440px) - 1.7rem); }
}

/* ============================================================
   DESKTOP — full-bleed hero (all languages). The photo runs edge-to-edge
   and up under the header (header overlays it, no frame, no rounded corners).
   ============================================================ */
@media (min-width: 821px) {
  .hero { padding-block-start: 0; }
  /* unwrap the container so the photo runs full content-width (no scrollbar gap), no frame */
  .hero > .container { max-inline-size: none; padding-inline: 0; }
  .hero .hero-stage { border-radius: 0; box-shadow: none; max-inline-size: none; }
  /* the strip + foot below keep the normal centered container + gutters */
  .hero .hg-thumbs, .hero .hero-foot {
    box-sizing: border-box; inline-size: 100%; max-inline-size: var(--container-wide); margin-inline: auto; padding-inline: var(--gutter);
  }
  .hero .hs-img { block-size: clamp(600px, 88vh, 960px); }
  /* copy aligns to the page content gutter (matches the strip below) and clears the header:
     centre is biased down by half the fixed-header height so the kicker never rides
     under the transparent nav on short viewports */
  .hero .hs-copy {
    inset-block-start: calc(50% + var(--nav-h) / 2); transform: translateY(-50%);
    inset-inline-start: max(var(--gutter), calc((100vw - var(--container-wide)) / 2 + var(--gutter)));
    inset-inline-end: var(--gutter); max-inline-size: min(600px, 44%);
  }
  /* slide 2 truck — near the copy: faded edge lightly meets the text, opaque front just clears it */
  .hero-slide-2 .hs-img {
    inset-inline-end: -9%;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 100%);
  }
  [dir="rtl"] .hero-slide-2 .hs-img {
    inset-inline-end: -4%;
    -webkit-mask-image: linear-gradient(to left, transparent 0, #000 12%, #000 100%);
    mask-image: linear-gradient(to left, transparent 0, #000 12%, #000 100%);
  }
  /* badge / dots inset from the viewport edges */
  .hero-fw .hero-badge { inset-inline-end: var(--gutter); inset-block-end: clamp(1.4rem, 3vh, 2.4rem); }
}
/* Short laptop viewports: the copy stack (kicker + title + lead + CTAs + catalogue link)
   nearly fills the 88vh photo — tighten it so it clears both the header and the photo edge */
@media (min-width: 821px) and (max-height: 820px) {
  .hero-fw .display { font-size: clamp(1.9rem, 3.1vw, 3rem); margin-block: .8rem 1rem; }
  .hero-fw .lead { font-size: .94rem; }
  .hero-fw .hero-cta { margin-block-start: 1.3rem; }
  .hs-copy .hero-cat-link { margin-block-start: .7rem; }
}
.hero .display { color: var(--ink); margin-block: 1.2rem 1.4rem; }
.hero .display .accent { color: var(--red); position: relative; display: inline-block; }
.hero .display .accent::after {
  content: ""; position: absolute; inset-block-end: .04em; inset-inline: 0; block-size: .06em; background: var(--red);
  transform: scaleX(0); transform-origin: inline-start; animation: lineGrow var(--d4) var(--ease) .9s forwards;
}
.hero .lead { color: var(--ink-2); max-inline-size: 46ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: .85rem; margin-block-start: 2.3rem; }
.hero .btn-ghost { border-color: var(--hair); color: var(--ink); background: transparent; }
.hero .btn-ghost:hover { border-color: var(--ink); color: var(--ink); background: transparent; transform: translateY(-2px); }

.hero-stats { display: grid; grid-template-columns: repeat(3, auto); gap: clamp(1.4rem, 4vw, 3.4rem); margin-block-start: 3rem; padding-block-start: 2rem; border-block-start: 1px solid var(--hair); inline-size: fit-content; }
.hero-stats .stat-num { font-family: var(--f-display); font-weight: 800; font-size: clamp(2rem, 3.2vw, 2.8rem); color: var(--ink); line-height: 1; letter-spacing: -0.03em; }
.hero-stats .stat-num span:last-child { color: var(--red); }
.hero-stats .stat-lbl { font-family: var(--f-mono); font-size: .72rem; color: var(--ink-3); margin-block-start: .5rem; max-inline-size: 16ch; line-height: 1.4; letter-spacing: .02em; }

/* hero stats row — numbers on the left, gold catalogue CTA at the far right */
.hero-stats-row { display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(1.6rem, 4vw, 3.2rem); inline-size: 100%; margin-block-start: 3rem; flex-wrap: wrap; }
.hero-stats-row .hero-stats { margin-block-start: 0; }
.hero-cat-cta { margin-block-end: .25rem; }
@media (max-width: 720px) { .hero-stats-row { margin-block-start: 2rem; } .hero-cat-cta { inline-size: 100%; } }

/* hero bottom meta bar (echoes the spec-sheet language) */
.hero-meta { position: absolute; inset-inline: 0; inset-block-end: 1.5rem; z-index: 2; display: flex; justify-content: space-between; gap: 1rem; padding-inline: var(--gutter); pointer-events: none; }
.hero-meta-tag, .hero-meta-fig { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--void-ink-2); display: inline-flex; align-items: center; gap: .5rem; }
.hero-meta-tag .mc-dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--red-bright); }

.scroll-hint { position: absolute; inset-block-end: 3.2rem; inset-inline-start: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .5rem; color: var(--void-ink-3); font-family: var(--f-mono); font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; }
.scroll-hint .mouse { inline-size: 20px; block-size: 32px; border: 1.5px solid var(--void-ink-3); border-radius: 12px; position: relative; }
.scroll-hint .mouse::after { content: ""; position: absolute; inset-block-start: 6px; inset-inline-start: 50%; transform: translateX(-50%); inline-size: 3px; block-size: 6px; border-radius: 2px; background: var(--red-bright); animation: wheel 1.8s var(--ease) infinite; }

/* ============================================================
   TICKER — kinetic brand marquee
   ============================================================ */
/* ============================================================
   BRANDS — vertical "spotlight" roll. One brand fills the band at
   a time, holds, then slides up to the next. Calm + slow.
   ============================================================ */
/* OEM compatibility strip — framed datasheet band, stamped wordmarks */
.brands { position: relative; overflow: hidden; background: var(--paper); color: var(--ink); padding-block: clamp(2.4rem, 5vw, 3.8rem); border-block: 1px solid var(--hair); }
.brands-body { position: relative; z-index: 1; }
.brands-eyebrow { display: flex; align-items: center; justify-content: center; gap: .6rem; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-3); margin-block-end: clamp(1.5rem, 3vw, 2.3rem); }
.brands-eyebrow::before, .brands-eyebrow::after { content: ""; block-size: 1px; inline-size: clamp(20px, 5vw, 64px); background: var(--hair); }
.brands-eyebrow .be-dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--red); animation: livedot 2.4s var(--ease) infinite; }
.brand-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(.9rem, 2.4vw, 2.2rem); }
.brand-name { position: relative; display: inline-flex; align-items: center; font-family: var(--f-display); font-weight: 700; font-size: clamp(1.05rem, 2vw, 1.5rem); letter-spacing: -0.01em; color: var(--ink-3); line-height: 1; padding-inline-end: clamp(.9rem, 2.4vw, 2.2rem); transition: color var(--d1) ease; cursor: default; }
/* hairline separators between marks (steel column rules) */
.brand-name::before { content: ""; position: absolute; inset-inline-end: 0; inset-block: -.15em; inline-size: 1px; background: var(--hair-2); }
.brand-name:last-child { padding-inline-end: 0; }
.brand-name:last-child::before { display: none; }
.brand-name::after { content: ""; position: absolute; inset-inline-start: 0; inset-inline-end: clamp(.9rem, 2.4vw, 2.2rem); inset-block-end: -.45em; block-size: 2px; background: var(--red); transform: scaleX(0); transform-origin: inline-start; transition: transform var(--d2) var(--ease); }
.brand-name:hover { color: var(--ink); }
.brand-name:hover::after { transform: scaleX(1); }

/* Hydraulic page — range (list + stacked photos) */
.hyd-range { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
/* Grid items default to min-inline-size:auto (=min-content). The OEM ref-table
   has min-inline-size:540px, so without this the track is forced to ~540px and
   .ref-table-wrap's overflow-x:auto never engages — the table is clipped off the
   right edge on mobile (all languages). min:0 lets the wrapper scroll instead. */
.hyd-range > * { min-inline-size: 0; }
.hyd-range-media { display: flex; flex-direction: column; gap: clamp(1.2rem, 2.5vw, 1.8rem); }
.hyd-range-media img { inline-size: 100%; block-size: auto; display: block; border-radius: var(--r); border: 1px solid var(--hair); }
@media (max-width: 860px) { .hyd-range { grid-template-columns: 1fr; } }

/* ============================================================
   CATEGORIES — editorial index list
   ============================================================ */
.index-list { border-block-start: 1px solid var(--hair); }
.index-row {
  position: relative; display: grid; grid-template-columns: 4.5rem minmax(0,1fr) minmax(0,1.1fr) auto;
  gap: clamp(1rem, 3vw, 2.4rem); align-items: center; padding-block: clamp(1.8rem, 4vw, 2.8rem);
  border-block-end: 1px solid var(--hair); overflow: hidden; transition: padding-inline-start var(--d2) var(--ease);
}
.index-row::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; inline-size: 0; background: var(--ink); z-index: 0; transition: inline-size var(--d3) var(--ease); }
.index-row:hover { padding-inline-start: 1.2rem; }
.index-row:hover::before { inline-size: 100%; }
.index-row > * { position: relative; z-index: 1; transition: color var(--d2) ease; }
.index-row:hover, .index-row:hover .ix-num, .index-row:hover .ix-desc, .index-row:hover h3 { color: var(--paper); }
.index-row:hover .ix-num { color: var(--red-bright); }
.ix-num { font-family: var(--f-mono); font-size: 1rem; font-weight: 600; color: var(--red); }
.ix-title h3 { font-size: clamp(1.6rem, 3.4vw, 2.6rem); font-weight: 700; letter-spacing: -0.03em; }
.ix-ico { display: inline-flex; margin-inline-start: .2rem; color: var(--ink-3); transition: color var(--d2) ease; }
.index-row:hover .ix-ico { color: var(--paper); }
.ix-ico svg { inline-size: 22px; block-size: 22px; }
.ix-desc { color: var(--ink-2); font-size: .98rem; line-height: 1.5; }
.ix-go { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--f-mono); font-size: .8rem; font-weight: 500; letter-spacing: .04em; white-space: nowrap; color: var(--ink); }
.ix-go .arrow { transition: transform var(--d2) var(--ease); }
.index-row:hover .ix-go .arrow { transform: translateX(6px); }
[dir="rtl"] .ix-go .arrow { transform: scaleX(-1); }
[dir="rtl"] .index-row:hover .ix-go .arrow { transform: scaleX(-1) translateX(6px); }

/* ============================================================
   STATS — oversized mono figures
   ============================================================ */
.stat-band { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-block: 1px solid var(--void-hair); }
.stat-cell { padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1rem,2vw,1.6rem); border-inline-start: 1px solid var(--void-hair); }
.stat-cell:first-child { border-inline-start: none; }
.stat-cell .num { font-family: var(--f-display); font-weight: 800; font-size: clamp(2.6rem, 6vw, 5rem); color: #fff; line-height: .9; letter-spacing: -0.04em; display: flex; align-items: baseline; gap: .04em; }
.stat-cell .num .suffix { color: var(--red-bright); font-size: .5em; }
.stat-cell .lbl { font-family: var(--f-mono); color: var(--void-ink-2); margin-block-start: .9rem; font-size: .78rem; letter-spacing: .02em; line-height: 1.45; max-inline-size: 22ch; }

/* ============================================================
   FEATURES — sticky head + editorial list
   ============================================================ */
/* Feature card — bordered two-column highlight block used as page intros */
.feature-card { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 3.6rem); align-items: stretch; border: 1px solid var(--hair); border-radius: var(--r-lg); padding: clamp(1.6rem, 3.5vw, 2.8rem); background: var(--card); }
.fc-text { display: flex; flex-direction: column; justify-content: center; gap: 1.6rem; min-inline-size: 0; }
.fc-head { display: flex; flex-direction: column; gap: .9rem; }
.fc-badge { align-self: flex-start; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); border: 1px solid var(--hair); border-radius: var(--r-pill); padding: .35rem .85rem; }
.fc-head h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -0.02em; line-height: 1.1; }
.fc-lead { font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.6; color: var(--ink-2); }
.fc-head .lead { color: var(--ink-2); max-inline-size: none; }
.fc-list { display: flex; flex-direction: column; gap: 1.15rem; }
.fc-item { display: flex; gap: 1rem; align-items: flex-start; }
.fc-item > svg { inline-size: 20px; block-size: 20px; color: var(--red); flex: none; margin-block-start: 2px; }
.fc-item a { color: inherit; }
.fc-it-t { font-weight: 600; color: var(--ink); }
.fc-it-d { color: var(--ink-2); font-size: .9rem; margin-block-start: .15rem; line-height: 1.5; }
.fc-media { border-radius: var(--r); background: var(--paper-2) center / cover no-repeat; min-block-size: 340px; }
.fc-contain .fc-media { background-size: contain; background-color: var(--paper); border: 1px solid var(--hair); }
@media (max-width: 860px) { .feature-card { grid-template-columns: 1fr; } .fc-media { min-block-size: 240px; } }

/* Category bento — one large + two small image tiles. The photo fills its own
   region UNCOVERED; the caption lives in a separate region below, split by one
   hairline. No text ever sits over the image. */
.cat-grid { display: grid; grid-template-columns: 1.32fr .68fr; grid-template-rows: repeat(2, minmax(232px, 1fr)); gap: clamp(.9rem, 1.5vw, 1.4rem); margin-block-start: clamp(2.2rem, 4vw, 3.4rem); }
.cat-tile { position: relative; display: flex; flex-direction: column; overflow: hidden; min-block-size: 232px; background: var(--card); border: 1px solid var(--hair); border-radius: var(--r-lg); box-shadow: var(--e1); transition: transform var(--d2) var(--ease), box-shadow var(--d2) ease, border-color var(--d2) ease; }
.cat-tile-1 { grid-row: 1 / 3; }
.cat-tile:hover { transform: translateY(-4px); box-shadow: var(--e2); border-color: var(--metal); }
/* image region — grows to fill, fully visible, never overlaid */
.cat-tile-img { flex: 1 1 auto; min-block-size: 128px; background: var(--paper-2) center / cover no-repeat; transition: transform .7s var(--ease); }
.cat-tile:hover .cat-tile-img { transform: scale(1.04); }
/* caption region — below the photo, divided by a single hairline */
.cat-tile-panel { flex: none; display: flex; flex-direction: column; gap: .3rem; padding: clamp(.95rem, 1.4vw, 1.35rem) clamp(1.05rem, 1.5vw, 1.5rem); background: var(--card); border-block-start: 1px solid var(--hair); }
.ct-title { font-family: var(--f-display); font-weight: 800; font-size: clamp(1.1rem, 1.7vw, 1.5rem); color: var(--ink); letter-spacing: -.01em; line-height: 1.08; }
.ct-desc { color: var(--ink-2); font-size: .9rem; line-height: 1.5; max-inline-size: 56ch; margin-block-start: .1rem; }
.ct-go { display: inline-flex; align-items: center; gap: .4rem; margin-block-start: .25rem; color: var(--red); font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; transition: gap var(--d1) var(--ease); }
.cat-tile:hover .ct-go { gap: .7rem; }
.ct-go svg { inline-size: 1em; block-size: 1em; }
[dir="rtl"] .ct-go svg { transform: scaleX(-1); }
@media (max-width: 760px) {
  .cat-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .cat-tile-1 { grid-row: auto; }
  .cat-tile { min-block-size: clamp(260px, 64vw, 340px); }
}

/* Quote list — request several parts at once */
.quote-fab { position: fixed; inset-block-end: clamp(1rem, 3vw, 1.8rem); inset-inline-end: clamp(1rem, 3vw, 1.8rem); z-index: var(--z-sticky); opacity: 0; transform: translateY(12px) scale(.96); pointer-events: none; transition: opacity var(--d2) var(--ease), transform var(--d2) var(--ease); }
.quote-fab.show { opacity: 1; transform: none; pointer-events: auto; }
.qf-btn { display: inline-flex; align-items: center; gap: .55rem; background: var(--ink); color: var(--paper); padding: .8rem 1.2rem; border-radius: var(--r-pill); font-weight: 600; font-size: .92rem; box-shadow: 0 16px 34px -14px rgba(20,22,30,.6); transition: transform var(--d1) var(--ease), background var(--d1) ease; }
.qf-btn:hover { transform: translateY(-2px); background: #000; }
.qf-btn svg { inline-size: 1.15em; block-size: 1.15em; }
.qf-count { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 1.4em; block-size: 1.4em; padding: 0 .35em; border-radius: var(--r-pill); background: var(--red); color: #fff; font-family: var(--f-mono); font-size: .78rem; }
[dir="rtl"] .quote-fab { inset-inline-end: auto; inset-inline-start: clamp(1rem, 3vw, 1.8rem); }
.quote-parts { border: 1px solid var(--hair); border-radius: var(--r); background: var(--card-flat); padding: .9rem 1rem; margin-block-end: 1.1rem; }
.qp-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: .6rem; }
.qp-head .mono { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.qp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.qp-list li { display: flex; align-items: center; gap: .6rem; justify-content: space-between; padding: .5rem .7rem; border-radius: var(--r-sm); background: var(--paper); border: 1px solid var(--hair-2); }
.qp-list li span { font-size: .82rem; color: var(--ink); word-break: break-word; }
.qp-remove { flex: none; display: inline-flex; align-items: center; justify-content: center; inline-size: 26px; block-size: 26px; border-radius: var(--r-sm); color: var(--ink-3); }
.qp-remove:hover { color: var(--red); background: rgba(226,35,26,.08); }
.qp-remove svg { inline-size: 15px; block-size: 15px; }
.btn.added { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.feature-split { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.feature-aside { position: sticky; inset-block-start: calc(var(--nav-h) + 1.4rem); }
.feature-aside .lead { margin-block-start: 1.2rem; }
.feature-list { display: grid; }
.feature-item { display: grid; grid-template-columns: auto 1fr; gap: clamp(1rem, 3vw, 2rem); padding-block: clamp(1.5rem, 3vw, 2.2rem); border-block-start: 1px solid var(--hair); }
.feature-item:last-child { border-block-end: 1px solid var(--hair); }
.void .feature-item { border-color: var(--void-hair); }
.feature-item .fi-num { align-self: start; margin-block-start: .3rem; font-family: var(--f-mono); font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: #fff; background-color: var(--anthracite); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 3px); padding: .22rem .45rem; border-radius: var(--r-xs); }
.void .feature-item .fi-num { color: #fff; }
.feature-item .fi-ico { display: none; }
.feature-item h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); margin-block-end: .5rem; display: flex; align-items: center; gap: .7rem; }
.feature-item h3 svg { inline-size: 22px; block-size: 22px; color: var(--blue); flex: none; }
.void .feature-item h3 svg { color: var(--blue-bright); }
.feature-item p { color: var(--ink-2); font-size: .97rem; max-inline-size: 52ch; }
.void .feature-item p { color: var(--void-ink-2); }

/* ============================================================
   VEHICLES — oversized line-art, asymmetric counts
   ============================================================ */
/* de-boxed — tiles float in white space, lift on hover (no grid lines) */
.veh-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(172px, 1fr)); gap: clamp(.6rem, 1.4vw, 1.1rem); }
.veh {
  position: relative; display: flex; flex-direction: column; gap: 1.2rem; padding: clamp(1.5rem,3vw,2.2rem) clamp(1.2rem,2.5vw,1.7rem);
  border-radius: var(--r); overflow: hidden; border: 1px solid transparent;
  transition: background var(--d2) ease, box-shadow var(--d2) ease, transform var(--d2) var(--ease), border-color var(--d2) ease;
}
.veh:hover { background: var(--card); border-color: var(--hair); box-shadow: 0 24px 48px -32px rgba(20,22,30,.32); transform: translateY(-4px); }
.veh .veh-no { font-family: var(--f-mono); font-size: .72rem; color: var(--ink-3); letter-spacing: .14em; }
.veh svg.veh-art { inline-size: 84px; block-size: 56px; color: var(--ink); }
.veh img.veh-art { inline-size: auto; block-size: 64px; max-inline-size: 100%; object-fit: contain; object-position: left center; }
.veh .veh-name { font-family: var(--f-display); font-weight: 700; font-size: 1.3rem; letter-spacing: -0.02em; margin-block-start: auto; }
.veh .veh-count { font-family: var(--f-mono); font-size: .76rem; color: var(--ink-2); }
.veh .veh-count b { color: var(--red); }
.veh .veh-go { position: absolute; inset-block-start: clamp(1.6rem,3vw,2.4rem); inset-inline-end: clamp(1.2rem,2.5vw,1.8rem); color: var(--ink-3); opacity: .45; transition: color var(--d2); }
.veh:hover .veh-go { color: var(--red); }
.veh .veh-go svg { inline-size: 18px; block-size: 18px; }
[dir="rtl"] .veh .veh-go svg { transform: scaleX(-1); }

/* ============================================================
   PROCESS — numbered editorial timeline
   ============================================================ */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-block-start: 1px solid var(--void-hair); }
.step { position: relative; padding: clamp(1.8rem,3vw,2.6rem) clamp(1.2rem,2vw,1.6rem); border-inline-start: 1px solid var(--void-hair); }
.step:first-child { border-inline-start: none; }
.step .s-no { font-family: var(--f-display); font-weight: 800; font-size: clamp(2.6rem,4vw,3.6rem); color: var(--void-card); line-height: 1; letter-spacing: -0.04em; -webkit-text-stroke: 1px var(--void-hair); }
.step .s-no b { color: var(--red-bright); -webkit-text-stroke: 0; }
.step h3 { color: #fff; font-size: 1.2rem; margin-block: 1.2rem .6rem; }
.step p { color: var(--void-ink-2); font-size: .94rem; }

/* ============================================================
   FEATURED RAIL — horizontal scroll catalog peek
   ============================================================ */
.rail-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-block-end: 1.8rem; flex-wrap: wrap; }
.rail-scroll { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(240px, 30vw, 320px); gap: clamp(.9rem,1.6vw,1.3rem); overflow-x: auto; scroll-snap-type: x mandatory; padding-block-end: 1rem; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: thin; }
.rail-scroll > * { scroll-snap-align: start; }
.rail-scroll::-webkit-scrollbar { block-size: 6px; }
.rail-scroll::-webkit-scrollbar-thumb { background: var(--hair); border-radius: 99px; }
.rail-hint { font-family: var(--f-mono); font-size: .72rem; color: var(--ink-3); letter-spacing: .04em; display: inline-flex; align-items: center; gap: .5rem; }
.rail-hint svg { inline-size: 16px; block-size: 16px; }
[dir="rtl"] .rail-hint svg { transform: scaleX(-1); }

/* ============================================================
   CTA band — oversized statement
   ============================================================ */
/* Stats row — numbers on one side, gold catalogue CTA at the opposite end */
.stats-row { display: flex; align-items: center; justify-content: space-between; gap: clamp(1.8rem, 4.5vw, 4.5rem); flex-wrap: wrap; }
.stats-row .stat-band { flex: 1 1 540px; }
.cat-cta { position: relative; flex: 0 0 auto; display: flex; flex-direction: column; align-items: stretch; gap: .85rem; }
/* very soft sun-flare halo around the button */
.cat-cta::before { content: ""; position: absolute; z-index: 0; inset: -85% -55% -60%; pointer-events: none;
  background: radial-gradient(closest-side at 50% 40%, rgba(232,196,108,.30), rgba(210,164,78,.12) 46%, transparent 72%);
  filter: blur(10px); }
.cat-btn { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: .75rem;
  padding: 1.15rem 2.3rem; border-radius: 0; min-block-size: 56px;
  background: linear-gradient(150deg, #E9C766 0%, #CDA24A 46%, #B07E2B 100%);
  color: #241803; font-family: var(--f-display); font-weight: 700; font-size: 1.04rem; letter-spacing: .005em;
  border: 1px solid rgba(255,228,160,.55);
  box-shadow: 0 14px 36px -12px rgba(205,162,74,.55), 0 2px 0 rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.42);
  transition: transform var(--d2) var(--ease), box-shadow var(--d2) ease, filter var(--d1) ease; }
.cat-btn:hover { transform: translateY(-2px); filter: brightness(1.04);
  box-shadow: 0 22px 50px -12px rgba(216,172,84,.7), 0 2px 0 rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.48); }
.cat-btn svg { inline-size: 1.02em; block-size: 1.02em; }
.cat-btn-langs { position: relative; z-index: 1; text-align: center; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .12em; color: var(--void-ink-2); }
@media (max-width: 720px) { .cat-cta { inline-size: 100%; } .cat-btn { inline-size: 100%; } }

/* Industrial CTA — a single controlled graphite band (strength), red signal edge */
.cta-band { position: relative; overflow: hidden; border-radius: var(--r-lg); padding: clamp(2.8rem, 6vw, 5.5rem);
  background: linear-gradient(150deg, var(--graphite) 0%, var(--anthracite) 100%);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 40px 80px -46px rgba(0,0,0,.5); }
.cta-band::before { content: ""; position: absolute; z-index: 3; inset-inline: 0; inset-block-start: 0; block-size: 3px; background: linear-gradient(90deg, var(--red) 0 12%, transparent 12%); }
.cta-band .hero-glow { background: radial-gradient(circle, rgba(216,30,18,.16), transparent 64%); }
.cta-band::after { content: ""; position: absolute; inset-block-end: -34%; inset-inline-start: -12%; inline-size: 36vw; max-inline-size: 460px; aspect-ratio: 1; background: radial-gradient(circle, rgba(255,255,255,.04), transparent 66%); pointer-events: none; }
.cta-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(1.6rem, 4vw, 3rem); align-items: center; }
.cta-band h2 { color: #fff; font-size: clamp(2rem, 5vw, 4rem); max-inline-size: 16ch; }
.cta-band .lead { color: rgba(236,238,241,.72); margin-block-start: 1.1rem; }
.cta-actions { justify-self: end; }
[dir="rtl"] .cta-actions { justify-self: start; }

/* ============================================================
   FOOTER — editorial
   ============================================================ */
.site-footer { background: var(--void); color: var(--void-ink-2); padding-block: clamp(3.5rem, 7vw, 5.5rem) 2rem; position: relative; overflow: hidden; }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: clamp(1.6rem, 4vw, 3rem); padding-block-end: 3rem; border-block-end: 1px solid var(--void-hair); }
.footer-brand .brand { margin-block-end: 1.2rem; }
.footer-brand p { font-size: .94rem; max-inline-size: 32ch; color: var(--void-ink-2); }
.footer-col h4 { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--void-ink-3); margin-block-end: 1.1rem; }
.footer-col a { display: block; padding-block: .42rem; color: var(--void-ink-2); font-size: .94rem; transition: color var(--d1), padding-inline-start var(--d2) var(--ease); }
.footer-col a:hover { color: #fff; padding-inline-start: .35rem; }
.footer-contact li { display: flex; gap: .65rem; padding-block: .42rem; font-size: .92rem; color: var(--void-ink-2); }
.footer-contact svg { inline-size: 17px; block-size: 17px; flex: none; color: var(--red-bright); margin-block-start: .2rem; }
.footer-contact a:hover { color: #fff; }
.footer-social { display: flex; gap: .55rem; margin-block-start: 1.5rem; }
.footer-social a { inline-size: 42px; block-size: 42px; display: grid; place-items: center; border: 1px solid var(--void-hair); border-radius: var(--r-sm); color: var(--void-ink-2); transition: background var(--d1), color var(--d1), border-color var(--d1), transform var(--d1); }
.footer-social a:hover { background: var(--red); color: #fff; border-color: var(--red); transform: translateY(-2px); }
.footer-social svg { inline-size: 18px; block-size: 18px; }
.footer-social .soc-soon { inline-size: 42px; block-size: 42px; display: grid; place-items: center; border: 1px solid var(--void-hair); border-radius: var(--r-sm); color: var(--void-ink-3); opacity: .45; cursor: default; }
.footer-wordmark { font-family: var(--f-display); font-weight: 800; font-size: clamp(3.5rem, 16vw, 13rem); line-height: .85; letter-spacing: -0.05em; color: var(--void-2); -webkit-text-stroke: 1px var(--void-hair); margin-block: clamp(1.5rem,4vw,3rem) 0; user-select: none; }
.footer-disclaimer { max-inline-size: 100%; margin-block-start: clamp(1.5rem, 4vw, 2.6rem); padding-block-start: 1.8rem; border-block-start: 1px solid var(--void-hair); font-size: .74rem; line-height: 1.65; color: var(--void-ink-3); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; padding-block-start: 1.4rem; font-family: var(--f-mono); font-size: .76rem; color: var(--void-ink-3); }
.footer-bottom .legal { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.footer-bottom a:hover { color: #fff; }

/* ============================================================
   PAGE HEAD (interior pages)
   ============================================================ */
/* Inner-page header — logo-derived band: BLUE surface (white text) with a WHITE title-stripe
   (red text) bracketed by red rules. Colours taken from the AKS logo. */
.page-head { --logo-blue: #184B9A; --logo-red: #831C1D; padding-block: calc(var(--nav-h) + 2rem) clamp(2rem, 4vw, 3.2rem); background: linear-gradient(180deg, #2A3A4B 0%, #1C2734 55%, #161E29 100%); color: #fff; position: relative; overflow: hidden; }
.page-head .container { position: relative; z-index: 2; }
.breadcrumb { display: flex; gap: .5rem; align-items: center; font-family: var(--f-mono); font-size: .76rem; color: rgba(255,255,255,.72); margin-block-end: 0; letter-spacing: .04em; }
.breadcrumb a:hover { color: #fff; }
.breadcrumb .sep { opacity: .45; }
.breadcrumb .ph-pn { color: #fff; }
/* title area is one continuous colour with the page-head band (the metal blue);
   the stripe adds only the red top/bottom rules, no separate panel fill */
.ph-titleband { position: relative; z-index: 2; margin-block: clamp(1rem, 2.4vw, 1.8rem); padding-block: clamp(.9rem, 2vw, 1.55rem);
  border-block: 3px solid var(--logo-red);
  background: transparent; }
.ph-titleband .container { position: relative; z-index: 1; }
.ph-titleband h1 { margin: 0; font-family: var(--f-display); font-weight: 800; text-transform: capitalize; letter-spacing: -.01em; font-size: clamp(1.9rem, 5.2vw, 4rem); line-height: 1;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.28); }
[lang="ar"] .ph-titleband h1 { font-family: var(--f-ar); text-transform: none; }
.page-head .lead { color: rgba(255,255,255,.85); margin-block-start: 0; }
.page-head .ph-index { position: absolute; inset-block-start: 50%; inset-inline-end: var(--gutter); transform: translateY(-30%); font-family: var(--f-display); font-weight: 800; font-size: clamp(6rem, 18vw, 16rem); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.16); line-height: 1; user-select: none; pointer-events: none; z-index: 1; }
/* Page-head action row — intro text + CTA on the blue band */
.ph-actions { display: flex; align-items: center; justify-content: space-between; gap: clamp(1.5rem, 4vw, 3rem); flex-wrap: wrap; margin-block-start: 0; }
.ph-actions .lead { margin: 0; max-inline-size: 58ch; color: rgba(255,255,255,.85); }
@media (max-width: 720px) { .ph-actions .btn { inline-size: 100%; } }

/* ============================================================
   CATALOG
   ============================================================ */
.catalog-layout { display: grid; grid-template-columns: 264px 1fr; gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.filters { position: sticky; inset-block-start: calc(var(--nav-h) + 1rem); display: flex; flex-direction: column; gap: 1.8rem; max-block-size: calc(100svh - var(--nav-h) - 2.5rem); overflow-y: auto; overscroll-behavior: contain; padding-inline-end: .35rem; }
.filter-group h4 { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); margin-block-end: .9rem; display: flex; align-items: center; gap: .5rem; }
.filter-group h4::before { content: ""; inline-size: 14px; block-size: 1.5px; background: var(--red); }
.search-box { position: relative; }
.search-box svg { position: absolute; inset-inline-start: .9rem; inset-block-start: 50%; transform: translateY(-50%); inline-size: 17px; block-size: 17px; color: var(--ink-3); pointer-events: none; }
.search-box input { inline-size: 100%; padding: .85rem .9rem .85rem 2.6rem; border: 1.5px solid var(--hair); border-radius: var(--r); background: var(--card); transition: border-color var(--d1), box-shadow var(--d1); }
[dir="rtl"] .search-box svg { inset-inline-start: auto; inset-inline-end: .9rem; }
[dir="rtl"] .search-box input { padding: .85rem 2.6rem .85rem .9rem; }
.search-box input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-ghost); }
.chip-list { display: flex; flex-direction: column; gap: .2rem; }
.chip {
  display: flex; align-items: center; gap: .6rem; inline-size: 100%; text-align: start; padding: .58rem .7rem;
  border-radius: var(--r-sm); border: 1.5px solid transparent; font-family: var(--f-mono); font-size: .82rem; font-weight: 500;
  color: var(--ink-2); transition: background var(--d1), color var(--d1);
}
.chip:hover { background: var(--paper-2); color: var(--ink); }
.chip.active { background: var(--ink); color: var(--paper); }
.chip:disabled, .chip.chip-disabled { opacity: .3; cursor: not-allowed; }
.chip:disabled:hover, .chip.chip-disabled:hover { background: transparent; color: var(--ink-2); }
.chip .chip-ico { inline-size: 17px; block-size: 17px; flex: none; opacity: .75; }
.chip .chip-dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--blue); flex: none; margin-inline: 5px; }
.chip.active .chip-dot { background: var(--red-bright); }
.chip .chip-count { margin-inline-start: auto; opacity: .55; font-size: .76rem; }

.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: 1.6rem; flex-wrap: wrap; padding-block-end: 1.1rem; border-block-end: 1px solid var(--hair); }
.result-count { font-family: var(--f-mono); font-size: .86rem; color: var(--ink-3); letter-spacing: .02em; }
.result-count strong { color: var(--ink); font-size: 1.5rem; font-weight: 600; }
.filter-toggle { display: none; }

/* Vehicle quick-filter bar — the prominent one-tap shortcut atop the catalog */
.veh-bar { display: flex; flex-wrap: wrap; gap: .6rem; margin-block-end: clamp(1.6rem, 3vw, 2.4rem); padding-block-end: clamp(1.6rem, 3vw, 2.4rem); border-block-end: 1px solid var(--hair); }
.veh-tab {
  display: inline-flex; align-items: center; gap: .6rem; padding: .68rem 1.1rem;
  border: 1.5px solid var(--hair); border-radius: var(--r-pill); background: var(--card);
  font-family: var(--f-display); font-weight: 700; font-size: 1rem; letter-spacing: -0.01em; color: var(--ink-2);
  transition: border-color var(--d1) ease, color var(--d1) ease, background var(--d1) ease, transform var(--d1) var(--ease);
}
.veh-tab svg { block-size: 22px; inline-size: auto; color: var(--ink-3); flex: none; transition: color var(--d1) ease; }
.veh-tab img.veh-art { block-size: 24px; inline-size: auto; max-inline-size: 54px; object-fit: contain; flex: none; }
.veh-tab.active img.veh-art { filter: invert(1) brightness(2.2); }
.veh-tab .vt-count { font-size: .76rem; font-weight: 500; color: var(--ink-3); }
/* premium monochrome treatment — refined graphite icons, single red accent
   on hover, ink-filled active pill with soft depth (no rainbow logos) */
.veh-tab svg { color: var(--ink-2); }
.veh-tab:hover { border-color: var(--ink); color: var(--ink); transform: translateY(-2px); box-shadow: 0 12px 26px -16px rgba(20,22,30,.5); }
.veh-tab:hover svg { color: var(--red); }
.veh-tab.active { background: var(--ink); color: var(--paper); border-color: var(--ink); box-shadow: 0 14px 30px -14px rgba(20,22,30,.55); }
.veh-tab.active svg, .veh-tab.active .vt-count, .veh-tab.active:hover svg { color: var(--paper); }
.veh-tab.active .vt-count { opacity: .7; }
.veh-tab:disabled, .veh-tab.chip-disabled { opacity: .3; cursor: not-allowed; }
.veh-tab:disabled:hover, .veh-tab.chip-disabled:hover { transform: none; border-color: var(--hair); color: var(--ink-2); }
.veh-tab:disabled:hover svg, .veh-tab.chip-disabled:hover svg { color: var(--ink-3); }
@media (max-width: 600px) {
  .veh-bar { flex-wrap: nowrap; overflow-x: auto; gap: .5rem; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scrollbar-width: thin; }
  .veh-tab { flex: none; padding: .6rem .9rem; font-size: .92rem; }
}

.product-grid { grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: clamp(.9rem, 1.6vw, 1.3rem); }
.product-card { position: relative; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--hair); border-radius: var(--r-lg); overflow: hidden; transition: transform var(--d2) var(--ease), box-shadow var(--d2) var(--ease), border-color var(--d2); }
.product-card:hover { transform: translateY(-5px); box-shadow: var(--e3); border-color: var(--ink); }
.product-thumb { position: relative; aspect-ratio: 4 / 3; background: #fff; overflow: hidden; border-block-end: 1px solid var(--hair); }
.product-thumb img { inline-size: 100%; block-size: 100%; object-fit: contain; padding: 1rem; transition: transform var(--d3) var(--ease); }
.product-card:hover .product-thumb img { transform: scale(1.06); }
.product-thumb svg { inline-size: 100%; block-size: 100%; }
.product-badge { position: absolute; inset-block-start: .7rem; inset-inline-start: .7rem; font-family: var(--f-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; padding: .25rem .55rem; border-radius: var(--r-pill); background: var(--ink); color: var(--paper); }
.product-badge.new { inset-inline-start: auto; inset-inline-end: .7rem; background: var(--red); color: #fff; box-shadow: 0 4px 12px -4px rgba(226,35,26,.6); }
.pn-new { display: inline-block; margin-inline-start: .6rem; vertical-align: middle; background: var(--red); color: #fff; font-family: var(--f-mono); font-size: .62rem; font-weight: 600; letter-spacing: .12em; padding: .22rem .5rem; border-radius: var(--r-pill); }
.product-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
.product-oem { font-family: var(--f-mono); font-size: .74rem; color: var(--red); letter-spacing: .01em; font-weight: 600; }
.product-oem span { opacity: .55; }
.product-title { font-family: var(--f-display); font-weight: 700; font-size: 1.1rem; line-height: 1.12; margin-block: .35rem .45rem; color: var(--ink); letter-spacing: -0.02em; }
.product-sum { font-size: .85rem; color: var(--ink-2); line-height: 1.5; margin-block-end: 1rem; flex: 1; }
.product-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.tag { font-family: var(--f-mono); font-size: .68rem; font-weight: 500; padding: .22rem .55rem; border-radius: var(--r-sm); background: var(--paper-2); color: var(--ink-2); }
.thumb-go { position: absolute; inset-inline: 0; inset-block-end: 0; padding: .9rem 1rem .7rem; z-index: 3; background: linear-gradient(transparent, rgba(8,10,16,.84)); color: #fff; font-family: var(--f-mono); font-size: .74rem; font-weight: 500; letter-spacing: .03em; display: flex; align-items: center; gap: .4rem; transform: translateY(105%); transition: transform var(--d2) var(--ease); }
.product-card:hover .thumb-go { transform: none; }
.thumb-go svg { inline-size: 1em; block-size: 1em; }
[dir="rtl"] .thumb-go svg { transform: scaleX(-1); }
.product-card::after { content: ""; position: absolute; inset-block-start: 10px; inset-inline-end: 10px; inline-size: 10px; block-size: 10px; border-block-start: 2px solid var(--blue); border-inline-end: 2px solid var(--blue); opacity: 0; transform: translate(-4px,4px); transition: opacity var(--d2), transform var(--d2) var(--ease); z-index: 4; }
[dir="rtl"] .product-card::after { transform: translate(4px,4px); }
.product-card:hover::after { opacity: .7; transform: none; }

/* photoless placeholder */
.thumb-ph { inline-size: 100%; block-size: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; background: linear-gradient(150deg, var(--paper-2), var(--card-flat)); }
.thumb-ph svg { inline-size: 30%; max-inline-size: 54px; block-size: auto; color: var(--blue); opacity: .8; padding: 0; }
.thumb-ph span { font-family: var(--f-mono); font-weight: 600; letter-spacing: .05em; color: var(--ink-2); font-size: .78rem; }
.thumb-ph-lg svg { max-inline-size: 110px; }
.thumb-ph-lg span { font-size: 1rem; }

.empty-state { text-align: center; padding: clamp(3rem, 8vw, 5rem) 1rem; border: 1.5px dashed var(--hair); border-radius: var(--r-lg); color: var(--ink-3); }
.empty-state svg { inline-size: 52px; block-size: 52px; margin-inline: auto; margin-block-end: 1rem; color: var(--hair); }
.empty-state h3 { color: var(--ink); margin-block-end: .4rem; }

/* ============================================================
   PRODUCT DETAIL — data sheet
   ============================================================ */
.detail-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.detail-media { position: sticky; inset-block-start: calc(var(--nav-h) + 1.5rem); }
.detail-hero-img { aspect-ratio: 1/1; border: 1px solid var(--hair); border-radius: var(--r-lg); overflow: hidden; background: #fff; box-shadow: var(--e2); }
.detail-hero-img img { inline-size: 100%; block-size: 100%; object-fit: contain; padding: clamp(1.4rem, 5vw, 3.4rem); }
.detail-hero-img svg { inline-size: 100%; block-size: 100%; }
.detail-pn { font-family: var(--f-mono); color: var(--red); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.detail-info h1 { font-size: clamp(2rem, 4vw, 3rem); margin-block: .7rem 1.1rem; }
.detail-info .lead { margin-block-end: 1.8rem; }
.detail-info h3 { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); font-weight: 500; margin-block-end: .8rem; }
.oem-chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.oem-chip { font-family: var(--f-mono); font-size: .84rem; font-weight: 500; padding: .42rem .7rem; border-radius: var(--r-sm); background: var(--blue-ghost); color: var(--blue-deep); border: 1px solid color-mix(in srgb, var(--blue) 22%, transparent); }
.spec-table { inline-size: 100%; border-collapse: collapse; border-block-start: 1px solid var(--hair); margin-block: 2rem; }
.spec-table th, .spec-table td { padding: .9rem .2rem; text-align: start; font-size: .92rem; border-block-end: 1px solid var(--hair); }
.spec-table th { color: var(--ink-3); font-family: var(--f-mono); font-size: .76rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; inline-size: 42%; vertical-align: top; }
.spec-table td { color: var(--ink); font-weight: 500; }
.spec-table td .mono { color: var(--ink); }
.detail-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-block-start: 2rem; }

/* reference / data tables */
.ref-table-wrap { overflow-x: auto; border: 1px solid var(--hair); border-radius: var(--r-lg); }
.ref-table { inline-size: 100%; border-collapse: collapse; min-inline-size: 540px; }
.ref-table th, .ref-table td { padding: .85rem 1.1rem; text-align: start; font-size: .9rem; border-block-end: 1px solid var(--hair); }
.ref-table thead th { background: var(--ink); color: var(--paper); font-family: var(--f-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; }
.ref-table tbody tr { transition: background var(--d1); }
.ref-table tbody tr:hover { background: var(--card-flat); }
.ref-table tbody tr:last-child td { border-block-end: none; }
.ref-table td.mono { color: var(--blue-deep); font-size: .84rem; font-family: var(--f-mono); }
.ref-table td strong { color: var(--ink); font-family: var(--f-display); font-weight: 700; }

/* media card with blueprint frame */
.media-card { position: relative; margin: 0; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--hair); box-shadow: var(--e2); background: var(--paper-2); will-change: transform; }
.media-card img { inline-size: 100%; block-size: auto; display: block; }
.media-card .mc-tag { position: absolute; inset-block-end: 0; inset-inline: 0; z-index: 5; display: flex; align-items: center; gap: .55rem; padding: 1.6rem 1.2rem 1rem; background: linear-gradient(transparent, rgba(8,10,16,.86)); color: #fff; font-family: var(--f-mono); font-size: .76rem; letter-spacing: .06em; }
.media-card .mc-dot { inline-size: 7px; block-size: 7px; border-radius: 50%; background: var(--red-bright); flex: none; }

.notice-card { background: var(--card); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: clamp(1.8rem, 4vw, 2.8rem); box-shadow: var(--e1); }
.notice-card .nc-ico { inline-size: 56px; block-size: 56px; display: grid; place-items: center; border-radius: var(--r); background: var(--blue-ghost); color: var(--blue); margin-block-end: 1.3rem; }
.notice-card .nc-ico svg { inline-size: 28px; block-size: 28px; }

.alt-logo-wrap { display: inline-flex; align-items: center; gap: .9rem; padding: .7rem 1.1rem; border: 1px solid var(--hair); border-radius: var(--r); background: var(--card); box-shadow: var(--e1); }
.alt-logo-wrap img { block-size: 46px; inline-size: auto; }
.alt-logo-wrap .alt-note { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }

/* ============================================================
   FORMS — request sheet
   ============================================================ */
.form-card { background: var(--card); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: clamp(1.6rem, 4vw, 2.6rem); box-shadow: var(--e1); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.field { display: flex; flex-direction: column; gap: .45rem; }
.field.col-2 { grid-column: span 2; }
.field label { font-family: var(--f-mono); font-weight: 500; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.field label .req { color: var(--red); margin-inline-start: .15rem; }
.field input, .field select, .field textarea { inline-size: 100%; padding: .82rem .95rem; border: 1.5px solid var(--hair); border-radius: var(--r); background: var(--paper); transition: border-color var(--d1), box-shadow var(--d1); min-block-size: 48px; }
.field textarea { min-block-size: 130px; resize: vertical; line-height: 1.6; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-ghost); background: var(--card); }
.field .err-msg { font-size: .8rem; color: var(--danger); display: none; align-items: center; gap: .35rem; font-family: var(--f-body); }
.field .err-msg svg { inline-size: 1em; block-size: 1em; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--danger); box-shadow: 0 0 0 3px var(--danger-tint); }
.field.invalid .err-msg { display: flex; }
.form-status { padding: 1rem 1.2rem; border-radius: var(--r); font-weight: 500; display: none; align-items: center; gap: .6rem; margin-block-start: 1.2rem; }
.form-status.ok { display: flex; background: rgba(22,134,74,.1); color: var(--ok); border: 1px solid rgba(22,134,74,.3); }
.form-status svg { inline-size: 1.3em; block-size: 1.3em; flex: none; }

/* ============================================================
   Reveal / motion
   ============================================================ */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); will-change: opacity, transform; }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .06s; }
.reveal[data-delay="2"] { transition-delay: .12s; }
.reveal[data-delay="3"] { transition-delay: .18s; }
.reveal[data-delay="4"] { transition-delay: .24s; }
.reveal[data-delay="5"] { transition-delay: .3s; }
/* clip-wipe variant for editorial blocks */
.reveal.wipe { clip-path: inset(0 100% 0 0); transform: none; opacity: 1; transition: clip-path .9s var(--ease); }
[dir="rtl"] .reveal.wipe { clip-path: inset(0 0 0 100%); }
.reveal.wipe.in { clip-path: inset(0 0 0 0); }

.route-fade { animation: routeIn var(--d3) var(--ease); }
#app:focus { outline: none; }

.skip-link { position: absolute; inset-block-start: -60px; inset-inline-start: 1rem; z-index: var(--z-modal); background: var(--red); color: #fff; padding: .7rem 1.1rem; border-radius: var(--r); font-weight: 600; transition: inset-block-start var(--d2); }
.skip-link:focus { inset-block-start: 1rem; }
.sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* scroll progress */
.scroll-progress { position: fixed; inset-block-start: 0; inset-inline: 0; block-size: 2px; transform: scaleX(0); transform-origin: left center; background: var(--red); z-index: 1001; pointer-events: none; }
[dir="rtl"] .scroll-progress { transform-origin: right center; }

/* film grain */
.grain { position: fixed; inset: 0; z-index: 9996; pointer-events: none; opacity: .028; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 150px 150px; }

.magnetic { will-change: transform; }
.tilt { will-change: transform; }
.glare-sweep { position: absolute; inset: 0; pointer-events: none; z-index: 4; background: linear-gradient(115deg, transparent 42%, rgba(255,255,255,.28) 50%, transparent 58%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.product-card:hover .glare-sweep, .media-card:hover .glare-sweep { transform: translateX(120%); }

/* ---------- Keyframes ---------- */
@keyframes brandProg { 0% { transform: scaleX(0); } 75% { transform: scaleX(1); } 78% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes wheel { 0% { opacity: 0; transform: translate(-50%, 0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, 9px); } }
@keyframes routeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes gridDrift { to { background-position: 88px 88px; } }
@keyframes lineGrow { to { transform: scaleX(1); } }
@keyframes livedot { 0%,100% { box-shadow: 0 0 0 0 var(--red-ghost); } 50% { box-shadow: 0 0 0 5px transparent; } }
@keyframes heroUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

/* hero entrance choreography */
.hero-anim { opacity: 0; }
.hero-enter .hero-anim { animation: heroUp .9s var(--ease) forwards; }
.hero-enter .hero-anim[data-i="1"] { animation-delay: .05s; }
.hero-enter .hero-anim[data-i="2"] { animation-delay: .14s; }
.hero-enter .hero-anim[data-i="3"] { animation-delay: .26s; }
.hero-enter .hero-anim[data-i="4"] { animation-delay: .38s; }
.hero-enter .hero-anim[data-i="5"] { animation-delay: .5s; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (min-width: 1280px) {
  .side-rail { display: flex; }
  body { /* leave canvas full-bleed; rail floats with blend mode */ }
}
@media (max-width: 1024px) {
  .hero { padding-block: 0 clamp(2.4rem, 5vw, 4rem); }
  .scroll-hint { display: none; }
  .hero-meta-fig { display: none; }
  .feature-split { grid-template-columns: 1fr; }
  .feature-aside { position: static; }
  .cta-inner { grid-template-columns: 1fr; }
  .cta-actions { justify-self: start; }
  [dir="rtl"] .cta-actions { justify-self: end; }
  .stat-band { grid-template-columns: repeat(2, 1fr); }
  .stat-cell:nth-child(3) { border-inline-start: none; }
  .stat-cell:nth-child(n+3) { border-block-start: 1px solid var(--void-hair); }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .detail-media { position: static; }
  .s-head.split { grid-template-columns: 1fr; align-items: start; }
}
/* Header collapses to the drawer earlier — the multilingual nav + 5 inline
   language buttons + CTA need a wide header to fit without clipping. */
@media (max-width: 1240px) {
  .main-nav, .header-actions .lang-flags { display: none; }
  .menu-toggle { display: inline-flex; }
  /* .main-nav carried the auto-margin spacer; once it's hidden, push the
     actions (toggle) to the trailing edge so it doesn't collapse next to
     the logo. Logical margin → mirrors correctly in RTL (Arabic). */
  .header-actions { margin-inline-start: auto; }
}
@media (max-width: 860px) {
  .catalog-layout { grid-template-columns: 1fr; }
  .filters { position: static; display: none; max-block-size: none; overflow: visible; }
  body.filters-open .filters { display: flex; }
  .filter-toggle { display: inline-flex; }
  .detail-layout { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.col-2 { grid-column: span 1; }
  .index-row { grid-template-columns: 3rem 1fr auto; }
  .index-row .ix-desc { display: none; }
}
@media (max-width: 820px) {
  /* phones: photo fills the hero behind the copy; trucks stay present,
     a balanced scrim keeps the long headline fully legible */
  .hero-photo { background-size: cover; background-position: 62% 38%; }
  .hero-scrim {
    background:
      linear-gradient(rgba(10,12,17,.46), rgba(10,12,17,.46)),
      linear-gradient(to bottom, rgba(10,12,17,.5) 0%, transparent 22%, transparent 70%, rgba(10,12,17,.34) 100%);
  }
  .hero { min-block-size: 100svh; }
  .hero-copy { max-inline-size: 100%; }
  .hero-meta { inset-block-end: 1rem; }
}
@media (max-width: 560px) {
  .footer-top { grid-template-columns: 1fr; gap: 1.8rem; }
  .hero-stats { grid-template-columns: 1fr 1fr; gap: 1.4rem; }
  .stat-band { grid-template-columns: 1fr 1fr; }
  .product-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .header-actions > .btn-primary { display: none; }
  .brand-logo { block-size: 42px; }
  .index-row { grid-template-columns: 2.4rem 1fr auto; gap: 1rem; }
  .index-row .ix-go span { display: none; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; clip-path: none; }
  .hero-anim { opacity: 1; animation: none; }
  .hero .display .accent::after { transform: scaleX(1); animation: none; }
  .marquee-track, .hero-bg::before { animation: none; }
  .grain, .glare-sweep, .thumb-go { display: none; }
  .tilt, .magnetic { transform: none !important; }
}
