@layer wsb-v4-utilities {
  .wsb-booking-app [hidden] { display: none; }
  .wsb-booking-app:not([data-stage="checkout"]) .wsb-checkout-summary { display: none; }
  .wsb-booking-app[data-stage="checkout"] .wsb-booking-app__summary-heading,
  .wsb-booking-app[data-stage="checkout"] .wsb-booking-app__summary-list,
  .wsb-booking-app[data-stage="checkout"] .wsb-booking-app__save-state { display: none; }

  @media (max-width: 1024px) {
    .wsb-booking-app__layout { grid-template-columns: 1fr; }
    .wsb-booking-app__summary { position: static; }
    .wsb-trip__group--party .wsb-trip__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wsb-charter__experiences { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 640px) {
    .wsb-booking-app { min-height: 100svh; border-inline: 0; border-radius: 0; padding-bottom: 11rem; }
    .wsb-booking-app__header { gap: var(--wsb-space-m); padding: 1.25rem 1rem; }
    .wsb-booking-app__layout { padding: 1rem; }
    .wsb-booking-app__step-copy small { display: none; }
    .wsb-booking-app__step-copy strong { overflow: visible; font-size: 10px; text-overflow: clip; white-space: nowrap; }
    .wsb-booking-app__step-marker { width: 36px; font-size: 12px; }
    .wsb-booking-app__toolbar { align-items: stretch; flex-direction: column; }
    .wsb-trip__header { grid-template-columns: auto minmax(0, 1fr); }
    .wsb-trip__actions { grid-column: 1 / -1; justify-content: flex-end; padding-right: 0; }
    .wsb-trip__toggle { padding-right: 2.35rem; }
    .wsb-trip__chevron { right: .35rem; }
    .wsb-trip__fields, .wsb-trip__group--party .wsb-trip__fields, .wsb-route-options__list, .wsb-vehicles, .wsb-vehicle-drawer__list, .wsb-charter__experiences, .wsb-charter__workspace, .wsb-charter__suggestions, .wsb-checkout__grid, .wsb-checkout__trip-fields { grid-template-columns: 1fr; }
    .wsb-charter__ordered-item { grid-template-columns: 44px 28px minmax(0, 1fr) auto; grid-template-rows: auto auto; }
    .wsb-checkout__actions { position: sticky; z-index: 10; bottom: 5.25rem; border-radius: var(--wsb-radius-m); padding: .75rem; background: color-mix(in srgb, var(--wsb-color-surface) 92%, transparent); box-shadow: var(--wsb-shadow-medium); backdrop-filter: blur(.625rem); }
    .wsb-booking-app__stage-action { position: fixed; z-index: 9990; right: 0; bottom: 0; left: 0; align-items: stretch; flex-direction: column; gap: .55rem; border-radius: var(--wsb-radius-l) var(--wsb-radius-l) 0 0; padding: .75rem 1rem max(.75rem, env(safe-area-inset-bottom)); box-shadow: var(--wsb-shadow-medium); }
    .wsb-booking-app__stage-action .wsb-booking-app__button { width: 100%; }
    .wsb-booking-app__feedback { right: .75rem; bottom: 5.5rem; width: calc(100vw - 1.5rem); }
    .wsb-booking-app__feedback[data-persistent="true"] { top: .75rem; bottom: auto; }
  }

  @media (prefers-reduced-motion: reduce) {
    .wsb-booking-app *, .wsb-booking-app *::before, .wsb-booking-app *::after { scroll-behavior: auto; transition-duration: 0s; animation-duration: 0s; animation-iteration-count: 1; }
  }
}
