@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; }
}
