:root {
  --limo-ink: #111111;
  --limo-black: #080808;
  --limo-muted: #6b6b67;
  --limo-line: #e6e5e1;
  --limo-soft: #f7f7f4;
  --limo-paper: #fffefb;
  --limo-serif: "Playfair Display", Georgia, serif;
  --limo-sans: "Inter Tight", Inter, Arial, sans-serif;
  --limo-radius: 18px;
  --limo-shadow: 0 24px 70px rgba(12,12,12,.10);
}

html { scroll-behavior: smooth; }
body {
  background: var(--limo-paper) !important;
  color: var(--limo-ink) !important;
  font-family: var(--limo-sans) !important;
  overflow-x: hidden;
}
body, body * { box-sizing: border-box; }
body p, body li, body a, body button, body input, body select, body textarea, body label, body small {
  font-family: var(--limo-sans) !important;
}
h1, h2, h3, h4, h5, h6,
.lux-hero-title, .lux-section-title, .loc-hero-title, .loc-section-title,
.page-hero-title, .page-title, .section-title {
  color: var(--limo-ink) !important;
  font-family: var(--limo-serif) !important;
  font-weight: 600 !important;
  letter-spacing: -.035em !important;
  line-height: 1.05 !important;
  text-transform: none !important;
}
p, li { color: var(--limo-muted); line-height: 1.75; }

/* Reference-style editorial navigation: restrained, white, and always legible. */
.home-premium .pnav-topbar { display: none !important; }
.pnav-header, .navbar, header.pnav-header {
  background: rgba(255,254,251,.94) !important;
  border-bottom: 1px solid var(--limo-line) !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.045) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
}
.pnav-menu-link, .pnav-header a, .nav-link {
  color: var(--limo-ink) !important;
  font-family: var(--limo-sans) !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
}
.pnav-menu-link:hover, .nav-link:hover { color: #777 !important; background: transparent !important; }
.pnav-cta-btn, .pnav-book-btn, .pnav-book-now, .nav-book-btn,
.btn-primary, .btn-gold, .loc-hero-btn-primary, .loc-route-cta,
.lux-btn-primary, .lux-btn-gold, .lux-fare-btn, .lux-fleet-btn,
.book-now, .book-btn, .primary-btn {
  background: var(--limo-black) !important;
  border: 1px solid var(--limo-black) !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  color: #fff !important;
  letter-spacing: .02em !important;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease !important;
}
.pnav-cta-btn:hover, .pnav-book-btn:hover, .nav-book-btn:hover,
.btn-primary:hover, .btn-gold:hover, .loc-hero-btn-primary:hover,
.lux-btn-primary:hover, .lux-btn-gold:hover, .lux-fare-btn:hover, .lux-fleet-btn:hover {
  background: #2d2d2b !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 24px rgba(0,0,0,.14) !important;
}

/* Homepage: asymmetric split hero and quiet editorial surfaces. */
.home-premium .lux-hero {
  min-height: 700px !important;
  padding: 72px 0 94px !important;
  background: var(--limo-paper) !important;
  overflow: hidden !important;
}
.home-premium .lux-hero-inner {
  max-width: 1440px !important;
  grid-template-columns: minmax(0,.88fr) minmax(390px,.78fr) !important;
  gap: 74px !important;
  padding-inline: 34px !important;
}
.home-premium .lux-hero-bg {
  width: 53% !important;
  inset: 22px 0 22px auto !important;
  border-radius: 28px 0 0 28px !important;
  background-position: center !important;
  box-shadow: -22px 30px 80px rgba(0,0,0,.16) !important;
  opacity: 1 !important;
}
.home-premium .lux-hero-overlay {
  background: linear-gradient(90deg, #fffefb 0%, rgba(255,254,251,.99) 38%, rgba(255,254,251,.54) 61%, rgba(255,254,251,.05) 100%) !important;
}
.home-premium .lux-hero-title {
  font-size: clamp(3.8rem, 7vw, 6.6rem) !important;
  line-height: .93 !important;
}
.home-premium .lux-hero-eyebrow, .home-premium .lux-badge,
.loc-hero-eyebrow-text, .page-hero-badge, .section-eyebrow {
  color: var(--limo-muted) !important;
  font-family: var(--limo-sans) !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
.home-premium .lux-fare-widget, .loc-fare-card, .page-hero-panel, .fare-box, .booking-card {
  background: rgba(255,254,251,.97) !important;
  border: 1px solid var(--limo-line) !important;
  border-radius: var(--limo-radius) !important;
  box-shadow: var(--limo-shadow) !important;
}

/* Shared page rhythm and premium content surfaces. */
.lux-section, .section, .loc-section { padding-block: clamp(76px, 9vw, 128px) !important; }
.lux-section-offwhite, .loc-section-offwhite, .section:nth-of-type(even) { background: var(--limo-soft) !important; }
.lux-section-title, .loc-section-title, .section-title { font-size: clamp(2.5rem, 5vw, 4.8rem) !important; }
.lux-section-sub, .section-subtitle, .loc-hero-sub { max-width: 680px !important; color: var(--limo-muted) !important; }
.lux-fleet-grid, .fleet-grid, .vehicle-grid, .vehicles-grid, .services-grid, .features-grid, .benefits-grid, .locations-grid { gap: 22px !important; }
.lux-fleet-card, .fleet-card, .vehicle-card, .service-card, .feature-card, .benefit-card, .location-card, .route-card, .info-card {
  background: #fff !important;
  border: 1px solid var(--limo-line) !important;
  border-radius: var(--limo-radius) !important;
  box-shadow: 0 12px 34px rgba(0,0,0,.055) !important;
  overflow: hidden !important;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease !important;
}
.lux-fleet-card:hover, .fleet-card:hover, .vehicle-card:hover, .service-card:hover,
.feature-card:hover, .benefit-card:hover, .location-card:hover, .route-card:hover, .info-card:hover {
  border-color: #bcbcb7 !important;
  box-shadow: 0 24px 54px rgba(0,0,0,.12) !important;
  transform: translateY(-7px) !important;
}
.lux-fleet-img, .fleet-card img, .vehicle-card img, .service-card img, .location-card img {
  transition: transform .7s cubic-bezier(.2,.8,.2,1) !important;
}
.lux-fleet-card:hover img, .fleet-card:hover img, .vehicle-card:hover img, .service-card:hover img, .location-card:hover img { transform: scale(1.045) !important; }

/* Internal heroes: retain the site's photography while adopting the reference's high-contrast composition. */
.loc-hero, .page-hero, .inner-hero, .page-header, .page-banner, .location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero {
  min-height: clamp(520px, 68vh, 740px) !important;
  background: var(--limo-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(8,8,8,.92) 0%, rgba(8,8,8,.68) 54%, rgba(8,8,8,.18) 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: #fff !important; }
.loc-hero-title, .page-hero-title { font-size: clamp(2.7rem, 6vw, 5.6rem) !important; }

/* FAQ, forms, and footer use the same calm, monochrome language. */
.loc-faq-item, .faq-item, details, .accordion-item { border-color: var(--limo-line) !important; border-radius: 12px !important; background: #fff !important; }
input, select, textarea { border: 1px solid #d4d3ce !important; border-radius: 6px !important; background: #fff !important; }
input:focus, select:focus, textarea:focus { border-color: var(--limo-black) !important; box-shadow: 0 0 0 3px rgba(0,0,0,.08) !important; }
footer, .footer-premium { background: var(--limo-black) !important; color: #fff !important; }
footer h2, footer h3, footer h4, .footer-premium h2, .footer-premium h3, .footer-premium h4 { color: #fff !important; }
footer a, .footer-premium a { color: rgba(255,255,255,.75) !important; }
footer a:hover, .footer-premium a:hover { color: #fff !important; }

/* Scroll motion mirrors the reference's AOS-style reveals, with a reduced-motion escape hatch. */
.limo-reveal { opacity: 0; transform: translate3d(0, 26px, 0); transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }
.limo-reveal.limo-inview { opacity: 1; transform: none; }
.limo-reveal[data-limo-delay="1"] { transition-delay: .06s; }
.limo-reveal[data-limo-delay="2"] { transition-delay: .12s; }
.limo-reveal[data-limo-delay="3"] { transition-delay: .18s; }
.limo-reveal[data-limo-delay="4"] { transition-delay: .24s; }
.limo-image-reveal { overflow: hidden; position: relative; }
.limo-image-reveal::after { background: var(--limo-black); content: ""; inset: 0; pointer-events: none; position: absolute; transform: translateX(0); transition: transform .9s cubic-bezier(.76,0,.24,1); z-index: 2; }
.limo-image-reveal.limo-inview::after { transform: translateX(102%); }
@media (max-width: 1024px) {
  .home-premium .lux-hero { min-height: auto !important; padding-block: 46px 72px !important; }
  .home-premium .lux-hero-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
  .home-premium .lux-hero-bg { inset: auto 0 0 !important; height: 45% !important; width: 100% !important; border-radius: 24px 24px 0 0 !important; opacity: .26 !important; }
  .home-premium .lux-hero-overlay { background: linear-gradient(180deg, #fffefb 0%, rgba(255,254,251,.96) 58%, rgba(255,254,251,.72) 100%) !important; }
}
@media (max-width: 700px) {
  .pnav-inner, .pnav-container { padding-inline: 16px !important; }
  .home-premium .lux-hero-title { font-size: clamp(3.1rem, 15vw, 5rem) !important; }
  .lux-section, .section, .loc-section { padding-block: 68px !important; }
  .lux-section-title, .loc-section-title, .section-title { font-size: clamp(2.4rem, 13vw, 4rem) !important; }
  .loc-hero, .page-hero, .inner-hero, .page-header, .page-banner, .location-hero, .service-hero, .about-hero, .contact-hero, .booking-hero { min-height: 500px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .limo-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .limo-image-reveal::after { display: none !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
