/* LAST CSS — mobile stack beats desktop !important soup. 390–720. */

@media (max-width: 720px) {
  /* chrome + progress */
  .book-progress-host {
    top: 3.2rem !important;
    padding: 0.4rem 3.5vw 0.5rem !important;
  }

  .book-progress__track {
    gap: 0.3rem !important;
  }

  .book-progress__col em {
    font-size: 0.58rem !important;
    letter-spacing: 0.02em !important;
  }

  body.has-book-progress {
    padding-top: 6.2rem !important;
  }

  /* dual reviews — was max-content + 2col !important → overflow */
  .guest-dual {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    column-gap: 0 !important;
    row-gap: 1rem !important;
  }

  .guest-dual__review,
  .guest-dual__quote {
    max-width: none !important;
    width: 100% !important;
  }

  .rev {
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }

  /* rates already 1fr at 900; keep full width */
  .room-rates__grid {
    grid-template-columns: 1fr !important;
  }

  /* tariff picker — force column over flex !important */
  .tariff-stay-picker,
  .booking-tariffs .tariff-stay-picker,
  .booking-tariffs .tariff-inline-pick .stay-picker,
  .stay-picker {
    flex-direction: column !important;
    min-height: 0 !important;
    align-items: stretch !important;
  }

  .booking-tariffs .stay-picker__rule,
  .tariff-stay-picker .stay-picker__rule,
  .stay-picker__rule {
    width: auto !important;
    height: 1px !important;
    margin: 0.15rem 0 !important;
  }

  .booking-tariffs .stay-picker__field,
  .stay-picker__field {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  .tariff-inline-pick {
    padding: 0.85rem 0.9rem !important;
  }

  .tariff-body {
    padding: 0.85rem 3.5vw 0 !important;
  }

  /* checkout grid + sticky cart */
  .guest-checkout__grid {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  .guest-summary {
    position: relative !important;
    top: auto !important;
    order: -1;
  }

  .guest-checkout {
    padding-left: 3.5vw !important;
    padding-right: 3.5vw !important;
  }

  /* bag row wrap */
  .bag-head {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
  }

  .bag-go__btn {
    min-height: 2.75rem;
  }

  /* upgrade 2 cards */
  .up-grid {
    grid-template-columns: 1fr !important;
  }

  .up-actions {
    flex-direction: column !important;
  }

  .up-btn {
    width: 100% !important;
  }

  /* stories / packs */
  .room-packs__grid,
  .pack-credit {
    grid-template-columns: 1fr !important;
  }

  /* home sticky */
  .sticky-bar {
    flex-wrap: wrap !important;
  }

  .sticky-bar .stay-picker {
    width: 100% !important;
  }

  /* kill horizontal page scroll */
  html,
  body {
    overflow-x: hidden !important;
  }

  .rooms-banner__copy--detail,
  .rooms-banner__title {
    max-width: 100% !important;
  }

  /* dock */
  .rooms-dock {
    padding: 0.65rem 3.5vw !important;
  }

  /* bag list: dock must not cover CTA */
  body.is-booking-list .rooms-list,
  body.is-booking-list [data-component='bookings-list'],
  .bag {
    padding-bottom: 7.5rem !important;
  }

  body.is-booking-list .rooms-dock {
    max-height: 40vh !important;
    overflow-y: auto !important;
  }

  .bag-go {
    position: relative;
    z-index: 5;
  }
}

@media (max-width: 430px) {
  .book-progress__col em {
    font-size: 0.52rem !important;
  }

  .rate-card__title {
    font-size: 1rem !important;
  }

  .guest-form__title {
    font-size: 1.35rem !important;
  }
}
