/* ==========================================================================
   One Corsa — global styles
   ========================================================================== */

:root {
  --c-black: #000;
  --c-white: #fff;
  --c-red: #ed1c24;
  --c-red-dark: #b8121a;
  --c-black-80: #333;
  --c-black-50: rgba(0, 0, 0, .5);
  --c-black-10: rgba(0, 0, 0, .1);
  --c-black-5: rgba(0, 0, 0, .05);
  --c-white-80: rgba(255, 255, 255, .8);
  --c-white-50: rgba(255, 255, 255, .5);
  --c-white-20: rgba(255, 255, 255, .2);
  --c-white-10: rgba(255, 255, 255, .1);

  --f-heading: "Anton", "Arial Narrow", Impact, sans-serif;
  --f-body: "Helvetica Neue", Helvetica, Arial, sans-serif;

  --h-hero: 6rem;
  --h-large: 3.125rem;
  --h-medium: 2rem;
  --h-xsmall: 1.625rem;
  --t-small: .875rem;
  --t-regular: 1rem;

  --pad-global: 5rem;
  --pad-section-regular: 8rem;
  --pad-section-xlarge: 12rem;
  --gap: 1.5rem;
  --radius: .25rem;

  --ease-out-expo: cubic-bezier(.19, 1, .22, 1);
  --ease-in-out: cubic-bezier(.7, 0, .3, 1);
}

/* ---------- Fluid root font-size (scales rem with viewport) ---------- */
:root {
  --font-from-0: 13; --font-to-0: 15; --vw-from-0: calc(1 / 100);    --vw-to-0: calc(479 / 100);
  --coefficient-0: calc((var(--font-to-0) - var(--font-from-0)) / (var(--vw-to-0) - var(--vw-from-0)));
  --base-0: calc((var(--font-from-0) - var(--vw-from-0) * var(--coefficient-0)) / 16);
  --font-from-1: 12; --font-to-1: 14; --vw-from-1: calc(479 / 100);  --vw-to-1: calc(992 / 100);
  --coefficient-1: calc((var(--font-to-1) - var(--font-from-1)) / (var(--vw-to-1) - var(--vw-from-1)));
  --base-1: calc((var(--font-from-1) - var(--vw-from-1) * var(--coefficient-1)) / 16);
  --font-from-2: 11; --font-to-2: 16; --vw-from-2: calc(992 / 100);  --vw-to-2: calc(1440 / 100);
  --coefficient-2: calc((var(--font-to-2) - var(--font-from-2)) / (var(--vw-to-2) - var(--vw-from-2)));
  --base-2: calc((var(--font-from-2) - var(--vw-from-2) * var(--coefficient-2)) / 16);
  --font-from-3: 16; --font-to-3: 19; --vw-from-3: calc(1440 / 100); --vw-to-3: calc(2000 / 100);
  --coefficient-3: calc((var(--font-to-3) - var(--font-from-3)) / (var(--vw-to-3) - var(--vw-from-3)));
  --base-3: calc((var(--font-from-3) - var(--vw-from-3) * var(--coefficient-3)) / 16);
  --font-from-4: 16; --font-to-4: 18; --vw-from-4: calc(2000 / 100); --vw-to-4: calc(2400 / 100);
  --coefficient-4: calc((var(--font-to-4) - var(--font-from-4)) / (var(--vw-to-4) - var(--vw-from-4)));
  --base-4: calc((var(--font-from-4) - var(--vw-from-4) * var(--coefficient-4)) / 16);
}
html { font-size: calc(var(--base-4) * 1rem + var(--coefficient-4) * 1vw); }
@media screen and (max-width: 2000px) { html { font-size: calc(var(--base-3) * 1rem + var(--coefficient-3) * 1vw); } }
@media screen and (max-width: 1440px) { html { font-size: calc(var(--base-2) * 1rem + var(--coefficient-2) * 1vw); } }
@media screen and (max-width: 992px)  { html { font-size: calc(var(--base-1) * 1rem + var(--coefficient-1) * 1vw); } }
@media screen and (max-width: 479px)  { html { font-size: calc(var(--base-0) * 1rem + var(--coefficient-0) * 1vw); } }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { height: auto; -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  margin: 0;
  background: var(--c-white);
  color: var(--c-black);
  font-family: var(--f-body);
  font-size: var(--t-regular);
  line-height: 1.4;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
h1, h2, h3, h4, p { margin: 0; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
::selection { background: var(--c-red); color: var(--c-white); }
:focus-visible { outline: 2px solid var(--c-red); outline-offset: 3px; }

/* ---------- Layout ---------- */
.main { position: relative; }
.container { width: 100%; position: relative; }
.container.is-full-height { height: 100%; }
.padding-global { width: 100%; padding-left: var(--pad-global); padding-right: var(--pad-global); position: relative; }
.padding-global.is-full-height { height: 100%; }
.padding-section-regular { padding-top: var(--pad-section-regular); padding-bottom: var(--pad-section-regular); }
.padding-section-xlarge { padding-top: var(--pad-section-xlarge); padding-bottom: var(--pad-section-xlarge); }
.grid-global {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gap);
  row-gap: var(--gap);
  width: 100%;
  position: relative;
}
.section { position: relative; z-index: 2; width: 100%; }
.section.is-white { background: var(--c-white); color: var(--c-black); }
.section.is-black { background: var(--c-black); color: var(--c-white); }
.image { width: 100%; height: 100%; object-fit: cover; }
.image.is-parallax { height: 120%; position: absolute; top: -10%; left: 0; }

/* ---------- Typography ---------- */
.heading-hero, .heading-large, .heading-xlarge, .heading-medium, .heading-xsmall, .loader__number, .nav__link-text {
  font-family: var(--f-heading);
  font-weight: 400;
  text-transform: uppercase;
  font-synthesis: none;
}
.heading-hero   { font-size: var(--h-hero); line-height: .95; }
.heading-large  { font-size: var(--h-large); line-height: 1.1; text-wrap: balance; }
.heading-large.is-quote { line-height: 1.12; }
.heading-xlarge { font-size: var(--h-large); line-height: 1; }
.heading-medium { font-size: var(--h-medium); line-height: 1; }
.heading-xsmall { font-size: var(--h-xsmall); line-height: 1; }
.text-size-small { font-size: var(--t-small); line-height: 1.4; }
.text-weight-bold { font-weight: 700; }
.is-opacity-80 { opacity: .8; }
.is-opacity-50 { opacity: .5; }
.text-color-red { color: var(--c-red); }
.eyebrow {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-red);
  margin-bottom: 1.25rem;
}
.eyebrow.is-light { color: var(--c-white); opacity: .8; }
.link { transition: opacity .3s, color .3s; }
.link:hover { color: var(--c-red); opacity: 1; }

.show-mobile-portrait { display: none; }

/* split-text helpers */
.reveal-line, .reveal-word { will-change: transform; }

/* ---------- Background vertical lines ---------- */
.bg-lines {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  padding: 0 var(--pad-global);
  display: flex;
  justify-content: space-between;
}
.bg-lines > span { width: 1px; height: 100%; background: var(--c-white-20); transform-origin: top; }
.bg-lines > span.is-ghost { background: transparent; }
.bg-lines.is-dark > span { background: var(--c-black-5); }
.bg-lines.is-dark > span.is-ghost { background: transparent; }
.nav__tile .bg-lines.is-dark > span { background: rgba(0, 0, 0, .12); }
.bg-lines.is-logo-wall { top: -100vh; }

/* ---------- Buttons (character slide) ---------- */
.btn {
  --btn-bg: var(--c-red);
  --btn-color: var(--c-white);
  position: relative;
  display: inline-grid;
  flex: none;
  color: var(--btn-color);
  font-size: var(--t-regular);
  font-weight: 500;
  line-height: 1;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: scale .15s cubic-bezier(.4, 0, .2, 1);
  cursor: pointer;
}
.btn:active { scale: .955 .925; }
.btn__bg {
  grid-area: 1 / 1;
  background: var(--btn-bg);
  border-radius: var(--radius);
  transition: scale .75s var(--ease-out-expo), background-color .3s;
}
.btn__inner {
  grid-area: 1 / 1;
  z-index: 1;
  display: grid;
  padding: .85rem 1.1rem;
  overflow: clip;
  pointer-events: none;
}
.btn__content { grid-area: 1 / 1; display: flex; align-items: center; gap: .6rem; white-space: nowrap; }
.btn__label { display: inline-flex; }
.btn__arrow { width: .8em; height: .8em; flex: none; stroke: currentColor; stroke-width: 2.4; fill: none; }
.btn__char, .btn__arrow {
  display: inline-block;
  transition: translate .6s var(--ease-out-expo), transform .25s ease-out, opacity .15s ease-out;
}
.btn__content.is-hover .btn__char, .btn__content.is-hover .btn__arrow { translate: 1.35rem 0 0; transform: skew(-28deg, 0); opacity: 0; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .btn:is(:hover, :focus-visible) .btn__bg { scale: 1.025 1.035; transition-delay: .05s; }
  .btn:is(:hover, :focus-visible) .btn__content.is-default :is(.btn__char, .btn__arrow) {
    translate: -1.35rem 0 0; transform: skew(-28deg, 0); opacity: 0;
    transition-delay: calc((var(--char) - 1) * .018s + .05s);
  }
  .btn:is(:hover, :focus-visible) .btn__content.is-hover :is(.btn__char, .btn__arrow) {
    translate: 0 0 0; transform: skew(0, 0); opacity: 1;
    transition-delay: calc((var(--char) - 1) * .018s + .2s);
  }
}
.btn.is-link { --btn-bg: transparent; --btn-color: inherit; }
.btn.is-link .btn__inner { padding: .35rem 0; }
.btn.is-outline { --btn-bg: var(--c-black-5); --btn-color: var(--c-black); }
.btn.is-light { --btn-bg: var(--c-white); --btn-color: var(--c-black); }

/* ---------- Cursor ---------- */
.cursor {
  position: fixed;
  top: 0; left: 0;
  z-index: 300;
  pointer-events: none;
}
.cursor__pill {
  background: var(--c-red);
  color: var(--c-white);
  border-radius: var(--radius);
  padding: .7rem 1rem;
  font-size: var(--t-small);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  transition: transform .4s cubic-bezier(.625, .05, 0, 1), opacity .3s;
}
.cursor.is-active .cursor__pill { transform: translate(-50%, -50%) scale(1); opacity: 1; }
[data-cursor-zone="drag"] { cursor: grab; }
[data-cursor-zone="drag"]:active { cursor: grabbing; }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

/* ---------- Navigation ---------- */
.nav { position: static; z-index: 100; pointer-events: none; }
.nav__logo {
  position: fixed;
  top: 1.15rem;
  left: var(--pad-global);
  z-index: 200;
  width: 9rem;
  height: 4rem;
  pointer-events: auto;
  backdrop-filter: grayscale(100%) invert(100%);
  -webkit-backdrop-filter: grayscale(100%) invert(100%);
  -webkit-mask: url("../img/logo.png") left center / contain no-repeat;
  mask: url("../img/logo.png") left center / contain no-repeat;
}
[data-nav-status="active"] .nav__logo { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--c-black); transition: background .4s .3s; }

.nav__burger {
  position: fixed;
  top: 1.875rem;
  right: var(--pad-global);
  z-index: 200;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  color: var(--c-white);
  transition: color .5s var(--ease-in-out) .3s;
}
.nav__burger-bg {
  position: absolute;
  inset: 0;
  background: var(--c-red);
  border-radius: var(--radius);
  transition: transform .5s var(--ease-in-out), background-color .5s var(--ease-in-out) .3s;
}
.nav__burger:hover .nav__burger-bg { transform: rotate(90deg); }
.nav__burger-bar {
  position: absolute;
  z-index: 1;
  width: 1rem;
  height: .125rem;
  border-radius: 10rem;
  background: currentColor;
  transition: transform .5s var(--ease-in-out);
}
.nav__burger-bar:nth-of-type(2) { transform: translateY(-.25rem); }
.nav__burger-bar:nth-of-type(3) { transform: translateY(.25rem); }
[data-nav-status="active"] .nav__burger { color: var(--c-red); transition-delay: 0s; }
[data-nav-status="active"] .nav__burger-bg { background: var(--c-black); transition-delay: 0s; }
[data-nav-status="active"] .nav__burger-bar:nth-of-type(2) { transform: rotate(45deg) scale(1.15, 1); }
[data-nav-status="active"] .nav__burger-bar:nth-of-type(3) { transform: rotate(-45deg) scale(1.15, 1); }

.nav__tile {
  position: fixed;
  inset: 0;
  z-index: 199;
  background: var(--c-red);
  color: var(--c-black);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  clip-path: polygon(0% 0%, 100% 0%, 100% 0%, 0% 0%);
  transition: clip-path 1s cubic-bezier(.9, 0, .1, 1);
}
[data-nav-status="active"] .nav__tile { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); pointer-events: auto; }
.nav__ul { position: relative; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.nav__li { position: relative; overflow: hidden; display: flex; transition: opacity .3s var(--ease-in-out); }
.nav__ul:has(.nav__li:hover) .nav__li { opacity: .2; }
.nav__ul:has(.nav__li:hover) .nav__li:hover { opacity: 1; }
.nav__link {
  display: block;
  padding: 0 .075em;
  transform: translateY(100%) rotate(5deg);
  transition: transform .75s var(--ease-in-out);
}
.nav__link-text {
  display: block;
  position: relative;
  font-size: min(4.5rem, 9vh);
  line-height: 1;
  text-shadow: 0 1em 0 currentColor;
  transition: transform .3s var(--ease-in-out);
}
.nav__link:hover .nav__link-text { transform: translateY(-100%); }
.nav__li:nth-child(1) .nav__link { transition-delay: .25s; }
.nav__li:nth-child(2) .nav__link { transition-delay: .2s; }
.nav__li:nth-child(3) .nav__link { transition-delay: .15s; }
.nav__li:nth-child(4) .nav__link { transition-delay: .1s; }
.nav__li:nth-child(5) .nav__link { transition-delay: .05s; }
.nav__li:nth-child(6) .nav__link { transition-delay: 0s; }
[data-nav-status="active"] .nav__link { transform: translateY(0) rotate(.001deg); }
[data-nav-status="active"] .nav__li:nth-child(1) .nav__link { transition-delay: .3s; }
[data-nav-status="active"] .nav__li:nth-child(2) .nav__link { transition-delay: .35s; }
[data-nav-status="active"] .nav__li:nth-child(3) .nav__link { transition-delay: .4s; }
[data-nav-status="active"] .nav__li:nth-child(4) .nav__link { transition-delay: .45s; }
[data-nav-status="active"] .nav__li:nth-child(5) .nav__link { transition-delay: .5s; }
[data-nav-status="active"] .nav__li:nth-child(6) .nav__link { transition-delay: .55s; }
.nav__bottom {
  position: absolute;
  left: var(--pad-global);
  right: var(--pad-global);
  bottom: 2rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .5rem 2rem;
  opacity: 0;
  transition: opacity .4s;
}
[data-nav-status="active"] .nav__bottom { opacity: 1; transition-delay: .6s; }

/* ---------- Loader ---------- */
.loader-cover { position: fixed; inset: 0; z-index: 400; background: var(--c-black); }
html:not(.js) .loader-cover, html:not(.js) .loader { display: none; }
.loader {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  color: var(--c-white);
}
.loader__panel { position: absolute; inset: 0; transform-origin: top; }
.loader__panel.is-red { background: var(--c-red); }
.loader__panel.is-black { background: var(--c-black); }
.loader__count { position: relative; overflow: hidden; }
.loader__number { font-size: 10rem; line-height: 1; min-width: 2ch; text-align: center; }
.loader__lights { position: relative; display: flex; gap: 1.1rem; }
.loader__light {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: #1c1c1c;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}

/* ---------- Odometer ---------- */
[data-odometer] { white-space: nowrap; }
.odo__mask { display: inline-block; vertical-align: top; overflow: clip; height: 1lh; }
.odo__roller { display: block; will-change: transform; }
.odo__roller > span { display: block; height: 1lh; text-align: center; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 34rem;
  overflow: hidden;
  background: var(--c-black);
  color: var(--c-white);
}
.hero__stage { position: absolute; inset: 0; }
.hero__img, .hero__trail {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__img.is-base { filter: brightness(.85); }
.hero__trail { display: none; }
.has-fluid .hero__img.is-base { filter: grayscale(1) brightness(.92); }
.has-fluid .hero__trail { display: block; transition: opacity .4s; }
.hero__gradient {
  position: absolute;
  inset: auto 0 0;
  height: 40rem;
  background: linear-gradient(0deg, var(--c-black), transparent);
  opacity: .75;
  pointer-events: none;
}
.hero__gradient.is-top { inset: 0 0 auto; height: 12rem; transform: scaleY(-1); opacity: .45; }
.hero .container { z-index: 2; }
.padding-global.is-hero { height: 100%; padding-top: 7rem; padding-bottom: 3.75rem; }
.hero__wrapper { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.grid-global.is-hero { flex: 1; align-items: center; }
.hero__list {
  grid-column: 11 / 13;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  text-align: right;
  align-items: flex-end;
}
.hero__list.is-stats { grid-column: 9 / 11; text-align: left; align-items: flex-start; }
.hero__list-item { display: flex; flex-direction: column; gap: .4rem; align-items: flex-end; }
.hero__stats-item { display: flex; flex-direction: column; gap: .625rem; }
.hero__stats-item.is-right { align-items: flex-end; text-align: right; }
.grid-global.is-hero-bottom { align-items: end; }
.hero__text { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 1.5rem; }
.hero__text p { max-width: 28rem; }
.hero__stats { grid-column: 8 / 13; display: flex; justify-content: flex-end; align-items: flex-end; gap: 4rem; }
[data-clock] { font-variant-numeric: tabular-nums; }

/* ---------- Quote ---------- */
.quote { grid-column: 3 / 11; text-align: center; position: relative; z-index: 1; }
.quote__image-wrap {
  position: absolute;
  width: 12rem;
  aspect-ratio: 3 / 4;
  top: 6rem;
  left: 0;
}
.quote__image-wrap.is-right { top: auto; bottom: 6rem; left: auto; right: 0; }
.quote__image { position: relative; width: 100%; height: 100%; border-radius: var(--radius); overflow: hidden; filter: saturate(0); }

/* ---------- Logo wall ---------- */
.logo-wall { position: relative; z-index: 2; background: var(--c-white); }
.logo-wall__wrapper { position: relative; padding: 0 var(--pad-global); }
.logo-wall__grid { display: grid; row-gap: 2rem; align-items: center; justify-items: center; padding-bottom: 5.4rem; }
.logo-wall__item { width: 100%; }
.logo-wall__card {
  aspect-ratio: 3 / 2;
  width: 100%;
  padding: .75rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  transition: background-color .4s;
}
.logo-wall__card img {
  width: 100%;
  max-width: 6.5rem;
  height: 3rem;
  object-fit: contain;
  opacity: .85;
  transition: opacity .4s, transform .6s var(--ease-out-expo);
}
.logo-wall__card.is-word { font-family: var(--f-heading); text-transform: uppercase; font-size: 1.5rem; color: rgba(0, 0, 0, .35); text-align: center; line-height: 1; transition: color .4s; }
.logo-wall__card:hover { background: var(--c-black-5); }
.logo-wall__card:hover img { opacity: 1; transform: scale(1.06); }
.logo-wall__card.is-word:hover { color: var(--c-red); }
.logo-wall__center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(3 / 7 * 100% - 2rem);
  max-width: 30rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}
.logo-wall__center .eyebrow { margin-bottom: 0; }
@media (min-width: 768px) {
  .logo-wall__grid { grid-template-columns: repeat(7, 1fr); }
  .logo-wall__item:nth-child(4n + 1) { grid-column: 1; }
  .logo-wall__item:nth-child(4n + 2) { grid-column: 2; }
  .logo-wall__item:nth-child(4n + 3) { grid-column: 6; }
  .logo-wall__item:nth-child(4n)     { grid-column: 7; }
  .logo-wall__item:nth-child(4n + 1), .logo-wall__item:nth-child(4n) { transform: translateY(5.4rem); }
}

/* ---------- About (sticky chapters) ---------- */
.about { position: relative; z-index: 3; background: var(--c-black); color: var(--c-white); }
.about__images { grid-column: 6 / 9; container-type: inline-size; }
.about__track { display: flex; flex-direction: column; gap: var(--gap); padding-block: calc(50vh - 50cqw); }
.about__image {
  position: relative;
  aspect-ratio: 1;
  width: 100%;
  border-radius: var(--radius);
  overflow: hidden;
  opacity: .2;
  filter: saturate(0);
}
.about__sticky-wrap { position: absolute; inset: 0; min-height: 100dvh; pointer-events: none; }
.about__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.about__sticky .grid-global { align-items: center; }
.about__titles, .about__texts { display: grid; }
.about__titles { grid-column: 1 / 6; }
.about__texts { grid-column: 10 / 13; }
.about__title, .about__text { grid-area: 1 / 1; align-self: center; }
.about__text p { max-width: 22rem; }
.about__mobile-img { display: none; }
.about__skip { position: absolute; left: 0; bottom: var(--pad-global); pointer-events: auto; }
.about__count { position: absolute; right: 0; bottom: var(--pad-global); }
.about__count .heading-xsmall { font-variant-numeric: tabular-nums; }
.about__skip, .about__count { padding: 0; }
.about__sticky .about__skip { left: 0; }

/* ---------- Background giant text ---------- */
.bg-text { position: absolute; inset: 0 0 auto; padding: 1.25rem 1.5rem; pointer-events: none; z-index: 0; }
.bg-text svg { display: block; width: 100%; height: auto; overflow: visible; }
.bg-text text { font-family: var(--f-heading); font-size: 150px; fill: var(--c-black-5); }
.section.is-black .bg-text text { fill: rgba(255, 255, 255, .06); }
.bg-text__gradient { position: absolute; inset: 0 0 -20%; background: linear-gradient(0deg, var(--c-white), rgba(255, 255, 255, 0)); }
.bg-text__gradient.is-black { background: linear-gradient(0deg, var(--c-black), rgba(0, 0, 0, 0)); }
.bg-text.is-gallery { bottom: 13rem; }

/* ---------- Collection ---------- */
.section.is-collection { overflow: hidden; min-height: 100vh; display: flex; align-items: center; }
.section.is-collection > .container { z-index: 1; }
.collection__head { align-items: end; margin-bottom: 3rem; }
.collection__title { grid-column: 1 / 9; }
.slider-nav-wrap { grid-column: 9 / 13; display: flex; justify-content: flex-end; gap: .5rem; }
.slider-nav-wrap.is-center { justify-content: center; }
.slider-nav {
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  background: var(--c-black-5);
  transition: background-color .3s, color .3s, opacity .3s;
}
.slider-nav svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .5s var(--ease-out-expo); }
.slider-nav:hover { background: var(--c-red); color: var(--c-white); }
.slider-nav:hover svg { transform: translateX(-3px); }
.slider-nav.is-next:hover svg { transform: translateX(3px); }
.slider-nav.swiper-button-disabled { opacity: .35; pointer-events: none; }
.collection__swiper { overflow: visible !important; }
.collection__foot { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 3.5rem; }

.car-card { display: flex; flex-direction: column; gap: 1rem; height: 100%; }
.car-card__img { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; background: #eee; }
.car-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter .4s cubic-bezier(.25, .1, .25, 1), transform .4s cubic-bezier(.33, 1, .68, 1);
}
.car-card__tag {
  position: absolute;
  top: .75rem;
  left: .75rem;
  background: var(--c-white);
  border-radius: var(--radius);
  padding: .4rem .6rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.car-card__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.car-card__price { color: var(--c-red); white-space: nowrap; }
.car-card__specs { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.car-card__specs span { display: inline-flex; gap: .35rem; }
.car-card__specs b { font-weight: 700; opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  .car-card__img img { filter: saturate(.15); }
  .car-card:hover .car-card__img img {
    filter: saturate(1);
    transform: scale(1.04);
    transition: filter .4s cubic-bezier(.25, .1, .25, 1), transform .6s cubic-bezier(.22, 1, .36, 1);
  }
}

/* ---------- Services (agenda list) ---------- */
.services { position: relative; z-index: 4; background: var(--c-black); color: var(--c-white); }
.services .container { z-index: 1; }
.services__title { grid-column: 1 / 13; text-align: center; margin-bottom: 4.5rem; }
.services__list { grid-column: 3 / 11; display: flex; flex-direction: column; gap: 2.75rem; }
.services__item { position: relative; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; padding-bottom: .9rem; }
.services__left { display: flex; flex-direction: column; gap: .6rem; }
.services__left .heading-xsmall { transition: color .3s; }
.services__num { font-variant-numeric: tabular-nums; }
.services__line { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--c-white-20); }
.services__line::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .8s var(--ease-out-expo);
}
.services__item.is-active .heading-xsmall, .services__item:hover .heading-xsmall { color: var(--c-red); }
.services__item.is-active .services__line::after, .services__item:hover .services__line::after { transform: scaleX(1); }
.services__preview {
  position: fixed;
  top: 0; left: 0;
  z-index: 50;
  width: 20rem;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
}
.services__preview img { width: 100%; height: 100%; object-fit: cover; }
.finish {
  position: relative;
  height: 14rem;
  background-color: var(--c-white);
  background-image:
    linear-gradient(45deg, rgba(0,0,0,.035) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.035) 75%),
    linear-gradient(45deg, rgba(0,0,0,.035) 25%, transparent 25%, transparent 75%, rgba(0,0,0,.035) 75%);
  background-size: 3.5rem 3.5rem;
  background-position: 0 0, 1.75rem 1.75rem;
}
.finish::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(rgba(255,255,255,0), var(--c-white)); }

/* ---------- Expanding media ---------- */
.expand {
  position: relative;
  z-index: 3;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}
.expand__wrap {
  position: relative;
  width: 70vw;
  height: 70vh;
  border-radius: .65rem;
  overflow: hidden;
  background: var(--c-black);
  color: var(--c-white);
}
.expand__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); }
.expand__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.8), rgba(0,0,0,0) 60%); }
.expand__content {
  position: absolute;
  left: var(--pad-global);
  right: var(--pad-global);
  bottom: calc(3.5rem + 12vh);
  max-width: 38rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.expand__content .eyebrow { margin-bottom: 0; }

/* ---------- Gallery (radial) ---------- */
.gallery { position: relative; z-index: 4; background: var(--c-white); padding-top: 4.5rem; overflow: hidden; }
.gallery .padding-section-regular { padding-top: 3rem; }
.gallery .container { z-index: 1; }
.radial { display: flex; flex-direction: column; align-items: center; gap: 2rem; user-select: none; }
.radial__slider {
  position: relative;
  width: 100vw;
  flex: none;
  height: 32rem;
  overflow: hidden;
}
.radial__top { position: relative; width: 100%; height: 100%; touch-action: pan-y; }
.radial__track { position: absolute; left: 50%; width: 0; height: 0; will-change: transform; }
.radial__card {
  position: absolute;
  width: 15rem;
  height: 20rem;
  margin: -10rem 0 0 -7.5rem;
  border-radius: var(--radius);
  overflow: hidden;
  transform-origin: center center;
  will-change: transform;
  background: #eee;
}
.radial__card img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; -webkit-user-drag: none; filter: saturate(0); transition: filter .5s; }
.radial__card.is-active img { filter: saturate(1); }
.radial__gradient {
  position: absolute;
  inset: auto 0 0;
  height: 12rem;
  z-index: 1;
  background: linear-gradient(180deg, rgba(255,255,255,0), var(--c-white));
  pointer-events: none;
}
.radial__pagination {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  font-variant-numeric: tabular-nums;
}


/* ---------- Contact ---------- */
.section.is-contact { min-height: 100vh; overflow: hidden; z-index: 3; }
.section.is-contact > .container { z-index: 1; }
.contact { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); padding-top: 6rem; }
.contact__intro { grid-column: 1 / 6; display: flex; flex-direction: column; gap: 1.5rem; }
.contact__details { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.contact__details > div { display: flex; flex-direction: column; gap: .3rem; }
.contact__form { grid-column: 7 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; align-content: start; }
.field { display: flex; flex-direction: column; gap: .6rem; }
.field.is-full { grid-column: 1 / -1; }
.input {
  width: 100%;
  border: 0;
  border-radius: var(--radius);
  background: var(--c-white-10);
  color: var(--c-white);
  font: inherit;
  font-size: var(--t-small);
  line-height: 1;
  padding: .85rem 1rem;
  outline: none;
  transition: background-color .3s, box-shadow .3s;
}
.input::placeholder { color: var(--c-white-50); }
.input:focus { background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px var(--c-red); }
.input.is-area { height: 8rem; resize: vertical; line-height: 1.4; }
.input.is-invalid { box-shadow: inset 0 0 0 1px var(--c-red); }
.contact__submit { flex-direction: row; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin-top: .5rem; }

/* ---------- Footer ---------- */
.footer { position: relative; z-index: 3; background: var(--c-white); overflow: hidden; }
.footer .container { z-index: 1; }
.footer__wrapper { padding-top: 6rem; }
.grid-global.is-footer { align-items: start; }
.footer__logo { grid-column: 1 / 4; }
.footer__logo img { width: 14rem; margin-top: -2.5rem; margin-left: -.5rem; }
.footer__links { display: flex; flex-direction: column; gap: 1rem; }
.footer__list { display: flex; flex-direction: column; align-items: flex-start; }
.footer__list .btn { font-size: var(--t-small); }
.footer__bottom {
  position: relative;
  margin-top: 9rem;
  padding: 1.5rem 0 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.footer__drive { position: relative; z-index: 2; }
.footer__bottom > p { position: relative; z-index: 2; }
.footer__car {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 22rem;
  aspect-ratio: 16 / 9;
  margin-left: -11rem;
  border-radius: var(--radius) var(--radius) 0 0;
  overflow: hidden;
  translate: 0 14rem;
  transition: translate 1s var(--ease-out-expo);
}
.footer__car img { width: 100%; height: 100%; object-fit: cover; }
@media (hover: hover) and (pointer: fine) {
  .footer__bottom:has(.footer__drive .btn:is(:hover, :focus-visible)) .footer__car { translate: 0 0; }
}

/* ---------- WhatsApp ---------- */
.whatsapp {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 120;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: #25d366;
  color: var(--c-white);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
  transition: transform .5s var(--ease-out-expo);
}
.whatsapp:hover { transform: scale(1.08) rotate(-6deg); }
.whatsapp svg { width: 1.6rem; height: 1.6rem; fill: currentColor; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 991px) {
  :root {
    --pad-global: 2.5rem;
    --pad-section-regular: 6rem;
    --pad-section-xlarge: 8rem;
    --h-hero: 5rem;
    --h-large: 2.75rem;
  }
  .grid-global { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 1em; row-gap: 2rem; }
  .hero__list, .hero__list.is-stats { display: none; }
  .hero__text { grid-column: 1 / 5; }
  .hero__stats { grid-column: 1 / 5; justify-content: space-between; }
  .hero__stats-item.is-right { align-items: flex-start; text-align: left; }
  .hero__stats-item.is-right:last-child { align-items: flex-end; text-align: right; }
  .quote { grid-column: 1 / 5; }
  .quote__image-wrap { position: relative; top: auto; left: auto; width: 100%; grid-column: span 2; }
  .quote__image-wrap.is-right { bottom: auto; right: auto; margin-top: 4rem; }
  .section.is-white .quote + .quote__image-wrap { margin-bottom: 0; }
  .about__images { grid-column: 2 / 4; }
  .about__titles { grid-column: 1 / 2; }
  .about__texts { grid-column: 4 / 5; }
  .heading-xlarge { font-size: 2rem; }
  .collection__title { grid-column: 1 / 4; }
  .slider-nav-wrap { grid-column: 4 / 5; }
  .services__list { grid-column: 1 / 5; }
  .expand { height: auto; margin-top: 0; padding: 0 var(--pad-global); }
  .expand__wrap { width: 100%; height: 75vh; }
  .expand__content { bottom: 2rem; }
  .contact { grid-column: 1 / 5; grid-template-columns: 1fr; gap: 4rem; }
  .contact__intro, .contact__form { grid-column: 1 / -1; }
  .footer__logo { grid-column: 1 / 5; }
  .services__preview { display: none; }
}

@media (max-width: 767px) {
  :root { --h-hero: 4.25rem; --h-large: 2.4rem; --h-xsmall: 1.4rem; }
  .hide-mobile-portrait { display: none !important; }
  .show-mobile-portrait { display: block; }
  .logo-wall__grid { grid-template-columns: repeat(3, 1fr); padding-bottom: 3rem; row-gap: .5rem; }
  .logo-wall__item:nth-child(3n + 2) { transform: translateY(3rem); }
  .logo-wall__card { aspect-ratio: 1; padding: 1.5rem; }
  .logo-wall__card.is-word { font-size: 1.1rem; }
  .logo-wall__center { position: relative; top: auto; left: auto; transform: none; width: 100%; max-width: none; margin: 0 0 3.5rem; order: -1; }
  .logo-wall__wrapper { display: flex; flex-direction: column; }
  .about { padding: var(--pad-section-regular) 0; }
  .about__sticky-wrap { position: relative; inset: auto; min-height: 0; pointer-events: auto; }
  .about__sticky { position: relative; height: auto; display: block; }
  .about__texts { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 4.5rem; }
  .about__text { display: flex; flex-direction: column; gap: 1rem; }
  .about__mobile-img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); margin-bottom: .5rem; }
  .collection__head { grid-template-columns: 1fr auto; }
  .collection__title { grid-column: 1; }
  .slider-nav-wrap { grid-column: 2; }
  .radial__slider { height: 26rem; }
  .radial__card { width: 11rem; height: 14.5rem; margin: -7.25rem 0 0 -5.5rem; }
  .contact__form { grid-template-columns: 1fr; }
  .contact { padding-top: 2rem; }
  .services__item { flex-direction: column; align-items: flex-start; gap: .5rem; padding-bottom: 1rem; }
  .services__num { position: absolute; top: 0; right: 0; }
  .services__left { padding-right: 2.5rem; }
  .hero__stats { gap: 1.5rem; }
  .footer__bottom { flex-direction: column; align-items: flex-start; margin-top: 5rem; }
  .footer__car { display: none; }
  .nav__logo { width: 7.5rem; height: 3.3rem; top: 1.3rem; }
  .nav__burger { top: 1.75rem; }
  .bg-lines > span:nth-child(n+4):nth-last-child(n+4) { display: none; }
}

@media (max-width: 479px) {
  :root { --pad-global: 1.25rem; --h-hero: 3.6rem; }
  .loader__number { font-size: 7rem; }
  .loader__light { width: 1.3rem; height: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .about__image, .quote__image, .radial__card img { filter: none; opacity: 1; }
}

/* ---------- 3D monogram (logo wall centre) ---------- */
.logo3d {
  position: relative;
  width: 100%;
  max-width: 24rem;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
}
.logo3d__canvas, .logo3d__fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.logo3d__canvas { opacity: 0; transition: opacity .8s; }
.logo3d__fallback { object-fit: contain; padding: 18%; transition: opacity .8s; }
.logo3d.is-ready .logo3d__canvas { opacity: 1; }
.logo3d.is-ready .logo3d__fallback { opacity: 0; }
.logo3d__shadow {
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 9%;
  height: 7%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(0, 0, 0, .22), rgba(0, 0, 0, 0));
  animation: logo3d-shadow 3.2s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes logo3d-shadow { from { transform: scaleX(1); opacity: 1; } to { transform: scaleX(.86); opacity: .7; } }
@media (max-width: 767px) {
  .logo3d { max-width: 15rem; }
  .logo-wall__center { margin-bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .logo3d__shadow { animation: none; } }

/* ==========================================================================
   Multipage — shared
   ========================================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* nav: 8 items + current page */
.nav__ul { gap: .35rem; }
.nav__link-text { font-size: min(3.6rem, 7.2vh); }
.nav__link.is-current .nav__link-text { color: var(--c-white); }
.nav__li:nth-child(7) .nav__link, .nav__li:nth-child(8) .nav__link { transition-delay: 0s; }
[data-nav-status="active"] .nav__li:nth-child(7) .nav__link { transition-delay: .6s; }
[data-nav-status="active"] .nav__li:nth-child(8) .nav__link { transition-delay: .65s; }
.nav__logo-img { display: none; }
/* file:// cannot load CSS masks: fall back to a blend-mode logo */
.is-file .nav__logo { -webkit-mask: none; mask: none; backdrop-filter: none; -webkit-backdrop-filter: none; mix-blend-mode: difference; }
.is-file .nav__logo-img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.is-file [data-nav-status="active"] .nav__logo { mix-blend-mode: normal; background: none; }
.is-file [data-nav-status="active"] .nav__logo-img { filter: brightness(0); }

/* page transition */
.page-transition { position: fixed; inset: 0; z-index: 500; pointer-events: none; visibility: hidden; }
.page-transition__panel { position: absolute; inset: 0; transform: scaleY(0); }
.page-transition__panel.is-red { background: var(--c-red); }
.page-transition__panel.is-black { background: var(--c-black); }

/* inner page hero */
.page-hero {
  position: relative;
  z-index: 10;
  height: 88vh;
  height: 88svh;
  min-height: 32rem;
  overflow: hidden;
  background: var(--c-black);
  color: var(--c-white);
}
.page-hero.is-small { height: 72vh; height: 72svh; }
.page-hero__media { position: absolute; inset: 0; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.7) saturate(.85); }
.page-hero__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.15) 55%, rgba(0,0,0,.45) 100%); }
.page-hero .container { z-index: 2; }
.page-hero__wrap { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.page-hero__title { grid-column: 1 / 9; }
.page-hero__title .eyebrow { margin-bottom: 1rem; }
.page-hero__intro { grid-column: 9 / 13; align-self: end; }
.page-hero__intro p { max-width: 24rem; margin-left: auto; text-align: right; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; color: var(--c-white-80); margin-top: 1rem; }
.breadcrumb a { transition: color .3s; }
.breadcrumb a:hover { color: var(--c-red); }
.breadcrumb__sep { opacity: .4; }
.breadcrumb span:last-child { color: var(--c-white); }

/* light inputs (forms and filters on white sections) */
.section.is-white .input, .enquiry-form.is-light .input { background: var(--c-black-5); color: var(--c-black); }
.section.is-white .input::placeholder, .enquiry-form.is-light .input::placeholder { color: rgba(0,0,0,.4); }
.section.is-white .input:focus, .enquiry-form.is-light .input:focus { background: rgba(0,0,0,.07); }
.input[type="file"] { padding: .7rem 1rem; cursor: pointer; }
.input[readonly] { opacity: .7; }

/* enquiry forms */
.enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem 1rem; align-content: start; }
.enquiry-form__actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .5rem; }
.enquiry-form__note { grid-column: 1 / -1; min-height: 1.2em; }
.enquiry-form.is-dark .btn.is-outline { --btn-bg: var(--c-white-10); --btn-color: var(--c-white); }

/* CTA band */
.cta-band { position: relative; background: var(--c-white); overflow: hidden; z-index: 2; }
.cta-band .container { z-index: 1; }
.cta-band__content { grid-column: 3 / 11; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.25rem; }
.cta-band__content .eyebrow { margin-bottom: 0; }
.cta-band__content p.text-size-small { max-width: 32rem; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin-top: .5rem; }

/* ==========================================================================
   About
   ========================================================================== */
.about-intro__quote { grid-column: 1 / 9; }
.about-intro__text { grid-column: 9 / 13; align-self: end; display: flex; flex-direction: column; gap: 1.25rem; }
.paths { position: relative; background: var(--c-black); color: var(--c-white); z-index: 2; }
.paths__title { grid-column: 1 / 13; margin-bottom: 3rem; }
.paths__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.path-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  min-height: 30rem;
  border-radius: var(--radius);
  overflow: hidden;
  background: #0d0d0d;
  isolation: isolate;
}
.path-card__img { position: absolute; inset: 0; z-index: -1; opacity: .28; transition: opacity .6s, transform 1s var(--ease-out-expo); }
.path-card__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0); transition: filter .6s; }
.path-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0,0,0,.9), rgba(0,0,0,.2)); }
.path-card:hover .path-card__img { opacity: .75; transform: scale(1.05); }
.path-card:hover .path-card__img img { filter: saturate(1); }
.path-card__num { color: var(--c-red); margin-bottom: auto; }
.path-card__cta { font-weight: 700; margin-top: .5rem; transition: color .3s, transform .5s var(--ease-out-expo); }
.path-card:hover .path-card__cta { color: var(--c-red); transform: translateX(.4rem); }
.features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); position: relative; z-index: 1; }
.feature { display: flex; flex-direction: column; gap: .9rem; padding-top: 1.5rem; border-top: 1px solid var(--c-black-10); }
.feature__num { color: var(--c-red); line-height: 1; }
.split { position: relative; z-index: 2; background: var(--c-black); color: var(--c-white); }
.split__grid { align-items: center; }
.split__media { grid-column: 1 / 7; position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; }
.split__media.is-tall { aspect-ratio: 4 / 5; grid-column: 2 / 6; }
.split__content { grid-column: 8 / 13; display: flex; flex-direction: column; gap: 1.25rem; }
.split__content .eyebrow { margin-bottom: 0; }
.split.is-reverse .split__media { order: 2; grid-column: 8 / 12; }
.split.is-reverse .split__content { order: 1; grid-column: 1 / 7; }
.steps { list-style: none; margin: .5rem 0; padding: 0; display: grid; gap: .75rem; }
.step { display: flex; gap: 1.25rem; align-items: baseline; padding: 1rem 0; border-top: 1px solid var(--c-white-20); }
.step .heading-xsmall { color: var(--c-red); flex: none; width: 2.5rem; }

/* ==========================================================================
   Listings
   ========================================================================== */
.listings__toolbar {
  position: sticky;
  top: 0;
  margin-top: -4.5rem;
  padding-top: 5.5rem !important;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem 0 1rem;
  margin-bottom: 1rem;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.chips { display: flex; flex-wrap: wrap; gap: .5rem; padding-right: 4rem; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .85rem;
  border-radius: var(--radius);
  background: var(--c-black-5);
  font-size: var(--t-small);
  font-weight: 500;
  transition: background-color .3s, color .3s;
}
.chip span { font-size: .7rem; opacity: .5; }
.chip:hover { background: var(--c-black-10); }
.chip.is-active { background: var(--c-black); color: var(--c-white); }
.chip.is-active span { opacity: .7; }
.listings__controls { display: flex; gap: .5rem; flex-wrap: wrap; }
.listings__controls .search { flex: 1 1 16rem; }
.listings__controls .select { flex: 0 1 14rem; }
.listings__controls select.input { appearance: none; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 1.1rem) 50%, calc(100% - .8rem) 50%; background-size: .3rem .3rem; background-repeat: no-repeat; padding-right: 2rem; }
.listings__count { margin-bottom: 2rem; }
.listings__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem var(--gap); }
.listings__item[hidden] { display: none; }
.listings__empty { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding: 4rem 0; }
.listings__empty[hidden] { display: none; }
.car-card__year {
  position: absolute;
  top: .75rem;
  right: .75rem;
  background: var(--c-black);
  color: var(--c-white);
  border-radius: var(--radius);
  padding: .4rem .6rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
}

/* ==========================================================================
   Car detail
   ========================================================================== */
.car-hero { position: relative; z-index: 2; background: var(--c-black); color: var(--c-white); padding: 7rem 0 4rem; }
.car-hero .breadcrumb { margin: 0 0 2rem; }
.car-hero__head { margin-bottom: 2rem; }
.car-hero__head .eyebrow { margin-bottom: .75rem; }
.car-hero__head .heading-large { font-size: calc(var(--h-large) * 1.25); }
.car-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); align-items: start; }
.car-gallery { grid-column: 1 / 9; min-width: 0; }
.car-gallery__main { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 2; background: #111; }
.car-gallery__main .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.car-gallery__prev, .car-gallery__next { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
.car-gallery__prev { left: 1rem; }
.car-gallery__next { right: 1rem; }
.car-gallery__count { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; background: rgba(0,0,0,.6); padding: .4rem .7rem; border-radius: var(--radius); font-variant-numeric: tabular-nums; }
.car-gallery__thumbs { margin-top: .5rem; }
.car-gallery__thumbs .swiper-slide { aspect-ratio: 3 / 2; border-radius: var(--radius); overflow: hidden; opacity: .4; cursor: pointer; transition: opacity .3s; }
.car-gallery__thumbs .swiper-slide-thumb-active { opacity: 1; box-shadow: inset 0 0 0 2px var(--c-red); }
.car-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.slider-nav.is-light { background: rgba(255,255,255,.9); color: var(--c-black); }
.spec-card {
  grid-column: 9 / 13;
  position: sticky;
  top: 6rem;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1.75rem;
  border-radius: var(--radius);
  background: #111;
}
.spec-card__price { color: var(--c-white); }
.spec-card__badge { align-self: flex-start; background: var(--c-red); padding: .35rem .6rem; border-radius: var(--radius); font-weight: 700; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.spec-card__list { margin: .5rem 0; display: grid; gap: 0; }
.spec-card__list > div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--c-white-10); }
.spec-card__list dt, .spec-card__list dd { margin: 0; }
.spec-card__list dd { text-align: right; }
.spec-card__actions { display: flex; flex-direction: column; gap: .5rem; }
.spec-card__actions .btn:not(.is-link) { width: 100%; }
.spec-card__actions .btn__content { justify-content: center; }
.spec-card__link { align-self: center; color: var(--c-white-80); }
.vehicle-info { grid-column: 1 / 8; }
.vehicle-info .heading-large { margin-bottom: 2.5rem; }
.vehicle-info__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem var(--gap); }
.vehicle-info__block { display: flex; flex-direction: column; gap: .6rem; padding-top: 1.25rem; border-top: 1px solid var(--c-black-10); }
.vehicle-info__block ul { margin: 0; padding-left: 1rem; display: grid; gap: .35rem; opacity: .8; }
.vehicle-info__block li::marker { color: var(--c-red); }
.car-enquiry { grid-column: 9 / 13; align-self: start; position: sticky; top: 2rem; display: flex; flex-direction: column; gap: 1rem; }
.car-enquiry .enquiry-form { grid-template-columns: 1fr 1fr; margin-top: .5rem; }
.section.is-related { overflow: hidden; border-top: 1px solid var(--c-black-10); }

/* ==========================================================================
   Form pages, news, contact map
   ========================================================================== */
.form-page__intro { grid-column: 1 / 6; display: flex; flex-direction: column; gap: 1.5rem; }
.form-page__contact { display: flex; flex-direction: column; gap: .6rem; margin-top: .5rem; }
.form-page__contact b { display: inline-block; min-width: 5.5rem; }
.form-page__form { grid-column: 7 / 13; position: relative; z-index: 1; }
.contact__quick { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.map { position: relative; z-index: 3; height: 28rem; background: #111; }
.map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(1.1); transition: filter .6s; }
.map:hover iframe { filter: none; }

/* footer: logo + menu + brands + contact */
.grid-global.is-footer > .footer__links:nth-of-type(1) { grid-column: 5 / 7; }
.grid-global.is-footer > .footer__links:nth-of-type(2) { grid-column: 7 / 10; }
.grid-global.is-footer > .footer__links:nth-of-type(2) .footer__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; justify-items: start; }
.grid-global.is-footer > .footer__links:nth-of-type(3) { grid-column: 10 / 13; }
.footer__address { display: block; margin-top: .5rem; line-height: 1.5; max-width: 16rem; }
.footer__socials-title { margin-top: 1.75rem; }

@media (max-width: 991px) {
  .page-hero__title, .page-hero__intro { grid-column: 1 / 5; }
  .page-hero__intro p { margin-left: 0; text-align: left; }
  .about-intro__quote, .about-intro__text { grid-column: 1 / 5; }
  .paths__grid { grid-template-columns: 1fr; }
  .path-card { min-height: 22rem; }
  .features { grid-template-columns: 1fr 1fr; row-gap: 3rem; }
  .split__media, .split__media.is-tall, .split.is-reverse .split__media { grid-column: 1 / 5; order: 0; }
  .split__content, .split.is-reverse .split__content { grid-column: 1 / 5; order: 1; }
  .cta-band__content { grid-column: 1 / 5; }
  .listings__grid { grid-template-columns: 1fr 1fr; }
  .car-hero__grid { grid-template-columns: 1fr; }
  .car-gallery, .spec-card { grid-column: 1 / -1; }
  .spec-card { position: relative; top: auto; }
  .vehicle-info, .car-enquiry { grid-column: 1 / 5; }
  .car-enquiry { position: relative; top: auto; margin-top: 3rem; }
  .form-page__intro, .form-page__form { grid-column: 1 / 5; }
  .grid-global.is-footer > .footer__links:nth-of-type(1) { grid-column: 1 / 3; }
  .grid-global.is-footer > .footer__links:nth-of-type(2) { grid-column: 3 / 5; }
  .grid-global.is-footer > .footer__links:nth-of-type(3) { grid-column: 1 / 5; }
}
@media (max-width: 767px) {
  .listings__toolbar { position: relative; margin-top: 0; padding-top: 0 !important; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .listings__grid { grid-template-columns: 1fr; }
  .chips { flex-wrap: nowrap; overflow-x: auto; padding-right: 0; margin-right: calc(var(--pad-global) * -1); scrollbar-width: none; }
  .chips::-webkit-scrollbar { display: none; }
  .chip { flex: none; }
  .vehicle-info__grid, .enquiry-form, .car-enquiry .enquiry-form { grid-template-columns: 1fr; }
  .features { grid-template-columns: 1fr; }
  .car-hero { padding-top: 6rem; }
  .grid-global.is-footer > .footer__links:nth-of-type(1), .grid-global.is-footer > .footer__links:nth-of-type(2) { grid-column: 1 / 5; }
}

/* sell or consign: option cards + intent toggle */
.paths__grid.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.intent { border: 0; margin: 0; padding: 0; min-width: 0; }
.intent legend { padding: 0; margin-bottom: .6rem; }
.intent__options { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.intent__option { position: relative; cursor: pointer; }
.intent__option input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.intent__option span {
  display: block;
  padding: .95rem 1rem;
  border-radius: var(--radius);
  background: var(--c-black-5);
  font-size: var(--t-small);
  font-weight: 600;
  text-align: center;
  transition: background-color .3s, color .3s;
}
.intent__option:hover span { background: var(--c-black-10); }
.intent__option input:checked + span { background: var(--c-black); color: var(--c-white); }
.intent__option input:focus-visible + span { outline: 2px solid var(--c-red); outline-offset: 2px; }
@media (max-width: 991px) { .paths__grid.is-two { grid-template-columns: 1fr; } }

/* nav logo: hover reveals the original red/black logo on a white plate */
.nav__logo::before {
  content: "";
  position: absolute;
  inset: .8rem -.65rem;
  background: var(--c-white);
  border-radius: var(--radius);
  transform: scale(.85);
  opacity: 0;
  transition: transform .5s var(--ease-out-expo), opacity .25s;
}
.nav__logo-color {
  position: absolute;
  inset: .8rem 0;
  width: 100%;
  height: calc(100% - 1.6rem);
  object-fit: contain;
  object-position: left center;
  opacity: 0;
  transform: translateX(-.25rem);
  transition: opacity .3s, transform .5s var(--ease-out-expo);
}
@media (hover: hover) and (pointer: fine) {
  .nav__logo:hover, .is-file .nav__logo:hover {
    -webkit-mask: none;
    mask: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    mix-blend-mode: normal;
    background: none;
  }
  .nav__logo:hover::before { transform: scale(1); opacity: 1; }
  .nav__logo:hover .nav__logo-color { opacity: 1; transform: none; }
  .nav__logo:hover .nav__logo-img { opacity: 0; }
}

/* car detail: single photo */
.car-gallery__main.is-single { margin: 0; }
.car-gallery__main.is-single img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out-expo); }
@media (hover: hover) and (pointer: fine) { .car-gallery__main.is-single:hover img { transform: scale(1.03); } }

/* forms: honeypot, sending/sent states, reserved badges */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.enquiry-form.is-sending, .contact__form.is-sending { opacity: .6; pointer-events: none; transition: opacity .3s; }
[data-form-note][data-tone="ok"] { color: #1f9d55; opacity: 1; }
.section.is-black [data-form-note][data-tone="ok"] { color: #4ade80; }
[data-form-note][data-tone="error"] { color: var(--c-red); opacity: 1; }
.car-card__reserved { position: absolute; left: .75rem; bottom: .75rem; background: var(--c-red); color: var(--c-white); border-radius: var(--radius); padding: .4rem .6rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.spec-card__badge.is-reserved { background: var(--c-white); color: var(--c-black); }


/* ==========================================================================
   Welcome loader: 100 → logo
   ========================================================================== */
.loader__mark { position: relative; display: grid; place-items: center; }
.loader__logo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(40rem, 80vw);
  height: auto;
  translate: -50% -50%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ==========================================================================
   Mobile & tablet
   ========================================================================== */

/* fluid type: slightly larger on tablets (was 11px at 992px) */
:root { --font-from-1: 13; --font-to-1: 14.5; --font-from-2: 13; --font-to-2: 16; }

/* touch devices: no sticky hover, crisp taps */
@media (hover: none) {
  a, button { -webkit-tap-highlight-color: transparent; }
  .btn:active, .chip:active, .slider-nav:active { opacity: .75; }
}

/* compact header bar once the page scrolls (phones & tablets) */
@media (max-width: 991px) {
  .nav::before {
    content: "";
    position: fixed;
    inset: 0 0 auto;
    z-index: 198;
    height: calc(5rem + env(safe-area-inset-top));
    background: rgba(8, 8, 9, .82);
    backdrop-filter: blur(14px) saturate(1.4);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    transform: translateY(-101%);
    transition: transform .5s var(--ease-out-expo);
    pointer-events: none;
  }
  .is-scrolled .nav::before { transform: none; }
  [data-nav-status="active"].nav::before { transform: translateY(-101%); }
  .nav__logo { top: calc(.85rem + env(safe-area-inset-top)); }
  .nav__burger { top: calc(1.25rem + env(safe-area-inset-top)); width: 2.75rem; height: 2.75rem; }

  /* full-screen menu: scrolls on short screens, safe areas respected */
  .nav__tile { overflow-y: auto; justify-content: flex-start; padding: calc(6.5rem + env(safe-area-inset-top)) var(--pad-global) calc(7rem + env(safe-area-inset-bottom)); }
  .nav__ul { margin: auto 0; gap: .25rem; }
  .nav__link-text { font-size: clamp(2.4rem, 8.5vw, 4rem); padding: .1em 0; }
  .nav__bottom { position: fixed; bottom: calc(1.5rem + env(safe-area-inset-bottom)); flex-direction: column; align-items: center; gap: 0; }
  .nav__bottom .btn .btn__inner { padding: .6rem 0; }

  /* WhatsApp: appears after the hero, never covers the first screen */
  .whatsapp {
    right: calc(1rem + env(safe-area-inset-right));
    bottom: calc(1rem + env(safe-area-inset-bottom));
    width: 3.25rem;
    height: 3.25rem;
    opacity: 0;
    transform: scale(.6);
    pointer-events: none;
    transition: opacity .3s, transform .5s var(--ease-out-expo);
  }
  .is-scrolled .whatsapp { opacity: 1; transform: none; pointer-events: auto; }

  /* forms: 16px inputs stop iOS zooming in on focus; comfortable fields */
  .input { font-size: 16px; padding: .95rem 1rem; min-height: 3.1rem; }
  .input.is-area { min-height: 8.5rem; }
  .field label, .field legend { font-size: .9rem; }
  .enquiry-form__actions .btn, .contact__submit .btn { flex: 1 1 auto; }
  .enquiry-form__actions .btn .btn__content, .contact__submit .btn .btn__content { justify-content: center; }
  .intent__option span { padding: 1.05rem 1rem; }

  /* tap targets ≥ 44px */
  .btn .btn__inner { padding: 1rem 1.2rem; }
  .btn.is-link .btn__inner { padding: .7rem 0; }
  .slider-nav { width: 2.9rem; height: 2.9rem; }
  .chip { min-height: 2.9rem; padding: .7rem 1rem; }
  .breadcrumb a, .breadcrumb span { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .contact__details a, .form-page__contact a { display: inline-block; padding: .55rem 0; }
  .footer__list .btn { font-size: .95rem; }
  .footer__list .btn.is-link .btn__inner { padding: .6rem 0; }
  .footer__address { padding: .4rem 0; }

  /* readable labels (were ~10px) */
  .car-card__tag, .car-card__year, .car-card__reserved, .spec-card__badge, .media-card__badge, .path-card__cta { font-size: max(.72rem, 11.5px); }
  .eyebrow { font-size: max(.75rem, 12px); }
  .chip span { font-size: max(.7rem, 11px); }

  /* hero: content clears the header and sits above the fold */
  .padding-global.is-hero { padding-top: calc(6rem + env(safe-area-inset-top)); padding-bottom: calc(2.5rem + env(safe-area-inset-bottom)); }
  .heading-hero { line-height: .92; }

  /* about chapters: stacked on tablets too (columns were too narrow) */
  .about .container.hide-mobile-portrait, .about .about__titles, .about .about__skip, .about .about__count { display: none !important; }
  .about { padding: var(--pad-section-regular) 0; }
  .about__sticky-wrap { position: relative; inset: auto; min-height: 0; pointer-events: auto; }
  .about__sticky { position: relative; height: auto; display: block; }
  .about__texts { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 4.5rem; }
  .about__text { display: flex; flex-direction: column; gap: 1rem; grid-area: auto; }
  .about__text .show-mobile-portrait { display: block; }
  .about__text p { max-width: 36rem; }
  .about__mobile-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); margin-bottom: .5rem; }

  /* listings: chip row scrolls sideways with a soft edge */
  .chips { flex-wrap: nowrap; overflow-x: auto; padding-right: 2rem; margin-right: calc(var(--pad-global) * -1); scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 85%, transparent); mask: linear-gradient(90deg, #000 85%, transparent); }
  .chips::-webkit-scrollbar { display: none; }
  .chip { flex: none; }

  /* gallery nav sits clear of the cards */
  .slider-nav-wrap.is-center { margin-top: .5rem; }

  /* footer: roomier rhythm */
  .footer__wrapper { padding-top: 4.5rem; }
  .footer__bottom { padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
}

/* tablet portrait (768–991) */
@media (min-width: 768px) and (max-width: 991px) {
  .about__texts { grid-template-columns: 1fr 1fr; column-gap: var(--gap); row-gap: 4rem; }
  .listings__grid, .stories__grid { grid-template-columns: 1fr 1fr; }
  .car-hero__grid { gap: 1.5rem; }
  .spec-card { padding: 2rem; }
  .vehicle-info__grid { grid-template-columns: 1fr 1fr; }
  .contact__form, .enquiry-form { grid-template-columns: 1fr 1fr; }
  .logo-wall__center { margin-bottom: 1rem; }
  .quote__image-wrap { aspect-ratio: 4 / 5; }
}

/* phones */
@media (max-width: 767px) {
  :root { --pad-section-regular: 4.5rem; --pad-section-xlarge: 6rem; }
  .heading-large { text-wrap: balance; }
  .page-hero { min-height: 30rem; }
  .page-hero.is-small { height: 64svh; min-height: 26rem; }
  .collection__swiper .swiper-slide { width: 82%; }
  .hero__stats { gap: 1rem; }
  .services__item { padding-bottom: 1.1rem; }
  .services__list { gap: 2rem; }
  .expand__content { left: 1.25rem; right: 1.25rem; bottom: 1.75rem; }
  .expand__wrap { height: 72svh; border-radius: var(--radius); }
  .radial__slider { height: 24rem; }
  .logo-wall__card img { max-width: 5rem; height: 2.4rem; }
  .footer__bottom { gap: .5rem; }

  /* car page: sticky enquiry bar replaces the floating WhatsApp button */
  .car-cta {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem var(--pad-global) calc(.75rem + env(safe-area-inset-bottom));
    background: rgba(8, 8, 9, .92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: var(--c-white);
    transform: translateY(105%);
    transition: transform .5s var(--ease-out-expo);
  }
  .is-scrolled .car-cta { transform: none; }
  .car-cta__price { flex: 1; min-width: 0; line-height: 1.15; }
  .car-cta__price small { display: block; font-size: 11.5px; opacity: .6; }
  .car-cta__price b { font-family: var(--f-heading); font-weight: 400; font-size: 1.35rem; }
  .car-cta__call { width: 3rem; height: 3rem; flex: none; display: grid; place-items: center; border-radius: var(--radius); background: rgba(255, 255, 255, .1); }
  .car-cta__call svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 2; }
  .car-cta__wa { flex: none; height: 3rem; padding: 0 1.1rem; display: inline-flex; align-items: center; gap: .5rem; border-radius: var(--radius); background: var(--c-red); font-weight: 600; font-size: .95rem; }
  body:has(.car-cta) .whatsapp { display: none; }
  body:has(.car-cta) .footer__bottom { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)); }
}
@media (min-width: 768px) { .car-cta { display: none; } }

/* short landscape phones: keep the hero readable */
@media (max-height: 500px) and (orientation: landscape) {
  .hero, .page-hero, .page-hero.is-small { height: auto; min-height: 100svh; }
  .heading-hero { font-size: 3rem; }
  .loader__number { font-size: 5rem; }
}
@media (max-width: 991px) {
  .footer__list .btn.is-link .btn__inner, .nav__bottom .btn.is-link .btn__inner { padding: 0; min-height: 44px; align-items: center; }
  .footer__list { row-gap: 0; }
  .contact__details a, .form-page__contact a, .footer__address { display: flex; align-items: center; min-height: 44px; padding: .25rem 0; }
  .footer__address { display: block; padding: .75rem 0; }
  .spec-card__link .btn__inner { min-height: 44px; align-items: center; }
  .footer__drive .btn.is-link .btn__inner { min-height: 44px; align-items: center; }
}
@media (max-width: 991px) {
  .contact__details a { display: block; min-height: 0; padding: .55rem 0 .65rem; line-height: 1.45; }
  .contact__details > div { gap: 0; }
  .contact__details { gap: .75rem; }
}
@media (max-width: 991px) { .split__media, .split__media.is-tall { max-height: 68svh; width: 100%; } .split__media.is-tall { aspect-ratio: 4 / 5; } }
.loader__logo { max-width: none; }
