/* Ankündigungs-Banner (z.B. "Tickets fast ausverkauft") – einzige Quelle für alle Seiten.
   Wird komplett per JS erzeugt (siehe banner.js), Inhalt kommt aus data.json → "banner".
   Erscheint einmal pro Browser-Sitzung, bis er weggeklickt wird (siehe banner.js). */

.promo-banner {
  position: fixed; top: 0; left: 0; width: 100%; z-index: 210;
  background: var(--accent); color: #fff;
  padding: 12px 48px 12px 8%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  transform: translateY(-100%);
  transition: transform 0.4s ease;
}
.promo-banner.show { transform: translateY(0); }

.promo-banner-inner {
  display: flex; align-items: center; justify-content: center;
  gap: 6px 16px; flex-wrap: wrap;
  font-size: 0.88rem; font-weight: 600; text-align: center;
  max-width: 900px;
}
.promo-banner-inner a {
  color: #fff; text-decoration: underline; text-underline-offset: 2px;
  font-weight: 700; white-space: nowrap;
}
.promo-banner-inner a:hover { opacity: 0.85; }

.promo-banner-close {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: #fff; opacity: 0.85;
  font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 4px 8px;
}
.promo-banner-close:hover { opacity: 1; }

@media(max-width: 480px) {
  .promo-banner { padding: 10px 40px 10px 5%; }
  .promo-banner-inner { font-size: 0.82rem; }
}
