/* Full-screen photo viewer shared by the gallery and accommodation pages (partials/photo-lightbox). No rules or frames. */
.photo-lightbox { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: clamp(4.5rem, 8vw, 6rem) clamp(1rem, 8vw, 7rem); font-family: 'Poppins', sans-serif; opacity: 0; transition: opacity .3s ease; }
.photo-lightbox[hidden] { display: none; }
.photo-lightbox.is-open { opacity: 1; }
.photo-lightbox__backdrop { position: absolute; inset: 0; background: rgba(20, 17, 18, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.photo-lightbox__figure { position: relative; display: grid; justify-items: center; gap: 1rem; max-width: 100%; max-height: 100%; margin: 0; }
.photo-lightbox__image { display: block; max-width: min(1400px, 100%); max-height: calc(100dvh - 12rem); border-radius: 18px; object-fit: contain; box-shadow: 0 40px 100px -40px rgba(0, 0, 0, .8); opacity: 0; transform: scale(.97); transition: opacity .4s ease, transform .5s cubic-bezier(.2, .8, .2, 1); }
.photo-lightbox.is-loaded .photo-lightbox__image { opacity: 1; transform: none; }
.photo-lightbox__caption { display: grid; justify-items: center; gap: .25rem; max-width: 720px; color: #FFFFFF; text-align: center; }
.photo-lightbox__album { color: #6B9A40; font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.photo-lightbox__text { color: rgba(255, 255, 255, .86); font-size: .92rem; line-height: 1.5; }
.photo-lightbox__counter { position: absolute; top: 1.4rem; left: 1.4rem; padding: .5rem 1rem; border-radius: 999px; background: rgba(255, 255, 255, .12); color: #FFFFFF; font-size: .8rem; font-weight: 600; }
.photo-lightbox__button { position: absolute; display: grid; width: 3.2rem; height: 3.2rem; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #FFFFFF; cursor: pointer; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background .3s ease, transform .4s cubic-bezier(.2, .8, .2, 1); }
.photo-lightbox__button svg { width: 1.3rem; height: 1.3rem; }
.photo-lightbox__button:hover { background: #755431; }
.photo-lightbox__button:focus-visible { outline: 3px solid #6B9A40; outline-offset: 3px; }
.photo-lightbox__close { top: 1.2rem; right: 1.2rem; }
.photo-lightbox__close:hover { transform: rotate(90deg); }
.photo-lightbox__prev { top: 50%; left: clamp(.6rem, 2vw, 1.6rem); margin-top: -1.6rem; }
.photo-lightbox__next { top: 50%; right: clamp(.6rem, 2vw, 1.6rem); margin-top: -1.6rem; }
.photo-lightbox__prev:hover { transform: translateX(-3px); }
.photo-lightbox__next:hover { transform: translateX(3px); }
.photo-lightbox.is-single :is(.photo-lightbox__prev, .photo-lightbox__next, .photo-lightbox__counter) { display: none; }

@media (max-width: 639px) {
    .photo-lightbox { padding-inline: .8rem; }
    .photo-lightbox__prev, .photo-lightbox__next { top: auto; bottom: 1.2rem; margin-top: 0; }
    .photo-lightbox__prev { left: calc(50% - 4rem); }
    .photo-lightbox__next { right: calc(50% - 4rem); }
}
@media (prefers-reduced-motion: reduce) {
    .photo-lightbox, .photo-lightbox__image, .photo-lightbox__button { transition: none; }
}
