/* Holipass — Journey Atlas direction.
   A cool white, image-led traveller interface shared by discovery, stays,
   and time availability. Loaded after the legacy page styles so this layer is
   easy to checkpoint, compare, and remove without disturbing booking logic. */

:root {
  --hp-white: #ffffff;
  --hp-mist: #f5f7fb;
  --hp-sky: #eef4ff;
  --hp-aqua: #eefaf7;
  --hp-ink: #14203a;
  --hp-line: #dfe6f1;
  --hp-blue: #4655f6;
  --hp-blue-deep: #2f3fd4;
  --hp-coral: #ff6846;
  --hp-green: #0f9f7d;
  --hp-shadow: 0 16px 44px rgba(25, 42, 79, .10);
}

html,
body { background: var(--hp-white); }

body {
  color: var(--hp-ink);
  font-size: 16px;
}

.bb-column { width: min(var(--bb-column), calc(100% - 48px)); }
.bb-h2 { font-size: 28px; line-height: 1.12; letter-spacing: -.8px; }
.bb-sub { font-size: 14px; line-height: 1.5; }

.home-nav {
  background: rgba(255, 255, 255, .98);
  border-bottom-color: var(--hp-line);
}
.home-nav__in { height: 72px; gap: 38px; }
.home-brand__lockup { width: 168px; }
.home-nav__ways { gap: 30px; font-size: 14px; }
.home-nav__end { font-size: 13px; }

.bb-btn--primary {
  background: var(--hp-blue);
  border-color: var(--hp-blue);
  box-shadow: 0 8px 18px rgba(70, 85, 246, .16);
}
.bb-btn--primary:hover { background: var(--hp-blue-deep); border-color: var(--hp-blue-deep); }
.bb-btn--secondary { background: var(--hp-white); border-color: var(--hp-line); }

/* ---------- Home: full-length destination image, no edge fade ---------- */

.home-hero {
  height: 500px;
  align-items: flex-start;
  background: var(--hp-white);
  border-bottom: 1px solid var(--hp-line);
}
.home-hero__slides {
  inset: 0;
}
.home-hero__art { object-position: center 58%; }
.home-hero__scrim {
  display: block;
  z-index: 1;
  background: rgba(8, 20, 43, .34);
}
.home-hero__scrim::after { display: none; }
.home-hero__in { position: relative; height: 100%; }
.home-hero__copy {
  position: relative;
  z-index: 2;
  width: 52%;
  padding-top: 104px;
  color: var(--hp-white);
}
.home-hero__eyebrow {
  margin: 0 0 14px;
  color: #ffffff;
  font: var(--bb-w-semibold) 12px/1.2 var(--bb-font);
  letter-spacing: .08em;
}
.home-hero__h1 {
  max-width: 520px;
  color: var(--hp-white);
  font-size: clamp(44px, 4.2vw, 62px);
  line-height: .98;
  letter-spacing: -2.6px;
}
.home-hero__sub {
  max-width: 430px;
  margin-top: 16px;
  color: rgba(255, 255, 255, .90);
  font-size: 15px;
  line-height: 1.55;
}
.home-hero__reel {
  z-index: 3;
  left: auto;
  right: max(24px, calc((100% - var(--bb-column)) / 2 + 24px));
  bottom: 36px;
  width: auto;
}

.home-discovery { margin-top: 28px; }
.home-discovery__panel {
  border-color: var(--hp-line);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(25, 42, 79, .07);
}
.home-search {
  grid-template-columns: minmax(0, 1.45fr) 220px 200px 146px;
  padding: 10px;
}
.home-search__field { min-height: 66px; padding: 10px 22px; }
.home-search__field-label { font-size: 11px; }
.home-search #q,
.home-search select { font-size: 14px; }
.home-search .bb-btn { min-height: 58px; padding-inline: 28px; }

/* Desktop discovery deck: a real two-layer control, measured from the chosen
   Trip.com reference. The icon rail filters the marketplace and the second
   layer holds the search inputs; the whole deck crosses the hero edge rather
   than floating in an unrelated strip below it. Mobile is intentionally left
   for the final responsive pass. */
@media (min-width: 821px) {
  .home-discovery {
    margin-top: -112px;
    z-index: 5;
  }
  .home-discovery__panel {
    overflow: hidden;
    border-color: rgba(207, 217, 238, .95);
    border-radius: 18px;
    background: var(--hp-white);
    box-shadow: 0 24px 56px rgba(21, 41, 83, .18);
  }
  .home-deck__head {
    display: flex;
    min-height: 102px;
    padding: 0 34px;
    border-bottom: 1px solid var(--hp-line);
    background: var(--hp-white);
  }
  .home-hero__tabs {
    width: 100%;
    justify-content: center;
    overflow: visible;
  }
  .home-deck__live { display: none !important; }
  .home-hero__tab {
    position: relative;
    display: flex;
    flex: 1 1 0;
    max-width: 190px;
    min-width: 136px;
    min-height: 102px;
    padding: 15px 18px 13px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    color: var(--hp-ink);
    font-size: 13px;
  }
  .home-hero__tab::after {
    content: "";
    position: absolute;
    right: 20px;
    bottom: 0;
    left: 20px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: transparent;
  }
  .home-hero__tab[aria-pressed="true"] {
    box-shadow: none;
  }
  .home-hero__tab[aria-pressed="true"]::after {
    background: var(--hp-blue);
  }
  .home-hero__tab-icon {
    display: block;
    width: 34px;
    height: 34px;
  }
  .home-hero__tab-label {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .home-search {
    grid-template-columns: minmax(0, 1.5fr) 220px 200px 150px;
    min-height: 88px;
    padding: 9px 10px 10px;
  }
  .home-search__field {
    min-height: 69px;
    padding: 11px 22px;
  }
  .home-search .bb-btn {
    min-height: 64px;
    margin: 2px 0;
  }
  .home-quick-picks { display: none; }
  .home-band--filtered { margin-top: 88px; }
  .home-band--guide {
    width: min(calc(var(--bb-column) - 48px), calc(100% - 96px));
  }
}

/* ---------- Home: one deliberate rhythm for live, mood and discovery ---------- */

.home-band--filtered {
  padding-block: 64px 72px;
  border-top: 1px solid var(--hp-line);
}
.home-filtered__head { margin-bottom: 24px; }
.home-filtered__all {
  color: var(--hp-blue-deep);
  font: var(--bb-w-semibold) 12.5px/1.3 var(--bb-font);
}
.home-filtered__viewport { min-width: 0; overflow: hidden; }
.home-filtered__rail { gap: 20px; }
.home-filtered__rail .home-card { min-width: 0; }

@media (min-width: 821px) {
  .home-filtered__rail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .home-filtered__rail[data-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-filtered__rail[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-filtered__rail[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .home-filtered__rail[data-count="1"] .home-card__frame,
  .home-filtered__rail[data-count="2"] .home-card__frame {
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(0, 1.1fr);
    height: 100%;
  }
  .home-filtered__rail[data-count="1"] .home-card__art,
  .home-filtered__rail[data-count="2"] .home-card__art { height: 100%; min-height: 290px; }
  .home-filtered__rail[data-count="1"] .home-card__body,
  .home-filtered__rail[data-count="2"] .home-card__body { justify-content: center; }
}

.home-band--evening {
  margin-top: 0;
  padding-block: 64px 72px;
  border-top: 1px solid var(--hp-line);
  border-radius: 0;
  background: transparent;
}
.home-band--evening .bb-sec-head { margin-bottom: 24px; }
.home-eve { grid-template-columns: minmax(0, 1fr) 360px; gap: 38px; }
.home-eve { align-items: start; }
.home-eve__rail { justify-content: flex-start; gap: 6px; }
.home-eve__row {
  min-height: 62px;
  padding: 7px 8px;
  border-radius: 12px;
  transition: background .16s ease, transform .16s ease;
}
.home-eve__row:hover { background: var(--hp-mist); transform: translateX(3px); }
.home-eve__time { font-size: 17px; }
.home-eve__thumb { width: 80px; height: 50px; border-radius: 10px; }
.home-eve__name { font-size: 14.5px; }
.home-eve__sub { font-size: 12.5px; }
.home-eve__cta { min-width: 92px; text-align: center; background: var(--hp-white); }
.home-almanac {
  min-height: 330px;
  border: 0;
  border-radius: 20px;
  box-shadow: 0 16px 32px rgba(20, 32, 58, .16);
}
.home-almanac__in { padding: 24px; }
.home-almanac__temp { font-size: 42px; }

.home-tiles-band {
  margin-top: 0;
  padding-block: 68px 72px;
  border-top: 1px solid var(--hp-line);
  border-radius: 0;
  background: transparent;
}
.home-tiles { gap: 16px; }
.home-tile { aspect-ratio: 4 / 4.65; border-radius: 18px; }
.home-tile__name { font-size: 15px; }
.home-tile__count { font-size: 12px; }

.home-band--fresh { padding-block: 68px 76px; border-top: 1px solid var(--hp-line); }
.home-fresh__head { margin-bottom: 24px; }
.home-fresh__all {
  color: var(--hp-blue-deep);
  font: var(--bb-w-semibold) 12.5px/1.3 var(--bb-font);
}
.home-fresh__move {
  display: grid;
  width: 40px;
  height: 40px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--hp-line);
  border-radius: 999px;
  background: var(--hp-white);
  color: var(--hp-blue-deep);
  font: var(--bb-w-semibold) 12px/1 var(--bb-font);
  cursor: pointer;
}
.home-fresh__move img { width: 20px; height: 20px; }
.home-fresh__move:hover:not(:disabled) { border-color: var(--hp-blue); background: var(--hp-sky); }
.home-fresh__move:disabled { color: var(--bb-ink-soft); cursor: default; opacity: .52; }
.home-fresh__viewport { position: relative; min-width: 0; overflow: visible; }
.home-fresh__controls {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: -20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transform: translateY(-50%);
}
.home-fresh__controls .home-fresh__move {
  box-shadow: 0 8px 22px rgba(21, 41, 83, .14);
}
.home-cards { gap: 20px; }
.home-cards > .home-card:first-child { grid-column: auto; }
.home-cards > .home-card:first-child .home-card__art,
.home-card__art { height: 210px; }
.home-card__frame {
  border-color: var(--hp-line);
  border-radius: 18px;
  box-shadow: 0 5px 20px rgba(25, 42, 79, .055);
}
.home-card__body { padding: 16px 16px 17px; }
.home-card__name { font-size: 16px; }
.home-card__meta,
.home-card__facts,
.home-card__does { font-size: 12.5px; }
.home-card__pill { background: var(--hp-sky); color: var(--hp-blue-deep); }
.home-card__price-main b { font-size: 16px; }

@media (min-width: 821px) {
  .home-hero__tab--all { text-decoration: none; }
  .home-band--fresh .home-cards {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 60px) / 4);
    overflow-x: auto;
    padding: 4px 0 22px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .home-band--fresh .home-cards::-webkit-scrollbar { display: none; }
  .home-band--fresh .home-card { scroll-snap-align: start; }
}

/* ---------- Home: open editorial feature, not a boxed promotion ---------- */

.home-band--guide {
  width: min(var(--bb-column), calc(100% - 48px));
  max-width: none;
  margin: 0 auto;
  padding: 72px 0;
  border-top: 1px solid var(--hp-line);
}
.home-guide {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.home-guide__in {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  grid-template-columns: minmax(0, 1.24fr) minmax(360px, .76fr);
  gap: 64px;
  align-items: stretch;
}
.home-guide__art {
  position: relative;
  order: -1;
  display: block;
  min-height: 420px;
  overflow: hidden;
  border-radius: 14px;
  background: var(--hp-mist);
}
.home-guide__frame:first-child {
  position: absolute;
  inset: 0;
  aspect-ratio: auto;
  border-radius: 0;
}
.home-guide__frame:nth-child(2) {
  position: absolute;
  right: 22px;
  bottom: 22px;
  width: 30%;
  min-width: 150px;
  aspect-ratio: 4 / 3;
  border: 6px solid var(--hp-white);
  border-radius: 16px;
  box-shadow: 0 16px 34px rgba(20, 32, 58, .24);
}
.home-guide__text {
  justify-content: center;
  padding: 24px 0;
}
.home-guide__eyebrow {
  margin-bottom: 18px;
  color: var(--hp-blue-deep);
}
.home-guide__eyebrow::before { display: none; }
.home-guide__eyebrow-icon {
  width: 22px;
  height: 22px;
  padding: 3px;
  border-radius: 6px;
  background: var(--hp-sky);
}
.home-guide__h {
  max-width: 15ch;
  margin-bottom: 18px;
  color: var(--hp-ink);
  font-size: clamp(32px, 3.2vw, 46px);
  line-height: 1.04;
  letter-spacing: -1.8px;
}
.home-guide__p {
  max-width: 44ch;
  margin-bottom: 30px;
  color: var(--bb-ink-mid);
  font-size: 15px;
}
.home-guide__actions { gap: 18px; }
.home-guide__cta,
.home-guide__cta.bb-btn--primary {
  min-height: 0;
  padding: 0 0 4px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  color: var(--hp-blue-deep);
  box-shadow: none;
}
.home-guide__cta:hover { background: transparent; color: var(--hp-blue); }
.home-guide__note { color: var(--bb-ink-soft); }

@media (min-width: 821px) {
  /* .bb-column includes 24px of internal padding on each side. This editorial
     section is not itself a .bb-column, so subtract that padding explicitly
     to land its image and copy on the same visible content edge. */
  .home-band--guide {
    width: min(calc(var(--bb-column) - 48px), calc(100% - 96px));
  }
}

/* ---------- Venue: open reading canvas with one action rail ---------- */

.venue-page { padding-top: 24px; background: var(--hp-white); }
.venue-title { padding-top: 18px; padding-bottom: 18px; }
.venue-title__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.venue-title__marks { margin-bottom: 10px; }
.venue-title__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.venue-title__actions .bb-save {
  position: static;
  width: 40px;
  height: 40px;
  border-color: var(--hp-line);
  background: var(--hp-white);
}
.venue-title__review {
  display: inline-flex;
  min-height: 40px;
  padding: 0 14px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--hp-line);
  border-radius: 10px;
  color: var(--hp-blue-deep);
  font: var(--bb-w-semibold) 12.5px/1 var(--bb-font);
  text-decoration: none;
}
.venue-title__review img { width: 18px; height: 18px; }
.venue-title__review:hover { border-color: var(--hp-blue); background: var(--hp-sky); text-decoration: none; }
.venue-h1 { font-size: clamp(38px, 4vw, 54px); letter-spacing: -2px; }
.venue-score { background: var(--hp-mist); border-color: transparent; }
.venue-mosaic { height: 500px; gap: 8px; }
.venue-photo { border-radius: 12px; }
.venue-highlights {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
  padding-block: 24px;
  border-bottom: 1px solid var(--hp-line);
}
.venue-highlight {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 11px;
  align-items: center;
  padding: 4px 12px;
}
.venue-highlight + .venue-highlight { border-left: 1px solid var(--hp-line); }
.venue-highlight__icon {
  grid-row: 1 / span 2;
  width: 34px;
  height: 34px;
  color: var(--hp-blue);
}
.venue-highlight__label {
  overflow: hidden;
  color: var(--bb-ink-soft);
  font: var(--bb-w-medium) 10.5px/1.25 var(--bb-font);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.venue-highlight__value {
  min-width: 0;
  overflow: hidden;
  color: var(--hp-ink);
  font: var(--bb-w-semibold) 12.5px/1.35 var(--bb-font);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.venue-nav {
  margin-top: 18px;
  background: rgba(255,255,255,.98);
  border-top: 1px solid var(--hp-line);
  border-bottom-color: var(--hp-line);
}
.venue-nav__in { gap: 30px; }
.venue-sec { scroll-margin-top: 82px; }

.venue-split { grid-template-columns: minmax(0, 1fr) 330px; gap: 72px; }
.venue-split__main > .venue-sec:first-child { margin-top: 42px; }
.venue-split__main > .venue-sec:not(:first-child) {
  margin-top: 48px;
  padding-top: 44px;
  border-top: 1px solid var(--hp-line);
}
.venue-panels {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 36px;
  margin-top: 28px;
}
.venue-panel {
  padding: 22px 0 0;
  border: 0;
  border-top: 1px solid var(--hp-line);
  border-radius: 0;
  background: transparent;
}
.venue-panel__head {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 16px;
}
.venue-panel__icon {
  width: 38px;
  height: 38px;
  padding: 8px;
  border-radius: 11px;
  background: var(--hp-sky);
}
.venue-panel__h { margin-bottom: 0; font-size: 15px; }
.venue-panel__body { gap: 12px; }
.venue-panel__row + .venue-panel__row { padding-top: 12px; }
.venue-book { margin-top: 42px; }
.venue-book__card { border-radius: 14px; box-shadow: 0 12px 34px rgba(25, 42, 79, .08); }
.venue-map { border-radius: 14px; }

#sec-avail {
  margin-top: 72px;
  padding-top: 64px;
  padding-bottom: 72px;
  border-top: 1px solid var(--hp-line);
  border-radius: 0;
  background: transparent;
}
.avail-head { margin-bottom: 22px; }
.avail-head__note { font-size: 13px; }

.bookbar {
  margin-bottom: 26px;
  border-color: transparent;
  border-radius: 18px;
  background: var(--hp-white);
  box-shadow: 0 10px 28px rgba(25, 42, 79, .08);
}
.bookbar__f { min-height: 76px; padding: 13px 17px; }
.bookbar__lbl { color: var(--bb-ink-soft); font-size: 11px; }
.bookbar__val { font-size: 14px; }
.bookbar__amt { font-size: 17px; }
.bookbar__update { min-width: 118px; font-size: 14px; }
.bookbar__try { background: var(--hp-white); }
.bookbar__chip { background: var(--hp-mist); border-color: transparent; }

.venue-sec--bookbar #av-rows { gap: 18px; }
.bookrow {
  grid-template-columns: 320px minmax(0, 1fr) 258px;
  min-height: 326px;
  border-color: var(--hp-line);
  border-radius: 20px;
  background: var(--hp-white);
  box-shadow: 0 8px 24px rgba(25, 42, 79, .055);
}
.bookrow__art {
  min-height: 326px;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(72px, .8fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 4px;
  border-right: 0;
  background: var(--hp-sky);
}
.bookrow__hero {
  grid-row: 1 / -1;
  min-height: 100%;
  background: var(--hp-sky) center / cover no-repeat;
}
.bookrow__thumb {
  min-height: 0;
  background: var(--hp-sky) center / cover no-repeat;
}
.bookrow__art--single { display: block; }
.bookrow__art--single .bookrow__hero { height: 100%; }
.bookrow__body { padding: 24px 26px; border-right-color: var(--hp-line); gap: 14px; }
.bookrow__name { font-size: 19px; }
.bookrow__sub { font-size: 12.5px; }
.bookrow__chips { min-height: 0; }
.bookrow__chip { background: var(--hp-mist); border-color: transparent; font-size: 11.5px; }
.bookrow__detail { padding-top: 14px; border-top-color: var(--hp-line); }
.bookrow__inc,
.bookrow__factv { font-size: 12.5px; }
.bookrow__price { padding: 24px 22px 20px; }
.bookrow__amt { font-size: 24px; }
.bookrow__cta { min-height: 46px; border-radius: 12px; font-size: 13px; }
.bookrow__left { font-size: 12px; }

.avail-ctl {
  margin-top: 20px;
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(25, 42, 79, .07);
}
.avail-ctl__f { min-height: 78px; padding: 14px 22px; }
.avail-ctl__lbl { font-size: 11px; }
.avail-ctl__val { font-size: 14px; }
.avail-ctl__sel { min-height: 38px; background: var(--hp-mist); }
.avail-days { gap: 10px; margin-bottom: 14px; }
.venue-day {
  min-height: 66px;
  border-color: transparent;
  border-radius: 14px;
  background: var(--hp-white);
  box-shadow: 0 3px 12px rgba(25, 42, 79, .05);
}
.venue-day[aria-pressed="true"] { background: var(--hp-blue); }
.avail-legend { padding-inline: 4px; font-size: 11px; }

.avail-svc {
  grid-template-columns: 230px minmax(0, 1fr);
  margin-bottom: 16px;
  border-color: transparent;
  border-radius: 18px;
  background: var(--hp-white);
  box-shadow: 0 6px 18px rgba(25, 42, 79, .055);
}
.avail-svc:hover { border-color: var(--hp-line); }
.avail-svc.is-picked { border-color: var(--hp-blue); box-shadow: 0 10px 28px rgba(70,85,246,.13); }
.avail-svc__info { padding: 22px; border-right-color: var(--hp-line); }
.avail-svc__main { padding: 20px 24px; }
.avail-svc__name { font-size: 16px; }
.avail-svc__meta,
.avail-svc__stat,
.avail-svc__fact { font-size: 12px; }
.avail-bar { height: 92px; border-color: var(--hp-line); background: var(--hp-mist); }
button.avail-blk--open { background: #dfeee9; color: #08785f; }
button.avail-blk--open:hover { border-color: var(--hp-green); box-shadow: 0 4px 12px rgba(15,159,125,.15); }
.avail-blk--sel,
button.avail-blk--open.avail-blk--sel { background: var(--hp-blue); border-color: var(--hp-blue); color: var(--hp-white); }
.avail-blk--taken { background: #edf0f5; }
.avail-blk--passed { background: #fafbfc; }
.avail-svc__foot {
  margin: 16px -2px -2px;
  padding: 14px 16px;
  border-radius: 14px;
  background: var(--hp-sky);
}
.avail-svc__range { font-size: 14px; }
.avail-svc__cta { min-height: 44px; }
.avail-dusk { background: rgba(255,104,70,.055); }

@media (max-width: 1100px) {
  .home-eve { grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; }
  .home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-guide__in { grid-template-columns: minmax(0, 1fr) minmax(330px, .9fr); }
  .home-guide__text { padding: 40px 34px; }
  .bookrow { grid-template-columns: 280px minmax(0, 1fr); }
  .bookrow__price {
    grid-column: 2;
    padding-top: 0;
    flex-direction: row;
    align-items: flex-end;
    gap: 18px;
  }
  .bookrow__art { grid-row: span 2; }
}

@media (max-width: 820px) {
  .bb-column { width: min(var(--bb-column), calc(100% - 32px)); }
  .home-hero { height: 460px; }
  .home-hero__slides { inset: 0; }
  .home-hero__art { object-position: 62% center; }
  .home-hero__scrim { background: rgba(8, 20, 43, .42); }
  .home-hero__copy { width: 78%; padding-top: 74px; }
  .home-hero__h1 { max-width: 620px; font-size: clamp(38px, 9vw, 50px); }
  .home-discovery { margin-top: 22px; }
  .home-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-search__what { grid-column: 1 / -1; }
  .home-search .bb-btn { grid-column: auto; }
  .home-band--evening { padding-block: 54px; }
  .home-eve { grid-template-columns: 1fr; }
  .home-almanac { min-height: 270px; }
  .home-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-band--guide { width: min(var(--bb-column), calc(100% - 32px)); padding-block: 56px; }
  .home-guide { padding: 0; }
  .home-guide__in { grid-template-columns: 1fr; }
  .home-guide__art { min-height: 340px; }
  .home-guide__text { padding: 10px 0 0; }
  .home-guide__h { max-width: 18ch; }
  .venue-split { grid-template-columns: 1fr; gap: 0; }
  .venue-panels { grid-template-columns: 1fr; gap: 24px; }
  .venue-book { position: static; order: -1; margin-top: 28px; }
  .venue-split__main > .venue-sec:first-child { margin-top: 36px; }
  .bookrow { grid-template-columns: 1fr; }
  .bookrow__art { min-height: 280px; grid-row: auto; }
  .bookrow__body { border-right: 0; }
  .bookrow__price { grid-column: auto; padding: 20px 24px; border-top: 1px solid var(--hp-line); }
  .avail-svc { grid-template-columns: 1fr; }
  .avail-svc__info { border-right: 0; border-bottom: 1px solid var(--hp-line); }
  #sec-avail { padding-block: 52px; }
}

@media (max-width: 560px) {
  .bb-column { width: min(var(--bb-column), calc(100% - 24px)); }
  .home-nav__in { height: 62px; }
  .home-search { grid-template-columns: 1fr; }
  .home-search__what,
  .home-search .bb-btn { grid-column: auto; }
  .home-search__field { border-right: 0; border-bottom: 1px solid var(--hp-line); }
  .home-band--evening { margin-top: 44px; }
  .home-cards,
  .home-tiles { grid-template-columns: 1fr; }
  .home-card__art,
  .home-cards > .home-card:first-child .home-card__art { height: 230px; }
  .home-tiles-band { padding-block: 52px; }
  .home-band--guide { width: calc(100% - 24px); }
  .home-guide { padding: 0; border-radius: 0; }
  .home-guide__art { min-height: 270px; border-radius: 16px; }
  .home-guide__text { padding: 8px 0 0; }
  .home-guide__h { font-size: 32px; }
  .home-guide__actions { align-items: flex-start; flex-direction: column; }
  .venue-nav__acts { display: none; }
  /* The title row: trust marks left, save + "Write a review" right. At phone
     width the two no longer share a line, so the actions wrap under the marks
     instead of running off the right edge. With the bar's copy hidden above,
     this pill is the only way in from the top of the page (2026-09-03). */
  .venue-title__top { flex-wrap: wrap; }
  .venue-title__actions { margin-left: auto; }
  #sec-avail { padding-block: 46px; }
  .avail-days { grid-template-columns: repeat(4, 1fr); overflow-x: auto; }
  .bookrow__art { grid-template-columns: 1fr; }
  .bookrow__thumb { display: none; }
}
