/* Godz Casino — bonus banner
 * Contained within the text column width; the image keeps its own aspect
 * ratio (no cropping) and the bonus name/amount is centered over it. */
.bonus-banner {
  margin-block: var(--space-section);
}
.bonus-banner__frame {
  position: relative;
  overflow: hidden;
  clip-path: var(--clip-corner);
  /* Mobile: no fixed aspect-ratio here — the text stack (kicker, amount,
     note, button) flows normally below and sets the frame's height itself,
     so nothing gets clipped by overflow:hidden. The image is purely a
     cropped backdrop on mobile (consistent with the hero banner rule), so a
     mismatch between its ratio and the content's height is fine. */
  min-height: 220px;
  display: flex;
  align-items: center;
}
.bonus-banner__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.bonus-banner__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at center, rgba(9,15,16,0.72) 0%, rgba(9,15,16,0.58) 55%, rgba(9,15,16,0.4) 100%);
}
.bonus-banner__content {
  /* In normal flow on mobile (not absolutely positioned) so its real
     content height determines .bonus-banner__frame's height instead of
     being forced into a too-short, image-ratio-locked box. */
  position: relative;
  width: 100%;
  display: grid;
  gap: 0.4rem;
  padding: 2rem 1.5rem;
  text-align: center;
}
/* Same CSS-grid min-width:auto fix used on .hero__content and
   .content-section__inner — without it, long note text can overflow its
   grid cell instead of wrapping. */
.bonus-banner__content > * {
  min-width: 0;
}
.bonus-banner__kicker {
  color: var(--color-heading-accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--fw-btn);
  font-size: var(--fs-small);
  margin: 0;
}
.bonus-banner__amount {
  color: var(--color-white);
  font-family: var(--font-decorative);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 800;
  margin: 0;
}
.bonus-banner__note {
  color: var(--color-text-main);
  margin: 0 0 0.5rem;
  max-width: 46ch;
}

/* Tablet and up: there's enough width for the text block to comfortably
   fit within the image's own aspect ratio, so switch to the uncropped,
   full-image treatment with the content centered on top of it. */
@media (min-width: 768px) {
  .bonus-banner__frame {
    aspect-ratio: 1895 / 830;
    min-height: 0;
    display: block;
  }
  .bonus-banner__content {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1.5rem;
  }
}
