@charset "UTF-8";

:root {
  --ink: #111416;
  --ink-deep: #0a0c0d;
  --ink-soft: #1d2224;
  --ink-card: #242a2c;
  --paper: #f1efe8;
  --paper-soft: #e6e4dc;
  --paper-warm: #d8d6cc;
  --white: #fbfaf6;
  --orange: #ff6b18;
  --orange-hot: #ff8530;
  --orange-pale: #ffbd7d;
  --blue-brand: #1d459d;
  --blue-deep: #11285c;
  --blue-light: #6d8fe5;
  --blue-steel: #668ea9;
  --blue: #87a9bb;
  --line-dark: rgba(255, 255, 255, .15);
  --line-light: rgba(17, 20, 22, .16);
  --display: "Arial Black", "Helvetica Neue", Arial, sans-serif;
  --body: Arial, Helvetica, sans-serif;
  --ease-out: cubic-bezier(.22, .61, .36, 1);
  --ease-inout: cubic-bezier(.65, 0, .35, 1);
  --radius: 2px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { color: var(--ink); background: var(--orange); }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: -50px;
  left: 18px;
  padding: 11px 16px;
  color: var(--ink);
  background: var(--orange);
  font-weight: 700;
  transition: top .2s ease;
}
.skip-link:focus { top: 15px; }
.noscript-message {
  position: fixed;
  z-index: 999;
  right: 12px;
  bottom: 12px;
  max-width: 330px;
  padding: 14px 18px;
  color: var(--ink);
  background: var(--orange);
  box-shadow: 0 12px 30px rgba(0,0,0,.2);
}

/* Loader */
.site-loader {
  position: fixed;
  z-index: 300;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--white);
  background: var(--ink-deep);
  pointer-events: none;
  animation: loader-hide .8s 1.1s var(--ease-inout) forwards;
}
.loader-inner { width: min(350px, calc(100% - 48px)); }
.loader-topline {
  display: flex;
  justify-content: space-between;
  color: rgba(255,255,255,.55);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .2em;
}
.loader-word {
  margin: 24px 0 10px;
  color: var(--orange);
  font-family: var(--display);
  font-size: clamp(4rem, 14vw, 7rem);
  line-height: .8;
  letter-spacing: -.11em;
}
.loader-word span { display: inline-block; margin-left: 5px; color: var(--white); font-size: .32em; vertical-align: top; }
.loader-track { height: 2px; overflow: hidden; background: rgba(255,255,255,.2); }
.loader-track span { display: block; width: 0; height: 100%; background: var(--orange); animation: loader-progress 1.1s var(--ease-out) forwards; }
.loader-inner p { margin: 12px 0 0; color: rgba(255,255,255,.5); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.blink { color: var(--orange); animation: blink 1s infinite; }
@keyframes loader-progress { to { width: 100%; } }
@keyframes loader-hide { to { visibility: hidden; opacity: 0; } }
@keyframes blink { 50% { opacity: .1; } }

/* Shared */
.container { width: min(1380px, calc(100% - 72px)); margin: 0 auto; }
.section { position: relative; padding: clamp(96px, 11vw, 170px) 0; }
.section-dark { position: relative; overflow: hidden; color: var(--white); background: var(--ink); }
.section-kicker {
  display: flex;
  align-items: center;
  gap: 13px;
  color: rgba(17,20,22,.65);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .23em;
  text-transform: uppercase;
}
.section-kicker > span:first-child { color: var(--orange); font-family: var(--display); font-size: 13px; letter-spacing: 0; }
.section-kicker i { display: block; width: 36px; height: 1px; background: currentColor; opacity: .55; }
.section-kicker-light { color: rgba(255,255,255,.57); }
.section-title {
  margin: 0;
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(3rem, 6.2vw, 6.65rem);
  line-height: .91;
  letter-spacing: -.085em;
  text-wrap: balance;
}
.section-title em { color: var(--orange); font-style: normal; }
.section-title-light { color: var(--white); }
.copy-muted { color: rgba(17,20,22,.57) !important; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-height: 55px;
  padding: 0 19px 0 22px;
  border: 1px solid transparent;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
  transition: color .3s ease, background .3s ease, border-color .3s ease, transform .3s var(--ease-out), box-shadow .3s ease;
}
.button svg, .service-link svg, .button > svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; transition: transform .3s var(--ease-out); }
.button:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,0,0,.17); }
.button:hover svg { transform: translateX(4px); }
.button-primary { color: var(--ink); background: var(--orange); }
.button-primary:hover { color: var(--ink); background: var(--orange-hot); }
.button-light { color: var(--ink); background: var(--white); }
.button-light:hover { color: var(--white); background: var(--orange); }
.button-small { min-height: 43px; padding: 0 14px 0 17px; gap: 13px; font-size: 9px; }
.button-small svg { width: 15px; height: 15px; }
.underlined-link, .map-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid currentColor;
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: color .2s ease, gap .3s var(--ease-out);
}
.underlined-link span, .map-link span { color: var(--orange); font-size: 18px; line-height: 10px; }
.underlined-link:hover, .map-link:hover { gap: 17px; color: var(--orange); }

/* Reveal system */
.js .reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.js .reveal.in { opacity: 1; transform: none; }
.js .reveal[data-delay="1"] { transition-delay: .1s; }
.js .reveal[data-delay="2"] { transition-delay: .2s; }
.js .reveal[data-delay="3"] { transition-delay: .3s; }
.js .reveal[data-delay="4"] { transition-delay: .4s; }
.js .reveal[data-delay="5"] { transition-delay: .5s; }
.js .reveal-fast { transition-duration: .55s !important; }
.js .hero-line { display: block; opacity: 0; transform: translateY(115%); clip-path: inset(0 0 0 0); transition: opacity .9s var(--ease-out), transform 1s var(--ease-out); }
.js .hero-line:nth-child(1) { transition-delay: .12s; }
.js .hero-line:nth-child(2) { transition-delay: .2s; }
.js .hero-line:nth-child(3) { transition-delay: .28s; }
.js.page-ready .hero-line { opacity: 1; transform: none; }

/* Cursor */
.cursor-ring {
  position: fixed;
  z-index: 250;
  top: 0;
  left: 0;
  width: 30px;
  height: 30px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: difference;
  transform: translate(-50%, -50%);
  transition: width .28s var(--ease-out), height .28s var(--ease-out), background .28s ease, opacity .3s ease;
}
.cursor-ring span { position: absolute; top: 50%; left: 50%; width: 3px; height: 3px; border-radius: 50%; background: var(--orange); transform: translate(-50%, -50%); }
.cursor-ring.is-visible { opacity: 1; }
.cursor-ring.is-hover { width: 62px; height: 62px; background: rgba(255,107,24,.2); }
@media (hover: hover) { body, a, button { cursor: none; } }

/* Header */
.site-header {
  position: fixed;
  z-index: 150;
  top: 0;
  left: 0;
  width: 100%;
  color: var(--white);
  transition: background .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
}
.site-header.scrolled { background: rgba(14,17,18,.82); box-shadow: 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(18px); }
.nav-shell { display: flex; align-items: center; justify-content: space-between; gap: 26px; width: min(1510px, calc(100% - 72px)); min-height: 92px; margin: 0 auto; }
.brand { display: flex; flex-direction: column; gap: 5px; flex: 0 0 auto; }
.brand img { width: 150px; height: auto; }
.brand-location { color: rgba(255,255,255,.56); font-size: 8px; font-weight: 700; letter-spacing: .22em; }
.main-nav { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 42px); margin-left: auto; }
.main-nav a { position: relative; color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; transition: color .2s ease; }
.main-nav a::after { position: absolute; right: 0; bottom: -10px; left: 0; height: 1px; background: var(--orange); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ease-out); }
.main-nav a:hover, .main-nav a.is-active { color: var(--white); }
.main-nav a:hover::after, .main-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.main-nav a.is-active::after { background: var(--blue-light); }
.nav-actions { display: flex; align-items: center; gap: 19px; margin-left: auto; }
.mini-phone { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.66); font-size: 10px; letter-spacing: .04em; white-space: nowrap; transition: color .2s ease; }
.mini-phone:hover { color: var(--orange-pale); }
.mini-phone-icon { display: grid; place-items: center; width: 18px; height: 18px; color: var(--blue-light); }
.mini-phone-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.mini-phone-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(255,107,24,.13); }
.nav-toggle { display: none; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.24); background: transparent; }
.nav-toggle span { display: block; width: 17px; height: 1px; margin: 5px auto; background: var(--white); transition: transform .3s ease; }

/* Hero */
.hero { min-height: max(720px, 100svh); padding: 140px 0 30px; background: var(--ink-deep); }
.hero-canvas, .hero-grid-overlay, .hero-glow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-canvas { z-index: 0; opacity: .75; }
.hero-grid-overlay { z-index: 0; background-image: linear-gradient(rgba(29,69,157,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, black, transparent 88%); opacity: .42; }
.hero-glow { z-index: 0; width: 60vw; height: 60vw; border-radius: 50%; filter: blur(90px); opacity: .12; }
.hero-glow-one { top: 18%; left: -25%; background: var(--orange); }
.hero-glow-two { right: -34%; bottom: -32%; background: var(--blue-brand); opacity: .22; }
.hero-container { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(350px, .78fr); align-items: center; gap: clamp(35px, 7vw, 125px); min-height: calc(100svh - 180px); }
.hero-copy { padding: 30px 0 25px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 34px; color: rgba(255,255,255,.61); font-size: 10px; font-weight: 700; letter-spacing: .23em; }
.eyebrow-mark { display: inline-block; width: 30px; height: 6px; border-left: 14px solid var(--orange); border-right: 6px solid transparent; transform: skewX(-25deg); }
.eyebrow-slash { color: var(--orange); }
.hero-title { max-width: 820px; margin: 0; color: var(--white); font-family: var(--display); font-size: clamp(4.2rem, 8.15vw, 9.2rem); line-height: .83; letter-spacing: -.105em; }
.hero-line-accent { color: var(--orange); }
.hero-period { color: var(--blue-light); }
.hero-locations i { background: var(--blue-light); }
.hero-description { max-width: 520px; margin: 38px 0 0; color: rgba(255,255,255,.66); font-size: 15px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 35px; }
.text-link { display: inline-flex; align-items: center; gap: 11px; color: rgba(255,255,255,.78); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; transition: color .2s ease; }
.text-link:hover { color: var(--orange); }
.text-link-icon { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.text-link-icon svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.4; }
.hero-proof { display: flex; align-items: center; gap: 14px; margin-top: clamp(54px, 7vw, 95px); }
.proof-avatars { display: flex; align-items: center; }
.proof-avatars span { display: grid; place-items: center; width: 27px; height: 27px; margin-left: -5px; border: 1px solid var(--ink-deep); border-radius: 50%; color: var(--ink); background: var(--orange); font-size: 8px; font-weight: 700; }
.proof-avatars span:first-child { margin-left: 0; color: var(--white); background: var(--blue-brand); }
.proof-avatars span:nth-child(2) { color: var(--white); background: #6c7775; }
.hero-proof strong, .hero-proof span { display: block; }
.hero-proof strong { color: rgba(255,255,255,.88); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.hero-proof div:last-child span { margin-top: 3px; color: rgba(255,255,255,.43); font-size: 10px; }
.hero-visual { position: relative; justify-self: end; width: min(100%, 515px); perspective: 1200px; }
.hero-visual::before { position: absolute; z-index: -1; top: 9%; right: -9%; width: 80%; height: 80%; border: 1px solid rgba(29,69,157,.78); content: ""; transform: rotate(-6deg); }
.hero-visual::after { position: absolute; z-index: -1; right: -3%; bottom: 2%; width: 46px; height: 46px; background: var(--orange); content: ""; opacity: .95; }
.tilt-surface { position: relative; transform-style: preserve-3d; transition: transform .2s ease-out; will-change: transform; }
.hero-image-shell { position: relative; aspect-ratio: .82; overflow: hidden; border: 1px solid rgba(255,255,255,.22); background: #27333a; box-shadow: 24px 28px 70px rgba(0,0,0,.32); }
.hero-image-shell > img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82) contrast(1.07); }
.hero-image-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,11,12,.03) 30%, rgba(8,11,12,.82) 100%), linear-gradient(90deg, rgba(8,11,12,.35), transparent 45%); }
.image-caption { position: absolute; right: 23px; bottom: 21px; left: 23px; display: flex; justify-content: space-between; color: rgba(255,255,255,.68); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.image-caption span:first-child { color: var(--orange); }
.image-corner { position: absolute; width: 24px; height: 24px; border-color: var(--orange); }
.image-corner-tl { top: 17px; left: 17px; border-top: 1px solid; border-left: 1px solid; }
.image-corner-br { right: 17px; bottom: 17px; border-right: 1px solid; border-bottom: 1px solid; }
.hero-orbit { position: absolute; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; pointer-events: none; }
.orbit-one { top: -8%; right: -10%; width: 118%; height: 54%; transform: rotate(-21deg); }
.orbit-two { bottom: -4%; left: -22%; width: 90%; height: 42%; border-color: rgba(255,107,24,.32); transform: rotate(-18deg); }
.hero-float { position: absolute; z-index: 2; padding: 15px 17px 14px; border: 1px solid rgba(255,255,255,.16); background: rgba(21,26,27,.8); box-shadow: 0 14px 35px rgba(0,0,0,.24); backdrop-filter: blur(10px); }
.hero-float-top { top: 9%; left: -16%; min-width: 122px; transform: rotate(-5deg); }
.hero-float-bottom { right: -16%; bottom: 14%; display: flex; align-items: center; gap: 10px; transform: rotate(4deg); }
.float-label { display: block; color: rgba(255,255,255,.5); font-size: 8px; font-weight: 700; letter-spacing: .19em; }
.hero-float strong { display: block; margin-top: 4px; color: var(--orange); font-family: var(--display); font-size: 34px; line-height: .8; letter-spacing: -.1em; }
.hero-float strong span { font-size: 14px; letter-spacing: 0; }
.hero-float small { display: block; margin-top: 8px; color: rgba(255,255,255,.56); font-size: 9px; }
.float-number { color: var(--orange); font-family: var(--display); font-size: 30px; line-height: .8; letter-spacing: -.1em; }
.hero-stamp { position: absolute; z-index: 3; right: -49px; top: 30%; display: grid; place-items: center; width: 100px; height: 100px; color: var(--orange); transform: rotate(14deg); }
.hero-stamp svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: currentColor; font-size: 7px; letter-spacing: 3px; }
.hero-stamp > span { font-family: var(--display); font-size: 25px; letter-spacing: -.13em; }
.hero-footer-line { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 35px; color: rgba(255,255,255,.42); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.hero-scroll, .hero-locations { display: flex; align-items: center; gap: 12px; }
.scroll-line { display: inline-block; width: 54px; height: 1px; background: var(--orange); }
.hero-locations i { display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: var(--blue-light); }
.hero-coordinate { color: rgba(255,255,255,.25); }

/* Marquee */
.marquee { position: relative; z-index: 2; overflow: hidden; padding: 19px 0 16px; color: var(--ink); background: var(--orange); -webkit-mask-image: linear-gradient(90deg, transparent, black 7%, black 93%, transparent); }
.marquee-track { display: flex; align-items: center; width: max-content; gap: 28px; padding-right: 28px; animation: scroll-x 28s linear infinite; }
.marquee span { font-family: var(--display); font-size: clamp(1rem, 2vw, 1.45rem); letter-spacing: -.04em; }
.marquee i { font-size: 16px; font-style: normal; }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes scroll-x { to { transform: translateX(-50%); } }

/* Intro */
.intro-section { position: relative; background: var(--paper); }
.intro-section::before { position: absolute; top: 0; right: 0; width: 22%; height: 5px; background: var(--blue-brand); content: ""; }
.intro-section .section-kicker > span:first-child { color: var(--blue-brand); }
.intro-section .section-title em { color: var(--blue-brand); }
.intro-heading-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(300px, .72fr); align-items: end; gap: clamp(38px, 9vw, 160px); margin-top: 42px; }
.intro-copy { padding-bottom: 5px; }
.intro-copy p { max-width: 470px; margin: 0 0 17px; font-size: 17px; line-height: 1.6; }
.intro-copy strong { color: var(--orange); }
.intro-copy .underlined-link { margin-top: 22px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(80px, 11vw, 150px); border-top: 1px solid var(--line-light); }
.stat-item { position: relative; min-height: 160px; padding: 26px 20px 0 0; border-right: 1px solid var(--line-light); }
.stat-item:not(:first-child) { padding-left: 22px; }
.stat-item:last-child { border-right: 0; }
.stat-number { display: flex; align-items: flex-start; color: var(--ink); font-family: var(--display); font-size: clamp(3rem, 5.5vw, 6rem); line-height: .82; letter-spacing: -.1em; }
.stat-number sup { margin: 3px 0 0 6px; color: var(--orange); font-family: var(--body); font-size: 14px; font-weight: 700; letter-spacing: .05em; }
.stat-static { white-space: nowrap; }
.stat-label { margin-top: 18px; color: rgba(17,20,22,.55); font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.stat-item-accent { padding-left: 22px; color: var(--white); background: var(--blue-brand); }
.stat-item-accent .stat-number { color: var(--white); }
.stat-item-accent .stat-label { color: rgba(255,255,255,.65); }
.stat-item-accent .stat-number sup { color: var(--orange-pale); }

/* Services */
.services-section { background: var(--ink); }
.services-background-word { position: absolute; top: 4%; right: -3%; color: transparent; font-family: var(--display); font-size: clamp(9rem, 27vw, 30rem); line-height: .7; letter-spacing: -.13em; -webkit-text-stroke: 1px rgba(255,255,255,.045); pointer-events: none; }
.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-top: 43px; margin-bottom: 64px; }
.section-side-copy { max-width: 360px; margin: 0 7% 6px 0; color: rgba(255,255,255,.53); font-size: 14px; line-height: 1.65; }
.section-side-copy p { margin: 0; }
.section-side-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 17px; color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: gap .25s var(--ease-out); }
.section-side-link span { font-size: 17px; line-height: .7; }
.section-side-link:hover { gap: 15px; }
.service-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 13px; }
.service-card { min-height: 322px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); background: var(--ink-card); perspective: 1100px; }
.service-card-tall { grid-row: span 2; min-height: 657px; }
.service-card-wide { grid-column: span 2; min-height: 335px; }
.service-card .tilt-surface { height: 100%; min-height: inherit; }
.service-card img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; filter: saturate(.85) contrast(1.08); transition: transform .8s var(--ease-out), filter .8s ease; }
.service-card:hover img { transform: scale(1.06); filter: saturate(1.03) contrast(1.08); }
.service-card[data-spotlight]::after { position: absolute; z-index: 3; inset: 0; border: 1px solid rgba(255,255,255,.18); background: radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.18), transparent 62%); content: ""; opacity: 0; pointer-events: none; mix-blend-mode: screen; transition: opacity .35s ease; }
.service-card[data-spotlight]:hover::after { opacity: 1; }
.service-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,8,9,.22) 10%, rgba(6,8,9,.08) 36%, rgba(6,8,9,.9) 100%); }
.service-meta { position: absolute; z-index: 4; top: 19px; right: 21px; left: 21px; display: flex; justify-content: space-between; color: rgba(255,255,255,.65); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.service-meta span:first-child { color: var(--orange); font-family: var(--display); font-size: 17px; letter-spacing: -.06em; }
.service-icon { position: absolute; z-index: 4; top: 73px; left: 22px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: var(--orange); background: rgba(12,15,16,.18); backdrop-filter: blur(8px); transition: color .3s ease, background .3s ease, transform .4s var(--ease-out); }
.service-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.15; }
.service-card:hover .service-icon { color: var(--ink); background: var(--orange); transform: rotate(-10deg) scale(1.08); }
.service-card:nth-child(2) .service-icon { color: var(--blue-light); border-color: rgba(109,143,229,.5); }
.service-card:nth-child(2):hover .service-icon { color: var(--white); background: var(--blue-brand); }
.service-content { position: absolute; z-index: 4; right: 23px; bottom: 22px; left: 23px; }
.service-content h3 { max-width: 570px; margin: 0; color: var(--white); font-family: var(--display); font-size: clamp(2rem, 3.4vw, 4.2rem); line-height: .89; letter-spacing: -.09em; }
.service-card:not(.service-card-tall):not(.service-card-wide) .service-content h3 { font-size: clamp(1.95rem, 3vw, 3.25rem); }
.service-content h3 strong { display: block; color: var(--orange); font-weight: inherit; }
.service-content p { max-width: 470px; max-height: 0; margin: 15px 0 0; overflow: hidden; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.5; opacity: 0; transition: max-height .5s var(--ease-out), opacity .45s ease; }
.service-card:hover .service-content p, .service-card:focus-within .service-content p { max-height: 80px; opacity: 1; }
.service-link { display: inline-flex; align-items: center; gap: 13px; margin-top: 17px; color: var(--white); font-size: 9px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.service-link span { color: var(--orange); font-size: 19px; line-height: 9px; transition: transform .25s ease; }
.service-link:hover span { transform: translate(3px, -3px); }
.services-foot { display: flex; justify-content: space-between; gap: 25px; padding-top: 22px; color: rgba(255,255,255,.35); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.services-foot span:last-child { color: var(--orange); }
.service-index { display: grid; grid-template-columns: 195px 1fr; gap: 28px; margin-top: 55px; padding-top: 20px; border-top: 1px solid var(--line-dark); }
.service-index-label { color: rgba(255,255,255,.36); font-size: 9px; font-weight: 700; letter-spacing: .19em; }
.service-tags { display: flex; flex-wrap: wrap; gap: 8px 9px; }
.service-tags span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.17); color: rgba(255,255,255,.62); font-size: 10px; line-height: 1; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.service-tags span:hover { border-color: var(--orange); color: var(--ink); background: var(--orange); }
.service-tags span:nth-child(3n):hover { border-color: var(--blue-light); color: var(--white); background: var(--blue-brand); }

/* Fleet gallery */
.fleet-section { background: var(--paper-soft); }
.fleet-section .section-title em { color: var(--blue-brand); }
.fleet-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-top: 42px; }
.fleet-heading-copy { max-width: 350px; padding-bottom: 5px; color: rgba(17,20,22,.6); font-size: 14px; line-height: 1.6; }
.gallery-hint { display: inline-flex; align-items: center; gap: 9px; margin-top: 20px; color: var(--ink); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.gallery-hint-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(255,107,24,.16); }
.portfolio-link-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 27px; padding: 13px 0 10px; border-bottom: 1px solid var(--ink); color: var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: gap .3s var(--ease-out), color .2s ease, border-color .2s ease; }
.portfolio-link-button > span:last-child { color: var(--blue-brand); font-size: 19px; line-height: .6; }
.portfolio-link-button:hover { gap: 30px; border-color: var(--blue-brand); color: var(--blue-brand); }
.filter-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 69px 0 28px; padding-bottom: 15px; border-bottom: 1px solid var(--line-light); }
.filter-button { display: inline-flex; align-items: center; gap: 12px; min-height: 35px; padding: 0 15px; border: 1px solid transparent; border-radius: 100px; color: rgba(17,20,22,.57); background: transparent; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; transition: color .25s ease, background .25s ease, border-color .25s ease; }
.filter-button span { color: var(--orange); font-size: 9px; }
.filter-button:hover, .filter-button.is-active { color: var(--ink); border-color: var(--ink); background: transparent; }
.filter-button.is-active { background: var(--ink); color: var(--white); }
.fleet-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); grid-auto-rows: 196px; gap: 13px; }
.fleet-card { position: relative; display: block; grid-column: span 5; grid-row: span 1; min-width: 0; overflow: hidden; padding: 0; border: 0; border-radius: 0; color: var(--white); background: var(--ink); text-align: left; perspective: 1100px; transition: opacity .35s ease, transform .35s var(--ease-out); }
.fleet-card-large { grid-column: span 7; grid-row: span 2; }
.fleet-card-tall { grid-column: span 5; grid-row: span 2; }
.fleet-card-wide { grid-column: span 7; }
.fleet-card.is-hidden { display: none; }
.fleet-card .tilt-surface { height: 100%; }
.fleet-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.08); transition: transform .8s var(--ease-out), filter .8s ease; }
.fleet-card:hover img { transform: scale(1.07); filter: saturate(1.05) contrast(1.08); }
.fleet-card-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,11,12,.05) 20%, rgba(9,11,12,.87) 100%); }
.fleet-index { position: absolute; top: 16px; left: 17px; color: var(--orange); font-family: var(--display); font-size: 16px; letter-spacing: -.08em; }
.fleet-caption { position: absolute; right: 17px; bottom: 16px; left: 17px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.fleet-caption strong, .fleet-caption small { display: block; }
.fleet-caption strong { font-size: 15px; line-height: 1.05; }
.fleet-caption small { margin-top: 5px; color: rgba(255,255,255,.57); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fleet-open { position: absolute; right: 16px; top: 16px; display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: var(--white); font-size: 16px; transition: color .25s ease, background .25s ease, transform .25s ease; }
.fleet-card:hover .fleet-open { color: var(--ink); background: var(--orange); transform: rotate(45deg); }

/* Immersive 3D portfolio teaser */
.showcase-section { min-height: 850px; background: #0d1011; }
.showcase-ambient { position: absolute; border-radius: 50%; filter: blur(75px); pointer-events: none; }
.showcase-ambient-one { top: 22%; left: -16%; width: 38vw; height: 38vw; background: rgba(255,107,24,.16); }
.showcase-ambient-two { right: -12%; bottom: -17%; width: 45vw; height: 45vw; background: var(--blue-brand); opacity: .2; }
.showcase-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-top: 42px; }
.showcase-intro { max-width: 320px; margin: 0 7% 5px 0; color: rgba(255,255,255,.5); font-size: 14px; line-height: 1.6; }
.showcase-layout { display: grid; grid-template-columns: minmax(220px, .44fr) minmax(500px, 1fr); align-items: center; gap: clamp(45px, 8vw, 130px); margin-top: 76px; }
.showcase-copy-number { display: inline-block; color: var(--orange); font-family: var(--display); font-size: 17px; letter-spacing: -.08em; }
.showcase-copy h3 { margin: 22px 0 0; color: var(--white); font-family: var(--display); font-size: clamp(2.3rem, 4.1vw, 4.7rem); line-height: .87; letter-spacing: -.095em; }
.showcase-copy h3 em { color: var(--orange); font-style: normal; }
.showcase-copy p { max-width: 310px; margin: 25px 0 31px; color: rgba(255,255,255,.5); font-size: 13px; line-height: 1.6; }
.button-outline-light { border-color: rgba(255,255,255,.38); color: var(--white); background: transparent; }
.button-outline-light:hover { border-color: var(--orange); color: var(--ink); background: var(--orange); }
.showcase-stage { position: relative; min-height: 610px; perspective: 1300px; transform-style: preserve-3d; }
.stage-plane { position: absolute; z-index: 0; right: 1%; bottom: 3%; left: 1%; height: 40%; border: 1px solid rgba(255,255,255,.08); background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 42px 42px; transform: perspective(520px) rotateX(66deg) translateY(27%); mask-image: linear-gradient(90deg, transparent, black 18%, black 82%, transparent); opacity: .7; }
.showcase-ring { position: absolute; z-index: 0; top: 49%; left: 50%; width: 77%; height: 37%; border: 1px solid rgba(255,107,24,.34); border-radius: 50%; transform: translate(-50%, -50%) rotateX(68deg) rotateZ(-8deg); }
.showcase-ring-two { width: 60%; height: 29%; border-color: rgba(109,143,229,.48); transform: translate(-50%, -50%) rotateX(68deg) rotateZ(23deg); }
.showcase-card { position: absolute; z-index: 2; top: 46%; left: 50%; width: clamp(220px, 35%, 345px); aspect-ratio: .73; overflow: hidden; border: 1px solid rgba(255,255,255,.33); background: #24292a; box-shadow: 18px 24px 55px rgba(0,0,0,.34); transform-style: preserve-3d; transition: transform 1s var(--ease-inout), opacity .8s ease, filter .8s ease; }
.showcase-card[data-slot="front"] { z-index: 5; transform: translate3d(-50%, -50%, 165px) rotateY(0deg) rotateZ(-1deg); }
.showcase-card[data-slot="right"] { z-index: 3; transform: translate3d(42%, -50%, 5px) rotateY(-28deg) rotateZ(5deg) scale(.76); opacity: .72; filter: saturate(.72); }
.showcase-card[data-slot="back"] { z-index: 1; transform: translate3d(-50%, -50%, -150px) rotateY(0deg) rotateZ(4deg) scale(.57); opacity: .28; filter: saturate(.5); }
.showcase-card[data-slot="left"] { z-index: 3; transform: translate3d(-142%, -50%, 5px) rotateY(28deg) rotateZ(-5deg) scale(.76); opacity: .72; filter: saturate(.72); }
.showcase-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.showcase-stage:hover .showcase-card[data-slot="front"] img { transform: scale(1.055); }
.showcase-card-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,10,11,.08) 34%, rgba(8,10,11,.88) 100%); }
.showcase-card::after { position: absolute; inset: 0; background: radial-gradient(250px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.22), transparent 62%); content: ""; opacity: 0; pointer-events: none; transition: opacity .3s ease; mix-blend-mode: screen; }
.showcase-card:hover::after { opacity: 1; }
.showcase-card-index { position: absolute; top: 16px; left: 16px; color: var(--orange); font-family: var(--display); font-size: 14px; letter-spacing: -.08em; }
.showcase-card-label { position: absolute; right: 17px; bottom: 17px; left: 17px; }
.showcase-card-label strong, .showcase-card-label small { display: block; }
.showcase-card-label strong { color: var(--white); font-size: 15px; line-height: 1; }
.showcase-card-label small { margin-top: 6px; color: rgba(255,255,255,.55); font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.showcase-controls { position: absolute; z-index: 8; right: 0; bottom: 15px; left: 0; display: flex; align-items: center; justify-content: center; gap: 21px; color: rgba(255,255,255,.56); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.showcase-controls button { display: grid; place-items: center; width: 35px; height: 35px; padding: 0; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; color: var(--white); background: transparent; font-size: 18px; transition: color .25s ease, border-color .25s ease, background .25s ease, transform .25s ease; }
.showcase-controls button:hover { color: var(--ink); border-color: var(--orange); background: var(--orange); transform: scale(1.08); }
.showcase-controls span { display: inline-flex; align-items: center; gap: 9px; }
.showcase-controls i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }
.showcase-controls b { color: var(--white); font-size: 13px; letter-spacing: -.04em; }

/* Full-bleed image background break */
.image-break-section { position: relative; min-height: min(720px, 78vh); overflow: hidden; color: var(--white); background: var(--ink-deep); }
.image-break-media, .image-break-overlay, .image-break-grid { position: absolute; inset: 0; pointer-events: none; }
.image-break-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: saturate(.78) contrast(1.12); transform: scale(1.04); animation: break-image-breathe 18s ease-in-out infinite alternate; }
.image-break-overlay { background: linear-gradient(90deg, rgba(8,10,11,.93) 0%, rgba(8,10,11,.67) 40%, rgba(8,10,11,.08) 78%), linear-gradient(180deg, rgba(8,10,11,.36) 0%, transparent 35%, rgba(8,10,11,.68) 100%); }
.image-break-grid { background-image: linear-gradient(rgba(109,143,229,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(109,143,229,.13) 1px, transparent 1px); background-size: 76px 76px; mask-image: linear-gradient(90deg, black, transparent 82%); opacity: .4; }
.image-break-section::before { position: absolute; z-index: 1; top: 40px; right: 6%; width: 100px; height: 100px; border-top: 1px solid var(--blue-light); border-right: 1px solid var(--blue-light); content: ""; opacity: .7; }
.image-break-section::after { position: absolute; z-index: 1; bottom: 36px; left: 6%; width: 80px; height: 80px; border-bottom: 1px solid var(--orange); border-left: 1px solid var(--orange); content: ""; opacity: .8; }
.image-break-inner { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; min-height: min(720px, 78vh); padding-top: clamp(42px, 6vw, 82px); padding-bottom: 26px; }
.image-break-kicker { display: flex; align-items: center; gap: 13px; color: rgba(255,255,255,.63); font-size: 10px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.image-break-kicker span:first-child { color: var(--blue-light); font-family: var(--display); font-size: 14px; letter-spacing: -.06em; }
.image-break-kicker i { display: block; width: 35px; height: 1px; background: var(--blue-light); }
.image-break-content { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin: auto 0; padding: 70px 0; }
.image-break-title { margin: 0; font-family: var(--display); font-size: clamp(4rem, 9vw, 10rem); line-height: .79; letter-spacing: -.12em; }
.image-break-title em { color: var(--orange); font-style: normal; }
.image-break-copy { max-width: 280px; margin: 0 10% 6px 0; }
.image-break-copy p { margin: 0 0 25px; color: rgba(255,255,255,.64); font-size: 14px; line-height: 1.6; }
.image-break-meta { display: flex; justify-content: space-between; gap: 25px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.24); color: rgba(255,255,255,.46); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.image-break-meta span:first-child { color: var(--blue-light); }
.image-break-meta span:last-child { color: var(--orange); }
@keyframes break-image-breathe { from { transform: scale(1.04); } to { transform: scale(1.11); } }

/* Story */
.story-section { background: linear-gradient(135deg, #15191a 0%, #15191a 70%, #101d3b 100%); }
.story-section::before { position: absolute; top: 0; left: 7%; width: 90px; height: 4px; background: var(--blue-brand); content: ""; }
.story-glow { position: absolute; right: -10%; bottom: -30%; width: 65vw; height: 65vw; border-radius: 50%; background: rgba(255,107,24,.13); filter: blur(100px); pointer-events: none; }
.story-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1fr); align-items: center; gap: clamp(55px, 10vw, 170px); }
.story-visual { position: relative; perspective: 1100px; }
.story-visual .tilt-surface { position: relative; aspect-ratio: .94; overflow: hidden; border: 1px solid rgba(255,255,255,.16); }
.story-visual img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68) contrast(1.12); }
.story-image-overlay { position: absolute; inset: 0; background: linear-gradient(145deg, rgba(255,107,24,.28), transparent 50%), linear-gradient(180deg, transparent 45%, rgba(8,10,11,.85)); }
.story-image-label { position: absolute; right: 18px; bottom: 17px; left: 18px; display: flex; justify-content: space-between; color: rgba(255,255,255,.65); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.story-image-label span:first-child { color: var(--orange); }
.story-note { position: absolute; top: 11%; right: -17%; display: flex; align-items: baseline; gap: 10px; padding: 20px 22px; color: var(--ink); background: var(--orange); transform: rotate(5deg); }
.story-note strong { font-family: var(--display); font-size: 47px; line-height: .78; letter-spacing: -.12em; }
.story-note span { font-size: 9px; font-weight: 700; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.story-vertical { position: absolute; bottom: -33px; left: -45px; color: rgba(255,255,255,.38); font-size: 9px; font-weight: 700; letter-spacing: .24em; transform: rotate(-90deg); transform-origin: left top; }
.story-content .section-title { margin-top: 39px; }
.story-lead { max-width: 500px; margin: 34px 0 0; color: rgba(255,255,255,.64); font-size: 16px; line-height: 1.65; }
.principles { margin-top: 46px; border-top: 1px solid var(--line-dark); }
.principle { display: grid; grid-template-columns: 44px 1fr; gap: 17px; padding: 20px 0; border-bottom: 1px solid var(--line-dark); }
.principle-number { color: var(--orange); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.principle h3 { margin: 0; color: var(--white); font-family: var(--display); font-size: 18px; line-height: 1; letter-spacing: -.05em; }
.principle p { max-width: 430px; margin: 8px 0 0; color: rgba(255,255,255,.47); font-size: 12px; line-height: 1.5; }

/* Process */
.process-section { position: relative; overflow: hidden; padding: clamp(94px, 11vw, 150px) 0 135px; color: var(--white); background: var(--ink-deep); }
.process-section::before { position: absolute; top: 0; right: 0; left: 0; height: 1px; background: var(--orange); content: ""; opacity: .7; }
.process-outline { position: absolute; right: -2%; bottom: -3%; color: transparent; font-family: var(--display); font-size: clamp(11rem, 26vw, 29rem); line-height: .65; letter-spacing: -.15em; -webkit-text-stroke: 1px rgba(255,255,255,.05); pointer-events: none; }
.process-top { display: flex; justify-content: space-between; gap: 30px; color: rgba(255,255,255,.42); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.process-top span:first-child { color: var(--orange); }
.process-heading { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-top: 54px; }
.process-title { position: relative; z-index: 1; margin: 0; font-family: var(--display); font-size: clamp(3.5rem, 7vw, 8rem); line-height: .84; letter-spacing: -.1em; }
.process-title em { color: var(--orange); font-style: normal; }
.process-intro { position: relative; z-index: 1; max-width: 300px; margin: 0 6% 5px 0; color: rgba(255,255,255,.52); font-size: 14px; line-height: 1.6; }
.process-steps { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-top: 105px; border-top: 1px solid var(--line-dark); }
.process-step { position: relative; min-height: 190px; padding: 20px 18px 0 0; border-right: 1px solid var(--line-dark); }
.process-step:not(:first-child) { padding-left: 18px; }
.process-step:last-child { border-right: 0; }
.process-step-number { color: var(--orange); font-family: var(--display); font-size: 20px; letter-spacing: -.1em; }
.process-step:nth-child(even) .process-step-number { color: var(--blue-light); }
.process-step-line { display: block; width: 100%; height: 1px; margin: 22px 0 25px; background: linear-gradient(90deg, var(--orange), rgba(255,107,24,0)); }
.process-step:nth-child(even) .process-step-line { background: linear-gradient(90deg, var(--blue-light), rgba(109,143,229,0)); }
.process-step h3 { margin: 0; font-family: var(--display); font-size: 26px; letter-spacing: -.07em; }
.process-step p { max-width: 190px; margin: 10px 0 0; color: rgba(255,255,255,.48); font-size: 12px; line-height: 1.5; }

/* Contact */
.contact-section { background: var(--paper); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(400px, .8fr); align-items: start; gap: clamp(55px, 10vw, 170px); }
.contact-info .section-title { margin-top: 42px; }
.contact-lead { max-width: 450px; margin: 30px 0 0; color: rgba(17,20,22,.6); font-size: 15px; line-height: 1.65; }
.direct-contact { margin-top: 48px; border-top: 1px solid var(--line-light); }
.direct-contact-row { display: flex; align-items: center; gap: 15px; padding: 17px 0; border-bottom: 1px solid var(--line-light); transition: padding-left .3s var(--ease-out), color .2s ease; }
.direct-contact-row:hover { padding-left: 9px; color: var(--orange); }
.direct-icon { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid rgba(17,20,22,.28); border-radius: 50%; font-size: 17px; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.direct-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.direct-icon-whatsapp svg { fill: currentColor; stroke: none; }
.direct-icon-whatsapp { color: #18a653; border-color: rgba(24,166,83,.45); }
.direct-contact-row:hover .direct-icon { border-color: var(--orange); background: var(--orange); color: var(--ink); }
.direct-contact-row.direct-contact-whatsapp:hover .direct-icon { border-color: #25d366; background: #25d366; color: #06150c; }
.direct-contact-row small, .direct-contact-row strong { display: block; }
.direct-contact-row small { color: rgba(17,20,22,.48); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.direct-contact-row strong { margin-top: 3px; font-size: 15px; letter-spacing: .01em; }
.address-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 10px; margin-top: 36px; }
.address-card { min-height: 128px; padding: 16px; border: 1px solid var(--line-light); background: rgba(255,255,255,.22); }
.address-card-main { border-color: var(--ink); }
.address-pin { display: block; color: var(--orange); font-family: var(--display); font-size: 15px; letter-spacing: -.07em; }
.address-card small { display: block; margin-top: 12px; color: rgba(17,20,22,.48); font-size: 8px; font-weight: 700; letter-spacing: .15em; }
.address-card p { margin: 8px 0 0; font-size: 11px; line-height: 1.55; }
.map-link { margin-top: 18px; font-size: 9px; }
.quote-card { position: relative; padding: clamp(28px, 4vw, 46px); color: var(--white); background: var(--ink); box-shadow: 20px 25px 70px rgba(17,20,22,.18); }
.quote-card::before { position: absolute; top: 17px; right: 17px; width: 42px; height: 42px; border-top: 1px solid var(--orange); border-right: 1px solid var(--orange); content: ""; }
.quote-card-top { display: flex; justify-content: space-between; color: rgba(255,255,255,.45); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.quote-card-top span:first-child { color: var(--orange); }
.quote-card h3 { margin: 49px 0 0; font-family: var(--display); font-size: clamp(3rem, 5vw, 5.4rem); line-height: .82; letter-spacing: -.1em; }
.quote-card h3 em { color: var(--orange); font-style: normal; }
.quote-card-copy { max-width: 380px; margin: 22px 0 30px; color: rgba(255,255,255,.53); font-size: 12px; line-height: 1.5; }
#quote-form { display: grid; gap: 17px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
#quote-form label { display: block; }
#quote-form label > span { display: block; margin-bottom: 7px; color: rgba(255,255,255,.52); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
#quote-form input, #quote-form select, #quote-form textarea { display: block; width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,.25); border-radius: 0; outline: 0; color: var(--white); background: transparent; font-size: 13px; transition: border-color .25s ease, background .25s ease; }
#quote-form input, #quote-form select { height: 38px; }
#quote-form textarea { min-height: 82px; padding-top: 9px; resize: vertical; }
#quote-form input::placeholder, #quote-form textarea::placeholder { color: rgba(255,255,255,.32); }
#quote-form select { color: rgba(255,255,255,.74); }
#quote-form select option { color: var(--ink); background: var(--paper); }
#quote-form input:focus, #quote-form select:focus, #quote-form textarea:focus { border-color: var(--orange); background: rgba(255,107,24,.04); }
#quote-form input:invalid:not(:placeholder-shown), #quote-form select:invalid:not(:focus) { border-color: rgba(255,107,24,.7); }
.button-submit { width: 100%; margin-top: 10px; border: 0; cursor: pointer; }
.form-status { min-height: 18px; color: var(--orange-pale); font-size: 11px; line-height: 1.45; }
.form-status.is-error { color: #ff9b83; }
.mailto-fallback { color: var(--orange); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Company facts */
.company-section { padding: 28px 0 34px; color: var(--ink); background: var(--paper-soft); border-top: 1px solid var(--line-light); }
.company-section::before { display: block; width: 16%; height: 3px; margin: -28px 0 25px auto; background: var(--blue-brand); content: ""; }
.company-grid { display: grid; grid-template-columns: .45fr 1.55fr; gap: 50px; }
.company-label { display: flex; flex-direction: column; justify-content: space-between; min-height: 140px; color: rgba(17,20,22,.48); font-size: 9px; font-weight: 700; letter-spacing: .19em; }
.company-label span:first-child { color: var(--orange); }
.company-facts { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line-light); border-left: 1px solid var(--line-light); }
.fact { min-height: 84px; padding: 15px 14px; border-right: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.fact span, .fact strong { display: block; }
.fact span { color: rgba(17,20,22,.48); font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fact strong { margin-top: 9px; font-size: 12px; line-height: 1.2; }
.fact a { color: var(--orange); }
.company-update { display: flex; justify-content: space-between; gap: 25px; margin-top: 20px; color: rgba(17,20,22,.42); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.company-update span:last-child { color: var(--blue-brand); }

/* Dedicated cinematic pages */
.page-hero { position: relative; display: grid; min-height: 100svh; overflow: hidden; padding: 135px 0 35px; background: var(--ink-deep); }
.page-hero-media, .page-hero-wash { position: absolute; inset: 0; pointer-events: none; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.62) contrast(1.14); animation: cinematic-zoom 16s ease-in-out infinite alternate; }
.page-hero .hero-canvas { z-index: 2; mix-blend-mode: screen; opacity: .45; }
.page-hero-wash { background: linear-gradient(90deg, rgba(8,10,11,.95) 0%, rgba(8,10,11,.65) 44%, rgba(8,10,11,.24) 100%), linear-gradient(180deg, rgba(8,10,11,.46) 0%, transparent 35%, rgba(8,10,11,.8) 100%); }
.page-hero::after { position: absolute; z-index: 1; inset: 0; background-image: radial-gradient(rgba(255,255,255,.2) .5px, transparent .5px); background-size: 5px 5px; content: ""; opacity: .08; pointer-events: none; }
@keyframes cinematic-zoom { from { transform: scale(1); } to { transform: scale(1.08); } }
.page-hero-container { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, .72fr); align-items: center; gap: clamp(35px, 8vw, 130px); width: min(1380px, calc(100% - 72px)); min-height: calc(100svh - 170px); margin: 0 auto; }
.page-hero-copy { max-width: 780px; }
.page-hero-title { margin: 30px 0 0; color: var(--white); font-family: var(--display); font-size: clamp(4.2rem, 9.5vw, 10rem); line-height: .8; letter-spacing: -.12em; }
.page-hero-title em { color: var(--orange); font-style: normal; }
.page-hero-copy > p { max-width: 480px; margin: 38px 0 0; color: rgba(255,255,255,.64); font-size: 15px; line-height: 1.65; }
.page-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 35px; }
.page-hero-side { position: relative; justify-self: end; width: min(100%, 430px); }
.page-hero-side-card { position: relative; aspect-ratio: .82; overflow: hidden; border: 1px solid rgba(255,255,255,.27); transform: rotate(4deg); box-shadow: 20px 30px 70px rgba(0,0,0,.38); }
.page-hero-side-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.12); }
.page-hero-side-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(8,10,11,.9)); content: ""; }
.page-side-caption { position: absolute; z-index: 1; right: 18px; bottom: 17px; left: 18px; display: flex; justify-content: space-between; color: rgba(255,255,255,.67); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.page-side-caption span:first-child { color: var(--orange); }
.page-hero-side::before { position: absolute; z-index: -1; top: 5%; right: -7%; width: 100%; height: 88%; border: 1px solid rgba(255,107,24,.5); content: ""; transform: rotate(-7deg); }
.page-hero-side .hero-float { left: -17%; }
.page-hero-bottom { position: absolute; z-index: 3; right: 0; bottom: 27px; left: 0; display: flex; justify-content: space-between; width: min(1380px, calc(100% - 72px)); margin: auto; color: rgba(255,255,255,.43); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.page-hero-bottom span:first-child { color: var(--orange); }

/* 3D portfolio page */
.wheel-section { overflow: hidden; background: var(--paper); }
.wheel-heading { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-top: 42px; }
.wheel-heading-copy { max-width: 340px; margin-bottom: 4px; color: rgba(17,20,22,.58); font-size: 14px; line-height: 1.6; }
.wheel-layout { display: grid; grid-template-columns: minmax(210px, .37fr) minmax(520px, 1fr); align-items: center; gap: clamp(35px, 8vw, 125px); margin-top: 70px; }
.wheel-info-number { display: block; color: var(--orange); font-family: var(--display); font-size: 17px; letter-spacing: -.08em; }
.wheel-info h3 { margin: 21px 0 0; font-family: var(--display); font-size: clamp(2.4rem, 4.2vw, 4.8rem); line-height: .86; letter-spacing: -.1em; }
.wheel-info h3 em { color: var(--orange); font-style: normal; }
.wheel-info p { max-width: 310px; margin: 25px 0 0; color: rgba(17,20,22,.55); font-size: 13px; line-height: 1.6; }
.wheel-stage { position: relative; min-height: 660px; perspective: 1300px; }
.wheel-stage::before { position: absolute; top: 50%; left: 50%; width: 46%; height: 46%; border: 1px solid rgba(17,20,22,.16); border-radius: 50%; content: ""; transform: translate(-50%, -50%) rotateX(68deg); }
.wheel-stage::after { position: absolute; right: 10%; bottom: 9%; left: 10%; height: 1px; background: linear-gradient(90deg, transparent, var(--orange), transparent); content: ""; opacity: .7; }
.wheel-platform { position: absolute; z-index: 0; top: 56%; left: 50%; width: 53%; height: 26%; border: 1px solid rgba(17,20,22,.15); background-image: linear-gradient(rgba(17,20,22,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(17,20,22,.1) 1px, transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(90deg, transparent, black 18%, black 82%, transparent); transform: translate(-50%, -50%) rotateX(70deg); }
.wheel-ring { position: absolute; z-index: 2; top: 50%; left: 50%; width: 100%; height: 100%; transform-style: preserve-3d; transform: translate(-50%, -50%) rotateY(var(--wheel-angle, 0deg)); transition: transform 1s var(--ease-inout); }
.wheel-item { position: absolute; top: 50%; left: 50%; width: 194px; aspect-ratio: .73; overflow: hidden; padding: 0; border: 1px solid rgba(17,20,22,.25); color: var(--white); background: var(--ink); box-shadow: 12px 22px 36px rgba(17,20,22,.18); transform: translate(-50%, -50%) rotateY(var(--item-angle)) translateZ(var(--wheel-radius, 300px)); transform-style: preserve-3d; backface-visibility: hidden; transition: border-color .35s ease, box-shadow .35s ease, filter .35s ease; }
.wheel-item::after { position: absolute; inset: 0; background: radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.2), transparent 62%); content: ""; opacity: 0; pointer-events: none; mix-blend-mode: screen; transition: opacity .3s ease; }
.wheel-item:hover::after, .wheel-item.is-active::after { opacity: 1; }
.wheel-item.is-active { border-color: var(--orange); box-shadow: 0 28px 65px rgba(17,20,22,.28), 0 0 0 5px rgba(255,107,24,.13); }
.wheel-item img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75) contrast(1.08); transition: transform .8s var(--ease-out), filter .4s ease; }
.wheel-item:hover img { transform: scale(1.07); filter: saturate(1) contrast(1.08); }
.wheel-item-wash { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(8,10,11,.9) 100%); }
.wheel-item-index { position: absolute; top: 14px; left: 14px; color: var(--orange); font-family: var(--display); font-size: 14px; letter-spacing: -.08em; }
.wheel-item-title { position: absolute; right: 14px; bottom: 14px; left: 14px; font-size: 13px; font-weight: 700; line-height: 1.05; text-align: left; }
.wheel-controls { position: absolute; z-index: 5; right: 0; bottom: 2%; left: 0; display: flex; align-items: center; justify-content: center; gap: 17px; }
.wheel-controls button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid rgba(17,20,22,.32); border-radius: 50%; color: var(--ink); background: transparent; font-size: 18px; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .25s ease; }
.wheel-controls button:hover { border-color: var(--orange); color: var(--ink); background: var(--orange); transform: scale(1.08); }
.wheel-controls span { display: inline-flex; align-items: center; gap: 7px; color: rgba(17,20,22,.53); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.wheel-controls i { width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }
.wheel-controls b { color: var(--ink); font-size: 13px; letter-spacing: -.03em; }
.portfolio-strip-section { padding: 0 0 clamp(90px, 10vw, 145px); overflow: hidden; background: var(--paper); }
.portfolio-strip { display: flex; gap: 13px; overflow-x: auto; padding: 0 0 20px; scrollbar-color: var(--orange) transparent; scrollbar-width: thin; }
.portfolio-strip-card { position: relative; display: block; flex: 0 0 clamp(230px, 28vw, 385px); aspect-ratio: 1.35; overflow: hidden; padding: 0; border: 0; border-radius: 0; color: var(--white); background: var(--ink); font: inherit; text-align: left; }
.portfolio-strip-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.08); transition: transform .7s var(--ease-out), filter .5s ease; }
.portfolio-strip-card:hover img { transform: scale(1.07); filter: saturate(1) contrast(1.08); }
.portfolio-strip-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(8,10,11,.9)); content: ""; }
.portfolio-strip-label { position: absolute; z-index: 1; right: 16px; bottom: 16px; left: 16px; display: flex; justify-content: space-between; font-size: 12px; }
.portfolio-strip-label small { color: rgba(255,255,255,.56); font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.portfolio-end-card { display: flex; flex-direction: column; justify-content: end; flex-basis: clamp(260px, 34vw, 450px); padding: 25px; color: var(--white); background: var(--orange); }
.portfolio-end-card strong { font-family: var(--display); font-size: clamp(2rem, 4vw, 4rem); line-height: .86; letter-spacing: -.09em; }
.portfolio-end-card p { max-width: 250px; margin: 17px 0 25px; color: rgba(17,20,22,.67); font-size: 12px; line-height: 1.45; }
.portfolio-end-card .button { width: fit-content; color: var(--ink); border-color: var(--ink); background: transparent; }
.portfolio-end-card .button:hover { color: var(--white); background: var(--ink); }

/* 3D services page */
.services-page-hero .page-hero-media img { object-position: center 68%; }
.deck-section { overflow: hidden; background: var(--paper-soft); }
.deck-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-top: 42px; }
.deck-heading-copy { max-width: 360px; margin-bottom: 5px; color: rgba(17,20,22,.58); font-size: 14px; line-height: 1.6; }
.deck-layout { display: grid; grid-template-columns: minmax(500px, 1fr) minmax(230px, .43fr); align-items: center; gap: clamp(50px, 9vw, 145px); margin-top: 75px; }
.deck-stage { position: relative; min-height: 650px; perspective: 1300px; }
.deck-stage::before { position: absolute; z-index: 0; top: 53%; left: 50%; width: 70%; height: 35%; border: 1px solid rgba(17,20,22,.13); background-image: linear-gradient(rgba(17,20,22,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(17,20,22,.09) 1px, transparent 1px); background-size: 35px 35px; mask-image: linear-gradient(90deg, transparent, black 14%, black 86%, transparent); content: ""; transform: translate(-50%, -50%) rotateX(67deg); }
.deck-card { position: absolute; z-index: 1; top: 47%; left: 50%; width: clamp(240px, 35vw, 370px); aspect-ratio: .74; overflow: hidden; padding: 0; border: 1px solid rgba(17,20,22,.24); color: var(--white); background: var(--ink); box-shadow: 15px 28px 50px rgba(17,20,22,.21); transform-style: preserve-3d; transition: transform 1s var(--ease-inout), opacity .75s ease, filter .75s ease, box-shadow .5s ease; }
.deck-card[data-deck-position="front"] { z-index: 5; transform: translate3d(-50%, -50%, 145px) rotateY(0) rotateZ(-2deg); }
.deck-card[data-deck-position="back-one"] { z-index: 4; transform: translate3d(1%, -50%, 35px) rotateY(-28deg) rotateZ(4deg) scale(.78); opacity: .72; filter: saturate(.7); }
.deck-card[data-deck-position="back-two"] { z-index: 2; transform: translate3d(-101%, -50%, -20px) rotateY(26deg) rotateZ(-5deg) scale(.63); opacity: .46; filter: saturate(.55); }
.deck-card[data-deck-position="back-three"] { z-index: 1; transform: translate3d(-50%, -50%, -140px) rotateY(0) rotateZ(6deg) scale(.5); opacity: .24; filter: saturate(.45); }
.deck-card:hover { box-shadow: 15px 28px 60px rgba(17,20,22,.3); }
.deck-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.76) contrast(1.08); transition: transform .8s var(--ease-out), filter .5s ease; }
.deck-card:hover img { transform: scale(1.06); filter: saturate(1) contrast(1.08); }
.deck-card-wash { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgba(7,9,10,.92) 100%); }
.deck-index { position: absolute; top: 15px; left: 15px; color: var(--orange); font-family: var(--display); font-size: 16px; letter-spacing: -.09em; }
.deck-card-copy { position: absolute; right: 17px; bottom: 17px; left: 17px; text-align: left; }
.deck-card-copy strong, .deck-card-copy small { display: block; }
.deck-card-copy strong { font-size: 16px; line-height: 1; }
.deck-card-copy small { margin-top: 6px; color: rgba(255,255,255,.55); font-size: 8px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.deck-control-bar { position: absolute; z-index: 8; right: 0; bottom: 4%; left: 0; display: flex; align-items: center; justify-content: center; gap: 16px; }
.deck-control-bar button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid rgba(17,20,22,.3); border-radius: 50%; background: transparent; font-size: 18px; transition: background .2s ease, transform .2s ease; }
.deck-control-bar button:hover { background: var(--orange); transform: scale(1.08); }
.deck-control-bar span { color: rgba(17,20,22,.48); font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.deck-control-bar b { color: var(--ink); font-size: 13px; }
.deck-info h3 { margin: 0; font-family: var(--display); font-size: clamp(2.5rem, 4.3vw, 5rem); line-height: .87; letter-spacing: -.1em; }
.deck-info h3 em { color: var(--orange); font-style: normal; }
.deck-info > p { max-width: 315px; margin: 25px 0 30px; color: rgba(17,20,22,.56); font-size: 13px; line-height: 1.6; }
.expertise-list { margin: 0; padding: 0; border-top: 1px solid var(--line-light); list-style: none; }
.expertise-list li { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line-light); color: rgba(17,20,22,.66); font-size: 11px; font-weight: 700; }
.expertise-list li span { color: var(--orange); font-family: var(--display); font-size: 14px; letter-spacing: -.07em; }
.service-copy-section { color: var(--white); background: var(--ink); }
.service-copy-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 60px; border-top: 1px solid var(--line-dark); }
.service-copy-item { min-height: 220px; padding: 21px 18px 0 0; border-right: 1px solid var(--line-dark); }
.service-copy-item:not(:first-child) { padding-left: 18px; }
.service-copy-item:last-child { border-right: 0; }
.service-copy-item > span { color: var(--orange); font-family: var(--display); font-size: 15px; letter-spacing: -.06em; }
.service-copy-item h3 { margin: 24px 0 0; font-family: var(--display); font-size: 21px; line-height: .95; letter-spacing: -.07em; }
.service-copy-item p { max-width: 220px; margin: 12px 0 0; color: rgba(255,255,255,.45); font-size: 12px; line-height: 1.5; }
.page-cta { position: relative; overflow: hidden; padding: clamp(70px, 10vw, 130px) 0; color: var(--ink); background: var(--orange); }
.page-cta::after { position: absolute; right: -5%; bottom: -30%; color: transparent; content: "GO"; font-family: var(--display); font-size: 30vw; line-height: .65; letter-spacing: -.15em; -webkit-text-stroke: 1px rgba(17,20,22,.14); }
.page-cta-inner { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 35px; }
.page-cta h2 { max-width: 740px; margin: 0; font-family: var(--display); font-size: clamp(3.2rem, 7vw, 8rem); line-height: .82; letter-spacing: -.11em; }
.page-cta h2 em { color: var(--white); font-style: normal; }
.page-cta-copy { max-width: 270px; margin-bottom: 4px; font-size: 13px; line-height: 1.55; }
.page-cta .button { border-color: var(--ink); color: var(--ink); background: transparent; }
.page-cta .button:hover { color: var(--white); background: var(--ink); }

/* Contact page */
.contact-page-hero .page-hero-media img { object-position: center 40%; }
.contact-page-section { background: var(--paper); }
.contact-page-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(400px, .78fr); align-items: start; gap: clamp(55px, 10vw, 160px); }
.contact-page-intro { max-width: 500px; margin: 28px 0 0; color: rgba(17,20,22,.57); font-size: 15px; line-height: 1.65; }
.contact-map-card { position: relative; min-height: 335px; margin-top: 50px; overflow: hidden; border: 1px solid var(--line-light); background: #d8d8cf; }
.contact-map-card::before { position: absolute; inset: 0; background-image: linear-gradient(rgba(17,20,22,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(17,20,22,.1) 1px, transparent 1px); background-size: 35px 35px; content: ""; opacity: .7; }
.contact-map-card::after { position: absolute; top: 48%; left: -10%; width: 140%; height: 62px; border-top: 10px solid rgba(255,255,255,.9); border-bottom: 2px solid rgba(17,20,22,.16); content: ""; transform: rotate(-12deg); }
.map-route { position: absolute; z-index: 1; top: 47%; left: 22%; width: 57%; height: 1px; background: var(--orange); box-shadow: 0 0 0 3px rgba(255,107,24,.13); transform: rotate(-14deg); }
.map-route::before, .map-route::after { position: absolute; width: 13px; height: 13px; border: 3px solid var(--orange); border-radius: 50%; background: var(--paper); content: ""; transform: translateY(-50%); }
.map-route::before { left: -2px; }
.map-route::after { right: -2px; }
.map-label { position: absolute; z-index: 2; padding: 9px 11px; color: var(--ink); background: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.map-label-casa { top: 20%; left: 17%; }
.map-label-laayoune { right: 13%; bottom: 18%; }
.contact-page-side-title { margin-top: 45px; color: rgba(17,20,22,.5); font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.contact-page-direct { margin-top: 15px; border-top: 1px solid var(--line-light); }
.contact-page-facts { margin-top: 50px; padding-top: clamp(76px, 10vw, 120px); padding-bottom: clamp(76px, 10vw, 120px); }
.contact-page-facts h3 { margin: 0 0 20px; font-family: var(--display); font-size: 27px; line-height: .9; letter-spacing: -.07em; }
.contact-page-facts-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-light); border-left: 1px solid var(--line-light); }
.contact-page-fact { min-height: 83px; padding: 13px; border-right: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.contact-page-fact small, .contact-page-fact strong { display: block; }
.contact-page-fact small { color: rgba(17,20,22,.48); font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.contact-page-fact strong { margin-top: 8px; font-size: 12px; }

/* Footer */
.site-footer { padding: 80px 0 22px; color: var(--white); background: var(--ink); }
.footer-top { display: grid; grid-template-columns: 1.35fr .7fr 1.1fr 1fr; gap: 48px; padding-bottom: 75px; }
.footer-brand { display: inline-block; }
.footer-brand img { width: 177px; filter: grayscale(1) brightness(0) invert(1); opacity: .88; }
.footer-brand-block p { margin: 25px 0 0; color: rgba(255,255,255,.45); font-family: var(--display); font-size: 18px; line-height: 1; letter-spacing: -.06em; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.footer-heading { display: block; margin-bottom: 13px; color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.footer-column a { max-width: 210px; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.35; transition: color .2s ease; }
.footer-column a:hover { color: var(--orange); }
.footer-contact-link { display: inline-flex !important; align-items: center; gap: 8px; }
.footer-inline-icon { display: inline-grid; place-items: center; width: 15px; height: 15px; color: var(--blue-light); }
.footer-inline-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.35; }
.footer-whatsapp-link { color: rgba(255,255,255,.72) !important; }
.footer-whatsapp-link .footer-inline-icon { color: #25d366; }
.footer-whatsapp-link:hover { color: #25d366 !important; }
.footer-cta { display: flex; flex-direction: column; align-items: flex-start; }
.footer-arrow-link { display: inline-flex; align-items: center; gap: 16px; color: var(--white); font-family: var(--display); font-size: 22px; line-height: 1; letter-spacing: -.07em; transition: color .2s ease, gap .3s var(--ease-out); }
.footer-arrow-link span { color: var(--orange); font-family: var(--body); font-size: 24px; }
.footer-arrow-link:hover { gap: 22px; color: var(--orange); }
.footer-city { margin-top: auto; color: rgba(255,255,255,.34); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding-top: 18px; border-top: 1px solid var(--line-dark); color: rgba(255,255,255,.32); font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-bottom span:first-child { color: var(--orange); }
.floating-call { position: fixed; z-index: 120; right: 22px; bottom: 22px; display: none; align-items: center; gap: 8px; min-height: 42px; padding: 0 15px 0 12px; border: 1px solid var(--ink); border-radius: 100px; color: var(--ink); background: var(--orange); box-shadow: 0 12px 25px rgba(0,0,0,.2); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.floating-call svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.floating-call-pulse { width: 5px; height: 5px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 5px rgba(17,20,22,.12); }
.contact-dock { position: fixed; z-index: 120; right: 22px; bottom: 22px; display: flex; align-items: center; gap: 7px; padding: 6px; border: 1px solid rgba(255,255,255,.2); border-radius: 100px; background: rgba(17,20,22,.84); box-shadow: 0 18px 35px rgba(0,0,0,.22); backdrop-filter: blur(14px); }
.dock-item { display: inline-flex; align-items: center; gap: 8px; min-height: 37px; padding: 0 13px 0 10px; border-radius: 100px; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transition: transform .25s var(--ease-out), box-shadow .25s ease, background .25s ease; }
.dock-item:hover { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(0,0,0,.2); }
.dock-whatsapp { color: #04150b; background: #25d366; }
.dock-phone { color: var(--ink); background: var(--orange); }
.dock-icon { display: grid; place-items: center; width: 18px; height: 18px; }
.dock-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4; }
.dock-whatsapp .dock-icon svg { fill: currentColor; stroke: none; }

/* Lightbox */
.lightbox { position: fixed; z-index: 220; inset: 0; display: grid; place-items: center; padding: 35px; visibility: hidden; opacity: 0; transition: opacity .35s ease, visibility .35s ease; }
.lightbox.is-open { visibility: visible; opacity: 1; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(5,7,8,.9); backdrop-filter: blur(10px); }
.lightbox-panel { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(200px, .48fr); width: min(1100px, 100%); max-height: min(690px, 90vh); background: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.5); transform: translateY(20px) scale(.97); transition: transform .45s var(--ease-out); }
.lightbox.is-open .lightbox-panel { transform: none; }
.lightbox-image { min-height: 400px; background: #222; }
.lightbox-image img { width: 100%; height: 100%; max-height: 90vh; object-fit: cover; }
.lightbox-caption { display: flex; flex-direction: column; justify-content: end; padding: 30px; color: var(--white); }
.lightbox-caption span { color: var(--orange); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.lightbox-caption strong { margin-top: 22px; font-family: var(--display); font-size: clamp(2.2rem, 4vw, 4rem); line-height: .88; letter-spacing: -.09em; }
.lightbox-caption small { margin-top: 15px; color: rgba(255,255,255,.48); font-size: 11px; }
.lightbox-close { position: absolute; z-index: 2; top: 15px; right: 15px; display: grid; place-items: center; width: 37px; height: 37px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: var(--white); background: rgba(0,0,0,.18); font-size: 25px; font-weight: 300; line-height: 1; transition: color .2s ease, background .2s ease; }
.lightbox-close:hover { color: var(--ink); background: var(--orange); }

@media (max-width: 1120px) {
  .container, .nav-shell { width: min(100% - 48px, 1380px); }
  .nav-shell { min-height: 80px; }
  .main-nav { gap: 17px; }
  .mini-phone { display: none; }
  .hero-container { gap: 45px; }
  .hero-float-top { left: -10%; }
  .hero-float-bottom { right: -10%; }
  .hero-stamp { right: -25px; }
  .story-grid, .contact-grid { gap: 65px; }
  .page-hero-container { width: min(100% - 48px, 1380px); gap: 45px; }
  .page-hero-side { width: min(100%, 360px); }
  .company-facts { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 820px) {
  .container, .nav-shell { width: calc(100% - 40px); }
  .nav-shell { min-height: 73px; }
  .nav-actions .button { display: none; }
  .nav-toggle { display: block; }
  .main-nav { position: fixed; z-index: -1; top: 0; right: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 27px; width: min(350px, 100%); height: 100svh; padding: 100px 45px 40px; background: var(--ink); box-shadow: -20px 0 50px rgba(0,0,0,.25); opacity: 0; pointer-events: none; transform: translateX(100%); transition: opacity .35s ease, transform .45s var(--ease-out); }
  .main-nav a { font-size: 18px; letter-spacing: .04em; }
  .main-nav a::after { bottom: -7px; }
  .site-header.nav-open .main-nav { opacity: 1; pointer-events: auto; transform: none; }
  .site-header.nav-open .nav-toggle span:first-child { transform: translateY(3px) rotate(45deg); }
  .site-header.nav-open .nav-toggle span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .hero { padding-top: 105px; }
  .hero-container { grid-template-columns: 1fr; align-content: center; min-height: auto; padding-top: 50px; }
  .hero-copy { padding-top: 0; }
  .hero-title { max-width: 680px; font-size: clamp(4rem, 13vw, 7rem); }
  .hero-description { max-width: 600px; }
  .hero-visual { width: min(75vw, 500px); margin: 25px 7% 50px auto; }
  .hero-footer-line { margin-top: 0; }
  .hero-coordinate { display: none; }
  .intro-heading-grid, .story-grid, .contact-grid { grid-template-columns: 1fr; }
  .intro-copy { max-width: 600px; }
  .stats-grid { margin-top: 80px; }
  .story-visual { width: min(80%, 500px); margin: 0 auto; }
  .story-content { max-width: 680px; }
  .page-hero-container { grid-template-columns: 1fr; align-content: center; min-height: auto; padding-top: 45px; }
  .page-hero-side { width: min(58vw, 380px); margin: 22px 8% 60px auto; }
  .page-hero-side-card { aspect-ratio: .86; }
  .page-hero-bottom { width: calc(100% - 40px); }
  .wheel-layout, .deck-layout, .contact-page-grid { grid-template-columns: 1fr; gap: 30px; }
  .wheel-info, .deck-info { max-width: 600px; }
  .wheel-stage, .deck-stage { width: min(100%, 700px); margin: 0 auto; }
  .service-copy-grid { grid-template-columns: 1fr 1fr; }
  .service-copy-item:nth-child(2) { border-right: 0; }
  .service-copy-item:nth-child(n+3) { border-top: 1px solid var(--line-dark); }
  .contact-page-grid { gap: 75px; }
  .contact-page-info { max-width: 680px; }
  .contact-page-form { max-width: 680px; }
  .contact-info { max-width: 650px; }
  .quote-card { max-width: 680px; }
  .showcase-layout { grid-template-columns: 1fr; gap: 20px; margin-top: 64px; }
  .showcase-copy { max-width: 560px; }
  .showcase-stage { min-height: 560px; width: min(100%, 700px); margin: 0 auto; }
  .image-break-inner { min-height: 620px; }
  .image-break-content { align-items: flex-start; flex-direction: column; gap: 34px; padding: 50px 0; }
  .image-break-copy { margin: 0; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand-block { grid-row: span 2; }
  .footer-cta { grid-column: span 2; padding-top: 25px; }
  .footer-city { margin-top: 35px; }
}

@media (max-width: 620px) {
  .container, .nav-shell { width: calc(100% - 32px); }
  .section { padding: 84px 0; }
  .brand img { width: 125px; }
  .brand-location { font-size: 7px; }
  .hero { min-height: auto; padding-bottom: 24px; }
  .hero-container { padding-top: 34px; }
  .eyebrow { flex-wrap: wrap; gap: 9px; margin-bottom: 29px; font-size: 8px; }
  .hero-title { font-size: clamp(3.45rem, 16.5vw, 5.9rem); }
  .hero-description { margin-top: 28px; font-size: 13px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; margin-top: 27px; }
  .hero-proof { margin-top: 40px; }
  .hero-visual { width: 79%; margin: 49px 5% 52px auto; }
  .showcase-section { min-height: 770px; }
  .image-break-section, .image-break-inner { min-height: 620px; }
  .image-break-media img { object-position: 62% center; }
  .image-break-overlay { background: linear-gradient(90deg, rgba(8,10,11,.95) 0%, rgba(8,10,11,.72) 63%, rgba(8,10,11,.2) 100%), linear-gradient(180deg, rgba(8,10,11,.4), transparent 35%, rgba(8,10,11,.78)); }
  .image-break-content { margin-top: 20px; padding: 35px 0; }
  .image-break-title { font-size: clamp(3.5rem, 16vw, 5.8rem); }
  .image-break-meta { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 7px; }
  .showcase-layout { margin-top: 42px; }
  .showcase-stage { min-height: 390px; }
  .showcase-card { width: 52%; }
  .showcase-card[data-slot="right"] { transform: translate3d(39%, -50%, 5px) rotateY(-28deg) rotateZ(5deg) scale(.65); }
  .showcase-card[data-slot="left"] { transform: translate3d(-139%, -50%, 5px) rotateY(28deg) rotateZ(-5deg) scale(.65); }
  .showcase-card[data-slot="back"] { transform: translate3d(-50%, -50%, -92px) rotateY(0) rotateZ(4deg) scale(.48); }
  .wheel-heading, .deck-heading { align-items: flex-start; flex-direction: column; gap: 26px; margin-top: 34px; }
  .wheel-heading-copy, .deck-heading-copy { margin: 0; font-size: 13px; }
  .wheel-layout, .deck-layout { margin-top: 45px; }
  .wheel-stage, .deck-stage { min-height: 435px; width: 100%; }
  .wheel-stage { margin-top: 5px; }
  .wheel-item { width: 145px; }
  .wheel-ring { --wheel-radius: 218px; }
  .wheel-platform { width: 76%; }
  .deck-card { width: 54%; }
  .deck-card[data-deck-position="back-one"] { transform: translate3d(1%, -50%, 25px) rotateY(-28deg) rotateZ(4deg) scale(.68); }
  .deck-card[data-deck-position="back-two"] { transform: translate3d(-101%, -50%, -10px) rotateY(26deg) rotateZ(-5deg) scale(.55); }
  .deck-card[data-deck-position="back-three"] { transform: translate3d(-50%, -50%, -90px) rotateY(0) rotateZ(6deg) scale(.43); }
  .service-copy-grid { grid-template-columns: 1fr 1fr; margin-top: 43px; }
  .service-copy-item { min-height: 190px; padding-right: 10px; }
  .service-copy-item:not(:first-child) { padding-left: 10px; }
  .service-copy-item h3 { font-size: 18px; }
  .service-copy-item p { font-size: 11px; }
  .page-cta-inner { align-items: flex-start; flex-direction: column; }
  .page-cta-copy { margin: 0; }
  .contact-map-card { min-height: 260px; margin-top: 38px; }
  .contact-page-facts { margin-top: 38px; }
  .hero-float-top { top: 7%; left: -23%; }
  .hero-float-bottom { right: -22%; bottom: 12%; }
  .page-hero { min-height: auto; padding: 109px 0 30px; }
  .page-hero-container { width: calc(100% - 32px); padding-top: 30px; }
  .page-hero-title { margin-top: 28px; font-size: clamp(3.7rem, 17vw, 6rem); }
  .page-hero-copy > p { margin-top: 27px; font-size: 13px; }
  .page-hero-actions { align-items: flex-start; flex-direction: column; gap: 19px; margin-top: 27px; }
  .page-hero-side { width: 72%; margin: 35px 5% 65px auto; }
  .page-hero-side .hero-float { left: -25%; }
  .page-hero-bottom { right: 16px; bottom: 16px; left: 16px; width: auto; font-size: 7px; }
  .page-hero-bottom span:last-child { display: none; }
  .hero-stamp { right: -26px; top: 33%; width: 82px; height: 82px; }
  .hero-stamp svg { font-size: 6px; }
  .hero-stamp > span { font-size: 20px; }
  .image-caption { right: 13px; bottom: 13px; left: 13px; font-size: 7px; letter-spacing: .13em; }
  .hero-footer-line { align-items: flex-start; flex-direction: column; gap: 12px; padding-bottom: 13px; font-size: 8px; }
  .hero-locations { display: none; }
  .marquee { padding: 15px 0 13px; }
  .marquee-track { gap: 19px; padding-right: 19px; }
  .marquee i { font-size: 12px; }
  .section-kicker { font-size: 8px; letter-spacing: .16em; }
  .section-title { font-size: clamp(2.8rem, 14vw, 4.8rem); }
  .intro-heading-grid, .fleet-heading-row, .section-heading-row, .process-heading { align-items: flex-start; flex-direction: column; gap: 27px; }
  .intro-heading-grid { margin-top: 33px; }
  .intro-copy p { font-size: 14px; }
  .stats-grid { grid-template-columns: 1fr 1fr; margin-top: 62px; }
  .stat-item { min-height: 124px; padding: 20px 12px 0 0 !important; }
  .stat-item:nth-child(2n) { padding-left: 14px !important; border-right: 0; }
  .stat-item:nth-child(n+3) { border-top: 1px solid var(--line-light); }
  .stat-number { font-size: clamp(2.7rem, 13vw, 4rem); }
  .stat-label { margin-top: 13px; font-size: 7px; letter-spacing: .13em; }
  .section-heading-row { margin-top: 32px; margin-bottom: 40px; }
  .section-side-copy { margin: 0; font-size: 13px; }
  .showcase-heading-row { align-items: flex-start; flex-direction: column; gap: 27px; margin-top: 34px; }
  .showcase-intro { margin: 0; font-size: 13px; }
  .showcase-layout { margin-top: 49px; }
  .showcase-stage { min-height: 445px; width: 100%; }
  .showcase-card { width: 38%; }
  .showcase-card[data-slot="right"] { transform: translate3d(44%, -50%, 5px) rotateY(-28deg) rotateZ(5deg) scale(.7); }
  .showcase-card[data-slot="left"] { transform: translate3d(-144%, -50%, 5px) rotateY(28deg) rotateZ(-5deg) scale(.7); }
  .showcase-card[data-slot="back"] { transform: translate3d(-50%, -50%, -110px) rotateY(0) rotateZ(4deg) scale(.52); }
  .service-grid { grid-template-columns: 1fr; gap: 10px; }
  .service-card, .service-card-tall, .service-card-wide { grid-column: auto; grid-row: auto; min-height: 390px; }
  .service-card-tall { min-height: 465px; }
  .service-card-wide { min-height: 420px; }
  .service-content h3, .service-card:not(.service-card-tall):not(.service-card-wide) .service-content h3 { font-size: 2.8rem; }
  .service-content p { max-height: 80px; opacity: 1; }
  .services-foot { align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 4px; font-size: 8px; }
  .service-index { grid-template-columns: 1fr; gap: 18px; margin-top: 38px; }
  .service-tags { gap: 7px; }
  .service-tags span { font-size: 9px; }
  .fleet-heading-row { margin-top: 34px; }
  .fleet-heading-copy { font-size: 13px; }
  .filter-bar { gap: 5px; margin-top: 46px; }
  .filter-button { padding: 0 10px; font-size: 8px; letter-spacing: .08em; }
  .filter-button:first-child { width: 100%; justify-content: space-between; margin-bottom: 2px; }
  .fleet-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 165px; gap: 8px; }
  .fleet-card, .fleet-card-large, .fleet-card-tall, .fleet-card-wide { grid-column: span 1; grid-row: span 1; }
  .fleet-card-large, .fleet-card-wide { grid-column: span 2; }
  .fleet-card-large { grid-row: span 2; }
  .fleet-card-tall { grid-row: span 2; }
  .fleet-caption { right: 11px; bottom: 11px; left: 11px; }
  .fleet-caption strong { font-size: 11px; }
  .fleet-caption small { font-size: 7px; }
  .fleet-index { top: 11px; left: 11px; font-size: 13px; }
  .fleet-open { top: 10px; right: 10px; width: 27px; height: 27px; font-size: 13px; }
  .story-grid { gap: 72px; }
  .story-visual { width: 78%; }
  .story-note { right: -25%; padding: 15px 16px; }
  .story-note strong { font-size: 36px; }
  .story-vertical { left: -33px; bottom: -29px; font-size: 7px; }
  .story-content .section-title { margin-top: 34px; }
  .story-lead { margin-top: 25px; font-size: 14px; }
  .principles { margin-top: 34px; }
  .principle { grid-template-columns: 31px 1fr; gap: 10px; padding: 17px 0; }
  .principle h3 { font-size: 16px; }
  .principle p { font-size: 11px; }
  .process-heading { margin-top: 38px; }
  .process-title { font-size: clamp(3.4rem, 15vw, 5rem); }
  .process-intro { margin: 0; font-size: 13px; }
  .process-steps { grid-template-columns: 1fr 1fr; gap: 0; margin-top: 65px; }
  .process-step { min-height: 177px; padding: 18px 11px 0 0; }
  .process-step:not(:first-child) { padding-left: 11px; }
  .process-step:nth-child(2) { border-right: 0; }
  .process-step:nth-child(n+3) { border-top: 1px solid var(--line-dark); }
  .process-step-line { margin: 17px 0 20px; }
  .process-step h3 { font-size: 22px; }
  .process-step p { font-size: 11px; }
  .contact-grid { gap: 65px; }
  .contact-info .section-title { margin-top: 34px; }
  .contact-lead { margin-top: 24px; font-size: 14px; }
  .direct-contact { margin-top: 37px; }
  .address-grid { grid-template-columns: 1fr; }
  .address-card { min-height: 106px; }
  .quote-card { padding: 25px 18px; }
  .quote-card h3 { margin-top: 42px; font-size: 3.15rem; }
  .form-row { grid-template-columns: 1fr; gap: 17px; }
  .company-section { padding-top: 25px; }
  .company-grid { grid-template-columns: 1fr; gap: 24px; }
  .company-label { min-height: auto; flex-direction: row; justify-content: space-between; font-size: 8px; }
  .company-facts { grid-template-columns: 1fr 1fr; }
  .fact { min-height: 76px; padding: 12px 10px; }
  .fact span { font-size: 7px; }
  .fact strong { font-size: 10px; }
  .company-update { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 7px; }
  .site-footer { padding-top: 59px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 38px 25px; padding-bottom: 48px; }
  .footer-brand-block { grid-column: span 2; grid-row: auto; }
  .footer-brand img { width: 150px; }
  .footer-brand-block p { margin-top: 18px; font-size: 16px; }
  .footer-heading { margin-bottom: 8px; font-size: 8px; }
  .footer-column a { font-size: 11px; }
  .footer-cta { grid-column: span 2; padding-top: 3px; }
  .footer-arrow-link { font-size: 19px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 7px; }
  .floating-call { display: none; }
  .contact-dock { right: 13px; bottom: 13px; gap: 5px; padding: 5px; }
  .dock-item { justify-content: center; width: 42px; min-height: 42px; padding: 0; }
  .dock-item > span:last-child { display: none; }
  .lightbox { padding: 16px; }
  .lightbox-panel { display: block; max-height: 88vh; overflow: auto; }
  .lightbox-image { min-height: 245px; height: 48vh; }
  .lightbox-image img { max-height: none; }
  .lightbox-caption { min-height: 145px; padding: 22px; }
  .lightbox-caption strong { margin-top: 13px; font-size: 2.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .js .reveal, .js .hero-line { opacity: 1; transform: none; }
  .marquee-track { transform: none !important; }
}
