/* ── Slider ─────────────────────────────────────────────────────── */
.angebot-slider { position:relative; overflow:hidden; width:100%; }
.angebot-slider--single { overflow:visible; }
.angebot-slider--single img { display:block; width:100%; height:100%; object-fit:cover; }
.angebot-slider__track { display:flex; transition:transform .4s cubic-bezier(.4,0,.2,1); will-change:transform; }
.angebot-slider__slide { flex:0 0 100%; width:100%; cursor:pointer; }
.angebot-slider__slide img { display:block; width:100%; height:100%; object-fit:cover; }
.angebot-slider__arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:2; display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:rgba(255,255,255,.85); border:none; border-radius:50%; cursor:pointer; color:#1a1a1a; transition:background .2s,color .2s; padding:0; }
.angebot-slider__arrow:hover { background:#fff; }
.angebot-slider__arrow--prev { left:12px; }
.angebot-slider__arrow--next { right:12px; }
.angebot-slider__dots { position:absolute; bottom:12px; left:50%; transform:translateX(-50%); display:flex; gap:6px; z-index:2; }
.angebot-slider__dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.5); border:none; cursor:pointer; padding:0; transition:background .2s,transform .2s; }
.angebot-slider__dot.is-active { background:#fff; transform:scale(1.3); }
.angebot-slider__counter { position:absolute; top:12px; right:14px; z-index:2; font-size:13px; color:#fff; background:rgba(0,0,0,.45); padding:3px 9px; border-radius:20px; backdrop-filter:blur(4px); pointer-events:none; }

/* ── Kacheln ─────────────────────────────────────────────────────── */
.angebot-kacheln { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:8px; }
.angebot-kacheln__item { display:block; padding:0; border:none; cursor:pointer; overflow:hidden; border-radius:4px; position:relative; }
.angebot-kacheln__item img { display:block; width:100%; height:auto; transition:transform .35s ease; }
.angebot-kacheln__item:hover img { transform:scale(1.04); }
.angebot-kacheln__item::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,0); transition:background .25s; border-radius:4px; }
.angebot-kacheln__item:hover::after { background:rgba(0,0,0,.08); }

/* ── Bild-Lightbox ───────────────────────────────────────────────── */
@keyframes lb-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes lb-scale-in { from { opacity:0; transform:scale(.93); } to { opacity:1; transform:scale(1); } }
.lb-img { position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center; animation:lb-fade-in .22s ease; }
.lb-img[hidden] { display:none; }
.lb-img__bg { position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); cursor:pointer; }
.lb-img__close { position:absolute; top:20px; right:20px; z-index:2; background:none; border:none; color:#fff; font-size:26px; line-height:1; cursor:pointer; padding:10px; opacity:.7; transition:opacity .2s; }
.lb-img__close:hover { opacity:1; }
.lb-img__box { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; max-width:90vw; max-height:90vh; animation:lb-scale-in .28s cubic-bezier(.22,1,.36,1); }
.lb-img__img { display:block; max-width:min(85vw,1100px); max-height:85vh; object-fit:contain; }
.lb-img__prev,.lb-img__next { position:absolute; top:50%; transform:translateY(-50%); z-index:2; display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); color:#fff; cursor:pointer; padding:0; transition:background .2s; }
.lb-img__prev:hover,.lb-img__next:hover { background:rgba(255,255,255,.3); }
.lb-img__prev { left:24px; }
.lb-img__next { right:24px; }

/* ── Body-Lock ───────────────────────────────────────────────────── */
body.lb-open { overflow:hidden; }

/* ── YouTube Player ──────────────────────────────────────────────── */
.yt-player { position:relative; aspect-ratio:16/9; background:#000; overflow:hidden; border-radius:8px; cursor:pointer; }
.yt-player__thumb { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s ease,filter .4s ease; }
.yt-player__thumb--fallback { width:100%; height:100%; background:#111; }
.yt-player:hover .yt-player__thumb { transform:scale(1.03); filter:brightness(.85); }
.yt-player__play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:none; border:none; padding:0; cursor:pointer; }
.yt-player__play svg { filter:drop-shadow(0 2px 12px rgba(0,0,0,.5)); transition:transform .2s ease; }
.yt-player:hover .yt-player__play svg { transform:scale(1.1); }
.yt-player iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.yt-player__dsgvo { position:absolute; bottom:0; left:0; right:0; padding:12px 16px; background:linear-gradient(transparent,rgba(0,0,0,.75)); color:#fff; font-size:.75rem; line-height:1.45; text-align:center; opacity:0; transform:translateY(4px); transition:opacity .25s ease,transform .25s ease; pointer-events:none; }
.yt-player__dsgvo a { color:inherit; text-decoration:underline; }
.yt-player:hover .yt-player__dsgvo { opacity:1; transform:translateY(0); pointer-events:auto; }

/* ── Zitatkacheln ────────────────────────────────────────────────── */
.zitatkacheln { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:3rem;}
.zitatkacheln__item { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:0 1rem 1rem; display:flex; flex-direction:column; }
.zitatkacheln__quote { margin:0; display:flex; flex-direction:column; flex:1; }
.zitatkacheln__quote::before { content:'\201E'; font-size:56px; line-height:.8; color:rgba(255,255,255,.25); margin-bottom:16px; font-family:Georgia,serif; }
.zitatkacheln__text { margin:0 0 24px; flex:1; font-size:1rem; line-height:1.65; color:inherit; }
.zitatkacheln__footer { display:flex; flex-direction:column; gap:2px; border-top:1px solid rgba(255,255,255,.1); padding-top:16px; }
.zitatkacheln__name { font-weight:600; font-size:.95rem; }
.zitatkacheln__untertitel { font-size:.82rem; opacity:.6; }
