/* Schdodlbuam – Effekte
   Alles hier ist reine Zugabe: ohne dieses Stylesheet oder JavaScript bleibt die Seite voll nutzbar. */

/* ---------- Motorrad-Cursor (nur Maus, abschaltbar im Footer) ---------- */
@media (hover: hover) and (pointer: fine) {
    html.bike-cursor,
    html.bike-cursor body {
        cursor: url("../assets/chopper-cursor.png") 44 34, auto;
    }
    html.bike-cursor a,
    html.bike-cursor button,
    html.bike-cursor .cal-day--event,
    html.bike-cursor [role="button"] {
        cursor: url("../assets/chopper-cursor-hover.png") 44 34, pointer;
    }
}

.cursor-toggle {
    background: none; border: 1px solid var(--line); color: var(--text-muted);
    padding: .35rem .8rem; font: inherit; font-size: .85rem; cursor: pointer;
}
.cursor-toggle:hover { color: #fff; border-color: var(--text-muted); }
.footer__tools { width: min(1100px, 100% - 2.5rem); margin: 1.5rem auto 0; }
@media (hover: none), (pointer: coarse) { .footer__tools { display: none; } }

/* ---------- Navigation ---------- */
.nav__list a { position: relative; }
.nav__list a::after {
    content: ""; position: absolute; left: .9rem; right: .9rem; bottom: .2rem; height: 2px;
    background: var(--red-dark); transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.nav__list a:hover::after, .nav__list a.is-active::after { transform: scaleX(1); }

/* ---------- Hero ---------- */
.hero__bar > * { animation: rise .6s ease-out backwards; }
.hero__bar > :nth-child(2) { animation-delay: .08s; }
.hero__bar > :nth-child(3) { animation-delay: .16s; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } }

.next-up { margin: 1rem 0 0; font-size: .95rem; }
.next-up[hidden] { display: none; }
.next-up__label { font-weight: 700; color: var(--red-text); text-transform: uppercase; font-size: .8rem; letter-spacing: .06em; margin-right: .4rem; }

/* ---------- Scroll-Reveal ---------- */
html.js .reveal { opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease-out; transition-delay: var(--d, 0s); }
html.js .reveal.is-visible { opacity: 1; transform: none; }

/* Unterstreichung nur unter der Überschrift selbst */
.section__head h2 { position: relative; padding-bottom: .1em; }
.section__head h2::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--red-dark);
    transform: scaleX(0); transform-origin: left; transition: transform .7s .2s ease-out;
}
.section__head.is-visible h2::after, html:not(.js) .section__head h2::after { transform: scaleX(1); }

/* ---------- Termine ---------- */
.event { transition: background .2s; }
.event:hover { background: rgba(255, 255, 255, .05); }
.cal-day--pulse { animation: day-pulse 1.2s ease-out 1; }
@keyframes day-pulse { 0% { box-shadow: 0 0 0 0 rgba(216, 53, 47, .9); } 100% { box-shadow: 0 0 0 10px rgba(216, 53, 47, 0); } }

/* ---------- in memoriam ---------- */
.memorial__link { cursor: zoom-in; transition: transform .25s ease-out; }
.memorial .memorial__link:hover, .memorial .memorial__link:focus-visible { transform: rotate(0deg) scale(1.02); }

/* Großansicht */
.lightbox {
    border: 0; padding: 0; background: transparent; max-width: none; max-height: none;
    width: 100vw; height: 100vh; color: #fff;
}
.lightbox[open] { display: grid; place-items: center; }
.lightbox::backdrop { background: rgba(0, 0, 0, .9); }
.lightbox__img { max-width: min(94vw, 1300px); max-height: 88vh; width: auto; height: auto; border: 8px solid var(--paper); }
.lightbox__btn {
    position: absolute; width: 3rem; height: 3rem; border: 1px solid rgba(255, 255, 255, .35); cursor: pointer;
    background: rgba(0, 0, 0, .5); color: #fff; font-size: 1.8rem; line-height: 1;
}
.lightbox__btn:hover { background: var(--red-dark); border-color: var(--red-dark); }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox--single .lightbox__prev, .lightbox--single .lightbox__next { display: none; }
@media (max-width: 640px) { .lightbox__prev { left: .4rem; } .lightbox__next { right: .4rem; } }

/* ---------- Nach oben ---------- */
.to-top {
    position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 40; width: 2.75rem; height: 2.75rem;
    display: grid; place-items: center; text-decoration: none; font-size: 1.3rem; font-weight: 700;
    background: var(--red-dark); color: #fff;
    opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s;
}
.to-top.is-shown { opacity: 1; visibility: visible; }
.to-top:hover { background: #a3201f; color: #fff; }

/* ---------- Weniger Bewegung ---------- */
@media (prefers-reduced-motion: reduce) {
    html.js .reveal { opacity: 1 !important; transform: none !important; }
    .hero__bar > * { animation: none !important; }
    .cal-day--pulse { animation: none !important; }
}
