.bonus-banner {
  /* Nur noch ein Abstandshalter zwischen den Nachbarsektionen — die
     eigentliche Karte mit Bild ist .bonus-banner__inner (s.u.), die
     jetzt genauso breit ist wie der Textblock, nicht mehr die ganze
     Seitenbreite. */
  padding-block: var(--space-section);
}

.bonus-banner__inner {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-color: var(--color-bg-dark);
  border-radius: var(--radius-card);
  /* Genau die Breite des allgemeinen Textblocks der Seite (Kennzahlen-
     Tabelle, Überschriften usw.) — die steckt bereits im umschließenden
     .container (siehe bonus-banner.php), daher hier KEIN eigenes
     max-width mehr. Nur eine UNTERGRENZE (min-height), damit der Block
     mit dem Bild mitwächst, aber auch wächst, falls der Textinhalt auf
     schmalen Bildschirmen mehr Platz braucht als das Bild hoch ist. */
  min-height: calc(min(100vw, 1440px) / 2.8);
}

.bonus-banner__bg-blur {
  /* Unscharfe Kopie desselben Bilds, die die GESAMTE Box (auch wenn sie
     durch langen Textinhalt auf schmalen Bildschirmen höher wird) randlos
     füllt. Dient nur als nahtloser Übergang unterhalb des scharfen Bilds
     (s.u.) — ein Beschnitt fällt hier nicht auf, weil alles verschwommen
     ist, daher entsteht nie eine sichtbare harte Kante oder Leerfläche. */
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: blur(50px) brightness(0.65) saturate(1.1);
  transform: scale(1.15);
  z-index: -3;
}

.bonus-banner__bg {
  /* Die Bildhöhe hängt NUR von der Bildbreite ab (aspect-ratio), nicht
     von der Höhe der .bonus-banner__inner-Box. So bleibt der Zuschnitt
     (oben, Himmel/Berge) immer gleich moderat (nie seitlich), egal wie
     viel zusätzliche Höhe der Textinhalt auf schmalen Bildschirmen
     braucht — dort wächst nur die Box nach unten, und der unscharfe
     Layer darunter (s.o.) füllt den Rest nahtlos, ohne dass am scharfen
     Bild selbst weiter beschnitten wird oder Charaktere/Logo je
     betroffen sind. Oben angedockt. */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 2.8 / 1;
  object-fit: cover;
  object-position: center bottom;
  z-index: -2;
  /* Sanfter Verblassungsrand ganz unten (nur die letzten ~8%, weit unter
     Charakteren/Logo) sorgt für einen weichen statt harten Übergang zum
     unscharfen Layer darunter, falls die Box durch Textinhalt höher
     wird als das scharfe Bild. */
  mask-image: linear-gradient(to bottom, black 0%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 92%, transparent 100%);
}

.bonus-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(23, 5, 29, 0.92) 0%, rgba(33, 7, 40, 0.55) 100%);
  z-index: -1;
}

.bonus-banner__content {
  padding-block: 3rem;
  padding-inline: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  /* Die Karte (Bild) ist jetzt so breit wie der allgemeine Textblock der
     Seite, aber der eigentliche Aktionstext bleibt eine schmalere,
     zentrierte Spalte — sonst wären die kurzen Textzeilen unleserlich
     über die volle Breite verteilt. */
  max-width: 40rem;
  margin-inline: auto;
}

@media (max-width: 900px) {
  /* Auf schmalen Bildschirmen ist das scharfe Bild (aspect-ratio 2.8:1)
     nur ein kurzer Streifen oben — ohne diesen Zusatzabstand würde der
     mittig zentrierte Text direkt über den Charakteren/Gesichtern
     landen und unleserlich wirken. Schiebt den Text unter das Bild. */
  .bonus-banner__content { padding-top: calc(min(100vw, 1440px) / 2.8 + 1.5rem); }
}

.bonus-banner__eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  color: var(--color-heading-gold);
  font-weight: var(--font-weight-semibold);
}

.bonus-banner__amount {
  font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-white);
}

.bonus-banner__desc { color: var(--color-text-main); }

.bonus-banner__content .btn { margin-top: 0.5rem; }
