@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');

/* Silver Service shared premium visual system.
 * This is deliberately the final stylesheet on public pages so legacy page
 * templates inherit one coherent system without changing their SEO markup. */
:root {
  --color-black: #0a0a0a;
  --color-white: #fff;
  --color-off-white: #f7f7f5;
  --color-text: #4a4a4a;
  --color-secondary: #777777;
  --color-muted: #9a9a9a;
  --color-border: #e5e5e2;
  --color-silver: #b5b5b0;
  --color-dark-hover: #252525;
  --font-display: "Cormorant Garamond", Cormorant, Georgia, serif;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 40px;
  --space-xl: 64px;
  --space-2xl: 96px;
  --space-3xl: 128px;
  --content-max: 1360px;

  /* Backwards-compatible aliases used by generated templates. */
  --site-ink: var(--color-black);
  --site-muted: var(--color-text);
  --site-surface: var(--color-white);
  --site-surface-soft: var(--color-off-white);
  --site-line: var(--color-border);
  --site-navy: var(--color-black);
  --site-navy-deep: var(--color-black);
  --site-silver: var(--color-silver);
  --site-shadow: none;

  /* Compatibility bridge: legacy names resolve to this canonical palette. */
  --primary-blue: var(--color-black);
  --primary-blue-dark: var(--color-black);
  --primary-blue-light: var(--color-dark-hover);
  --secondary-blue: var(--color-text);
  --navy: var(--color-black);
  --blue: var(--color-black);
  --blue-lt: var(--color-dark-hover);
  --pnav-navy: var(--color-black);
  --pnav-navy-mid: var(--color-black);
  --pnav-navy-light: var(--color-dark-hover);
  --pnav-navy-dark: var(--color-black);
  --pnav-header-hover-bg: var(--color-off-white);
  --pnav-header-border: var(--color-border);
  --pnav-mob-bg: var(--color-white);
  --pnav-font: var(--font-body);
}

html { background: var(--color-white); scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: clip;
  background: var(--color-white) !important;
  color: var(--color-text);
  font-family: var(--font-body) !important;
  font-size: 16px;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
}
main, #main-content, .main-content, .page-content, .content-area,
.site-content, .page-wrapper, .location-content, .service-content { background: var(--color-white); }
p, li { color: var(--color-text); }
a { text-underline-offset: .18em; }
img { max-width: 100%; height: auto; }

h1, h2, h3, h4, h5, h6,
.loc-hero-title, .loc-section-title, .lux-section-title {
  color: var(--color-black);
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.025em !important;
  text-transform: none !important;
}
h1, .loc-hero-title { font-size: clamp(46px, 5vw, 76px) !important; line-height: .98 !important; }
h2, .loc-section-title, .lux-section-title { font-size: clamp(38px, 4vw, 52px) !important; line-height: 1.05 !important; }
h3 { font-size: clamp(30px, 3vw, 34px) !important; line-height: 1.12; }

.container, .container-wide, .content-container, .section-inner,
.page-container, .location-container, .service-container, .loc-container {
  width: min(var(--content-max), calc(100% - 64px)) !important;
  margin-inline: auto !important;
}
.section, .loc-section, .lux-section { padding-block: var(--space-2xl) !important; }
.section:nth-of-type(even), .loc-section-offwhite { background: var(--color-off-white) !important; }
.section-dark, .loc-section-dark { background: var(--color-black) !important; color: var(--color-white) !important; }

/* Shared labels */
.loc-badge, .lux-badge, .eyebrow, .section-eyebrow, .loc-hero-eyebrow-text,
.loc-fare-card-title, .loc-stat-label {
  background: transparent !important;
  border: 0 !important;
  color: var(--color-secondary) !important;
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  padding: 0 !important;
  text-transform: uppercase !important;
}
.loc-divider, .lux-gold-line { width: 40px !important; height: 1px !important; background: var(--color-silver) !important; }
.route-chip, .tab, .tab-button, [role="tab"] {
  border: 1px solid var(--color-border) !important;
  border-radius: 5px !important;
  background: var(--color-white) !important;
  color: var(--color-black) !important;
}
.tab.active, .tab-button.active, [role="tab"][aria-selected="true"] {
  border-color: var(--color-black) !important;
  background: var(--color-black) !important;
  color: var(--color-white) !important;
}

/* Unified header; collapse is owned by premium-nav.js and premium-nav.css. */
.pnav-topbar { display: none !important; }
.pnav-header {
  top: 0 !important;
  min-height: 84px;
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid var(--color-border) !important;
  box-shadow: none !important;
}
.pnav-container { max-width: 1400px !important; }
.pnav-header a, .pnav-menu-link { color: var(--color-black); }
.pnav-book-btn, .pnav-cta, .pnav-book-now, .pnav-cta-btn,
.pnav-viewall-btn, .pnav-mob-book-btn {
  border: 1px solid var(--color-black) !important;
  border-radius: 5px !important;
  background: var(--color-black) !important;
  color: var(--color-white) !important;
}
.pnav-book-btn:hover, .pnav-cta:hover, .pnav-book-now:hover,
.pnav-cta-btn:hover, .pnav-viewall-btn:hover, .pnav-mob-book-btn:hover { background: var(--color-dark-hover) !important; }
.pnav-menu-link:hover, .pnav-menu-link[aria-expanded="true"],
.pnav-service-link:hover, .pnav-region-link:hover { color: var(--color-black) !important; background: var(--color-off-white) !important; }
.pnav-toggle, .pnav-mob-close { background: var(--color-black) !important; border-radius: 5px !important; }
.pnav-mobile-panel, .pnav-mob-header, .pnav-mob-body { background: var(--color-white) !important; color: var(--color-black) !important; }
@media (min-width: 1025px) {
  .pnav-mega-backdrop, .pnav-mega-backdrop.pnav-mega-active {
    visibility: hidden !important; opacity: 0 !important; pointer-events: none !important;
    background: transparent !important; backdrop-filter: none !important;
  }
  .pnav-mega-panel, .pnav-mega-panel.pnav-panel-active {
    background: var(--color-white) !important; color: var(--color-black) !important;
    border-color: var(--color-border) !important; box-shadow: 0 20px 50px rgba(0,0,0,.08) !important;
  }
  .pnav-mega-panel a, .pnav-mega-panel .pnav-service-title,
  .pnav-mega-panel .pnav-region-link, .pnav-mega-panel .pnav-fleet-card-name { color: #0A0A0A !important; }
}

/* Editorial heroes: photography may remain, but dark-blue washes and boxed
 * fare cards no longer dominate internal pages. */
.loc-hero, .page-hero, .inner-hero, .page-header, .page-banner,
.location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero {
  position: relative;
  isolation: isolate;
  min-height: clamp(500px, 64vh, 720px) !important;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-black) !important;
}
.loc-hero-overlay,
.loc-hero::before, .page-hero::before, .inner-hero::before, .page-header::before,
.page-banner::before, .location-hero::before, .service-hero::before,
.about-hero::before, .contact-hero::before, .booking-hero::before {
  background: linear-gradient(90deg, rgba(10,10,10,.88) 0%, rgba(10,10,10,.58) 55%, rgba(10,10,10,.2) 100%) !important;
}
.loc-hero h1, .loc-hero h2, .loc-hero p, .page-hero h1, .page-hero h2, .page-hero p,
.inner-hero h1, .inner-hero p, .page-header h1, .page-header p, .page-banner h1,
.page-banner p, .location-hero h1, .service-hero h1, .about-hero h1,
.contact-hero h1, .booking-hero h1 { color: var(--color-white) !important; -webkit-text-fill-color: currentColor; }
.loc-hero-inner { max-width: var(--content-max) !important; gap: var(--space-xl) !important; }
.loc-hero-sub { max-width: 650px !important; font-size: clamp(16px, 1.5vw, 18px) !important; line-height: 1.65 !important; }
.loc-hero-title span, .loc-section-title span, .lux-section-title span { color: inherit !important; }

/* Buttons and focus treatment */
.btn, .button, .cta-button, .book-now, .book-btn, .primary-btn, .btn-primary,
.button-primary, .loc-hero-btn-primary, .loc-route-cta, .loc-fare-cta, .lux-btn-navy,
.loc-cta-btn-primary, .fleet-book-btn, .vehicle-book-btn, .sticky-book-btn {
  border: 1px solid var(--color-black) !important;
  border-radius: 5px !important;
  background: var(--color-black) !important;
  background-image: none !important;
  box-shadow: none !important;
  color: var(--color-white) !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
}
.btn:hover, .button:hover, .cta-button:hover, .book-now:hover, .book-btn:hover,
.primary-btn:hover, .btn-primary:hover, .button-primary:hover,
.loc-hero-btn-primary:hover, .loc-fare-cta:hover, .loc-cta-btn-primary:hover,
.fleet-book-btn:hover, .vehicle-book-btn:hover, .sticky-book-btn:hover {
  background: var(--color-dark-hover) !important;
}
.loc-hero-btn-ghost { border-radius: 5px !important; background: transparent !important; color: var(--color-white) !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible { outline: 3px solid #B5B5B0 !important; outline-offset: 3px; }
button, input, select, textarea { font: inherit; }
input, select, textarea { border: 1px solid #a7a7a2 !important; border-radius: 5px !important; background: var(--color-white); color: var(--color-black); }

/* Route and fare module: one horizontal editorial surface on desktop. */
.loc-fare-card {
  padding: var(--space-lg) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: none !important;
}
.loc-fare-card::before { display: none !important; }
.loc-fare-row { border-bottom: 1px solid var(--color-border) !important; padding: 14px 0 !important; }
.loc-fare-price, .loc-route-price { color: var(--color-black) !important; font-family: var(--font-body) !important; font-weight: 600 !important; }
.loc-route-prices { gap: var(--space-sm) !important; }
.loc-route-price { padding: 0 !important; border: 0 !important; background: transparent !important; }
.loc-routes-grid { gap: 0 !important; border-top: 1px solid var(--color-border); }
.loc-route-card, .route-card {
  padding: var(--space-md) 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.loc-route-card:hover, .route-card:hover { transform: none !important; border-color: var(--color-black) !important; box-shadow: none !important; }
.fare-box, .route-info, .route-summary, .hero-panel {
  border: 1px solid var(--color-border) !important;
  border-radius: 6px !important;
  background: var(--color-white) !important;
  box-shadow: none !important;
}
.fare-price, .route-price, .route-meta strong { color: var(--color-black) !important; }

/* Replace legacy card walls with typography, whitespace and separators. */
.loc-features-grid, .features-grid, .benefits-grid { gap: var(--space-lg) !important; }
.loc-feature-card, .feature-card, .service-card, .benefit-card, .info-card,
.location-card, .service-item, .location-item {
  padding: var(--space-md) 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.loc-feature-card:hover, .feature-card:hover, .service-card:hover,
.benefit-card:hover, .info-card:hover, .location-card:hover { transform: none !important; box-shadow: none !important; }
.loc-feature-icon, .service-icon, .feature-icon, .lux-about-feature-icon,
.lux-trust-icon, .premium-svg-icon {
  width: 32px !important; height: 32px !important;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; color: var(--color-black) !important;
  box-shadow: none !important;
}
.loc-feature-icon svg, .service-icon svg, .feature-icon svg,
.lux-about-feature-icon svg, .lux-trust-icon svg, .premium-svg-icon svg {
  width: 22px !important; height: 22px !important; stroke: currentColor !important;
}
.loc-feature-title, .loc-route-dest { color: var(--color-black) !important; }

/* FAQ remains semantic and keyboard-friendly, without nested cards. */
.loc-faq-item, .faq-item, .lux-faq-item {
  border: 0 !important; border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
}
.loc-faq-q, .faq-question, .lux-faq-q { color: var(--color-black) !important; }
.loc-faq-a, .faq-answer { color: var(--color-text) !important; }

/* Homepage root-cause fix: corporate content dictates its own height. Legacy
 * image wrappers and reveal animations must not reserve a second viewport. */
.lux-about-grid { align-items: center !important; min-height: 0 !important; }
.lux-about-img-wrap { min-height: 0 !important; aspect-ratio: 4 / 5; }
.lux-about-img { width: 100%; height: 100% !important; object-fit: cover; }
.lux-trust-strip { margin: 0 !important; padding: var(--space-lg) 0 !important; background: var(--color-white) !important; border-color: var(--color-border) !important; }
.lux-trust-grid { max-width: 1000px !important; }
.lux-about-feature { padding: var(--space-sm) 0 !important; border: 0 !important; border-top: 1px solid var(--color-border) !important; border-radius: 0 !important; background: transparent !important; }

.footer, .footer-premium, footer.footer, footer.footer-premium {
  background: var(--color-black) !important;
  background-image: none !important;
  border-top: 1px solid #282828 !important;
  color: #b8b8b8 !important;
}
.footer h1, .footer h2, .footer h3, .footer h4, .footer a,
.footer-premium h1, .footer-premium h2, .footer-premium h3,
.footer-premium h4, .footer-premium a { color: var(--color-white) !important; }
.footer p, .footer li, .footer-premium p, .footer-premium li { color: #b8b8b8 !important; }
.footer a:hover, .footer-premium a:hover { color: var(--color-silver) !important; }

@media (max-width: 1100px) {
  .pnav-desktop-nav { display: none !important; }
  .pnav-mobile-toggle { display: flex !important; }
  .loc-hero-inner { grid-template-columns: 1fr !important; }
  .loc-fare-card { max-width: 680px !important; }
}
@media (max-width: 768px) {
  .container, .container-wide, .content-container, .section-inner,
  .page-container, .location-container, .service-container, .loc-container {
    width: min(100% - 40px, var(--content-max)) !important;
  }
  .section, .loc-section, .lux-section { padding-block: var(--space-xl) !important; }
  .loc-hero, .page-hero, .inner-hero, .page-header, .page-banner,
  .location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero {
    min-height: auto !important; padding-block: 72px !important;
  }
  .loc-hero-inner { padding: 72px 20px 40px !important; }
  .loc-fare-card { padding: var(--space-md) !important; }
  .lux-about-grid { grid-template-columns: 1fr !important; gap: var(--space-lg) !important; }
  .lux-about-img-wrap { aspect-ratio: 16 / 10; }
  .lux-trust-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: var(--space-lg) var(--space-sm) !important; }
}

/* Sitewide type and colour continuity across legacy page templates. */
body, input, select, textarea, button {
  font-family: var(--sso-display) !important;
}
main p, main li, main dd, main label,
.section p, .loc-section p, .page-content p, .content-section p,
.service-content p, .location-content p, .about-content p,
.card p, .service-card p, .location-card p, .fleet-card p {
  color: var(--sso-copy) !important;
  font-size: max(1rem, 16px);
  line-height: 1.65;
}
main h1, main h2, main h3, main h4,
.section-title, .page-title, .hero-title, .service-title,
.location-title, .fleet-title, .faq-title, .cta-title {
  color: var(--sso-ink) !important;
  font-family: var(--sso-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.05em !important;
  text-transform: uppercase !important;
}

/* Apply the uppercase editorial heading treatment to every page template. */
h1, h2, h3, h4, h5, h6,
.loc-hero-title, .loc-section-title, .lux-section-title,
.lux-fleet-title, .lux-feature-title, .lux-cta-title,
.footer-col-title, .footer-col-title-premium {
  text-transform: uppercase !important;
}

/* Forensic heading coverage: several older templates use div, summary or
   button elements as visible headings, so the h1–h6 rule alone cannot reach
   them. Keep every customer-facing title in the same Inter/uppercase system. */
body .loc-faq-q, body .faq-q, body .faq-question, body .lux-faq-q,
body .loc-feature-title, body .loc-fare-card-title,
body .loc-section-title-white, body .loc-cta-title,
body .section-title, body .page-title, body .page-hero-title,
body .hero-panel-title, body .page-hero-panel-title,
body .panel-title, body .maxi-section-title, body .maxi-area-title,
body .airport-card-title, body .contact-card-title,
body .route-overview-heading, body .process-step-title,
body .lux-about-feature-title, body .fare-box-title,
body .policy-hero-title {
  color: var(--sso-ink) !important;
  font-family: var(--sso-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.035em !important;
  text-transform: uppercase !important;
}
body .section-dark .section-title,
body .loc-section-dark .loc-section-title-white,
body .loc-cta-title, body .footer-col-title,
body .footer-col-title-premium { color:#fff!important; }

/* Beat high-specificity serif declarations in legacy route templates. */
body .route-page .route-hero h1,
body .route-page .route-overview h2,
body .route-page .route-editorial h2,
body.home-premium .lux-faq-q {
  font-family: var(--sso-display) !important;
  letter-spacing: -.035em !important;
  text-transform: uppercase !important;
}

/* Final high-specificity public-page cascade. Older generated pages carry
   inline Playfair/Cormorant/Fira declarations; these selectors deliberately
   normalise their visible layout without changing SEO text or booking logic. */
body:not(.seo-dashboard):not(.admin-page) :is(
  h1,h2,h3,h4,h5,h6,
  .section-title,.page-title,.page-hero-title,.loc-hero-title,
  .loc-section-title,.loc-feature-title,.loc-faq-q,.faq-question,
  .service-title,.fleet-title,.contact-card-title,.footer-col-title
) {
  font-family: var(--sso-display) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: -.04em !important;
  text-transform: uppercase !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  p,li,dd,dt,label,input,select,textarea,button,a,
  .loc-hero-sub,.page-hero-sub,.service-card-text,.footer-link
) { font-family: var(--sso-display) !important; }

body:not(.seo-dashboard):not(.admin-page) :is(
  .pnav-book-btn,.pnav-cta,.pnav-book-now,.pnav-mob-book-btn,
  .btn,.button,.btn-primary,.primary-btn,.book-btn,.loc-fare-cta,
  .loc-hero-btn-primary,.fleet-book-btn,.vehicle-book-btn
) {
  background: var(--sso-brand) !important;
  background-image: none !important;
  border-color: var(--sso-brand) !important;
  color: #fff !important;
}

body:not(.seo-dashboard):not(.admin-page) :is(
  .section-dark,.loc-section-dark,.loc-cta-band,.cta-section,
  .booking-cta,.footer,.footer-premium,footer
) {
  background-color: var(--sso-brand) !important;
  background-image: none !important;
}

body:not(.seo-dashboard):not(.admin-page) :is(
  .card,.service-card,.fleet-card,.location-card,.contact-card,
  .route-card,.loc-route-card,.faq-item,.loc-faq-item,.booking-card
) {
  border-color: var(--sso-line) !important;
  border-radius: var(--sso-radius) !important;
  box-shadow: none !important;
}

@media (max-width: 768px) {
  body:not(.seo-dashboard):not(.admin-page) :is(h1,.page-hero-title,.loc-hero-title) {
    font-size: clamp(2.65rem, 13vw, 4.75rem) !important;
    overflow-wrap: anywhere;
  }
  body:not(.seo-dashboard):not(.admin-page) :is(.pnav-header,.pnav-container) {
    max-width: 100% !important;
  }
}
.eyebrow, .kicker, .section-label, .overline,
.loc-eyebrow, .lux-badge, .badge-label {
  color: var(--sso-brand) !important;
  font-family: var(--sso-display) !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4,
.loc-section-dark h1, .loc-section-dark h2, .loc-section-dark h3,
.cta-section h1, .cta-section h2, .booking-cta h1, .booking-cta h2,
.footer h1, .footer h2, .footer h3, .footer h4,
.footer-premium h1, .footer-premium h2, .footer-premium h3, .footer-premium h4 {
  color:#fff!important;
}
.section-dark p, .section-dark li, .loc-section-dark p, .loc-section-dark li,
.cta-section p, .booking-cta p, .footer p, .footer li,
.footer-premium p, .footer-premium li { color:rgba(255,255,255,.76)!important; }
html, body { max-width:100%; overflow-x:clip; }
@media (max-width: 430px) {
  body { font-size: 16px; }
  .container, .container-wide, .content-container, .section-inner,
  .page-container, .location-container, .service-container, .loc-container { width: calc(100% - 32px) !important; }
  .loc-hero-actions { align-items: stretch; flex-direction: column; }
  .loc-hero-actions a { justify-content: center; width: 100%; }
  .loc-fare-row { align-items: flex-start !important; gap: var(--space-sm); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ======================================================================
   SSO 2026 — AIRPORT EDITORIAL SYSTEM
   Inspired by the supplied Sleeko airport-taxi reference. The visual
   language is re-authored for Silver Service Online and uses brand navy
   #1a3550 in place of the reference orange. This final layer intentionally
   contains presentation only; booking, fare, tracking and SEO markup remain
   owned by their existing templates and scripts.
   ====================================================================== */
:root {
  --sso-brand: #1a3550;
  --sso-brand-deep: #10283f;
  --sso-brand-soft: #e8eef3;
  --sso-ink: #0b0c0e;
  --sso-paper: #ffffff;
  --sso-mist: #f2f4f5;
  --sso-copy: #535a61;
  --sso-line: rgba(11,12,14,.12);
  --sso-radius-sm: 12px;
  --sso-radius: 24px;
  --sso-radius-lg: 38px;
  --sso-display: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --color-black: var(--sso-ink);
  --color-off-white: var(--sso-mist);
  --color-text: var(--sso-copy);
  --color-dark-hover: var(--sso-brand-deep);
  --primary-blue: var(--sso-brand);
  --primary-blue-dark: var(--sso-brand-deep);
  --primary-blue-light: #2d4b68;
  --navy: var(--sso-brand);
  --blue: var(--sso-brand);
  --blue-lt: #2d4b68;
  --pnav-navy: var(--sso-brand);
  --pnav-navy-mid: var(--sso-brand);
  --pnav-navy-light: #2d4b68;
  --pnav-navy-dark: var(--sso-brand-deep);
  --font-display: var(--sso-display);
}

body {
  font-family: var(--sso-display) !important;
  letter-spacing: -.012em;
  background: var(--sso-paper) !important;
}

h1, h2, h3, h4, h5, h6,
.loc-hero-title, .loc-section-title, .lux-section-title {
  font-family: var(--sso-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.055em !important;
}
h1, .loc-hero-title { font-size: clamp(3.25rem, 7.2vw, 7rem) !important; line-height: .91 !important; }
h2, .loc-section-title, .lux-section-title { font-size: clamp(2.4rem, 5vw, 4.75rem) !important; line-height: .98 !important; }
h3 { font-size: clamp(1.6rem, 2.7vw, 2.5rem) !important; }

.section, .loc-section, .lux-section {
  padding-block: clamp(76px, 9vw, 140px) !important;
}
.section:nth-of-type(even), .loc-section-offwhite { background: var(--sso-mist) !important; }

/* Rounded editorial media and restrained card system. */
.card, .service-card, .testimonial-card, .fare-box, .route-info,
.route-summary, .hero-panel, .loc-fare-card, .booking-card,
.form-card, .contact-card, .fleet-card, .lux-fare-widget,
.lux-fleet-card, .lux-testimonial-card {
  border: 1px solid var(--sso-line) !important;
  border-radius: var(--sso-radius) !important;
  box-shadow: none !important;
}
.service-card-img-wrap, .fleet-image, .lux-fleet-img-wrap,
.about-image, .location-image { border-radius: var(--sso-radius) !important; overflow: hidden; }
.card:hover, .service-card:hover, .fleet-card:hover, .lux-fleet-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 18px 44px rgba(16,40,63,.09) !important;
}

/* Brand-blue replaces every former warm/orange call-to-action role. */
.btn, .button, .cta-button, .book-now, .book-btn, .primary-btn,
.btn-primary, .button-primary, .loc-hero-btn-primary, .loc-fare-cta,
.lux-btn-primary, .lux-btn-gold, .lux-btn-navy, .lux-fare-btn,
.loc-cta-btn-primary, .fleet-book-btn, .vehicle-book-btn, .sticky-book-btn {
  min-height: 52px;
  padding-inline: 25px !important;
  border-color: var(--sso-brand) !important;
  border-radius: 999px !important;
  background: var(--sso-brand) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
.btn:hover, .button:hover, .cta-button:hover, .book-now:hover, .book-btn:hover,
.primary-btn:hover, .btn-primary:hover, .button-primary:hover,
.loc-hero-btn-primary:hover, .loc-fare-cta:hover, .lux-btn-primary:hover,
.lux-btn-gold:hover, .lux-btn-navy:hover, .loc-cta-btn-primary:hover,
.fleet-book-btn:hover, .vehicle-book-btn:hover, .sticky-book-btn:hover {
  border-color: var(--sso-brand-deep) !important;
  background: var(--sso-brand-deep) !important;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible { outline-color: var(--sso-brand) !important; }

/* Reference-style cinematic hero with content anchored low and clear. */
.loc-hero, .page-hero, .inner-hero, .page-header, .page-banner,
.location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero {
  min-height: clamp(620px, 78vh, 900px) !important;
  background-color: var(--sso-ink) !important;
  border-radius: 0 0 var(--sso-radius-lg) var(--sso-radius-lg);
}
.loc-hero-overlay, .loc-hero::before, .page-hero::before, .inner-hero::before,
.page-header::before, .page-banner::before, .location-hero::before,
.service-hero::before, .about-hero::before, .contact-hero::before,
.booking-hero::before {
  background: linear-gradient(180deg, rgba(8,12,16,.1) 5%, rgba(8,12,16,.38) 48%, rgba(8,12,16,.94) 100%) !important;
}
.loc-hero-inner { align-items: end !important; padding-bottom: clamp(44px, 7vw, 92px) !important; }
.loc-hero-title { max-width: 920px; }
.loc-hero-sub { font-size: clamp(1rem,1.55vw,1.25rem) !important; max-width: 720px !important; }
.loc-fare-card {
  background: rgba(255,255,255,.97) !important;
  border-radius: var(--sso-radius) !important;
  color: var(--sso-ink) !important;
}

/* Route and location inventory becomes a clean editorial grid. */
.loc-routes-grid, .routes-grid, .locations-grid {
  gap: 18px !important;
  border: 0 !important;
}
.loc-route-card, .route-card, .location-card {
  padding: 25px !important;
  border: 1px solid var(--sso-line) !important;
  border-radius: var(--sso-radius-sm) !important;
  background: #fff !important;
}
.loc-route-card:hover, .route-card:hover, .location-card:hover {
  border-color: var(--sso-brand) !important;
  transform: translateY(-2px) !important;
}
.loc-route-cta, .loc-content a, .loc-breadcrumb-inner a,
.loc-faq-q:hover, .loc-faq-item.open .loc-faq-q { color: var(--sso-brand) !important; }
.loc-suburb-tag:hover, .loc-nearby-pill:hover {
  background: var(--sso-brand) !important;
  border-color: var(--sso-brand) !important;
  color: #fff !important;
}

/* Dark bands use the requested brand navy instead of black/orange. */
.section-dark, .loc-section-dark, .loc-cta-band,
.cta-section, .booking-cta, .footer, .footer-premium,
footer.footer, footer.footer-premium {
  background: var(--sso-brand) !important;
  background-image: none !important;
}

@media (max-width: 768px) {
  h1, .loc-hero-title { font-size: clamp(3rem, 14vw, 5rem) !important; }
  .loc-hero, .page-hero, .inner-hero, .page-header, .page-banner,
  .location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero {
    min-height: 720px !important;
    padding-block: 40px !important;
    border-radius: 0 0 28px 28px;
  }
  .loc-hero-inner { padding: 90px 18px 28px !important; }
  .loc-fare-card, .lux-fare-widget { border-radius: 22px !important; }
}


/* ======================================================================
   2026-09-12 FORENSIC CONTRAST + HERO SCALE CORRECTION
   Final cascade: repairs conflicts introduced by the sitewide uppercase
   override without changing page copy, SEO markup, booking logic or APIs.
   ====================================================================== */
:root {
  --sso-hero-overlay: rgba(7, 18, 29, .55);
  --sso-hero-title: #ffffff;
  --sso-hero-copy: rgba(255, 255, 255, .88);
  --sso-dark-title: #ffffff;
  --sso-dark-copy: rgba(255, 255, 255, .78);
}

/* All known hero families, including legacy corporate and locations hubs. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
) {
  background-color: var(--sso-brand-deep) !important;
  color: var(--sso-hero-title) !important;
}

/* A consistent 55% cinematic wash preserves photography and guarantees
   readable white type across bright airport, vehicle and city imagery. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
)::after {
  background: linear-gradient(var(--sso-hero-overlay), var(--sso-hero-overlay)) !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .loc-hero-overlay,.hero-overlay,.page-hero-overlay,.inner-hero-overlay
) {
  background: linear-gradient(var(--sso-hero-overlay), var(--sso-hero-overlay)) !important;
}

/* This final rule intentionally wins over the generic main h1/h2 colour rule. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
) :is(h1,h2,h3,.hero-title,.loc-hero-title,.page-hero-title) {
  color: var(--sso-hero-title) !important;
  -webkit-text-fill-color: var(--sso-hero-title) !important;
  font-family: var(--sso-display) !important;
  font-size: clamp(2.75rem, 5.4vw, 5.5rem) !important;
  font-weight: 600 !important;
  letter-spacing: -.055em !important;
  line-height: .94 !important;
  max-width: 15ch;
  text-wrap: balance;
  overflow-wrap: normal;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
) :is(p,.hero-subtitle,.loc-hero-sub,.page-hero-sub) {
  color: var(--sso-hero-copy) !important;
  -webkit-text-fill-color: var(--sso-hero-copy) !important;
  font-size: clamp(1rem, 1.25vw, 1.2rem) !important;
  line-height: 1.6 !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero-badge,.loc-hero-eyebrow-text,.page-hero-badge,.hero-eyebrow
) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Dark navy/black sections must never inherit the generic black heading rule. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .section-dark,.loc-section-dark,.loc-cta-band,.cta-section,
  .booking-cta,.footer,.footer-premium,footer
) :is(h1,h2,h3,h4,h5,h6,.section-title,.loc-section-title,
  .loc-section-title-white,.loc-cta-title,.footer-col-title,
  .footer-col-title-premium) {
  color: var(--sso-dark-title) !important;
  -webkit-text-fill-color: var(--sso-dark-title) !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .section-dark,.loc-section-dark,.loc-cta-band,.cta-section,
  .booking-cta,.footer,.footer-premium,footer
) :is(p,li,dd,small,.section-sub,.loc-section-sub,.loc-feature-desc) {
  color: var(--sso-dark-copy) !important;
  -webkit-text-fill-color: var(--sso-dark-copy) !important;
}

/* Light fare and booking panels keep dark, legible live values. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .loc-fare-card,.fare-box,.route-summary,.hero-panel,.booking-card,
  .estimate-box,.fare-summary,.summary-box
) :is(h1,h2,h3,h4,p,span,small,strong,dt,dd,td,th,
  .loc-fare-card-title,.loc-fare-card-sub,.loc-fare-vehicle,
  .loc-fare-vehicle-sub,.loc-fare-price,.loc-fare-price-sub,
  .fare-price,.fare-value,.estimate-value,.estimate-amount) {
  color: var(--sso-ink) !important;
  -webkit-text-fill-color: var(--sso-ink) !important;
}

/* Preserve the established responsive layout without billboard-sized titles. */
@media (max-width: 768px) {
  body:not(.seo-dashboard):not(.admin-page) :is(
    .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
    .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
  ) :is(h1,h2,h3,.hero-title,.loc-hero-title,.page-hero-title) {
    font-size: clamp(2.25rem, 10.5vw, 3.5rem) !important;
    line-height: .98 !important;
    max-width: 12ch;
    overflow-wrap: break-word;
  }
}


/* ======================================================================
   2026-09-12 REFINED TYPOGRAPHY SCALE
   Premium editorial proportions for all public templates.
   ====================================================================== */
body:not(.seo-dashboard):not(.admin-page) main h1 {
  font-size: clamp(2.35rem, 3.8vw, 3.75rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.04em !important;
}
body:not(.seo-dashboard):not(.admin-page) main h2,
body:not(.seo-dashboard):not(.admin-page) .loc-section-title,
body:not(.seo-dashboard):not(.admin-page) .lux-section-title {
  font-size: clamp(1.85rem, 2.7vw, 2.8rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}
body:not(.seo-dashboard):not(.admin-page) main h3 {
  font-size: clamp(1.3rem, 1.8vw, 1.8rem) !important;
  line-height: 1.18 !important;
  letter-spacing: -.02em !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
) :is(h1,.hero-title,.loc-hero-title,.page-hero-title) {
  font-size: clamp(2.5rem, 4vw, 3.75rem) !important;
  line-height: 1.02 !important;
  max-width: 17ch;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
  .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
) :is(h2,h3) {
  font-size: clamp(1.75rem, 2.5vw, 2.6rem) !important;
  line-height: 1.08 !important;
}

@media (max-width: 768px) {
  body:not(.seo-dashboard):not(.admin-page) main h1 {
    font-size: clamp(2rem, 9vw, 2.85rem) !important;
  }
  body:not(.seo-dashboard):not(.admin-page) main h2,
  body:not(.seo-dashboard):not(.admin-page) .loc-section-title,
  body:not(.seo-dashboard):not(.admin-page) .lux-section-title {
    font-size: clamp(1.65rem, 7vw, 2.25rem) !important;
  }
  body:not(.seo-dashboard):not(.admin-page) :is(
    .hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,
    .location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero
  ) :is(h1,.hero-title,.loc-hero-title,.page-hero-title) {
    font-size: clamp(2rem, 9vw, 2.85rem) !important;
    line-height: 1.04 !important;
    max-width: 14ch;
  }
}


/* 2026-09-12 BOOKING FARE CARD CONTRAST
   The booking template uses div elements for these values; name them directly
   so the white card never retains its former white-on-navy text colours. */
body:not(.seo-dashboard):not(.admin-page) .fare-box {
  background: #ffffff !important;
  border: 1px solid var(--sso-line) !important;
  box-shadow: 0 12px 32px rgba(16, 40, 63, .08) !important;
}
body:not(.seo-dashboard):not(.admin-page) .fare-box :is(
  .fare-box-label,.fare-total-val,.fare-item-lbl,.fare-item-val
) {
  color: var(--sso-ink) !important;
  -webkit-text-fill-color: var(--sso-ink) !important;
}
body:not(.seo-dashboard):not(.admin-page) .fare-box .fare-total-val {
  font-size: clamp(1.85rem, 3vw, 2.25rem) !important;
}
body:not(.seo-dashboard):not(.admin-page) .fare-box .fare-total-val span,
body:not(.seo-dashboard):not(.admin-page) .fare-box .fare-box-label,
body:not(.seo-dashboard):not(.admin-page) .fare-box .fare-item-lbl {
  color: var(--sso-muted) !important;
  -webkit-text-fill-color: var(--sso-muted) !important;
}
body:not(.seo-dashboard):not(.admin-page) .fare-box .fare-breakdown {
  border-top-color: var(--sso-line) !important;
}


/* 2026-09-12 COMPLETE SITEWIDE TYPE RHYTHM */
body:not(.seo-dashboard):not(.admin-page) main :is(h1,h2,h3,h4,h5,h6,.section-title,.loc-section-title,.lux-section-title,.page-title,.cta-title,.loc-cta-title,.faq-title,.card-title,.service-title,.fleet-title,.route-title,.location-title){
  text-wrap:balance!important;overflow-wrap:break-word!important;word-break:normal!important
}
body:not(.seo-dashboard):not(.admin-page) main :is(h1,.page-title){
  font-size:clamp(2.25rem,3.25vw,3.25rem)!important;line-height:1.06!important;letter-spacing:-.035em!important
}
body:not(.seo-dashboard):not(.admin-page) main :is(h2,.section-title,.loc-section-title,.lux-section-title,.cta-title,.loc-cta-title,.faq-title){
  font-size:clamp(1.75rem,2.35vw,2.375rem)!important;line-height:1.12!important;letter-spacing:-.025em!important
}
body:not(.seo-dashboard):not(.admin-page) main :is(h3,.card-title,.service-title,.fleet-title,.route-title,.location-title){
  font-size:clamp(1.25rem,1.55vw,1.625rem)!important;line-height:1.2!important;letter-spacing:-.015em!important
}
body:not(.seo-dashboard):not(.admin-page) main h4{font-size:clamp(1.05rem,1.2vw,1.25rem)!important;line-height:1.3!important}
body:not(.seo-dashboard):not(.admin-page) :is(.hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,.location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero) :is(h1,.hero-title,.loc-hero-title,.page-hero-title){
  font-size:clamp(2.4rem,3.6vw,3.5rem)!important;line-height:1.05!important;letter-spacing:-.04em!important;max-width:18ch!important
}
body:not(.seo-dashboard):not(.admin-page) :is(.card,.service-card,.fleet-card,.lux-fleet-card,.loc-route-card,.route-card,.location-card,.faq-item,.loc-faq-item) :is(h2,h3,h4,.card-title,.service-title,.fleet-title,.route-title){
  font-size:clamp(1.15rem,1.4vw,1.5rem)!important;line-height:1.24!important;letter-spacing:-.012em!important
}
body:not(.seo-dashboard):not(.admin-page) :is(.section-dark,.loc-section-dark,.loc-cta-band,.cta-section,.booking-cta) :is(h1,h2,h3,.section-title,.loc-section-title,.loc-cta-title){
  font-size:clamp(1.85rem,2.5vw,2.625rem)!important;line-height:1.1!important;max-width:22ch!important
}
@media(max-width:768px){
 body:not(.seo-dashboard):not(.admin-page) main :is(h1,.page-title){font-size:clamp(1.95rem,8vw,2.5rem)!important}
 body:not(.seo-dashboard):not(.admin-page) main :is(h2,.section-title,.loc-section-title,.lux-section-title,.cta-title,.loc-cta-title,.faq-title){font-size:clamp(1.55rem,6.5vw,1.95rem)!important}
 body:not(.seo-dashboard):not(.admin-page) main :is(h3,.card-title,.service-title,.fleet-title,.route-title,.location-title){font-size:clamp(1.2rem,5vw,1.45rem)!important}
 body:not(.seo-dashboard):not(.admin-page) :is(.hero,.loc-hero,.page-hero,.inner-hero,.page-header,.page-banner,.location-hero,.service-hero,.about-hero,.contact-hero,.booking-hero) :is(h1,.hero-title,.loc-hero-title,.page-hero-title){font-size:clamp(2rem,8.5vw,2.75rem)!important;line-height:1.08!important;max-width:15ch!important}
 body:not(.seo-dashboard):not(.admin-page) :is(.section-dark,.loc-section-dark,.loc-cta-band,.cta-section,.booking-cta) :is(h1,h2,h3,.section-title,.loc-section-title,.loc-cta-title){font-size:clamp(1.6rem,6.8vw,2rem)!important;max-width:18ch!important}
}


/* Home hero eyebrow: silver-white on the dark cinematic image. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.lux-hero,.home-hero
) :is(.lux-eyebrow,.lux-eyebrow-text,.hero-eyebrow,.hero-badge) {
  color: rgba(255,255,255,.92) !important;
  -webkit-text-fill-color: rgba(255,255,255,.92) !important;
}
body:not(.seo-dashboard):not(.admin-page) :is(
  .hero,.lux-hero,.home-hero
) :is(.lux-eyebrow-line,.hero-eyebrow-line) {
  background: rgba(255,255,255,.72) !important;
  border-color: rgba(255,255,255,.72) !important;
}


/* 2026-09-12 HOME HERO GAP CORRECTION
   Top-align the homepage composition instead of centring it in a 100vh canvas. */
body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero {
  min-height: clamp(680px, calc(100svh - 96px), 860px) !important;
  align-items: flex-start !important;
}
body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero-inner {
  align-items: start !important;
  padding-top: clamp(42px, 5vw, 72px) !important;
  padding-bottom: clamp(64px, 7vw, 96px) !important;
}
body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero-content {
  align-self: start !important;
}

@media (max-width: 768px) {
  body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero {
    min-height: auto !important;
  }
  body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero-inner {
    padding: 32px 20px 40px !important;
    gap: 28px !important;
  }
  body:not(.seo-dashboard):not(.admin-page).home-premium .lux-hero-eyebrow {
    margin-bottom: 20px !important;
  }
}


/* 2026-09-12 FINAL BOOKING SUMMARY LEGIBILITY */
body:not(.seo-dashboard):not(.admin-page) .fare-box :is(.fare-box-label,.fare-item-lbl) {
  color: #526070 !important;
  -webkit-text-fill-color: #526070 !important;
  background: transparent !important;
  opacity: 1 !important;
}
body:not(.seo-dashboard):not(.admin-page) .fare-box :is(.fare-total-val,.fare-item-val) {
  color: #101820 !important;
  -webkit-text-fill-color: #101820 !important;
  opacity: 1 !important;
}


/* ======================================================================
   2026-09-12 SITEMAP-WIDE 950-PAGE DESIGN SYSTEM — V6
   Covers shared, generated and bespoke page families (including maxi taxi).
   ====================================================================== */
body:not(.seo-dashboard):not(.admin-page) main {
  color: #526070;
  font-size: 1rem;
  line-height: 1.65;
}
body:not(.seo-dashboard):not(.admin-page) main :is(h1,h2,h3,h4,h5,h6) {
  color: #101820;
  -webkit-text-fill-color: currentColor;
  font-family: var(--sso-display) !important;
  text-wrap: balance !important;
  overflow-wrap: break-word !important;
}
body:not(.seo-dashboard):not(.admin-page) main :is(p,li,dd) {
  overflow-wrap: break-word;
}
body:not(.seo-dashboard):not(.admin-page) main :is(
  [class$="-hero"],[class*="-hero "]
) :is(h1,[class$="-title"],[class*="-title "]) {
  font-size: clamp(2.35rem, 3.6vw, 3.5rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -.035em !important;
  max-width: 18ch !important;
}
body:not(.seo-dashboard):not(.admin-page) main :is(
  [class$="-section-title"],[class*="-section-title "],
  [class$="-heading"],[class*="-heading "]
) {
  font-size: clamp(1.75rem, 2.35vw, 2.375rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -.025em !important;
}
body:not(.seo-dashboard):not(.admin-page) main :is(
  [class*="dark"],[class*="hero"],[class*="banner"],[class*="cta"]
) :is(h1,h2,h3,h4,h5,h6) {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body:not(.seo-dashboard):not(.admin-page) main :is(
  [class*="dark"],[class*="hero"],[class*="banner"],[class*="cta"]
) :is(p,li,dd,small) {
  color: rgba(255,255,255,.82) !important;
  -webkit-text-fill-color: rgba(255,255,255,.82) !important;
}

/* Bespoke Maxi Taxi template: align it with the shared navy design system. */
body:not(.seo-dashboard):not(.admin-page) .maxi-page {
  --maxi-brand: #1a3550;
  --maxi-brand-deep: #10283f;
  --maxi-brand-soft: #dce6ef;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-hero {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
  background:
    linear-gradient(135deg,rgba(7,17,31,.72),rgba(26,53,80,.78)),
    url('/images/maxi-taxi/hero-airport-kia-carnival-full.webp') center/cover no-repeat !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-title {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: clamp(2.5rem,4.2vw,4.25rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em !important;
  max-width: 12ch !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-title span {
  color: #dce6ef !important;
  -webkit-text-fill-color: #dce6ef !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page :is(
  .maxi-eyebrow,.maxi-kicker,.maxi-trust-num,.maxi-logo-text span,
  .maxi-section-title span,.maxi-image-band figcaption
) {
  color: #1a3550 !important;
  -webkit-text-fill-color: #1a3550 !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page :is(
  .maxi-hero .maxi-eyebrow,.maxi-section.dark .maxi-kicker,
  .maxi-hero .maxi-trust-num,.maxi-hero .maxi-logo-text span,
  .maxi-section.dark .maxi-section-title span,.maxi-image-band figcaption
) {
  color: #dce6ef !important;
  -webkit-text-fill-color: #dce6ef !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-section-title {
  color: #101820 !important;
  -webkit-text-fill-color: #101820 !important;
  font-size: clamp(1.8rem,2.5vw,2.5rem) !important;
  line-height: 1.1 !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-section.dark .maxi-section-title {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page :is(
  .maxi-section.dark,.maxi-final-cta
) {
  background: linear-gradient(135deg,#10283f,#1a3550) !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page :is(
  .maxi-nav-book,.maxi-book-step::before
) {
  background: #1a3550 !important;
  color: #fff !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-service-card h3 {
  font-size: clamp(1.2rem,1.45vw,1.5rem) !important;
  line-height: 1.22 !important;
}
body:not(.seo-dashboard):not(.admin-page) .maxi-page :is(.maxi-copy-panel,.maxi-book-panel) h2,
body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-final-cta h2 {
  font-size: clamp(1.65rem,2.2vw,2.25rem) !important;
  line-height: 1.12 !important;
}
@media (max-width: 768px) {
  body:not(.seo-dashboard):not(.admin-page) main :is(
    [class$="-hero"],[class*="-hero "]
  ) :is(h1,[class$="-title"],[class*="-title "]) {
    font-size: clamp(2rem,8.5vw,2.75rem) !important;
    line-height: 1.08 !important;
    max-width: 15ch !important;
  }
  body:not(.seo-dashboard):not(.admin-page) main :is(
    [class$="-section-title"],[class*="-section-title "],
    [class$="-heading"],[class*="-heading "]
  ) {
    font-size: clamp(1.5rem,6.4vw,1.95rem) !important;
  }
  body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-hero {
    padding-top: 42px !important;
    padding-bottom: 48px !important;
  }
  body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-title {
    font-size: clamp(2.1rem,10vw,2.8rem) !important;
  }
  body:not(.seo-dashboard):not(.admin-page) .maxi-page .maxi-section {
    padding-block: 56px !important;
  }
}


/* 2026-09-12 V8 DARK HEADING DESCENDANT CONTRAST
   Inline accent spans must inherit the accessible heading colour. */
body:not(.seo-dashboard):not(.admin-page) :is(
  .section-dark,.dark-section,.loc-section-dark,.cta-section,
  .cta-band,.booking-cta,.maxi-section.dark,footer,.footer,.footer-premium
) :is(h1,h2,h3,h4,h5,h6) :is(span,em,strong) {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

