/* Weihnachtshaus Effekte – Stile für Partikel, Lichterkette, Countdown, Fotos */
canvas.wh-fx{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.wh-fill{position:absolute;inset:0;pointer-events:none}

/* Foto-Hintergründe: langsamer Ken-Burns-Zoom und warme Abdunklung */
.wh-kenburns img{animation:wh-kb 26s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes wh-kb{from{transform:scale(1.04)}to{transform:scale(1.16) translate(-1.5%,-1%)}}
.wh-shade{background:linear-gradient(180deg,rgba(7,13,25,.55) 0%,rgba(7,13,25,.35) 35%,rgba(7,13,25,.82) 78%,#0A1222 100%),radial-gradient(70% 60% at 50% 30%,rgba(233,181,88,.16),transparent 70%)}
.wh-shade--side{background:linear-gradient(90deg,rgba(7,13,25,.92) 0%,rgba(7,13,25,.7) 45%,rgba(7,13,25,.25) 100%),linear-gradient(180deg,transparent 60%,#0A1222 100%)}
.wh-glow{background:radial-gradient(50% 60% at 50% 0%,rgba(233,181,88,.20),transparent 70%)}
.wh-glow--red{background:radial-gradient(45% 70% at 85% 20%,rgba(201,52,63,.22),transparent 70%),radial-gradient(40% 60% at 10% 90%,rgba(233,181,88,.12),transparent 70%)}
.wh-glow--orange{background:radial-gradient(55% 70% at 80% 10%,rgba(242,140,40,.25),transparent 70%),radial-gradient(45% 60% at 10% 90%,rgba(123,75,196,.25),transparent 70%)}
.wh-glow--spring{background:radial-gradient(55% 70% at 80% 10%,rgba(244,211,94,.22),transparent 70%),radial-gradient(45% 60% at 10% 90%,rgba(155,212,155,.2),transparent 70%)}

/* Lichterkette */
.wh-lights{position:relative;width:100%;height:54px;overflow:visible;pointer-events:none}
.wh-lights svg{position:absolute;left:0;top:0;overflow:visible}
.wh-lights i{position:absolute;width:9px;height:14px;margin:-1px 0 0 -4.5px;border-radius:50% 50% 50% 50%/62% 62% 40% 40%;background:var(--c);
  box-shadow:0 0 6px 1px var(--c),0 0 18px 4px color-mix(in srgb,var(--c) 45%,transparent);animation:wh-tw 2.4s ease-in-out infinite}
.wh-lights i::before{content:"";position:absolute;left:2px;top:-4px;width:5px;height:5px;border-radius:1px;background:#2A303C}
@keyframes wh-tw{0%,100%{opacity:1;filter:brightness(1.15)}45%{opacity:.35;filter:brightness(.7);box-shadow:0 0 2px var(--c)}}

/* Countdown */
.wh-countdown{--wh-acc:#E9B558;color:#FFF4E2}
.wh-cd-grid{display:flex;gap:14px;flex-wrap:wrap}
.wh-cd-grid>div{min-width:84px;padding:14px 10px 12px;text-align:center;border-radius:14px;background:rgba(255,244,226,.06);border:1px solid rgba(255,244,226,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.wh-cd-grid b{display:block;font:600 40px/1 'Fraunces',Georgia,serif;letter-spacing:-.02em;color:#FFF4E2}
.wh-cd-grid b.is-flip{animation:wh-flip .5s cubic-bezier(.2,.8,.2,1)}
@keyframes wh-flip{from{transform:translateY(-35%);opacity:.2}to{transform:none;opacity:1}}
.wh-cd-grid span{display:block;margin-top:6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,244,226,.62)}
.wh-cd-msg{display:none;margin:0;padding:14px 18px;border-radius:14px;background:rgba(233,181,88,.12);border:1px solid rgba(233,181,88,.35);font-weight:600}
.wh-countdown.is-tbd .wh-cd-grid,.wh-countdown.is-live .wh-cd-grid,.wh-countdown.is-over .wh-cd-grid{display:none}
.wh-countdown.is-tbd .wh-cd-tbd,.wh-countdown.is-live .wh-cd-livemsg,.wh-countdown.is-over .wh-cd-overmsg{display:block}
.wh-countdown.is-live .wh-cd-livemsg{animation:wh-pulse 2s ease-in-out infinite}
@keyframes wh-pulse{50%{box-shadow:0 0 0 8px rgba(233,181,88,0)}0%{box-shadow:0 0 0 0 rgba(233,181,88,.45)}}
.wh-cd-center .wh-cd-grid{justify-content:center}
@media (max-width:767px){.wh-cd-grid{gap:8px}.wh-cd-grid>div{min-width:0;flex:1;padding:12px 4px 10px}.wh-cd-grid b{font-size:30px}.wh-cd-grid span{font-size:10px;letter-spacing:.08em}}

/* Termin-Anzeige ([wh_termin]) */
.wh-date{display:flex;align-items:center;gap:14px;color:#FFF4E2}
.wh-date-cal{flex:none;width:58px;border-radius:10px;overflow:hidden;text-align:center;background:#FFF4E2;color:#0A1222;box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
.wh-date-cal small{display:block;padding:3px 0;background:var(--wh-acc,#C9343F);color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.wh-date-cal strong{display:block;padding:4px 0 6px;font:600 26px/1 'Fraunces',Georgia,serif}
.wh-date-txt b{display:block;font-size:17px}.wh-date-txt span{color:rgba(255,244,226,.68);font-size:14.5px}
.wh-date.is-tbd .wh-date-cal strong{font-size:20px;padding:7px 0 9px}

/* Spenden-Zeitstrahl */
.wh-year{font:600 64px/1 'Fraunces',Georgia,serif;letter-spacing:-.03em;background:linear-gradient(180deg,#FFE3A6,#E9B558 60%,#B9852F);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Karten mit Fotos */
.wh-tile{position:relative;overflow:hidden}
.wh-tile .wh-tile-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 35%,rgba(7,13,25,.92) 100%);transition:opacity .6s}
.wh-tile:hover .wh-tile-shade{opacity:.85}

/* Video-Vorschau */
.wh-video{position:relative;display:block;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000}
.wh-video img{width:100%;height:100%;object-fit:cover;opacity:.8;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),opacity .6s}
.wh-video:hover img{transform:scale(1.05);opacity:.65}
.wh-video span{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:#C9343F;display:grid;place-items:center;box-shadow:0 0 0 0 rgba(201,52,63,.6);animation:wh-ring 2.2s infinite}
.wh-video span::after{content:"";margin-left:6px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent #fff}
@keyframes wh-ring{70%{box-shadow:0 0 0 22px rgba(201,52,63,0)}100%{box-shadow:0 0 0 0 rgba(201,52,63,0)}}

/* Sanftes Schweben für Deko-Elemente */
.wh-float{animation:wh-float 6s ease-in-out infinite}
@keyframes wh-float{50%{transform:translateY(-10px)}}

/* Ornament-Trenner */
.wh-orn{display:flex;align-items:center;gap:14px;color:#E9B558;justify-content:center}
.wh-orn::before,.wh-orn::after{content:"";height:1px;width:70px;background:linear-gradient(90deg,transparent,currentColor)}
.wh-orn::after{transform:scaleX(-1)}
.wh-orn svg{width:18px;height:18px;animation:wh-spin 12s linear infinite}
@keyframes wh-spin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion:reduce){.wh-kenburns img,.wh-lights i,.wh-float,.wh-orn svg,.wh-video span,.wh-cd-grid b.is-flip{animation:none!important}}

/* Programm ([wh_programm]) */
.wh-prog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.wh-prog li{display:flex;align-items:center;gap:18px;padding:16px 20px;border-radius:16px;background:rgba(255,244,226,.04);border:1px solid rgba(255,244,226,.10);transition:border-color .4s,transform .4s,background-color .4s}
.wh-prog li:hover{border-color:rgba(233,181,88,.5);background:rgba(233,181,88,.06);transform:translateX(6px)}
.wh-prog li:first-child{border-color:rgba(233,181,88,.45)}
.wh-prog-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.wh-prog-txt b{color:#FFF4E2;font:600 20px/1.25 'Fraunces',Georgia,serif}
.wh-prog-txt span{color:rgba(255,244,226,.7);font-size:15px}
.wh-prog-txt .wh-prog-meta{color:#E9B558;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.wh-prog-empty{margin:0;color:rgba(255,244,226,.7)}
