html, body { overflow-x: clip; }
.film-hero {
  --film-safe-x: max(24px, env(safe-area-inset-left));
  position: relative;
  width: 100vw;
  min-height: clamp(620px, 78vh, 860px);
  margin-left: calc(50% - 50vw);
  margin-top: -48px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background: #090a0c;
}
.film-stage { position:absolute; inset:0; overflow:hidden; background:#07090b; }
.film-native-video { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; object-position:var(--film-position,50% 80%); background:#07090b; }
.film-shade { position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.38) 43%,rgba(0,0,0,.08) 72%),linear-gradient(0deg,rgba(0,0,0,.56),transparent 42%); }
.film-content { position:relative; z-index:5; min-height:inherit; width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:clamp(110px,16vh,170px) 0 154px; display:flex; flex-direction:column; justify-content:center; }
.film-copy { max-width:660px; padding:24px 0; text-shadow:0 2px 30px rgba(0,0,0,.34); }
.film-kicker { display:block; margin-bottom:18px; font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.film-copy h1 { margin:0; font-size:clamp(48px,6.4vw,88px); line-height:.93; letter-spacing:-.065em; font-weight:620; }
.film-copy p { max-width:600px; margin:22px 0 0; color:rgba(255,255,255,.88); font-size:clamp(16px,1.6vw,20px); line-height:1.55; }
.film-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.film-action { min-height:48px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:0 22px; text-decoration:none; font-size:14px; font-weight:800; transition:transform .18s ease,background .18s ease; }
.film-action:hover { transform:translateY(-1px); }
.film-action.primary { background:#eb0a1e; color:#fff; }
.film-action.secondary { background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.38); color:#fff; backdrop-filter:blur(14px); }
.film-toggle { position:absolute; z-index:6; left:max(24px,env(safe-area-inset-left)); bottom:max(24px,env(safe-area-inset-bottom)); display:inline-flex; align-items:center; justify-content:center; min-width:94px; min-height:36px; border:1px solid rgba(255,255,255,.52); border-radius:2px; padding:0 12px; background:rgba(8,10,12,.55); color:#fff; backdrop-filter:blur(12px); cursor:pointer; font-size:12px; font-weight:600; letter-spacing:.015em; transition:background .18s ease; }
.film-toggle:hover { background:rgba(8,10,12,.82); }
.film-toggle:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.film-status { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.film-transition { height:68px; margin:0 calc(50% - 50vw) 24px; background:linear-gradient(180deg,#090a0c,var(--bg)); }
@media (max-width:900px) {
  .film-hero { margin-top:-34px; min-height:680px; }
  .film-content { padding-top:100px; padding-bottom:170px; }
  .film-copy { max-width:580px; }
  .film-toggle { left:max(24px,env(safe-area-inset-left)); }
}
@media (max-width:650px) {
  .film-hero { min-height:0; height:auto; margin-top:-34px; background:linear-gradient(180deg,#191c20,#090a0c 62%); }
  .film-stage { height:56.25vw; max-height:360px; bottom:auto; background:#090a0c; }
  .film-native-video { object-fit:contain; object-position:center; background:#090a0c; }
  .film-shade { background:linear-gradient(0deg,rgba(0,0,0,.24),transparent 44%); }
  .film-content { width:calc(100% - 40px); min-height:0; padding:calc(min(56.25vw,360px) + 20px) 0 calc(94px + env(safe-area-inset-bottom)); justify-content:flex-start; }
  .film-copy { padding:10px 0; max-width:100%; text-shadow:none; }
  .film-kicker { margin-bottom:12px; }
  .film-copy h1 { max-width:520px; font-size:clamp(38px,10.8vw,58px); line-height:1.03; letter-spacing:-.055em; }
  .film-copy p { margin-top:14px; max-width:450px; font-size:16px; }
  .film-actions { display:grid; grid-template-columns:1fr; margin-top:20px; }
  .film-action { width:100%; min-height:48px; }
  .film-toggle { left:max(20px,env(safe-area-inset-left)); bottom:max(20px,env(safe-area-inset-bottom)); min-height:44px; }
  .film-transition { height:42px; }
}
@media (prefers-reduced-motion:reduce) {
  .film-hero * { scroll-behavior:auto!important; }
}

/* Keep vehicle details clear of the gallery navigation. */
.selected-preview .preview-controls { left:12px; right:12px; top:50%; bottom:auto; transform:translateY(-50%); pointer-events:none; }
.selected-preview .preview-arrow { pointer-events:auto; }
.selected-preview .media-count { position:absolute; left:50%; top:calc(50% + 128px); transform:translateX(-50%); }
.selected-preview .preview-copy { max-width:calc(100% - 84px); padding:22px 22px 24px; margin-right:auto; }
.interior-reference { position:absolute!important; inset:0; z-index:1!important; display:grid; grid-template-columns:minmax(112px,36%) minmax(0,1fr); align-items:center; gap:22px; padding:72px 28px 90px; background:linear-gradient(135deg,#111317,#24272b); color:#fff; }
.interior-reference[hidden] { display:none; }
.interior-reference-swatch { width:min(100%,240px); aspect-ratio:1; border-radius:50%; justify-self:center; background:var(--interior-color,#202124); border:10px solid rgba(255,255,255,.9); box-shadow:0 0 0 1px rgba(255,255,255,.24),0 28px 64px rgba(0,0,0,.38); }
.interior-reference > div { display:grid; gap:8px; }
.interior-reference-kicker { font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.64); }
.interior-reference strong { font-size:clamp(24px,2.4vw,36px); line-height:1.02; letter-spacing:-.035em; overflow-wrap:anywhere; }
.interior-reference span:not(.interior-reference-kicker),.interior-reference small { color:rgba(255,255,255,.76); line-height:1.45; }
@media (max-width:650px) {
  .selected-preview .media-count { top:calc(50% + 98px); }
  .selected-preview .preview-copy { max-width:calc(100% - 64px); padding:18px; }
  .interior-reference { grid-template-columns:1fr; justify-items:center; text-align:center; gap:16px; padding:82px 22px 74px; }
  .interior-reference-swatch { width:116px; border-width:7px; }
}
