/* Keep the public navigation identical while the form remains a focused page. */
.booking-page .top-bar { min-height: 36px; padding: 7px 0; background: #173b8f; font-size: .78rem; }
.booking-page .top-bar__inner, .booking-page .site-header .nav { width: min(calc(100% - 48px), 1320px); }
.booking-page .top-bar__group { gap: 22px; }
.booking-page .site-header { box-shadow: 0 1px 0 rgb(15 23 42 / 8%); }
.booking-page .site-header .nav { min-height: 76px; }
.booking-page .site-header .brand { font-size: clamp(1.55rem, 2vw, 2rem); letter-spacing: -.025em; }
.booking-page .nav__links { gap: clamp(18px, 2vw, 30px); font-size: .9rem; }
.booking-page .nav__links .button { min-height: 46px; padding-inline: 24px; }
.booking-page .stops-charge-note { display: block; margin: 5px 0 0; color: #667085; font-size: .75rem; font-weight: 400; line-height: 1.5; }
.booking-page #return-pickup-details-help { color: #bd2028; }
.booking-review { display: grid; gap: 22px; scroll-margin-top: 90px; }
.booking-page [hidden] { display: none !important; }
.booking-review__heading { display: flex; gap: 16px; justify-content: space-between; align-items: center; }
.booking-review__eyebrow { margin: 0 0 5px; color: #6b7280; font-size: .75rem; font-weight: 500; }
.booking-review__heading h3 { margin: 0; color: #203880; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.2; letter-spacing: -.035em; }
.booking-review__edit { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; border: 1px solid #dce3ee; border-radius: 12px; padding: 12px 14px; background: #fff; color: #203880; font: inherit; font-size: .85rem; cursor: pointer; }
.booking-review__intro { margin: -8px 0 0; color: #667085; font-size: .9rem; line-height: 1.55; }
.booking-review__legs { display: grid; gap: 16px; }
.booking-review__leg { border: 1px solid #dce3ee; border-radius: 18px; padding: 22px; min-width: 0; }
.booking-review h4 { margin: 0 0 14px; color: #1d2939; font-size: 1rem; font-weight: 600; }
.booking-review__pickup { display: grid; gap: 5px; padding: 14px 16px; border-radius: 12px; background: #f1f4fb; }
.booking-review__pickup span { color: #667085; font-size: .76rem; }
.booking-review__pickup strong { color: #203880; font-size: 1rem; font-weight: 600; }
.booking-review__route { list-style: none; margin: 20px 0 0; padding: 0; }
.booking-review__route li { position: relative; padding: 0 0 18px 24px; color: #263247; font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; }
.booking-review__route li::before { position: absolute; top: 7px; left: 0; width: 8px; height: 8px; content: ""; border: 2px solid #294489; border-radius: 50%; background: white; }
.booking-review__route li:not(:last-child)::after { position: absolute; top: 19px; bottom: 0; left: 5px; border-left: 1px solid #ccd4e3; content: ""; }
.booking-review__route li:last-child { padding-bottom: 0; }
.booking-review__route li:last-child::before { border-radius: 2px; background: #294489; }
.booking-review__flight { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid #edf0f6; color: #667085; font-size: .85rem; }
.booking-review__details { display: grid; gap: 18px; padding: 4px 2px; }
.booking-review__details section { min-width: 0; }
.booking-review__details h4 { margin-bottom: 7px; }
.booking-review__details p { margin: 3px 0; overflow-wrap: anywhere; color: #667085; font-size: .9rem; line-height: 1.6; }
.booking-review__fare { padding: 22px; border-radius: 16px; background: #f0f4ff; border: 1px solid #d6dff5; }
.booking-review__fare > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px; }
.booking-review__fare h4 { margin: 0; }
.booking-review__fare strong { font-size: 1.55rem; color: #203880; line-height: 1.35; }
.booking-review__fare p { color: #5c6780; font-size: .8rem; line-height: 1.55; margin: 12px 0 0; }
.booking-review__fare-legs { display: grid; gap: 16px; margin: 0 0 20px; padding: 0 0 20px; border-bottom: 1px solid #cdd8ef; }
.booking-review__fare-legs > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.booking-review__fare-legs dt { color: #26375e; font-size: 15px; font-weight: 600; }
.booking-review__fare-legs dt small { display: block; margin-top: 4px; color: #5c6780; font-size: 12px; font-weight: 400; }
.booking-review__fare-legs dd { margin: 0; color: #203880; font-size: 19px; font-weight: 600; text-align: right; }
@media (max-width: 380px) { .booking-review__fare-legs > div { grid-template-columns: minmax(0, 1fr); gap: 6px; } .booking-review__fare-legs dd { text-align: left; } }
.booking-review__confirm { margin: 0; align-items: flex-start; }
.booking-policy-links { margin: 0; color: #5c6780; font-size: .8rem; line-height: 1.6; }
.booking-policy-links a, .booking-policy-footer a { color: #203880; text-decoration: underline; text-underline-offset: 3px; }
.booking-policy-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; padding: 0 20px 28px; font-size: .8rem; }
.booking-policy-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.booking-review__confirm input { flex: 0 0 auto; margin-top: 3px; width: 20px; height: 20px; }
.booking-review #send-booking { width: 100%; min-height: 54px; gap: 10px; }
.booking-review #send-booking:disabled:not([aria-busy="true"]) { opacity: .55; box-shadow: none; cursor: not-allowed; }
.booking-send-spinner { width: 18px; height: 18px; border: 2px solid rgb(255 255 255 / 35%); border-top-color: #fff; border-radius: 50%; animation: booking-spin .8s linear infinite; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
@media (min-width: 768px) { .booking-review__details { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .booking-page .top-bar { display: block; } }
@media (min-width: 1200px) { .booking-page .nav__links { display: flex; } .booking-page .menu-button { display: none; } }
@media (min-width: 768px) and (max-width: 1199px) { .booking-page .site-header .nav { min-height: 72px; } }
@media (max-width: 1023px) { .booking-page .top-bar { display: none; } }
@media (max-width: 767px) {
  .booking-page .site-header .nav { width: min(calc(100% - 32px), 420px); min-height: 70px; }
  .booking-page .site-header .brand { font-size: clamp(1.2rem, 5.9vw, 1.48rem); }
  .booking-page .site-header .brand i { font-size: 1.2em; }
  .booking-page .site-header .mobile-menu { top: 70px; }
  .booking-review { gap: 18px; }
  .booking-review__heading { gap: 10px; align-items: start; }
  .booking-review__edit { font-size: .75rem; padding: 11px; }
  .booking-review__edit i { display: none; }
  .booking-review__leg, .booking-review__fare { padding: 16px; }
  .booking-review__pickup { padding: 12px; }
  .booking-review__pickup strong { font-size: .94rem; }
  .booking-page .additional-pickups__heading > div { min-width: 0; }
  .booking-page .additional-pickups__add { flex-shrink: 0; }
}
@media (prefers-reduced-motion: reduce) { .booking-send-spinner { animation-duration: 1.6s; } }
