/* Only the new photo component and its own Magnific Popup instance. */
.np-photos { padding: clamp(36px, 5vw, 72px) 0; background: var(--bg-default, #f6f6f6); }
.np-photos__album + .np-photos__album { margin-top: 40px; }
.np-photos__admin { margin-bottom: 16px; }
.np-photos__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.np-photos__link { min-width: 0; text-decoration: none; }
.np-photos__frame { aspect-ratio: 4 / 3; background: #eeeae3; }
.np-photos__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .4s ease; }
.np-photos__overlay { position: absolute; inset: 0; z-index: 1; background: #0008; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.np-photos__view { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 20px; color: #fff; font-size: 16px; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.np-photos__link:hover .np-photos__image, .np-photos__link:focus-visible .np-photos__image { transform: scale(1.2); }
.np-photos__link:hover .np-photos__overlay, .np-photos__link:hover .np-photos__view,
.np-photos__link:focus-visible .np-photos__overlay, .np-photos__link:focus-visible .np-photos__view { opacity: 1; }
.np-photos__link:focus-visible { outline: 2px solid #caa05c; outline-offset: 4px; border-radius: var(--rounded-1, 16px); }
.np-photos-popup.mfp-bg { z-index: 4000; }
.np-photos-popup.mfp-wrap { z-index: 4001; }
.np-photos-popup .mfp-title { font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.np-photos-popup .mfp-close { width: 44px; padding: 0; right: 8px; text-align: center; }
.np-photos-popup .mfp-arrow:focus-visible, .np-photos-popup .mfp-close:focus-visible { outline: 2px solid #caa05c; outline-offset: -4px; }
@media (max-width: 767px) {
    .np-photos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .np-photos__grid { grid-template-columns: minmax(0, 1fr); }
    .np-photos__album + .np-photos__album { margin-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    .np-photos__image, .np-photos__overlay, .np-photos__view { transition: none; }
    .np-photos__link:hover .np-photos__image, .np-photos__link:focus-visible .np-photos__image { transform: none; }
}
