/* Customer landing pages: readable system typography and resilient mobile layout.
   No booking state, pricing, payment or notification behaviour is defined here. */
.marketing-page {
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --serif: var(--sans);
  --muted: #52616b;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.65;
}
.marketing-page h1,.marketing-page h2,.marketing-page h3 {
  font-family: var(--sans) !important;
  font-weight: 650 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.marketing-page h1,.marketing-page .hero-glass h1,.marketing-page .wed-hero h1 {
  font-size: clamp(2.5rem,4.6vw,4.4rem) !important;
  line-height: 1.1 !important;
}
.marketing-page h1 em,.marketing-page h2 em {
  font-style: normal;
  font-weight: inherit !important;
}
.marketing-page h2 {
  font-size: clamp(2rem,3.25vw,3.25rem) !important;
  line-height: 1.16 !important;
}
.marketing-page h3 { font-size: clamp(1.25rem,1.7vw,1.65rem); line-height: 1.3; }
.marketing-page main p,.marketing-page .service-item p,.marketing-page .related-card p,
.marketing-page .location-card p,.marketing-page .feature-cards p,.marketing-page .wed-note {
  font-size: 1.0625rem;
  line-height: 1.7;
  font-weight: 400;
}
.marketing-page .kicker,.marketing-page .eyebrow,.marketing-page .wed-eyebrow {
  font-size: .8125rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  line-height: 1.5;
}
.marketing-page .breadcrumb,.marketing-page .content-meta {
  font-size: .8125rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5;
  text-transform: none;
}
.marketing-page .button,.marketing-page .book-now-glass,.marketing-page .text-link {
  font-size: .9375rem !important;
  font-weight: 700 !important;
  letter-spacing: .015em !important;
  line-height: 1.35;
  text-transform: none;
  min-height: 52px;
}
.marketing-page .button { padding: 14px 22px; gap: 16px; }
.marketing-page .button span,.marketing-page .button b { flex-shrink: 0; }
.marketing-page .direct-contact a,.marketing-page .footer-links a {
  font-size: 1rem !important;
  letter-spacing: .015em;
  text-transform: none;
  overflow-wrap: anywhere;
}
.marketing-page .footer-meta { font-size: .875rem; }
.marketing-page .nav-links { gap: 9px; }
.marketing-page .nav-links a { font-size: .8125rem; letter-spacing: .035em; padding: 10px; }
.marketing-page .nav-shell { background: rgba(255,253,248,.97) !important; }
.marketing-page .brand-logo { opacity: 1; filter: none; }
.marketing-page .preloader { display: none !important; }
/* Core content must be visible even if a script or an external service stalls. */
.marketing-page .reveal,.marketing-page .reveal[data-motion] {
  opacity: 1;
  visibility: visible;
  filter: none;
  transform: none;
  will-change: auto;
}
.marketing-page .page-hero { min-height: 660px; }
.marketing-page .page-hero-content { padding: 154px 0 76px; }
.marketing-page .page-hero::after {
  background: linear-gradient(90deg,rgba(7,23,35,.94),rgba(7,23,35,.8) 52%,rgba(7,23,35,.24));
}
.marketing-page .page-hero h1 { max-width: 830px; margin: 18px 0 22px; color: #fff; text-shadow: none; }
.marketing-page .page-hero h1 em { color: #f0d695 !important; }
.marketing-page .page-hero p { color: #f2f5f7; text-shadow: none; }
.marketing-page .page-hero .kicker { color: #f0d695; }
.marketing-page .page-hero .button-gold {
  color: #132c3e !important;
  background: #efd18c !important;
  border-color: #efd18c !important;
  text-shadow: none !important;
  box-shadow: 0 5px 18px rgba(0,0,0,.12) !important;
}
.marketing-page .page-hero .button-ghost { background: #142e40 !important; color: #fff !important; }
.marketing-page .editorial-copy>p,.marketing-page .detail-list p,.marketing-page .related-card p { color: #465862; }
.marketing-page .editorial,.marketing-page .related { background: #f7f4ee; color: #17324a; }
.marketing-page .content-meta { color: #52616b; }
.marketing-page .feature-band .kicker,.marketing-page.inner-page .faq-section .kicker { color: #f0d695 !important; }
.marketing-page .service-cta p { color: #465862; }
.marketing-page .section { padding-top: 78px; padding-bottom: 78px; }
.marketing-page .editorial { gap: 6vw; }
.marketing-page .editorial-copy { padding-top: 0; }
.marketing-page .feature-cards { gap: 18px; margin-top: 30px; background: transparent; }
.marketing-page .feature-cards article { background: #203f55 !important; border-color: #496172 !important; padding: 28px; min-height: 0; }
.marketing-page .feature-cards h3 { margin: 18px 0 12px; }
.marketing-page .feature-cards p { color: #f0f4f6 !important; }
.marketing-page .related-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.marketing-page .related-card { background: #fffdf8 !important; color: #17324a; }
.marketing-page .detail-list div { grid-template-columns: 30px minmax(120px,.65fr) minmax(0,1.4fr); gap: 16px; }
.marketing-page .detail-list h3 { font-size: 1rem; }
.marketing-page .service-cta { background: #efe5d1 !important; border-color: #ded0b3 !important; }
.marketing-page .faq-list summary { font-size: 1.0625rem; font-weight: 600; line-height: 1.5; padding-block: 22px; }
.marketing-page #instant-quote,.marketing-page #quoteForm,.marketing-page #weddingEnquiry { scroll-margin-top: 108px; }
.marketing-page .hero-glass .hero-glass-card { max-height: none !important; overflow: visible !important; }
.marketing-page .journey-card label,.marketing-page #quoteForm label,
.marketing-page #quoteForm .booking-mode legend,.marketing-page .hero-booking-mode legend {
  font-size: .9375rem !important;
  font-weight: 600 !important;
  letter-spacing: .015em !important;
  line-height: 1.5;
  text-transform: none;
}
.marketing-page .journey-card input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
.marketing-page #quoteForm input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
.marketing-page #quoteForm select,.marketing-page #quoteForm textarea,.marketing-page .wed-field input,
.marketing-page .wed-field textarea,.marketing-page .wed-field select {
  font-size: 1rem !important;
  font-weight: 400;
  letter-spacing: 0 !important;
  min-height: 52px;
  min-width: 0;
}
.marketing-page .journey-card .card-top { font-size: .875rem !important; letter-spacing: .04em; font-weight: 700; }
.marketing-page .journey-card .booking-mode label:has(input:checked) {
  background: #17324a !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.marketing-page .point-quote-card .card-top { gap: 8px; margin-bottom: 12px; padding-bottom: 12px; font-size: .8125rem !important; letter-spacing: 0; }
.marketing-page .point-quote-card .status-dot { white-space: nowrap; font-size: .6875rem; }
.marketing-page .journey-card>p,.marketing-page .form-note,.marketing-page .booking-time-help,
.marketing-page .booking-capacity-help,.marketing-page #quoteForm .bag-field-help {
  font-size: .875rem !important;
  letter-spacing: 0 !important;
  line-height: 1.55;
}
.marketing-page #quoteForm .payment-recovery-consent { font-size: .875rem !important; letter-spacing: 0 !important; text-transform: none; }
.marketing-page #quoteForm .booking-progress li { font-size: .8125rem !important; letter-spacing: 0; }
.marketing-page .address-suggestions { z-index: 110; }
.marketing-page .address-option { font-size: 1rem; line-height: 1.5; min-height: 48px; }
.marketing-page .hero-vehicle-option { min-width: 0; gap: 12px; }
.marketing-page .hero-vehicle-option b { font-size: 1rem !important; }
.marketing-page .hero-vehicle-option small { font-size: .8125rem !important; }
.marketing-page .hero-vehicle-option strong { font-size: 1.125rem !important; white-space: nowrap; }
.marketing-page a:focus-visible,.marketing-page button:focus-visible,.marketing-page input:focus-visible,
.marketing-page select:focus-visible,.marketing-page textarea:focus-visible,.marketing-page summary:focus-visible {
  outline: 3px solid #b57512 !important;
  outline-offset: 4px;
}
/* The point-to-point form uses the same IDs and handover as the airport quote. */
.marketing-page .point-hero-layout {
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(330px,.85fr);
  align-items: center;
  gap: clamp(28px,5vw,76px);
}
.marketing-page .point-hero-intro h1 { font-size: clamp(2.5rem,4.2vw,4.1rem) !important; }
.marketing-page .point-quote-card,.marketing-page .airport-quote-card {
  background: #fffdf8 !important;
  color: #17324a !important;
  border: 1px solid #d3dce0 !important;
  border-radius: 18px !important;
  padding: 28px;
  width: 100%;
  min-width: 0;
  max-height: none;
  overflow: visible;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.marketing-page .airport-quote-card label,.marketing-page .airport-quote-card .card-top { color: #17324a !important; text-shadow: none; }
.marketing-page .airport-quote-card p,.marketing-page .airport-quote-card .status-dot { color: #465862 !important; }
.marketing-page .airport-quote-card input { color: #17324a !important; -webkit-text-fill-color: #17324a !important; color-scheme: light !important; border-color: #8999a4 !important; }
.marketing-page .airport-quote-card input::placeholder { color: #546671 !important; -webkit-text-fill-color: #546671 !important; opacity: 1; }
.marketing-page .airport-quote-card .button-gold,.marketing-page .airport-quote-card .hero-book-now {
  background: #17324a !important;
  color: #fff !important;
  border-color: #17324a !important;
  text-shadow: none !important;
  width: 100%;
}
.marketing-page .airport-quote-card .hero-vehicle-option { background: #fff !important; color: #17324a !important; border: 1px solid #9aaab4 !important; }
.marketing-page .airport-quote-card .hero-vehicle-option b,.marketing-page .airport-quote-card .hero-vehicle-option strong { color: #17324a !important; -webkit-text-fill-color: #17324a !important; }
.marketing-page .airport-quote-card .hero-vehicle-option small { color: #52616b !important; -webkit-text-fill-color: #52616b !important; }
.marketing-page .airport-quote-card .hero-vehicle-option.selected { background: #17324a !important; color: #fff !important; }
.marketing-page .airport-quote-card .hero-vehicle-option.selected b,.marketing-page .airport-quote-card .hero-vehicle-option.selected small,
.marketing-page .airport-quote-card .hero-vehicle-option.selected strong { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.mobile-journey-actions { display: none; }
@media (max-width: 1200px) {
  .marketing-page .site-header { padding: 12px; }
  .marketing-page .nav-shell { height: 66px; padding-inline: 18px; }
  .marketing-page .menu-toggle { display: grid; width: 44px; height: 44px; place-content: center; gap: 8px; border: 0; background: transparent; }
  .marketing-page .menu-toggle span { display: block; width: 24px; height: 2px; background: #17324a; }
  .marketing-page .nav-links { position: fixed; top: 80px; left: 0; width: 100%; height: auto; max-height: calc(100svh - 96px); overflow-y: auto; padding: 18px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 7px; background: #fffdf8 !important; border: 1px solid #d3dce0; border-radius: 16px; opacity: 0; visibility: hidden; transform: translateY(-10px); z-index: 1; }
  .marketing-page .nav-links.open { opacity: 1; visibility: visible; transform: none; }
  .marketing-page .nav-links a { color: #17324a !important; font: 600 1rem/1.4 var(--sans) !important; padding: 12px 16px; letter-spacing: 0; text-transform: none; }
  .marketing-page .nav-phone { margin: 0; border: 1px solid #d3dce0; }
}
@media (max-width: 980px) {
  .marketing-page .point-hero-layout { grid-template-columns: 1fr; gap: 30px; }
  .marketing-page .point-quote-card { max-width: 640px; }
  .marketing-page .hero-glass .hero-inner { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .marketing-page .hero-glass .hero-glass-card { width: 100%; max-width: 640px; }
  .marketing-page .airport-quote-band { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 680px) {
  .marketing-page { font-size: 16px; }
  .marketing-page .section { padding: 52px 20px; }
  .marketing-page .page-hero { display: block; min-height: 0; padding-top: 90px; background: #f7f4ee; }
  .marketing-page .page-hero>img { position: relative; height: 180px; width: 100%; object-fit: cover; }
  .marketing-page .page-hero::after { display: none; }
  .marketing-page .page-hero-content { width: 100%; margin: 0; padding: 28px 20px 38px; }
  .marketing-page .page-hero h1,.marketing-page .page-hero p { color: #17324a; text-shadow: none; }
  .marketing-page .page-hero h1 em,.marketing-page .page-hero .kicker { color: #805719 !important; }
  .marketing-page .page-hero h1,.marketing-page .hero-glass h1,.marketing-page .wed-hero h1 { font-size: clamp(2.125rem,8.8vw,2.8rem) !important; line-height: 1.12 !important; }
  .marketing-page .hero-copy h1 { margin: 14px 0 18px; }
  .marketing-page .hero-glass .hero-copy { padding-top: 0; }
  .marketing-page .hero-glass .hero-inner { width: calc(100% - 36px); gap: 24px; }
  .marketing-page .hero-actions { gap: 10px; margin-top: 24px; }
  .marketing-page .hero-actions .button { width: 100%; justify-content: center; }
  .marketing-page .page-hero .button-gold { background: #17324a !important; color: #fff !important; border-color: #17324a !important; }
  .marketing-page .page-hero .button-ghost { background: #fffdf8 !important; color: #17324a !important; border-color: #82929d !important; }
  .marketing-page .point-page-hero { position: relative; padding-top: 0; background: #f7f4ee; }
  .marketing-page .point-page-hero>img { position: absolute; inset: 0; height: 560px; object-position: 65% center; }
  .marketing-page .point-page-hero::after { display: block; height: 560px; background: linear-gradient(180deg,rgba(7,23,35,.91) 0%,rgba(7,23,35,.88) 67%,#f7f4ee 100%); }
  .marketing-page .point-hero-layout { position: relative; width: 100%; padding: 108px 18px 32px; gap: 22px; }
  .marketing-page .point-hero-intro h1,.marketing-page .point-hero-intro p { color: #fff; }
  .marketing-page .point-hero-intro .kicker { color: #f0d695 !important; margin-block: 0 10px; }
  .marketing-page .point-hero-intro h1 { margin: 10px 0 14px; font-size: clamp(2rem,8.5vw,2.6rem) !important; }
  .marketing-page .point-hero-intro>p:last-child { margin-bottom: 0; }
  .marketing-page .point-hero-intro .breadcrumb { margin-top: 0; margin-bottom: 12px; }
  .marketing-page .point-quote-card,.marketing-page .airport-quote-card { padding: 22px 18px; }
  .marketing-page .editorial { gap: 18px; }
  .marketing-page .detail-list div { grid-template-columns: 26px minmax(0,1fr); gap: 10px; }
  .marketing-page .detail-list p { grid-column: 2; }
  .marketing-page .related-grid,.marketing-page .feature-cards { grid-template-columns: minmax(0,1fr); }
  .marketing-page .related-grid { gap: 14px; margin-top: 26px; }
  .marketing-page .related-card div { padding: 22px; }
  .marketing-page .feature-cards article { padding: 24px; }
  .marketing-page .service-cta { border-radius: 0 !important; gap: 22px; }
  .marketing-page .service-cta .button { width: 100%; justify-content: center; }
  .marketing-page .quote-form { padding: 24px 18px !important; min-width: 0; }
  .marketing-page .form-grid,.marketing-page .mini-row { gap: 16px; min-width: 0; }
  .marketing-page .form-grid>*,.marketing-page .mini-row>* { min-width: 0; }
  .marketing-page .quote-actions { gap: 12px; }
  .marketing-page .quote-actions .button { width: 100%; justify-content: center; }
  .marketing-page .vehicle-quote-card,.marketing-page .hero-vehicle-option { min-width: 0; }
  .marketing-page .airport-quote-trust span { font-size: .75rem; letter-spacing: 0; }
  .marketing-page .floating-whatsapp { font-size: .8125rem; letter-spacing: 0; }
  .marketing-page.has-mobile-actions { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .marketing-page.has-mobile-actions .floating-whatsapp { bottom: calc(88px + env(safe-area-inset-bottom)); right: 14px; }
  .marketing-page.has-mobile-actions .mobile-journey-actions { position: fixed; z-index: 95; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid #ccd5da; background: #fffdf8; box-shadow: 0 -4px 22px rgba(15,35,50,.09); }
  .marketing-page .mobile-journey-actions a { display: flex; justify-content: center; align-items: center; min-height: 48px; border-radius: 12px; padding: 10px; text-decoration: none; font-size: .9375rem; font-weight: 700; background: #17324a; color: #fff; }
  .marketing-page .mobile-journey-actions a:last-child { background: #efe5d1; color: #17324a; }
  .marketing-page.menu-open .mobile-journey-actions,.marketing-page.menu-open .floating-whatsapp { visibility: hidden; }
}

/* Mobile instant-estimate row: keep Safari's date outline complete and passengers compact. */
@media (max-width:680px) {
  .marketing-page .airport-quote-card .mini-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) 96px;
    gap:12px;
    align-items:start;
    width:100%;
  }
  .marketing-page .airport-quote-card .mini-row>label {
    min-width:0;
    width:100%;
    overflow:visible;
  }
  .marketing-page .airport-quote-card .mini-row input {
    display:block;
    box-sizing:border-box;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-width:100%!important;
    -webkit-min-logical-width:0!important;
    height:58px!important;
    min-height:58px!important;
    padding-inline:10px!important;
  }
  .marketing-page .airport-quote-card #heroDate {
    -webkit-appearance:none!important;
    appearance:none!important;
    position:relative;
    z-index:0;
    overflow:hidden;
    border:1px solid #8999a4!important;
    border-radius:var(--liquid-radius-small)!important;
    box-shadow:inset 0 0 0 1px rgba(137,153,164,.18)!important;
    background-clip:padding-box!important;
    font-size:.875rem!important;
  }
  .marketing-page .airport-quote-card #heroDate::-webkit-date-and-time-value {
    min-width:0;
    text-align:left;
  }
  .marketing-page .airport-quote-card #heroDate::-webkit-calendar-picker-indicator {
    margin:0;
    padding:0;
  }
  .marketing-page .airport-quote-card #heroPassengers {
    padding-inline:8px!important;
    text-align:center;
  }
}
