/* Mobile End-to-End R18
 * A final responsive layer for the deliberately narrow 360 px customer path.
 * Component authority remains in the existing files; this layer only adjusts
 * layout, density and viewport-safe presentation.
 */

.wsb-progressive-step__needs-labels { display: none; }

body.wsb-stage-action-visible {
  padding-bottom: calc(var(--wsb-stage-action-page-clearance, 160px) + env(safe-area-inset-bottom));
}

@media (max-width: 30rem) {
  .wsb-booking-app,
  .wsb-booking-app__portal {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
    --wsb-space-xs: 10px;
    --wsb-space-s: 12px;
    --wsb-space-m: 18px;
    --wsb-space-l: 24px;
    --wsb-sidebar-card-padding: 12px;
    --wsb-checkout-stack-gap: 14px;
    --wsb-mobile-page-gutter: 10px;
    --wsb-mobile-section-gap: 10px;
    --wsb-mobile-card-padding: 10px;
    --wsb-mobile-accordion-height: 54px;
    --wsb-mobile-control-height: 50px;
    --wsb-control-height: var(--wsb-mobile-control-height);
  }

  #brx-header > div { min-height: 54px !important; padding-block: 0 !important; }
  #brx-header nav { min-height: 54px !important; padding: 5px 12px !important; }
  #brx-header .nav__logo-wrapper,
  #brx-header .brxe-logo { min-width: 0; }
  #brx-header .bricks-site-logo { width: auto; max-width: 148px; max-height: 38px; object-fit: contain; }
  #brx-header .brxe-toggle { width: 44px !important; min-width: 44px; height: 44px !important; min-height: 44px; }

  .wsb-booking-app {
    max-width: 100%;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
  }
  body.wsb-mobile-stage-action-visible { padding-bottom: calc(var(--wsb-mobile-dock-page-clearance, 172px) + env(safe-area-inset-bottom)); }

  .wsb-booking-app__header { gap: 10px; padding: 10px var(--wsb-mobile-page-gutter) 8px; }
  .wsb-booking-app[data-stage="trip_details"] .wsb-booking-app__header-top:has(.wsb-booking-app__header-actions:empty) { display: none; }

  .wsb-booking-app__header-top { gap: 8px; }
  .wsb-booking-app__brand-title { font-size: 24px; line-height: 1.08; }
  .wsb-booking-app__title { font-size: 16px; line-height: 1.2; }
  .wsb-booking-app__subtitle { max-width: none; font-size: 13px; line-height: 1.35; }
  .wsb-booking-app__admin-controls { gap: 6px; }
  .wsb-booking-app__admin-controls :where(button, a) { min-height: 44px; padding-block: 6px; }

  .wsb-booking-app__stepper { align-items: start; }
  .wsb-booking-app__step > button { min-height: 60px; align-content: start; gap: 3px; padding: 2px 3px 0; }
  .wsb-booking-app__step-copy { width: 100%; justify-items: center; margin-top: .5rem; }
  .wsb-booking-app__step-copy strong {
    min-height: 22px;
    overflow: visible;
    font-size: 10px;
    line-height: 1.08;
    text-align: center;
    text-overflow: clip;
    white-space: normal;
  }
  .wsb-booking-app__step:not(:last-child)::after { top: 17px; }

  .wsb-promo-host { padding: 0 var(--wsb-mobile-page-gutter) 8px; }
  .wsb-promo-bar { min-height: 50px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 5px; padding: 7px 6px 7px 9px; cursor: pointer; }
  .wsb-promo-bar__visual,
  .wsb-promo-bar__copy > strong,
  .wsb-promo-bar__separator { display: none; }
  .wsb-promo-bar__copy {
    grid-column: 2;
    grid-row: 1;
    display: block;
    min-width: 0;
    overflow: hidden;
    font-size: 11.5px;
    line-height: 1.3;
    text-align: right;
    white-space: nowrap;
    opacity: 1;
    transform: translateX(0);
    transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1);
  }
  .wsb-promo-bar__copy > span:last-child { display: block; white-space: nowrap; }
  .wsb-promo-bar__actions { grid-column: 1; grid-row: 1; min-width: 0; gap: 4px; }
  .wsb-promo-bar__code { min-width: 0; min-height: 34px; margin: 0; padding: 0 10px; white-space: nowrap; }
  .wsb-promo-bar__code-prefix { display: none; }
  .wsb-promo-bar__code svg { margin-inline-start: 4px; }
  .wsb-promo-bar__remove { display: none; }
  .wsb-promo-bar__apply { grid-column: 1 / -1; min-height: 44px; padding-inline: 12px; }
  .wsb-promo-bar__dismiss {
    position: static;
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(5px) scale(.96);
    transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1), visibility 0s linear 240ms;
  }
  .wsb-promo-bar[data-mobile-promo-armed="1"] .wsb-promo-bar__copy {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(5px);
    transition: opacity 180ms ease, transform 240ms cubic-bezier(.22, 1, .36, 1), visibility 0s linear 240ms;
  }
  .wsb-promo-bar[data-mobile-promo-armed="1"] .wsb-promo-bar__dismiss {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0) scale(1);
    transition-delay: 50ms, 0ms, 0ms;
  }

  @media (prefers-reduced-motion: reduce) {
    .wsb-promo-bar__copy,
    .wsb-promo-bar__dismiss { transition-duration: 0ms; }
  }

  .wsb-booking-app__layout { gap: var(--wsb-mobile-section-gap); padding: 8px var(--wsb-mobile-page-gutter); }
  .wsb-booking-app__form { gap: var(--wsb-mobile-section-gap); }
	.wsb-booking-app__toolbar { display: grid; min-height: 44px; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 0 8px; padding: 6px 2px 8px; }
  .wsb-booking-app__toolbar > div { display: contents; }
	.wsb-booking-app__toolbar h2 { grid-column: 1; grid-row: 1; margin: 0; font-size: 23px; line-height: 1.2; }
	.wsb-booking-app__toolbar p { grid-column: 1 / -1; grid-row: 2; width: 100%; max-width: none; margin: 1px 0 0; font-size: 13px; line-height: 1.35; }
	.wsb-booking-app__toolbar .wsb-help-trigger { grid-column: 2; grid-row: 1; inline-size: max-content; min-height: 28px; align-self: center; margin-inline-start: 0; padding-block: 0; white-space: nowrap; }
  .wsb-booking-app__toolbar .wsb-booking-app__debug-control:not([hidden]) { grid-column: 1 / -1; }
  .wsb-booking-app__add-trip { min-height: 50px; padding: 10px 12px; }

  .wsb-trip { --wsb-trip-compact-height: 54px; border-radius: 12px; }
  .wsb-trip__header { min-height: 82px; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 7px 8px; }
  .wsb-trip--open .wsb-trip__header { min-height: var(--wsb-mobile-accordion-height); padding: 3px 8px; }
  .wsb-trip--open .wsb-trip__toggle { min-height: 48px; padding-right: 28px; }
  .wsb-trip__body { gap: 8px; padding: var(--wsb-mobile-card-padding); }
  .wsb-trip--open .wsb-trip__body-shell,
  .wsb-trip--open .wsb-trip__body-shell-inner { overflow: visible; }
  .wsb-trip__title-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 6px; }
  .wsb-trip__identity-chip { max-width: 100%; overflow: hidden; padding: 4px 7px 4px 28px; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
  .wsb-trip__identity-chip strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
  .wsb-trip__identity-chip .wsb-trip__type-icon { display: none; }
  .wsb-trip__meta-chip { max-width: 100%; overflow: hidden; }
  .wsb-trip__toggle { position: relative; }
  .wsb-trip__chevron { top: 50%; right: auto; left: 7px; transform: translateY(-50%); }
  .wsb-trip--open .wsb-trip__chevron { transform: translateY(-50%) rotate(180deg); }
  .wsb-trip__header .wsb-trip__drag-handle,
  .wsb-trip__header .wsb-trip-context > :not(.wsb-trip-context__chips),
  .wsb-trip__header .wsb-trip-context__chips > :not(.wsb-trip__identity-chip) { display: none; }
  .wsb-trip__header .wsb-trip__actions { display: none; }
  .wsb-trip__header .wsb-trip-context__chips { display: block; }
  .wsb-trip:not(.wsb-trip--open) .wsb-trip__header { min-height: 58px; grid-template-columns: minmax(0, 1fr); }
  .wsb-trip:not(.wsb-trip--open) .wsb-trip__toggle { min-height: 44px; }
  [data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__header {
    min-height: 54px;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto;
  }
  [data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__actions {
	display: grid;
	grid-template-columns: repeat(4, 32px);
	grid-column: 2;
	justify-self: end;
	gap: 4px;
	padding: 0;
  }
  [data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__actions > button {
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    padding: 0;
  }
	[data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__actions > .wsb-trip__reset {
		width: auto;
		min-width: 0;
		min-height: 28px;
		grid-column: 1 / -1;
		grid-row: 2;
		justify-self: end;
		margin-top: 7px;
		border: 0;
		padding: 2px 0;
		background: transparent;
		color: var(--wsb-color-muted);
		font-size: 12px;
		font-weight: 400;
	}
	[data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__actions > .wsb-trip__reset .wsb-icon { display: none; }
	[data-wsb-trips]:not([data-editing-trip]) .wsb-trip:not(.wsb-trip--open) .wsb-trip__header { padding-bottom: 10px; }

  .wsb-progressive-step { margin-top: 8px; border-radius: 11px; }
	.wsb-admin-adjustment__heading { min-height: 52px; gap: 7px; padding: 8px 10px; }
	.wsb-admin-adjustment__heading-copy { gap: 6px; }
	.wsb-admin-adjustment__status { overflow: hidden; max-width: 180px; flex-wrap: nowrap; justify-content: flex-start; }
	.wsb-admin-adjustment__status-chip { overflow: hidden; max-width: 176px; text-overflow: ellipsis; }
	.wsb-admin-adjustment__panel { padding: 10px; }
	.wsb-admin-adjustment.is-open .wsb-admin-adjustment__panel { grid-template-columns: 1fr; }
	.wsb-admin-adjustment__intro { grid-template-columns: 40px minmax(0, 1fr); }
	.wsb-admin-adjustment__empty-icon { width: 40px; height: 40px; }
	.wsb-admin-adjustment__extras-toolbar { justify-items: start; }
	.wsb-admin-extra-menu { right: auto; left: 0; width: min(280px, calc(100vw - 64px)); }
	.wsb-admin-extra-row { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 7px; padding: 8px; }
	.wsb-admin-extra-row > label:nth-of-type(3) { grid-column: 1 / 3; }
	.wsb-admin-extra-row__actions { grid-column: 3; grid-row: 1 / 3; align-self: end; flex-direction: column; }
	.wsb-admin-extra-row__actions > .wsb-trip__action { width: 40px; min-height: 40px; }
	.wsb-admin-extra-row__total { grid-column: 1 / -1; }
	.wsb-seat-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wsb-progressive-step__header { position: relative; min-height: 56px; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; padding: 7px 9px; }
  .wsb-progressive-step__copy strong { padding-right: 28px; font-size: 15px; line-height: 1.3; }
  .wsb-progressive-step__copy small { font-size: 12px; line-height: 1.35; }
  .wsb-progressive-step__status { position: absolute; top: 7px; right: 9px; width: 20px; height: 20px; display: grid; place-items: center; }
  .wsb-progressive-step.is-open .wsb-progressive-step__status { top: 50%; transform: translateY(-50%); }
  .wsb-progressive-step__status .wsb-icon { width: 18px; height: 18px; }
  .wsb-progressive-step__summary-desktop { display: none; }
  .wsb-progressive-step__summary-mobile { display: grid; min-width: 0; gap: 1px; }
  .wsb-progressive-step__summary-mobile > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .wsb-progressive-step__summary-mobile--party { display: grid; align-items: center; gap: 3px; }
  .wsb-progressive-step__party-counts { flex: 1 1 auto; font-size: 11.5px; }
  .wsb-progressive-step__needs-labels { display: flex; width: 100%; flex-wrap: wrap; gap: 4px; overflow: visible !important; }
  .wsb-progressive-step__need-label { width: max-content; max-width: 100%; padding: 5px 9px; border: 0; border-radius: var(--wsb-radius-s); background: color-mix(in srgb, var(--wsb-color-interaction) 9%, var(--wsb-color-surface)); color: var(--wsb-color-interaction); font-size: 12px; font-weight: 400; line-height: 1.2; white-space: nowrap; }
  .wsb-progressive-step.is-open .wsb-progressive-step__panel { gap: 10px; padding: 10px 9px; }
  .wsb-trip__fields,
  .wsb-extras-controls { grid-template-columns: 1fr; gap: 10px; }
  .wsb-progressive-step .wsb-transfer-route__date-point > .wsb-trip__fields,
  .wsb-booking-app .wsb-trip__group--charter-times .wsb-trip__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .wsb-booking-app .wsb-trip__group--charter-times .wsb-trip__fields > .wsb-field:first-child { grid-column: 1 / -1; }
  .wsb-booking-app :where(.wsb-field__label, .wsb-checkout-field__label) { font-size: 10.5px; letter-spacing: 0.02em; }
  .wsb-booking-app :where(
    .wsb-field input,
    .wsb-field select,
    .wsb-field textarea,
    .wsb-checkout-field input,
    .wsb-checkout-field select,
    .wsb-checkout-field textarea,
    .wsb-checkout-picker__trigger,
    .wsb-checkout-picker__search,
    .wsb-tip-editor__custom input
  ) { font-size: 16px; }
  .wsb-booking-app :where(input, textarea)::placeholder { font-size: 16px; }
  .wsb-booking-app .wsb-checkout-field .wsb-checkout-phone__country { font-size: 16px; }

	/* iOS Safari zooms a page when a focused editable control computes below
	 * 16px. Keep this explicit (including shadow-part and plugin-owned inputs),
	 * because desktop device emulation does not reproduce the real WebKit zoom. */
	@supports (-webkit-touch-callout: none) {
		.wsb-booking-app :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
		.wsb-booking-app__portal :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
		.wsb-booking-app .wsb-date-time-field > .clock-timepicker > input {
			font-size: 16px !important;
		}
		.wsb-booking-app .wsb-place-field__input-shell > gmp-place-autocomplete::part(input) {
			font-size: 16px !important;
		}
	}
  .wsb-trip__group--dates .wsb-date-time-field > input,
  .wsb-trip__group--dates .wsb-date-time-field > .clock-timepicker > input {
    min-height: 48px;
    padding-right: 32px;
    padding-left: 34px;
    font-size: 16px;
  }
  .wsb-trip__group--dates .wsb-date-time-field__icon--leading { left: 9px; width: 16px; height: 16px; }
  .wsb-trip__group--dates .wsb-date-time-field__period { right: 8px; font-size: 10px; }
  .wsb-trip__group--party .wsb-trip__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .wsb-trip__group--party .wsb-trip__fields > .wsb-field:first-child { grid-column: 1 / -1; }
  .wsb-field :where(input, select, textarea),
  .wsb-field__control { min-height: var(--wsb-mobile-control-height); }
  .wsb-trip__types { min-height: 50px; margin-top: 8px; }
  .wsb-trip__types .wsb-trip__action { min-width: 0; padding-inline: 5px; font-size: 13px; line-height: 1.15; white-space: nowrap; }
  .wsb-travel-needs__toggle { grid-template-columns: minmax(0, 1fr) auto 18px; grid-template-areas: "copy edit chevron" "status status status"; gap: 7px 12px; padding: 10px; }
  .wsb-travel-needs__copy { grid-area: copy; }
  .wsb-travel-needs__copy small { display: none; }
  .wsb-travel-needs__edit { grid-area: edit; min-height: 44px; display: inline-flex; align-items: center; justify-content: flex-end; }
  .wsb-travel-needs__toggle > .wsb-icon { grid-area: chevron; display: block; width: 18px; height: 18px; align-self: center; justify-self: end; }
  .wsb-travel-needs__status { grid-area: status; justify-content: flex-start; }
  .wsb-travel-needs__badge.is-empty { border-color: var(--wsb-color-border-subtle); background: var(--wsb-color-canvas); color: var(--wsb-color-muted); }
  .wsb-travel-needs__empty { font-size: 12px; }
  .wsb-travel-needs .wsb-trip__group--extras { padding: 10px; }
  .wsb-progressive-step__next { width: 100%; min-height: 48px; }

  .wsb-transfer-route { padding-left: 0; }
  .wsb-transfer-route__points::before,
  .wsb-transfer-route__marker { display: none; }
  .wsb-route-add-stop[data-stop-entry-pending="1"] {
    border-color: var(--wsb-color-border-subtle);
    background: var(--wsb-color-canvas);
    color: var(--wsb-color-muted);
    box-shadow: none;
    opacity: .62;
  }
  .wsb-transfer-route[data-stop-entry-pending="1"] .wsb-place-field--route:not([data-stop-entry-active="1"]) {
    opacity: .42;
    filter: saturate(.35);
    transition: opacity 180ms ease, filter 220ms cubic-bezier(.22, 1, .36, 1);
  }
  .wsb-transfer-route[data-stop-entry-pending="1"] .wsb-place-field--route[data-stop-entry-active="1"] {
    opacity: 1;
    filter: none;
  }
  .wsb-place-field--route > .wsb-place-field__controls {
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
  }
  .wsb-place-field__input-shell > input {
    padding-right: 88px;
    font-size: 16px;
    font-weight: var(--wsb-font-weight-body);
  }
  .wsb-place-field__input-shell > input::placeholder,
  .wsb-place-field__input-shell > gmp-place-autocomplete::part(input) {
    font-size: 16px;
    font-weight: var(--wsb-font-weight-body);
  }
  .wsb-stop-duration { max-width: 100%; }
  .wsb-stop-duration__menu { right: auto; left: 0; width: min(260px, calc(100vw - 36px)); }
  .wsb-stop-duration__editor { padding: 10px; }
  .ui-datepicker.wsb-booking-v4-picker {
    position: fixed;
    z-index: 10020;
    width: calc(100vw - 20px);
    max-width: none;
    max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    box-sizing: border-box;
    overflow: auto;
    padding: 9px;
  }
  .clock-timepicker-popup {
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    box-sizing: border-box;
  }

  .wsb-quote__title-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; }
  .wsb-quote__title { min-width: 0; font-size: clamp(21px, 7vw, 25px); line-height: 1.2; }
  .wsb-quote__vehicle-heading { align-items: start; gap: 8px; }
  .wsb-quote__vehicle-heading h5 { font-size: 18px; line-height: 1.25; }
  .wsb-quote__show-all-top { min-height: 44px; max-width: 8rem; padding: 5px; line-height: 1.25; text-align: right; }
  .wsb-vehicles { gap: 10px; }
  .wsb-vehicle-card { border-radius: 11px; padding: 9px; }
  .wsb-route-map,
  .wsb-route-hero { min-height: 218px; }
  .wsb-route-option__copy { gap: 0; }

  .wsb-quote--mobile-selection { display: grid; gap: 12px; }
  .wsb-quote__mobile-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
  .wsb-quote__mobile-actions > .wsb-quote__show-all-mobile {
    width: 100%;
    min-height: 44px;
    border-color: var(--wsb-color-border);
    border-radius: var(--wsb-radius-s);
    background: var(--wsb-color-surface);
    color: var(--wsb-color-interaction);
    font-size: 15px;
    font-weight: 500;
  }
  .wsb-quote__mobile-actions > .wsb-help-trigger { min-height: 44px; white-space: nowrap; }
  .wsb-quote--mobile-selection .wsb-vehicles--selected-only { grid-template-columns: 1fr; }
  .wsb-quote--mobile-selection .wsb-vehicle-card--compact.wsb-vehicle-card--selected {
    border-color: var(--wsb-color-interaction);
    background: var(--wsb-color-surface);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--wsb-color-interaction) 20%, transparent);
  }
  .wsb-quote--mobile-selection .wsb-vehicle-card--compact .wsb-vehicle-card__body {
    grid-template-columns: minmax(104px, .85fr) minmax(0, 1fr);
    align-items: center;
  }
  .wsb-quote--mobile-selection .wsb-vehicle-card--compact .wsb-vehicle-card__media,
  .wsb-quote--mobile-selection .wsb-vehicle-card--compact .wsb-vehicle-card__image { min-height: 96px; height: 96px; }
  .wsb-quote--mobile-selection .wsb-vehicle-card__badge--selection {
    order: -2;
    background: color-mix(in srgb, var(--wsb-color-interaction) 9%, var(--wsb-color-surface));
    color: var(--wsb-color-interaction);
  }
  .wsb-quote--mobile-selection .wsb-vehicle-card--selected .wsb-vehicle-card__badge:not(.wsb-vehicle-card__badge--selection) { display: none; }
  .wsb-quote--mobile-selection .wsb-vehicle-card--selected .wsb-vehicle-card__footer {
    grid-template-columns: 1fr;
  }
  .wsb-quote--mobile-selection .wsb-vehicles--selected-only .wsb-vehicle-card--selected .wsb-vehicle-card__footer { display: none; }
  .wsb-quote--mobile-selection .wsb-vehicle-card--selected .wsb-vehicle-card__price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
  }
  .wsb-quote--mobile-selection .wsb-vehicle-card--selected .wsb-pricing-diagnostics { flex: 0 0 100%; }
  .wsb-mobile-sticky-price {
    position: sticky;
    z-index: 19;
    top: var(--wsb-mobile-price-sticky-top, calc(var(--wsb-sticky-offset, 0px) + var(--wsb-mobile-accordion-height)));
    display: flex;
    min-height: 48px;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: -12px;
    border: 1px solid var(--wsb-color-interaction);
    border-top: 1px solid var(--wsb-color-border-subtle);
    border-radius: 0 0 var(--wsb-radius-s) var(--wsb-radius-s);
    padding: 10px 12px;
    background: color-mix(in srgb, var(--wsb-color-surface) var(--wsb-glass-bg-alpha), transparent);
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 7%, transparent);
    backdrop-filter: blur(var(--wsb-glass-blur)) saturate(var(--wsb-glass-saturation));
    transition: border-radius 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
  }
  .wsb-mobile-sticky-price small { color: var(--wsb-color-muted); font-size: 12px; font-weight: 500; }
  .wsb-mobile-sticky-price strong { color: var(--wsb-color-ink-strong); font-size: 18px; }
  .wsb-mobile-sticky-price__label-stuck { display: none; }
  .wsb-mobile-sticky-price[data-sticky-state="stuck"] {
    border-radius: 0 0 var(--wsb-radius-m) var(--wsb-radius-m);
    background: color-mix(in srgb, var(--wsb-color-surface) 88%, transparent);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--wsb-color-ink) 13%, transparent);
  }
  .wsb-mobile-sticky-price[data-sticky-state="stuck"] .wsb-mobile-sticky-price__label-normal { display: none; }
  .wsb-mobile-sticky-price[data-sticky-state="stuck"] .wsb-mobile-sticky-price__label-stuck { display: inline; }
  .wsb-quote--mobile-selection .wsb-route-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    border-color: var(--wsb-color-border);
    box-shadow: none;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__copy {
    align-content: start;
    gap: 8px;
    padding: 12px;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__leg {
    grid-template-columns: minmax(108px, .8fr) minmax(0, 1.2fr);
    align-items: start;
    gap: 12px;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__identity { display: grid; align-content: start; gap: 8px; }
  .wsb-quote--mobile-selection .wsb-route-hero__identity h5 { font-size: 12px; line-height: 1.25; }
  .wsb-quote--mobile-selection .wsb-route-hero__eyebrow { padding: 3px 6px; font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1.2; white-space: nowrap; }
  .wsb-quote--mobile-selection .wsb-route-hero__support { display: none; }
  .wsb-quote--mobile-selection .wsb-route-hero__support[data-route-roads="1"] { display: block; line-height: 1.35; }
  .wsb-quote--mobile-selection .wsb-route-hero__metrics {
    grid-template-columns: 1fr;
    margin: 0;
    border-top: 0;
    border-left: 1px solid var(--wsb-color-border-subtle);
    padding: 0 0 0 12px;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__metric {
    grid-template-columns: 18px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
    border-right: 0;
    padding: 5px 0;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__metric:first-child,
  .wsb-quote--mobile-selection .wsb-route-hero__metric:last-child { padding: 5px 0; }
  .wsb-quote--mobile-selection .wsb-route-hero__metric .wsb-icon {
    grid-row: 1;
    width: 18px;
    height: 18px;
    margin: 0;
  }
  .wsb-quote--mobile-selection .wsb-route-hero__metrics dd { text-align: right; white-space: nowrap; }
  .wsb-quote--mobile-selection .wsb-route-map-pane {
    width: 100%;
    min-width: 0;
  }
  .wsb-quote--mobile-selection .wsb-route-map { width: 100%; min-height: 220px; }
  .wsb-quote--mobile-selection .wsb-route-map__full-link { top: auto; right: auto; bottom: 10px; left: 50%; max-width: calc(100% - 128px); transform: translateX(-50%); white-space: nowrap; }
  .wsb-route-options__list [data-route-option-id],
  .wsb-route-options__list [data-route-option-id] * { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
  .wsb-route-options__list [data-route-option-id].wsb-route-option--press-preview { border-color: var(--wsb-color-interaction); box-shadow: 0 0 0 2px color-mix(in srgb, var(--wsb-color-interaction) 22%, transparent); }

  .wsb-charter { padding: 10px; }
  .wsb-charter-experience { grid-template-columns: minmax(0, 1fr); }
  .wsb-charter-experience__label-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
  .wsb-charter-experience__guide { min-height: auto; border: 0; padding: 0; background: transparent; color: var(--wsb-color-interaction); font-size: 12px; font-weight: 700; white-space: nowrap; }
  .wsb-charter-experience__summary { display: none; }
  .wsb-charter__workspace[data-state="disabled"] { display: none; }
  .wsb-charter__discovery-heading,
  .wsb-charter__workspace[data-state="disabled"] .wsb-charter__places > h5 { text-align: center; }
  .wsb-charter__tabs-frame { grid-template-columns: minmax(0, 1fr); touch-action: pan-x; }
  .wsb-charter__tabs-frame::before { left: 0; }
  .wsb-charter__tabs-frame::after { right: 0; }
  .wsb-charter__tabs-control { display: none; }
  .wsb-charter__tabs-scroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; touch-action: pan-x; cursor: grab; }
  .wsb-charter__tabs { width: max-content; min-width: max-content; }
  .wsb-charter__toolbar { grid-template-columns: minmax(0, 1fr); }
  .wsb-charter__filters { display: none; }
  .wsb-charter__custom-shortcut {
    display: inline-flex;
    width: fit-content;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    justify-self: center;
    gap: 6px;
    border: 0;
    padding: 4px 6px;
    background: transparent;
    color: var(--wsb-color-interaction);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .wsb-charter__custom-shortcut .wsb-icon { width: 16px; height: 16px; flex: 0 0 16px; }
  .wsb-charter__custom-shortcut:hover,
  .wsb-charter__custom-shortcut:focus-visible { color: var(--wsb-color-interaction-strong, var(--wsb-color-interaction)); }
  .wsb-charter__browse { max-height: calc(100dvh - var(--wsb-sticky-offset, 0px) - var(--wsb-mobile-dock-height, 148px) - 88px); grid-template-rows: auto auto auto minmax(0, 1fr); overflow: hidden; }
  .wsb-charter__search input {
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    -webkit-appearance: none;
    appearance: none;
  }
  .wsb-charter__search input::-webkit-search-cancel-button { display: none; }
  .wsb-charter__suggestions { min-height: 0; max-height: min(46dvh, 360px); overflow-y: auto; overscroll-behavior: contain; padding-right: 2px; scrollbar-gutter: stable; }
  .wsb-trip__group--charter-locations .wsb-trip__fields { gap: 4px; }
  .wsb-trip__group--charter-locations .wsb-place-field--charter-endpoint { margin-bottom: 1rem; }
	.wsb-progressive-step__content > .wsb-trip__group--charter-locations + .wsb-trip__group--notes { margin-top: .5rem; }
  .wsb-charter-basics__swap { width: 44px; min-width: 44px; min-height: 40px; justify-self: center; align-self: center; margin: -2px 0; transform: rotate(90deg); }
  .wsb-charter-basics__swap :is(.wsb-asset-icon, .wsb-ui-icon) { --wsb-icon-size: 23px; }
  .wsb-charter__custom { grid-template-columns: 1fr; }
  .wsb-charter__custom > .wsb-trip__action { width: 100%; }
  .wsb-charter-place { grid-template-columns: minmax(0, 1fr) auto !important; gap: 5px 8px; padding: 9px !important; }
  .wsb-charter-place__copy { grid-column: 1; grid-row: 1; }
  .wsb-charter-place__copy strong,
  .wsb-charter-place__copy small { white-space: normal; overflow-wrap: break-word; }
  .wsb-charter-place__category { grid-column: 1; grid-row: 2; }
  .wsb-charter-place > .wsb-trip__action,
  .wsb-charter-place__added-status { min-width: 58px; grid-column: 2; grid-row: 1 / 3; }
  .wsb-charter__map { min-height: clamp(220px, 62dvh, 300px); }
  .wsb-charter__camera { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wsb-charter__camera .wsb-trip__action { min-width: 0; padding-inline: 7px; }
  .wsb-charter__ordered { gap: 4px; padding: 0; }
  .wsb-charter__ordered-item { grid-template-columns: 32px 22px minmax(0, 1fr) auto; grid-template-rows: auto; gap: 4px; border-right: 0; border-left: 0; border-radius: 0; padding: 6px 0; }
  .wsb-charter__ordered-item > [data-charter-place-handle] { width: 32px; min-height: 32px; grid-column: 1; grid-row: 1; }
  .wsb-charter__ordered-item [data-charter-place-handle]::before { inset: 1px; }
  .wsb-charter__order { width: 22px; height: 22px; grid-column: 2; grid-row: 1; }
  .wsb-charter__ordered-copy { grid-column: 3; grid-row: 1; }
  .wsb-charter__ordered-actions { display: flex; width: auto; grid-column: 4; grid-row: 1; justify-self: end; gap: 2px; }
  .wsb-charter__ordered-actions > .wsb-trip__action { width: 30px; min-height: 30px; }
  .wsb-charter__ordered-actions > .wsb-trip__action::before { inset: 1px; }
  .wsb-charter__ordered-actions > .wsb-trip__action .wsb-icon { width: 15px; height: 15px; }

  /* Shuttle Hire discovery stays on the page; its canonical itinerary becomes
     the mobile Your day drawer instead of a second, duplicated stop list. */
  .wsb-booking-app:has(.wsb-charter__workspace[data-mobile-day-available="true"]) {
    padding-bottom: calc(var(--wsb-mobile-dock-height, 148px) + 72px + env(safe-area-inset-bottom));
  }
  .wsb-charter__workspace { display: block; }
  .wsb-charter__intro { gap: 0; }
  .wsb-charter__intro-heading { display: block; }
  .wsb-charter__intro-heading > h4,
  .wsb-charter__intro > p { display: none; }
  .wsb-charter__workspace[data-mobile-day-available="true"] .wsb-charter__browse { padding-bottom: 72px; }
  .wsb-charter-day__bar {
    position: fixed;
    z-index: 9988;
    right: max(4px, env(safe-area-inset-right));
    bottom: calc(var(--wsb-mobile-dock-height, 148px) + 8px);
    left: max(4px, env(safe-area-inset-left));
    display: grid;
    min-height: 56px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    border: 1px solid color-mix(in srgb, var(--wsb-color-interaction) 34%, var(--wsb-color-border));
    border-radius: 10px;
    padding: 7px 12px;
    background: color-mix(in srgb, var(--wsb-color-surface) 88%, transparent);
    box-shadow: 0 14px 38px color-mix(in srgb, var(--wsb-color-ink) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.72);
    color: var(--wsb-color-ink-strong);
    -webkit-backdrop-filter: blur(var(--wsb-glass-blur)) saturate(var(--wsb-glass-saturation));
    backdrop-filter: blur(var(--wsb-glass-blur)) saturate(var(--wsb-glass-saturation));
    transition: opacity 300ms ease, transform 420ms cubic-bezier(.22, 1, .36, 1);
  }
  .wsb-trip:not(.wsb-trip--open) .wsb-charter-day__bar,
  .wsb-trip__body:has(.wsb-charter__route[data-drawer-state="open"]) > .wsb-charter-day__bar { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(14px); }
  .wsb-charter-day__bar-copy { display: grid; min-width: 0; justify-items: start; gap: 1px; text-align: left; }
  .wsb-charter-day__bar-copy strong { font-size: 14px; }
  .wsb-charter-day__bar-copy small { color: var(--wsb-color-muted); font-size: 11px; }
  .wsb-charter-day__bar-action { display: inline-flex; align-items: center; gap: 7px; color: var(--wsb-color-interaction); font-size: 12px; font-weight: 800; white-space: nowrap; }
  .wsb-charter-day__bar-action .wsb-icon { width: 16px; height: 16px; }
  .wsb-charter-day__backdrop {
    position: fixed;
    z-index: 9991;
    inset: 0;
    display: block;
    width: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: color-mix(in srgb, var(--wsb-color-ink) 38%, transparent);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 340ms ease, visibility 0s linear 420ms;
  }
  .wsb-charter__workspace[data-mobile-day-state="open"] .wsb-charter-day__backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .wsb-charter__route[data-charter-day-drawer="1"] {
    position: fixed;
    z-index: 9992;
    right: max(6px, env(safe-area-inset-right));
    bottom: 0;
    left: max(6px, env(safe-area-inset-left));
    display: grid;
    width: auto;
    height: min(90dvh, calc(100dvh - var(--wsb-sticky-offset, 0px) - 18px));
    max-height: min(90dvh, calc(100dvh - var(--wsb-sticky-offset, 0px) - 18px));
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 4px;
    overflow-x: hidden;
    overflow-y: hidden;
    overscroll-behavior: contain;
    border: 1px solid color-mix(in srgb, var(--wsb-color-border) 82%, transparent);
    border-radius: 20px 20px 0 0;
    padding: 0 4px 4px;
    background: var(--wsb-color-surface);
    box-shadow: 0 -18px 48px color-mix(in srgb, var(--wsb-color-ink) 20%, transparent);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(calc(100% + 24px));
    transition: transform 420ms cubic-bezier(.22, 1, .36, 1), opacity 260ms ease, visibility 0s linear 420ms;
  }
  .wsb-charter__route[data-drawer-state="open"] { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition-delay: 0s; }
  .wsb-charter-day__header {
    position: sticky;
    z-index: 8;
    top: 0;
    display: grid;
    min-height: 66px;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    gap: 8px;
    margin-inline: -4px;
    border-bottom: 1px solid var(--wsb-color-border-subtle);
    padding: 13px 4px 8px;
    background: color-mix(in srgb, var(--wsb-color-surface) 94%, transparent);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
  }
  .wsb-charter-day__grabber { display: none; }
  .wsb-charter-day__title { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: 10px; }
  .wsb-charter-day__title strong { color: var(--wsb-color-ink-strong); font-size: 17px; }
  .wsb-charter-day__title small { color: var(--wsb-color-muted); font-size: 11px; white-space: nowrap; }
  .wsb-charter-day__close { width: 44px; min-height: 44px; border: 1px solid var(--wsb-color-border); border-radius: 12px; padding: 0; background: var(--wsb-color-surface); }
  .wsb-charter-day__close .wsb-icon { width: 18px; height: 18px; }
  .wsb-charter-day__scroll { display: grid; min-height: 0; align-content: start; gap: 4px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
  .wsb-charter-day__custom-region { display: grid; order: 3; gap: 8px; }
  .wsb-charter-day__custom-toggle,
  .wsb-charter-day__start-custom {
    display: inline-flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid color-mix(in srgb, var(--wsb-color-interaction) 48%, var(--wsb-color-border));
    border-radius: var(--wsb-radius-s);
    padding: 8px 12px;
    background: color-mix(in srgb, var(--wsb-color-interaction) 6%, var(--wsb-color-surface));
    color: var(--wsb-color-interaction);
    font-size: 13px;
    font-weight: 800;
  }
  .wsb-charter-day__start-custom { margin-top: 10px; }
  .wsb-charter-day__custom-toggle .wsb-icon,
  .wsb-charter-day__start-custom .wsb-icon { width: 17px; height: 17px; }
  .wsb-charter-day__custom-toggle .wsb-icon { transition: transform 220ms cubic-bezier(.22, 1, .36, 1), opacity 160ms ease; }
  .wsb-charter-day__custom-toggle[aria-expanded="true"] .wsb-icon { animation: wsb-charter-custom-toggle-in 220ms cubic-bezier(.22, 1, .36, 1); }
  @keyframes wsb-charter-custom-toggle-in { from { opacity: 0; transform: translateY(4px) rotate(-35deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
  @media (prefers-reduced-motion: reduce) { .wsb-charter-day__custom-toggle .wsb-icon { animation: none; transition: none; } }
  .wsb-charter-day__custom-region > .wsb-charter__custom { display: none; grid-template-columns: minmax(0, 1fr); border: 1px solid var(--wsb-color-border); border-radius: var(--wsb-radius-s); padding: 10px; }
  .wsb-charter-day__custom-region > .wsb-charter__custom[data-mobile-expanded="true"] { display: grid; }
  .wsb-charter-day__custom-region > .wsb-charter__custom[data-mobile-expanded="true"] > h6 { display: none; }
  .wsb-charter-day__custom-region .wsb-charter__custom-helper { width: 100%; margin-top: 0; font-size: 13px; line-height: 1.35; white-space: normal; }
  .wsb-charter-day__custom-region .wsb-charter__custom-input,
  .wsb-charter-day__custom-region .wsb-charter__custom-add { width: 100%; grid-column: 1; }
  .wsb-charter-day__custom-region .wsb-charter__custom-input input {
    width: 100%;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    border-radius: var(--wsb-radius-s);
    padding: 8px 42px;
    font-size: 16px;
    font-weight: 400;
  }
  .wsb-charter-day__custom-region .wsb-charter__custom-input input::placeholder { font-size: 16px; font-weight: 400; }
  .wsb-charter-day__custom-region .wsb-charter__custom-search-icon { width: 18px; height: 18px; }
  .wsb-charter-day__scroll > .wsb-charter__places { order: 2; gap: 4px; border: 0; border-radius: 0; padding: 4px; }
  .wsb-charter-day__scroll > .wsb-charter__map { order: 4; }
  .wsb-charter-day__scroll > .wsb-charter__camera { order: 5; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__ordered { max-height: none; overflow: visible; scrollbar-gutter: auto; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__ordered-item { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__ordered-item > [data-charter-place-handle] { display: none; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__order { grid-column: 1; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__ordered-copy { grid-column: 2; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__ordered-actions { grid-column: 3; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__places-heading-actions > .wsb-charter__places-count { display: none; }
  .wsb-charter__route[data-charter-day-drawer="1"] .wsb-charter__clear-all.wsb-trip__action { font-size: 14px; }
  .wsb-charter-day__next {
    display: inline-flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
    z-index: 9;
    margin: 0;
    background-clip: padding-box;
  }
  .wsb-charter-day__next.wsb-booking-app__button--ready:not(:disabled) {
    border-color: transparent;
    background: var(--wsb-cta-gradient);
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--wsb-color-interaction) 18%, transparent);
  }
  .wsb-progressive-step[data-trip-progressive-step="3"] > .wsb-progressive-step__panel-shell > .wsb-progressive-step__panel > .wsb-progressive-step__next { display: none; }

  .wsb-booking-app__stage-action {
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 44px;
    align-items: center;
    gap: 6px 8px;
    border-radius: 14px 14px 0 0;
    padding: 4px max(4px, env(safe-area-inset-right)) max(4px, env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-left));
    background: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transition: right 420ms cubic-bezier(.22, 1, .36, 1), bottom 420ms cubic-bezier(.22, 1, .36, 1), left 420ms cubic-bezier(.22, 1, .36, 1), border-radius 420ms ease;
  }
  @media (prefers-reduced-motion: no-preference) {
    .wsb-booking-app__stage-action:not([hidden]) { animation: wsb-r14-footer-in 360ms cubic-bezier(.22, 1, .36, 1) both; }
  }
  .wsb-booking-app[data-summary-disclosure="open"] .wsb-booking-app__stage-action {
    right: 0;
    bottom: calc(min(85dvh, 85vh) - var(--wsb-mobile-dock-height, 148px));
    left: 0;
    border-radius: 20px 20px 0 0;
  }
  .wsb-booking-app__stage-total {
    display: grid;
    grid-column: 1 / 3;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 2px 10px;
  }
  .wsb-booking-app__stage-total small {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-self: start;
    border: 1px solid color-mix(in srgb, var(--wsb-color-border) var(--wsb-glass-border-alpha), transparent);
    border-radius: 999px;
    padding: 0 12px;
    background: color-mix(in srgb, var(--wsb-color-surface) 48%, transparent);
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 8%, transparent), inset 0 1px 0 rgba(255,255,255,.68);
    -webkit-backdrop-filter: blur(calc(var(--wsb-glass-blur) * .55)) saturate(var(--wsb-glass-saturation));
    backdrop-filter: blur(calc(var(--wsb-glass-blur) * .55)) saturate(var(--wsb-glass-saturation));
    font-size: 11px;
  }
  .wsb-booking-app__stage-total strong { font-size: 17px; }
  .wsb-booking-app__stage-total > span { display: none; }
  .wsb-booking-app__mobile-summary-toggle {
    grid-column: 3;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--wsb-color-border) var(--wsb-glass-border-alpha), transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--wsb-color-surface) 48%, transparent);
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 8%, transparent), inset 0 1px 0 rgba(255,255,255,.68);
    -webkit-backdrop-filter: blur(calc(var(--wsb-glass-blur) * .55)) saturate(var(--wsb-glass-saturation));
    backdrop-filter: blur(calc(var(--wsb-glass-blur) * .55)) saturate(var(--wsb-glass-saturation));
    color: var(--wsb-color-ink);
  }
  .wsb-booking-app__mobile-summary-toggle:focus-visible { outline: 2px solid var(--wsb-color-interaction); outline-offset: 2px; }
  @supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .wsb-booking-app__stage-total small,
    .wsb-booking-app__mobile-summary-toggle { background: color-mix(in srgb, var(--wsb-color-surface) 92%, var(--wsb-booking-canvas-bg)); }
  }
  .wsb-booking-app__mobile-summary-toggle .wsb-icon { width: 18px; height: 18px; transform: rotate(180deg); transition: transform 180ms ease; }
  .wsb-booking-app[data-summary-disclosure="open"] .wsb-booking-app__mobile-summary-toggle .wsb-icon { transform: rotate(0deg); }
  .wsb-booking-app__stage-primary { grid-column: 1 / -1; display: grid; width: 100%; }
  .wsb-booking-app__button { min-height: 48px; padding: 10px 14px; font-size: 15px; }
  .wsb-booking-app__stage-reason:not(.wsb-sr-only) { width: 100%; min-width: 0; min-height: 36px; max-width: 100%; padding: 3px 6px; font-size: 12px; }
  .wsb-booking-app__stage-reason-heading,
  .wsb-booking-app__stage-reason-copy { min-width: 0; max-width: 100%; overflow-wrap: break-word; }
  .wsb-trust-sticky-link { min-height: 30px; padding-block: 1px; font-size: 13px; line-height: 1.25; }

  .wsb-booking-app__summary-region,
  .wsb-booking-app__summary-region[data-summary-disclosure="collapsed"] { position: static; width: 0 !important; min-width: 0; min-height: 0; height: 0; overflow: visible; border: 0; box-shadow: none; }
  .wsb-booking-app__summary-region .wsb-booking-app__summary-compact,
  .wsb-booking-app__summary-region .wsb-booking-app__summary-toggle--collapsed { display: none !important; }
  .wsb-booking-app__summary-region .wsb-booking-app__summary-panel {
    position: fixed;
    z-index: 9989;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding: 0;
    background: transparent;
    opacity: 1;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    transition: background-color 360ms ease, visibility 0s linear 420ms;
  }
  .wsb-booking-app__summary-region .wsb-booking-app__summary {
    position: relative;
    width: 100%;
    height: min(85dvh, 85vh);
    max-height: min(85dvh, 85vh);
    align-self: end;
    overflow-y: auto;
    border-radius: 20px 20px 0 0;
    padding: calc(var(--wsb-mobile-dock-height, 148px) + 16px) 16px 16px;
    background: #fff;
    background-image: none;
    box-shadow: 0 -16px 44px color-mix(in srgb, var(--wsb-color-ink) 18%, transparent);
    transform: translateY(100%);
    transition: transform 420ms cubic-bezier(.22, 1, .36, 1);
  }
  .wsb-booking-app__summary-region .wsb-booking-app__summary-heading { display: none; }
  .wsb-booking-app__summary-region[data-summary-disclosure="open"] .wsb-booking-app__summary-panel {
    background: color-mix(in srgb, var(--wsb-color-ink) 42%, transparent);
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }
  .wsb-booking-app__summary-region[data-summary-disclosure="open"] .wsb-booking-app__summary { transform: translateY(0); }
  .wsb-booking-app__summary-region [data-wsb-reviews],
  .wsb-booking-app__summary-region [data-wsb-trust-summary] { display: none !important; }
  .wsb-booking-app [data-airport-pickup-badge] { display: none !important; }
  .wsb-booking-app__summary-region[data-summary-disclosure="open"] .wsb-booking-app__summary-toggle--expanded .wsb-icon { transform: none; }
  .wsb-booking-app__summary-region[data-summary-disclosure="open"] .wsb-admin-quote-button:not([hidden]) {
    display: flex;
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    border: 1px solid var(--wsb-color-interaction);
    border-radius: 12px;
    padding: 0 14px;
    background: var(--wsb-color-surface);
    color: var(--wsb-color-interaction);
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
  }
  .wsb-booking-app__summary-route,
  .wsb-booking-app__summary-date { font-size: 12px; }

  .wsb-vehicle-drawer:not(.wsb-extras-drawer) { width: 100%; max-width: 100%; }
  .wsb-vehicle-drawer[data-mobile-layout="simple"] .wsb-vehicle-drawer__header {
    min-height: 58px;
    align-items: center;
  }
  .wsb-vehicle-drawer[data-mobile-layout="simple"] .wsb-vehicle-drawer__context { display: block; }
  .wsb-vehicle-drawer[data-mobile-layout="simple"] .wsb-vehicle-drawer__identity {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    border-radius: var(--wsb-radius-s);
    padding: 5px 10px;
    background: color-mix(in srgb, var(--wsb-color-canvas) 82%, var(--wsb-color-surface));
    color: var(--wsb-color-ink-strong);
    font-size: 14px;
    font-weight: 500;
  }
  .wsb-vehicle-drawer__header { min-height: 64px; gap: 8px; padding: 10px 12px; }
  .wsb-vehicle-drawer__header h2,
  .wsb-vehicle-drawer__header h3 { min-width: 0; font-size: 20px; line-height: 1.25; white-space: normal; }
  .wsb-vehicle-drawer[data-mobile-layout="simple"] .wsb-vehicle-drawer__list {
    grid-auto-rows: max-content;
    gap: 12px;
    padding: 8px 8px max(12px, env(safe-area-inset-bottom));
  }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__badges { display: flex; min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 4px; overflow: visible; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__badge { max-width: 100%; white-space: normal; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__badge--selection { display: none; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    height: auto;
    min-height: max-content;
    border-color: var(--wsb-color-border-subtle);
    padding: 10px;
    overflow: visible;
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 10%, transparent);
  }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer[data-selectable="true"]:hover,
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer[data-selectable="true"]:focus-visible {
    border-color: color-mix(in srgb, var(--wsb-color-interaction) 28%, var(--wsb-color-border-subtle));
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 10%, transparent);
  }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer.wsb-vehicle-card--selected {
    border-color: color-mix(in srgb, var(--wsb-color-success) 32%, var(--wsb-color-border-subtle));
    box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 10%, transparent);
  }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer > * { flex: 0 0 auto; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer .wsb-vehicle-card__body { grid-template-columns: 92px minmax(0, 1fr); }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__title-row { align-items: flex-start; flex-wrap: wrap; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__title-row h5,
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__details,
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card__price > small { overflow: visible; text-overflow: clip; white-space: normal; }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer .wsb-vehicle-card__footer {
    display: grid;
    position: static;
    grid-template-columns: minmax(0, 1fr) minmax(116px, .8fr);
    align-items: center;
    gap: 8px;
    width: 100%;
    border-top: 1px solid var(--wsb-color-border-subtle);
    border-left: 0;
    padding: 9px 0 0;
    padding-right: 0;
  }
  .wsb-vehicle-drawer:not(.wsb-extras-drawer) .wsb-vehicle-card--drawer .wsb-trip__action { position: static; justify-self: stretch; width: 100%; max-width: none; }

  .wsb-booking-app[data-stage="vehicle_review"] > .wsb-booking-app__header { display: grid; padding-top: 10px; }
  .wsb-booking-app[data-stage="vehicle_review"] > .wsb-booking-app__header > .wsb-booking-app__header-top { display: none; }
  .wsb-booking-app[data-stage="vehicle_review"] .wsb-booking-app__layout { padding-top: 8px; }
  .wsb-booking-app .wsb-vehicle-review { gap: 10px; margin-top: 0; }
  .wsb-booking-app .wsb-vehicle-review__hero { align-items: stretch; flex-direction: column; gap: 10px; padding: 6px 2px 8px; }
  .wsb-booking-app .wsb-vehicle-review__hero-copy { gap: 3px; }
  .wsb-booking-app .wsb-vehicle-review__hero h2 { font-size: 23px; line-height: 1.2; }
  .wsb-booking-app .wsb-vehicle-review__support { font-size: 13px; line-height: 1.45; }
  .wsb-booking-app .wsb-vehicle-review__support-desktop { display: none; }
  .wsb-booking-app .wsb-vehicle-review__hero-actions,
  .wsb-booking-app .wsb-stage-utility-row.wsb-vehicle-review__hero-actions { min-height: 42px; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; margin-top: 0; }
  .wsb-booking-app .wsb-vehicle-review__hero-actions > * { width: fit-content; }
  .wsb-booking-app .wsb-vehicle-review__hero-actions [data-wsb-help-trigger] { margin-left: auto; }

  .wsb-booking-app .wsb-vehicle-review__trip { position: relative; gap: 8px; border-radius: 12px; padding: 12px; background: var(--wsb-color-surface); box-shadow: 0 5px 16px color-mix(in srgb, var(--wsb-color-ink) 7%, transparent); cursor: pointer; }
  .wsb-booking-app .wsb-vehicle-review__trip--vehicle-needed { border-color: color-mix(in srgb, var(--wsb-color-warning) 42%, var(--wsb-color-border)); background: color-mix(in srgb, var(--wsb-color-warning-softer) 55%, var(--wsb-color-surface)); }
  .wsb-booking-app .wsb-vehicle-review__trip-header { position: relative; display: block; min-width: 0; }
  .wsb-booking-app .wsb-vehicle-review__edit { display: none; }
  .wsb-booking-app .wsb-vehicle-review__mobile-status { position: absolute; z-index: 1; top: 0; right: 0; display: inline-flex; width: fit-content; min-height: 28px; align-items: center; gap: 6px; border-radius: 7px; padding: 4px 7px; font-size: 11px; font-weight: 600; letter-spacing: 0; line-height: 1.2; text-transform: none; }
  .wsb-booking-app .wsb-vehicle-review__mobile-status--selected { background: var(--wsb-color-success-soft); color: var(--wsb-color-success); }
  .wsb-booking-app .wsb-vehicle-review__mobile-status--vehicle-needed { background: var(--wsb-color-warning-soft); color: var(--wsb-color-warning); }
  .wsb-booking-app .wsb-vehicle-review__mobile-status .wsb-review-shuttle__check { order: 2; }
  .wsb-booking-app .wsb-trip-context--vehicle_review { width: 100%; gap: 5px; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-trip-context__chips { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-vehicle-review__identity { max-width: calc(100% - 112px); padding: 3px 0; background: transparent; font-size: 15px; font-weight: 600; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-vehicle-review__identity strong { font-weight: 600; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-vehicle-review__identity .wsb-trip__type-icon { display: inline-grid; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-vehicle-review__travellers { display: none; }
  .wsb-booking-app .wsb-trip-context--vehicle_review .wsb-vehicle-review__route-chip { grid-row: 2; justify-self: start; max-width: 100%; padding: 3px 6px; font-size: 11px; }
  .wsb-booking-app .wsb-vehicle-review__itinerary,
  .wsb-booking-app .wsb-vehicle-review__date { font-size: 12px; }
  .wsb-booking-app .wsb-vehicle-review__date .wsb-trip-context__eta { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 0 8px; }
  .wsb-booking-app .wsb-vehicle-review__trip--selected .wsb-trip-context--vehicle_review .wsb-vehicle-review__route-chip,
  .wsb-booking-app .wsb-vehicle-review__trip--selected .wsb-vehicle-review__itinerary,
  .wsb-booking-app .wsb-vehicle-review__trip--selected .wsb-vehicle-review__date { display: none; }

  .wsb-booking-app .wsb-review-shuttle { grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 8px; border-radius: 9px; padding: 8px; }
  .wsb-booking-app .wsb-review-shuttle--selected { border-color: var(--wsb-color-border); background: var(--wsb-color-surface); }
  .wsb-booking-app .wsb-review-shuttle__media { min-height: 74px; border: 0; background: linear-gradient(145deg, var(--wsb-color-surface), var(--wsb-color-canvas)); }
  .wsb-booking-app .wsb-review-shuttle__image { height: 74px; }
  .wsb-booking-app .wsb-review-shuttle__title { font-size: 14px; }
  .wsb-booking-app .wsb-review-shuttle__models { font-size: 11px; line-height: 1.35; white-space: normal; }
  .wsb-booking-app .wsb-review-shuttle__title-row .wsb-review-shuttle__status,
  .wsb-booking-app .wsb-review-shuttle__capacity,
  .wsb-booking-app .wsb-review-shuttle__package-meta,
  .wsb-booking-app .wsb-review-shuttle__note,
  .wsb-booking-app .wsb-review-shuttle__apply-all { display: none; }
  .wsb-booking-app .wsb-review-shuttle__price { grid-column: 3; display: grid; min-width: 72px; grid-template-columns: minmax(0, auto) 30px; align-items: center; justify-items: end; gap: 4px; border-top: 0; padding-top: 0; text-align: right; }
  .wsb-booking-app .wsb-review-shuttle__price strong { font-size: 15px; }
  .wsb-booking-app .wsb-review-shuttle__price > span { display: none; }
  .wsb-booking-app .wsb-review-shuttle__price .wsb-review-shuttle__action { display: inline-grid; grid-column: 2; grid-row: 1; width: 30px; min-width: 30px; min-height: 42px; place-items: center; margin: 0; border: 0; padding: 0; background: transparent; color: var(--wsb-color-interaction); font-size: 0; box-shadow: none; }
  .wsb-booking-app .wsb-review-shuttle__action-icon { width: 18px; height: 18px; }
  .wsb-booking-app[data-stage="vehicle_review"] .wsb-review-shuttle__tap-hint { display: block; margin: -2px 0 0; color: var(--wsb-color-muted); font-size: 11px; line-height: 1.3; text-align: center; }

  .wsb-booking-app .wsb-review-shuttle--needed { grid-template-columns: 82px minmax(0, 1fr); gap: 10px; border-color: color-mix(in srgb, var(--wsb-color-interaction) 18%, var(--wsb-color-border)); background: color-mix(in srgb, var(--wsb-color-interaction) 4%, var(--wsb-color-surface)); }
  .wsb-booking-app .wsb-review-shuttle--needed .wsb-review-shuttle__illustration { grid-column: 1; min-height: 74px; border: 1px solid var(--wsb-color-border-subtle); border-radius: 9px; background: linear-gradient(145deg, var(--wsb-color-surface), var(--wsb-color-canvas)); }
  .wsb-booking-app .wsb-review-shuttle--needed .wsb-review-shuttle__image--placeholder { width: 100%; height: 74px; padding: 0; background: transparent; }
  .wsb-booking-app .wsb-review-shuttle--needed .wsb-review-shuttle__content { display: none; }
  .wsb-booking-app .wsb-review-shuttle--needed .wsb-review-shuttle__action { grid-column: 2; display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: center; gap: 8px; margin: 0; border-color: var(--wsb-color-interaction); padding: 8px 10px; background: transparent; color: var(--wsb-color-interaction); font-size: 12px; font-weight: 600; }
  .wsb-booking-app .wsb-review-shuttle--needed .wsb-review-shuttle__action .wsb-icon { margin-left: auto; }

  .wsb-booking-app[data-stage="vehicle_review"] [data-wsb-stage-action-button][data-review-missing-trip-id] > .wsb-icon:first-child { width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; padding: 7px; }

  .wsb-booking-app[data-stage="checkout"] { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  .wsb-booking-app[data-stage="checkout"] > .wsb-booking-app__header { display: grid; padding-top: 10px; }
  .wsb-booking-app[data-stage="checkout"] > .wsb-booking-app__header > .wsb-booking-app__header-top { display: none; }
  .wsb-checkout-hero { gap: 8px; padding: 6px 2px 8px; }
  .wsb-checkout-hero h2 { font-size: 23px; line-height: 1.2; }
  .wsb-checkout-hero p { font-size: 13px; line-height: 1.35; }
  .wsb-booking-app .wsb-stage-utility-row.wsb-checkout-hero__actions { width: 100%; min-height: 42px; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; margin-top: 0; }
  .wsb-booking-app .wsb-checkout-hero__back { width: auto; order: 0; color: var(--wsb-color-ink); white-space: nowrap; }
  .wsb-booking-app .wsb-checkout-hero__actions [data-wsb-help-trigger] { margin-left: auto; white-space: nowrap; }
  .wsb-booking-app[data-stage="checkout"] .wsb-checkout-summary { align-content: start; gap: 10px; }
  .wsb-booking-app[data-stage="checkout"] .wsb-checkout-summary__head .wsb-booking-app__summary-toggle--expanded,
  .wsb-booking-app[data-stage="checkout"] .wsb-checkout-summary__head .wsb-checkout-count { display: none; }
  .wsb-booking-app[data-stage="checkout"] .wsb-checkout-all-trips { min-height: 44px; gap: 8px; border-color: var(--wsb-color-border-subtle); padding: 6px 8px; }
  .wsb-booking-app[data-stage="checkout"] [data-checkout-summary-trip-count] { color: var(--wsb-color-interaction); font-weight: 700; }
  .wsb-checkout-section__header { min-height: 62px; grid-template-columns: 34px minmax(0, 1fr) 44px; gap: 7px; padding: 10px 12px; }
  .wsb-checkout-section__panel { padding: 2px 12px 14px; }
  .wsb-checkout-payment { grid-template-columns: 22px minmax(0, 1fr); align-items: start; min-height: 0; gap: 8px; padding: 10px; }
  .wsb-checkout-payment__copy { grid-template-columns: 1fr; gap: 5px; }
  .wsb-checkout-payment__heading { gap: 8px; }
  .wsb-checkout-payment small,
  .wsb-checkout-payment__brands { grid-column: 1; grid-row: auto; }
  .wsb-checkout-payment__brands { flex-wrap: wrap; justify-content: flex-start; gap: 5px; }
  .wsb-checkout-payment__brands img { height: 36px; max-width: 64px; }
  .wsb-checkout-consent { align-items: start; padding: 4px; }
  .wsb-checkout-picker { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .wsb-tip-editor__choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wsb-tip-choice { min-width: 0; min-height: 78px; }

  .wsb-confirmation { gap: 10px; padding-bottom: 16px; }
  .wsb-confirmation__hero,
  .wsb-confirmation__section { padding: 14px; }
  .wsb-confirmation__hero { grid-template-columns: 1fr; gap: 10px; }
  .wsb-confirmation__visual { grid-row: auto; justify-items: center; padding-top: 4px; }
  .wsb-confirmation__hero-icon { width: 58px; height: 58px; }
  .wsb-confirmation__hero-copy { text-align: center; }
  .wsb-confirmation__facts { grid-column: 1; grid-template-columns: 1fr; }
  .wsb-confirmation__bank,
  .wsb-confirmation__locked,
  .wsb-confirmation__actions,
  .wsb-confirmation__email-panel { grid-column: 1; }
  .wsb-confirmation__bank-grid { grid-template-columns: 1fr; }
  .wsb-confirmation__bank-grid dd { border-bottom: 1px solid var(--wsb-color-border-subtle); padding-bottom: 8px; }
  .wsb-confirmation__actions { display: grid; }
  .wsb-confirmation__action { width: 100%; }
  .wsb-confirmation__trip-head { display: grid; }
  .wsb-confirmation__trip-identity { max-width: none; justify-items: start; text-align: left; }
  .wsb-confirmation__payment-rows { gap: 8px; }

  .wsb-help-drawer,
  .wsb-cancellation-drawer,
  .wsb-checkout-drawer { max-width: 100%; padding-bottom: env(safe-area-inset-bottom); }
  .wsb-help-drawer__header,
  .wsb-cancellation-drawer__header { min-height: 64px; padding: 12px 14px; }
  .wsb-help-drawer__body,
  .wsb-cancellation-drawer__body { padding: 14px; }
  .wsb-cancellation-drawer__card { gap: 10px; padding: 14px; }
  .wsb-cancellation-drawer__done { margin: 0 14px max(14px, env(safe-area-inset-bottom)); }

  .pac-container { z-index: 10050 !important; max-width: calc(100vw - 16px) !important; max-height: min(42vh, 320px); overflow-x: hidden; overflow-y: auto; }
  gmp-place-autocomplete { max-width: 100%; }
  .wsb-booking-app :where(h1, h2, h3, h4, h5, h6, p, span, small, strong, label, button) { word-break: normal; overflow-wrap: break-word; }
}

@media (max-width: 25rem) {
  .wsb-progressive-step__need-label { font-size: 10px; }
}

@media (max-width: 23.4375rem) {
  .wsb-booking-app,
  .wsb-booking-app__portal {
    --wsb-mobile-page-gutter: 4px;
    --wsb-mobile-card-padding: 4px;
  }
}

@media (min-width: 30.001rem) and (max-width: 48rem) {
  .wsb-booking-app { padding-bottom: calc(136px + env(safe-area-inset-bottom)); }
  .wsb-booking-app__stage-action { bottom: max(10px, env(safe-area-inset-bottom)); padding: 11px 14px; }
  .wsb-booking-app__stage-total > span { display: none; }
  .wsb-booking-app__step-copy strong { white-space: normal; }
}
