/* ==========================================================================
   Repairnow – Saison-Themen
   Aktiviert über CONFIG.seasonCalendar / CONFIG.season in assets/js/main.js (setzt <html data-season="…">).
   Jedes Thema: Banner oben, Akzentfarben, dezente Dekoration.
   ========================================================================== */

/* ---------- Gemeinsam: Banner & Deko-Ebene ---------- */
.season-banner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 10px 48px 10px 16px; font-size: .9375rem; font-weight: 500; text-align: center; color: #fff; background: var(--ink); }
.season-banner[hidden] { display: none; }
.season-banner svg { width: 20px; height: 20px; flex: none; }
.season-banner__close { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: inherit; cursor: pointer; display: grid; place-items: center; }
.season-banner__close svg { width: 16px; height: 16px; }
.season-fx { position: fixed; inset: 0; pointer-events: none; z-index: 40; overflow: hidden; }
.season-fx i { position: absolute; top: -24px; display: block; will-change: transform; }

/* ---------- Weihnachten ---------- */
[data-season="weihnachten"] { --season-accent: #0f6b3e; --season-gold: #d4a849; }
[data-season="weihnachten"] .season-banner { background: linear-gradient(90deg, #0b4d2c, #0f6b3e 50%, #0b4d2c); }
[data-season="weihnachten"] .season-banner svg { color: var(--season-gold); }
[data-season="weihnachten"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #e9f5ee 50%, #fdecec 62%, #fff 72%); }
[data-season="weihnachten"] .hero__bg .ring--2 { border-color: rgba(212, 168, 73, .55); }
[data-season="weihnachten"] .kicker { color: var(--season-accent); }
[data-season="weihnachten"] .eyebrow__dot { background: var(--season-accent); }
[data-season="weihnachten"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #b3121a 60%, #0f6b3e 140%); }
[data-season="weihnachten"] .season-fx i { width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 6px rgba(160, 190, 220, .9); opacity: .9; animation: snow linear infinite; }
@keyframes snow { to { transform: translate3d(var(--drift, 30px), 105vh, 0); } }

/* ---------- Halloween ---------- */
[data-season="halloween"] { --season-accent: #e8650c; }
[data-season="halloween"] .season-banner { background: linear-gradient(90deg, #120a1f, #2a1340 50%, #120a1f); }
[data-season="halloween"] .season-banner svg { color: var(--season-accent); }
[data-season="halloween"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fdeede 55%, #fff 70%); }
[data-season="halloween"] .hero__bg .ring--2 { border-color: rgba(232, 101, 12, .45); }
[data-season="halloween"] .kicker,
[data-season="halloween"] .hero h1 .accent { color: var(--season-accent); }
[data-season="halloween"] .hero h1 .accent path { stroke: var(--season-accent); }
[data-season="halloween"] .eyebrow__dot { background: var(--season-accent); }
[data-season="halloween"] .cta-band { background: linear-gradient(135deg, #2a1340 0%, #120a1f 70%); }
[data-season="halloween"] .season-fx i { width: 26px; height: 12px; color: #2a1340; opacity: .75; animation: bat 9s ease-in-out infinite; }
[data-season="halloween"] .season-fx svg { width: 100%; height: 100%; fill: currentColor; }
@keyframes bat {
  0% { transform: translate3d(0, 0, 0) scaleY(1); }
  25% { transform: translate3d(var(--drift, 40px), 30vh, 0) scaleY(.6); }
  50% { transform: translate3d(calc(var(--drift, 40px) * -1), 55vh, 0) scaleY(1); }
  75% { transform: translate3d(var(--drift, 40px), 80vh, 0) scaleY(.6); }
  100% { transform: translate3d(0, 108vh, 0) scaleY(1); }
}

/* ---------- Valentinstag ---------- */
[data-season="valentinstag"] { --season-accent: #d6336c; }
[data-season="valentinstag"] .season-banner { background: linear-gradient(90deg, #a61e4d, #d6336c 50%, #a61e4d); }
[data-season="valentinstag"] .season-banner svg { color: #ffd6e5; }
[data-season="valentinstag"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #ffe3ee 55%, #fff 70%); }
[data-season="valentinstag"] .hero__bg .ring--2 { border-color: rgba(214, 51, 108, .4); }
[data-season="valentinstag"] .kicker { color: #c2255c; }
[data-season="valentinstag"] .eyebrow__dot { background: var(--season-accent); }
[data-season="valentinstag"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #c2255c 100%); }
[data-season="valentinstag"] .season-fx i { width: 18px; height: 18px; color: #f06595; opacity: .55; animation: fall-sway linear infinite; }
[data-season="valentinstag"] .season-fx svg { width: 100%; height: 100%; fill: currentColor; }

/* ---------- Sommer ---------- */
[data-season="sommer"] { --season-accent: #0b8a8a; --season-sun: #ffb703; }
[data-season="sommer"] .season-banner { background: linear-gradient(90deg, #0b7285, #0b8a8a 50%, #0b7285); }
[data-season="sommer"] .season-banner svg { color: var(--season-sun); }
[data-season="sommer"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fff4d6 50%, #e3f6f5 64%, #fff 74%); }
[data-season="sommer"] .hero__bg .ring--2 { border-color: rgba(255, 183, 3, .6); }
[data-season="sommer"] .kicker { color: #0a7272; }
[data-season="sommer"] .eyebrow__dot { background: var(--season-accent); }
[data-season="sommer"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #e8590c 100%); }
[data-season="sommer"] .season-fx i { top: auto; bottom: -40px; width: 22px; height: 22px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.9), rgba(255,183,3,.35) 60%, rgba(255,183,3,0) 72%); animation: rise linear infinite; }

/* ---------- Black Friday ---------- */
[data-season="blackfriday"] { --season-accent: #f5c542; }
[data-season="blackfriday"] .season-banner { background: #000; color: #fff; letter-spacing: .01em; }
[data-season="blackfriday"] .season-banner svg { color: var(--season-accent); }
[data-season="blackfriday"] .topbar { background: #000; }
[data-season="blackfriday"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #ececef 55%, #fff 70%); }
[data-season="blackfriday"] .hero__bg .ring--2 { border-color: rgba(0, 0, 0, .35); }
[data-season="blackfriday"] .eyebrow__dot { background: #000; }
[data-season="blackfriday"] .cta-band { background: #000; }
[data-season="blackfriday"] .cta-band__circle { border-color: rgba(237, 28, 36, .35); }

/* ---------- Neujahr ---------- */
[data-season="neujahr"] { --season-accent: #b8892b; --season-gold: #d4a849; }
[data-season="neujahr"] .season-banner { background: linear-gradient(90deg, #0d1b2a, #1b263b 50%, #0d1b2a); }
[data-season="neujahr"] .season-banner svg { color: var(--season-gold); }
[data-season="neujahr"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fbf3dc 55%, #fff 70%); }
[data-season="neujahr"] .hero__bg .ring--2 { border-color: rgba(212, 168, 73, .55); }
[data-season="neujahr"] .kicker { color: #8f6a1d; }
[data-season="neujahr"] .eyebrow__dot { background: var(--season-gold); }
[data-season="neujahr"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #b3121a 55%, #1b263b 130%); }
[data-season="neujahr"] .season-fx i { width: 6px; height: 10px; border-radius: 1px; opacity: .85; animation: fall-sway linear infinite; }

/* ---------- Fasnacht ---------- */
[data-season="fasnacht"] { --season-accent: #8338ec; }
[data-season="fasnacht"] .season-banner { background: #3c1361; border-bottom: 4px solid; border-image: linear-gradient(90deg, #ed1c24, #ff8800, #ffd60a, #2a9d8f, #3a86ff, #8338ec) 1; }
[data-season="fasnacht"] .season-banner svg { color: #ffe066; }
[data-season="fasnacht"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #f1e8ff 50%, #e6f7f4 62%, #fff 72%); }
[data-season="fasnacht"] .hero__bg .ring--2 { border-color: rgba(131, 56, 236, .4); }
[data-season="fasnacht"] .kicker { color: #6a24c9; }
[data-season="fasnacht"] .eyebrow__dot { background: var(--season-accent); }
[data-season="fasnacht"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #c2255c 55%, #6a24c9 120%); }
[data-season="fasnacht"] .season-fx i { width: 7px; height: 11px; border-radius: 1px; opacity: .85; animation: fall-sway linear infinite; }

/* ---------- Ostern ---------- */
[data-season="ostern"] { --season-accent: #2f8f5b; --season-sun: #f6c945; }
[data-season="ostern"] .season-banner { background: linear-gradient(90deg, #2f8f5b, #3fa36b 50%, #2f8f5b); }
[data-season="ostern"] .season-banner svg { color: #ffe69a; }
[data-season="ostern"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fff6d6 50%, #e7f6ec 64%, #fff 74%); }
[data-season="ostern"] .hero__bg .ring--2 { border-color: rgba(246, 201, 69, .6); }
[data-season="ostern"] .kicker { color: #24774a; }
[data-season="ostern"] .eyebrow__dot { background: var(--season-accent); }
[data-season="ostern"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #d9480f 70%, #f08c00 130%); }
[data-season="ostern"] .season-fx i { width: 16px; height: 21px; opacity: .8; animation: fall-sway linear infinite; }
[data-season="ostern"] .season-fx svg,
[data-season="muttertag"] .season-fx svg,
[data-season="nationalfeiertag"] .season-fx svg { width: 100%; height: 100%; fill: currentColor; }

/* ---------- Muttertag ---------- */
[data-season="muttertag"] { --season-accent: #d6336c; }
[data-season="muttertag"] .season-banner { background: linear-gradient(90deg, #c2255c, #e64980 50%, #c2255c); }
[data-season="muttertag"] .season-banner svg { color: #ffe3ec; }
[data-season="muttertag"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #ffe8f0 55%, #fff 70%); }
[data-season="muttertag"] .hero__bg .ring--2 { border-color: rgba(230, 73, 128, .4); }
[data-season="muttertag"] .kicker { color: #b8215a; }
[data-season="muttertag"] .eyebrow__dot { background: var(--season-accent); }
[data-season="muttertag"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #d6336c 100%); }
[data-season="muttertag"] .season-fx i { width: 20px; height: 20px; opacity: .6; animation: fall-sway linear infinite; }

/* ---------- 1. August (Nationalfeiertag) ---------- */
[data-season="nationalfeiertag"] { --season-accent: #da291c; }
[data-season="nationalfeiertag"] .season-banner { background: #da291c; }
[data-season="nationalfeiertag"] .season-banner svg { color: #fff; }
[data-season="nationalfeiertag"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fdeaea 55%, #fff 70%); }
[data-season="nationalfeiertag"] .hero__bg .ring--2 { border-color: rgba(218, 41, 28, .45); }
[data-season="nationalfeiertag"] .season-fx i { width: 18px; height: 18px; opacity: .7; animation: fall-sway linear infinite; }

/* ---------- Schulstart ---------- */
[data-season="schulstart"] { --season-accent: #1c64d1; --season-sun: #ffc300; }
[data-season="schulstart"] .season-banner { background: linear-gradient(90deg, #1450a8, #1c64d1 50%, #1450a8); }
[data-season="schulstart"] .season-banner svg { color: var(--season-sun); }
[data-season="schulstart"] .hero__bg .ring--1 { background: radial-gradient(circle at 30% 30%, #fff 0, #fff5cc 50%, #e6efff 64%, #fff 74%); }
[data-season="schulstart"] .hero__bg .ring--2 { border-color: rgba(28, 100, 209, .4); }
[data-season="schulstart"] .kicker { color: #1652ad; }
[data-season="schulstart"] .eyebrow__dot { background: var(--season-accent); }
[data-season="schulstart"] .cta-band { background: linear-gradient(135deg, var(--red) 0%, #b3121a 60%, #1c64d1 140%); }

/* ---------- Gemeinsame Animationen ---------- */
@keyframes fall-sway {
  0% { transform: translate3d(0, 0, 0) rotate(-10deg); }
  50% { transform: translate3d(var(--drift, 40px), 52vh, 0) rotate(10deg); }
  100% { transform: translate3d(0, 106vh, 0) rotate(-10deg); }
}
@keyframes rise {
  0% { transform: translate3d(0, 0, 0) scale(.8); opacity: 0; }
  10% { opacity: .9; }
  100% { transform: translate3d(var(--drift, 30px), -108vh, 0) scale(1.2); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .season-fx { display: none; }
}
