/* Public pages share the spacing and restrained finish of the approved home. */
.site-layout { --radius: 3px; --max: 1240px; --gutter: 36px; --header-h: 86px; }
.site-layout .brand img { height: 38px; }
.site-layout .section { padding: 88px 0; }
.site-layout .page-hero { background: #061f2c; padding: 72px 0 64px; }
.site-layout .page-hero::after { display: none; }
.site-layout .page-hero h1 { letter-spacing: -.035em; line-height: 1.12; }
.site-layout .page-hero .lead { color: #c8d5db; font-size: 1rem; line-height: 1.8; }
.site-layout .page-hero .eyebrow { color: #b5c7d0; }
.site-layout .site-footer { background: #041722; }
.site-layout .services-grid { gap: 24px; }
.site-layout .services-grid .service-block { padding: 32px; box-shadow: none; }
.site-layout .services-grid h2 { letter-spacing: -.025em; }
.site-layout .vehicle .car-cutout { background: #edf1f3; }
.site-layout .journey-summary { background: #f2f5f6; }
.site-layout .hire-option { padding: 24px; }
.site-layout .form-field input,
.site-layout .form-field select { min-height: 50px; }
@media (max-width: 960px) {
  .site-layout { --gutter: 24px; --header-h: 64px; }
}
@media (max-width: 680px) {
  .site-layout { --gutter: 20px; }
  .site-layout .brand img { height: 32px; }
  .site-layout .section { padding: 56px 0; }
  .site-layout .page-hero { padding: 44px 0 40px; }
  .site-layout .page-hero h1 { font-size: clamp(2rem, 8vw, 2.8rem); }
  .site-layout .services-grid .service-block { padding: 24px; }
  .site-layout .hire-option { padding: 20px; }
  .site-layout .journey-summary { padding: 24px; }
  .site-layout .btn { padding-left: 20px; padding-right: 20px; }
}

/* The current page remains announced to screen readers, without a menu dot. */
.site-layout .main-nav a.nav-link[aria-current="page"]::after { display: none; }
.booking-wizard .journey-layout { display: block; max-width: 820px; margin: auto; }
.booking-wizard [hidden] { display: none !important; }
.booking-progress { display: flex; gap: 12px; list-style: none; padding: 0; margin: 0 auto 28px; max-width: 820px; scroll-margin-top: calc(var(--header-h) + 20px); }
.booking-progress li { flex: 1; padding: 12px 0; border-bottom: 2px solid var(--line); font-size: .85rem; color: var(--muted); }
.booking-progress li[aria-current] { border-color: var(--navy); color: var(--navy); font-weight: 600; }
.booking-step { display: grid; gap: 18px; }
.booking-step > h2 { font-size: 1.5rem; margin: 0; outline: none; }
.booking-wizard .hire-options { margin: 0; }
.booking-wizard .hire-options legend { font-size: .9rem; margin-bottom: 12px; }
.booking-wizard .hire-options .grid { gap: 10px; }
.booking-wizard .hire-option { padding: 14px; gap: 8px; }
.booking-wizard .hire-option strong { font-size: .85rem; margin-bottom: 0; }
.booking-wizard .hire-option span span { font-size: .8rem; margin-top: 6px; }
.booking-wizard .customer-details { margin: 0; gap: 18px; }
.booking-wizard .customer-details legend { display: none; }
.booking-wizard .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.booking-step-actions { display: flex; justify-content: space-between; gap: 12px; max-width: 820px; margin: 24px auto 0; }
.booking-step-actions .btn-primary { margin-left: auto; }
.booking-disclosure { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; }
.booking-disclosure summary { cursor: pointer; color: var(--navy); font-weight: 500; font-size: .9rem; }
.booking-disclosure .form-field { margin-top: 16px; }
.booking-disclosure .notice { margin: 14px 0 0; padding: 18px; }
.booking-wizard .journey-summary { padding: 24px; }
.booking-wizard .journey-summary .quote-status { margin-top: 18px; }
.booking-wizard .journey-summary .check-label { margin: 18px 0; }
.booking-review { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px 16px; font-size: .9rem; }
.booking-review dt { color: var(--muted); }
.booking-review dd { margin: 0; overflow-wrap: anywhere; }
.booking-refund-note { font-size: .85rem; }
@media(max-width:680px) {
  body:has(.booking-wizard) .page-hero { padding: 24px 0; }
  body:has(.booking-wizard) .page-hero h1 { font-size: 2rem; margin-bottom: 8px; }
  body:has(.booking-wizard) .page-hero .lead { margin-bottom: 0; line-height: 1.5; }
  body:has(.booking-wizard) .section { padding: 28px 0; }
  .booking-wizard .hire-options .grid { grid-template-columns: 1fr; }
  .booking-wizard .hire-option:not(:has(input:checked)) span span { display: none; }
  .booking-progress { gap: 10px; }
  .booking-progress li { font-size: .78rem; }
  .booking-wizard .journey-summary { padding: 20px; }
  .booking-wizard .form-field textarea { min-height: 70px; }
}

.booking-wizard .journey-summary > .eyebrow,
.booking-wizard .journey-summary > [data-hire-title],
.booking-wizard .journey-summary > [data-hire-description],
.booking-wizard .journey-summary > [data-hire-terms] { display: none; }
.booking-wizard .journey-summary .quote-status { border: 0; margin: 0; padding: 0 0 16px; }
.booking-wizard .booking-disclosure [data-fare-terms] { margin: 12px 0 0; font-size: .85rem; }
body[data-booking-step="1"] .page-hero, body[data-booking-step="2"] .page-hero { display: none; }
.booking-wizard .form-field { align-content: start; }

.booking-wizard .vehicle-passengers { grid-template-columns: minmax(0, 1fr) 90px; }
.booking-wizard .vehicle-passengers #passenger-help { grid-column: 1 / -1; }
@media(max-width:360px) { .booking-wizard .vehicle-passengers { grid-template-columns: 1fr; } .booking-wizard .vehicle-passengers .form-field:last-child { max-width: 100px; } }
.booking-address-results { border: 1px solid var(--line); background: #fff; border-radius: var(--radius); overflow: hidden; }
.booking-address-results button { display: block; text-align: left; width: 100%; min-height: 48px; padding: 12px; border: 0; border-bottom: 1px solid var(--line); color: var(--navy); background: white; font: inherit; font-size: .9rem; cursor: pointer; }
.booking-address-results button:hover, .booking-address-results button:focus-visible { background: var(--mist); outline: 2px solid var(--navy); outline-offset: -2px; }
.booking-address-results .maps-attribution { margin: 0; padding: 10px 12px; }
.booking-address-status { font-size: .8rem; color: var(--muted); }

.booking-wizard .vehicle-passengers > small { font-size: .8rem; color: var(--muted); grid-column: 1 / -1; }
