/* Approved Savoy booking v3 tokens. Native Quantica controls remain in place. */
/* Journey editing uses the same contained card as the approved entry form.
   Scope to step one so Back and direct entry share the same presentation. */
.page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) { width: calc(100% - 32px); max-width: 680px; margin: 28px auto 56px; padding: 28px; border: 1px solid #ebebee; border-radius: 24px; background: #fff; }
.page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) .booking-page__intro { margin: 0 0 22px; padding: 0; }
.page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) .booking-page__intro h1 { margin: 8px 0 12px; }
.page-template-page-book .booking-page.savoy-journey-v3 .booking-page__intro h1[tabindex='-1']:focus { outline: none; }
.page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) .booking-page__intro > p:not(.eyebrow) { color: #55555c; font-size: 14px; line-height: 1.5; }
.page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) .savoy-trip-segments--book { max-width: none; margin: 0 0 16px; }
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 > .chbs-layout-50x50 { max-width: none; }
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 > .savoy-v3-map-slot { width: 100%; margin-top: 16px; border-radius: 14px; overflow: hidden; }
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 > .savoy-v3-map-slot,
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 > .savoy-v3-map-slot #chbs_google_map { height: 210px !important; min-height: 210px; }
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 .chbs-main-content-navigation-button { margin-top: 16px !important; padding: 0 !important; }
.page-template-page-book .booking-page.savoy-journey-v3 .chbs-main-content-step-1 .chbs-button-step-next { width: 100%; }
@media (max-width: 600px) {
  .page-template-page-book .booking-page.savoy-journey-v3:not(.savoy-v3-later-step) { width: calc(100% - 24px); margin: 16px auto 32px; padding: 20px 16px; border-radius: 20px; }
}
.savoy-journey-v3 .savoy-summary-map[hidden] { display: none !important; }
.savoy-journey-v3 .chbs-google-map-summary { display: block !important; overflow: hidden; height: 150px; border-radius: 16px; }
.savoy-journey-v3 .chbs-google-map-summary #chbs_google_map { height: 150px !important; }
.savoy-v3-flight-summary, .savoy-v3-route-summary { padding-inline: 18px; color: rgb(255 255 255 / 70%); font-size: 13px; }
.savoy-v3-summary-when { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; padding: 18px 18px 0; }
.savoy-v3-summary-when strong { font-size: 40px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.savoy-v3-summary-when span { color: rgb(255 255 255 / 55%); font-size: 13px; }
.savoy-journey-v3 .chbs-main-content-navigation-button { position: static !important; margin-top: 24px !important; padding: 12px 0 !important; border: 0 !important; background: transparent !important; }
.savoy-journey-v3 .chbs-form-field-dropoff-location { position: relative; padding-right: 60px !important; }
.savoy-v3-route-swap { position: absolute; z-index: 2; right: 10px; top: -22px; width: 44px; height: 44px; border: 1px solid #e4e4e8; border-radius: 50%; background: #fff; color: #0c0c0d; font-size: 22px; cursor: pointer; }
.savoy-v3-route-swap[hidden] { display: none; }
.savoy-v3-route-swap:focus-visible { outline: 2px solid #0c0c0d; outline-offset: 3px; }
.page-template-page-book { background: #f4f4f5; }
.page-template-page-book .site-header, .page-template-page-book .site-footer { display: block; }
.page-template-page-book .booking-flow-header { position: static; padding-top: 24px; background: #f4f4f5; border: 0; }
.booking-flow-header__top, .savoy-return-cue, .savoy-return-journey__heading,
.savoy-journey-v3 .booking-entry__status, .savoy-journey-v3 .savoy-airport-panel__copy { display: none !important; }
.booking-flow-progress { gap: 16px; max-width: 1240px; margin-inline: auto; padding-inline: 24px; }
.booking-flow-progress li { display: flex; flex-direction: column; gap: 10px; min-width: 0; color: #9a9aa1; font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.booking-flow-progress li > span { width: 100%; height: 3px; border: 0; border-radius: 2px; background: #dcdce0; }
.booking-flow-progress li.is-current, .booking-flow-progress li.is-complete { color: #0c0c0d; }
.booking-flow-progress li.is-current > span, .booking-flow-progress li.is-complete > span { background: #0c0c0d; }
.booking-flow-progress li.is-complete { cursor: pointer; }
.booking-flow-progress li.is-complete::after { content: '✓'; }
.booking-flow-progress li:focus-visible { outline: 2px solid #0c0c0d; outline-offset: 4px; }
.savoy-journey-v3.booking-page { max-width: 1240px; padding: 28px 24px 80px; }
.savoy-journey-v3 .booking-page__intro h1, .savoy-journey-v3 .savoy-step-intro h2 { font-size: 30px; font-weight: 600; line-height: 1.08; letter-spacing: -.03em; }
.savoy-journey-v3 .savoy-step-intro__icon { display: none; }
.savoy-journey-v3 .savoy-step-intro p { color: #55555c; }
.savoy-journey-v3 .savoy-trip-segments { min-height: 46px; padding: 4px; border: 0; border-radius: 12px; background: #f2f2f4; }
.savoy-journey-v3 .savoy-trip-segments button { min-height: 38px; border: 0; border-radius: 9px; background: transparent; color: #55555c; }
.savoy-journey-v3 .savoy-trip-segments button[aria-pressed='true'] { background: #fff; color: #0c0c0d; box-shadow: 0 1px 3px rgb(12 12 13 / 12%); }
.savoy-journey-v3 .chbs-form-field-pickup-location .chbs-location-add { display: none !important; }
.savoy-journey-v3 .chbs-form-field-pickup-location { margin-bottom: 0 !important; border-radius: 14px 14px 0 0 !important; }
.savoy-journey-v3 .chbs-form-field-dropoff-location { margin-top: 0 !important; border-top: 0 !important; border-radius: 0 0 14px 14px !important; }
.savoy-journey-v3 .chbs-form-field:not(.chbs-form-field-passenger):not(.chbs-form-field-return-date-time) { min-height: 62px; padding: 8px 16px !important; border: 1px solid #e4e4e8 !important; border-radius: 14px !important; background: #fff !important; box-shadow: none !important; }
.savoy-journey-v3 .chbs-form-field > label, .savoy-journey-v3 .savoy-airport-panel__flight > span { display: block; margin: 0 0 3px !important; color: #8a8a92 !important; font-size: 10.5px !important; font-weight: 600 !important; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.savoy-journey-v3 .chbs-form-field:focus-within, .savoy-journey-v3 .savoy-airport-panel__flight:focus-within { outline: 2px solid #0c0c0d; outline-offset: -2px; }
.savoy-journey-v3 .chbs-form-field input:not([type='hidden']):not([type='checkbox']), .savoy-journey-v3 .chbs-form-field textarea { min-height: 28px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; color: #0c0c0d; background: transparent !important; box-shadow: none !important; font-size: 15.5px !important; }
.savoy-journey-v3 .chbs-form-field input:focus, .savoy-journey-v3 .chbs-form-field textarea:focus { outline: 0; }
.savoy-journey-v3 input::placeholder, .savoy-journey-v3 textarea::placeholder { color: #9a9aa1; opacity: 1; }
.savoy-journey-v3 .savoy-field-leading-icon { display: none; }
.savoy-journey-v3 .savoy-time-trigger { min-height: 28px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #0c0c0d; font-size: 15.5px; text-align: left; }
.savoy-journey-v3 .savoy-airport-panel { margin: 10px 0; padding: 0; border: 0; background: transparent; }
.savoy-journey-v3 .savoy-airport-panel[hidden], .savoy-journey-v3 .savoy-flight-detail[hidden] { display: none !important; }
.savoy-journey-v3 .savoy-airport-panel__fields { display: block; margin: 0; }
.savoy-journey-v3 .savoy-airport-panel__flight { min-height: 62px; padding: 8px 16px !important; border: 1px solid #e4e4e8 !important; border-radius: 14px; background: #fafafb; }
.savoy-journey-v3 .savoy-airport-panel__flight input { width: 100%; min-height: 28px; padding: 0; border: 0; background: transparent; color: #0c0c0d; font: inherit; font-size: 15.5px; }
.savoy-journey-v3 .savoy-airport-panel__flight input:focus { outline: 0; }
.savoy-journey-v3 .savoy-meet-greet { margin-top: 8px; }
.savoy-journey-v3 .savoy-counter-controls { bottom: 3px; right: 8px; gap: 0; }
.savoy-journey-v3 .savoy-counter-controls button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 5px; border: 0; border-radius: 50%; background: radial-gradient(circle at center, #fff 16px, #e4e4e8 16px, #e4e4e8 17px, transparent 17px); color: #0c0c0d; }
.savoy-journey-v3 .savoy-counter-controls strong { min-width: 24px; font-size: 15.5px; font-weight: 400; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-v3-count { position: relative; min-height: 62px !important; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-v3-count > label { position: absolute; top: 8px; left: 16px; max-width: none; font-size: 10.5px !important; line-height: 13px; letter-spacing: .1em; text-align: left; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-counter-controls { right: 8px; left: 16px; bottom: 0; gap: 0; justify-content: flex-end; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-counter-controls strong { order: -1; margin-right: auto; min-width: 16px; text-align: left; line-height: 44px; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-counter-controls button { width: 44px; height: 44px; padding: 5px; border: 0; background: radial-gradient(circle at center, #fff 16px, #e4e4e8 16px, #e4e4e8 17px, transparent 17px); }
.savoy-journey-v3 .chbs-button:not(.chbs-button-style-2) { min-height: 54px !important; border-radius: 12px !important; background: #0c0c0d !important; color: #fff !important; font-size: 15px !important; font-weight: 600; }
.savoy-journey-v3 .chbs-button-step-prev { min-height: 54px !important; border: 1px solid #d9d9de !important; border-radius: 12px !important; background: #fff !important; font-size: 14px !important; font-weight: 600; text-transform: uppercase !important; letter-spacing: .06em; }
.savoy-v3-payment-caption { width: 100%; margin: 10px 0 0; color: #8a8a92; font-size: 12.5px; text-align: center; }
.savoy-journey-v3 .savoy-v3-old-caption { display: none !important; }
.savoy-journey-v3 .chbs-main-content-step-1 .chbs-main-content-navigation-button { display: flex !important; flex-wrap: wrap; position: static !important; }
.savoy-journey-v3 .chbs-main-content-step-1 .savoy-v3-payment-caption { order: 10; }
.savoy-journey-v3 .savoy-vehicle-filters, .savoy-journey-v3 .savoy-review-vehicle-image { display: none !important; }
.savoy-journey-v3 .savoy-vehicle-card { border: 1px solid #ebebee !important; border-radius: 20px !important; transition: background .2s, color .2s; cursor: pointer; }
.savoy-journey-v3 .savoy-vehicle-card:focus-visible { outline: 2px solid #0c0c0d; outline-offset: 3px; }
.savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected { padding: 14px 16px 14px 14px !important; background: #0c0c0d !important; color: #fff !important; box-shadow: none !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .chbs-vehicle-content-header > span,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .chbs-vehicle-content-price,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .chbs-vehicle-content-price > span > span,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .savoy-vehicle-specs,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .savoy-vehicle-specs svg { color: #fff !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .savoy-vehicle-model,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .chbs-vehicle-content-price small { color: rgb(255 255 255 / 65%) !important; }
.savoy-journey-v3 .savoy-v3-selected .chbs-vehicle-image { background: #fff; border-radius: 12px; }
.savoy-journey-v3 .savoy-vehicle-card[aria-disabled='true'] { opacity: .45; cursor: default; }
.savoy-journey-v3 .chbs-summary:not(.savoy-review-summary--contact):not(.savoy-review-summary--payment):not(.savoy-review-summary--vehicle) { border: 0 !important; border-radius: 22px !important; background: #0c0c0d !important; color: #fff !important; }
.savoy-journey-v3 .chbs-summary .savoy-summary-route strong, .savoy-journey-v3 .chbs-summary .savoy-summary-return strong { overflow: visible; color: #fff; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.savoy-journey-v3 .chbs-summary .savoy-summary-route small, .savoy-journey-v3 .chbs-summary .savoy-summary-route em { color: rgb(255 255 255 / 55%); }
.savoy-journey-v3 .chbs-summary .savoy-summary-return, .savoy-journey-v3 .chbs-summary .savoy-summary-chips span { background: rgb(255 255 255 / 8%); color: #fff; }
.savoy-journey-v3 .chbs-summary .savoy-price-row > span { color: #fff !important; }
.page-template-page-book .savoy-journey-v3 .chbs-summary .chbs-summary-price-element.savoy-price-breakdown span { color: #fff !important; }
.savoy-journey-v3 .chbs-summary .savoy-price-row--total > span:last-child { font-size: 30px !important; }
.savoy-journey-v3 .chbs-summary .savoy-price-row--total { border-color: rgb(255 255 255 / 12%) !important; }
.savoy-journey-v3 .chbs-summary .savoy-summary-map { height: 150px; }
.savoy-journey-v3 .chbs-summary:not(.savoy-review-summary--contact):not(.savoy-review-summary--payment):not(.savoy-review-summary--vehicle) > .chbs-summary-header,
.savoy-journey-v3 .chbs-summary:not(.savoy-review-summary--contact):not(.savoy-review-summary--payment):not(.savoy-review-summary--vehicle) > .chbs-summary-header h4 { background: transparent !important; color: #fff !important; }
.savoy-journey-v3 .savoy-traveller-form .chbs-box-shadow { padding: clamp(20px, 3vw, 32px) !important; border-color: #ebebee !important; border-radius: 20px !important; }
.savoy-journey-v3 .savoy-traveller-form .chbs-form-label-group:not(.savoy-v3-invoice) { display: none; }
.savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice { display: flex; align-items: center; gap: 12px; min-height: 54px; font-size: 14px; }
.savoy-journey-v3 .savoy-v3-card-only { display: none !important; }
.savoy-v3-review-projected .savoy-review-summary--contact, .savoy-v3-review-projected .savoy-review-summary--vehicle { display: none !important; }
.savoy-journey-v3 .savoy-review-step > .savoy-step-intro p { display: none; }
.savoy-journey-v3 .savoy-v3-payment-line { position: relative; margin-top: 16px !important; padding: 12px 16px 12px 52px !important; border: 1px solid #e4e4e8 !important; border-radius: 14px !important; background: #fff !important; }
.savoy-journey-v3 .savoy-v3-card-icon { position: absolute; left: 12px; top: 12px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: #0c0c0d; color: #fff; }
.savoy-journey-v3 .savoy-v3-card-icon svg { width: 16px; height: 16px; }
.savoy-journey-v3 .savoy-v3-payment-line > .chbs-summary-header, .savoy-journey-v3 .savoy-v3-payment-line .chbs-summary-field-name { display: none !important; }
.savoy-journey-v3 .savoy-v3-payment-line .chbs-summary-field { display: block !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.savoy-journey-v3 .savoy-v3-payment-line .chbs-summary-field-value { text-align: left !important; }
.savoy-v3-card-caption { margin-top: 6px; color: #55555c; font-size: 13px; }
.savoy-journey-v3 .chbs-google-map-summary:empty { display: none !important; }
.savoy-v3-review-list { padding: clamp(20px, 3vw, 32px); border: 1px solid #ebebee; border-radius: 20px; background: #fff; }
.savoy-v3-review-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 16px; padding: 20px 0; border-bottom: 1px solid #ebebee; }
.savoy-v3-review-row:last-child { border-bottom: 0; }
.savoy-v3-review-row > span { color: #8a8a92; font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.savoy-v3-review-row strong, .savoy-v3-review-row small { display: block; overflow-wrap: anywhere; }
.savoy-v3-review-row strong { font-size: 15px; font-weight: 600; }
.savoy-v3-review-row small { margin-top: 5px; color: #55555c; font-size: 13.5px; }
.savoy-v3-review-row button { align-self: start; min-height: 44px; padding: 0 8px; border: 0; background: transparent; font: inherit; font-size: 13.5px; text-decoration: underline; cursor: pointer; }
.savoy-journey-v3 .savoy-traveller-form .iti { width: 100%; }
.savoy-journey-v3 .savoy-traveller-form .iti input { padding-left: 54px !important; }
.savoy-journey-v3 .savoy-field-invalid { border-color: #b42318 !important; }
.savoy-journey-v3 .savoy-field-error, .savoy-journey-v3 .savoy-field-invalid > label { color: #b42318 !important; }
@media (max-width: 800px) {
  .savoy-journey-v3 .savoy-review-layout { display: flex !important; flex-direction: column; align-items: stretch; gap: 24px; }
  .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-left { order: 1; width: 100% !important; }
  .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-center { order: 2; position: static; width: 100% !important; }
  .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-right { order: 3; width: 100% !important; }
  .savoy-journey-v3 .chbs-main-content-step-2 > .chbs-layout-25x75, .savoy-journey-v3 .chbs-main-content-step-3 > .chbs-layout-25x75 { display: flex !important; flex-direction: column; gap: 24px; }
  .savoy-journey-v3 .chbs-main-content-step-2 > .chbs-layout-25x75 > .chbs-layout-column-right, .savoy-journey-v3 .chbs-main-content-step-3 > .chbs-layout-25x75 > .chbs-layout-column-right { order: 1; width: 100% !important; }
  .savoy-journey-v3 .chbs-main-content-step-2 > .chbs-layout-25x75 > .chbs-layout-column-left, .savoy-journey-v3 .chbs-main-content-step-3 > .chbs-layout-25x75 > .chbs-layout-column-left { display: block !important; position: static; order: 2; width: 100% !important; }
}
@media (max-width: 640px) {
  .savoy-journey-v3 .chbs-main-content-navigation-button:has(.savoy-action-total) { position: static !important; bottom: auto; z-index: auto; padding: 12px 0 calc(12px + env(safe-area-inset-bottom)) !important; background: #f4f4f5 !important; }
  .booking-flow-progress { gap: 8px; padding-inline: 16px; }
  .booking-flow-progress li { font-size: 9.5px; letter-spacing: .02em; }
  .savoy-journey-v3.booking-page { padding-inline: 16px; }
  .savoy-journey-v3 .chbs-form-field input:not([type='hidden']) { font-size: 16px !important; }
  .savoy-v3-review-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .savoy-v3-review-row > span { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .savoy-journey-v3 .savoy-vehicle-card { transition: none; }
}
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .chbs-form-field-pickup-location { margin-bottom: 0 !important; border-radius: 14px 14px 0 0 !important; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .chbs-form-field-dropoff-location { margin-top: 0 !important; border-top: 0 !important; border-radius: 0 0 14px 14px !important; }
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .savoy-v3-count > label { text-transform: uppercase !important; }
.booking-page.savoy-v3-later-step .booking-page__intro { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
.savoy-v3-invoice:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

/* Keep the shared-seam swap clear of both native Places inputs. The
   higher specificity also defeats the generic field padding above. */
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .chbs-form-field-pickup-location,
.savoy-journey-v3.savoy-journey-v3.savoy-journey-v3 .chbs-form-field-dropoff-location { padding-right: 70px !important; }
.savoy-journey-v3 .chbs-form-field-pickup-location input,
.savoy-journey-v3 .chbs-form-field-dropoff-location input { width: 100% !important; min-width: 0; text-overflow: ellipsis; }
.savoy-journey-v3 .savoy-v3-route-swap { top: -22px; right: 12px; }
.booking-entry--engine.savoy-journey-v3 .savoy-route-host > .savoy-route-field,
.page-template-page-book .booking-page.savoy-journey-v3 .booking-page__engine .chbs-main-content-step-1 .savoy-route-host > .savoy-route-field { height: 62px !important; min-height: 62px; padding: 8px 70px 8px 16px !important; }

/* Native top-layer popover escapes the card/hero clipping ancestors. */
.savoy-journey-v3 .savoy-time-menu[popover] { position: fixed; inset: auto; margin: 0; width: min(320px, calc(100vw - 32px)); max-width: calc(100vw - 32px); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.savoy-journey-v3.booking-entry--engine { overflow: visible; }
.savoy-journey-v3 .savoy-traveller-form .chbs-box-shadow { overflow: visible; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .iti,
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .iti__flag-container { height: 28px !important; min-height: 28px !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .iti__selected-flag { position: relative; top: -8px; height: 44px !important; min-height: 44px !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .iti input:not([type="hidden"]) { height: 28px !important; min-height: 28px !important; padding-left: 106px !important; line-height: 28px !important; }

/* Reuse the original native map, including its controls and attribution. */
.page-template-page-book .savoy-journey-v3 .savoy-v3-map-slot { display: block; width: 100%; height: 150px; min-height: 150px; margin: 0 0 16px; overflow: hidden; border-radius: 16px; }
.page-template-page-book .savoy-journey-v3 .savoy-v3-map-slot #chbs_google_map { width: 100%; height: 150px !important; }
.page-template-page-book .savoy-journey-v3 .chbs-summary > .savoy-v3-map-slot { border-radius: 22px 22px 0 0; background: #eef0f2; border-bottom: 1px solid #ebebee; }

/* Client visual corrections, 7 October. Native fields and amounts are untouched. */
.savoy-journey-v3 { font-family: 'Schibsted Grotesk', system-ui, sans-serif; font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #0c0c0d; }
.savoy-journey-v3 :is(input, select, textarea, button) { font-family: inherit !important; letter-spacing: 0; }
.savoy-journey-v3.savoy-journey-v3 :is(input, select, textarea) { font-size: 15.5px !important; font-weight: 400 !important; line-height: 1.3; color: #0c0c0d; -webkit-text-fill-color: #0c0c0d; text-transform: none !important; }
.savoy-journey-v3 :is(input, textarea)::placeholder { font-weight: 400 !important; color: #9a9aa1; -webkit-text-fill-color: #9a9aa1; opacity: 1; text-transform: none; }
.savoy-journey-v3 input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px #fff inset; -webkit-text-fill-color: #0c0c0d; }
.savoy-journey-v3 .savoy-label-suffix { font-size: 10.5px !important; font-weight: 500 !important; letter-spacing: .02em; text-transform: none !important; color: #9a9aa1 !important; }
.savoy-journey-v3 h1 { font-size: 30px; font-weight: 600; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card,
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected { padding: 14px 16px 14px 14px !important; background: #fff !important; color: #0c0c0d !important; border: 1px solid #ebebee !important; box-shadow: none !important; transition: box-shadow .2s, border-color .2s; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected { border-color: #0c0c0d !important; box-shadow: 0 0 0 1px #0c0c0d, 0 10px 28px rgb(12 12 13 / 8%) !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-vehicle-card :is(.chbs-vehicle-content-header > span, .chbs-vehicle-content-price, .chbs-vehicle-content-price > span > span, .savoy-vehicle-specs, .savoy-vehicle-specs svg) { color: #0c0c0d !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-vehicle-card :is(.savoy-vehicle-model, .chbs-vehicle-content-price small) { color: #55555c !important; }
.savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-image { height: 76px !important; background: #fff !important; border: 1px solid #e4e4e8; box-sizing: border-box; border-radius: 12px; overflow: hidden; }
.savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-image img { width: 100%; height: 76px !important; padding: 6px; object-fit: contain; box-sizing: border-box; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header a.chbs-button { min-height: 28px !important; height: 28px !important; border: 1px solid #d9d9de !important; border-radius: 999px !important; background: #fff !important; color: #0c0c0d !important; font-size: 10.5px !important; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; line-height: 26px; padding: 0 12px !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card.savoy-v3-selected .chbs-vehicle-content-header a.chbs-button { background: #0c0c0d !important; color: #fff !important; border-color: #0c0c0d !important; }
.savoy-journey-v3 .savoy-vehicle-badge { position: static !important; margin-left: 10px; align-self: center; font-weight: 700; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .savoy-vehicle-badge { margin: 0; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header a.chbs-button { position: static; inset: auto; z-index: auto; display: inline-flex; align-items: center; justify-content: center; width: auto; overflow: visible; text-indent: 0; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header > span { font-weight: 600 !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header { justify-content: flex-start; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header > span { flex: 0 0 auto !important; width: auto !important; float: none !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header > a.chbs-button { margin-left: auto !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card:hover { transform: none; }
.page-template-page-book .savoy-journey-v3 .chbs-summary:not(.savoy-review-summary--contact):not(.savoy-review-summary--payment):not(.savoy-review-summary--vehicle) { background: #fff !important; color: #0c0c0d !important; border: 1px solid #ebebee !important; overflow: hidden; }
.savoy-journey-v3 .chbs-summary:has(.savoy-summary-visual) > :is(h3, .chbs-summary-header) { display: none !important; }
.savoy-journey-v3 .savoy-summary-eyebrow { margin: 20px 18px 8px; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #8a8a92; }
.savoy-journey-v3 .savoy-v3-summary-when strong { color: #0c0c0d; font-variant-numeric: normal; }
.savoy-journey-v3 .savoy-v3-summary-when span { color: #55555c; }
.savoy-journey-v3 .chbs-summary :is(.savoy-summary-route strong, .savoy-summary-return strong) { color: #0c0c0d; }
.savoy-journey-v3 .chbs-summary :is(.savoy-summary-route small, .savoy-summary-return em) { color: #6b6b73; }
.savoy-journey-v3 .chbs-summary .savoy-summary-return { background: #fafafb; color: #0c0c0d; }
.savoy-journey-v3 .savoy-summary-route__rail { border-color: #d9d9de; }
.savoy-journey-v3 .savoy-summary-route__rail i { background: #fff; border: 2px solid #0c0c0d; }
.savoy-journey-v3 .savoy-summary-route__rail i:last-child { background: #0c0c0d; border-radius: 0; }
.savoy-journey-v3 .savoy-summary-facts { margin: 18px; font-size: 15.5px; }
.savoy-journey-v3 .savoy-summary-facts > div { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; margin: 10px 0; padding: 0; }
.savoy-journey-v3 .savoy-summary-facts dt { color: #6b6b73; }
.savoy-journey-v3 .savoy-summary-facts dd { margin: 0; color: #0c0c0d; overflow-wrap: anywhere; }
.savoy-journey-v3 .savoy-summary-facts dd.savoy-summary-fact-pending { color: #8a8a92; }
.page-template-page-book .savoy-journey-v3 .chbs-summary .chbs-summary-price-element { background: #f7f7f8 !important; border-top: 1px solid #ebebee !important; padding: 18px 24px 22px !important; margin: 0 !important; font-variant-numeric: normal; }
.page-template-page-book .savoy-journey-v3 .chbs-summary .chbs-summary-price-element.savoy-price-breakdown span,
.savoy-journey-v3 .chbs-summary .savoy-price-row > span { color: #0c0c0d !important; font-variant-numeric: normal; }
.savoy-journey-v3 .chbs-summary .savoy-price-row--total { border-color: #ebebee !important; font-weight: 600; }
.savoy-journey-v3 .savoy-price-row--total > span:first-child { text-transform: uppercase; }
.page-template-page-book .savoy-journey-v3 .savoy-v3-map-slot,
.page-template-page-book .savoy-journey-v3 .savoy-v3-map-slot #chbs_google_map { height: 180px !important; min-height: 180px; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice,
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-meet-greet--details { width: 100%; padding: 14px 16px !important; border: 1px solid #e4e4e8; border-radius: 14px; background: #fff !important; box-sizing: border-box; font-size: 14.5px; font-weight: 500; gap: 12px; }
.savoy-journey-v3 .savoy-meet-greet strong { font-size: 14.5px; font-weight: 500; }
.savoy-journey-v3 .savoy-meet-greet small { font-size: 12.5px; font-weight: 400; color: #55555c; }
.savoy-journey-v3 .savoy-v3-invoice .chbs-form-checkbox,
.savoy-journey-v3 .savoy-meet-greet > span { flex: 0 0 20px; width: 20px; height: 20px; border: 1.5px solid #0c0c0d; border-radius: 6px; box-sizing: border-box; }
.savoy-journey-v3 .savoy-v3-invoice .chbs-form-checkbox.chbs-state-selected { background: #0c0c0d; color: #fff; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice { display: flex !important; align-items: center; padding: 14px 16px !important; border: 1px solid #e4e4e8 !important; border-radius: 14px !important; background: #fff !important; font-size: 14.5px !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice .chbs-form-checkbox { position: relative; display: grid !important; place-items: center; flex: 0 0 20px; width: 20px !important; height: 20px !important; border: 1.5px solid #0c0c0d !important; border-radius: 6px !important; background: #fff !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice .chbs-form-checkbox.chbs-state-selected { background: #0c0c0d !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice .chbs-meta-icon-tick { display: none !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice .chbs-form-checkbox::before { content: none !important; }
.page-template-page-book .savoy-journey-v3 .savoy-traveller-form .savoy-v3-invoice .chbs-form-checkbox.chbs-state-selected::before { position: absolute; inset: 0; display: grid; place-items: center; content: '✓' !important; color: #fff !important; font: 700 13px/1 system-ui; }
.savoy-journey-v3 .savoy-date-formatted { position: relative; }
.savoy-journey-v3 .savoy-date-formatted .savoy-date-display { position: absolute; left: 16px; right: 16px; top: 27px; pointer-events: none; font-size: 15.5px; font-weight: 400; line-height: 28px; white-space: nowrap; }
.savoy-journey-v3.savoy-journey-v3 .savoy-date-formatted input { color: transparent !important; -webkit-text-fill-color: transparent !important; caret-color: transparent; }
.savoy-journey-v3 .savoy-date-formatted:has(input:focus) .savoy-date-display { color: #0c0c0d; }
.savoy-journey-v3 .savoy-date-formatted:has(input:focus:not([readonly])) .savoy-date-display { visibility: hidden; }
.savoy-journey-v3.savoy-journey-v3 .savoy-date-formatted input:focus:not([readonly]) { color: #0c0c0d !important; -webkit-text-fill-color: #0c0c0d !important; caret-color: auto; }
@media (prefers-reduced-motion: reduce) { .page-template-page-book .savoy-journey-v3 .savoy-vehicle-card { transition: none; } }

/* RC20: keep native actions in their delegated-event ancestry. */
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content { position: relative; min-height: 94px; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header { position: static; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header > a.chbs-button { position: absolute; top: 62px; right: 0; margin: 0 !important; }
.page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-price { align-self: start; padding-bottom: 36px; }
.page-template-page-book .savoy-journey-v3 .chbs-summary:has(> .chbs-summary-price-element) { padding-bottom: 0 !important; }
.page-template-page-book .savoy-journey-v3 .savoy-v3-map-slot #chbs_google_map { filter: grayscale(1); }
@media (min-width: 901px) {
  .page-template-page-book .savoy-journey-v3 .savoy-review-step { grid-template-rows: auto auto auto 1fr; row-gap: 12px; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .savoy-step-intro { grid-row: 1; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .savoy-review-layout { display: contents !important; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-left { grid-column: 1; grid-row: 2; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-center { grid-column: 2; grid-row: 2 / span 3; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-right { display: none !important; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .chbs-main-content-navigation-button { grid-column: 1; grid-row: 3; margin-top: 0 !important; align-self: start; }
}
@media (max-width: 600px) {
  .page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content { min-height: 150px; }
  .page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header { padding-right: 0; }
  .page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-header > a.chbs-button { top: auto; bottom: 0; right: 0; }
  .page-template-page-book .savoy-journey-v3 .savoy-vehicle-card .chbs-vehicle-content-price { align-items: flex-end; text-align: right; }
}
@media (max-width: 900px) {
  .page-template-page-book .savoy-journey-v3 .savoy-review-step.savoy-current-step { display: grid !important; grid-template-columns: minmax(0, 1fr); }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .savoy-review-layout { display: contents !important; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .savoy-step-intro { grid-column: 1; grid-row: 1; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-left { grid-column: 1; grid-row: 2; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-step > .chbs-main-content-navigation-button { grid-column: 1; grid-row: 3; margin-top: 0 !important; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-center { grid-column: 1; grid-row: 4; position: static; }
  .page-template-page-book .savoy-journey-v3 .savoy-review-layout > .chbs-layout-column-right { display: none !important; }
}
.page-template-page-book .savoy-payable-primary > span { display: none !important; }
.page-template-page-book .savoy-vehicle-payable { display: block; font-size: 22px; line-height: 1.25; color: #0c0c0d; }
.page-template-page-book .savoy-payable-primary .savoy-vehicle-price-tax-note { display: block; max-width: 240px; white-space: normal; font-size: 11px; line-height: 1.5; }
/* Quantica animates deliberate step navigation itself. CSS smooth scrolling
   must not animate each scrollTop write again or fight mobile focus scrolling. */
html:has(.booking-entry--engine, .booking-page__engine) { scroll-behavior: auto; }
