/* ---------- /events list ---------- */
.event-card { transition: transform .15s ease, box-shadow .15s ease; overflow: hidden; }
.event-card:hover, .event-card:focus-visible { transform: translateY(-3px); box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.12) !important; }
.event-card .card-img-top { aspect-ratio: 4 / 3; object-fit: cover; }
.event-card__placeholder {
    aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center;
    background: #f1f5f9; color: #94a3b8; font-size: 3rem;
}

/* ---------- /events/{slug} gallery ---------- */
.event-description { white-space: pre-line; max-width: 60rem; }

.event-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: .5rem;
}
.event-gallery__item { display: block; border-radius: .375rem; overflow: hidden; background: #f1f5f9; }
.event-gallery__item img {
    width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; display: block;
    transition: transform .2s ease, opacity .2s ease;
}
.event-gallery__item:hover img, .event-gallery__item:focus-visible img { transform: scale(1.04); opacity: .92; }
.event-gallery__item:focus-visible { outline: 3px solid #0d6efd; outline-offset: 2px; }

@media (min-width: 992px) {
    .event-gallery { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .75rem; }
}

/* ---------- Lightbox ---------- */
.ssp-lightbox {
    position: fixed; inset: 0; z-index: 2000; display: none;
    background: rgba(10, 12, 16, .94); color: #fff;
    align-items: center; justify-content: center; flex-direction: column;
    touch-action: pan-y;
}
.ssp-lightbox.is-open { display: flex; }
.ssp-lightbox__figure { margin: 0; max-width: 92vw; max-height: 84vh; display: flex; flex-direction: column; align-items: center; }
.ssp-lightbox__img { max-width: 92vw; max-height: 78vh; object-fit: contain; border-radius: .25rem; user-select: none; }
.ssp-lightbox__caption { margin-top: .75rem; text-align: center; font-size: .95rem; opacity: .9; max-width: 60rem; }
.ssp-lightbox__count { position: absolute; top: 1rem; left: 1.25rem; font-size: .9rem; opacity: .75; }
.ssp-lightbox__btn {
    position: absolute; background: rgba(255,255,255,.12); border: 0; color: #fff;
    width: 3rem; height: 3rem; border-radius: 50%; font-size: 1.5rem; line-height: 1;
    display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.ssp-lightbox__btn:hover, .ssp-lightbox__btn:focus-visible { background: rgba(255,255,255,.25); outline: none; }
.ssp-lightbox__close { top: 1rem; right: 1rem; }
.ssp-lightbox__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.ssp-lightbox__next { right: 1rem; top: 50%; transform: translateY(-50%); }

@media (max-width: 576px) {
    .ssp-lightbox__prev, .ssp-lightbox__next { top: auto; bottom: 1rem; transform: none; }
}
body.ssp-lightbox-open { overflow: hidden; }
