/* Cars Space cinematic visual system — loaded last across every public surface. */
:root {
  /* Color */
  --color-brand: var(--cars-red, #8f1014);
  --color-brand-deep: var(--cars-red-dark, #680b0e);
  --color-brand-bright: #d42129;
  --color-ink: var(--text-main, #15181c);
  --color-muted: var(--text-muted, #626a72);
  --color-steel: #293137;
  --color-paper: #f7f8f8;
  --color-surface: var(--white, #fff);
  --color-line: rgba(20, 23, 26, .12);
  --color-focus: #f2a428;
  --color-whatsapp: var(--whatsapp, #147a3f);

  /* Type */
  --font-sans: "Cairo Local", Tahoma, Arial, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --type-xs: clamp(.72rem, .69rem + .12vw, .8rem);
  --type-sm: clamp(.82rem, .78rem + .16vw, .92rem);
  --type-base: clamp(.95rem, .91rem + .18vw, 1.05rem);
  --type-lead: clamp(1.05rem, .98rem + .32vw, 1.25rem);
  --type-title-sm: clamp(1.65rem, 1.28rem + 1.5vw, 2.65rem);
  --type-title-lg: clamp(2.55rem, 1.45rem + 4.4vw, 5.9rem);
  --leading-tight: 1.12;
  --leading-copy: 1.85;

  /* Spacing */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-section: clamp(4.5rem, 8vw, 8.5rem);

  /* Containers and geometry */
  --container-wide: 80rem;
  --container-content: 68rem;
  --container-reading: 48rem;
  --container-gutter: clamp(1.25rem, 4vw, 3rem);
  --line-calibration: 1px;
  --radius-control: 2px;

  /* Layer order */
  --z-base: 0;
  --z-content: 10;
  --z-sticky: 100;
  --z-dock: 420;
  --z-dialog: 500;
  --z-progress: 1200;
  --z-intro: 1400;

  /* Motion */
  --motion-micro: 200ms;
  --motion-interface: 420ms;
  --motion-cinematic: 1100ms;
  --ease-natural: cubic-bezier(.22, 1, .36, 1);
  --ease-standard: cubic-bezier(.4, 0, .2, 1);

  /* Compatibility aliases for the established surfaces. */
  --visual-red: var(--color-brand);
  --visual-red-bright: #d42129;
  --visual-black: #101316;
  --visual-steel: var(--color-steel);
  --visual-paper: var(--color-paper);
  --visual-grid: rgba(20, 23, 26, .045);
  --visual-angle: 18px;
  --visual-shadow: 0 30px 80px rgba(15, 19, 22, .17);
  --visual-shadow-red: 0 22px 55px rgba(143, 16, 20, .22);
  --visual-ease: var(--ease-natural);
}

body {
  isolation: isolate;
  background: var(--visual-paper);
  font-kerning: normal;
  font-variant-numeric: tabular-nums;
}

body::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  opacity: .55;
  background:
    linear-gradient(90deg, var(--visual-grid) 1px, transparent 1px) 0 0 / 72px 72px,
    linear-gradient(var(--visual-grid) 1px, transparent 1px) 0 0 / 72px 72px,
    linear-gradient(135deg, #fff 0 45%, #f1f3f4 100%);
  content: "";
  pointer-events: none;
}

h1, h2, h3 {
  font-family: var(--font-sans);
  font-weight: 900;
  letter-spacing: -.045em;
}

h1 { line-height: 1.06; }
h2 { line-height: 1.14; }

.eyebrow,
.fleet-service-kicker,
.fleet-section-heading > p,
.fleet-section-heading > div > p {
  letter-spacing: .12em;
  font-weight: 900;
}

.eyebrow::before {
  width: 44px;
  height: 4px;
  clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%);
  box-shadow: 12px 0 0 rgba(143, 16, 20, .22);
}

/* Header / navigation */
.site-header {
  border-top: 3px solid var(--visual-red);
  border-bottom-color: rgba(16, 19, 22, .12);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 10px 35px rgba(16, 19, 22, .05);
  transition: min-height .35s var(--visual-ease), background-color .35s ease, box-shadow .35s ease;
}

.site-header::before {
  position: absolute;
  right: 0;
  bottom: -1px;
  width: min(25vw, 330px);
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--visual-red));
  content: "";
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 18px 50px rgba(16, 19, 22, .12);
}

.brand-logo {
  transition: transform .5s var(--visual-ease), filter .35s ease;
}

.brand:hover .brand-logo, .brand:hover .brand-logo-picture { transform: translateX(-5px) scale(1.025); filter: contrast(1.08); }

.main-nav { gap: 8px; }
.main-nav a { border-radius: 0; transition: color .25s ease, background-color .25s ease, transform .25s var(--visual-ease); }
.main-nav a:hover { transform: translateY(-2px); }
.main-nav a.is-active { background: linear-gradient(135deg, #fff0f1, #fff); }
.main-nav a.is-active::after { right: 10px; bottom: 0; left: 10px; height: 4px; clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%); }

.nav-toggle {
  border-radius: 0;
  box-shadow: 5px 5px 0 rgba(143, 16, 20, .1);
}

/* Buttons and text links */
.btn {
  position: relative;
  isolation: isolate;
  min-height: 52px;
  overflow: hidden;
  border-radius: 0;
  letter-spacing: .01em;
  box-shadow: 7px 7px 0 rgba(16, 19, 22, .08);
  transition: color .25s ease, border-color .25s ease, background-color .25s ease, box-shadow .3s ease, transform .3s var(--visual-ease);
}

.btn::after {
  position: absolute;
  top: -80%;
  bottom: -80%;
  left: -45%;
  z-index: -1;
  width: 32%;
  background: rgba(255, 255, 255, .2);
  content: "";
  transform: skewX(-24deg) translateX(0);
  transition: transform .6s var(--visual-ease);
}

.btn:hover {
  box-shadow: 11px 11px 0 rgba(16, 19, 22, .13);
  transform: translate(-3px, -3px);
}

.btn:hover::after { transform: skewX(-24deg) translateX(420%); }
.btn-primary { background: linear-gradient(135deg, var(--visual-red-bright), var(--visual-red) 55%, #65090c); box-shadow: 7px 7px 0 rgba(143, 16, 20, .2); }
.btn-primary:hover { box-shadow: 11px 11px 0 rgba(143, 16, 20, .24); }
.btn-whatsapp { background: linear-gradient(135deg, #198b4b, #0e5f32); }
.btn-secondary, .btn-ghost { background: rgba(255, 255, 255, .92); }

.btn:focus-visible {
  outline: 3px solid #f2a428;
  outline-offset: 4px;
}

.text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.text-link::after {
  width: 38px;
  height: 2px;
  background: currentColor;
  content: "";
  transition: width .3s var(--visual-ease);
}

.text-link:hover { text-decoration: none; }
.text-link:hover::after { width: 64px; }

/* Pointer-reactive layers and tilt */
.visual-reactive { --spot-x: 50%; --spot-y: 50%; }
.visual-tilt {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --depth-y: 0px;
  transform: perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translate3d(0, var(--depth-y), 0) translateZ(0);
  transform-style: preserve-3d;
  transition: transform .55s var(--visual-ease), filter .55s ease;
}

/* Home hero */
.home-main { overflow: hidden; }
.home-hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
  min-height: calc(100svh - var(--header-height));
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  padding-block: clamp(80px, 9vw, 132px);
}

.home-hero::before {
  position: absolute;
  top: 8%;
  right: -13%;
  z-index: -2;
  width: min(58vw, 760px);
  height: min(58vw, 760px);
  border: clamp(42px, 6vw, 84px) solid rgba(143, 16, 20, .055);
  border-radius: 50%;
  background: radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(212, 33, 41, .14), transparent 42%);
  content: "";
  animation: none;
}

.home-hero::after {
  position: absolute;
  right: 1%;
  bottom: 3%;
  z-index: -1;
  color: rgba(16, 19, 22, .035);
  content: "CARS / SPACE";
  direction: ltr;
  font: 900 clamp(3rem, 8vw, 8.2rem)/1 Arial, sans-serif;
  letter-spacing: -.08em;
  white-space: nowrap;
}

.home-hero__copy::before,
.department-hero__copy::before {
  position: absolute;
  top: -28px;
  right: -24px;
  width: 72px;
  height: 72px;
  border-top: 6px solid var(--visual-red);
  border-right: 6px solid var(--visual-red);
  content: "";
  opacity: .9;
}

.home-hero h1 {
  max-width: 9.5ch;
  margin-bottom: 26px;
  font-size: clamp(3.2rem, 6.2vw, 6.3rem);
  text-shadow: 0 12px 32px rgba(16, 19, 22, .1);
}

.home-hero__lead { max-width: 60ch; border-right: 3px solid rgba(143, 16, 20, .22); padding-right: 18px; }

.home-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  border-top: 0;
  padding-top: 16px;
}

.home-hero__facts li {
  position: relative;
  min-height: 88px;
  align-content: center;
  padding: 14px 16px;
  overflow: hidden;
  border: 1px solid rgba(16, 19, 22, .1);
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 12px 30px rgba(16, 19, 22, .055);
  backdrop-filter: blur(10px);
}

.home-hero__facts li::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 5px;
  height: 100%;
  background: var(--visual-red);
  content: "";
}

.home-hero__facts strong { font-size: 1.4rem; font-weight: 900; }

.home-hero__media,
.department-hero__media,
.about-media {
  border: 0;
  border-radius: 0;
  clip-path: polygon(0 0, calc(100% - var(--visual-angle)) 0, 100% var(--visual-angle), 100% 100%, var(--visual-angle) 100%, 0 calc(100% - var(--visual-angle)));
  filter: drop-shadow(25px 28px 0 rgba(143, 16, 20, .16)) drop-shadow(0 30px 38px rgba(16, 19, 22, .18));
}

.home-hero__media::before,
.department-hero__media::before {
  inset: 14px;
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, .58);
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}

.home-hero__media::after,
.department-hero__media::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(135deg, transparent 45%, rgba(16, 19, 22, .28));
  content: "";
  pointer-events: none;
}

.home-hero__media img,
.department-hero__media img,
.about-media img { transition: transform 1.1s var(--visual-ease), filter .7s ease; }
.home-hero__media:hover img,
.department-hero__media:hover img,
.about-media:hover img { filter: contrast(1.04) saturate(1.08); transform: scale(1.045); }

.home-hero__media figcaption {
  right: auto;
  left: 0;
  bottom: 0;
  min-width: 44%;
  padding: 18px 22px;
  border-inline-start: 0;
  border-top: 4px solid var(--visual-red-bright);
  background: rgba(12, 15, 17, .88);
  backdrop-filter: blur(14px);
  clip-path: polygon(12px 0, 100% 0, 100% 100%, 0 100%, 0 12px);
}

/* Home bento sections */
.home-section { position: relative; }
.section-heading h2 { font-size: clamp(2.2rem, 4.4vw, 4.15rem); }

@media (min-width: 1081px) {
  .service-links-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
  .service-link-card { grid-column: span 7; }
  .service-link-card:nth-child(2), .service-link-card:nth-child(3) { grid-column: span 5; }
  .service-link-card > a { grid-template-columns: minmax(190px, .88fr) minmax(0, 1.12fr); grid-template-rows: 1fr; }
  .service-link-card__media { min-height: 330px; aspect-ratio: auto; }
  .service-link-card__copy { min-height: 330px; }
}

.service-link-card {
  position: relative;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 24px 65px rgba(16, 19, 22, .1);
  transition: transform .55s var(--visual-ease), box-shadow .55s ease;
}

.service-link-card::before {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  width: 42%;
  height: 5px;
  background: linear-gradient(90deg, transparent, var(--visual-red));
  content: "";
}

.service-link-card::after {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, transparent 49%, var(--visual-red) 50%);
  content: "";
  opacity: .8;
}

.service-link-card:hover { transform: translateY(-10px); box-shadow: 0 38px 85px rgba(16, 19, 22, .18); }
.service-link-card__media { border-radius: 0; }
.service-link-card__media::after { position: absolute; inset: 0; background: linear-gradient(150deg, transparent 56%, rgba(16, 19, 22, .34)); content: ""; }
.service-link-card__media img { filter: saturate(.82) contrast(1.04); transition-duration: .8s; }
.service-link-card:hover .service-link-card__media img { filter: saturate(1.1) contrast(1.08); transform: scale(1.06); }
.service-link-card__copy { position: relative; justify-content: center; background: linear-gradient(145deg, #fff, #f7f8f8); }
.service-link-card__copy h3 { font-size: clamp(1.35rem, 2vw, 2rem); }
.service-link-card__copy > span { letter-spacing: .08em; }
.service-link-card--fleet { background: var(--visual-black); }
.service-link-card--fleet .service-link-card__copy { background: linear-gradient(145deg, #272d31, #101316); }
.service-link-card--fleet::after { background: linear-gradient(135deg, transparent 49%, #e54a50 50%); }

.home-trust {
  position: relative;
  isolation: isolate;
  margin-block: clamp(35px, 5vw, 70px);
  padding-block: clamp(120px, 12vw, 170px);
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 70px 70px,
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 70px 70px,
    linear-gradient(135deg, #20262a, #0d1012 68%);
  clip-path: polygon(0 5vw, 100% 0, 100% calc(100% - 5vw), 0 100%);
}

.home-trust::before {
  position: absolute;
  top: -40%;
  left: -8%;
  z-index: -1;
  width: 48vw;
  height: 48vw;
  border: 70px solid rgba(212, 33, 41, .075);
  border-radius: 50%;
  content: "";
}

.trust-grid { border: 0; border-radius: 0; background: rgba(255,255,255,.1); }
.trust-grid article { position: relative; min-height: 260px; overflow: hidden; background: rgba(12, 15, 17, .72); transition: background-color .35s ease, transform .35s var(--visual-ease); }
.trust-grid article::after { position: absolute; right: -24px; bottom: -38px; color: rgba(255,255,255,.035); content: attr(data-visual-index); font: 900 8rem/1 Arial, sans-serif; }
.trust-grid article:hover { z-index: 1; background: rgba(143, 16, 20, .26); transform: translateY(-8px); }
.trust-grid h3 { font-size: 1.45rem; }
.trust-proof { border: 0; border-radius: 0; background: linear-gradient(135deg, #252c30, #171b1e); box-shadow: 18px 18px 0 rgba(212, 33, 41, .12); }
.trust-proof img { border-radius: 0; clip-path: polygon(0 0, 86% 0, 100% 14%, 100% 100%, 0 100%); }

.work-grid { grid-template-columns: 1.28fr .72fr; grid-template-rows: repeat(2, minmax(210px, 1fr)); gap: 16px; }
.work-grid figure { border-radius: 0; aspect-ratio: auto; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%); box-shadow: 0 25px 55px rgba(16, 19, 22, .12); }
.work-grid figure:first-child { grid-row: 1 / 3; }
.work-grid figure::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(10,12,14,.58)); content: ""; pointer-events: none; }
.work-grid img { transition: transform .8s var(--visual-ease), filter .5s ease; }
.work-grid figure:hover img { filter: saturate(1.12); transform: scale(1.06); }
.work-grid figcaption { z-index: 2; right: 0; bottom: 0; border-radius: 0; border-right: 4px solid var(--visual-red-bright); }

.fleet-home-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    linear-gradient(120deg, rgba(143,16,20,.92), rgba(26,31,35,.96) 50%, #101316),
    var(--visual-black);
  clip-path: polygon(0 0, 100% 3vw, 100% 100%, 0 calc(100% - 3vw));
}

.fleet-home-band::before { position: absolute; left: -2%; bottom: -18%; z-index: -1; color: rgba(255,255,255,.04); content: "B2B"; font: 900 18rem/1 Arial, sans-serif; }
.fleet-home-band__inner { min-height: 350px; }

.final-cta,
.department-contact,
.manager-contact-card {
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: var(--visual-shadow-red);
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 26px 100%, 0 calc(100% - 26px));
}

.final-cta { background: linear-gradient(135deg, #fff, #f8e7e8); }
.final-cta::before,
.department-contact::before,
.manager-contact-card::before { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 30px, rgba(143,16,20,.035) 31px 32px); content: ""; pointer-events: none; }

/* Department pages */
.department-page { overflow: hidden; background: rgba(247, 248, 248, .88); }
.department-hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
  min-height: min(800px, calc(100svh - var(--header-height)));
  padding-block: clamp(82px, 10vw, 140px);
}

.department-hero::before {
  position: absolute;
  top: 5%;
  left: -18%;
  z-index: -2;
  width: 58vw;
  height: 58vw;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(212,33,41,.14), transparent 34%),
    repeating-radial-gradient(circle, rgba(16,19,22,.05) 0 1px, transparent 2px 22px);
  content: "";
  animation: none;
}

.department-hero::after {
  position: absolute;
  right: 0;
  bottom: 2%;
  z-index: -1;
  color: rgba(16,19,22,.035);
  content: "SERVICE / 01";
  direction: ltr;
  font: 900 clamp(3rem, 8vw, 8rem)/1 Arial, sans-serif;
  white-space: nowrap;
}

.department-body-work .department-hero::after { content: "BODY / 01"; }
.department-mechanic .department-hero::after { content: "MECHANIC / 03"; }
.department-hero h1 { max-width: 11ch; font-size: clamp(3rem, 5.6vw, 5.7rem); line-height: 1.08; }
.department-hero__lead { border-right: 3px solid rgba(143,16,20,.24); padding-right: 18px; }

.department-trust { position: relative; z-index: 3; width: min(1180px, calc(100% - 40px)); margin: -42px auto 0; background: linear-gradient(135deg, #282f33, #111416); box-shadow: 0 28px 65px rgba(16,19,22,.25); }
.department-trust__grid > div { min-height: 120px; align-items: center; transition: background-color .3s ease; }
.department-trust__grid > div:hover { background: rgba(143,16,20,.18); }
.department-trust__grid span { font: 900 1.2rem/1 Arial, sans-serif; }

.department-section--surface {
  position: relative;
  background:
    linear-gradient(90deg, rgba(16,19,22,.04) 1px, transparent 1px) 0 0 / 54px 54px,
    linear-gradient(rgba(16,19,22,.04) 1px, transparent 1px) 0 0 / 54px 54px,
    #edf0f1;
}

.service-grid { gap: 22px; }
.service-card {
  position: relative;
  min-height: 270px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: rgba(255,255,255,.94);
  box-shadow: 0 20px 45px rgba(16,19,22,.09);
  transition: transform .45s var(--visual-ease), box-shadow .45s ease;
}

.service-card::before { position: absolute; top: 0; right: 0; width: 46%; height: 5px; background: linear-gradient(90deg, transparent, var(--visual-red)); content: ""; }
.service-card::after { position: absolute; left: -14px; bottom: -42px; color: rgba(143,16,20,.05); content: attr(data-visual-index); font: 900 8rem/1 Arial, sans-serif; }
.service-card:hover { transform: translateY(-9px) rotate(.25deg); box-shadow: 0 34px 65px rgba(16,19,22,.16); }
.service-card > span { font: 900 1.05rem/1 Arial, sans-serif; }
.service-card h3 { position: relative; z-index: 1; font-size: 1.45rem; }
.service-card p { position: relative; z-index: 1; }

.service-card.has-service-image {
  isolation: isolate;
  display: flex;
  min-height: 340px;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  background: #111518;
}

.service-card__background,
.service-card__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.service-card__background {
  z-index: 0;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82) contrast(1.06);
  transform: scale(1.015);
  transition: filter .55s ease, transform .75s var(--visual-ease);
}

.service-card__scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(8, 11, 13, .2) 0%, rgba(8, 11, 13, .34) 38%, rgba(8, 11, 13, .94) 100%),
    linear-gradient(90deg, rgba(8, 11, 13, .2), transparent 62%);
  pointer-events: none;
}

.service-card.has-service-image::before { z-index: 4; }
.service-card.has-service-image::after { z-index: 2; color: rgba(255, 255, 255, .07); }
.service-card.has-service-image > span:not(.service-card__scrim),
.service-card.has-service-image h3,
.service-card.has-service-image p { position: relative; z-index: 3; }
.service-card.has-service-image > span:not(.service-card__scrim) {
  align-self: flex-start;
  margin-bottom: auto;
  padding: 9px 11px;
  color: #fff;
  background: rgba(143, 16, 20, .88);
  backdrop-filter: blur(8px);
}
.service-card.has-service-image h3 { margin-top: 54px; color: #fff; text-wrap: balance; }
.service-card.has-service-image p { color: rgba(255, 255, 255, .84); text-wrap: pretty; }
.service-card.has-service-image:hover .service-card__background { filter: saturate(1.02) contrast(1.08); transform: scale(1.065); }

@media (min-width: 1081px) {
  .department-mechanic .service-card:last-child:nth-child(3n + 1) {
    grid-column: 1 / -1;
    min-height: 390px;
  }
}

@media (min-width: 701px) and (max-width: 1080px) {
  .department-mechanic .service-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .service-card.has-service-image { min-height: 310px; }
}

.journey-list { position: relative; border-block: 0; background: #fff; box-shadow: 0 20px 55px rgba(16,19,22,.08); }
.journey-list::before { position: absolute; top: 0; right: 0; left: 0; height: 5px; background: linear-gradient(90deg, var(--visual-red), #e54a50, transparent); content: ""; }
.journey-list li { position: relative; min-height: 170px; padding-top: 34px; transition: background-color .3s ease; }
.journey-list li:hover { background: #fff1f2; }
.journey-list b { font: 900 1rem/1 Arial, sans-serif; }

.department-gallery {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 15%, rgba(212,33,41,.16), transparent 24%),
    linear-gradient(135deg, #20262a, #0c0f11);
}

.department-gallery::before { position: absolute; top: -110px; right: -80px; width: 360px; height: 360px; border: 65px solid rgba(255,255,255,.025); border-radius: 50%; content: ""; }
.gallery-grid { grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; grid-auto-rows: 190px; gap: 12px; }
.gallery-item { grid-column: span 4; border: 0; border-radius: 0; aspect-ratio: auto; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%); }
.gallery-item:first-child { grid-column: span 7; grid-row: span 2; }
.gallery-item:nth-child(2), .gallery-item:nth-child(3) { grid-column: span 5; }
.gallery-item::after { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.22); content: ""; pointer-events: none; }
.gallery-item img { transition-duration: .75s; }
.gallery-item:hover img { filter: saturate(1.14) contrast(1.05); transform: scale(1.065); }

.faq-list details { border-radius: 0; box-shadow: 8px 8px 0 rgba(16,19,22,.045); transition: transform .3s var(--visual-ease), border-color .3s ease; }
.faq-list details:hover { border-color: rgba(143,16,20,.38); transform: translateX(-5px); }
.faq-list summary { position: relative; padding-left: 58px; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; top: 50%; left: 18px; color: var(--visual-red); content: "+"; font: 300 1.5rem/1 Arial, sans-serif; transform: translateY(-50%); transition: transform .3s ease; }
.faq-list details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.department-contact { background: linear-gradient(135deg, #252c30, #101316 65%); }

/* About, contact and legal pages */
.content-page .page-main { position: relative; overflow: hidden; }
.content-page .page-main::before { position: absolute; top: 3%; left: -10%; width: 46vw; height: 46vw; border: 65px solid rgba(143,16,20,.05); border-radius: 50%; content: ""; pointer-events: none; }
.content-card,
.contact-card,
.official-info {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  background: rgba(255,255,255,.92);
  box-shadow: 0 28px 70px rgba(16,19,22,.11);
  backdrop-filter: blur(12px);
}

.content-card { border: 0; border-top: 6px solid var(--visual-red); }
.content-card::after { position: absolute; left: -7%; bottom: -8%; color: rgba(16,19,22,.028); content: "CS"; font: 900 15rem/1 Arial, sans-serif; }
.content-card > * { position: relative; z-index: 1; }
.about-media { box-shadow: none; }
.value-grid article { position: relative; border: 0; border-radius: 0; background: linear-gradient(145deg, #f2f4f5, #fff); box-shadow: 8px 8px 0 rgba(143,16,20,.08); transition: transform .35s var(--visual-ease); }
.value-grid article:hover { transform: translateY(-6px); }
.info-list { border-radius: 0; }
.contact-card { min-height: 330px; border: 0; border-top: 5px solid var(--visual-red); transition: transform .45s var(--visual-ease), box-shadow .45s ease; }
.contact-card:nth-child(even) { transform: translateY(28px); }
.contact-card:hover { z-index: 2; transform: translateY(-8px); box-shadow: 0 38px 78px rgba(16,19,22,.17); }
.contact-card:nth-child(even):hover { transform: translateY(20px); }
.manager-contact-card { background: linear-gradient(135deg, #fff, #f8e9ea); }
.official-info { border: 1px solid rgba(16,19,22,.1); }

/* Footer and overlays */
.site-footer {
  position: relative;
  margin-top: 40px;
  padding-top: 65px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 64px 64px,
    #0d1012;
  clip-path: polygon(0 48px, 100% 0, 100% 100%, 0 100%);
}

.site-footer::before { position: absolute; top: 45px; right: 0; width: 38%; height: 4px; background: linear-gradient(90deg, transparent, var(--visual-red-bright)); content: ""; }
.footer-brand img, .footer-logo-picture { width: 175px; }
.footer-brand .footer-logo-picture img { width: 100%; }
.footer-inner nav a, .footer-inner nav button { position: relative; }
.footer-inner nav a::after, .footer-inner nav button::after { position: absolute; right: 0; bottom: 6px; width: 0; height: 2px; background: var(--visual-red-bright); content: ""; transition: width .3s ease; }
.footer-inner nav a:hover::after, .footer-inner nav button:hover::after { width: 100%; }
.modal-overlay, .lightbox { background: rgba(6,8,9,.82); backdrop-filter: blur(16px); }
.modal-card { border-radius: 0; border-top: 6px solid var(--visual-red); clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); }
.modal-close, .lightbox button { border-radius: 0; }
.lightbox img { border-radius: 0; clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%); }

/* Fleet service page */
.fleet-inspection-page::before { --visual-grid: rgba(20,23,26,.055); }
.fleet-service-hero {
  position: relative;
  isolation: isolate;
  min-height: 760px;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(212,33,41,.15), transparent 27%),
    linear-gradient(135deg, #fff, #eef1f2 62%, #e6e9ea);
}

.fleet-service-hero::before { position: absolute; right: -9%; bottom: -28%; z-index: -1; width: 52vw; height: 52vw; border: 75px solid rgba(143,16,20,.055); border-radius: 50%; content: ""; }
.fleet-service-hero::after { position: absolute; left: 2%; bottom: 4%; z-index: -1; color: rgba(16,19,22,.035); content: "FLEET / CONTROL"; direction: ltr; font: 900 clamp(3rem,7vw,7rem)/1 Arial,sans-serif; white-space: nowrap; }
.fleet-service-hero h1 { font-size: clamp(3rem, 5.6vw, 6.3rem); text-shadow: 0 15px 35px rgba(16,19,22,.1); }
.fleet-service-hero__visual { border: 0; border-radius: 0; box-shadow: 22px 22px 0 rgba(143,16,20,.13), var(--visual-shadow); clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px)); }
.fleet-service-facts { border-radius: 0; box-shadow: 0 24px 60px rgba(16,19,22,.14); }
.fleet-service-facts div { transition: background-color .3s ease, transform .3s var(--visual-ease); }
.fleet-service-facts div:hover { z-index: 1; background: #fff0f1; transform: translateY(-7px); }
.fleet-definition-main,
.fleet-audience-card,
.fleet-scope-card,
.fleet-package-card,
.fleet-output-grid div,
.fleet-faq-list details,
.fleet-service-cta { border-radius: 0; }
.fleet-scope-card,
.fleet-package-card { position: relative; overflow: hidden; box-shadow: 0 18px 42px rgba(16,19,22,.08); }
.fleet-scope-card::after,
.fleet-package-card::after { position: absolute; top: 0; right: 0; width: 45%; height: 4px; background: linear-gradient(90deg, transparent, var(--visual-red)); content: ""; }
.fleet-scope-card:hover { box-shadow: 0 30px 65px rgba(16,19,22,.15); transform: translateY(-8px); }
.fleet-service-cta { clip-path: polygon(0 0, calc(100% - 25px) 0, 100% 25px, 100% 100%, 25px 100%, 0 calc(100% - 25px)); }

/* Richer entrance choreography */
.js-ready [data-reveal] {
  opacity: 0;
  filter: blur(5px);
  transform: translateY(34px) scale(.985);
  transition: opacity .75s var(--visual-ease), transform .85s var(--visual-ease), filter .7s ease;
  transition-delay: calc(var(--reveal-order, 0) * 65ms);
}

.js-ready [data-reveal="image"] { transform: translateY(28px) scale(.94) rotate(.8deg); }
.js-ready [data-reveal="top"] { transform: translateY(-18px); }
.js-ready [data-reveal].is-visible { opacity: 1; filter: none; transform: none; }
.js-ready [data-reveal].is-visible.visual-tilt { transform: perspective(1100px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translate3d(0, var(--depth-y), 0) translateZ(0); }

@keyframes visualOrbit {
  from { transform: translate3d(0, 0, 0) rotate(0); }
  to { transform: translate3d(-3%, 4%, 0) rotate(8deg); }
}

@keyframes visualFloat {
  from { transform: translate3d(0, -2%, 0) rotate(-3deg); }
  to { transform: translate3d(4%, 3%, 0) rotate(4deg); }
}

@media (max-width: 1080px) {
  .home-hero h1 { font-size: clamp(3rem, 7.4vw, 5rem); }
  .service-link-card { grid-column: auto; }
  .gallery-grid { grid-auto-rows: 170px; }
}

@media (max-width: 820px) {
  .site-header { border-top-width: 2px; }
  .main-nav { background: rgba(255,255,255,.98); box-shadow: 0 24px 60px rgba(16,19,22,.16); backdrop-filter: blur(16px); }
  .main-nav a { border-right: 3px solid transparent; }
  .main-nav a.is-active { border-right-color: var(--visual-red); }
  .home-hero, .department-hero { grid-template-columns: 1fr; gap: 54px; padding-block: 72px 90px; }
  .home-hero__copy, .department-hero__copy { width: 100%; }
  .home-hero::after, .department-hero::after { font-size: 4rem; }
  .home-hero__media, .department-hero__media { filter: drop-shadow(15px 17px 0 rgba(143,16,20,.14)) drop-shadow(0 22px 30px rgba(16,19,22,.16)); }
  .department-trust { margin-top: -25px; }
  .contact-card:nth-child(even), .contact-card:nth-child(even):hover { transform: none; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
  .gallery-item, .gallery-item:first-child, .gallery-item:nth-child(2), .gallery-item:nth-child(3) { grid-column: span 1; grid-row: span 1; }
  .gallery-item:first-child { grid-column: span 2; }
  .fleet-service-hero { min-height: auto; }
}

@media (max-width: 700px) {
  body::before { background-size: 44px 44px; }
  .eyebrow { letter-spacing: .07em; }
  .home-hero, .department-hero { padding-block: 60px 76px; }
  .home-hero h1, .department-hero h1 { max-width: 12ch; font-size: clamp(2.8rem, 13vw, 4.15rem); }
  .home-hero__copy::before, .department-hero__copy::before { top: -18px; right: -10px; width: 48px; height: 48px; border-width: 4px; }
  .home-hero__facts { grid-template-columns: repeat(3, 1fr); }
  .home-hero__facts li { min-height: 80px; padding: 11px; }
  .home-hero__facts strong { font-size: 1.05rem; }
  .home-hero__facts span { font-size: .68rem; }
  .service-link-card > a { grid-template-columns: 1fr; grid-template-rows: 210px 1fr; }
  .service-link-card__media { min-height: 210px; }
  .service-link-card__copy { min-height: 0; }
  .home-trust { padding-block: 100px; clip-path: polygon(0 32px, 100% 0, 100% calc(100% - 32px), 0 100%); }
  .trust-grid article { min-height: 220px; }
  .work-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .work-grid figure, .work-grid figure:first-child { grid-row: auto; min-height: 270px; }
  .fleet-home-band { clip-path: polygon(0 0, 100% 24px, 100% 100%, 0 calc(100% - 24px)); }
  .fleet-home-band__inner { min-height: 470px; }
  .department-trust { width: calc(100% - 24px); }
  .department-trust__grid > div { min-height: 92px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 245px; }
  .gallery-item, .gallery-item:first-child { grid-column: auto; }
  .site-footer { clip-path: polygon(0 28px, 100% 0, 100% 100%, 0 100%); }
  .visual-tilt { transform: none !important; }
  .js-ready [data-reveal] { filter: none; }
}

@media (max-width: 520px) {
  .home-hero__facts { grid-template-columns: 1fr; }
  .home-hero__facts li { grid-template-columns: 64px 1fr; min-height: 64px; }
  .gallery-grid { grid-auto-rows: 220px; }
  .section-heading h2 { font-size: clamp(2rem, 10vw, 3rem); }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero::before,
  .department-hero::before { animation: none !important; }
  .visual-tilt { transform: none !important; transition: none !important; }
  .js-ready [data-reveal] { opacity: 1; filter: none; transform: none; transition: none; }
}

/* Interactive layer: a shared visual language for every page. */
.visual-scroll-progress {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1200;
  height: 3px;
  overflow: hidden;
  background: rgba(16, 19, 22, .08);
  pointer-events: none;
}

.visual-scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--visual-red), var(--visual-red-bright), #f4b64d);
  box-shadow: 0 0 16px rgba(212, 33, 41, .55);
  transform: scaleX(0);
  transform-origin: right center;
  will-change: transform;
}

.visual-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1300;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(212, 33, 41, .72);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(var(--cursor-x, -100px), var(--cursor-y, -100px), 0) translate(-50%, -50%);
  transition: width .28s var(--visual-ease), height .28s var(--visual-ease), opacity .25s ease, border-color .25s ease, background-color .25s ease;
  will-change: transform;
}

.visual-cursor::before,
.visual-cursor::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--visual-red-bright);
  content: "";
  transform: translate(-50%, -50%);
}

.visual-cursor::after {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(212, 33, 41, .16);
  background: transparent;
  animation: none;
}

body.visual-cursor-enabled .visual-cursor.is-active { opacity: 1; }
body.visual-cursor-enabled .visual-cursor.is-hovering {
  width: 46px;
  height: 46px;
  border-color: rgba(212, 33, 41, .95);
  background: rgba(212, 33, 41, .08);
}

.visual-scanline {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4px;
  z-index: 3;
  width: 3px;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .92) 48%, transparent);
  box-shadow: 0 0 22px rgba(255, 255, 255, .52);
  opacity: .26;
  pointer-events: none;
  animation: none;
}

.visual-reactive-card {
  --card-x: 50%;
  --card-y: 50%;
  background-image: radial-gradient(circle at var(--card-x) var(--card-y), rgba(212, 33, 41, .12), transparent 34%);
}

.visual-magnetic {
  --mag-x: 0px;
  --mag-y: 0px;
  transform: translate3d(var(--mag-x), var(--mag-y), 0);
}

.btn.visual-magnetic:hover {
  transform: translate3d(calc(var(--mag-x) - 3px), calc(var(--mag-y) - 3px), 0);
}

.main-nav a.visual-magnetic:hover {
  transform: translate3d(var(--mag-x), calc(var(--mag-y) - 2px), 0);
}

.visual-ripple {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .38);
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0);
  animation: visualRipple .7s ease-out forwards;
}

.visual-depth-layer {
  --depth-y: 0px;
  transform: translate3d(0, var(--depth-y), 0);
  will-change: transform;
}

@keyframes visualScan {
  0%, 12% { left: 4px; opacity: 0; }
  18% { opacity: .26; }
  48% { left: calc(100% - 7px); opacity: .26; }
  56%, 100% { left: calc(100% - 7px); opacity: 0; }
}

@keyframes visualRipple {
  to { opacity: 0; transform: translate(-50%, -50%) scale(15); }
}

@keyframes visualPulse {
  0%, 100% { opacity: .18; transform: translate(-50%, -50%) scale(.72); }
  50% { opacity: .7; transform: translate(-50%, -50%) scale(1.08); }
}

@media (max-width: 700px) {
  .visual-scroll-progress { height: 2px; }
  .visual-cursor { display: none; }
  .visual-scanline { opacity: .14; animation-duration: 10s; }
}

@media (prefers-reduced-motion: reduce) {
  .visual-cursor,
  .visual-scanline,
  .visual-ripple { transition: none !important; animation: none !important; }
  .visual-depth-layer { transform: none !important; }
}

/* Homepage cinematic cut */
.home-page {
  --home-pearl: #e4e7e8;
  --home-surface: #f0f2f2;
  --home-mid: #cbd1d4;
  --home-ink: #171b1e;
}

.home-page .home-main { background: var(--home-pearl); }

.home-page .home-hero {
  --hero-shift: 0px;
  width: 100%;
  max-width: none;
  min-height: max(660px, calc(92svh - var(--header-height)));
  grid-template-columns: minmax(0, 1180px);
  align-content: center;
  justify-content: center;
  padding: clamp(76px, 9vh, 112px) max(24px, calc((100vw - 1180px) / 2)) clamp(90px, 10vh, 124px);
  color: #15191c;
  background: var(--home-mid);
}

.home-page .home-hero::before {
  inset: 0;
  z-index: 2;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(270deg, rgba(235, 238, 239, .93) 0%, rgba(235, 238, 239, .84) 32%, rgba(226, 230, 232, .43) 59%, rgba(35, 42, 46, .08) 100%),
    linear-gradient(180deg, rgba(241, 243, 244, .1), transparent 46%, rgba(38, 45, 49, .28));
  animation: none;
  pointer-events: none;
}

.home-page .home-hero::after {
  right: auto;
  bottom: 4%;
  left: max(20px, calc((100vw - 1180px) / 2));
  z-index: 3;
  color: rgba(16, 19, 22, .045);
  font-size: clamp(4rem, 11vw, 10.5rem);
  letter-spacing: -.09em;
}

.home-page .home-hero__copy {
  z-index: 5;
  width: min(680px, 66vw);
  margin: 0;
  text-shadow: 0 8px 34px rgba(255, 255, 255, .9);
}

.home-page .home-hero__copy::before {
  top: -34px;
  right: -28px;
  border-color: #e52c35;
}

.home-page .home-hero__edition {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  color: rgba(16, 19, 22, .58);
  direction: ltr;
  font: 800 .72rem/1 Arial, sans-serif;
  letter-spacing: .24em;
}

.home-page .home-hero__edition::before { width: 42px; height: 1px; background: #e52c35; content: ""; }
.home-page .home-hero__edition b { padding: 6px 7px; color: #fff; background: rgba(212, 33, 41, .82); letter-spacing: .08em; }
.home-page .home-hero .eyebrow { color: var(--visual-red); }
.home-page .home-hero .eyebrow::before { background: #ff3d46; }

.home-page .home-hero h1 {
  max-width: none;
  margin-bottom: 28px;
  color: var(--home-ink);
  font-size: clamp(2.15rem, 6.2vw, 6.8rem);
  line-height: .98;
  white-space: nowrap;
  text-shadow: 0 12px 38px rgba(235, 238, 239, .9);
}

.home-page .home-hero__lead {
  max-width: 58ch;
  border-right-color: rgba(255, 86, 94, .72);
  color: rgba(16, 19, 22, .72);
  font-size: clamp(1rem, 1.3vw, 1.16rem);
}

.home-page .home-hero .btn-secondary {
  border-color: rgba(16, 19, 22, .24);
  color: #15191c;
  background: rgba(240, 242, 242, .72);
  box-shadow: 7px 7px 0 rgba(16, 19, 22, .08);
  backdrop-filter: blur(14px);
}

.home-page .home-hero .btn-secondary:hover { background: #fff; }

.home-page .home-hero__facts {
  width: min(650px, 100%);
  margin-top: 34px;
  padding: 0;
  list-style: none;
}

.home-page .home-hero__facts li {
  min-height: 78px;
  border-color: rgba(16, 19, 22, .13);
  color: #15191c;
  background: rgba(236, 239, 240, .72);
  box-shadow: 0 14px 38px rgba(16, 19, 22, .08);
  backdrop-filter: blur(18px);
}

.home-page .home-hero__facts li::after { background: linear-gradient(#ff4b53, #8f1014); }
.home-page .home-hero__facts strong { display: block; color: #15191c; }
.home-page .home-hero__facts span { display: block; margin-top: 5px; color: rgba(16, 19, 22, .6); font-size: .72rem; }

.home-page .home-hero__media {
  position: absolute;
  inset: calc(-1 * var(--hero-shift)) 0 auto;
  z-index: 0;
  width: 100%;
  height: calc(100% + 80px);
  margin: 0;
  border: 0;
  clip-path: none;
  filter: none;
  transform: none;
  will-change: transform;
}

.home-page .home-hero__media::before {
  inset: 18px;
  z-index: 4;
  border: 1px solid rgba(255, 255, 255, .52);
  clip-path: none;
}

.home-page .home-hero__media::after {
  z-index: 2;
  background:
    repeating-linear-gradient(180deg, rgba(255, 255, 255, .025) 0 1px, transparent 1px 4px),
    linear-gradient(115deg, rgba(255, 255, 255, .16), transparent 55%);
}

.home-page .home-hero__rotator { background: var(--home-mid); }
.home-page .home-hero__rotator .image-rotator__slide { transition: opacity 1.35s ease, visibility 1.35s ease; }
.home-page .home-hero__rotator .image-rotator__slide img { filter: saturate(.9) contrast(1.07) brightness(.92); transform: none; }
.home-page .home-hero__rotator .image-rotator__slide.is-active img { animation: none; }
.home-page .home-hero__rotator .image-rotator__progress { right: max(24px, calc((100vw - 1180px) / 2)); bottom: 38px; left: auto; background: rgba(7, 9, 10, .5); }
.home-page .home-hero__media figcaption { right: auto; bottom: 32px; left: max(24px, calc((100vw - 1180px) / 2)); z-index: 5; min-width: 0; border-top-color: #e52c35; }

.home-hero__atmosphere { position: absolute; inset: 0; z-index: 4; overflow: hidden; pointer-events: none; }
.home-hero__atmosphere i { position: absolute; display: block; border: 1px solid rgba(16, 19, 22, .1); border-radius: 50%; }
.home-hero__atmosphere i:nth-child(1) { top: 13%; left: 46%; width: 34vw; height: 34vw; box-shadow: 0 0 100px rgba(16, 19, 22, .08); }
.home-hero__atmosphere i:nth-child(2) { top: 22%; left: 54%; width: 19vw; height: 19vw; border-color: rgba(255, 74, 82, .22); }
.home-hero__atmosphere i:nth-child(3) { top: 0; bottom: 0; left: 43%; width: 1px; height: 100%; border: 0; border-left: 1px solid rgba(16, 19, 22, .09); border-radius: 0; transform: skewX(-13deg); }

.home-hero__scroll {
  position: absolute;
  right: max(24px, calc((100vw - 1180px) / 2));
  bottom: 36px;
  z-index: 6;
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 14px;
  color: rgba(16, 19, 22, .64);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.home-hero__scroll:hover { color: #111518; text-decoration: none; }
.home-hero__scroll i { position: relative; width: 24px; height: 39px; border: 1px solid rgba(16, 19, 22, .38); border-radius: 20px; }
.home-hero__scroll i::after { position: absolute; top: 7px; left: 50%; width: 3px; height: 7px; border-radius: 3px; background: #ff4a52; content: ""; transform: translateX(-50%); }

.home-page [data-chapter] { position: relative; isolation: isolate; }
.home-page [data-chapter]::after {
  position: absolute;
  top: 28px;
  right: 24px;
  z-index: 5;
  color: rgba(16, 19, 22, .34);
  content: attr(data-chapter);
  font: 800 .68rem/1 "Cairo Local", Tahoma, sans-serif;
  letter-spacing: .12em;
  pointer-events: none;
}

.home-page .fleet-home-band[data-chapter]::after {
  right: max(24px, calc((100vw - 1180px) / 2));
  color: rgba(16, 19, 22, .34);
}

.home-page .home-proof {
  padding-block: clamp(64px, 7vw, 92px);
  background:
    linear-gradient(90deg, rgba(16, 19, 22, .03) 1px, transparent 1px) 0 0 / 70px 70px,
    linear-gradient(rgba(16, 19, 22, .03) 1px, transparent 1px) 0 0 / 70px 70px,
    #dce1e3;
}

.home-page .home-proof__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 2.2vw, 30px);
}

.home-page .home-certificate {
  width: auto;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 26px;
  margin: 0;
  padding: clamp(26px, 3vw, 40px);
  color: #15191c;
  background:
    linear-gradient(135deg, #f2f4f4, #cfd5d7 72%);
  box-shadow: 0 42px 100px rgba(10, 13, 15, .14);
  clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px));
}

.home-page .home-certificate::before { position: absolute; inset: 14px; z-index: -1; border: 1px solid rgba(16, 19, 22, .09); content: ""; }
.home-page .home-certificate__media {
  min-height: 0;
  aspect-ratio: 1754 / 1241;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: 22px 22px 0 rgba(212, 33, 41, .14);
  transform: rotate(-1.5deg);
}
.home-page .home-certificate__media img { object-fit: contain; object-position: center; }
.home-page .home-certificate__copy h2 { color: #15191c; }
.home-page .home-certificate__copy p:not(.eyebrow) { margin-bottom: 18px; color: rgba(16, 19, 22, .68); line-height: 1.8; }

.home-page .home-reviews {
  display: grid;
  padding: clamp(26px, 3vw, 40px);
  color: #15191c;
  background:
    linear-gradient(90deg, rgba(16, 19, 22, .035) 1px, transparent 1px) 0 0 / 70px 70px,
    linear-gradient(rgba(16, 19, 22, .035) 1px, transparent 1px) 0 0 / 70px 70px,
    #dce1e3;
  box-shadow: 0 32px 80px rgba(10, 13, 15, .13);
  clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 24px 100%, 0 calc(100% - 24px));
}
.home-page .home-proof .home-reviews__inner { grid-template-columns: 1fr; align-content: start; gap: 22px; }
.home-page .home-reviews .section-heading h2 { color: #15191c; }
.home-page .home-reviews .section-heading p:last-child { color: rgba(16, 19, 22, .62); }
.home-page .home-reviews .section-heading { margin: 0; }
.home-page .home-proof .review-rotator { min-height: 300px; }
.home-page .home-proof .review-card { padding: clamp(22px, 2.5vw, 32px); }
.home-page .home-proof .review-controls { grid-column: 1; margin: 0; padding: 0; transform: none; }
.home-page .review-card { border-color: rgba(16, 19, 22, .13); background: rgba(239, 242, 243, .94); box-shadow: 0 28px 70px rgba(16, 19, 22, .13); }
.home-page .review-card__top b,
.home-page .review-card__message,
.home-page .review-card footer a { color: #15191c; }
.home-page .review-card footer small { color: rgba(16, 19, 22, .55); }
.home-page .review-controls > button { border-color: rgba(16, 19, 22, .16); color: #15191c; background: #e9edef; }
.home-page .review-controls > div button { background: transparent; }
.home-page .review-controls > div button::before { background: #aab2b6; }
.home-page .review-controls > div button.is-active::before { background: #ef777c; }

.home-page .service-link-card--fleet,
.home-page .service-link-card--fleet .service-link-card__copy { color: #15191c; background: linear-gradient(145deg, #eef1f2, #d6dbdd); }
.home-page .service-link-card--fleet h3 { color: #15191c; }
.home-page .service-link-card--fleet .service-link-card__copy p { color: rgba(16, 19, 22, .62); }

.home-page .fleet-home-band {
  color: #15191c;
  background:
    linear-gradient(135deg, #e9edef, #c8cfd2);
}
.home-page .fleet-home-band h2 { color: #15191c; }
.home-page .fleet-home-band p:not(.eyebrow) { color: rgba(16, 19, 22, .64); }
.home-page .fleet-home-band::before { color: rgba(16, 19, 22, .035); }

.home-page #services { padding-block: clamp(76px, 8vw, 112px); }
.home-page .home-work-showcase { padding-block: clamp(76px, 8vw, 112px); }

@media (min-width: 1081px) {
  .home-page .service-link-card__media,
  .home-page .service-link-card__copy { min-height: 290px; }
}

.home-page #services > .section-heading h2,
.home-page .home-work-showcase > .section-heading h2,
.home-page .fleet-home-band h2,
.home-page .final-cta h2 {
  font-size: clamp(1.75rem, 2.65vw, 2.7rem);
  white-space: nowrap;
}
.home-page .home-proof h2 { font-size: clamp(1.5rem, 2.05vw, 2.05rem); white-space: nowrap; }

.home-page #services::before {
  position: absolute;
  top: 7%;
  left: -18%;
  z-index: -1;
  width: min(58vw, 760px);
  height: min(58vw, 760px);
  border: clamp(46px, 7vw, 86px) solid rgba(143, 16, 20, .045);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, .9), transparent 64%);
  content: "";
}

.home-page #services > .section-heading,
.home-page .home-work-showcase > .section-heading { position: relative; padding-top: 24px; }
.home-page #services > .section-heading::before,
.home-page .home-work-showcase > .section-heading::before {
  position: absolute;
  top: 0;
  right: 0;
  width: min(180px, 28vw);
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--visual-red-bright));
  content: "";
}

.home-page .service-link-card { isolation: isolate; border: 1px solid rgba(16, 19, 22, .08); }
.home-page .service-link-card__rotator .image-rotator__slide { transition: opacity 1.05s ease, visibility 1.05s ease; }
.home-page .service-link-card__rotator .image-rotator__slide.is-active img { animation: none; }
.department-hero__rotator .image-rotator__slide.is-active img { animation: none; }
.home-page .service-link-card__media::before {
  position: absolute;
  top: -40%;
  bottom: -40%;
  left: -42%;
  z-index: 4;
  width: 24%;
  background: rgba(255, 255, 255, .26);
  content: "";
  pointer-events: none;
  transform: skewX(-18deg) translateX(0);
  transition: transform .9s var(--visual-ease);
}
.home-page .service-link-card:hover .service-link-card__media::before { transform: skewX(-18deg) translateX(680%); }
.home-page .service-link-card__copy { background: linear-gradient(145deg, rgba(241, 243, 244, .98), rgba(222, 226, 228, .95)); }

.home-page .home-work-showcase::before {
  position: absolute;
  inset: 7% -8% 5%;
  z-index: -1;
  background:
    linear-gradient(135deg, rgba(239, 242, 243, .9), rgba(202, 208, 211, .62));
  box-shadow: inset 0 1px rgba(255, 255, 255, .8);
  content: "";
  transform: skewY(-2deg);
}
.home-page .home-work-showcase .work-grid figure { background: #dfe3e5; box-shadow: 0 28px 65px rgba(16, 19, 22, .13); }

@media (min-width: 701px) {
  .home-page .home-work-showcase .work-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    grid-template-rows: clamp(380px, 39vw, 540px);
  }
  .home-page .home-work-showcase .work-grid figure:first-child { grid-row: auto; }
}

.home-page .fleet-home-band { padding-block: clamp(54px, 6vw, 78px); box-shadow: inset 0 1px rgba(255, 255, 255, .9), 0 30px 80px rgba(16, 19, 22, .1); }
.home-page .fleet-home-band__inner { min-height: 280px; }
.home-page .final-cta { margin-top: clamp(48px, 6vw, 76px); background: linear-gradient(135deg, #edf0f1, #ead9da 70%, #d7dcde); }

@keyframes serviceCardDrift {
  from { transform: scale(1.025) translate3d(0, 0, 0); }
  to { transform: scale(1.095) translate3d(-1%, -.6%, 0); }
}

@keyframes departmentGalleryHold {
  from { transform: scale(1.015) translate3d(0, 0, 0); }
  to { transform: scale(1.085) translate3d(1%, -.7%, 0); }
}

@keyframes homeCinematicPush {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.13) translate3d(-1.2%, -.8%, 0); }
}

@keyframes cinematicRing {
  to { transform: rotate(360deg); }
}

@keyframes cinematicScroll {
  0%, 100% { opacity: .25; transform: translate(-50%, 0); }
  45% { opacity: 1; }
  70% { opacity: .2; transform: translate(-50%, 14px); }
}

@media (max-width: 820px) {
  .home-page .home-hero { min-height: max(680px, calc(92svh - var(--header-height))); display: grid; padding: 70px 24px 100px; }
  .home-page .home-hero__copy { width: min(100%, 640px); }
  .home-page .home-hero::before {
    background:
      linear-gradient(270deg, rgba(235, 238, 239, .93), rgba(226, 230, 232, .68)),
      linear-gradient(180deg, transparent 40%, rgba(41, 48, 52, .24));
  }
  .home-page .home-hero__media { display: none; }
  .home-page .home-hero__media figcaption { display: none; }
  .home-page .home-hero__rotator .image-rotator__progress { right: auto; bottom: 34px; left: 24px; }
  .home-hero__atmosphere i:nth-child(1) { top: 18%; left: 10%; width: 70vw; height: 70vw; animation: none; transform: none; }
  .home-hero__atmosphere i:nth-child(2),
  .home-hero__atmosphere i:nth-child(3) { display: none; }
  .home-page .home-proof { padding-block: 52px; }
  .home-page .home-proof__inner { grid-template-columns: 1fr; }
  .home-page .home-certificate { width: 100%; grid-template-columns: 1fr; padding: 28px 22px; }
  .home-page .home-certificate__media { min-height: 0; aspect-ratio: 1754 / 1241; }
  .home-page .home-reviews { padding: 28px 22px; }
  .home-page #services,
  .home-page .home-work-showcase { padding-block: 64px; }
  .home-page #services > .section-heading h2,
  .home-page .home-work-showcase > .section-heading h2,
  .home-page .home-proof h2,
  .home-page .fleet-home-band h2,
  .home-page .final-cta h2 { font-size: clamp(1rem, 4.25vw, 1.35rem); white-space: normal; }
  .department-hero::after,
  .home-hero::after,
  .home-hero__scroll { display: none; }
  .department-hero__copy::before,
  .home-hero__copy::before { display: none; }
}

@media (max-width: 520px) {
  .home-page .home-hero { padding-inline: 18px; }
  .home-page .home-hero h1 { font-size: clamp(1.72rem, 7.35vw, 2.4rem); letter-spacing: -.055em; white-space: normal; }
  .home-page .home-hero__facts { grid-template-columns: repeat(3, 1fr); }
  .home-page .home-hero__facts li { display: block; min-height: 72px; padding: 10px 8px; }
  .home-page .home-hero__facts strong { font-size: .98rem; }
  .home-page .home-hero__facts span { font-size: .66rem; }
  .home-hero__scroll span { display: none; }
  .home-page [data-chapter]::after { top: 18px; right: 18px; }
  .home-page .home-proof h2,
  .home-page #services > .section-heading h2,
  .home-page .home-work-showcase > .section-heading h2,
  .home-page .fleet-home-band h2,
  .home-page .final-cta h2 { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-hero__rotator .image-rotator__slide.is-active img,
  .home-page .service-link-card__rotator .image-rotator__slide.is-active img,
  .department-hero__rotator .image-rotator__slide.is-active img,
  .home-hero__atmosphere i,
  .home-hero__scroll i::after { animation: none !important; }
  .home-page .home-hero__media { transform: none; }
}

/* 2026 editorial expansion — quiet luxury, richer narratives, lighter motion. */
.home-page .home-hero h1 em {
  color: var(--visual-red);
  font-style: normal;
  text-shadow: 0 12px 38px rgba(235,238,239,.9);
}
.home-hero__mobile-media { display: none; }
.home-page .service-link-card__media > picture,
.home-page .service-link-card__media > picture img { width: 100%; height: 100%; }
.home-page .service-link-card__media > picture img { object-fit: cover; object-position: center; }

.home-manifesto {
  position: relative;
  isolation: isolate;
  padding-block: clamp(96px, 10vw, 150px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 12% 20%, rgba(212,33,41,.2), transparent 28%),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 72px 72px,
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 72px 72px,
    linear-gradient(135deg, #22292d, #0d1012 72%);
}
.home-manifesto::before { position: absolute; right: -7%; bottom: -32%; color: rgba(255,255,255,.035); content: "CRAFT"; direction: ltr; font: 900 clamp(8rem, 23vw, 22rem)/1 Arial,sans-serif; letter-spacing: -.09em; }
.home-manifesto__layout { position: relative; display: grid; grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr); gap: clamp(48px,8vw,120px); }
.home-manifesto__statement { position: sticky; top: calc(var(--header-height) + 36px); align-self: start; }
.home-manifesto h2 { max-width: 11ch; margin: 0; color: #fff; font-size: clamp(2.6rem,5vw,5.1rem); line-height: 1.14; }
.home-manifesto blockquote { max-width: 34ch; margin: 42px 0 0; padding: 22px 24px 22px 0; color: #d6dcdf; border-right: 3px solid var(--visual-red-bright); font-size: clamp(1rem,1.4vw,1.25rem); line-height: 1.95; }
.home-manifesto__lead { margin: 0 0 42px; color: #bec6ca; font-size: clamp(1rem,1.35vw,1.2rem); line-height: 2.05; }
.home-manifesto__principles { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: rgba(255,255,255,.14); }
.home-manifesto__principles article { min-height: 210px; padding: 28px; background: rgba(16,19,22,.88); }
.home-manifesto__principles span { color: #ef777c; font: 900 .72rem/1 Arial,sans-serif; }
.home-manifesto__principles h3 { margin: 48px 0 10px; color: #fff; font-size: 1.22rem; }
.home-manifesto__principles p { margin: 0; color: #aeb7bc; font-size: .9rem; line-height: 1.8; }

.cinematic-scene { --scene-line: 0%; position: relative; }
.cinematic-scene::after { position: absolute; right: 0; bottom: 0; width: var(--scene-line); height: var(--line-calibration); background: linear-gradient(90deg, var(--visual-red), var(--visual-red-bright), transparent); content: ""; transition: width var(--motion-cinematic) var(--visual-ease); pointer-events: none; }
.cinematic-scene.is-scene-active { --scene-line: min(44%, 520px); }

.department-trust__grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.department-trust__grid--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.department-contact small { display: block; margin-top: 10px; color: #8f9a9f; font-size: .74rem; }

.department-editorial {
  isolation: isolate;
  padding-block: clamp(88px,10vw,150px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 88% 8%, rgba(212,33,41,.18), transparent 24%),
    linear-gradient(135deg,#242b2f,#0e1113 74%);
}
.department-editorial::before { position: absolute; top: -20%; left: -7%; width: min(48vw,620px); height: min(48vw,620px); border: 1px solid rgba(255,255,255,.08); border-radius: 50%; box-shadow: 0 0 0 60px rgba(255,255,255,.018),0 0 0 130px rgba(255,255,255,.012); content: ""; }
.department-editorial__layout { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(44px,8vw,118px); }
.department-editorial__media { position: relative; min-height: 640px; margin: 0; overflow: hidden; background: #171b1e; box-shadow: 24px 24px 0 rgba(143,16,20,.25); clip-path: polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,24px 100%,0 calc(100% - 24px)); }
.department-editorial__media::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 42%,rgba(7,9,10,.7)); content: ""; }
.department-editorial__media picture,.department-editorial__media img { width: 100%; height: 100%; }
.department-editorial__media img { object-fit: cover; object-position: center; filter: saturate(.8) contrast(1.06); transition: transform 1.1s var(--visual-ease),filter .6s ease; }
.department-editorial__media:hover img { filter: saturate(1) contrast(1.08); transform: scale(1.035); }
.department-editorial__media figcaption { position: absolute; right: 22px; bottom: 20px; z-index: 2; color: #fff; font-size: .78rem; font-weight: 800; }
.department-editorial__copy h2 { max-width: 12ch; margin-bottom: 24px; color: #fff; font-size: clamp(2.4rem,4.5vw,4.8rem); }
.department-editorial__lead { margin-bottom: 34px; color: #bdc6ca; font-size: clamp(1rem,1.3vw,1.17rem); line-height: 2; }
.editorial-points { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.13); list-style: none; }
.editorial-points li { display: grid; grid-template-columns: 38px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.editorial-points > li > span { padding-top: 5px; color: #ef777c; font: 900 .72rem/1 Arial,sans-serif; }
.editorial-points h3 { margin: 0 0 6px; color: #fff; font-size: 1.05rem; }
.editorial-points p { margin: 0; color: #9fabb0; font-size: .86rem; line-height: 1.75; }

.department-visit { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr); gap: clamp(42px,8vw,100px); }
.department-visit__heading h2 { max-width: 13ch; font-size: clamp(2.1rem,4vw,3.8rem); }
.department-visit__heading > p:last-child { color: var(--text-muted); line-height: 1.9; }
.department-visit__items { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); }
.department-visit__items article { min-height: 270px; padding: 26px; background: #fff; }
.department-visit__items span { color: var(--visual-red); font: 900 .72rem/1 Arial,sans-serif; }
.department-visit__items h3 { margin: 62px 0 10px; font-size: 1.15rem; }
.department-visit__items p { margin: 0; color: var(--text-muted); font-size: .86rem; line-height: 1.8; }

/* About story */
.about-page .page-main { padding-block: 0; }
.about-hero { display: grid; min-height: min(820px,calc(100svh - var(--header-height))); grid-template-columns: minmax(0,1.08fr) minmax(320px,.92fr); align-items: center; gap: clamp(40px,7vw,96px); padding-block: clamp(70px,9vw,126px); }
.about-hero__copy h1 { max-width: 10ch; margin-bottom: 24px; font-size: clamp(3rem,5.6vw,5.7rem); }
.about-hero__copy .lead-text { max-width: 61ch; color: #343c41; font-size: clamp(1.05rem,1.4vw,1.25rem); line-height: 1.95; }
.about-hero__copy > p:not(.eyebrow):not(.lead-text) { max-width: 72ch; color: var(--text-muted); line-height: 2; }
.about-hero .about-media { position: relative; top: auto; min-height: 600px; }
.about-media figcaption { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: grid; padding: 18px 22px; color: #fff; background: linear-gradient(180deg,transparent,rgba(10,12,14,.92)); }
.about-media figcaption span { color: #ef777c; font: 800 .68rem/1 Arial,sans-serif; letter-spacing: .12em; }
.about-media figcaption strong { margin-top: 6px; }
.about-story { padding-block: clamp(96px,10vw,150px); color: #fff; background: linear-gradient(135deg,#20272b,#0d1012); }
.about-story__layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); align-items: center; gap: clamp(46px,8vw,118px); }
.about-story__media { min-height: 650px; margin: 0; overflow: hidden; box-shadow: -24px 24px 0 rgba(143,16,20,.22); clip-path: polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px); }
.about-story__media picture,.about-story__media img { width: 100%; height: 100%; }
.about-story__media img { object-fit: cover; filter: saturate(.82) contrast(1.06); }
.about-story__copy h2 { max-width: 12ch; color: #fff; font-size: clamp(2.5rem,4.7vw,4.8rem); }
.about-story__copy > p:not(.eyebrow) { color: #bac3c7; line-height: 2; }
.about-principles { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin-top: 36px; background: rgba(255,255,255,.13); }
.about-principles article { min-height: 190px; padding: 24px; background: #151a1d; }
.about-principles span { color: #ef777c; font: 900 .7rem/1 Arial,sans-serif; }
.about-principles h3 { margin: 34px 0 8px; color: #fff; font-size: 1.05rem; }
.about-principles p { margin: 0; color: #98a4a9; font-size: .8rem; line-height: 1.75; }
.about-paths { padding-block: clamp(90px,10vw,140px); }
.about-paths__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.about-paths__grid > a { position: relative; display: grid; min-height: 350px; grid-template-columns: minmax(150px,.8fr) minmax(0,1.2fr); overflow: hidden; color: var(--text-main); border: 1px solid rgba(16,19,22,.1); background: #fff; box-shadow: 0 24px 60px rgba(16,19,22,.09); transition: transform .45s var(--visual-ease),box-shadow .45s ease; }
.about-paths__grid > a:hover { text-decoration: none; transform: translateY(-7px); box-shadow: 0 34px 76px rgba(16,19,22,.15); }
.about-paths__grid picture,.about-paths__grid img { width: 100%; height: 100%; }
.about-paths__grid img { object-fit: cover; }
.about-paths__grid > a > span { position: absolute; top: 16px; right: 16px; z-index: 2; padding: 8px; color: #fff; background: rgba(143,16,20,.9); font: 900 .7rem/1 Arial,sans-serif; }
.about-paths__grid > a > div { display: flex; flex-direction: column; justify-content: center; padding: 28px; }
.about-paths__grid h3 { margin-bottom: 12px; font-size: clamp(1.35rem,2.2vw,2rem); }
.about-paths__grid p { color: var(--text-muted); font-size: .86rem; line-height: 1.8; }
.about-paths__grid b { margin-top: auto; color: var(--visual-red); font-size: .8rem; }
.about-proof { display: grid; grid-template-columns: minmax(280px,.85fr) minmax(0,1.15fr); align-items: center; gap: clamp(44px,8vw,110px); margin-bottom: clamp(80px,9vw,120px); padding: clamp(32px,5vw,68px); color: #fff; background: linear-gradient(135deg,#262e32,#101316); box-shadow: var(--visual-shadow); }
.about-proof__certificate { padding: 18px; background: #fff; box-shadow: 18px 18px 0 rgba(212,33,41,.2); transform: rotate(-1.25deg); }
.about-proof__certificate picture,.about-proof__certificate img { width: 100%; height: auto; }
.about-proof__copy h2 { color: #fff; font-size: clamp(2rem,4vw,3.8rem); }
.about-proof__copy > p:not(.eyebrow) { color: #b5bec2; line-height: 1.9; }
.about-proof .info-list { border-color: #3a4348; background: #3a4348; }
.about-proof .info-list div { color: #fff; background: #1c2225; }
.about-proof .info-list dt { color: #95a1a6; }

/* Contact as visual routing */
.contact-main { padding-top: clamp(50px,7vw,90px) !important; }
.contact-page-hero { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); align-items: end; gap: clamp(40px,8vw,100px); padding: clamp(38px,6vw,72px); margin-bottom: 28px; color: #fff; background: linear-gradient(135deg,#242b2f,#0f1214); box-shadow: var(--visual-shadow); }
.contact-page-hero h1 { max-width: 12ch; color: #fff; font-size: clamp(2.8rem,5.5vw,5.5rem); }
.contact-page-hero > div > p:not(.eyebrow) { max-width: 62ch; color: #b8c1c5; line-height: 1.9; }
.contact-page-hero aside { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 14px; padding: 26px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); }
.contact-page-hero aside span { color: #ef777c; font: 900 .72rem/1 Arial,sans-serif; }
.contact-page-hero aside strong { font-size: .9rem; }
.contact-page-hero aside i { grid-column: 1/-1; height: 1px; background: rgba(255,255,255,.12); }
.contact-card { padding: 0; overflow: hidden; border: 0; border-radius: 0; box-shadow: 0 22px 55px rgba(16,19,22,.1); }
.contact-card__media { height: 260px; overflow: hidden; background: #1b2023; }
.contact-card__media picture,.contact-card__media img { width: 100%; height: 100%; }
.contact-card__media img { object-fit: cover; transition: transform .7s var(--visual-ease),filter .45s ease; }
.contact-card:hover .contact-card__media img { filter: saturate(1.08); transform: scale(1.04); }
.contact-card__copy { padding: clamp(24px,4vw,38px); }
.contact-card__label { margin: 0 0 8px !important; color: var(--visual-red) !important; font-size: .7rem; font-weight: 900; }
.contact-card__guide { min-height: 58px; color: #424b50 !important; line-height: 1.8; }
.contact-card__location { font-size: .78rem; }
.contact-guide { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr); gap: clamp(38px,7vw,90px); margin-bottom: 28px; padding: clamp(32px,5vw,62px); color: #fff; background: linear-gradient(135deg,#252d31,#111416); }
.contact-guide__heading h2 { max-width: 12ch; color: #fff; font-size: clamp(2.1rem,4vw,3.8rem); }
.contact-guide__heading > p:last-child { color: #aeb8bc; line-height: 1.8; }
.contact-guide ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.14); list-style: none; }
.contact-guide li { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 23px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.contact-guide li > span { color: #ef777c; font: 900 .72rem/1 Arial,sans-serif; }
.contact-guide h3 { margin: 0 0 6px; color: #fff; font-size: 1.05rem; }
.contact-guide li p { margin: 0; color: #9da9ae; font-size: .84rem; }

/* Legal reading experience */
.legal-page .narrow-page { width: min(1120px,calc(100% - 40px)); }
.legal-page .content-card { padding: clamp(32px,6vw,76px); border-radius: 0; box-shadow: 0 30px 85px rgba(16,19,22,.1); }
.legal-page .content-card h1 { font-size: clamp(2.7rem,5vw,4.9rem); }
.legal-lead { margin-bottom: 34px; color: #31393e !important; font-size: clamp(1.05rem,1.35vw,1.2rem); line-height: 1.95 !important; }
.legal-highlights { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 30px 0 44px; background: var(--line); }
.legal-highlights article { min-height: 190px; padding: 24px; background: var(--concrete); }
.legal-highlights span { color: var(--visual-red); font: 900 .72rem/1 Arial,sans-serif; }
.legal-highlights strong { display: block; margin: 38px 0 8px; }
.legal-highlights p { margin: 0; color: var(--text-muted); font-size: .8rem; line-height: 1.7; }
.legal-sections { margin-top: 48px; border-top: 1px solid var(--line); }
.legal-sections > section { display: grid; grid-template-columns: 56px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.legal-sections > section > span { padding-top: 7px; color: var(--visual-red); font: 900 .74rem/1 Arial,sans-serif; }
.legal-sections h2 { margin: 0 0 9px; font-size: clamp(1.25rem,2vw,1.65rem); }
.legal-sections p { max-width: 76ch; margin: 0; color: var(--text-muted); line-height: 1.9; }
.legal-contact { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 44px; padding: 24px; color: #fff; background: var(--visual-black); }
.legal-contact p { margin: 0; color: #b7c0c4; }
.legal-contact a { display: inline-flex; min-height: 46px; align-items: center; color: #fff; font-weight: 800; }

/* Global footer with useful depth */
.footer-inner { display: grid; grid-template-columns: minmax(280px,1.3fr) minmax(180px,.7fr) minmax(180px,.7fr); align-items: start; padding-block: clamp(48px,6vw,78px); }
.footer-brand p { max-width: 48ch; line-height: 1.8; }
.footer-column > strong { display: block; margin-bottom: 14px; color: #fff; font-size: .82rem; }
.footer-inner .footer-column nav { display: grid; justify-content: stretch; gap: 0; }
.footer-inner .footer-column nav a,.footer-inner .footer-column nav button { justify-content: flex-start; text-align: right; }
.footer-legal { display: flex; width: min(1280px,calc(100% - 40px)); min-height: 58px; margin-inline: auto; align-items: center; justify-content: space-between; gap: 20px; color: #7f8a8f; border-top: 1px solid rgba(255,255,255,.1); font-size: .68rem; }
.error-card .value-grid { grid-template-columns: repeat(2,1fr); }

/* Fleet portal: shared header clearance, readable type, and the same angular language. */
.fleet-portal-nav { top: calc(var(--header-height) + 4px); border-radius: 0; }
.fleet-portal [id] { scroll-margin-top: calc(var(--header-height) + 72px); }
.fleet-portal .fleet-hero-media { border-radius: 0; box-shadow: 22px 22px 0 rgba(143,16,20,.16),0 32px 80px rgba(16,19,22,.16); clip-path: polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px)); }
.fleet-portal .button,.fleet-portal .outcome-card,.fleet-portal .pilot-card,.fleet-portal .journey-list,.fleet-portal .report-card,.fleet-portal .responsibility-lines article,.fleet-portal .assessment-form { border-radius: 2px; }
.fleet-portal .outcome-card,.fleet-portal .report-card,.fleet-portal .responsibility-lines article { box-shadow: 0 18px 46px rgba(16,19,22,.07); }
.fleet-portal .outcome-card > span { color: #59656b; font-size: .72rem; }
.fleet-portal .outcome-card > p { color: #5f6a70; }
.fleet-portal .outcome-card-dark > span,.fleet-portal .outcome-card-dark > p { color: #c0c8cc; }
.fleet-portal .hero-assurances { font-size: .8rem; }
.fleet-portal .outcome-card p,.fleet-portal .responsibility-lines p,.fleet-portal .report-card p,.fleet-portal .pilot-copy>p:not(.eyebrow),.fleet-portal .faq-list details p { font-size: .86rem; line-height: 1.85; }
.fleet-portal .journey-list span { font-size: .9rem; }
.fleet-portal .journey-disclaimer,.fleet-portal .transport-note,.fleet-portal .form-privacy-note { font-size: .76rem; }
.fleet-portal .form-heading small,.fleet-portal .form-grid label>span { font-size: .78rem; line-height: 1.6; }
.fleet-portal .form-grid input,.fleet-portal .form-grid select,.fleet-portal .form-grid textarea { font-size: .86rem; }
.fleet-portal .form-status { font-size: .76rem; }
.fleet-editorial { position: relative; overflow: hidden; color: #fff; background: linear-gradient(135deg,#232a2e,#0d1012); }
.fleet-editorial::before { position: absolute; left: -5%; bottom: -50%; color: rgba(255,255,255,.035); content: "FLEET"; font: 900 clamp(9rem,25vw,23rem)/1 Arial,sans-serif; }
.fleet-editorial-layout { position: relative; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: clamp(44px,8vw,110px); }
.fleet-editorial-statement h2 { max-width: 12ch; color: #fff; font-size: clamp(2.5rem,4.7vw,4.8rem); }
.fleet-editorial-statement > p:not(.eyebrow) { color: #b6c0c4; font-size: 1rem; line-height: 2; }
.fleet-editorial-pillars { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: rgba(255,255,255,.13); }
.fleet-editorial-pillars article { min-height: 190px; padding: 26px; background: rgba(15,18,20,.88); }
.fleet-editorial-pillars span { color: #ef777c; font: 900 .72rem/1 Arial,sans-serif; }
.fleet-editorial-pillars h3 { margin: 42px 0 6px; color: #fff; }
.fleet-editorial-pillars p { margin: 0; color: #9ca8ad; }
.fleet-priority { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.8fr); gap: 50px; margin-bottom: 76px; padding: clamp(28px,4vw,50px); color: #fff; background: linear-gradient(135deg,#292f33,#131719); }
.fleet-priority h2 { max-width: 13ch; color: #fff; font-size: clamp(2rem,3.8vw,3.5rem); }
.fleet-priority > div > p:not(.eyebrow) { color: #aeb8bc; }
.fleet-priority ul { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin: 0; padding: 1px; background: rgba(255,255,255,.13); list-style: none; }
.fleet-priority li { min-height: 110px; padding: 18px; background: #1a1f22; }
.fleet-priority li span { display: block; margin-bottom: 24px; color: #ef777c; font: 900 .68rem/1 Arial,sans-serif; }
.fleet-priority li b { font-size: .86rem; }
.fleet-subpage-main { padding-top: 28px; }
.fleet-subpage-heading h1 { max-width: 13ch; margin: 0; font-size: clamp(2.7rem,5vw,5rem); line-height: 1.15; }
.fleet-faq-guide { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-bottom: 34px; background: var(--line); }
.fleet-faq-guide article { min-height: 170px; padding: 22px; background: #f5f6f6; }
.fleet-faq-guide span { color: var(--visual-red); font: 900 .68rem/1 Arial,sans-serif; }
.fleet-faq-guide strong { display: block; margin: 32px 0 7px; }
.fleet-faq-guide p { margin: 0; color: #5f696e; font-size: .8rem; line-height: 1.7; }
.fleet-subpage-cta { display: flex; grid-column: 1/-1; align-items: center; justify-content: space-between; gap: 30px; margin-top: 48px; padding: clamp(28px,4vw,48px); color: #fff; background: linear-gradient(135deg,#242b2f,#101316); }
.fleet-subpage-cta h2 { color: #fff; }
.fleet-subpage-cta p:not(.eyebrow) { max-width: 62ch; color: #aeb8bc; }
.fleet-boundary-scope { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr); gap: 56px; margin-top: 54px; padding: clamp(28px,4vw,48px); color: #fff; background: linear-gradient(135deg,#272e32,#111416); }
.fleet-boundary-scope h2 { color: #fff; }
.fleet-boundary-scope > div > p:not(.eyebrow) { color: #aeb7bc; }
.fleet-boundary-scope ul { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.13); list-style: none; }
.fleet-boundary-scope li { display: grid; grid-template-columns: 36px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.13); }
.fleet-boundary-scope li > span { color: #ef777c; font: 900 .68rem/1 Arial,sans-serif; }
.fleet-boundary-scope h3 { margin: 0 0 4px; color: #fff; font-size: .96rem; }
.fleet-boundary-scope li p { margin: 0; color: #98a5aa; font-size: .78rem; }
.fleet-boundaries-page .fleet-portal .boundary-list { margin-top: 26px; padding: 1px 24px; color: #fff; background: #1b2023; }
.fleet-boundaries-page .fleet-portal .boundary-list span { color: #d1d7da; font-size: .86rem; }

@media (min-width: 901px) {
  .fleet-faq-page .fleet-portal .faq-layout { grid-template-columns: minmax(260px,.55fr) minmax(0,1.45fr); }
  .fleet-faq-page .fleet-portal .fleet-subpage-heading { grid-row: 1 / 3; }
  .fleet-faq-page .fleet-portal .fleet-faq-guide,.fleet-faq-page .fleet-portal .faq-list { grid-column: 2; }
}

@media (max-width: 980px) {
  .home-manifesto__layout,.department-editorial__layout,.about-story__layout,.about-proof,.fleet-editorial-layout { grid-template-columns: 1fr; }
  .home-manifesto__statement { position: static; }
  .home-manifesto h2,.department-editorial__copy h2,.about-story__copy h2 { max-width: 15ch; }
  .department-editorial__media,.about-story__media { min-height: 500px; }
  .department-visit,.contact-guide,.fleet-boundary-scope { grid-template-columns: 1fr; }
  .contact-page-hero { grid-template-columns: 1fr; }
  .about-paths__grid > a { grid-template-columns: minmax(140px,.75fr) minmax(0,1.25fr); }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1/-1; }
  .fleet-priority { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .home-page .home-hero { color: #fff; background: #161b1e; }
  .home-page .home-hero::before { background: linear-gradient(180deg,rgba(12,15,17,.42),rgba(12,15,17,.9) 72%,#131719); }
  .home-page .home-hero__copy { color: #fff; text-shadow: none; }
  .home-page .home-hero h1,.home-page .home-hero h1 em { color: #fff; text-shadow: 0 8px 34px rgba(0,0,0,.4); }
  .home-page .home-hero h1 em { color: #ff737a; }
  .home-page .home-hero__lead { color: rgba(255,255,255,.78); }
  .home-page .home-hero__facts li { color: #fff; border-color: rgba(255,255,255,.14); background: rgba(18,22,25,.62); }
  .home-page .home-hero__facts strong { color: #fff; }
  .home-page .home-hero__facts span { color: rgba(255,255,255,.65); }
  .home-page .home-hero .btn-secondary { color: #fff; border-color: rgba(255,255,255,.28); background: rgba(12,15,17,.52); }
  .home-hero__mobile-media { position: absolute; inset: 0; z-index: 0; display: block; margin: 0; overflow: hidden; }
  .home-hero__mobile-media picture,.home-hero__mobile-media img { width: 100%; height: 100%; }
  .home-hero__mobile-media img { object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.06); }
  .department-trust { margin-top: -22px; }
  .department-trust__grid,.department-trust__grid--3 { grid-template-columns: repeat(2,1fr); }
  .department-trust__grid > div:nth-child(odd) { border-inline-end: 1px solid #343b40; }
  .department-visit__items { grid-template-columns: 1fr; }
  .department-visit__items article { min-height: auto; }
  .department-visit__items h3 { margin-top: 32px; }
  .about-hero { min-height: auto; grid-template-columns: 1fr; }
  .about-hero .about-media { min-height: 440px; }
  .about-paths__grid { grid-template-columns: 1fr; }
  .legal-highlights { grid-template-columns: 1fr; }
  .legal-highlights article { min-height: auto; }
  .legal-highlights strong { margin-top: 24px; }
  .footer-legal { align-items: flex-start; flex-direction: column; padding-block: 18px; }
}

@media (max-width: 700px) {
  .home-manifesto { padding-block: 78px; }
  .home-manifesto h2 { font-size: clamp(2rem,10vw,3.1rem); }
  .home-manifesto__principles,.about-principles { grid-template-columns: 1fr; }
  .home-manifesto__principles article,.about-principles article { min-height: auto; }
  .home-manifesto__principles h3 { margin-top: 28px; }
  .department-editorial { padding-block: 72px; }
  .department-editorial__media,.about-story__media { min-height: 380px; }
  .department-editorial__copy h2,.about-story__copy h2 { font-size: clamp(2rem,10vw,3.2rem); }
  .department-trust__grid,.department-trust__grid--3 { grid-template-columns: 1fr; }
  .department-trust__grid > div:nth-child(odd) { border-inline-end: 0; }
  .about-hero__copy h1,.contact-page-hero h1 { font-size: clamp(2.35rem,12vw,3.8rem); }
  .about-paths__grid > a { min-height: 0; grid-template-columns: 1fr; }
  .about-paths__grid picture { height: 220px; }
  .about-proof { padding-inline: 22px; }
  .contact-card__media { height: 220px; }
  .legal-sections > section { grid-template-columns: 36px 1fr; gap: 12px; }
  .legal-contact,.fleet-subpage-cta { align-items: stretch; flex-direction: column; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .error-card .value-grid { grid-template-columns: 1fr; }
  .fleet-editorial-pillars,.fleet-priority ul,.fleet-faq-guide { grid-template-columns: 1fr; }
  .fleet-editorial-pillars article { min-height: auto; }
  .fleet-editorial-pillars h3 { margin-top: 26px; }
  .fleet-portal .outcome-card p,.fleet-portal .responsibility-lines p,.fleet-portal .report-card p,.fleet-portal .faq-list details p { font-size: .9rem; }
  .fleet-portal .hero-assurances { font-size: .78rem; }
  .js-ready .service-grid > [data-reveal],.js-ready .gallery-grid > [data-reveal],.js-ready .contact-grid > [data-reveal],body.reveal-ready .fleet-portal .outcome-grid [data-reveal],body.reveal-ready .fleet-portal .report-grid [data-reveal] { opacity: 1; transform: none; }
}

@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .site-header,.fleet-portal-nav { background: #fff; }
}

@media print {
  .js-ready [data-reveal],body.reveal-ready .fleet-portal [data-reveal] { opacity: 1 !important; transform: none !important; }
  .visual-scroll-progress,.site-header { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .cinematic-scene::after { width: min(44%,520px); transition: none; }
  .department-editorial__media img,.contact-card__media img { transition: none; }
}

/* Global cinematic primitives ------------------------------------------------ */
.section-shell,
.site-header__inner,
.footer-inner { max-width: var(--container-wide); }

.btn:active,
.text-link:active {
  transform: translateY(1px);
  transition-duration: var(--motion-micro);
}

.btn:active { box-shadow: 3px 3px 0 rgba(16, 19, 22, .1); }

/* One engineering line, with semantic states rather than decorative variants. */
.calibration-line {
  --calibration-color: var(--color-brand);
  position: relative;
  width: 100%;
  height: var(--space-5);
  overflow: hidden;
  color: var(--calibration-color);
  contain: layout paint;
  pointer-events: none;
}

.calibration-line > span {
  position: absolute;
  top: 50%;
  right: 0;
  display: block;
  width: 100%;
  height: var(--line-calibration);
  background: linear-gradient(90deg, transparent, currentColor 18%, currentColor 100%);
  transform: translateY(-50%);
  transform-origin: right center;
}

.calibration-line > span::before,
.calibration-line > span::after {
  position: absolute;
  content: "";
}

.calibration-line[data-calibration="signal"] > span {
  height: 10px;
  background:
    linear-gradient(165deg, transparent calc(50% - .5px), currentColor 50%, transparent calc(50% + .5px)) 0 0 / 18% 100% repeat-x;
}

.calibration-line[data-calibration="workshop"] > span::after {
  top: -4px;
  right: 24%;
  width: 9px;
  height: 9px;
  border-right: var(--line-calibration) solid currentColor;
  border-bottom: var(--line-calibration) solid currentColor;
}

.calibration-line[data-calibration="route"] > span {
  background: repeating-linear-gradient(90deg, currentColor 0 24px, transparent 24px 33px);
}

.calibration-line[data-calibration="route"] > span::after {
  top: 50%;
  left: 0;
  width: 7px;
  height: 7px;
  border: var(--line-calibration) solid currentColor;
  border-radius: 50%;
  background: var(--color-paper);
  transform: translateY(-50%);
}

.calibration-line[data-calibration="timeline"] > span::before {
  top: -4px;
  right: 0;
  width: 100%;
  height: 9px;
  background: repeating-linear-gradient(90deg, currentColor 0 1px, transparent 1px 12.5%);
}

.calibration-line[data-calibration="result"] > span::before,
.calibration-line[data-calibration="result"] > span::after {
  top: -7px;
  width: var(--line-calibration);
  height: 15px;
  background: currentColor;
}

.calibration-line[data-calibration="result"] > span::before { right: 0; }
.calibration-line[data-calibration="result"] > span::after { left: 0; }

/* Explicit map loading keeps third-party frames out of the initial page load. */
[data-lazy-map] { position: relative; }

[data-lazy-map-stage] {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(16, 19, 22, .05) 1px, transparent 1px) 0 0 / 44px 44px,
    linear-gradient(rgba(16, 19, 22, .05) 1px, transparent 1px) 0 0 / 44px 44px,
    #e5e9eb;
}

[data-lazy-map-frame] {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  border: 0;
}

[data-lazy-map-load] { min-height: 48px; }
[data-lazy-map].is-map-loaded [data-lazy-map-load] { display: none; }

/* The dock is mobile-only; each destination is server-rendered for the section. */
.mobile-contact-dock { display: none; }

@media (max-width: 820px) {
  body.has-mobile-contact-dock {
    padding-bottom: calc(76px + env(safe-area-inset-bottom));
  }

  .mobile-contact-dock {
    position: fixed;
    right: 12px;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 12px;
    z-index: var(--z-dock);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(16, 19, 22, .92);
    box-shadow: 0 18px 54px rgba(8, 10, 12, .3);
    backdrop-filter: blur(16px);
    transition: opacity var(--motion-interface) var(--ease-natural), transform var(--motion-interface) var(--ease-natural), visibility var(--motion-interface);
  }

  .mobile-contact-dock > a {
    display: grid;
    min-width: 0;
    min-height: 52px;
    place-items: center;
    align-content: center;
    gap: 4px;
    padding: 5px 3px;
    color: #fff;
    background: rgba(255, 255, 255, .035);
    font-size: .68rem;
    font-weight: 800;
    text-decoration: none;
  }

  .mobile-contact-dock > a:nth-child(2) { background: rgba(20, 122, 63, .4); }
  .mobile-contact-dock svg { width: 20px; height: 20px; fill: currentColor; }
  .mobile-contact-dock > a:active { background: rgba(255, 255, 255, .16); transform: translateY(1px); }

  .mobile-contact-dock.is-shelved {
    visibility: hidden;
    opacity: 0;
    transform: translateY(calc(100% + 24px));
    pointer-events: none;
  }
}

/* Native cross-document transition: the calibration line moves; content does not fade. */
@view-transition { navigation: auto; }

.page-transition-line {
  position: fixed;
  top: 0;
  right: 0;
  z-index: calc(var(--z-progress) - 1);
  display: block;
  width: 100%;
  height: var(--line-calibration);
  background: linear-gradient(90deg, transparent, var(--color-brand-bright) 20%, var(--color-brand) 82%, transparent);
  contain: layout paint;
  pointer-events: none;
  view-transition-name: page-calibration;
}

::view-transition-group(root),
::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
}

::view-transition-old(root) { opacity: 0; }

::view-transition-group(page-calibration) {
  animation-duration: 560ms;
  animation-timing-function: var(--ease-natural);
}

::view-transition-old(page-calibration) {
  animation: csLineOut 560ms var(--ease-natural) both;
  transform-origin: left center;
}

::view-transition-new(page-calibration) {
  animation: csLineIn 560ms var(--ease-natural) both;
  transform-origin: right center;
}

@keyframes csLineOut {
  0%, 42% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0; transform: scaleX(0); }
}

@keyframes csLineIn {
  0%, 42% { opacity: 0; transform: scaleX(0); }
  100% { opacity: 1; transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-contact-dock { transition: none; }
  .calibration-line > span { transition: none !important; }
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(page-calibration),
  ::view-transition-new(page-calibration) { animation: none; }
}

@media print {
  .mobile-contact-dock,
  .page-transition-line,
  [data-lazy-map-load] { display: none !important; }
}
