/* ── Bambino promo banner — two rounded tiles ───────────────────────── */
.bmb-banner__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bmb-banner__tile {
  position: relative; border-radius: 20px; overflow: hidden;
  min-height: 338px; display: flex;
}
.bmb-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Left: centered overlay title */
.bmb-banner__tile--left { align-items: center; justify-content: center; }
.bmb-banner__tile--left .bmb-banner__img { object-fit: contain; object-position: center; }
.bmb-banner__overlay-title {
  position: relative; z-index: 2; text-align: center; max-width: 70%;
  font-family: var(--bambino-font-display); font-weight: 700; font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--bambino-teal); line-height: 1.3;
}

/* Right: text + CTA, left-aligned, over image */
.bmb-banner__tile--right { align-items: center; }
.bmb-banner__body {
  position: relative; z-index: 2; padding: 44px 48px;
  display: flex; flex-direction: column; gap: 24px; align-items: flex-start; max-width: 380px;
}
.bmb-banner__heading { font-family: var(--bambino-font-display); font-weight: 700; font-size: clamp(1.6rem, 2.6vw, 2.125rem); color: var(--bambino-teal); line-height: 1.3; }
.bmb-banner__text { font-family: var(--bambino-font-body); font-weight: 500; font-size: 1rem; line-height: 1.4; color: var(--bambino-body); margin: 0; }
.bmb-banner__cta { font-size: 1rem; padding: 12px 30px; }

/* Empty right image: the placeholder takes the image side so it never sits under the copy */
.bmb-banner__tile--right .bmb-banner__img--placeholder { left: auto; right: 0; width: 45%; }

@media (max-width: 768px) {
  .bmb-banner__grid { grid-template-columns: 1fr; }
  .bmb-banner__tile--right:has(.bmb-banner__img--placeholder) { flex-direction: column; align-items: stretch; }
  .bmb-banner__tile--right .bmb-banner__img--placeholder { position: relative; inset: auto; width: 100%; height: 160px; }
  .bmb-banner__tile { min-height: 240px; }
  .bmb-banner__body { padding: 30px 28px; }
}

/* 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; }
