/* Breakpoints: 992px tablet, 768px mobile-landscape, 560px mobile */

@media (max-width: 1024px) {
    .site-nav { position: fixed; top: 0; right: 0; height: 100vh; width: min(80vw, 320px);
        background: #fff; transform: translateX(100%); transition: transform 0.25s ease;
        box-shadow: -4px 0 20px rgba(0,0,0,0.15); padding: 5rem 1.5rem 2rem; z-index: 490; }
    .site-nav.is-open { transform: translateX(0); }
    .site-nav ul { flex-direction: column; gap: 1.25rem; }
    .site-header__actions { display: none; }
    .nav-toggle { display: flex; }
}

@media (max-width: 992px) {
    .card-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .card-grid--4, .visitor-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid { grid-template-columns: repeat(3, 1fr); padding: 0 1.5rem; }
    .about, .banner-feature { grid-template-columns: 1fr; }
    .about__collage-img--a { margin-top: 2rem; }

    .mosaic__grid { grid-template-columns: 1fr 1fr; height: auto; max-height: none; }
    .mosaic__col .mosaic__cell, .mosaic__grid > .mosaic__cell--photo { min-height: 320px; }

    .book { grid-template-columns: 1fr; min-height: 0; }
    .book__photo, .book__map { min-height: 440px; }
}

@media (max-width: 768px) {
    .hero { min-height: 100vh; text-align: center; }
    .hero__actions { flex-direction: column; align-items: stretch; }
    .hero__actions .btn { text-align: center; }

    .section { padding: 3.5rem 0; }
    .card-grid--3, .card-grid--4 { grid-template-columns: 1fr; }
    .visitor-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .visitor-card { aspect-ratio: 4 / 5; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }

    .lightbox__prev, .lightbox__next { font-size: 1.4rem; padding: 0.4rem 0.7rem; }

    .mosaic__grid { grid-template-columns: 1fr; }
    .mosaic__col { display: contents; }
    .mosaic__col .mosaic__cell, .mosaic__grid > .mosaic__cell--photo { min-height: 300px; }
}

@media (max-width: 560px) {
    .gallery-grid { grid-template-columns: 1fr 1fr; gap: 0.4rem; }
    .visitor-grid { grid-template-columns: 1fr; gap: 1rem; }
    .visitor-card { aspect-ratio: 16 / 10; }
    .floating-actions { right: 0.75rem; bottom: 0.75rem; }
    .floating-actions__btn { width: 48px; height: 48px; }
}
