/* =====================================================================
   Imperia Drive — premium redesign (local model)
   Design system implements the documented Imperia visual spec:
   aqua action accent + cool ink + light crisp surfaces, Playfair/Inter.
   No gold, no gradient text, no ambient glow. Cinematic dark brand
   panels frame photography; forms stay on solid light surfaces.
   ===================================================================== */

/* ---------- Tokens ---------- */
:root {
  /* Brand + semantic colour (from Imperia visual system) */
  --canvas: #F6F8F8;
  --surface: #FBFDFD;
  --surface-2: #F1F5F5;
  --ink: #111B1F;          /* text / brand-dark */
  --ink-900: #0B1315;      /* deeper cinematic ink for hero overlays */
  --ink-800: #0F1A1E;
  --muted: #526269;        /* text-muted */
  --action: #006C80;       /* primary button / link */
  --action-hover: #005365;
  --action-pressed: #003F50;
  --aqua: #0092B3;         /* brand accent (non-text) */
  --aqua-on-dark: #8AD5DE; /* dark-section link / focus / emphasis */
  --selected: #E8EFF0;
  --control-border: #71868B;
  --hairline: #DCE5E6;     /* lighter divider for premium hairlines */
  --divider: #CAD6D8;
  --success: #225C3D;
  --error: #A32832;

  /* Typography */
  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --fs-hero: clamp(2.5rem, 1.55rem + 3.6vw, 4rem);      /* 40 -> 64 */
  --fs-h1:   clamp(2.125rem, 1.6rem + 2.1vw, 3.25rem);  /* 34 -> 52 */
  --fs-h2:   clamp(1.75rem, 1.42rem + 1.45vw, 2.5rem);  /* 28 -> 40 */
  --fs-h3:   clamp(1.375rem, 1.22rem + 0.66vw, 1.75rem);/* 22 -> 28 */
  --fs-lead: clamp(1.125rem, 1.06rem + 0.3vw, 1.25rem); /* 18 -> 20 */
  --fs-body: 1.0625rem;                                  /* 17 */
  --fs-sm: 0.9375rem;                                    /* 15 */
  --fs-xs: 0.8125rem;                                    /* 13 */

  /* Space scale */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;
  --s-9: 96px; --s-10: 128px;

  --gutter: clamp(20px, 5vw, 48px);
  --maxw: 1280px;
  --maxw-narrow: 1120px;
  --section-y: clamp(56px, 8vw, 112px);

  /* Radii + elevation (from spec: 8 controls, 12 panels, 16 photography) */
  --r-control: 8px;
  --r-panel: 12px;
  --r-photo: 16px;
  --shadow-form: 0 8px 28px rgb(17 27 31 / 0.10);
  --shadow-float: 0 12px 32px rgb(17 27 31 / 0.16);
  --shadow-soft: 0 1px 2px rgb(17 27 31 / 0.04), 0 6px 20px rgb(17 27 31 / 0.06);

  --ease: cubic-bezier(0.23, 1, 0.32, 1);
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--ink);
  background: var(--canvas);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: var(--action); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font-family: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; }
p { margin: 0; }
ul { margin: 0; }

::selection { background: var(--aqua-on-dark); color: var(--ink); }

:focus-visible {
  outline: 3px solid var(--action);
  outline-offset: 2px;
  border-radius: 4px;
}
.on-dark :focus-visible, .footer :focus-visible { outline-color: var(--aqua-on-dark); }

.skip-link {
  position: absolute; left: 12px; top: -60px;
  background: var(--surface); color: var(--action);
  padding: 10px 16px; border-radius: var(--r-control);
  font-weight: 600; z-index: 200; transition: top .15s var(--ease);
}
.skip-link:focus { top: 12px; }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.container-narrow { max-width: var(--maxw-narrow); }
.section { padding-block: var(--section-y); }
.section-tight { padding-block: clamp(40px, 5vw, 72px); }

.eyebrow {
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--action);
  margin: 0 0 var(--s-3);
}
.on-dark .eyebrow { color: var(--aqua-on-dark); }

.section-head { max-width: 62ch; }
.section-head h2 { font-family: var(--serif); font-size: var(--fs-h2); line-height: 1.2; letter-spacing: -0.01em; }
.section-head .lead { margin-top: var(--s-4); font-size: var(--fs-lead); color: var(--muted); line-height: 1.6; }
.on-dark .section-head .lead { color: #C4D2D5; }

.lead { font-size: var(--fs-lead); line-height: 1.6; color: var(--muted); }
.prose { max-width: 68ch; }
.prose p + p { margin-top: var(--s-4); }

/* ---------- Buttons ---------- */
.btn {
  --btn-bg: var(--action);
  --btn-fg: var(--surface);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  font-size: 1rem; font-weight: 600; line-height: 1.2;
  color: var(--btn-fg); background: var(--btn-bg);
  border: 1px solid transparent; border-radius: var(--r-control);
  cursor: pointer; transition: background .16s var(--ease), transform .1s var(--ease), border-color .16s var(--ease), color .16s var(--ease);
  text-align: center;
}
.btn:hover { background: var(--action-hover); text-decoration: none; }
.btn:active { background: var(--action-pressed); transform: translateY(1px); }
.btn-lg { min-height: 54px; padding: 15px 28px; font-size: 1.0625rem; }
.btn-block { display: flex; width: 100%; }

.btn-outline {
  --btn-bg: transparent; --btn-fg: var(--action);
  border-color: var(--control-border);
}
.btn-outline:hover { --btn-bg: var(--selected); background: var(--selected); border-color: var(--action); }

.btn-ghost-dark {
  --btn-bg: transparent; --btn-fg: #EAF2F3;
  border-color: rgb(234 242 243 / 0.35);
}
.btn-ghost-dark:hover { background: rgb(234 242 243 / 0.10); border-color: rgb(234 242 243 / 0.6); }

.btn-light {
  --btn-bg: var(--surface); --btn-fg: var(--action);
}
.btn-light:hover { background: #EAF2F3; }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.link-arrow svg { width: 18px; height: 18px; transition: transform .16s var(--ease); }
.link-arrow:hover svg { transform: translateX(3px); }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: 80px; display: flex; align-items: center;
  transition: background .25s var(--ease), box-shadow .25s var(--ease), height .25s var(--ease);
}
.site-header .container { display: flex; align-items: center; gap: var(--s-6); width: 100%; }
.site-header { color: #F3F8F8; }                     /* default: over a dark hero */
body[data-header="light"] .site-header { color: var(--ink); background: var(--surface); box-shadow: 0 1px 0 var(--hairline); }
.site-header.scrolled { background: var(--surface); color: var(--ink); box-shadow: 0 1px 0 var(--hairline), var(--shadow-soft); height: 68px; }
body:not([data-header="light"]) .site-header:not(.scrolled) :focus-visible { outline-color: var(--aqua-on-dark); }

.brand { display: inline-flex; align-items: baseline; gap: 2px; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; color: inherit; }
.brand:hover { text-decoration: none; }
.brand .brand-mark { color: var(--aqua); }
.scrolled .brand .brand-mark, body[data-header="light"] .brand .brand-mark { color: var(--action); }

/* Header CTA adapts to variant: ghost over dark hero, solid aqua on light/scrolled */
.btn-header { background: transparent; color: #EAF2F3; border-color: rgb(234 242 243 / 0.35); }
.btn-header:hover { background: rgb(234 242 243 / 0.10); border-color: rgb(234 242 243 / 0.6); }
body[data-header="light"] .btn-header, .site-header.scrolled .btn-header { background: var(--action); color: var(--surface); border-color: transparent; }
body[data-header="light"] .btn-header:hover, .site-header.scrolled .btn-header:hover { background: var(--action-hover); }

.nav a[data-nav].active { opacity: 1; position: relative; }
.nav a[data-nav].active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px; background: currentColor; opacity: 0.45; }

.nav { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 26px); margin-left: auto; }
.nav a { color: inherit; font-size: var(--fs-sm); font-weight: 500; opacity: 0.92; }
.nav a:hover { opacity: 1; text-decoration: none; }
.nav-links { display: flex; align-items: center; gap: clamp(14px, 1.6vw, 26px); }
.nav-cta { display: flex; align-items: center; gap: var(--s-4); }
.nav-secondary { font-weight: 500; opacity: 0.85; }

.site-header.scrolled .btn-ghost-dark { --btn-fg: var(--action); border-color: var(--control-border); }
.site-header.scrolled .btn-ghost-dark:hover { background: var(--selected); }

.site-header .menu-toggle { display: none; }
.mobile-only { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; color: #F4F9FA; background: var(--ink-900); overflow: hidden; }
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.hero-media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgb(9 17 19 / 0.92) 0%, rgb(9 17 19 / 0.72) 34%, rgb(9 17 19 / 0.30) 62%, rgb(9 17 19 / 0.15) 100%),
    linear-gradient(0deg, rgb(9 17 19 / 0.55) 0%, rgb(9 17 19 / 0) 40%);
}
.hero-inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(28px, 5vw, 72px);
  align-items: center;
  padding-top: clamp(128px, 16vh, 190px); padding-bottom: clamp(56px, 9vw, 104px);
}
.hero-copy { max-width: 34ch; }
.hero h1 { font-family: var(--serif); font-size: var(--fs-hero); line-height: 1.08; letter-spacing: -0.015em; font-weight: 500; }
.hero .hero-sub { margin-top: var(--s-5); font-size: var(--fs-lead); line-height: 1.55; color: #D3E0E2; max-width: 42ch; }
.hero-proof { margin-top: var(--s-6); display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; font-size: var(--fs-sm); color: #CBD9DB; }
.hero-proof span { display: inline-flex; align-items: center; gap: 8px; }
.hero-proof .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--aqua-on-dark); }

/* Simple hero (browse pages: copy + actions, no quote form) */
.hero--simple .hero-inner { grid-template-columns: 1fr; padding-top: clamp(140px, 20vh, 210px); padding-bottom: clamp(48px, 7vw, 88px); }
.hero--simple .hero-copy { max-width: 42ch; }
.hero-actions { margin-top: var(--s-6); display: flex; flex-wrap: wrap; gap: var(--s-4); }

/* Check list */
.check-list { list-style: none; padding: 0; display: grid; gap: 11px; margin-top: var(--s-4); }
.check-list li { display: grid; grid-template-columns: 22px 1fr; gap: 11px; align-items: start; font-size: var(--fs-sm); color: var(--ink); }
.check-list svg { width: 22px; height: 22px; color: var(--action); margin-top: 1px; }

/* Big capacity spec row */
.spec-row { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); margin-top: var(--s-5); padding: var(--s-4) 0; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.spec { display: flex; align-items: center; gap: 10px; }
.spec svg { width: 22px; height: 22px; color: var(--action); }
.spec .spec-n { font-weight: 600; }
.spec .spec-l { font-size: var(--fs-sm); color: var(--muted); }

/* ---------- Quote card ---------- */
.quote-card {
  background: var(--surface); color: var(--ink);
  border-radius: var(--r-panel); box-shadow: var(--shadow-float);
  padding: clamp(20px, 2.4vw, 28px);
  border: 1px solid var(--hairline);
}
.quote-card h2 { font-family: var(--sans); font-size: 1.125rem; font-weight: 600; letter-spacing: -0.01em; }
.quote-card .quote-note { margin-top: 4px; font-size: var(--fs-xs); color: var(--muted); }

.segment { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin-top: var(--s-4); background: var(--surface-2); border-radius: 10px; border: 1px solid var(--hairline); }
.segment button {
  appearance: none; border: 0; background: transparent; cursor: pointer;
  min-height: 40px; border-radius: 7px; font-size: var(--fs-sm); font-weight: 600; color: var(--muted);
  transition: background .16s var(--ease), color .16s var(--ease), box-shadow .16s var(--ease);
}
.segment button[aria-selected="true"] { background: var(--surface); color: var(--action); box-shadow: var(--shadow-soft); }

.field-group { margin-top: var(--s-4); display: grid; gap: var(--s-3); }
.field { display: grid; gap: 6px; }
.field label { font-size: var(--fs-sm); font-weight: 500; color: var(--ink); }
.field .control {
  display: flex; align-items: center; gap: 10px;
  min-height: 50px; padding: 0 14px;
  background: var(--surface); border: 1px solid var(--control-border); border-radius: var(--r-control);
  transition: border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.field .control:focus-within { border-color: var(--action); box-shadow: 0 0 0 3px rgb(0 108 128 / 0.15); }
.field .control svg { width: 18px; height: 18px; color: var(--muted); flex: none; }
.field input, .field select {
  border: 0; outline: 0; background: transparent; width: 100%;
  font-family: inherit; font-size: var(--fs-body); color: var(--ink);
}
.field input::placeholder { color: #8A979B; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.quote-actions { margin-top: var(--s-5); }
.quote-reassure { margin-top: var(--s-3); font-size: var(--fs-xs); color: var(--muted); text-align: center; }

.hidden { display: none !important; }

/* ---------- Trust band ---------- */
.trust-band { background: var(--ink); color: #DFE9EA; }
.trust-band .container { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-7); align-items: center; justify-content: space-between; padding-block: var(--s-5); }
.trust-item { display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-sm); }
.trust-item svg { width: 20px; height: 20px; color: var(--aqua-on-dark); flex: none; }
.trust-item strong { color: #fff; font-weight: 600; }
.stars { color: #E9B949; letter-spacing: 1px; }

/* ---------- Service choices ---------- */
.service-grid { margin-top: var(--s-7); display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(16px, 2vw, 28px); }
.service-card {
  position: relative; display: flex; flex-direction: column;
  border-radius: var(--r-photo); overflow: hidden; background: var(--ink);
  color: #F3F8F8; min-height: 340px; isolation: isolate;
  text-decoration: none;
}
.service-card:hover { text-decoration: none; }
.service-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s var(--ease); }
.service-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(11 19 21 / 0.90) 6%, rgb(11 19 21 / 0.55) 46%, rgb(11 19 21 / 0.56) 82%, rgb(11 19 21 / 0.58) 100%); }
.service-card:hover img { transform: scale(1.04); }
.service-body { margin-top: auto; padding: clamp(20px, 2vw, 28px); }
.service-body h3 { font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; }
.service-body p { margin-top: 8px; font-size: var(--fs-sm); color: #CBD9DB; max-width: 34ch; }
.service-body .link-arrow { margin-top: var(--s-4); color: var(--aqua-on-dark); }

/* ---------- Split feature ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.split.reverse .split-media { order: 2; }
.split-media img { border-radius: var(--r-photo); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--shadow-soft); }
.split-body h2 { font-family: var(--serif); font-size: var(--fs-h2); line-height: 1.2; letter-spacing: -0.01em; }
.split-body .lead { margin-top: var(--s-4); }

.feature-list { margin-top: var(--s-6); display: grid; gap: var(--s-5); padding: 0; list-style: none; }
.feature-list li { display: grid; grid-template-columns: 28px 1fr; gap: var(--s-4); align-items: start; }
.feature-ico { width: 28px; height: 28px; color: var(--action); }
.feature-list h3 { font-size: 1.0625rem; font-weight: 600; }
.feature-list p { margin-top: 3px; font-size: var(--fs-sm); color: var(--muted); }

/* ---------- Fleet ---------- */
.fleet-grid { margin-top: var(--s-7); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 24px); }
.fleet-card { background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-panel); overflow: hidden; box-shadow: var(--shadow-soft); display: flex; flex-direction: column; }
.fleet-figure { aspect-ratio: 16 / 10; background: linear-gradient(160deg, #EAF1F2, #DCE7E9); position: relative; }
.fleet-figure img { width: 100%; height: 100%; object-fit: cover; }
.fleet-info { padding: var(--s-5); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.fleet-info h3 { font-family: var(--serif); font-size: 1.375rem; font-weight: 500; }
.fleet-models { font-size: var(--fs-sm); color: var(--muted); min-height: 2.7em; }
.fleet-cap { margin-top: 6px; display: flex; gap: var(--s-5); font-size: var(--fs-sm); }
.fleet-cap span { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); }
.fleet-cap svg { width: 18px; height: 18px; color: var(--action); }
.fleet-info .btn { margin-top: var(--s-4); }

/* ---------- Stats / coverage ---------- */
.panel-dark { background: var(--ink); color: #E6EEEF; border-radius: 0; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 40px); }
.stat .num { font-family: var(--serif); font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem); line-height: 1; color: #fff; font-weight: 500; }
.stat .lbl { margin-top: 10px; font-size: var(--fs-sm); color: #B7C6C8; }

/* ---------- Reviews ---------- */
.reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 24px); margin-top: var(--s-7); }
.review-card { background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-panel); padding: var(--s-6); box-shadow: var(--shadow-soft); display: flex; flex-direction: column; gap: var(--s-4); }
.review-card .stars { font-size: 1rem; }
.review-card blockquote { margin: 0; font-size: 1.0625rem; line-height: 1.55; }
.review-card figcaption { font-size: var(--fs-sm); color: var(--muted); margin-top: auto; }
.review-card figcaption strong { color: var(--ink); font-weight: 600; }

/* ---------- CTA band ---------- */
.cta-band { position: relative; color: #F4F9FA; background: var(--ink-900); overflow: hidden; }
.cta-band .bg { position: absolute; inset: 0; }
.cta-band .bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; }
.cta-band .bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(9 17 19 / 0.9), rgb(9 17 19 / 0.55)); }
.cta-band .container { position: relative; z-index: 1; }
.cta-inner { max-width: 54ch; }
.cta-inner h2 { font-family: var(--serif); font-size: var(--fs-h2); line-height: 1.2; font-weight: 500; }
.cta-inner p { margin-top: var(--s-4); font-size: var(--fs-lead); color: #D3E0E2; }
.cta-actions { margin-top: var(--s-6); display: flex; flex-wrap: wrap; gap: var(--s-4); }

/* ---------- Footer ---------- */
.footer { background: var(--ink); color: #B7C6C8; padding-block: var(--s-9) var(--s-6); }
.footer a { color: #CFDBDC; }
.footer a:hover { color: #fff; }
.footer-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); padding-bottom: var(--s-7); border-bottom: 1px solid rgb(255 255 255 / 0.10); }
.footer-brand .brand { color: #fff; }
.footer-brand p { margin-top: var(--s-4); font-size: var(--fs-sm); max-width: 34ch; }
.footer-contact { margin-top: var(--s-5); display: grid; gap: 8px; font-size: var(--fs-sm); }
.footer-contact a { display: inline-flex; align-items: center; gap: 10px; }
.footer-col h4 { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #8DA0A3; margin-bottom: var(--s-4); }
.footer-col ul { list-style: none; padding: 0; display: grid; gap: 12px; font-size: var(--fs-sm); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6); align-items: center; justify-content: space-between; padding-top: var(--s-6); font-size: var(--fs-xs); color: #8DA0A3; }
.footer-bottom .legal-links { display: flex; flex-wrap: wrap; gap: var(--s-5); }
.footer-note { margin-top: var(--s-4); font-size: var(--fs-xs); color: #7B8E91; max-width: 80ch; }

/* ---------- Breadcrumb ---------- */
.breadcrumb { font-size: var(--fs-sm); color: var(--muted); padding-top: 96px; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; }
.breadcrumb li::after { content: "\203A"; margin-left: 8px; color: var(--divider); }
.breadcrumb li:last-child::after { content: ""; }
.breadcrumb a { color: var(--muted); }

/* ---------- FAQ ---------- */
.faq { max-width: 820px; margin-top: var(--s-6); }
.faq details { border-bottom: 1px solid var(--hairline); }
.faq summary { list-style: none; cursor: pointer; padding: var(--s-5) 44px var(--s-5) 0; position: relative; font-size: 1.0625rem; font-weight: 600; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; border-right: 2px solid var(--action); border-bottom: 2px solid var(--action); transform: translateY(-70%) rotate(45deg); transition: transform .2s var(--ease); }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq .faq-body { padding: 0 44px var(--s-5) 0; color: var(--muted); }

/* ---------- Card grid / info cards ---------- */
.card-grid { margin-top: var(--s-7); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 24px); }
.card-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.card-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.info-card { background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-panel); padding: var(--s-6); box-shadow: var(--shadow-soft); display: flex; flex-direction: column; gap: 10px; }
a.info-card { color: var(--ink); }
a.info-card:hover { border-color: var(--control-border); text-decoration: none; box-shadow: var(--shadow-form); }
.info-card .ic-ico { width: 30px; height: 30px; color: var(--action); margin-bottom: 4px; }
.info-card h3 { font-family: var(--serif); font-size: 1.375rem; font-weight: 500; }
.info-card p { font-size: var(--fs-sm); color: var(--muted); line-height: 1.55; }
.info-card .meta { font-size: var(--fs-sm); color: var(--ink); font-weight: 600; }
.info-card .link-arrow { margin-top: auto; padding-top: var(--s-3); color: var(--action); }

/* ---------- Numbered process steps (genuine sequences only) ---------- */
.steps { margin-top: var(--s-7); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 44px); }
.step-item { border-top: 2px solid var(--selected); padding-top: var(--s-4); }
.step-num { font-family: var(--serif); font-size: 1.5rem; color: var(--action); line-height: 1; }
.step-item h3 { margin-top: var(--s-3); font-size: 1.125rem; font-weight: 600; }
.step-item p { margin-top: 8px; font-size: var(--fs-sm); color: var(--muted); }
.on-dark .step-item { border-color: rgb(255 255 255 / 0.16); }
.on-dark .step-num { color: var(--aqua-on-dark); }
.on-dark .step-item p { color: #B7C6C8; }

/* ---------- Policy / note callout ---------- */
.callout { display: grid; grid-template-columns: 26px 1fr; gap: var(--s-4); align-items: start; background: var(--selected); border: 1px solid var(--divider); border-radius: var(--r-panel); padding: var(--s-5) var(--s-6); }
.callout svg { width: 26px; height: 26px; color: var(--action); }
.callout p { font-size: var(--fs-sm); color: var(--ink); }
.callout strong { font-weight: 600; }

/* ---------- Page hero (interior landing pages) ---------- */
.subhero { position: relative; color: #F4F9FA; background: var(--ink-900); overflow: hidden; }
.subhero .hero-media img { object-position: center 42%; }
.subhero .eyebrow { color: var(--aqua-on-dark); }

/* ---------- Prose page (legal / about) ---------- */
.page-head { padding-top: 128px; }
.page-head h1 { font-family: var(--serif); font-size: var(--fs-h1); line-height: 1.15; letter-spacing: -0.01em; max-width: 20ch; }
.page-head .lead { margin-top: var(--s-4); max-width: 56ch; }
.prose h2 { font-family: var(--serif); font-size: var(--fs-h3); margin-top: var(--s-7); margin-bottom: var(--s-3); font-weight: 500; }
.prose h3 { font-size: 1.0625rem; font-weight: 600; margin-top: var(--s-5); margin-bottom: var(--s-2); }
.prose ul { padding-left: 1.2em; display: grid; gap: 8px; margin-top: var(--s-3); }
.prose a { text-decoration: underline; }

/* ---------- Contact form ---------- */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); }
.form-grid .full { grid-column: 1 / -1; }
.form-field { display: grid; gap: 6px; }
.form-field label { font-size: var(--fs-sm); font-weight: 500; }
.form-field input, .form-field select, .form-field textarea {
  font-family: inherit; font-size: var(--fs-body); color: var(--ink);
  min-height: 50px; padding: 12px 14px; background: var(--surface);
  border: 1px solid var(--control-border); border-radius: var(--r-control); width: 100%;
}
.form-field textarea { min-height: 128px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 0; border-color: var(--action); box-shadow: 0 0 0 3px rgb(0 108 128 / 0.15); }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }

@media (max-width: 860px) {
  .card-grid, .card-grid.cols-2, .card-grid.cols-4 { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .card-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Stepper ---------- */
.stepper { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); margin-top: var(--s-5); list-style: none; padding: 0; }
.stepper li { display: flex; align-items: center; gap: 10px; font-size: var(--fs-sm); color: var(--muted); }
.stepper .n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--selected); color: var(--muted); font-weight: 600; font-size: 0.8125rem; }
.stepper li.active { color: var(--ink); font-weight: 600; }
.stepper li.active .n { background: var(--action); color: #fff; }
.stepper li:not(:last-child)::after { content: ""; width: 24px; height: 1px; background: var(--divider); }

.quote-layout { display: grid; grid-template-columns: 1.35fr 0.9fr; gap: clamp(24px, 3.5vw, 48px); align-items: start; margin-top: var(--s-7); }
.summary-side { position: sticky; top: 96px; display: grid; gap: var(--s-4); }
.summary-card { background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-panel); padding: var(--s-6); box-shadow: var(--shadow-soft); }
.summary-card h3 { font-size: 1.0625rem; font-weight: 600; }
.notice-success { display: none; background: #E4ECE3; border: 1px solid #BcCEBE; border-radius: var(--r-panel); padding: var(--s-6); margin-top: var(--s-6); }
.notice-success.show { display: block; }
.notice-success .ns-head { display: flex; align-items: center; gap: 12px; }
.notice-success .ns-head svg { width: 28px; height: 28px; color: var(--success); flex: none; }
.notice-success h2 { font-family: var(--serif); font-size: var(--fs-h3); color: var(--success); font-weight: 500; }
@media (max-width: 860px) {
  .quote-layout { grid-template-columns: 1fr; }
  .summary-side { position: static; }
}

/* ---------- Misc ---------- */
.center { text-align: center; margin-inline: auto; }
.mt-6 { margin-top: var(--s-6); }
.divider-line { height: 1px; background: var(--hairline); border: 0; }

/* ---------- Mobile menu ---------- */
.mobile-nav { position: fixed; inset: 0; z-index: 150; background: var(--ink-900); color: #EAF2F3; display: flex; flex-direction: column; padding: 20px var(--gutter) 40px; transform: translateY(-100%); transition: transform .3s var(--ease); overflow-y: auto; }
.mobile-nav.open { transform: translateY(0); }
.mobile-nav-head { display: flex; align-items: center; justify-content: space-between; height: 60px; }
.mobile-nav .brand { color: #fff; }
.mobile-nav ul { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 4px; }
.mobile-nav ul a { color: #EAF2F3; font-size: 1.375rem; font-family: var(--serif); font-weight: 500; padding: 12px 0; display: block; border-bottom: 1px solid rgb(255 255 255 / 0.08); }
.mobile-nav .mobile-actions { margin-top: 28px; display: grid; gap: 12px; }
.icon-btn { appearance: none; background: transparent; border: 0; color: inherit; cursor: pointer; padding: 8px; display: inline-flex; border-radius: 8px; }
.icon-btn svg { width: 26px; height: 26px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .nav-links { display: none; }
  .site-header .menu-toggle { display: inline-flex; }
  .nav { margin-left: auto; }
  .desktop-cta { display: none; }
  .mobile-only { display: inline-flex; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .hero-inner { grid-template-columns: 1fr; padding-top: clamp(104px, 16vh, 150px); }
  .hero-copy { max-width: 30ch; }
  .quote-card { order: 3; }
  .split { grid-template-columns: 1fr; }
  .split.reverse .split-media { order: 0; }
  .service-grid { grid-template-columns: 1fr; }
  .fleet-grid { grid-template-columns: 1fr; max-width: 420px; }
  .reviews { grid-template-columns: 1fr; }
  .fleet-grid, .reviews { margin-inline: auto; }
}
@media (max-width: 560px) {
  .field-row { grid-template-columns: 1fr; }
  .trust-band .container { justify-content: flex-start; gap: 14px 28px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .hero-proof { gap: 8px 16px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  .service-card:hover img { transform: none; }
}

/* Passenger-led homepage, September 2026 */
.home-page { --home-pale: oklch(96% .012 195); --home-white: oklch(99% .003 195); background:var(--home-white); }
body:has(.passenger-hero) .site-header { height:80px; background:var(--surface); color:var(--ink); box-shadow:none; }
body:has(.passenger-hero) .site-header .container { max-width:1440px; }
.home-page .container { max-width:1344px; }
.passenger-hero { margin-top:80px; position:relative; height: min(650px, 49vw); min-height:520px; color:var(--surface); overflow:hidden; }
.passenger-photo { width:100%; height:100%; object-fit:cover; object-position:center 44%; }
.passenger-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgb(12 20 23 / .43), transparent 65%); }
.passenger-copy { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding-bottom:30px; }
.hero-kicker { font-size:11px; letter-spacing:.19em; font-weight:600; margin-bottom:25px; }
.passenger-copy h1 { font-family:var(--serif); font-size:clamp(48px,4.7vw,76px); font-weight:500; letter-spacing:-.035em; line-height:1.09; max-width:11ch; }
.passenger-copy>p:last-child { font-size:17px; line-height:1.65; margin-top:26px; color:var(--surface); }
.hero-caption { position:absolute; bottom:68px; right:48px; font-size:10px; letter-spacing:.18em; color:var(--surface); }
.booking-wrap { position:relative; margin-top:-48px; z-index:2; }
.journey-bar { background:var(--home-white); border-radius:8px; box-shadow:0 10px 35px rgb(15 28 30 / .1); padding:20px 24px 14px; color:var(--ink); }
.journey-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.journey-bar .segment { margin:0; width:240px; padding:3px; border:0; border-radius:6px; }
.journey-bar .segment button { min-height:36px; font-size:13px; border-radius:4px; }
.journey-bar .segment button[aria-selected=true] { background:var(--ink); color:var(--surface); box-shadow:none; }
.journey-hint { font-size:12px; color:var(--muted); }
.journey-fields { display:grid; grid-template-columns:minmax(0,2.6fr) minmax(140px,.9fr) minmax(110px,.65fr) minmax(150px,.8fr); align-items:end; gap:12px; }
.journey-locations { display:grid; grid-template-columns:1fr 1fr; gap:12px; min-width:0; }
.journey-bar .field { min-width:0; gap:7px; }
.journey-bar .field label { font-size:11px; font-weight:600; }
.journey-bar .control { background:oklch(96% .006 195); border:1px solid transparent; border-radius:4px; min-height:51px; padding:0 12px; }
.journey-bar .control:focus-within { border-color:var(--action); }
.journey-bar input,.journey-bar select { font-size:13px; min-width:0; height:49px; }
.journey-bar input::placeholder { color:var(--muted); }
.journey-submit { min-height:51px; padding:12px; border-radius:4px; font-size:13px; gap:20px; }
.journey-footnote { color:var(--muted); font-size:10px; margin-top:12px; }
.service-assurance { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:30px; padding-bottom:35px; font-size:12px; color:var(--muted); }
.service-assurance>span::before { content:'✓'; color:var(--action); margin-right:9px; }
.service-assurance a { color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.home-services { padding:88px 0 76px; background:#fff; }
.home-page .eyebrow { font-size:10px; letter-spacing:.15em; font-weight:600; margin-bottom:20px; color:var(--action); }
.home-section-heading { display:flex; justify-content:space-between; align-items:end; gap:60px; margin-bottom:48px; }
.home-section-heading h2,.quiet-copy h2,.home-airports h2,.home-last h2 { font-family:var(--serif); font-size:clamp(36px,3.5vw,54px); line-height:1.15; letter-spacing:-.035em; font-weight:500; }
.home-section-heading>p { max-width:34ch; font-size:15px; line-height:1.8; color:var(--muted); padding-bottom:5px; }
.travel-stories { display:grid; grid-template-columns:1fr 1fr; gap:36px; }
.travel-story { color:var(--ink); }
.travel-story:hover { text-decoration:none; }
.story-photo { overflow:hidden; border-radius:5px; }
.story-photo img { width:100%; aspect-ratio:1.65; object-fit:cover; transition:transform .5s var(--ease); }
.travel-story:hover img { transform:scale(1.025); }
.story-content { padding:26px 0 0; }
.story-content .eyebrow { margin-bottom:12px; }
.story-content h3 { font-family:var(--serif); font-size:30px; line-height:1.2; letter-spacing:-.025em; }
.story-content>p:not(.eyebrow) { font-size:14px; line-height:1.8; color:var(--muted); margin-top:15px; max-width:47ch; }
.story-link { display:inline-block; color:var(--ink); font-size:13px; margin-top:22px; padding-bottom:5px; border-bottom:1px solid var(--ink); }
.other-journeys { margin-top:50px; display:flex; gap:32px; align-items:center; font-size:13px; border-top:1px solid var(--divider); padding-top:26px; }
.other-journeys>span { margin-right:auto; color:var(--muted); }
.other-journeys a { color:var(--ink); }
.chauffeur-difference { padding:100px 0 110px; background:#fff; }
.difference-heading { text-align:center; margin:0 auto 44px; }
.difference-eyebrow { display:flex; justify-content:center; align-items:center; gap:20px; color:#245c4d; font-size:13px; font-weight:500; letter-spacing:.06em; margin-bottom:20px; }
.difference-eyebrow::before,.difference-eyebrow::after { content:""; width:72px; height:1px; background:#245c4d; }
.difference-heading h2 { font-size:clamp(30px,3.1vw,46px); line-height:1.2; letter-spacing:-.045em; font-weight:400; }
.difference-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.difference-card { position:relative; display:block; height:390px; overflow:hidden; border-radius:6px; color:#fff; background:#15231e; isolation:isolate; }
.difference-card>img { width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.22,1,.36,1); }
.difference-card::after { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg,transparent 25%,rgba(8,20,15,.28) 50%,rgba(8,20,15,.92) 100%); transition:background-color .35s; }
.difference-content { position:absolute; z-index:1; left:22px; right:22px; bottom:25px; transform:translateY(100%); transition:transform .45s cubic-bezier(.22,1,.36,1); }
.difference-content h3 { position:absolute; bottom:100%; left:0; right:0; margin:0; padding-bottom:0; font-size:23px; font-weight:500; letter-spacing:-.035em; line-height:1.25; color:#fff; }
.difference-reveal { opacity:0; transition:opacity .25s; }
.difference-reveal p { padding-top:14px; font-size:13px; line-height:1.65; color:#f5f7f5; }
.difference-link { display:flex; justify-content:space-between; gap:10px; margin-top:17px; font-size:11px; font-weight:600; color:#d2e9dc; }
.difference-card:hover,.difference-card:focus-visible { color:#fff; }
.difference-card:hover>img,.difference-card:focus-visible>img { transform:scale(1.045); }
.difference-card:hover::after,.difference-card:focus-visible::after { background-color:rgba(8,20,15,.28); }
.difference-card:hover .difference-content,.difference-card:focus-visible .difference-content { transform:translateY(0); }
.difference-card:hover .difference-reveal,.difference-card:focus-visible .difference-reveal { opacity:1; }
.difference-card:focus-visible { outline:3px solid #245c4d; outline-offset:5px; }
@media(max-width:1050px) { .difference-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .difference-card { height:400px; } }
@media(max-width:600px) { .chauffeur-difference { padding:60px 0; } .difference-heading { margin-bottom:30px; } .difference-eyebrow { gap:12px; font-size:11px; letter-spacing:.02em; } .difference-eyebrow::before,.difference-eyebrow::after { width:30px; } .difference-grid { grid-template-columns:1fr; gap:16px; } .difference-card { height:390px; } .difference-content { transform:none; } .difference-reveal { opacity:1; } }
@media(hover:none),(pointer:coarse) { .difference-content { transform:none; } .difference-reveal { opacity:1; } .difference-card::after { background-color:rgba(8,20,15,.18); } }
@media(prefers-reduced-motion:reduce) { .difference-card>img,.difference-card::after,.difference-content,.difference-reveal { transition:none; } .difference-card:hover>img,.difference-card:focus-visible>img { transform:none; } }
.quiet-feature { padding:110px 0; }
.quiet-feature>.container { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; align-items:center; }
.quiet-copy>p:not(.eyebrow) { margin:25px 0 30px; font-size:15px; color:var(--muted); max-width:41ch; line-height:1.8; }
.quiet-feature img { width:100%; aspect-ratio:1.12; object-fit:cover; object-position:80%; border-radius:5px; }
.quiet-feature .btn { font-size:13px; border-radius:4px; }
.home-page .fleet-card { box-shadow:none; border-radius:5px; }
.home-page .fleet-figure { background:var(--surface-2); }
.home-page .fleet-info h3 { font-family:var(--sans); font-size:18px; }
.home-page .section:has(.fleet-grid) { padding-top:20px; padding-bottom:100px; }
.home-page .fleet-models { font-size:13px; }
.home-page .fleet-cap { font-size:12px; }
.home-page .fleet-info .btn { font-size:13px; }
.home-airports { background:var(--home-pale); padding:85px 0; }
.home-airports>.container { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.home-airports p:not(.eyebrow) { margin-top:20px; color:var(--muted); font-size:14px; }
.airport-links a { display:flex; align-items:center; justify-content:space-between; padding:22px 0; border-bottom:1px solid var(--divider); color:var(--ink); font-size:17px; }
.airport-links small { display:inline-block; min-width:48px; font-size:11px; color:var(--action); }
.airport-links a:last-child { border:0; font-size:13px; }
.home-last { text-align:center; padding:105px 0; }
.home-last h2 { font-size:clamp(42px,4vw,64px); margin-bottom:32px; }
.home-last .btn { font-size:14px; border-radius:4px; }
.last-contact { display:block; margin-top:22px; font-size:13px; color:var(--muted); }
.mobile-nav:not(.open) { visibility:hidden; }
.mobile-nav.open { visibility:visible; }
@media(min-width:1600px) { .passenger-copy { padding-left:70px; } }
@media(max-width:1100px) {
 .journey-fields { grid-template-columns:minmax(0,2.4fr) minmax(135px,.9fr) minmax(100px,.7fr); }
 .journey-submit { grid-column:1/-1; }
 .quiet-feature>.container { gap:50px; }
 .service-assurance a { display:none; }
 .hero-caption { display:none; }
}
@media(max-width:700px) {
 body:has(.passenger-hero) .site-header { height:68px; }
 .passenger-hero { margin-top:68px; min-height:0; height:480px; }
 .passenger-photo { object-position:67% center; }
 .passenger-shade { background:linear-gradient(0deg, rgb(12 20 23 / .7), transparent 72%); }
 .passenger-copy { justify-content:end; padding-bottom:34px; }
 .hero-kicker { font-size:9px; margin-bottom:15px; letter-spacing:.14em; }
 .passenger-copy h1 { font-size:43px; line-height:1.08; max-width:12ch; }
 .passenger-copy>p:last-child { font-size:13px; line-height:1.5; margin-top:17px; }
 .booking-wrap { margin-top:0; padding:0; }
 .journey-bar { padding:22px 24px 20px; border-radius:0; box-shadow:none; border-bottom:1px solid var(--hairline); }
 .journey-top { margin-bottom:20px; }
 .journey-hint { display:none; }
 .journey-bar .segment { width:100%; }
 .journey-bar .segment button { min-height:42px; }
 .journey-fields { grid-template-columns:1fr 1fr; gap:16px 12px; }
 .journey-locations { grid-column:1/-1; grid-template-columns:1fr; gap:16px; }
 .journey-bar .field label { font-size:12px; }
 .journey-bar input,.journey-bar select { font-size:14px; }
 .journey-submit { min-height:52px; font-size:14px; }
 .journey-footnote { font-size:10px; text-align:center; margin-top:15px; }
 .service-assurance { justify-content:center; padding-block:23px; gap:11px 20px; flex-wrap:wrap; font-size:10px; }
 .home-services { padding:55px 0; }
 .home-section-heading { display:block; margin-bottom:30px; }
 .home-section-heading h2,.quiet-copy h2,.home-airports h2 { font-size:36px; }
 .home-section-heading>p { font-size:14px; margin-top:22px; }
 .travel-stories { grid-template-columns:1fr; gap:44px; }
 .story-photo img { aspect-ratio:1.35; }
 .story-content { padding-top:22px; }
 .story-content h3 { font-size:28px; }
 .other-journeys { flex-wrap:wrap; gap:20px; margin-top:35px; }
 .other-journeys>span { width:100%; }
 .quiet-feature { padding:60px 0; }
 .quiet-feature>.container { grid-template-columns:1fr; gap:32px; }
 .quiet-feature img { aspect-ratio:1.2; }
 .home-page .section:has(.fleet-grid) { padding-top:10px; padding-bottom:60px; }
 .home-page .section-head .lead { font-size:14px; }
 .home-airports { padding:55px 0; }
 .home-airports>.container { grid-template-columns:1fr; gap:30px; }
 .home-last { padding:65px 0; }
}
@media(prefers-reduced-motion:reduce) { .travel-story:hover img { transform:none; } }
@media(min-width:701px) { .passenger-hero { height:570px; min-height:500px; } .passenger-copy h1 { max-width:14ch; } }
.story-photo img,.quiet-feature img { height:auto; }
.fleet-editorial { padding:15px 0 100px; }
.fleet-editorial .fleet-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; margin-top:42px; }
.fleet-editorial .fleet-scene { width:100%; height:auto; aspect-ratio:1.35; object-fit:cover; border-radius:5px; }
.class-list a { display:block; padding:25px 0; border-bottom:1px solid var(--divider); color:var(--ink); }
.class-list a:first-child { padding-top:0; }
.class-list h3 { display:flex; justify-content:space-between; font-size:19px; font-weight:500; }
.class-list p { margin-top:8px; font-size:13px; color:var(--muted); }
.class-list small { display:block; margin-top:12px; color:var(--action); font-size:11px; }
@media(max-width:700px) { .fleet-editorial { padding:10px 0 60px; } .fleet-editorial .fleet-layout { grid-template-columns:1fr; gap:30px; margin-top:30px; } }

/* Hero refinement: one full-screen photographic composition. */
body:has(.passenger-hero) .site-header { height:88px; background:transparent; color:var(--surface); box-shadow:none; }
body:has(.passenger-hero) .site-header .container { max-width:none; padding-inline:48px; }
body:has(.passenger-hero) .site-header:not(.scrolled) .brand-mark { color:var(--aqua-on-dark); }
body:has(.passenger-hero) .site-header:not(.scrolled) .btn-header { background:transparent; color:var(--surface); border-color:rgb(244 249 250 / .5); }
body:has(.passenger-hero) .site-header:not(.scrolled) .btn-header:hover { background:rgb(244 249 250 / .12); }
body:has(.passenger-hero) .site-header.scrolled { background:var(--surface); color:var(--ink); box-shadow:0 1px 0 var(--hairline); }
.passenger-hero { margin-top:0; height:auto; min-height:100svh; isolation:isolate; display:flex; align-items:center; }
.passenger-photo { position:absolute; inset:0; z-index:-2; object-position:center; }
.passenger-shade { z-index:-1; background:linear-gradient(180deg, rgb(10 18 20 / .4), transparent 25%, rgb(10 18 20 / .16) 55%, rgb(10 18 20 / .48)); }
.hero-composition { width:100%; padding:160px 0 64px; transform:translateY(5svh); }
.passenger-copy { position:static; padding:0 var(--gutter); display:block; text-align:center; }
.passenger-copy h1 { font-size:clamp(44px,5vw,76px); line-height:1.15; letter-spacing:-.035em; max-width:none; color:oklch(91% .034 190); text-wrap:balance; }
.passenger-copy>p:last-child { margin-top:18px; font-size:15px; line-height:1.6; color:var(--surface); }
.booking-wrap { margin-top:32px; max-width:1280px!important; }
.journey-bar { padding:0; border:0; background:transparent; box-shadow:none; }
.journey-top { justify-content:center; margin-bottom:22px; }
.journey-hint { display:none; }
.journey-bar .segment { width:252px; padding:4px; border:1px solid rgb(242 249 249 / .5); border-radius:999px; background:rgb(15 26 30 / .8); }
.journey-bar .segment button { border-radius:999px; min-height:36px; color:var(--surface); }
.journey-bar .segment button[aria-selected=true] { background:var(--action); color:var(--surface); }
.journey-fields { padding:20px 22px; border:1px solid rgb(242 249 249 / .5); border-radius:8px; background:rgb(15 26 30 / .87); color:var(--surface); gap:18px; grid-template-columns:minmax(0,2.5fr) minmax(135px,.85fr) minmax(100px,.65fr) minmax(140px,.8fr); }
.journey-bar .field { gap:2px; }
.journey-bar .field label { color:var(--surface); font-size:12px; font-weight:500; }
.journey-locations { gap:18px; }
.journey-bar .control { background:transparent; border:0; border-bottom:1px solid rgb(242 249 249 / .5); border-radius:0; min-height:39px; padding:0; color-scheme:dark; }
.journey-bar .control:focus-within { border-color:var(--aqua-on-dark); box-shadow:none; }
.journey-bar input,.journey-bar select { height:39px; color:var(--surface); font-size:14px; }
.journey-bar select option { background:var(--ink); }
.journey-bar input::placeholder { color:oklch(82% .01 195); }
.journey-submit { grid-column:auto; min-height:44px; align-self:center; border-radius:5px; font-size:14px; }
.journey-footnote { margin-top:14px; text-align:center; color:oklch(89% .006 195); font-size:11px; }
.hero-caption { bottom:25px; right:48px; font-size:9px; }
.passenger-hero :focus-visible { outline-color:var(--aqua-on-dark); }
@media(min-width:701px) and (max-width:1000px) {
 .journey-fields { grid-template-columns:1fr 1fr 1fr; }
 .journey-locations { grid-column:1/-1; }
 .hero-composition { padding-top:120px; transform:none; }
}
@media(max-width:700px) {
 body:has(.passenger-hero) .site-header { height:72px; }
 body:has(.passenger-hero) .site-header .container { padding-inline:24px; }
 .passenger-hero { min-height:100svh; height:auto; align-items:end; }
 .passenger-photo { object-position:66% center; }
 .passenger-shade { background:linear-gradient(180deg,rgb(10 18 20 / .45),transparent 24%,rgb(10 18 20 / .3) 42%,rgb(10 18 20 / .72)); }
 .hero-composition { padding:clamp(140px,27svh,260px) 0 34px; transform:none; }
 .passenger-copy h1 { max-width:13ch; margin-inline:auto; font-size:clamp(32px,9vw,43px); }
 .passenger-copy>p:last-child { font-size:12px; margin:12px auto 0; max-width:30ch; }
 .booking-wrap { margin-top:24px; padding-inline:24px; }
 .journey-top { margin-bottom:16px; }
 .journey-bar .segment { width:244px; }
 .journey-bar .segment button { min-height:32px; font-size:12px; }
 .journey-fields { grid-template-columns:1fr 1fr; gap:12px; padding:16px; border-radius:7px; }
 .journey-locations { grid-column:1/-1; gap:12px; }
 .journey-bar .field label { font-size:10px; }
 .journey-bar input,.journey-bar select { height:32px; font-size:16px; }
 .journey-bar .control { min-height:32px; }
 .journey-submit { grid-column:1/-1; min-height:44px; }
 .journey-footnote { font-size:9px; margin-top:12px; }
 .hero-caption { display:none; }
}
@media(max-height:700px) and (max-width:700px) {
 .hero-composition { padding-top:105px; padding-bottom:22px; }
 .passenger-copy>p:last-child { display:none; }
 .booking-wrap { margin-top:20px; }
}
@media(min-width:701px) {
 .passenger-shade { background:linear-gradient(180deg,rgb(10 18 20 / .72) 0, rgb(10 18 20 / .35) 88px,transparent 180px),linear-gradient(180deg,transparent 25%,rgb(10 18 20 / .16) 55%,rgb(10 18 20 / .48)); }
}

/* Shared hero system: white typography and more space before controls. */
.passenger-copy h1,.passenger-copy .hero-kicker,.passenger-copy>p:last-child { color:var(--surface); }
.booking-wrap { margin-top:52px; }
.journey-top { margin-bottom:28px; }
.page-hero .passenger-copy h1 { max-width:23ch; margin-inline:auto; font-size:clamp(42px,4.7vw,68px); }
.page-hero .passenger-copy>p:last-child { max-width:64ch; margin-inline:auto; }
.page-hero .hero-kicker { text-transform:uppercase; margin-bottom:18px; font-size:11px; letter-spacing:.15em; }
.page-hero .hero-actions { justify-content:center; margin:52px auto 0; padding-inline:24px; }
.page-hero .hero-actions .btn { color:var(--surface); background:var(--action); border-color:var(--action); font-size:14px; border-radius:5px; }
.page-hero .hero-actions .btn-ghost-dark { background:rgb(15 26 30 / .65); border-color:rgb(242 249 249 / .5); }
.page-hero .hero-actions .btn:hover { background:var(--action-hover); }
.page-hero .passenger-shade { background:linear-gradient(180deg,rgb(10 18 20 / .72) 0,rgb(10 18 20 / .3) 25%,rgb(10 18 20 / .5) 55%,rgb(10 18 20 / .6)); }
@media(max-width:700px) {
 .booking-wrap { margin-top:36px; }
 .journey-top { margin-bottom:22px; }
 .hero-composition { padding-bottom:28px; }
 .page-hero .passenger-copy h1 { font-size:clamp(30px,8.5vw,39px); max-width:18ch; }
 .page-hero .passenger-copy>p:last-child { font-size:12px; max-width:42ch; }
 .page-hero .hero-kicker { font-size:9px; margin-bottom:12px; }
 .page-hero--booking .hero-composition { padding-top:110px; }
 .page-hero--simple { align-items:center; }
 .page-hero--simple .hero-composition { padding:110px 0 70px; }
 .page-hero .hero-actions { margin-top:36px; gap:12px; }
 .page-hero .hero-actions .btn { min-height:46px; padding:12px 18px; font-size:13px; }
}
@media(max-height:700px) and (max-width:700px) {
 .booking-wrap { margin-top:30px; }
 .page-hero--booking .hero-composition { padding-top:90px; }
 .page-hero--booking .passenger-copy>p:last-child { display:none; }
}

/* London Chauffeur: clean sans typography and a distinct green identity. */
:root {
 --sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
 --serif:var(--sans);
 --action:#245C4D;
 --action-hover:#1B483C;
 --action-pressed:#123A2F;
 --aqua:#357C66;
 --aqua-on-dark:#C8E4D6;
 --ink:#15231E;
 --ink-900:#101A16;
 --ink-800:#14241E;
 --canvas:#FAFBFA;
 --surface:#FAFCFB;
 --surface-2:#EFF3F0;
 --selected:#E6EEE9;
 --control-border:#81948A;
 --hairline:#DFE7E1;
 --divider:#CDD9D0;
 --muted:#56665E;
}
.home-page { --home-pale:#EEF3EF; --home-white:#FFFFFF; }
h1,h2,h3 { font-weight:500; }
.passenger-copy h1 { font-weight:400; letter-spacing:-.055em; font-size:clamp(43px,5vw,72px); }
.page-hero .passenger-copy h1 { font-weight:400; letter-spacing:-.05em; }
.home-section-heading h2,.quiet-copy h2,.home-airports h2,.home-last h2,.section-head h2,.split-body h2,.page-head h1 { font-weight:500; letter-spacing:-.045em; }
.story-content h3 { font-weight:500; letter-spacing:-.035em; font-size:28px; line-height:1.25; }
.eyebrow,.hero-kicker { font-weight:600; }
.brand,.nav .brand { display:inline-flex; flex-direction:column; align-items:center; gap:5px; color:inherit; font-family:var(--sans); opacity:1; line-height:1; text-decoration:none; }
.brand-city { font-size:23px; letter-spacing:.18em; font-weight:500; padding-left:.18em; }
.brand-service { font-size:9px; letter-spacing:.38em; font-weight:600; padding-left:.38em; }
.site-header,.site-header.scrolled,body:has(.passenger-hero) .site-header { height:96px; }
.site-header .container { max-width:none; padding-inline:clamp(24px,3.3vw,56px); }
.nav-balanced { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); width:100%; margin:0; gap:40px; }
.nav-balanced .nav-links { display:flex; gap:clamp(20px,2.3vw,36px); }
.nav-balanced .nav-right { justify-content:flex-end; }
.nav-balanced .nav-links>a { font-size:10px; letter-spacing:.13em; text-transform:uppercase; font-weight:600; opacity:.88; white-space:nowrap; }
.nav-balanced .nav-links>a:hover { opacity:1; }
.nav-balanced .nav-links>.btn { min-height:40px; padding:12px 20px; border-radius:3px; opacity:1; }
.nav a[data-nav].active::after { height:1px; bottom:-8px; }
body:has(.passenger-hero) .site-header:not(.scrolled) .nav-balanced .btn-header { background:rgb(16 26 22 / .22); }
.journey-bar .segment button[aria-selected=true],.journey-submit { background:var(--action); }
.journey-bar .segment { background:rgb(16 26 22 / .82); }
.journey-fields { background:rgb(16 26 22 / .88); }
.journey-submit:hover { background:var(--action-hover); }
.field .control:focus-within,.form-field input:focus,.form-field select:focus,.form-field textarea:focus { box-shadow:0 0 0 3px rgb(36 92 77 / .14); }
.passenger-hero .field .control:focus-within { box-shadow:none; border-color:var(--aqua-on-dark); }
.footer .brand { align-items:flex-start; }
.footer .brand-city,.footer .brand-service { padding-left:0; }
@media(max-width:1100px) {
 .nav-balanced { gap:22px; }
 .nav-balanced .nav-links { gap:20px; }
 .nav-balanced .nav-links>a { font-size:9px; }
 .brand-city { font-size:21px; }
}
@media(max-width:900px) {
 .site-header,.site-header.scrolled,body:has(.passenger-hero) .site-header { height:76px; }
 .nav-balanced { display:flex; justify-content:flex-start; }
 .nav-balanced .nav-links { display:none; }
 .site-header .menu-toggle { display:inline-flex; margin-left:auto; }
 .brand-city { font-size:20px; }
 .brand-service { font-size:8px; }
 .passenger-copy h1 { font-size:clamp(34px,8.5vw,52px); letter-spacing:-.05em; }
 .page-hero .passenger-copy h1 { font-size:clamp(30px,8vw,39px); }
 .home-section-heading h2,.quiet-copy h2,.home-airports h2 { font-size:34px; }
 .story-content h3 { font-size:26px; }
 .mobile-nav ul a { font-family:var(--sans); font-size:22px; font-weight:400; letter-spacing:-.02em; }
}
@media(min-width:901px) { .site-header .menu-toggle { display:none; } }

/* Compact solid navigation and an interactive fleet editorial. */
.site-header.scrolled,body:has(.passenger-hero) .site-header.scrolled { height:64px; }
.site-header.scrolled .brand { transform:scale(.86); transform-origin:center; }
.site-header .brand { transition:transform 250ms ease-out; }
.fleet-images { position:relative; aspect-ratio:1.5; overflow:hidden; border-radius:4px; background:var(--surface-2); }
.fleet-editorial .fleet-images .fleet-scene { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; opacity:0; transform:scale(1.035); transition:opacity 550ms cubic-bezier(.22,1,.36,1),transform 800ms cubic-bezier(.22,1,.36,1); border-radius:0; }
.fleet-editorial .fleet-images .fleet-scene.is-active { opacity:1; transform:scale(1); }
.class-choice { display:block; width:100%; text-align:left; padding:26px 0; border:0; border-bottom:1px solid var(--divider); background:transparent; color:var(--muted); cursor:pointer; font-family:inherit; }
.class-title { display:block; font-size:24px; line-height:1.35; letter-spacing:-.035em; transform:scale(.84); transform-origin:left center; transition:transform 450ms cubic-bezier(.22,1,.36,1),color 350ms ease-out; }
.class-choice.is-active .class-title { transform:scale(1.12); color:var(--ink); }
.class-model { display:block; margin-top:12px; font-size:13px; }
.class-capacity { display:block; margin-top:10px; font-size:10px; letter-spacing:.07em; color:var(--action); }
.class-choice:not(.is-active) .class-model,.class-choice:not(.is-active) .class-capacity { opacity:.7; }
.class-list .fleet-explore { display:flex; justify-content:space-between; padding:22px 0 0; border:0; color:var(--action); font-size:13px; }
@media(max-width:900px) { .site-header.scrolled,body:has(.passenger-hero) .site-header.scrolled { height:60px; } .site-header.scrolled .brand { transform-origin:left center; } }
@media(max-width:700px) { .class-choice { padding:22px 0; } .class-title { font-size:23px; } .fleet-editorial .fleet-layout { gap:12px; } }
@media(prefers-reduced-motion:reduce) { .fleet-editorial .fleet-images .fleet-scene,.class-title,.site-header .brand { transition:none; } }
.class-title { width:fit-content; max-width:88%; }
body[data-header="light"] .site-header { height:64px; }
@media(max-width:900px) { body[data-header="light"] .site-header { height:60px; } }

/* Homepage cinematic slideshow. */
[data-hero-slideshow] { overflow:hidden; }
[data-hero-slideshow] .hero-slide { opacity:0; transform:translateX(2%) scale(1.045); transition:opacity 1400ms cubic-bezier(.22,1,.36,1),transform 1800ms cubic-bezier(.22,1,.36,1); }
[data-hero-slideshow] .hero-slide.is-active { opacity:1; transform:translateX(0) scale(1.045); }
[data-hero-slideshow] .passenger-shade { background:linear-gradient(180deg,rgb(10 18 20 / .48),rgb(10 18 20 / .22) 28%,rgb(10 18 20 / .38) 62%,rgb(10 18 20 / .66)); }
.hero-playback { position:absolute; right:48px; bottom:22px; color:var(--surface); text-align:right; }
.hero-experience { font-size:9px; letter-spacing:.17em; color:inherit; }
.hero-progress { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin-top:3px; }
.hero-progress-line { position:relative; border:0; padding:0; width:82px; height:30px; background:transparent; cursor:pointer; }
.hero-progress-line::before,.hero-progress-line>span { position:absolute; top:14px; left:0; width:100%; height:2px; background:rgb(255 255 255 / .35); }
.hero-progress-line::before { content:''; }
.hero-progress-line>span { background:white; transform:scaleX(0); transform-origin:left; }
.hero-pause { display:grid; place-items:center; width:32px; height:32px; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
.hero-pause svg { fill:none; stroke:currentColor; stroke-width:1.5; }
.hero-pause .play-symbol { display:none; }
.hero-pause.is-paused .pause-symbol { display:none; }
.hero-pause.is-paused .play-symbol { display:block; }
@media(max-width:700px) {
 .hero-playback { right:24px; bottom:10px; }
 .hero-experience { font-size:8px; letter-spacing:.12em; }
 .hero-progress-line { width:70px; }
 [data-hero-slideshow] .hero-composition { padding-top:120px; padding-bottom:90px; }
}
@media(max-width:700px) and (max-height:700px) {
 [data-hero-slideshow] .hero-composition { padding-top:92px; padding-bottom:80px; }
}
@media(prefers-reduced-motion:reduce) { [data-hero-slideshow] .hero-slide { transition:none; transform:none; } [data-hero-slideshow] .hero-slide.is-active { transform:none; } }

/* A deeper green for the London airport connections section. */
.home-airports { background:oklch(25% .035 160); color:var(--surface); }
.home-airports h2,.home-airports .airport-links a { color:var(--surface); }
.home-airports p:not(.eyebrow) { color:oklch(84% .015 160); }
.home-airports .eyebrow,.home-airports .airport-links small { color:var(--aqua-on-dark); }
.home-airports .airport-links a { border-color:oklch(43% .025 160); transition:color 180ms ease-out; }
.home-airports .airport-links a:hover { color:var(--aqua-on-dark); }
.home-airports :focus-visible { outline-color:var(--aqua-on-dark); }

/* Centred airport destination cards. */
.home-airports { padding:100px 0 90px; }
.home-airports>.container { display:block; text-align:center; max-width:1240px; }
.airport-intro { margin:0 auto 44px; }
.home-airports .airport-intro h2 { margin-inline:auto; }
.home-airports .airport-intro p:not(.eyebrow) { margin-top:18px; }
.airport-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.airport-card { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:238px; padding:36px 24px; border:1px solid oklch(43% .025 160); border-radius:5px; background:oklch(29% .035 160); color:var(--surface); transition:background 220ms ease-out,border-color 220ms ease-out; }
.airport-card:hover { background:oklch(34% .04 160); border-color:var(--aqua-on-dark); }
.airport-code { font-size:13px; font-weight:500; letter-spacing:.19em; color:var(--aqua-on-dark); }
.airport-card h3 { margin-top:22px; color:var(--surface); font-size:26px; letter-spacing:-.035em; }
.airport-card-link { display:flex; gap:16px; align-items:center; margin-top:28px; font-size:12px; color:oklch(87% .015 160); }
.airport-all { display:inline-flex; gap:20px; align-items:center; margin-top:36px; font-size:13px; color:var(--surface); }
.airport-all:hover { color:var(--aqua-on-dark); }
@media(max-width:700px) {
 .home-airports { padding:70px 0; }
 .airport-intro { margin-bottom:32px; }
 .airport-cards { grid-template-columns:1fr; gap:16px; }
 .airport-card { min-height:205px; padding:28px 20px; }
 .airport-card h3 { font-size:25px; margin-top:16px; }
 .airport-card-link { margin-top:22px; }
}

/* An illustrated invitation, woven into the closing headline. */
.home-last { padding:110px 0 100px; background:var(--surface); }
.home-last>.container { max-width:1300px; }
.home-last .journey-invitation { font-size:clamp(42px,4.6vw,68px); line-height:1.12; margin:32px 0 22px; }
.journey-heading-row { display:flex; align-items:center; justify-content:center; gap:25px; }
.journey-heading-row>span { white-space:nowrap; }
.journey-heading-row img { width:260px; height:148px; flex:none; object-fit:cover; object-position:center 68%; border-radius:80px; }
.journey-heading-end { display:block; margin-top:15px; }
.journey-invitation-copy { max-width:48ch; margin:0 auto 30px; font-size:14px; line-height:1.8; color:var(--muted); }
.home-last .last-contact { margin-top:20px; }
@media(min-width:701px) and (max-width:1000px) { .journey-heading-row { gap:16px; } .journey-heading-row img { width:200px; height:118px; } }
@media(max-width:700px) {
 .home-last { padding:70px 0; }
 .home-last .journey-invitation { font-size:39px; margin-top:26px; }
 .journey-heading-row { flex-wrap:wrap; gap:8px 12px; }
 .journey-heading-row img { order:-1; width:100%; max-width:280px; height:150px; margin:0 calc((100% - 280px)/2) 14px; }
 .journey-heading-end { margin-top:6px; }
 .journey-invitation-copy { font-size:13px; margin-bottom:26px; }
}
/* Small location image set directly into the headline. */
.journey-heading-row { gap:18px; flex-wrap:nowrap; }
.journey-heading-row img { width:86px; height:66px; border-radius:18px; object-position:58% 75%; margin:0; order:0; }
@media(max-width:1000px) and (min-width:701px) { .journey-heading-row img { width:72px; height:58px; } }
@media(max-width:700px) {
 .home-last .journey-invitation { font-size:clamp(26px,7.4vw,39px); }
 .journey-heading-row { gap:9px; }
 .journey-heading-row img { width:50px; height:44px; max-width:none; margin:0; order:0; border-radius:12px; }
}

/* Location artwork expands above the headline without shifting its words. */
.journey-heading-row { position:relative; }
.location-preview { position:relative; z-index:2; display:block; width:124px; height:110px; flex:none; padding:0; border:0; background:transparent; border-radius:22px; cursor:zoom-in; }
.journey-heading-row .location-preview img { position:absolute; inset:0; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:center; border-radius:22px; pointer-events:none; transform:scale(1); transition:transform 550ms cubic-bezier(.22,1,.36,1),box-shadow 550ms ease-out; }
.location-preview[aria-expanded="true"] { cursor:zoom-out; }
.location-preview[aria-expanded="true"] img { transform:scale(3.8); box-shadow:0 8px 28px rgb(16 26 22 / .16); }
@media(hover:hover) { .location-preview:hover img { transform:scale(3.8); box-shadow:0 8px 28px rgb(16 26 22 / .16); } }
@media(max-width:700px) {
 .location-preview { width:70px; height:66px; border-radius:14px; }
 .journey-heading-row .location-preview img { border-radius:14px; }
 .location-preview[aria-expanded="true"] img { transform:scale(3.6); }
}
@media(prefers-reduced-motion:reduce) { .journey-heading-row .location-preview img { transition:none; } }

/* Quiet, consistent interaction motion across the homepage. */
.home-page .btn { transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,transform 160ms cubic-bezier(.22,1,.36,1); }
.home-page .btn:active { transform:scale(.98); }
.home-page .story-photo img { transition:transform 850ms cubic-bezier(.22,1,.36,1); }
.home-page .airport-card { transition:transform 250ms cubic-bezier(.22,1,.36,1),background-color 220ms ease,border-color 220ms ease; }
.home-page .last-contact,.home-page .airport-all,.home-page .fleet-explore { text-underline-offset:5px; text-decoration-thickness:1px; }
@media(hover:hover) and (pointer:fine) {
 .home-page .travel-story:hover .story-photo img { transform:scale(1.035); }
 .home-page .airport-card:hover { transform:translateY(-4px); }
 .home-page .last-contact:hover,.home-page .airport-all:hover,.home-page .fleet-explore:hover { text-decoration:underline; }
}
@media(prefers-reduced-motion:reduce) {
 .home-page .btn,.home-page .story-photo img,.home-page .airport-card { transition:none; }
 .home-page .btn:active,.home-page .airport-card:hover,.home-page .travel-story:hover .story-photo img { transform:none; }
}

/* Slower grouped reveals: no per-word or per-field entrances. */
.motion-prepared { opacity:0; transform:translateY(10px); }
[data-hero-slideshow] .hero-slide,
[data-hero-slideshow] .hero-slide.is-active { transform:none; transition:opacity 2200ms cubic-bezier(.4,0,.2,1); }
.home-page .airport-card:hover { transform:none; }
@media(prefers-reduced-motion:reduce) {
 .motion-prepared { opacity:1; transform:none; }
 [data-hero-slideshow] .hero-slide { transition:none; }
}

/* A calm, visual journey from route to review. */
.booking-page{background:#fafbf9;padding:116px 0 100px;min-height:100vh}.booking-container{max-width:1360px}.booking-page [hidden]{display:none!important}.booking-progress{list-style:none;display:flex;padding:0;gap:0;border-bottom:1px solid #dbe2dd;margin:0 0 52px}.booking-progress li{flex:1}.booking-progress button{border:0;border-bottom:2px solid transparent;background:none;width:100%;padding:18px 0;text-align:left;color:#64746a;font:500 13px var(--sans);cursor:pointer}.booking-progress button span{font-size:10px;margin-right:12px;letter-spacing:.08em}.booking-progress button[aria-current]{color:#245c4d;border-color:#245c4d}.booking-progress button:disabled{color:#7e8981;cursor:default}.booking-heading{margin-bottom:38px;max-width:850px}.booking-heading h1{font-size:clamp(32px,3.4vw,48px);font-weight:400;line-height:1.15;letter-spacing:-.045em;margin-bottom:16px}.booking-heading>p:last-child{font-size:15px;color:#65726b;line-height:1.7}.booking-heading h1:focus{outline:none}.booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:54px;align-items:start}.booking-form{min-width:0}.booking-fields{display:grid;gap:22px;background:#fff;padding:34px;border:1px solid #e1e6e1;border-radius:5px}.booking-fields .field-group{display:grid;gap:20px}.booking-fields .field-group.hidden{display:none}.booking-fields .field-row{margin-top:0!important}.booking-fields .control{background:#fafbf9;border-color:#bcc8c0;border-radius:3px}.booking-fields .control input,.booking-fields .control select{font-size:14px;min-height:48px}.booking-fields .field label{font-size:12px;margin-bottom:8px}.booking-fields .segment{margin:0 0 4px}.booking-fields textarea{width:100%;border:1px solid #bcc8c0;background:#fafbf9;padding:14px;font:14px var(--sans);border-radius:3px}.booking-summary{position:sticky;top:110px;padding-top:8px;display:grid;grid-template-columns:20px 1fr;column-gap:14px}.booking-summary>.eyebrow{grid-column:1/-1;margin-bottom:30px}.route-visual{display:flex;flex-direction:column;align-items:center;color:#245c4d;padding:20px 0 22px}.route-visual i{width:1px;background:#bdccc1;min-height:42px;flex:1}.route-summary p{padding:0 0 25px;min-height:84px}.route-summary small{display:block;color:#78847c;font-size:11px;margin-bottom:6px}.route-summary strong{font-weight:500;font-size:14px;overflow-wrap:anywhere}.summary-schedule,.summary-class{grid-column:1/-1;padding:18px 0;border-top:1px solid #dbe2dd;font-size:12px;line-height:1.7}.summary-class{color:#245c4d}.summary-note{grid-column:1/-1;font-size:20px;line-height:1.7;font-weight:400;letter-spacing:-.025em;margin:25px 0;color:#6b7e70}.booking-preview-label{grid-column:1/-1;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#758178}.booking-actions{display:flex;justify-content:flex-end;align-items:center;gap:24px;border-top:1px solid #dbe2dd;padding-top:26px;margin-top:32px}.booking-actions .btn{min-width:235px;font-size:13px;border-radius:3px}.booking-back{margin-right:auto;border:0;background:none;color:#245c4d;font:500 13px var(--sans);padding:14px 0;cursor:pointer}.car-options{display:grid;gap:22px}.car-option{display:block;position:relative;cursor:pointer}.car-option>input{position:absolute;left:20px;top:20px;width:18px;height:18px;z-index:2;accent-color:#245c4d}.car-option-inner{display:grid;grid-template-columns:52% 48%;border:1px solid #dbe2dd;border-radius:5px;overflow:hidden;background:#fff;transition:border-color .2s}.car-photo{position:relative;background:linear-gradient(150deg,#f9faf6,#e9eee7);display:flex;align-items:center}.car-photo img{width:100%;height:100%;min-height:228px;object-fit:cover;transition:transform .4s cubic-bezier(.22,1,.36,1)}.car-caption{display:flex;flex-direction:column;padding:28px 26px}.car-caption strong{font-size:24px;font-weight:400;letter-spacing:-.04em;display:block}.car-model{display:block;font-size:11px;color:#748078;margin-top:7px}.car-description{display:block;font-size:13px;line-height:1.7;margin-top:15px;color:#55665b}.car-capacity{font-size:11px;color:#65796d;margin-top:20px}.car-availability{font-size:12px;color:#245c4d;display:flex;justify-content:space-between;margin-top:22px}.car-selected{display:none;position:absolute;bottom:15px;left:18px;background:#245c4d;color:#fff;font-size:10px;padding:5px 9px;border-radius:2px}.car-option input:checked+.car-option-inner{border-color:#245c4d;box-shadow:0 0 0 1px #245c4d}.car-option input:checked+.car-option-inner .car-selected{display:block}.car-option:has(:focus-visible){outline:3px solid #245c4d;outline-offset:4px}.car-option:hover .car-photo img{transform:scale(1.025)}.car-unavailable{opacity:.55;cursor:default}.booking-footnote{font-size:11px;color:#6c786f;line-height:1.7;margin-top:20px}.booking-details-photo{position:relative;height:210px;margin-bottom:22px;overflow:hidden;border-radius:5px}.booking-details-photo img{width:100%;height:100%;object-fit:cover;object-position:center 65%}.booking-details-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#14231cca,transparent)}.booking-details-photo span{position:absolute;left:30px;bottom:28px;z-index:1;color:white;font-size:26px;letter-spacing:-.04em;max-width:200px;line-height:1.25}.booking-review-vehicle,#finishedVehicle{display:grid;grid-template-columns:50% 50%;align-items:center;background:#eef2eb;border-radius:5px;overflow:hidden;margin-bottom:28px}.booking-review-vehicle img,#finishedVehicle img{width:100%;height:200px;object-fit:cover}.booking-review-vehicle>div,#finishedVehicle>div{padding:25px}.booking-review-vehicle h2,#finishedVehicle h2{font-size:27px;font-weight:400;letter-spacing:-.035em}.booking-review-vehicle p,#finishedVehicle p{font-size:12px;color:#63716a;margin-top:10px}.review-sections section{padding:24px 0;border-bottom:1px solid #dbe2dd}.review-sections h2{display:flex;justify-content:space-between;align-items:center;font-size:18px}.review-sections button{border:0;background:none;color:#245c4d;font:12px var(--sans);text-decoration:underline;cursor:pointer}.review-sections dl{display:grid;grid-template-columns:145px 1fr;gap:14px;margin-top:22px;font-size:13px}.review-sections dt{color:#728078}.review-sections dd{margin:0;overflow-wrap:anywhere}.booking-review-note{margin-top:26px;padding:24px;background:#eef2eb}.booking-review-note h2{font-size:17px}.booking-review-note p{font-size:12px;line-height:1.8;color:#5d6d61;margin-top:10px}.booking-error{color:#9d3036;font-size:13px;margin-top:18px}.booking-finish{max-width:780px;margin:60px auto;text-align:center}.booking-finish>h2{font-size:42px;letter-spacing:-.04em;font-weight:400}.booking-finish>p{margin:20px 0 30px}.booking-finish>a{margin-left:25px;font-size:13px}
@media(max-width:1000px){.booking-shell{grid-template-columns:minmax(0,1fr) 230px;gap:28px}.car-option-inner{grid-template-columns:1fr}.car-photo img{height:240px}.car-caption{padding:24px}.car-description{margin-top:9px}}
@media(max-width:700px){.booking-page{padding-top:86px}.booking-progress{margin-bottom:34px}.booking-progress button{font-size:11px}.booking-progress button span{display:block;margin-bottom:5px}.booking-shell{display:flex;flex-direction:column;gap:28px}.booking-form{width:100%}.booking-summary{position:static;order:-1;width:100%;padding:18px;background:#eef2eb;grid-template-columns:15px 1fr;gap:0 12px}.booking-summary>.eyebrow,.summary-note,.booking-preview-label,.summary-class{display:none}.route-summary{display:flex;gap:20px}.route-summary p{flex:1;padding-bottom:12px;min-height:0}.route-summary strong{font-size:12px}.route-visual{padding:0;justify-content:center}.route-visual i,.route-visual span:last-child{display:none}.summary-schedule{padding:10px 0 0;margin-top:3px}.booking-fields{padding:22px 18px}.booking-fields .field-row{grid-template-columns:1fr;gap:20px}.booking-heading{margin-bottom:24px}.booking-heading h1{font-size:33px}.booking-heading>p:last-child{font-size:13px}.car-photo img{height:auto;min-height:0;aspect-ratio:3/2}.car-caption strong{font-size:26px}.booking-actions{gap:15px}.booking-actions .btn{min-width:0;flex:1}.booking-review-vehicle,#finishedVehicle{grid-template-columns:1fr}.booking-review-vehicle img,#finishedVehicle img{height:auto}.review-sections dl{grid-template-columns:95px 1fr;font-size:12px}.booking-finish>h2{font-size:32px}.booking-finish>a{display:block;margin:22px 0}.booking-details-photo{height:180px}}
@media(prefers-reduced-motion:reduce){.car-photo img{transition:none}.car-option:hover .car-photo img{transform:none}}
.booking-review-vehicle img,#finishedVehicle img{object-fit:contain;background:#f2f2e9}.car-photo img{object-fit:contain}.booking-fields input:disabled{cursor:default}
/* Address suggestions and returning customers. */
.location-field{position:relative}.location-popover{position:absolute;left:0;right:0;top:100%;z-index:80;background:#fff;color:#17251d;border:1px solid #ccd7cf;border-radius:4px;box-shadow:0 12px 26px #17251d1a;text-align:left;overflow:hidden}.location-popover[hidden]{display:none}.location-popover [role=listbox]{max-height:290px;overflow-y:auto;overscroll-behavior:contain}.location-option{padding:14px 16px;min-height:62px;cursor:pointer;border-bottom:1px solid #edf1ed}.location-option strong{display:block;font-size:14px;font-weight:500;line-height:1.45}.location-option span{display:block;font-size:11px;line-height:1.5;color:#617269;margin-top:3px}.location-option:hover,.location-option[aria-selected=true]{background:#eef4ee}.location-source{font-size:10px!important;line-height:1.6!important;color:#66796c!important;background:#f7f9f6;padding:10px 16px!important;margin:0!important;letter-spacing:0!important}.booking-account-link{display:flex;justify-content:flex-end;gap:12px;margin:-30px 0 30px;font-size:11px}.booking-account-link span{color:#738078}.account-container{max-width:1080px}.account-page h1{font-size:clamp(32px,4vw,46px);letter-spacing:-.04em;line-height:1.15;font-weight:400;margin:16px 0}.account-lead{font-size:15px;color:#69796e;margin-bottom:36px}.account-signin{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:36px}.account-signin h2,.account-page h2{font-size:23px;font-weight:400;letter-spacing:-.02em}.account-signin p{font-size:13px;color:#69796e;margin:12px 0 22px}.account-page form{display:grid;gap:12px}.account-page label{font-size:12px;display:block;margin-bottom:7px}.account-page input{display:block;width:100%;font:16px var(--sans);padding:14px;border:1px solid #b8c8bd;border-radius:3px;background:#fff;color:#17251d;min-height:50px}.account-page button{cursor:pointer}.account-page .btn{font-size:13px;min-height:48px;margin-top:8px}.account-guest{font-size:13px;display:inline-block;padding:20px 0}.account-photo{width:100%;height:100%;max-height:500px;object-fit:cover;border-radius:4px}.account-demo{border-top:1px solid #dbe4dd;margin-top:12px;padding-top:8px}.account-demo button,.account-toolbar button,.saved-place button,.account-form-actions>button:first-child,.account-clear{background:none;border:0;color:#245c4d;text-decoration:underline;font:12px var(--sans);padding:12px 0;min-height:44px}.account-demo p{font-size:11px;margin-bottom:0}.account-page [hidden]{display:none!important}#accountStatus{font-size:13px;color:#245c4d;line-height:1.7;margin:16px 0;max-width:65ch}.account-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dbe4dd;margin-bottom:32px}.account-toolbar p{font-size:12px;color:#69796e}.account-section-head{display:flex;align-items:center;justify-content:space-between;gap:24px}.account-section-head p,.account-upcoming p{font-size:13px;color:#69796e;margin:12px 0 20px}.account-empty{padding:45px 20px;text-align:center;font-size:14px;color:#63796a;background:#eef3ed;margin-top:24px}.saved-place{padding:26px 0;border-bottom:1px solid #dbe4dd}.saved-place h3{font-size:17px;font-weight:500}.saved-place p{font-size:14px;color:#66796c;margin:8px 0}.saved-place>div{display:flex;gap:25px}#addressEditor{max-width:600px;margin-top:35px;padding:28px;background:#edf3ed;border-radius:4px}#addressEditor h2{margin-bottom:24px}.account-form-actions{display:flex;gap:28px;justify-content:flex-end}.account-upcoming{margin-top:50px}.account-clear{margin-top:24px}.account-upcoming a{font-size:13px}.booking-fields .control input,.booking-fields .control select,.booking-fields textarea{font-size:16px}.booking-progress button{min-height:48px}.booking-back{min-height:48px}
@media(max-width:700px){.booking-account-link{margin:-15px 0 24px;display:block;font-size:12px}.booking-account-link a{display:inline-block;min-height:35px;padding:7px 0}.booking-account-link span{display:block;font-size:11px}.booking-fields .location-popover{position:relative;top:auto;margin-top:6px;box-shadow:none}.location-popover [role=listbox]{max-height:240px}.location-option{min-height:64px}.account-signin{grid-template-columns:1fr;gap:30px}.account-photo{height:190px;order:-1}.account-section-head{align-items:flex-start;flex-direction:column;gap:0}.account-toolbar{gap:20px}.account-toolbar p{max-width:230px}#addressEditor{padding:20px 16px}.account-page .location-popover{position:relative;margin-top:6px}.booking-page .booking-actions{padding-bottom:env(safe-area-inset-bottom)}.hero .location-popover{z-index:90}.hero:has(.location-popover:not([hidden])){overflow:visible}.hero:has(.location-popover:not([hidden])) .hero-booking{z-index:30}}
@media(max-width:700px){.booking-fields .location-popover,.account-page .location-popover{position:absolute;top:100%;margin-top:4px;box-shadow:0 10px 25px #17251d20}.location-popover [role=listbox]{max-height:220px}}
@media(max-width:700px){.account-photo{order:0}.location-field input[role=combobox]{font-size:16px!important}}
.location-source[data-provider=google]{font-family:var(--sans);font-size:12px!important;font-weight:400;font-style:normal;letter-spacing:normal;white-space:nowrap;color:#5e5e5e!important}
.portal-title{font-size:clamp(32px,4vw,46px);font-weight:400;letter-spacing:-.04em;margin-bottom:18px}.portal-status,.portal-message{font-size:14px;line-height:1.7;color:#245c4d;margin:20px 0}.portal-request{padding:32px 0;border-top:1px solid #dbe4dd}.portal-request h2{font-size:21px;font-weight:500}.portal-badge{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#245c4d;margin:10px 0}.portal-route{font-size:20px;margin:18px 0;overflow-wrap:anywhere}.portal-meta{font-size:12px;color:#65776a;line-height:1.8;overflow-wrap:anywhere}.portal-offer{background:#eef3ed;padding:26px;margin:24px 0}.portal-offer h3{font-size:32px;font-weight:400}.portal-offer h4{font-size:14px;margin:22px 0 7px}.portal-offer p{font-size:13px;line-height:1.8;white-space:pre-wrap}.portal-consent{display:flex!important;align-items:flex-start;gap:12px;font-size:13px;line-height:1.8;margin:24px 0}.portal-consent input{width:20px!important;min-height:20px!important;flex:none;accent-color:#245c4d;margin-top:3px}.portal-request details{margin-top:26px}.portal-request summary{cursor:pointer;padding:14px 0;font-size:15px;color:#245c4d}.portal-form{display:grid;gap:20px;max-width:650px}.portal-form label{font-size:13px}.portal-form input,.portal-form textarea{display:block;width:100%;border:1px solid #bacabd;border-radius:3px;background:#fff;color:#17251d;font:16px var(--sans);padding:13px;margin-top:7px;min-height:48px}.portal-form .btn,.portal-offer .btn{font-size:13px}.portal-request button:disabled{opacity:.55;cursor:default}.portal-more[hidden]{display:none}@media(max-width:600px){.portal-offer{padding:20px 16px}.portal-route{font-size:17px}.portal-offer .btn{width:100%}}

/* One-page journey form: everything stays editable, with a persistent fare summary. */
.booking-one-page{background:#f7f8f5;padding-top:120px}
.booking-one-page .booking-container{max-width:1280px}
.booking-one-page .booking-heading{margin-bottom:38px}
.booking-one-page .booking-heading h1{font-size:clamp(32px,3.4vw,46px)}
.booking-one-page .booking-shell{grid-template-columns:minmax(0,1fr) 320px;gap:40px}
.booking-section{margin:0 0 34px}
.booking-section h2{font:500 21px/1.3 var(--sans);letter-spacing:-.025em;margin:0 0 18px}
.booking-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.booking-section-head>a{font-size:11px;color:#245c4d;text-decoration:underline;text-underline-offset:3px}
.booking-one-page .booking-fields{padding:24px;gap:18px;border-radius:6px}
.booking-one-page .booking-fields .field-row,.booking-one-page .booking-fields .field-group{grid-template-columns:1fr 1fr;gap:18px}
.booking-one-page .booking-fields .field{min-width:0;margin-top:0!important}
.booking-one-page .control input,.booking-one-page .control select{min-width:0;width:100%}
.booking-one-page .car-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.booking-one-page .car-option-inner{height:100%;display:flex;flex-direction:column;border-radius:6px}
.booking-one-page .car-option>input{left:12px;top:12px;width:16px;height:16px}
.booking-one-page .car-photo img{min-height:0;height:auto;aspect-ratio:1.5;object-fit:cover}
.booking-one-page .car-caption{padding:16px;flex:1}
.booking-one-page .car-caption strong{font-size:19px;letter-spacing:-.025em}
.booking-one-page .car-model{font-size:10px;line-height:1.6;min-height:32px;color:#59685e}
.booking-one-page .car-description,.booking-one-page .car-selected{display:none}
.booking-one-page .car-capacity{font-size:10px;margin-top:12px;color:#59685e}
.booking-one-page .car-price{font-size:20px;font-weight:600;letter-spacing:-.025em;margin-top:18px;line-height:1.5}
.booking-one-page .car-availability{font-size:11px;margin-top:12px}
.fare-draft{display:inline-block;color:#617066;font:500 10px/1.6 var(--sans);letter-spacing:.045em;text-transform:uppercase}
.booking-one-page .booking-summary{background:white;border:1px solid #dbe2dd;border-radius:6px;padding:26px;top:104px;column-gap:10px}
.booking-one-page .booking-summary>.eyebrow{margin-bottom:24px;font-size:10px}
.booking-one-page .route-summary p{min-height:66px;padding-bottom:20px}
.booking-one-page .route-summary strong{font-size:12px;line-height:1.6;display:block}
.booking-one-page .route-visual{padding:12px 0 30px}
.booking-one-page .summary-schedule,.booking-one-page .summary-class{padding:13px 0;font-size:11px}
.booking-price-box{grid-column:1/-1;border-top:1px solid #dbe2dd;padding-top:22px;margin-top:2px}
.booking-price{font:500 32px/1.3 var(--sans);letter-spacing:-.045em;margin:9px 0}
#summaryPriceDetail{font-size:11px;color:#59685e;line-height:1.7}
.booking-price-note,.booking-submit-note{grid-column:1/-1;font-size:11px;color:#65726b;line-height:1.8;margin-top:16px}
.booking-one-page .booking-error{grid-column:1/-1}
.booking-one-page #bookingNext{grid-column:1/-1;width:100%;min-width:0;font-size:12px;margin-top:22px;padding:16px 12px}
.booking-submit-note{text-align:center;font-size:10px;margin-top:12px}
.fare-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:32px 0}
.fare-guide-grid article{border-top:1px solid var(--hairline);padding-top:24px}
.fare-guide-grid h3{font-size:20px;margin-bottom:18px}
.fare-guide-grid p{font-size:14px;line-height:2}
.fare-guide-grid strong{font-weight:500;color:var(--action)}
@media(max-width:1050px){.booking-one-page .booking-shell{gap:24px;grid-template-columns:minmax(0,1fr) 280px}.booking-one-page .car-options{grid-template-columns:1fr}.booking-one-page .car-option-inner{display:grid;grid-template-columns:40% 60%}.booking-one-page .car-photo img{height:100%}.booking-one-page .car-caption{padding:18px}.booking-one-page .car-model{min-height:0}.booking-one-page .car-price{margin-top:10px}.booking-one-page .booking-fields .field-group{grid-template-columns:1fr}}
@media(max-width:760px){.booking-one-page{padding-top:100px}.booking-one-page .booking-shell{display:flex;flex-direction:column;gap:0}.booking-one-page .booking-summary{order:0;position:static;width:100%;padding:24px;display:grid}.booking-one-page .booking-summary>.eyebrow,.booking-one-page .summary-class{display:block}.booking-one-page .route-summary{display:block}.booking-one-page .route-visual{display:flex;justify-content:initial}.booking-one-page .route-visual i,.booking-one-page .route-visual span:last-child{display:block}.booking-one-page .booking-fields{padding:20px 16px}.booking-one-page .booking-fields .field-row{grid-template-columns:1fr 1fr}.booking-one-page .booking-fields .control svg{width:16px;min-width:16px}.booking-one-page .booking-fields .control{padding:0 10px}.booking-one-page .booking-fields .control input,.booking-one-page .booking-fields .control select{font-size:16px}.booking-one-page .booking-heading>p:last-child{font-size:14px}.booking-section-head{flex-wrap:wrap;gap:0 12px}.booking-section-head>a{margin-bottom:18px}.booking-one-page .car-caption strong{font-size:18px}.booking-one-page .car-price{font-size:21px}.fare-guide-grid{grid-template-columns:1fr}}
@media(max-width:390px){.booking-one-page .booking-fields .field-row{grid-template-columns:1fr}.booking-one-page .car-option-inner{grid-template-columns:35% 65%}.booking-one-page .car-caption{padding:14px}}
.booking-one-page .car-option input:checked+.car-option-inner .car-selected{display:none}
@media(max-width:1050px){.booking-one-page .car-photo img{object-fit:contain}}

/* Journey and payment recap — clearer hierarchy, measured spacing, one action. */
.booking-one-page .booking-shell{grid-template-columns:minmax(0,1fr) 380px;gap:36px}
.booking-one-page .journey-recap{display:block;padding:0;border:1px solid #dbe2dc;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 12px 36px rgb(22 40 30 / .035);top:92px}
.recap-journey{padding:26px 28px 24px}
.recap-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.recap-heading h2{font:500 23px/1.3 var(--sans);letter-spacing:-.035em;margin:0}
.recap-heading h3{font:600 15px/1.4 var(--sans);letter-spacing:-.015em;margin:0}
.recap-edit{font:500 12px/1.5 var(--sans);color:#245c4d;background:none;border:0;border-bottom:1px solid #91aaa0;padding:4px 0;cursor:pointer;min-width:30px}
.recap-edit:hover{color:#123a2f;border-color:currentColor}
.recap-edit:focus-visible{outline:2px solid #245c4d;outline-offset:5px}
.recap-route{list-style:none;padding:0;margin:0 0 24px}
.recap-route li{position:relative;padding:0 0 22px 24px;min-height:48px}
.recap-route li:last-child{padding-bottom:0}
.recap-route li:before{content:'';position:absolute;top:5px;left:2px;width:7px;height:7px;border:1.5px solid #245c4d;border-radius:50%;background:#fff;z-index:1}
.recap-route li:last-child:before{background:#245c4d;border-radius:1px}
.recap-route li:not(:last-child):after{content:'';position:absolute;top:14px;bottom:-4px;left:5.5px;border-left:1px solid #c7d4cc}
.recap-route span{display:block;font-size:11px;line-height:1.5;color:#65726b;margin-bottom:4px}
.recap-route strong{display:block;font-size:14px;line-height:1.55;font-weight:500;color:#1a2b21;overflow-wrap:anywhere}
.recap-details{border-top:1px solid #e3e8e2;padding-top:18px;display:grid;gap:11px;margin:0}
.recap-details>div,.recap-charges>div,.recap-due>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;font-size:12px;line-height:1.65}
.recap-details dt,.recap-charges dt{color:#65726b;flex-shrink:0}
.recap-details dd,.recap-charges dd,.recap-due dd{margin:0;text-align:right;overflow-wrap:anywhere}
.recap-details dd{max-width:205px;color:#23362b}
.recap-payment{padding:24px 28px;background:#f0f3ef;border-top:1px solid #e1e7df}
.recap-payment .recap-heading{margin-bottom:21px}
.recap-draft{font-size:10px;font-weight:500;color:#526958;border:1px solid #cbd7cb;border-radius:4px;padding:3px 7px;white-space:nowrap}
.recap-charges{display:grid;gap:9px;margin:0 0 19px}
.recap-charges dd{font-weight:500;color:#23362b}
.recap-charges>div:last-child dd{font-weight:400;color:#65726b;font-size:11px}
.recap-total{border-top:1px solid #d5dfd3;padding-top:18px;display:flex;align-items:baseline;justify-content:space-between;gap:15px}
.recap-total>span{font-size:13px;color:#334c3b}
.recap-total strong{font:500 31px/1.35 var(--sans);letter-spacing:-.045em;white-space:nowrap;color:#172b1d;font-variant-numeric:tabular-nums}
.booking-one-page .journey-recap #summaryPriceDetail{font-size:11px;line-height:1.7;color:#65726b;margin:10px 0 0}
.recap-due{margin:17px 0 0;padding-top:14px;border-top:1px solid #d5dfd3}
.recap-due>div{font-size:12px;color:#334c3b}
.recap-due dd{font-weight:600}
.recap-action{padding:22px 28px 24px}
.booking-one-page .journey-recap #bookingNext{margin:0;min-height:54px;border-radius:4px;font-size:13px;font-weight:500;letter-spacing:0;display:flex;align-items:center;justify-content:center}
.booking-one-page .journey-recap .booking-submit-note{font-size:11px;line-height:1.7;margin:13px auto 0;max-width:29ch;color:#65726b}
.booking-one-page .journey-recap .booking-error{margin:0 0 16px;font-size:12px}
@media(min-width:861px) and (max-height:850px){.booking-one-page .journey-recap{position:static}}
@media(min-width:861px) and (max-width:1100px){.booking-one-page .booking-shell{grid-template-columns:minmax(0,1fr) 340px;gap:26px}.recap-journey,.recap-payment,.recap-action{padding-left:24px;padding-right:24px}.recap-details>div{gap:14px}}
@media(max-width:860px){.booking-one-page .booking-shell{display:flex;flex-direction:column;gap:0}.booking-one-page .booking-form{width:100%}.booking-one-page .journey-recap{position:static;order:0;width:100%;display:block;padding:0}.recap-details dd{max-width:65%}}
@media(max-width:480px){.recap-journey{padding:24px}.recap-payment{padding:23px 24px}.recap-action{padding:22px 24px}.recap-heading h2{font-size:22px}.recap-details>div,.recap-charges>div{gap:12px}.recap-total strong{font-size:30px}}

/* One-page booking: a compact journey bar and personal booking choices. */
.journey-topbar{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);border:1px solid #dbe2dc;border-radius:6px;background:#fff;margin-bottom:0;overflow:hidden}
.journey-topbar button{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:5px 14px;text-align:left;background:none;border:0;padding:19px 24px;cursor:pointer;color:#1a2b21;min-width:0;font-family:var(--sans)}
.journey-topbar button+button{border-left:1px solid #e1e7df}
.journey-topbar button>span{font-size:10px;color:#65726b;grid-column:1;letter-spacing:.04em;text-transform:uppercase}
.journey-topbar strong{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:1}
.journey-topbar i{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;color:#245c4d}
.journey-topbar button:hover{background:#f5f7f3}
.journey-topbar button:focus-visible,.recipient-options button:focus-visible,.offer-entry button:focus-visible{outline:2px solid #245c4d;outline-offset:-4px}
.booking-one-page .journey-recap{position:static;align-self:start}
.booking-map{background:#eef1ed;border-bottom:1px solid #dbe2dc}
.booking-map iframe{display:block;border:0;width:100%;height:235px}
.map-caption{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;font-size:10px;background:#f8faf6;color:#65726b}
.map-caption a{color:#245c4d;text-decoration:underline;text-underline-offset:3px}
.booking-recipient{padding:0 28px 24px}
.booking-recipient h3{font:600 14px/1.5 var(--sans);margin:0 0 14px;letter-spacing:0}
.recipient-options{display:grid;gap:10px}
.recipient-options button{display:flex;align-items:center;gap:13px;width:100%;background:#fff;border:1px solid #dbe2dc;border-radius:6px;padding:15px;text-align:left;cursor:pointer;color:#23362b;font-family:var(--sans)}
.recipient-options button[aria-pressed=true]{border-color:#245c4d;background:#f3f7f3;box-shadow:inset 0 0 0 1px #245c4d}
.recipient-options svg{width:23px;height:23px;flex-shrink:0;color:#245c4d}
.recipient-options strong{font-size:13px;font-weight:600;display:block}
.recipient-options small{display:block;font-size:10px;line-height:1.6;color:#65726b;margin-top:3px}
.recipient-options i{width:14px;height:14px;border:1px solid #b7c5bb;border-radius:50%;margin-left:auto;flex-shrink:0}
.recipient-options [aria-pressed=true] i{border:4px solid #245c4d;background:white}
.recipient-status{font-size:11px;line-height:1.6;color:#526958;margin:12px 0 0}
.guest-traveller{border-top:1px solid #dbe2dc;margin-top:24px;padding-top:22px}
.guest-traveller h3{font-size:18px;margin:0 0 8px}.guest-traveller p{font-size:12px;color:#65726b;line-height:1.7;margin-bottom:18px}
.offer-disclosure{border-top:1px solid #d5dfd3;margin-top:18px;padding-top:16px}
.offer-disclosure summary{cursor:pointer;font-size:12px;font-weight:500;color:#245c4d;list-style:none;display:flex;justify-content:space-between;padding:3px 0}
.offer-disclosure summary::-webkit-details-marker{display:none}.offer-disclosure[open] summary{margin-bottom:15px}
.offer-disclosure label{display:block;font-size:11px;margin-bottom:7px}.offer-entry{display:flex;gap:8px}
.offer-entry input{width:100%;min-width:0;border:1px solid #bccbbf;border-radius:4px;background:#fff;padding:11px;font:400 13px var(--sans);color:#23362b}
.offer-entry button{border:1px solid #245c4d;border-radius:4px;background:white;color:#245c4d;padding:0 14px;font:500 12px var(--sans);cursor:pointer}
#offerStatus{font-size:11px;line-height:1.6;margin:9px 0 0;color:#526958}
@media(max-width:860px){.journey-topbar{width:100%;margin-bottom:30px}.booking-map iframe{height:250px}.booking-recipient{padding:0 24px 24px}}
@media(max-width:540px){.journey-topbar{grid-template-columns:1fr}.journey-topbar button{padding:16px 18px}.journey-topbar button+button{border-left:0;border-top:1px solid #e1e7df}.offer-entry input{font-size:16px}}

.booking-map iframe{height:290px}
.booking-recipient .guest-traveller .field{margin-top:14px}.booking-recipient .guest-traveller .control{padding:0 12px}.booking-recipient .guest-traveller input{min-width:0;width:100%;font-size:14px}.booking-recipient .guest-traveller label{font-size:12px}
@media(max-width:540px){.booking-recipient .guest-traveller input{font-size:16px}}

/* Journey estimate and address clarification, using existing booking tokens. */
.address-help,.estimate-status{font-size:.875rem;line-height:1.55;color:var(--muted);margin:0 0 1rem;max-width:70ch;}
.estimate-source{font-size:.75rem;color:var(--muted);margin:-.5rem 0 1rem;}
.estimate-source:empty{display:none;}
.address-details .field label span{font-weight:400;color:var(--muted);}
.car-price{overflow-wrap:anywhere;}
.location-source[role=status]{line-height:1.45;}

/* Journey preview: an itinerary, selected vehicle and clearly labelled estimate. */
.booking-one-page .booking-finish{--finish-paper:oklch(99% .004 145);--finish-tint:oklch(96% .009 145);--finish-ink:oklch(27% .023 155);--finish-muted:oklch(48% .023 155);--finish-line:oklch(88% .012 145);max-width:1120px;margin:20px auto 0;text-align:left;color:var(--finish-ink)}
.booking-finish:focus{outline:none}
.finish-heading{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:36px}
.finish-heading .eyebrow{font-size:11px;letter-spacing:.14em;font-weight:600;margin:0 0 14px;color:var(--action)}
.finish-heading h1{font:400 44px/1.16 var(--sans);letter-spacing:-.05em;margin:0 0 14px}
.finish-heading p:last-child{font-size:14px;line-height:1.7;color:var(--finish-muted);max-width:60ch}
.finish-status{display:inline-flex;align-items:center;gap:9px;flex-shrink:0;font-size:12px;font-weight:500;border:1px solid var(--finish-line);border-radius:30px;padding:10px 15px;color:var(--finish-muted);background:var(--finish-paper)}
.finish-status>span{width:6px;height:6px;background:var(--finish-muted);border-radius:50%}
.finish-sheet{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);border:1px solid var(--finish-line);border-radius:12px;overflow:hidden;background:var(--finish-paper);box-shadow:0 8px 32px oklch(27% .023 155 / .035)}
.finish-itinerary{padding:34px 40px 38px;min-width:0}
.finish-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}
.finish-section-heading h2{font:500 21px/1.35 var(--sans);letter-spacing:-.03em}
.finish-section-heading button{display:inline-flex;gap:10px;align-items:center;min-height:36px;background:none;border:0;padding:6px 0;color:var(--action);font:500 12px var(--sans);cursor:pointer}
.finish-section-heading button:hover{text-decoration:underline;text-underline-offset:4px}
.finish-label{display:block;font-size:10px;line-height:1.5;font-weight:600;letter-spacing:.11em;color:var(--finish-muted)}
.finish-route{list-style:none;margin:0 0 30px;padding:0}
.finish-route li{position:relative;padding:0 0 30px 27px}
.finish-route li:last-child{padding-bottom:0}
.finish-route li:before{content:'';position:absolute;left:0;top:4px;width:9px;height:9px;border:1.5px solid var(--action);border-radius:50%;background:var(--finish-paper);z-index:1}
.finish-route li:last-child:before{border-radius:2px;background:var(--action)}
.finish-route li:not(:last-child):after{content:'';position:absolute;left:4px;top:17px;bottom:6px;border-left:1px solid var(--finish-line)}
.finish-route strong{display:block;font-size:19px;line-height:1.5;font-weight:500;letter-spacing:-.025em;overflow-wrap:anywhere;margin-top:8px;max-width:38ch}
.finish-facts{margin:0;border-top:1px solid var(--finish-line);padding-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:23px 28px}
.finish-facts>div{min-width:0}
.finish-facts dt{font-size:11px;line-height:1.5;color:var(--finish-muted);margin-bottom:6px}
.finish-facts dd{margin:0;font-size:13px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}
.finish-facts small{font-size:11px;color:var(--finish-muted);margin-left:9px;font-weight:400}
.finish-request-note{border-top:1px solid var(--finish-line);margin-top:24px;padding-top:22px}
.finish-request-note p{font-size:13px;color:var(--finish-muted);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}
.finish-reference{font-size:12px;color:var(--action);margin-top:24px;overflow-wrap:anywhere}
.finish-selection{display:flex;flex-direction:column;min-width:0;background:var(--finish-tint);border-left:1px solid var(--finish-line)}
.finish-selection>.finish-section-heading{padding:26px 32px 0;margin:0}
.booking-finish #finishedVehicle{display:flex;flex-direction:column;margin:0;border-radius:0;background:none;text-align:left}
.booking-finish #finishedVehicle>img{width:100%;height:200px;object-fit:cover;object-position:center 56%;background:transparent;mix-blend-mode:multiply;padding:0;mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent)}
.booking-finish #finishedVehicle>div{padding:0 32px 28px;width:100%}
.booking-finish #finishedVehicle h2{font:500 27px/1.25 var(--sans);letter-spacing:-.035em}
.booking-finish #finishedVehicle p{font-size:12px;color:var(--finish-muted);line-height:1.6;margin:8px 0 0}
.booking-finish #finishedVehicle .finish-capacity{font-size:11px;margin-top:14px}
.finish-fare{padding:27px 32px 24px;background:oklch(32% .049 162);color:oklch(98% .006 145);margin-top:auto}
.finish-fare-top{display:flex;justify-content:space-between;gap:20px;font-size:12px;align-items:center;color:oklch(88% .018 150)}
.finish-fare-top>span:last-child{font-size:10px;letter-spacing:.1em}
.finish-fare>#finishPrice{display:block;font:400 44px/1.2 var(--sans);letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin:10px 0 12px}
.finish-fare>#finishPrice.is-unavailable{font-size:29px;letter-spacing:-.03em}
.finish-fare>p{font-size:11px;line-height:1.7;color:oklch(85% .015 150);max-width:43ch}
.finish-payment{border-top:1px solid oklch(72% .02 150 / .35);padding-top:16px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:oklch(88% .018 150)}
.finish-payment strong{font-size:13px;font-weight:500;color:oklch(98% .006 145)}
.finish-next{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:30px 0;border-bottom:1px solid var(--finish-line)}
.finish-next-copy{display:flex;gap:13px;align-items:flex-start;max-width:470px;min-width:0}
.finish-note-icon{display:grid;place-items:center;width:19px;height:19px;flex-shrink:0;border:1px solid var(--finish-muted);border-radius:50%;font:500 11px var(--sans);color:var(--finish-muted);margin-top:2px}
.finish-next h2{font:500 14px/1.5 var(--sans);letter-spacing:0}
.finish-next p{font-size:12px;line-height:1.7;color:var(--finish-muted);margin:5px 0 0;max-width:55ch}
.finish-next-copy a{font-size:12px;display:inline-flex;gap:8px;margin-top:10px}
.finish-actions{display:flex;align-items:center;gap:24px;flex-shrink:0}
.finish-actions .btn{font-size:12px;min-height:48px;border-radius:4px;gap:18px;padding:15px 20px}
.finish-print{display:flex;align-items:center;justify-content:center;gap:9px;background:none;border:0;color:var(--action);font:500 12px var(--sans);min-height:48px;cursor:pointer;padding:8px 0}
.finish-print:hover{text-decoration:underline;text-underline-offset:4px}
.finish-help{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px;font-size:11px;line-height:1.7;color:var(--finish-muted)}
.finish-help a{color:var(--action);font-weight:500}
@media(max-width:1000px){.finish-itinerary{padding:28px}.finish-heading h1{font-size:38px}.finish-next{align-items:flex-start}.finish-actions{gap:14px;flex-direction:column;align-items:stretch}.finish-actions .finish-print{order:1;min-height:38px}.finish-selection>.finish-section-heading{padding-left:26px;padding-right:26px}.booking-finish #finishedVehicle>div,.finish-fare{padding-left:26px;padding-right:26px}}
@media(max-width:700px){.booking-one-page .booking-finish{margin:6px auto 0}.finish-heading{display:block;margin-bottom:26px}.finish-heading h1{font-size:32px;max-width:12ch;margin-bottom:12px}.finish-heading .eyebrow{font-size:10px}.finish-heading p:last-child{font-size:13px;max-width:36ch}.finish-status{margin-top:18px;padding:7px 12px;font-size:11px}.finish-sheet{grid-template-columns:1fr;border-radius:8px}.finish-itinerary{padding:23px}.finish-section-heading{margin-bottom:24px}.finish-section-heading h2{font-size:20px}.finish-route strong{font-size:17px}.finish-facts{gap:20px 18px;padding-top:22px}.finish-facts dd{font-size:12px}.finish-facts small{display:block;margin-left:0;margin-top:3px}.finish-selection{border-left:0;border-top:1px solid var(--finish-line)}.finish-selection>.finish-section-heading{padding:20px 23px 0}.booking-finish #finishedVehicle>img{height:200px;padding:0 20px}.booking-finish #finishedVehicle>div{padding:0 23px 23px}.booking-finish #finishedVehicle h2{font-size:26px}.finish-fare{padding:24px}.finish-fare>#finishPrice{font-size:40px}.finish-next{flex-direction:column;gap:22px;padding:25px 0}.finish-actions{width:100%;flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.finish-actions .finish-print{order:0;min-height:48px;font-size:11px}.finish-actions .btn{font-size:11px;padding:14px;gap:10px}.finish-help{font-size:11px;margin-top:22px}}
@media print{body:has(.booking-finish:not([hidden])){background:var(--finish-paper);font-size:12px}body:has(.booking-finish:not([hidden])) .site-header,body:has(.booking-finish:not([hidden])) .mobile-nav,body:has(.booking-finish:not([hidden]))>.footer,.finish-actions,.finish-section-heading button,.finish-help,.skip-link{display:none!important}.booking-one-page:has(.booking-finish:not([hidden])){padding:0;min-height:0}.booking-finish{max-width:none!important;margin:0!important}.finish-heading h1{font-size:30px}.finish-sheet{grid-template-columns:1.2fr 1fr;break-inside:avoid;box-shadow:none}.finish-itinerary{padding:24px}.finish-heading{margin-bottom:24px}.finish-fare{print-color-adjust:exact;-webkit-print-color-adjust:exact}.finish-next{padding:18px 0}.finish-selection{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Keep the completed journey focused, including the page footer. */
body:has(.booking-finish:not([hidden]))>.footer{background:oklch(97% .006 145);color:oklch(48% .023 155);padding:28px 0;border-top:1px solid oklch(88% .012 145)}
body:has(.booking-finish:not([hidden]))>.footer .footer-top{display:none}
body:has(.booking-finish:not([hidden]))>.footer .footer-bottom{padding-top:0;color:oklch(48% .023 155)}
body:has(.booking-finish:not([hidden]))>.footer a,body:has(.booking-finish:not([hidden]))>.footer .footer-note{color:oklch(48% .023 155)}
body:has(.booking-finish:not([hidden])) .booking-one-page{padding-top:100px;padding-bottom:48px}
@media(max-width:700px){body:has(.booking-finish:not([hidden])) .booking-one-page{padding-top:92px}.finish-heading h1{max-width:15ch}.booking-finish #finishedVehicle>img{padding:0;height:190px;object-fit:cover}.finish-route{margin-bottom:25px}}
@media print{@page{margin:12mm}body:has(.booking-finish:not([hidden])) .booking-one-page{padding:0!important}.finish-heading,.finish-next{break-inside:avoid}.finish-status{color:var(--finish-ink)}}

/* UK-only mobile entry: the country code is text, never an editable control. */
.uk-mobile-control{gap:0!important;padding-left:0!important;overflow:hidden}
.uk-mobile-prefix{align-self:stretch;display:flex;align-items:center;gap:9px;padding:0 13px;border-right:1px solid var(--hairline);font-size:10px;color:var(--muted);white-space:nowrap;background:var(--surface-2)}
.uk-mobile-prefix strong{font-size:14px;font-weight:500;color:var(--ink)}
.uk-mobile-control input{padding-left:12px!important;min-width:0}
.uk-mobile-field .uk-mobile-help,.guest-traveller .uk-mobile-help{font-size:11px;line-height:1.6;color:var(--muted);margin:5px 0 0}
.uk-mobile-field .uk-mobile-error,.guest-traveller .uk-mobile-error{font-size:12px;line-height:1.6;color:var(--error);margin:5px 0 0}
.uk-mobile-control:has([aria-invalid=true]){border-color:var(--error)}
.field-required{font-size:11px;font-weight:400;color:var(--muted)}

/* Shared vehicle photography and class-card alignment. */
.vehicle-image{position:relative;aspect-ratio:3/2;background:oklch(95% .009 100);overflow:hidden;isolation:isolate}
.vehicle-image img{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:contain;object-position:center}
.vehicle-class-grid{align-items:stretch;gap:24px}
.vehicle-class-grid .fleet-card{min-width:0;display:flex;flex-direction:column;border-radius:8px;box-shadow:none}
.vehicle-class-grid .fleet-figure{flex:0 0 auto;width:100%;aspect-ratio:3/2}
.vehicle-class-grid .fleet-figure img{position:absolute;inset:0}
.vehicle-class-grid .fleet-info{display:flex;flex-direction:column;align-items:stretch;padding:24px;gap:0}
.vehicle-class-grid .fleet-info h3{font-family:var(--sans);font-size:20px;line-height:1.4;font-weight:500;letter-spacing:-.025em;margin:0 0 10px}
.vehicle-class-grid .fleet-models{font-size:13px;line-height:1.6;margin:0 0 20px;min-height:0}
.vehicle-class-grid .fleet-models span{display:block}
.vehicle-class-grid .fleet-cap{margin:0 0 24px;gap:24px;font-size:12px}
.vehicle-class-grid .fleet-info .btn{margin-top:auto;min-height:46px;font-size:13px}
.vehicle-detail{scroll-margin-top:96px}
.vehicle-detail .split-media{border-radius:8px;aspect-ratio:3/2}
.vehicle-detail .split-media img{aspect-ratio:3/2;height:100%;object-fit:contain;border-radius:0;box-shadow:none}
@media(min-width:861px) and (max-width:1050px){.vehicle-class-grid{gap:18px}.vehicle-class-grid .fleet-info{padding:20px}.vehicle-class-grid .fleet-info h3{font-size:18px}.vehicle-class-grid .fleet-cap{gap:16px}}
@media(max-width:860px){.vehicle-class-grid{max-width:480px;width:100%;gap:26px}.vehicle-class-grid .fleet-info{padding:22px}.vehicle-detail .split{gap:28px}}

.page-guidance{border-top:1px solid var(--hairline)}
.guidance-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,88px);align-items:start}
.guidance-layout .section-head{max-width:34ch}
.guidance-layout .faq{margin-top:0;max-width:none}
.guidance-list{display:grid;gap:26px}
.guidance-list article+article{padding-top:26px;border-top:1px solid var(--hairline)}
.guidance-list h3{font-size:20px;line-height:1.35;margin-bottom:10px}
.guidance-list p{color:var(--muted);font-size:16px;line-height:1.7;max-width:62ch}
.guidance-list a,.faq-body a{text-decoration:underline;text-underline-offset:3px}
.service-card{display:flex;flex-direction:column}
.service-card>img{width:100%;height:100%;object-fit:cover}
.service-body{display:flex;flex:1;flex-direction:column;align-items:flex-start}
.service-body .link-arrow{margin-top:auto;padding-top:20px}
@media(max-width:860px){
 .guidance-layout{grid-template-columns:1fr;gap:28px}
 .guidance-layout .section-head{max-width:44ch}
}
/* Match the homepage: full-bleed photography, centred copy and overlaid controls. */
.full-image-hero .passenger-photo{object-position:var(--hero-focus,50% 50%)}

/* Page-wide visual refinement: supporting information belongs to the hero. */
.full-image-hero+.trust-band{margin:0}
.trust-band a{color:inherit;text-decoration:underline;text-underline-offset:4px}
.trust-band+.breadcrumb{padding-top:32px}
.guidance-photo{margin:32px 0 0;overflow:hidden;border-radius:8px;aspect-ratio:4/3;background:var(--surface-2)}
.guidance-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.guidance-photo:hover img{transform:scale(1.035)}
.guidance-layout .section-head{max-width:none}
.guidance-layout .section-head h2{max-width:20ch;text-wrap:balance}
.guidance-list article{position:relative;padding-left:48px}
.guidance-number{position:absolute;left:0;top:2px;font-size:12px;color:var(--action);font-weight:600}
.guidance-list article+article .guidance-number{top:28px}
.journey-close.cta-band{background:oklch(96% .009 150);color:var(--ink);border-top:1px solid var(--hairline)}
.journey-close>.container{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:64px}
.journey-close .cta-inner{max-width:none}
.journey-close .cta-inner h2{font-size:clamp(34px,4.3vw,62px);letter-spacing:-.045em;max-width:16ch;text-wrap:balance}
.journey-close .cta-inner p{font-size:16px;color:var(--muted);max-width:43ch;line-height:1.75}
.journey-close .btn-light{background:var(--action);color:var(--surface)}
.journey-close .btn-ghost-dark{background:transparent;color:var(--action);border-color:var(--control-border)}
.close-photo{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:8px}
.close-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.journey-close:hover .close-photo img{transform:scale(1.025)}
.location-preview img{object-fit:cover}
@media(max-width:860px){.journey-close>.container{grid-template-columns:1fr;gap:32px}.close-photo{aspect-ratio:3/2}.guidance-photo{max-width:480px;aspect-ratio:3/2}.guidance-list article{padding-left:38px}.trust-band .container{gap:16px 24px}.trust-band+.breadcrumb{padding-top:24px}}
@media(prefers-reduced-motion:reduce){.guidance-photo img,.close-photo img{transition:none;transform:none!important}}
.journey-heading-row .location-preview img{object-fit:contain;background:oklch(95% .009 100)}

/* Booking schedule: quiet surfaces, clear selections and generous touch targets. */
.picker-control { position:relative; }
.field .picker-native { position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; pointer-events:none; overflow:hidden; }
.picker-trigger { appearance:none; border:0; background:transparent; color:inherit; font:inherit; font-size:15px; font-weight:600; text-align:left; min-height:50px; width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer; white-space:nowrap; }
.picker-trigger::after { content:''; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); opacity:.6; flex:none; margin-right:3px; }
.picker-trigger:focus-visible { outline:2px solid var(--action); outline-offset:4px; border-radius:3px; }
.picker-trigger[aria-invalid=true] { color:oklch(46% .14 27); }
.schedule-picker { z-index:1000; padding:20px; border:1px solid oklch(88% .012 160); border-radius:16px; background:oklch(99% .003 160); color:oklch(24% .02 160); box-shadow:0 12px 48px rgb(16 26 22 / .18); max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain; text-align:left; font-family:var(--sans); }
.schedule-picker[hidden] { display:none; }
.schedule-picker button { appearance:none; font:inherit; font-size:14px; font-weight:600; border:1px solid transparent; border-radius:8px; min-height:40px; background:transparent; color:inherit; cursor:pointer; }
.schedule-picker button:hover:not(:disabled) { background:oklch(94% .018 160); }
.schedule-picker button:focus-visible { outline:2px solid var(--action); outline-offset:2px; }
.schedule-picker button[aria-pressed=true] { background:var(--action); color:oklch(99% .003 160); }
.schedule-picker button:disabled { color:oklch(74% .008 160); cursor:default; background:transparent; }
.picker-title { font-size:17px; font-weight:700; display:block; letter-spacing:-.025em; }
.picker-caption { font-size:12px; line-height:1.6; color:oklch(48% .02 160); margin:4px 0 12px; }
.picker-month { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.picker-month strong { font-size:16px; }
.picker-month button { width:40px; font-size:26px; font-weight:400; }
.picker-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.picker-calendar>span { text-align:center; font-size:11px; font-weight:600; color:oklch(51% .015 160); padding:6px 0 10px; }
.picker-calendar button { min-height:38px; padding:0; font-variant-numeric:tabular-nums; }
.picker-calendar button[aria-current=date] { border-color:var(--action); }
.picker-footer { border-top:1px solid oklch(91% .01 160); padding-top:12px; margin:16px 0 0; }
.picker-time-value { display:block; font-size:32px; font-weight:500; font-variant-numeric:tabular-nums; letter-spacing:-.04em; margin:12px 0 18px; }
.picker-time-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:4px; margin-bottom:14px; }
.picker-time-grid button { border-color:oklch(91% .01 160); font-variant-numeric:tabular-nums; }
.schedule-picker .picker-apply { background:var(--action); color:oklch(99% .003 160); width:100%; min-height:46px; }
.schedule-picker .picker-apply:hover:not(:disabled) { background:var(--action-hover); }
.schedule-picker .picker-apply:disabled { background:oklch(94% .01 160); }
.picker-duration-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px; }
.picker-duration-grid button { min-height:48px; border-color:oklch(88% .012 160); }
.schedule-note { font-size:12px; line-height:1.6; color:var(--muted); margin:12px 0 0; }
.journey-bar .schedule-note { color:oklch(93% .01 160); text-align:right; margin-left:auto; max-width:100%; }
.schedule-note.schedule-error { color:oklch(46% .14 27); }
.journey-bar .schedule-note.schedule-error { color:oklch(90% .055 40); }
@media (max-width:560px) { .picker-trigger { font-size:14px; } .schedule-picker { padding:16px; } }


/* Keep the green glass hero. Refine only its opened scheduling controls. */
.journey-bar .picker-trigger { min-height:39px; padding:0; font-size:14px; font-weight:400; }
.journey-bar .schedule-note:not(.schedule-error) { display:none; }
.schedule-picker[popover] { margin:0; inset:auto; color-scheme:light; }
.schedule-picker { padding:22px; border-radius:14px; border-color:rgb(36 92 77 / .15); box-shadow:0 18px 56px rgb(8 26 18 / .22),0 2px 8px rgb(8 26 18 / .05); }
.schedule-picker button { transition:background .14s ease-out,color .14s ease-out,box-shadow .14s ease-out; }
.schedule-picker button[aria-pressed=true] { box-shadow:0 2px 5px rgb(36 92 77 / .14); }
.picker-calendar { gap:4px; }
.picker-calendar button { min-height:39px; border-radius:9px; font-weight:500; }
.picker-calendar button[aria-current=date]:not([aria-pressed=true]) { border-color:rgb(36 92 77 / .3); }
.picker-month { margin-bottom:18px; }
.picker-month strong { font-size:16px; font-weight:600; }
.picker-month button { border-radius:50%; }
.picker-time-value { font-size:30px; margin:10px 0 18px; padding-bottom:16px; border-bottom:1px solid var(--hairline); }
.picker-time-groups { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.picker-time-groups>div>.picker-caption { margin:0 0 8px; font-weight:600; }
.picker-time-grid { position:relative; display:flex; flex-direction:column; gap:4px; height:184px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:rgb(36 92 77 / .25) transparent; margin:0; padding:4px; border:1px solid var(--hairline); border-radius:10px; background:var(--surface-2); }
.picker-time-grid button { flex:none; width:100%; min-height:40px; border:0; font-size:16px; font-weight:500; }
.picker-time-grid button:hover:not(:disabled):not([aria-pressed=true]) { background:rgb(36 92 77 / .08); }
.picker-duration-grid { gap:8px; margin-top:18px; }
.picker-duration-grid button { min-height:50px; font-weight:500; }
.schedule-picker .picker-apply { border-radius:9px; min-height:46px; }
@media(max-width:560px) {
 .journey-bar .picker-trigger { min-height:32px; }
 .schedule-picker { padding:18px; }
}
@media(prefers-reduced-motion:reduce) { .schedule-picker button { transition:none; } }

/* Matching, compact schedule popups anchored above the complete field label. */
.schedule-picker { box-sizing:border-box; padding:16px; width:320px; height:392px; }
.schedule-picker[data-kind=date] .picker-month { margin-bottom:8px; }
.schedule-picker[data-kind=date] .picker-calendar { grid-auto-rows:34px; gap:3px; }
.schedule-picker[data-kind=date] .picker-calendar button { min-height:34px; }
.schedule-picker[data-kind=date] .picker-calendar>span { padding:4px 0; }
.schedule-picker[data-kind=date] .picker-footer { margin-top:12px; padding-top:10px; }
.schedule-picker[data-kind=time] .picker-caption { margin:3px 0 8px; font-size:11px; line-height:1.45; }
.schedule-picker[data-kind=time] .picker-time-value { font-size:26px; margin:4px 0 10px; padding:0; border:0; line-height:1.3; }
.schedule-picker[data-kind=time] .picker-time-groups { gap:10px; margin-bottom:8px; }
.schedule-picker[data-kind=time] .picker-time-grid { height:148px; }
.schedule-picker[data-kind=time] .picker-time-grid button { min-height:36px; font-size:15px; }
.schedule-picker[data-kind=time] .picker-apply { min-height:40px; }
.schedule-picker button:disabled { color:oklch(70% .008 160); background:transparent; box-shadow:none; opacity:.7; }
@media(max-width:560px) { .schedule-picker { padding:16px; } }

/* Homepage questions and restored location artwork. */
#home-faq .guidance-photo { aspect-ratio:3/2; }
#home-faq .guidance-photo img { object-position:50% 45%; }
.home-faq-contact { margin-top:25px; color:var(--muted); font-size:13px; line-height:1.8; }
.home-faq-contact a { color:#245c4d; text-decoration:underline; text-underline-offset:4px; }
.journey-heading-row .location-preview img { object-fit:cover; background:transparent; }
#home-faq { scroll-margin-top:90px; }

/* Experience page: service details with clear rhythm and a simple journey sequence. */
.experience-standard,.experience-process,.experience-preferences { padding:100px 0; }
.experience-standard { background:#fff; }
.experience-standard-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(45px,8vw,120px); }
.experience-standard header h2,.experience-heading h2 { font-size:clamp(34px,3.5vw,50px); line-height:1.16; font-weight:400; letter-spacing:-.045em; margin:20px 0; }
.experience-standard header>p:last-child { color:#526359; font-size:16px; line-height:1.8; max-width:34ch; margin-top:25px; }
.experience-promises article { display:grid; grid-template-columns:32px 1fr; gap:18px; padding:26px 0; border-bottom:1px solid #d9e1dc; }
.experience-promises article:first-child { padding-top:0; }
.experience-promises article>span { color:#245c4d; font-size:12px; padding-top:7px; }
.experience-promises h3 { font-weight:500; font-size:25px; letter-spacing:-.025em; line-height:1.3; }
.experience-promises p { margin-top:12px; font-size:15px; line-height:1.8; color:#526359; }
.experience-process { background:#f5f6f3; }
.experience-heading { text-align:center; margin:0 auto 55px; max-width:800px; }
.experience-heading>p:last-child:not(.eyebrow) { color:#526359; font-size:16px; line-height:1.8; }
.experience-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; list-style:none; padding:0; margin:0; }
.experience-timeline li { position:relative; }
.experience-timeline li:not(:last-child)::after { content:""; position:absolute; top:21px; left:58px; width:calc(100% - 26px); height:1px; background:#c8d5cb; }
.timeline-marker { display:grid; place-items:center; width:42px; height:42px; border:1px solid #245c4d; border-radius:50%; color:#245c4d; font-size:14px; margin-bottom:28px; }
.experience-timeline h3 { font-size:25px; line-height:1.3; font-weight:500; letter-spacing:-.025em; }
.experience-timeline p { font-size:15px; line-height:1.8; color:#526359; margin-top:15px; max-width:36ch; }
.experience-process-link { display:table; margin:44px auto 0; color:#245c4d; font-size:14px; border-bottom:1px solid #245c4d; padding-bottom:7px; }
.experience-process-link span { margin-left:18px; }
.experience-preferences { background:white; }
.experience-preferences>.container { max-width:920px; }
.experience-preference-list { border-top:1px solid #c5d2c9; }
.experience-preference-list details { border-bottom:1px solid #c5d2c9; }
.experience-preference-list summary { display:flex; justify-content:space-between; align-items:center; gap:22px; cursor:pointer; list-style:none; padding:26px 0; font-size:25px; font-weight:400; letter-spacing:-.025em; }
.experience-preference-list summary::-webkit-details-marker { display:none; }
.experience-preference-list summary::after { content:"+"; font-size:28px; color:#245c4d; font-weight:400; }
.experience-preference-list details[open] summary::after { content:"−"; }
.experience-preference-list details>div { padding:0 45px 28px 0; font-size:15px; line-height:1.8; color:#526359; }
.experience-preference-list details>div>span { display:block; margin-top:18px; color:#245c4d; font-size:14px; }
.experience-preference-list a { display:inline-block; color:#245c4d; margin-top:15px; }
.experience-preference-note { text-align:center; color:#526359; font-size:14px; margin-top:30px; }
.experience-preference-note a { color:#245c4d; text-decoration:underline; text-underline-offset:4px; }
.experience-refresh .passenger-shade { background:linear-gradient(90deg,rgba(8,18,14,.7),rgba(8,18,14,.42) 60%,rgba(8,18,14,.25)); }
@media(max-width:800px) { .experience-refresh .passenger-photo { object-position:72% 50%; } }
@media(max-width:800px) { .experience-standard,.experience-process,.experience-preferences { padding:65px 0; } .experience-standard-layout { grid-template-columns:1fr; gap:38px; } .desktop-break { display:none; } .experience-standard header>p:last-child { max-width:50ch; } .experience-timeline { grid-template-columns:1fr; gap:32px; } .experience-timeline li { padding-left:65px; } .timeline-marker { position:absolute; left:0; top:0; } .experience-timeline li:not(:last-child)::after { top:53px; left:20px; width:1px; height:calc(100% - 32px); } .experience-timeline p { max-width:none; } .experience-heading { margin-bottom:35px; } .experience-preference-list summary { font-size:22px; } .experience-preference-list details>div { padding-right:0; } }
/* Fleet page review: focused class introduction and image-free planning help. */
.fleet-refresh #classes { padding:75px 0 30px; scroll-margin-top:80px; }
.fleet-refresh #classes .section-head { max-width:760px; margin:0 auto; }
.fleet-refresh #classes h2,.fleet-questions h2 { font-size:clamp(32px,3.5vw,48px); line-height:1.18; font-weight:400; letter-spacing:-.04em; }
.fleet-refresh #classes .lead { font-size:16px; max-width:58ch; margin:18px auto 0; line-height:1.75; }
.fleet-class-links { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:30px; }
.fleet-class-links a { border:1px solid #c5d1c8; border-radius:4px; padding:12px 22px; font-size:13px; color:#245c4d; transition:background-color .2s; }
.fleet-class-links a:hover { background:#eef3ef; }
.fleet-refresh .vehicle-detail { scroll-margin-top:80px; }
.fleet-refresh .vehicle-detail .split { gap:clamp(32px,5vw,70px); }
.fleet-refresh .vehicle-detail h2 { font-size:clamp(30px,3vw,42px); font-weight:400; }
.fleet-refresh .vehicle-detail .lead { font-size:16px; line-height:1.75; }
.fleet-choice-help { background:#fff; text-align:center; padding:80px 0; border-block:1px solid #dce4de; }
.fleet-choice-help>.container { max-width:870px; }
.fleet-choice-help h2 { font-size:clamp(32px,3.5vw,48px); font-weight:400; letter-spacing:-.04em; line-height:1.2; margin:20px 0; }
.fleet-choice-help h2+p { font-size:16px; line-height:1.8; color:#526359; max-width:57ch; margin:0 auto; }
.fleet-help-actions { display:flex; justify-content:center; align-items:center; gap:28px; margin-top:28px; }
.fleet-help-actions>a:not(.btn) { color:#245c4d; font-size:14px; padding:12px 0; }
.fleet-questions { background:#fafbf9; padding:90px 0; scroll-margin-top:80px; }
.fleet-questions>.container { max-width:900px; }
.fleet-questions .section-head { text-align:center; max-width:none; margin-bottom:40px; }
.fleet-questions .lead { margin-top:18px; font-size:16px; }
.fleet-questions .faq { max-width:none; margin:0; }
.fleet-questions .faq summary { font-size:17px; padding-block:24px; }
.fleet-questions .faq-body { font-size:15px; line-height:1.8; color:#526359; max-width:72ch; }
.fleet-question-contact { text-align:center; font-size:14px; margin-top:32px; color:#526359; }
.fleet-question-contact a { color:#245c4d; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:700px) { .fleet-refresh #classes { padding-top:55px; } .fleet-class-links { gap:8px; } .fleet-class-links a { font-size:12px; padding:11px 13px; } .fleet-choice-help,.fleet-questions { padding:60px 0; } .fleet-help-actions { flex-direction:column; gap:12px; } .fleet-questions .faq summary { font-size:16px; } }

/* Contact: a quiet introduction, useful guidance and a generous form. */
.contact-page { background:#fff; padding-bottom:110px; }
.contact-intro { text-align:center; padding-top:145px; padding-bottom:70px; }
.contact-intro h1 { font-size:clamp(40px,4.5vw,64px); font-weight:400; line-height:1.14; letter-spacing:-.045em; margin:22px 0; }
.contact-intro>p:last-child { font-size:17px; line-height:1.8; color:#526359; }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,7vw,110px); align-items:start; }
.contact-help { padding:36px 0; }
.contact-help h2 { font-size:38px; font-weight:400; line-height:1.18; letter-spacing:-.04em; margin:20px 0; }
.contact-help p { font-size:15px; line-height:1.85; color:#526359; max-width:38ch; }
.contact-help .eyebrow { color:#245c4d; }
.contact-help-row { border-top:1px solid #dce2dc; margin-top:30px; padding-top:26px; }
.contact-help-row h3 { font-size:17px; font-weight:500; margin:0 0 10px; }
.contact-help-row a { display:inline-flex; gap:25px; color:#245c4d; font-size:14px; margin-top:16px; border-bottom:1px solid #aebfb3; padding-bottom:5px; }
.contact-help-row a span,.contact-submit button span { transition:transform .2s; }
.contact-help-row a:hover span,.contact-submit button:hover span { transform:translate(3px,-3px); }
.contact-message { padding:42px; background:#f7f8f5; border:1px solid #e5e9e2; border-radius:8px; scroll-margin-top:90px; }
.contact-message h2 { font-size:28px; font-weight:400; letter-spacing:-.035em; margin:0 0 12px; }
.contact-form-intro { color:#526359; font-size:15px; line-height:1.7; margin:0 0 32px; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px 20px; }
.contact-fields .full { grid-column:1/-1; }
.contact-fields label { font-size:13px; font-weight:500; color:#21352b; margin-bottom:9px; }
.contact-fields label span { color:#637267; font-weight:400; }
.contact-fields input,.contact-fields select,.contact-fields textarea { width:100%; min-height:52px; border:1px solid #bac8bd; background:#fff; border-radius:4px; padding:13px 14px; font:inherit; font-size:16px; color:#172e22; }
.contact-fields textarea { min-height:145px; resize:vertical; }
.contact-fields input:focus,.contact-fields select:focus,.contact-fields textarea:focus { outline:2px solid #245c4d; outline-offset:2px; }
.contact-fields ::placeholder { color:#6d776f; font-size:14px; }
.contact-submit { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:30px; }
.contact-submit button { display:inline-flex; justify-content:space-between; gap:28px; }
.contact-submit p { color:#526359; font-size:11px; line-height:1.8; }
.contact-submit p a { text-decoration:underline; text-underline-offset:3px; }
.contact-status { margin-top:20px; font-size:14px; line-height:1.7; color:#245c4d; }
@media(max-width:800px) { .contact-intro { padding-top:110px; padding-bottom:40px; } .contact-intro>p:last-child { font-size:15px; } .contact-intro>p:last-child br { display:none; } .contact-layout { grid-template-columns:1fr; gap:30px; } .contact-message { order:-1; padding:26px 20px; } .contact-help { padding:15px 0 0; } .contact-help p { max-width:none; } .contact-help h2 br { display:none; } .contact-page { padding-bottom:65px; } }
@media(max-width:480px) { .contact-fields { grid-template-columns:1fr; gap:22px; } .contact-submit { display:block; } .contact-submit button { width:100%; } .contact-submit p { margin-top:16px; } }
@media(prefers-reduced-motion:reduce) { .contact-help-row a span,.contact-submit button span { transition:none; } }

/* September review: photographic destinations and a clear, open fleet introduction. */
.home-airports { background:#f6f5f2; color:var(--ink); padding:96px 0; }
.home-airports>.container { max-width:1328px; }
.home-airports h2 { color:var(--ink); }
.home-airports .eyebrow { color:var(--action); }
.home-airports p:not(.eyebrow) { color:#59615b; }
.home-airports .airport-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.home-airports .airport-card { display:block; padding:0; min-height:0; border:0; border-radius:8px; overflow:hidden; background:#fff; color:var(--ink); text-align:left; }
.airport-card-photo { position:relative; aspect-ratio:1.15; overflow:hidden; }
.airport-card-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.22,1,.36,1); }
.home-airports .airport-code { position:absolute; top:16px; left:16px; padding:7px 10px; background:#fff; color:#26392e; border-radius:3px; font-size:10px; letter-spacing:.12em; }
.airport-card-body { padding:25px 22px; }
.home-airports .airport-card h3 { margin:0; color:var(--ink); font-size:25px; font-weight:500; }
.home-airports .airport-card-body p { margin-top:12px; font-size:14px; line-height:1.65; min-height:4.95em; }
.home-airports .airport-card-link { margin-top:22px; justify-content:space-between; color:var(--action); font-size:12px; padding-top:18px; border-top:1px solid #e0e3de; }
.home-airports .airport-card:hover { background:#fff; }
.home-airports .airport-card:hover img { transform:scale(1.045); }
.home-airports .airport-card:focus-visible { outline:3px solid var(--action); outline-offset:5px; }
.experience-timeline li { text-align:center; }
.experience-timeline .timeline-marker { margin:0 auto 28px; }
.experience-timeline p { margin-inline:auto; }
.experience-timeline li:not(:last-child)::after { left:calc(50% + 38px); width:calc(100% - 28px); }
.fleet-hero { display:grid; grid-template-columns:.85fr 1.15fr; min-height:730px; padding-top:64px; background:#f6f5f2; }
.fleet-hero-copy { align-self:center; padding:80px clamp(28px,5vw,80px); }
.fleet-hero h1 { font-size:clamp(48px,5vw,76px); font-weight:400; letter-spacing:-.055em; line-height:1.08; margin:25px 0; }
.fleet-hero-copy>p:not(.eyebrow) { max-width:36ch; font-size:16px; line-height:1.8; color:#59615b; }
.fleet-hero-actions { display:flex; align-items:flex-start; flex-direction:column; gap:22px; margin-top:35px; }
.fleet-hero-actions .btn { gap:25px; }
.fleet-hero-contact { color:var(--action); font-size:14px; padding:8px 0; }
.fleet-hero-contact span { margin-left:18px; }
.fleet-hero-photo { position:relative; margin:0; min-width:0; }
.fleet-hero-photo img { width:100%; height:100%; position:absolute; object-fit:cover; object-position:48% 50%; }
.fleet-hero-photo figcaption { position:absolute; bottom:24px; left:24px; right:24px; padding:15px 18px; background:#fff; color:var(--ink); font-size:14px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; }
.fleet-hero-photo figcaption span { font-size:12px; color:#59615b; }
@media(max-width:1050px) { .home-airports .airport-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .airport-card-photo { aspect-ratio:1.6; } .home-airports .airport-card-body p { min-height:3.3em; } .fleet-hero { min-height:650px; } }
@media(max-width:800px) { .experience-timeline li { padding:0; } .experience-timeline .timeline-marker { position:static; margin:0 auto 20px; } .experience-timeline li:not(:last-child)::after { display:none; } .experience-timeline p { max-width:36ch; } .experience-timeline { gap:42px; } .fleet-hero { grid-template-columns:1fr; padding-top:60px; } .fleet-hero-copy { text-align:center; padding:55px 24px 40px; } .fleet-hero h1 br { display:none; } .fleet-hero-copy>p:not(.eyebrow) { margin-inline:auto; } .fleet-hero-actions { align-items:center; gap:12px; margin-top:25px; } .fleet-hero-photo { aspect-ratio:1.4; } .fleet-hero-photo img { object-position:50% 50%; } .fleet-hero-photo figcaption { left:16px; right:16px; bottom:16px; } }
@media(max-width:560px) { .home-airports { padding:64px 0; } .home-airports .airport-cards { grid-template-columns:1fr; gap:24px; } .airport-card-photo { aspect-ratio:1.6; } .home-airports .airport-card-body p { min-height:0; } .airport-card-body { padding:23px; } }
@media(prefers-reduced-motion:reduce) { .airport-card-photo img { transition:none; } .home-airports .airport-card:hover img { transform:none; } }

/* Phone form and navigation ergonomics. */
@media(max-width:800px){
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important;max-width:100%}
 .btn,.icon-btn,.menu-toggle,[data-menu-close]{min-height:44px}
 .icon-btn,.menu-toggle,[data-menu-close]{min-width:44px}
 .contact-fields{min-width:0}.contact-message input,.contact-message select,.contact-message textarea{min-height:48px}
 .account-signin input,.account-signin button,.account-toolbar button,.account-form-actions button{min-height:48px}
 .account-form-actions{flex-wrap:wrap;gap:12px}.account-form-actions button{flex:1}
 .footer-contact a{min-height:44px;display:inline-flex;align-items:center}
 .booking-fields .field,.booking-fields .control{min-width:0}.booking-fields input{min-width:0}
 .portal-form input,.portal-form select,.portal-form textarea{min-height:48px}
 .portal-request,.portal-offer,.account-container{overflow-wrap:anywhere}
}

/* Keep section links clear of the fixed navigation. */
.home-page [id], .page-hero [id] { scroll-margin-top:110px; }

.finish-copy-result { margin:24px 0; color:var(--muted); font-size:14px; }
.finish-copy-result textarea { display:block; width:100%; margin-top:12px; padding:16px; font:inherit; line-height:1.6; border:1px solid var(--hairline); border-radius:8px; background:white; color:var(--ink); }
.finish-actions { flex-wrap:wrap; }
.finish-actions #copyJourney { justify-content:center; padding:14px 18px; border:1px solid var(--hairline); border-radius:8px; text-decoration:none; }
.finish-copy-result #journeyCopyStatus { font-size:14px; line-height:1.6; }
@media(max-width:560px) { .finish-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; } .finish-actions #copyJourney { grid-column:1/-1; width:100%; } }
