/* Ruta clara: scoped booking surfaces; the approved Home remains unchanged. */
.booking-page { background: #f5f7fa; }
.booking-header { background: #fff; border-bottom: 1px solid var(--line); }
.booking-header-inner { display: flex; align-items: center; gap: 28px; min-height: 88px; }
.booking-header .brand { flex-shrink: 0; }
.booking-support { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 22px; margin-left: auto; }
.booking-support > span { width: 100%; text-align: right; font-size: 13px; color: var(--muted); }
.booking-support a { display: inline-flex; gap: 8px; align-items: center; min-height: 32px; font-size: 14px; font-weight: 700; text-decoration: none; }
.booking-support .booking-icon { width: 18px; height: 18px; flex-basis: 18px; }
.booking-language { background: none; border: 0; border-left: 1px solid var(--line); padding: 12px 0 12px 24px; color: var(--navy); font: inherit; font-size: 14px; cursor: pointer; text-underline-offset: 4px; }
.booking-footer { border-top: 1px solid var(--line); background: #fff; padding: 22px 0; color: var(--muted); font-size: 13px; }
.booking-footer .shell, .booking-footer nav { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.booking-footer a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 4px; }
.booking-header :is(a,button):focus-visible, .booking-footer a:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.booking-intro { background: #f5f8fc; border-bottom: 1px solid var(--line); padding: 24px 0 32px; }
.booking-intro .shell { position: relative; }
.booking-icon { display: inline-block; width: 22px; height: 22px; flex: 0 0 22px; object-fit: contain; vertical-align: middle; }
.booking-back { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; text-decoration: none; color: var(--muted); }
.booking-back:hover { text-decoration: underline; }
.booking-kicker { display: block; color: var(--muted); font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.booking-heading { margin-top: 20px; }
.booking-heading h1 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -.045em; line-height: 1.15; margin: 0 0 14px; }
.booking-heading p { margin: 0; max-width: 780px; font-size: 17px; line-height: 1.6; color: var(--muted); }
.booking-progress { position: absolute; top: 3px; right: 0; display: flex; gap: 36px; padding: 0; margin: 0; list-style: none; }
.booking-progress li, .booking-progress a { display: flex; align-items: center; gap: 10px; text-decoration: none; font-size: 14px; font-weight: 700; color: var(--muted); }
.booking-progress li + li { position: relative; }
.booking-progress li + li::before { content: ''; position: absolute; width: 22px; height: 2px; left: -29px; background: var(--line); }
.booking-progress b { border: 1px solid #adbccb; border-radius: 50%; display: grid; place-items: center; width: 34px; height: 34px; background: white; }
.booking-progress [aria-current=step] { color: var(--navy); }
.booking-progress [aria-current=step] b { background: var(--gold); border-color: var(--gold); }
.booking-progress .is-complete b { border-color: var(--gold); background: #fff6dc; }
.booking-content { padding: 28px 0 64px; }
.booking-itinerary { display: grid; grid-template-columns: minmax(0,2fr) minmax(180px,.8fr) minmax(145px,.6fr); gap: 28px; background: var(--navy); color: white; padding: 22px 26px; border-radius: 12px 12px 0 0; }
.booking-itinerary .booking-icon { filter: invert(1); opacity: .85; }
.booking-route, .itinerary-fact { display: flex; align-items: flex-start; gap: 14px; }
.booking-itinerary span { display: block; font-size: 13px; color: #d3dfed; margin-bottom: 6px; }
.booking-itinerary strong { font-size: 15px; line-height: 1.6; display: block; }
.booking-route > .booking-icon, .itinerary-fact > .booking-icon { margin-top: 5px; }
.booking-route strong .booking-icon { width: 17px; height: 17px; margin: 0 5px; }
.booking-edit { border: 1px solid var(--line); border-radius: 0 0 12px 12px; background: #fff; }
.booking-edit > summary { display: flex; justify-content: space-between; gap: 16px; padding: 12px 24px; min-height: 48px; font-size: 14px; font-weight: 700; cursor: pointer; }
.booking-edit > summary::marker, .checkout-summary-details > summary::marker, .checkout-inclusions > summary::marker, .checkout-discount > summary::marker { content: ''; }
.booking-edit summary::-webkit-details-marker, .checkout-summary-details summary::-webkit-details-marker, .checkout-inclusions summary::-webkit-details-marker, .checkout-discount summary::-webkit-details-marker { display: none; }
.booking-edit[open] > summary > .booking-icon, .checkout-summary-details[open] > summary > .booking-icon, .checkout-inclusions[open] > summary > .booking-icon, .checkout-discount[open] > summary > .booking-icon:last-child { transform: rotate(180deg); }
.booking-edit .quote-card { margin: 12px 24px 24px; width: calc(100% - 48px); max-width: none; }
.booking-edit .radio-pill b { font-size: 13px; }
.booking-edit .quote-control small { font-size: 12px; }
.booking-edit .quote-control strong, .booking-edit [data-destination-input] { font-size: 15px; }
.booking-results-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 14px; margin: 26px 0 18px; color: var(--muted); }
.booking-results-top p { display: flex; align-items: center; gap: 10px; margin: 0; }
.booking-category-nav { display: flex; flex-wrap: wrap; gap: 8px 26px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.booking-category-nav a { padding: 10px 0 14px; text-decoration: none; font-size: 15px; font-weight: 700; border-bottom: 2px solid transparent; }
.booking-category-nav a:first-child, .booking-category-nav a:hover { border-color: var(--gold); }
.booking-family-list { display: grid; gap: 32px; }
.booking-family { display: grid; grid-template-columns: 30% minmax(0,1fr); border: 1px solid var(--line); border-radius: 16px; background: white; overflow: hidden; }
.booking-featured { border: 2px solid var(--gold); }
.booking-family-visual { padding: 30px 26px; background: #f4f7fb; min-width: 0; }
.booking-family-visual h2 { font-size: 27px; line-height: 1.2; letter-spacing: -.035em; margin: 16px 0 12px; scroll-margin-top: 100px; }
.booking-family-visual p { font-size: 15px; color: var(--muted); line-height: 1.6; margin: 0; }
.booking-recommendation { display: inline-block; color: var(--navy); border-left: 3px solid var(--gold); padding: 2px 0 2px 10px; font-size: 13px; font-weight: 700; }
.booking-vehicle { display: block; width: 100%; height: 230px; object-fit: contain; margin: 24px auto 8px; mix-blend-mode: multiply; }
.booking-suburban { transform: scaleX(-1); }
.booking-model { display: block; text-align: center; font-size: 14px; font-weight: 700; }
.booking-family-visual .booking-image-note { text-align: center; font-size: 12px; margin-top: 7px; }
.booking-family-offers { min-width: 0; }
.booking-fares { display: grid; grid-template-columns: repeat(auto-fit,minmax(245px,1fr)); padding: 24px; gap: 18px; }
.booking-fare { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: column; }
.booking-fare-premium { background: #fffcf4; border-color: #e5c98a; }
.booking-fare-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 18px; }
.booking-fare-heading h3 { font-size: 22px; margin: 0; }
.booking-fare-heading > span { font-size: 13px; color: var(--muted); }
.booking-amount { display: flex; gap: 7px; align-items: baseline; }
.booking-amount strong { font-size: 36px; line-height: 1.2; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.booking-amount span { font-size: 14px; font-weight: 700; }
.booking-price-note { font-size: 13px; color: var(--muted); margin: 6px 0 16px; }
.booking-capacity { display: flex; flex-wrap: wrap; gap: 12px 16px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 18px; font-size: 13px; }
.booking-capacity > span { display: inline-flex; align-items: center; gap: 5px; }
.booking-capacity .booking-icon { width: 19px; height: 19px; flex-basis: 19px; margin-right: 3px; }
.booking-inclusion-label { margin: 0 0 12px; font-size: 14px; font-weight: 800; }
.booking-includes { list-style: none; padding: 0; margin: 0; }
.booking-includes li { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; font-size: 14px; line-height: 1.55; }
.booking-includes .booking-icon { height: 17px; width: 17px; flex-basis: 17px; margin-top: 3px; opacity: .7; }
.booking-fare-note { font-size: 14px; color: var(--muted); line-height: 1.65; margin: 0 0 20px; }
.booking-fare-form { margin-top: auto; padding-top: 20px; }
.booking-select { min-height: 52px; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 15px; }
.button-navy .booking-icon { filter: invert(1); }
.booking-select:disabled, .checkout-final:disabled { opacity: 1; background: #e4e9f0; border-color: #e4e9f0; color: #596b7e; cursor: not-allowed; box-shadow: none; }
.booking-shared { border-top: 1px solid var(--line); margin: 0 24px; padding: 22px 0 14px; }
.booking-shared h3 { display: flex; align-items: center; gap: 10px; font-size: 16px; margin: 0 0 18px; }
.booking-shared .booking-includes { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.booking-availability-note { display: flex; align-items: flex-start; gap: 12px; margin: 26px 0; font-size: 14px; line-height: 1.6; color: var(--muted); max-width: 960px; }
.booking-help { display: flex; align-items: center; justify-content: space-between; gap: 36px; border-top: 1px solid var(--line); padding: 30px 0 0; margin-top: 32px; }
.booking-help h2 { font-size: 25px; margin: 0 0 12px; }
.booking-help p { max-width: 650px; margin: 0; color: var(--muted); font-size: 16px; }
.booking-help .button { flex-shrink: 0; gap: 10px; }
.booking-error, .booking-fit-warning { background: #fff7ec; border-left: 3px solid #a65519; padding: 18px; border-radius: 6px; }
.booking-error { margin-bottom: 24px; }
.booking-error h2 { font-size: 22px; margin: 0 0 12px; }
.booking-fit-warning { font-size: 14px; }
.booking-no-fares { padding: 12px; font-size: 16px; }
.checkout-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; align-items: start; gap: 40px; padding: 36px 0 64px; }
.checkout-form { min-width: 0; }
.checkout-section { margin: 0 0 32px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.checkout-section legend { display: flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 800; padding: 0 8px; margin-left: -8px; }
.checkout-section legend .booking-icon { width: 25px; height: 25px; flex-basis: 25px; }
.checkout-section > p { margin: 0 0 24px; color: var(--muted); font-size: 15px; }
.checkout-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.checkout-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; font-size: 14px; }
.checkout-field > label { font-weight: 700; min-height: 23px; }
.checkout-field small { color: var(--muted); font-size: 12px; line-height: 1.5; font-weight: 400; }
.checkout-field > label small { font-weight: 400; white-space: nowrap; }
.checkout-input { position: relative; min-width: 0; }
.checkout-input > .booking-icon { position: absolute; left: 13px; top: 16px; width: 20px; height: 20px; pointer-events: none; opacity: .6; }
.checkout-field input, .checkout-field select, .checkout-field textarea { width: 100%; min-width: 0; min-height: 54px; padding: 13px; border: 1px solid #a9b9cc; border-radius: 7px; font: inherit; font-size: 16px; line-height: 1.5; background: white; color: var(--ink); box-shadow: 0 1px 2px #0b2b5705; }
.checkout-field input::placeholder, .checkout-field textarea::placeholder { color: #64758a; opacity: 1; }
.checkout-input.has-icon input { padding-left: 43px; }
.checkout-field input:hover, .checkout-field select:hover, .checkout-field textarea:hover { border-color: #6d84a0; }
.checkout-field [aria-invalid=true] { border-color: var(--error); background: #fff9f7; }
.checkout-field-error { color: var(--error) !important; font-weight: 600 !important; }
.checkout-phone-row { margin-top: 22px; }
.checkout-phone { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 10px; min-width: 0; }
.dial-control > span { position: absolute; top: 15px; left: 10px; font-size: 16px; }
.dial-control input { padding-left: 24px; }
.checkout-section .checkout-field-help { margin: 14px 0 0; font-size: 13px; }
.checkout-confirmed-hotel { display: flex; align-items: center; gap: 14px; padding: 17px; background: #f2f6fb; border-left: 3px solid var(--gold); border-radius: 4px; }
.checkout-confirmed-hotel > div { flex: 1; min-width: 0; }
.checkout-confirmed-hotel span, .checkout-confirmed-hotel strong { display: block; }
.checkout-confirmed-hotel span { font-size: 13px; color: var(--muted); }
.checkout-confirmed-hotel strong { font-size: 16px; margin: 3px 0; }
.checkout-flight-block { margin-top: 28px; }
.checkout-flight-block + .checkout-flight-block { border-top: 1px solid var(--line); padding-top: 24px; }
.checkout-flight-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.checkout-flight-heading h2 { display: flex; align-items: center; gap: 10px; font-size: 17px; margin: 0; }
.checkout-flight-heading time { font-size: 13px; font-weight: 700; padding: 5px 10px; background: #f0f4f8; border-radius: 4px; white-space: nowrap; }
.checkout-flight-block > p { font-size: 14px; color: var(--muted); margin: 0 0 20px; line-height: 1.6; }
.checkout-flight-fields { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
.checkout-flight-fields > :first-child { grid-column: 1/-1; max-width: 310px; }
.checkout-counter-fields { max-width: 560px; }
.checkout-counter { display: grid; grid-template-columns: 46px minmax(0,1fr) 46px; border: 1px solid #a9b9cc; border-radius: 7px; overflow: hidden; }
.checkout-counter input { border: 0; border-radius: 0; text-align: center; padding: 12px 2px; appearance: textfield; -moz-appearance: textfield; box-shadow: none; }
.checkout-counter input::-webkit-inner-spin-button, .checkout-counter input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.checkout-counter button { border: 0; background: #f1f5f9; display: grid; place-items: center; cursor: pointer; padding: 8px; }
.checkout-counter button:disabled { opacity: .35; cursor: default; }
.checkout-notes { margin-top: 24px; }
.checkout-discount { padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.checkout-discount > summary { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 700; font-size: 15px; cursor: pointer; }
.checkout-discount > summary > .booking-icon:last-child { margin-left: auto; }
.checkout-discount-fields { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; padding-top: 12px; }
.checkout-discount-fields button { min-height: 54px; }
.checkout-discount-status { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: #8c4218; margin: 16px 0 0; }
.checkout-discount-status.is-valid { color: #147a53; }
.checkout-price-review { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0; }
.checkout-price-review span, .checkout-price-review small { display: block; }
.checkout-price-review span { font-size: 16px; font-weight: 700; }
.checkout-price-review small { font-size: 13px; font-weight: 400; color: var(--muted); margin-top: 4px; }
.checkout-price-review > strong { font-size: 29px; white-space: nowrap; letter-spacing: -.04em; }
.checkout-price-review > strong > small { display: inline; font-weight: 700; }
.checkout-payment-unavailable { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid #e6cb9e; border-radius: 8px; background: #fff9ef; }
.checkout-payment-unavailable h2 { font-size: 16px; margin: 0 0 8px; }
.checkout-payment-unavailable p { font-size: 14px; line-height: 1.6; color: #59482e; margin: 0 0 12px; }
.checkout-payment-unavailable a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; font-weight: 700; font-size: 15px; }
.checkout-legal { font-size: 13px !important; margin: 20px 0 !important; line-height: 1.7; }
.checkout-final { width: 100%; min-height: 56px; gap: 10px; font-size: 16px; }
.checkout-summary { border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 12px; padding: 22px; background: #f6f9fc; position: sticky; top: 100px; min-width: 0; }
.checkout-summary-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.checkout-summary h2 { font-size: 21px; margin: 0; }
.checkout-summary-heading > span { font-size: 12px; font-weight: 700; color: var(--muted); }
.checkout-selected-vehicle { margin-bottom: 20px; }
.checkout-selected-vehicle .booking-vehicle { width: 100%; height: 165px; margin: 10px 0 0; }
.checkout-selected-vehicle h3 { margin: 6px 0; font-size: 17px; }
.checkout-selected-vehicle span { font-size: 14px; color: var(--muted); }
.checkout-summary-total { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.checkout-summary-total > span { font-size: 13px; max-width: 120px; }
.checkout-summary-total strong { font-size: 28px; white-space: nowrap; letter-spacing: -.04em; }
.checkout-summary-total small { font-size: 12px; letter-spacing: 0; }
.checkout-summary-details > summary { display: none; }
.checkout-summary-body { padding-top: 18px; }
.checkout-route-stops { position: relative; }
.checkout-route-stops::before { content: ''; position: absolute; top: 20px; left: 10px; bottom: 24px; border-left: 1px solid var(--gold); }
.checkout-route-stops > div { display: flex; align-items: flex-start; gap: 12px; position: relative; }
.checkout-route-stops .booking-icon { background: #f6f9fc; margin-top: 5px; }
.checkout-route-stops p { margin: 0 0 14px; }
.checkout-route-stops small { display: block; font-size: 12px; color: var(--muted); }
.checkout-route-stops strong { display: block; font-size: 14px; line-height: 1.5; margin-top: 2px; }
.checkout-trip-facts { margin: 10px 0 0; }
.checkout-autocomplete { position: relative; }
.checkout-autocomplete [hidden] { display: none !important; }
.checkout-autocomplete-options { position: absolute; z-index: 25; inset: calc(100% + 6px) 0 auto; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; background: #fff; border: 1px solid #bcc8d6; border-radius: 8px; box-shadow: 0 12px 28px #0825481a; padding: 4px; }
.checkout-autocomplete-options.opens-above { top: auto; bottom: calc(100% + 6px); }
.checkout-autocomplete-options [role="option"] { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px; border-radius: 4px; font-size: 15px; cursor: pointer; }
.checkout-autocomplete-options [role="option"]:hover, .checkout-autocomplete-options [aria-selected="true"] { background: #eef3f8; color: var(--navy); }
.checkout-autocomplete-options img, .checkout-country-flag { flex-shrink: 0; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px #08254820; }
.checkout-autocomplete-options small { margin-left: auto; color: #53647a; }
.checkout-autocomplete-options p { padding: 8px 10px; font-size: 14px; line-height: 1.5; }
.checkout-country-flag { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.checkout-input input.checkout-country-search { padding-left: 49px; padding-right: 12px; }
.checkout-trip-facts > div { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding: 9px 0; }
.checkout-trip-facts dt { font-size: 13px; color: var(--muted); display: flex; align-items: center; gap: 9px; }
.checkout-trip-facts dt .booking-icon { width: 18px; height: 18px; flex-basis: 18px; }
.checkout-trip-facts dd { margin: 0; font-size: 13px; font-weight: 700; text-align: right; }
.checkout-inclusions { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 6px; }
.checkout-inclusions summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-weight: 700; font-size: 13px; }
.checkout-inclusions .booking-includes { padding-top: 12px; }
.checkout-inclusions .booking-includes li { font-size: 13px; }
.checkout-change { display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-size: 13px; font-weight: 700; text-underline-offset: 3px; }
.checkout-help { margin: 10px -22px -22px; padding: 16px 22px; background: #eaf0f7; border-radius: 0 0 12px 12px; }
.checkout-help strong { display: block; font-size: 13px; margin-bottom: 4px; }
.checkout-help a { display: flex; gap: 9px; align-items: center; min-height: 36px; font-size: 15px; font-weight: 700; text-decoration: none; }
.checkout-discount-applied { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; color: #147a53; font-size: 13px; }
.booking-recovery { min-height: 50vh; max-width: 850px; padding-top: 60px; }
.booking-recovery p { font-size: 18px; line-height: 1.7; }
:is(.booking-content,.checkout-layout,.booking-intro) :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
@media (max-width: 1100px) {
 .booking-family { grid-template-columns: 1fr; }
 .booking-family-visual { display: grid; grid-template-columns: 1fr 300px; padding: 24px 30px; align-items: center; }
 .booking-family-visual h2, .booking-family-visual p, .booking-recommendation { grid-column: 1; }
 .booking-family-visual .booking-vehicle { grid-column: 2; grid-row: 1/5; height: 170px; margin: 0; }
 .booking-family-visual .booking-model { grid-column: 2; }
 .booking-family-visual .booking-image-note { grid-column: 1; text-align: left; }
 .checkout-layout { grid-template-columns: minmax(0,1fr) 310px; gap: 24px; }
 .checkout-fields { grid-template-columns: 1fr; }
 .checkout-flight-fields { grid-template-columns: 1fr 1fr; }
 .checkout-counter-fields { grid-template-columns: 1fr 1fr; }
 .checkout-section { padding: 20px; }
 .booking-itinerary { grid-template-columns: minmax(0,1.6fr) minmax(150px,1fr); }
 .booking-itinerary .itinerary-fact:last-child { grid-column: 2; }
 .booking-route { grid-row: 1/3; }
}
@media (max-width: 767px) {
 .booking-intro { padding: 12px 0 22px; }
 .booking-progress { position: static; margin: 12px 0 20px; gap: 36px; }
 .booking-progress li, .booking-progress a { font-size: 13px; gap: 8px; }
 .booking-progress b { width: 30px; height: 30px; }
 .booking-heading { margin: 0; }
 .booking-heading h1 { font-size: 29px; margin-bottom: 10px; }
 .booking-heading p { font-size: 15px; }
 .booking-kicker { display: none; }
 .booking-back { font-size: 13px; }
 .booking-content { padding-top: 20px; }
 .booking-itinerary { grid-template-columns: 1fr 1fr; padding: 18px; gap: 18px; }
 .booking-route { grid-column: 1/-1; grid-row: auto; }
 .booking-itinerary .itinerary-fact:last-child { grid-column: auto; }
 .booking-itinerary strong { font-size: 14px; }
 .booking-itinerary span { font-size: 12px; }
 .booking-itinerary .itinerary-fact { gap: 8px; }
 .booking-results-top { margin: 20px 0 10px; font-size: 13px; }
 .booking-results-top > span { display: none; }
 .booking-category-nav { gap: 0 20px; }
 .booking-category-nav a { font-size: 13px; }
 .booking-family-visual { grid-template-columns: 1fr 180px; padding: 22px; }
 .booking-family-visual h2 { font-size: 24px; }
 .booking-family-visual .booking-vehicle { height: 150px; }
 .booking-fares { padding: 18px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
 .booking-fare { padding: 16px; }
 .booking-fare-heading { flex-wrap: wrap; }
 .booking-amount strong { font-size: 30px; }
 .booking-shared { margin: 0 18px; }
 .booking-help { flex-direction: column; align-items: stretch; gap: 22px; }
 .checkout-layout { display: flex; flex-direction: column; gap: 28px; padding-top: 20px; }
 .checkout-form { width: 100%; }
 .checkout-summary { order: -1; width: 100%; position: static; padding: 16px 18px; }
 .checkout-summary-heading h2 { font-size: 17px; }
 .checkout-selected-vehicle { display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 12px; margin: 6px 0 12px; }
 .checkout-selected-vehicle .booking-vehicle { width: 140px; height: 85px; flex-shrink: 0; margin: 0; }
 .checkout-selected-vehicle h3 { font-size: 16px; }
 .checkout-selected-vehicle span { font-size: 13px; }
 .checkout-summary-total { padding: 12px 0; }
 .checkout-summary-total > span { max-width: none; }
 .checkout-summary-total strong { font-size: 25px; }
 .checkout-summary-details > summary { display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 700; cursor: pointer; min-height: 44px; }
 .checkout-change { min-height: 36px; }
 .checkout-help { display: none; }
 .checkout-fields { grid-template-columns: 1fr 1fr; }
 .checkout-flight-fields { grid-template-columns: 1fr 1fr; }
 .checkout-section { padding: 20px; margin-bottom: 28px; }
 .checkout-section legend { font-size: 20px; }
 .checkout-section > p { font-size: 14px; }
 .checkout-summary-body { padding-top: 8px; }
}
@media (max-width: 520px) {
 .booking-family-visual { grid-template-columns: 1fr 130px; padding: 20px 16px; column-gap: 10px; }
 .booking-family-visual h2 { font-size: 22px; }
 .booking-family-visual p { font-size: 14px; }
 .booking-family-visual .booking-vehicle { height: 110px; }
 .booking-recommendation { font-size: 11px; }
 .booking-family-visual .booking-model { font-size: 12px; }
 .booking-family-visual .booking-image-note { grid-column: 1/-1; font-size: 11px; margin-top: 12px; }
 .booking-fares { grid-template-columns: 1fr; padding: 14px; }
 .booking-fare { padding: 20px; }
 .booking-fare-heading { flex-wrap: nowrap; }
 .booking-fare-heading h3 { font-size: 21px; }
 .booking-amount strong { font-size: 35px; }
 .booking-shared .booking-includes { grid-template-columns: 1fr; }
 .booking-itinerary { padding: 16px; gap: 16px 10px; }
 .booking-itinerary .itinerary-fact > .booking-icon { display: none; }
 .booking-edit .quote-card { margin: 12px; width: calc(100% - 24px); }
 .booking-edit .quote-fields-row { grid-template-columns: minmax(0,1fr); }
 .booking-edit > summary { padding: 12px 16px; }
 .checkout-fields, .checkout-flight-fields { grid-template-columns: 1fr; }
 .checkout-flight-fields > :first-child { max-width: none; }
 .checkout-counter-fields { grid-template-columns: 1fr 1fr; gap: 14px; }
 .checkout-counter { grid-template-columns: 35px minmax(0,1fr) 35px; }
 .checkout-counter .booking-icon { width: 18px; height: 18px; }
 .checkout-section { padding: 18px 16px; }
 .checkout-section legend { font-size: 18px; gap: 9px; }
 .checkout-flight-heading { align-items: flex-start; flex-wrap: wrap; }
 .checkout-confirmed-hotel { padding: 14px 10px; gap: 8px; }
 .checkout-confirmed-hotel > .booking-icon:last-child { display: none; }
 .checkout-confirmed-hotel strong { font-size: 15px; }
 .checkout-price-review { flex-wrap: wrap; gap: 12px; }
 .checkout-payment-unavailable { padding: 14px; gap: 8px; }
 .checkout-payment-unavailable > .booking-icon { display: none; }
 .checkout-selected-vehicle .booking-vehicle { width: 105px; height: 70px; }
 .checkout-discount-fields { gap: 10px; }
 .checkout-discount-fields button { padding: 12px 16px; }
 .checkout-discount > summary { font-size: 14px; }
 .checkout-final { font-size: 14px; padding: 14px 10px; }
}
@media (prefers-reduced-motion: reduce) {
 .booking-content *, .checkout-layout *, .booking-intro * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
.booking-family-preferred { outline:2px solid var(--gold); outline-offset:5px; }
/* Form focus and native validation must not compete with smooth page scrolling. */
html { scroll-behavior: auto; }

/* OTA comparison: keep the buying decision above editorial explanation. */
.booking-results-intro { padding: 10px 0 18px; }
.booking-results-intro .booking-heading { margin-top: 6px; }
.booking-results-intro .booking-heading h1 { font-size: 32px; margin-bottom: 6px; }
.booking-results-intro .booking-heading p { font-size: 16px; line-height: 1.5; }
.booking-results-content { padding-top: 16px; }
.booking-results-content .booking-itinerary { padding: 14px 20px; gap: 20px; }
.booking-results-content .booking-itinerary strong { font-size: 14px; line-height: 1.5; }
.booking-results-content .booking-itinerary span { margin-bottom: 3px; }
.booking-results-content .booking-edit > summary { min-height: 44px; padding: 10px 20px; }
.booking-results-content .booking-results-top { margin: 8px 0; min-height: 40px; }
.booking-reputation { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 40px; color: var(--navy); text-decoration: none; }
.booking-reputation:hover span { text-decoration: underline; }
.booking-reputation svg { width: 19px; height: 19px; fill: var(--gold); flex-shrink: 0; }
.booking-reputation strong { font-size: 17px; }
.booking-reputation small { font-size: 13px; font-weight: 500; }
.booking-reputation span { font-size: 13px; text-underline-offset: 3px; }
.booking-results-content .booking-category-nav { margin-bottom: 16px; }
.booking-results-content .booking-category-nav a { padding: 8px 0 10px; min-height: 44px; }
.booking-results-content .booking-fares { padding: 18px; gap: 16px; }
.booking-results-content .booking-fare { padding: 18px; }
.booking-results-content .booking-fare-heading { margin-bottom: 10px; }
.booking-results-content .booking-capacity { padding: 10px 0; margin-bottom: 12px; }
.booking-results-content .booking-price-note { margin-bottom: 12px; }
.booking-results-content .booking-fare-form { margin-top: 0; padding-top: 0; margin-bottom: 20px; }
.booking-results-content .booking-inclusion-label { padding-top: 16px; border-top: 1px solid var(--line); }
.booking-results-content .booking-family-visual { padding: 22px; }
.booking-results-content .booking-family-visual h2 { margin-top: 12px; }
.checkout-intro { padding: 14px 0 24px; background: none; border-bottom: 0; }
.checkout-intro .booking-heading { margin-top: 8px; }
.checkout-intro .booking-kicker { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.checkout-intro .booking-heading h1 { font-size: 32px; margin-bottom: 8px; }
.checkout-intro .booking-heading p { font-size: 16px; }
button.booking-back, button.checkout-change { border: 0; background: none; font-family: inherit; cursor: pointer; padding: 0; }
button.checkout-change { width: 100%; color: var(--navy); text-align: left; }
.checkout-layout { padding-top: 0; gap: 32px; grid-template-columns: minmax(0, 1fr) 380px; }
.checkout-section { background: #fff; padding: 28px; margin-bottom: 28px; }
.checkout-section { border-top: 3px solid var(--gold); }
.checkout-section-title { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; font-size: 21px; }
.checkout-section-title .booking-icon { width: 25px; height: 25px; }
.checkout-section legend.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.booking-language { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.booking-language svg { width: 22px; height: 16px; flex-shrink: 0; }
.checkout-map-link { display: flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 18px; font-size: 13px; font-weight: 700; color: var(--navy); }
.checkout-payment-options { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; margin: 20px 0; }
.checkout-payment-option { display: flex; gap: 12px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; }
.checkout-payment-option:has(:checked) { border-color: var(--gold-dark); background: var(--sand); box-shadow: inset 0 0 0 1px var(--gold-dark); }
.checkout-payment-option:focus-within { outline: 2px solid var(--navy); outline-offset: 3px; }
.checkout-payment-option input { accent-color: var(--navy); width: 20px; height: 20px; flex: 0 0 20px; margin: 3px 0 0; }
.checkout-payment-option-content { display: flex; flex-direction: column; gap: 10px; min-width: 0; font-size: 14px; line-height: 1.5; }
.checkout-payment-option-title { display: flex; gap: 8px; align-items: center; font-size: 16px; }
.checkout-payment-option small { color: var(--muted); font-size: 12px; }
.payment-recovery-main { width: 100%; min-width: 0; }
.recovery-methods { border: 0; padding: 0; margin: 22px 0 0; display: grid; grid-template-columns: 1.3fr 1fr; gap: 12px; }
.checkout-intro:has(+ .payment-recovery) h1 { font-size: clamp(30px,3.4vw,44px); }
.checkout-intro:has(+ .payment-recovery) p { margin: 10px 0 0; }
.recovery-methods legend { padding: 0 0 12px; font-weight: 700; }
.recovery-methods .checkout-payment-option { padding: 16px; }
.recovery-methods .checkout-payment-option-content { gap: 7px; }
.recovery-provider-note { font-size: 13px; line-height: 1.6; color: var(--muted); }
.payment-recovery .checkout-section { border-top: 3px solid var(--gold); }
.recovery-reference { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 10px 0 18px; }
.recovery-reference > strong { font-size: 22px; letter-spacing: .025em; }
.recovery-status { color: var(--navy); background: var(--sand); padding: 5px 10px; border-radius: 6px; font-size: 13px; }
.recovery-pay-total { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0 12px; }
.recovery-pay-total strong { font-size: 26px; white-space: nowrap; }
.recovery-assurance { display: flex; align-items: flex-start; justify-content: center; gap: 8px; font-size: 14px; margin-top: 14px; }
.recovery-assurance svg { flex-shrink: 0; width: 19px; height: 19px; }
.recovery-help { margin-top: 28px; border-top: 1px solid var(--line); padding-top: 20px; font-size: 15px; }
.recovery-help > a { display: inline-flex; align-items: center; gap: 8px; }
.recovery-unavailable { border-left: 3px solid var(--gold); padding: 10px 14px; background: var(--sand); }
.payment-recovery .checkout-payment-option small { font-size: 13px; }
@media (max-width: 767px) {
 .payment-recovery > .checkout-summary { order: 1; }
 .checkout-intro:has(+ .payment-recovery) { padding-bottom: 18px; }
 .payment-recovery .recovery-reference { padding-top: 0; padding-bottom: 8px; }
 .recovery-methods { grid-template-columns: minmax(0,1fr); }
 .payment-recovery .checkout-payment-option { padding: 16px; }
 .payment-recovery .checkout-payment-option-content { gap: 6px; }
 .payment-recovery .checkout-payment-security { font-size: 14px; }
 .payment-recovery .checkout-section { padding: 20px 16px; }
 .recovery-pay-total strong { font-size: 23px; }
}
.checkout-wallets { display: flex; gap: 8px; flex-wrap: wrap; }
.checkout-wallets span { border: 1px solid var(--line); border-radius: 5px; padding: 5px 8px; background: var(--paper); font-size: 12px; font-weight: 700; }
.checkout-payment-security { display: flex; gap: 12px; padding: 18px; background: var(--blue-pale); border-radius: 8px; font-size: 14px; margin-bottom: 24px; }
.checkout-payment-security p { margin: 6px 0 0; color: var(--muted); line-height: 1.65; }
.checkout-payment-preview { display: flex; gap: 10px; color: var(--muted); font-size: 13px; line-height: 1.6; }
@media (max-width: 767px) { .checkout-payment-options { grid-template-columns: minmax(0,1fr); } }
.checkout-field { font-size: 15px; }
.checkout-field small, .checkout-section .checkout-field-help { font-size: 13px; }
.checkout-summary { background: #fff; top: 24px; max-height: calc(100vh - 48px); overflow-y: auto; }
.checkout-selected-vehicle { display: flex; align-items: center; gap: 12px; margin: 18px 0; }
.checkout-selected-vehicle .booking-vehicle { width: 145px; height: 100px; margin: 0; }
.checkout-route-stops .booking-icon { background: white; }
.checkout-route-stops strong, .checkout-trip-facts dd, .checkout-inclusions summary { font-size: 14px; }
.checkout-service-notice { display: flex; align-items: flex-start; gap: 12px; background: #fff7e5; border: 1px solid #e9ce96; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.checkout-service-notice p { margin: 0; color: #674d20; font-size: 14px; line-height: 1.55; }
.checkout-service-notice .booking-icon { margin-top: 2px; }
.checkout-draft-tools { display: flex; align-items: center; gap: 20px; margin: 0 0 28px; }
.checkout-draft-tools p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--muted); }
.checkout-draft-tools button { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 16px; border: 1px solid #8c9eb5; border-radius: 6px; background: white; color: var(--navy); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.checkout-draft-status { display: flex; gap: 8px; font-size: 14px; margin: 0 0 28px; color: #276346; }
@media (max-width: 1100px) {
 .checkout-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; }
 .checkout-selected-vehicle .booking-vehicle { width: 115px; height: 90px; }
 .checkout-draft-tools { flex-wrap: wrap; gap: 12px; }
}
@media (max-width: 767px) {
 .booking-header-inner { flex-wrap: wrap; gap: 0; padding-top: 12px; padding-bottom: 8px; }
 .booking-header .brand { flex: 1; }
 .booking-header .brand-logo { width: 180px; height: auto; }
 .booking-language { padding-left: 12px; }
 .booking-support { order: 3; width: 100%; margin-top: 8px; padding-top: 6px; justify-content: space-between; border-top: 1px solid var(--line); gap: 4px; }
 .booking-support > span { display: none; }
 .booking-support a { min-height: 44px; font-size: 13px; }
 .booking-footer .shell { flex-direction: column; align-items: flex-start; gap: 6px; }
 .booking-footer nav { gap: 0 16px; }
 .checkout-intro { padding-bottom: 20px; }
 .checkout-intro .booking-heading h1 { font-size: 28px; }
 .checkout-intro .booking-heading p { font-size: 15px; }
 .checkout-summary { max-height: none; overflow: visible; }
 .checkout-selected-vehicle .booking-vehicle { width: 120px; height: 80px; }
 .checkout-layout { gap: 24px; }
 .checkout-section { padding: 20px 16px; }
 .checkout-section legend { font-size: 19px; }
 .checkout-draft-tools { align-items: stretch; }
 .checkout-draft-tools button { justify-content: center; width: 100%; }
}
@media (min-width: 1200px) {
 .booking-results-tools { display: flex; align-items: center; gap: 24px; margin: 12px 0 16px; border-bottom: 1px solid var(--line); }
 .booking-results-content .booking-results-top { display: contents; }
 .booking-results-tools .booking-reputation { order: 1; }
 .booking-results-tools .booking-results-top > span { order: 2; font-size: 13px; }
 .booking-results-content .booking-results-tools .booking-category-nav { flex: 1; margin: 0; border-bottom: 0; }
}
@media (max-width: 767px) {
 .booking-results-intro .booking-progress { margin: 4px 0 12px; }
 .booking-results-intro .booking-heading h1 { font-size: 27px; }
 .booking-results-intro .booking-heading p { font-size: 14px; }
 .booking-results-content .booking-itinerary { gap: 10px; padding: 14px; }
 .booking-results-content .booking-category-nav { gap: 0 18px; }
 .booking-results-content .booking-family-visual { padding: 16px; }
 .booking-results-content .booking-fares { padding: 12px; }
 .booking-results-content .booking-fare { padding: 16px; }
}

/* Checkout-only layout: preserve the approved vertical Home bookingbox. */
.itinerary-dates { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.itinerary-dates time { white-space: nowrap; }
.checkout-trip-facts > .checkout-summary-dates { display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: 18px; }
.checkout-summary-dates > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.checkout-summary-dates dd { text-align: right; margin: 0; white-space: nowrap; }
.checkout-map-link { padding: 0 10px 0 0; gap: 12px; border: 1px solid #dce3e8; border-radius: 7px; overflow: hidden; text-decoration: none; background: #fafcfb; }
.checkout-map-link svg[data-route-preview] { width: 94px; height: 68px; flex: 0 0 94px; }
.checkout-map-link > span { font-size: 13px; line-height: 1.5; }
.checkout-map-link small { display: block; font-size: 11px; font-weight: 400; color: #56677a; }
.checkout-map-link > .booking-icon { width: 17px; flex: 0 0 17px; margin-left: auto; }
.checkout-map-link:hover { border-color: #bd8621; }
@media (min-width: 1200px) {
 .booking-itinerary { grid-template-columns: minmax(0, 1fr) max-content max-content; }
 .booking-itinerary .itinerary-dates { flex-wrap: nowrap; gap: 16px; }
 .checkout-flight-fields { grid-template-columns: minmax(0, .95fr) minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: end; }
 .checkout-flight-fields > :first-child { grid-column: auto; max-width: none; }
 .checkout-flight-fields .checkout-field > label { min-height: 44px; display: block; align-content: end; }
}
@media (min-width: 1024px) {
 .booking-edit .trip-options { max-width: 480px; }
 .booking-edit .quote-fields-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
 .booking-edit .quote-fields-row > .quote-date, .booking-edit .quote-fields-row > .quote-date:first-of-type { grid-column: auto; }
 .booking-edit .quote-fields-row > .quote-submit { grid-column: 3 / 5; }
 .booking-edit .quote-fields-row:not(:has(.return-fields:not([hidden]))) > .quote-combobox { grid-column: span 2; }
 .booking-edit .quote-card { padding: 20px; }
 .booking-edit .quote-fields-row > .quote-control, .booking-edit .quote-fields-row .date-control-button { min-height: 68px; }
}
