/* Irie Transportation cinematic homepage
   This file is loaded only by index.html. The booking and operations pages
   intentionally keep their existing, quieter application styles. */

:root {
  --film-night: #070706;
  --film-night-soft: #11100d;
  --film-cream: #f7f2e8;
  --film-gold: #d6b54f;
  --film-gold-bright: #f0d878;
  --film-line: rgba(240, 216, 120, 0.23);
  --film-copy: #f4eee2;
  --film-muted: rgba(244, 238, 226, 0.66);
  --film-header-height: 76px;
}

html { scroll-padding-top: var(--film-header-height); }
body { background: var(--canvas-cream); }
body.menu-open { overflow: hidden; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  transform: translateY(-160%);
  padding: 11px 16px;
  border-radius: 999px;
  background: var(--film-cream);
  color: #111;
  font: 700 0.85rem var(--font-body);
}
.skip-link:focus { transform: translateY(0); }

/* Header and accessible mega menu */
.cinematic-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  min-height: var(--film-header-height);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
  align-items: center;
  gap: 24px;
  padding: 13px clamp(18px, 3vw, 52px);
  color: var(--film-copy);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: linear-gradient(180deg, rgba(4, 4, 3, 0.92), rgba(4, 4, 3, 0.5));
  backdrop-filter: blur(18px) saturate(1.15);
  transition: color 250ms ease, background 250ms ease, border-color 250ms ease;
}

.cinematic-header.on-light {
  color: #15130f;
  background: rgba(250, 247, 242, 0.91);
  border-color: rgba(20, 20, 20, 0.09);
}

.cinematic-brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: inherit;
  text-decoration: none;
  justify-self: start;
}
.cinematic-brand:hover, .cinematic-brand:focus { color: inherit; }
.cinematic-brand > span:last-child { display: grid; gap: 1px; }
.cinematic-brand strong { color: inherit; font: 600 1.2rem/1 var(--font-display); letter-spacing: 0.005em; }
.cinematic-brand small { color: currentColor; opacity: 0.63; font: 500 0.63rem/1.35 var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
.brand-sun { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; opacity: 0.9; }
.brand-sun i { width: 10px; height: 10px; border-radius: 50%; background: var(--film-gold); box-shadow: 0 0 15px rgba(214, 181, 79, 0.8); }

.mega-nav { display: flex; align-items: center; justify-content: center; gap: 1px; }
.mega-item { position: relative; }
.mega-trigger {
  min-height: 42px;
  padding: 0 13px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font: 600 0.78rem var(--font-body);
  cursor: pointer;
}
.mega-trigger:hover, .mega-trigger:focus-visible, .mega-trigger[aria-expanded="true"] { background: rgba(255, 255, 255, 0.1); outline: none; }
.on-light .mega-trigger:hover, .on-light .mega-trigger:focus-visible, .on-light .mega-trigger[aria-expanded="true"] { background: rgba(20, 20, 20, 0.07); }
.mega-trigger::after { content: ""; display: inline-block; width: 5px; height: 5px; margin: 0 0 3px 8px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease; }
.mega-trigger[aria-expanded="true"]::after { transform: translateY(3px) rotate(225deg); }

.mega-panel {
  position: absolute;
  top: calc(100% + 15px);
  left: 50%;
  width: min(430px, calc(100vw - 40px));
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(15, 14, 12, 0.97);
  color: var(--film-copy);
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -8px);
  transition: opacity 170ms ease, transform 170ms ease, visibility 170ms;
}
.mega-panel-right { left: auto; right: 0; transform: translate(0, -8px); }
.mega-trigger[aria-expanded="true"] + .mega-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.mega-trigger[aria-expanded="true"] + .mega-panel-right { transform: translate(0, 0); }
.mega-kicker { margin: 5px 9px 10px; color: var(--film-gold-bright); font: 600 0.68rem var(--font-body); letter-spacing: 0.13em; text-transform: uppercase; }
.mega-panel a { display: grid; gap: 3px; padding: 12px 11px; border-radius: 12px; color: inherit; text-decoration: none; }
.mega-panel a:hover, .mega-panel a:focus-visible { background: rgba(255, 255, 255, 0.075); outline: none; }
.mega-panel strong { color: inherit; font: 600 0.9rem var(--font-body); }
.mega-panel span { color: var(--film-muted); font: 400 0.76rem/1.45 var(--font-body); }

.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.header-actions a { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0 16px; border-radius: 999px; color: inherit; font: 600 0.78rem var(--font-body); text-decoration: none; }
.header-call { opacity: 0.78; }
.header-book { background: var(--film-gold); color: #171307 !important; box-shadow: 0 12px 28px rgba(214, 181, 79, 0.2); }
.header-book:hover, .header-book:focus-visible { background: var(--film-gold-bright); }
.cinematic-menu-toggle { width: 44px; height: 44px; display: none; place-items: center; padding: 0; border: 1px solid currentColor; border-radius: 50%; color: inherit; background: transparent; }
.cinematic-menu-toggle span { grid-area: 1/1; width: 18px; height: 1px; background: currentColor; transform: translateY(-4px); }
.cinematic-menu-toggle span:last-child { transform: translateY(4px); }

.cinematic-mobile-menu { position: fixed; inset: 0; z-index: 200; display: grid; grid-template-rows: auto 1fr; padding: 18px; background: #0b0a08; color: var(--film-copy); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: 220ms ease; }
.cinematic-mobile-menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.mobile-menu-top { display: flex; align-items: center; justify-content: space-between; padding: 4px 2px 18px; border-bottom: 1px solid rgba(255,255,255,0.13); }
.mobile-menu-top strong { color: inherit; font: 600 1.12rem var(--font-display); }
.menu-close { min-height: 44px; padding: 0 15px; border: 1px solid rgba(255,255,255,0.25); border-radius: 999px; color: inherit; background: transparent; font: 600 0.78rem var(--font-body); }
.mobile-menu-scroll { overflow-y: auto; padding: 16px 0 30px; }
.mobile-menu-scroll section { padding: 18px 3px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.mobile-menu-scroll h2 { margin: 0 0 7px; color: var(--film-gold-bright); font: 600 0.68rem var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; }
.mobile-menu-scroll a { display: block; padding: 8px 0; color: inherit; text-decoration: none; font: 500 1.05rem var(--font-body); }
.mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.mobile-actions a { display: grid; place-items: center; min-height: 50px; padding: 8px; border: 1px solid rgba(255,255,255,0.25); border-radius: 999px; text-align: center; font-size: 0.86rem; }
.mobile-actions a:first-child { background: var(--film-gold); color: #171307; border-color: var(--film-gold); }

/* The 4:30 A.M. Promise */
.site-shell { max-width: none; width: 100%; margin: 0; padding: 0 0 120px; }
.promise-film { position: relative; height: 620vh; background: var(--film-night); }
.promise-stage { position: relative; width: 100%; height: 100svh; min-height: 650px; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 78% 18%, #17150f 0, #090908 42%, #050505 100%); color: var(--film-copy); }
.night-sky, .horizon-glow, .promise-route { position: absolute; inset: 0; pointer-events: none; }
.night-sky { z-index: 0; overflow: hidden; background: linear-gradient(180deg, #050607 0%, #0d0d0d 66%, #17130b 100%); }
.night-sky::after { content: ""; position: absolute; inset: -30%; opacity: 0.18; background-image: radial-gradient(circle, rgba(255,255,255,.85) 0 1px, transparent 1.3px); background-size: 73px 61px; transform: rotate(-8deg); }
.night-sky i { position: absolute; width: 34vw; height: 34vw; border-radius: 50%; filter: blur(70px); background: rgba(141, 94, 31, 0.15); }
.night-sky i:nth-child(1) { left: -10%; top: 35%; }
.night-sky i:nth-child(2) { right: -8%; top: 6%; background: rgba(214, 181, 79, 0.12); }
.night-sky i:nth-child(3) { left: 42%; bottom: -28%; background: rgba(255, 150, 56, 0.12); }
.horizon-glow { z-index: 1; opacity: 0; background: radial-gradient(ellipse at 68% 105%, rgba(255, 180, 78, 0.95) 0%, rgba(223, 120, 48, 0.37) 20%, rgba(52, 32, 21, 0.08) 48%, transparent 67%); }
.promise-route { z-index: 2; width: 100%; height: 100%; opacity: 0.5; }
.promise-road-shadow, .promise-road { fill: none; stroke-linecap: round; }
.promise-road-shadow { stroke: rgba(0,0,0,0.72); stroke-width: 22; }
.promise-road { stroke: rgba(214,181,79,0.27); stroke-width: 2; stroke-dasharray: 10 15; }
.road-origin, .road-destination { fill: var(--film-gold); filter: drop-shadow(0 0 12px rgba(214,181,79,0.78)); }
.promise-car { position: absolute; z-index: 4; left: 4.1%; bottom: 12.8%; width: 18px; height: 18px; border: 2px solid var(--film-gold-bright); border-radius: 50%; box-shadow: 0 0 0 9px rgba(214,181,79,0.09), 0 0 25px rgba(214,181,79,0.55); }
.promise-car span { position: absolute; inset: 4px; border-radius: 50%; background: var(--film-gold-bright); }

.promise-chrome { position: absolute; z-index: 12; left: clamp(18px, 4vw, 64px); right: clamp(18px, 4vw, 64px); top: calc(var(--film-header-height) + 20px); display: grid; grid-template-columns: 38px 1fr minmax(130px, 18vw); align-items: center; gap: 13px; color: rgba(244,238,226,.64); font: 600 0.68rem var(--font-body); letter-spacing: 0.12em; text-transform: uppercase; }
.promise-number { color: var(--film-gold-bright); }
.promise-progress { height: 1px; background: rgba(255,255,255,.15); overflow: hidden; }
.promise-progress i { display: block; width: 100%; height: 100%; background: var(--film-gold); transform: scaleX(0); transform-origin: left; }

.promise-scene { position: absolute; inset: 0; z-index: 5; display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); align-items: center; gap: clamp(34px, 7vw, 120px); padding: calc(var(--film-header-height) + 64px) clamp(22px, 7vw, 112px) 68px; visibility: hidden; }
.promise-scene.is-active { visibility: visible; }
.promise-copy { position: relative; z-index: 3; max-width: 720px; }
.film-eyebrow, .scene-step { margin: 0 0 18px; color: var(--film-gold-bright); font: 600 0.72rem var(--font-body); letter-spacing: .18em; text-transform: uppercase; }
.promise-copy h1, .promise-copy h2 { margin: 0; color: var(--film-copy); font-family: var(--font-display); font-weight: 600; letter-spacing: -.035em; text-wrap: balance; }
.promise-copy h1 { max-width: 790px; font-size: clamp(3.35rem, 6.3vw, 7.2rem); line-height: .9; }
.promise-copy h2 { font-size: clamp(3rem, 5.4vw, 6.3rem); line-height: .92; }
.promise-lead, .promise-copy > p:not(.film-eyebrow):not(.scene-step):not(.film-proof) { max-width: 610px; margin: 24px 0 0; color: var(--film-muted); font: 400 clamp(1rem, 1.45vw, 1.25rem)/1.62 var(--font-body); }
.promise-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 30px; }
.film-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border-radius: 999px; background: var(--film-gold); color: #171307; font: 700 .86rem var(--font-body); text-decoration: none; box-shadow: 0 18px 42px rgba(214,181,79,.19); }
.film-button:hover, .film-button:focus-visible { background: var(--film-gold-bright); color: #171307; }
.film-text-link { color: var(--film-copy); font: 600 .84rem var(--font-body); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.28); padding-bottom: 3px; }
.film-proof { display: flex; align-items: center; gap: 9px; margin: 26px 0 0; color: rgba(244,238,226,.5); font: 500 .69rem var(--font-body); letter-spacing: .06em; text-transform: uppercase; }
.film-proof i { width: 7px; height: 7px; border-radius: 50%; background: #7fbf7f; box-shadow: 0 0 0 5px rgba(127,191,127,.1); }

.departure-card { justify-self: end; width: min(410px, 100%); padding: 26px; border: 1px solid var(--film-line); border-radius: 26px; background: rgba(22,20,16,.72); box-shadow: 0 35px 100px rgba(0,0,0,.46); backdrop-filter: blur(16px); transform: rotate(2deg); }
.departure-time { display: flex; align-items: baseline; gap: 7px; margin-bottom: 24px; color: var(--film-copy); font: 600 clamp(4.2rem, 7vw, 7.6rem)/.75 var(--font-display); }
.departure-time small { color: var(--film-gold-bright); font: 700 .72rem var(--font-body); letter-spacing: .15em; }
.departure-card p { display: grid; gap: 3px; margin: 0; }
.departure-card p small { color: var(--film-muted); font: 500 .67rem var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.departure-card p strong { color: var(--film-copy); font: 500 1.2rem var(--font-body); }
.departure-card > i { display: block; width: 1px; height: 33px; margin: 8px 0 8px 8px; background: var(--film-gold); }
.departure-card em { display: block; margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.1); color: var(--film-gold-bright); font: 500 .78rem var(--font-body); font-style: normal; }

.corey-confirmation { justify-self: end; width: min(530px, 100%); display: grid; grid-template-columns: 132px 1fr; gap: 16px; align-items: end; }
.corey-confirmation img { width: 132px; height: 174px; object-fit: cover; object-position: 50% 35%; border-radius: 24px; filter: saturate(.86) contrast(1.03); box-shadow: 0 24px 70px rgba(0,0,0,.38); }
.corey-confirmation > div { position: relative; padding: 22px; border-radius: 22px 22px 22px 5px; background: var(--film-cream); color: #17140f; box-shadow: 0 28px 80px rgba(0,0,0,.42); }
.corey-confirmation span { color: #79601b; font: 700 .64rem var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.corey-confirmation p { margin: 10px 0 14px; font: 500 1rem/1.55 var(--font-body); }
.corey-confirmation small { color: #5b6f42; font: 700 .72rem var(--font-body); }

.arrival-visual { position: relative; justify-self: end; width: min(590px, 100%); min-height: 390px; display: grid; align-items: center; }
.arrival-visual::before { content: ""; position: absolute; inset: 15% 0 0; border-radius: 50%; background: radial-gradient(circle, rgba(214,181,79,.26), transparent 65%); filter: blur(20px); }
.arrival-visual img { position: relative; width: 100%; height: auto; mix-blend-mode: screen; filter: contrast(1.12) drop-shadow(0 35px 30px rgba(0,0,0,.65)); }
.arrival-ticket { position: absolute; right: 0; bottom: 0; min-width: 285px; display: grid; gap: 3px; padding: 18px 54px 18px 19px; border: 1px solid rgba(255,255,255,.16); border-radius: 17px; background: rgba(15,14,12,.88); backdrop-filter: blur(12px); }
.arrival-ticket span { color: var(--film-gold-bright); font: 700 .62rem var(--font-body); letter-spacing: .11em; text-transform: uppercase; }
.arrival-ticket strong { color: var(--film-copy); font: 600 1.25rem var(--font-display); }
.arrival-ticket p { margin: 0; color: var(--film-muted); font: 500 .71rem var(--font-body); }
.arrival-ticket i { position: absolute; right: 18px; top: 50%; width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--film-gold); color: #171307; font: 800 .72rem var(--font-body); transform: translateY(-50%); }

.travel-board { justify-self: end; width: min(520px, 100%); padding: 16px; border: 1px solid var(--film-line); border-radius: 24px; background: rgba(18,17,14,.78); box-shadow: 0 35px 90px rgba(0,0,0,.42); backdrop-filter: blur(16px); }
.travel-board-head { display: flex; justify-content: space-between; align-items: center; padding: 9px 10px 16px; color: var(--film-copy); font: 600 .76rem var(--font-body); }
.travel-board-head i { color: var(--film-gold-bright); font-style: normal; font-size: .64rem; text-transform: uppercase; letter-spacing: .12em; }
.travel-row { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; padding: 15px 13px; border-top: 1px solid rgba(255,255,255,.09); }
.travel-row > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; color: var(--film-copy); font: 700 .68rem var(--font-body); }
.travel-row p { display: grid; gap: 3px; margin: 0; }
.travel-row small { color: var(--film-muted); font: 500 .66rem var(--font-body); }
.travel-row strong { color: var(--film-copy); font: 600 .9rem var(--font-body); }
.travel-row em { color: var(--film-muted); font: 600 .66rem var(--font-body); font-style: normal; }
.travel-row.done > span { background: rgba(112,151,86,.17); border-color: rgba(130,181,95,.38); color: #a7d989; }
.travel-row.active { margin: 4px 0; border: 1px solid var(--film-line); border-radius: 14px; background: rgba(214,181,79,.07); }
.travel-row.active > span { color: var(--film-gold-bright); border-color: var(--film-line); }
.travel-row.active em { color: var(--film-gold-bright); }

.promise-complete { grid-template-columns: .9fr 1.1fr; }
.arrival-photo { position: relative; width: min(620px, 100%); aspect-ratio: 1.25; padding: 10px; border: 1px solid var(--film-line); border-radius: 30px; overflow: hidden; background: rgba(255,255,255,.03); box-shadow: 0 35px 90px rgba(0,0,0,.42); }
.arrival-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 21px; filter: saturate(.82) contrast(1.02); }
.arrival-photo::after { content: "Ride complete · 5:58 AM"; position: absolute; left: 25px; bottom: 24px; padding: 9px 13px; border-radius: 999px; background: rgba(10,9,7,.78); color: var(--film-copy); backdrop-filter: blur(10px); font: 600 .67rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; }
.complete-copy { justify-self: end; }

.promise-scroll-cue { position: absolute; z-index: 12; left: clamp(22px, 7vw, 112px); bottom: 24px; display: flex; align-items: center; gap: 12px; color: rgba(244,238,226,.48); font: 600 .64rem var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.promise-scroll-cue i { position: relative; width: 34px; height: 1px; background: rgba(255,255,255,.28); overflow: hidden; }
.promise-scroll-cue i::after { content: ""; position: absolute; inset: 0; background: var(--film-gold); animation: scrollPulse 1.8s ease-in-out infinite; transform-origin: left; }
.promise-seam { position: absolute; z-index: 20; inset: auto 0 0; height: 28vh; opacity: 0; background: linear-gradient(180deg, transparent, var(--canvas-cream)); pointer-events: none; }

.promise-strip { overflow: hidden; padding: 20px 0; border-bottom: 1px solid rgba(20,20,20,.08); background: var(--canvas-cream); color: #2a2519; }
.promise-marquee { display: flex; width: max-content; gap: 52px; will-change: transform; }
.promise-marquee span { display: inline-flex; align-items: center; gap: 52px; color: #584c2d; font: 600 .72rem var(--font-body); letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.promise-marquee span::after { content: "✦"; color: var(--gold); }

/* Existing content becomes the editorial second half of the journey. */
.site-shell > main > .section,
.site-shell > main > .mid-journey-cta,
.site-shell > main > .cta-panel { width: min(1200px, calc(100% - 56px)); margin-left: auto; margin-right: auto; }
.site-shell > main > .section { padding-top: 110px; padding-bottom: 110px; }
.site-shell > main > .section.section-alt { border-radius: 30px; }
.site-shell > main > .mid-journey-cta { margin-top: 0; margin-bottom: 0; }
.site-shell > main > .cta-panel { margin-top: 20px; }
.site-shell > main > .section h3 { font-size: clamp(2.6rem, 5vw, 4.8rem); line-height: .98; }
.site-shell > main > #services { padding-top: 130px; }
.site-footer { width: min(1200px, calc(100% - 56px)); margin-left: auto; margin-right: auto; }

.corey-section { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr); gap: clamp(38px, 8vw, 110px); align-items: center; }
.corey-photo { position: relative; min-height: 560px; padding: 10px; border: 1px solid rgba(111,84,19,.18); border-radius: 30px; background: #efe9dd; box-shadow: 0 28px 70px rgba(62,48,20,.12); transform: rotate(-1.5deg); }
.corey-photo img { width: 100%; height: 100%; min-height: 540px; object-fit: cover; object-position: 50% 42%; border-radius: 21px; }
.corey-photo span { position: absolute; left: 28px; bottom: 26px; padding: 10px 14px; border-radius: 999px; background: rgba(9,9,8,.78); color: var(--film-copy); backdrop-filter: blur(10px); font: 600 .67rem var(--font-body); letter-spacing: .09em; text-transform: uppercase; }
.corey-story { max-width: 610px; }
.corey-story .eyebrow { display: inline-block; margin: 0 0 18px; color: var(--gold-readable); font: 700 .7rem var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.corey-story h3 { margin: 0 0 24px; }
.corey-story > p:not(.eyebrow) { color: var(--ink-muted-light); font: 400 1.08rem/1.78 var(--font-body); }
.corey-links { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.corey-links > a:last-child { color: var(--gold-readable); font: 700 .85rem var(--font-body); text-underline-offset: 5px; }

@keyframes scrollPulse { 0% { transform: scaleX(0); transform-origin: left; } 48% { transform: scaleX(1); transform-origin: left; } 52% { transform: scaleX(1); transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }

@media (max-width: 1100px) {
  .cinematic-header { grid-template-columns: minmax(190px, 1fr) auto; }
  .mega-nav { display: none; }
  .cinematic-menu-toggle { display: grid; }
  .header-call { display: none !important; }
  .promise-scene { grid-template-columns: minmax(0, 1fr) minmax(290px, .72fr); gap: 35px; padding-left: 48px; padding-right: 48px; }
}

@media (max-width: 760px) {
  :root { --film-header-height: 68px; }
  .cinematic-header { grid-template-columns: 1fr auto; padding: 10px 16px; }
  .cinematic-brand small { display: none; }
  .cinematic-brand strong { font-size: 1.06rem; }
  .brand-sun { width: 29px; height: 29px; }
  .header-book { min-height: 42px !important; padding: 0 13px !important; font-size: .73rem !important; }
  .header-actions { gap: 6px; }
  .promise-film { height: 560vh; }
  .promise-stage { min-height: 620px; }
  .promise-chrome { top: calc(var(--film-header-height) + 14px); grid-template-columns: 30px 1fr 82px; left: 18px; right: 18px; font-size: .58rem; }
  .promise-scene { grid-template-columns: 1fr; align-content: center; gap: 24px; padding: calc(var(--film-header-height) + 70px) 20px 62px; }
  .promise-copy { max-width: 100%; }
  .promise-copy h1 { font-size: clamp(3.2rem, 15vw, 5rem); line-height: .91; }
  .promise-copy h2 { font-size: clamp(2.75rem, 13vw, 4.4rem); line-height: .92; }
  .promise-lead, .promise-copy > p:not(.film-eyebrow):not(.scene-step):not(.film-proof) { margin-top: 17px; font-size: .96rem; line-height: 1.48; }
  .promise-actions { margin-top: 20px; gap: 14px; }
  .film-button { min-height: 47px; padding: 0 18px; font-size: .78rem; }
  .film-proof { margin-top: 17px; font-size: .58rem; line-height: 1.5; }
  .departure-card { justify-self: start; width: min(330px, 88vw); padding: 18px; border-radius: 20px; }
  .departure-time { font-size: 4.2rem; margin-bottom: 15px; }
  .departure-card p strong { font-size: .95rem; }
  .departure-card > i { height: 19px; }
  .departure-card em { margin-top: 13px; padding-top: 12px; }
  .promise-contact, .promise-arrival, .promise-watch { grid-template-rows: auto auto; }
  .corey-confirmation { justify-self: start; width: 100%; grid-template-columns: 88px 1fr; gap: 10px; align-items: end; }
  .corey-confirmation img { width: 88px; height: 116px; border-radius: 18px; }
  .corey-confirmation > div { padding: 15px; border-radius: 17px 17px 17px 4px; }
  .corey-confirmation p { margin: 7px 0 9px; font-size: .79rem; line-height: 1.42; }
  .arrival-visual { justify-self: start; width: 100%; min-height: 215px; }
  .arrival-ticket { min-width: 240px; padding: 13px 45px 13px 14px; }
  .travel-board { justify-self: start; width: 100%; padding: 9px; }
  .travel-row { grid-template-columns: 36px 1fr auto; gap: 8px; padding: 10px 7px; }
  .travel-row > span { width: 31px; height: 31px; }
  .travel-row strong { font-size: .73rem; }
  .travel-row small, .travel-row em { font-size: .58rem; }
  .promise-complete { grid-template-columns: 1fr; }
  .arrival-photo { position: absolute; inset: 0; width: 100%; aspect-ratio: auto; padding: 0; border: 0; border-radius: 0; opacity: .23; }
  .arrival-photo img { border-radius: 0; }
  .arrival-photo::after { display: none; }
  .complete-copy { justify-self: start; }
  .promise-scroll-cue { left: 20px; bottom: 18px; }
  .promise-route { opacity: .35; }
  .site-shell > main > .section,
  .site-shell > main > .mid-journey-cta,
  .site-shell > main > .cta-panel,
  .site-footer { width: min(100% - 28px, 1200px); }
  .site-shell > main > .section { padding-top: 78px; padding-bottom: 78px; }
  .site-shell > main > #services { padding-top: 92px; }
  .corey-section { grid-template-columns: 1fr; }
  .corey-photo { min-height: 440px; }
  .corey-photo img { min-height: 420px; }
}

@media (max-width: 430px) {
  .header-book { display: none !important; }
  .promise-copy h1 { font-size: clamp(3rem, 14vw, 4rem); }
  .promise-copy h2 { font-size: clamp(2.45rem, 12vw, 3.4rem); }
  .departure-card { width: 100%; }
  .mobile-actions { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .promise-film { height: auto; }
  .promise-stage { height: auto; min-height: 0; overflow: visible; background: var(--film-night); }
  .promise-route, .promise-car, .promise-chrome, .promise-scroll-cue, .promise-seam { display: none; }
  .night-sky, .horizon-glow { position: fixed; opacity: .32; }
  .promise-scene { position: relative; inset: auto; min-height: 88svh; visibility: visible !important; opacity: 1 !important; transform: none !important; }
  .promise-strip { margin-top: 0; }
  .promise-marquee { width: 100%; flex-wrap: wrap; justify-content: center; transform: none !important; }
}
