/* ── Maison promo banner — full-bleed room photo + overlaid CTA ───────── */
.mn-promo {
  position: relative;
  height: 568px;               /* explicit height — absolute img won't collapse */
  margin-top: 44px;
  overflow: hidden;
}
.mn-promo__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
}
.mn-promo__inner {
  position: relative; z-index: 2; height: 100%;
  max-width: var(--maison-container); margin: 0 auto;
  padding: 0 55px;
  display: flex; align-items: center;
}
.mn-promo__text { max-width: 360px; color: var(--promo-text); }
.mn-promo__eyebrow {
  font-family: var(--maison-font); font-weight: 500;
  font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--promo-text); margin-bottom: 18px; display: inline-block;
}
.mn-promo__heading {
  font-family: var(--maison-font); font-weight: 600;
  font-size: 40px; line-height: 1.2; color: var(--promo-text); margin: 0 0 34px;
}
.mn-promo__btn { }

@media (max-width: 768px) {
  .mn-promo { height: 460px; margin-top: 36px; }
  .mn-promo__inner { padding: 0 24px; }
  .mn-promo__heading { font-size: 32px; }
}
@media (max-width: 480px) {
  .mn-promo { height: 420px; margin-top: 28px; }
  .mn-promo__inner { padding: 0 16px; }
}
.mn-promo--placeholder { --promo-text: var(--color-text) !important; }

/* Theme blocks (blocks/*.liquid). Every rule is opt-in: an untouched block matches none of them. */
.qm-contents { display: contents; }
.av-block-group { display: flex; flex-direction: column; gap: var(--av-group-gap, 12px); align-items: var(--av-group-align, stretch); }
.av-block-group--row { flex-direction: row; flex-wrap: wrap; justify-content: var(--av-group-justify, flex-start); align-items: var(--av-group-align, center); }
.av-block-text p, .av-block-text li { font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }
