@media (max-width: 980px) {
    .desktop-nav {
        display: none;
    }

    .menu-toggle {
        position: relative;
        display: inline-flex;
    }

    .hero-grid,
    .intro-layout,
    .story-band,
    .principles,
    .contact-layout {
        grid-template-columns: 1fr;
    }

    .hero-grid {
        align-content: end;
    }

    .hero-aside {
        max-width: 440px;
    }

    .gallery-item,
    .gallery-item-wide {
        grid-column: span 6;
    }
}

@media (max-width: 720px) {
    :root {
        --gutter: 18px;
        --header-height: 72px;
        --radius: 22px;
    }

    .site-header {
        gap: 12px;
    }

    .hero {
        min-height: 100svh;
    }

    .hero-overlay {
        background:
            linear-gradient(180deg, rgba(4, 8, 12, 0.12) 0%, rgba(4, 8, 12, 0.34) 36%, rgba(4, 8, 12, 0.92) 100%);
    }

    .hero-grid {
        min-height: 100svh;
        padding-top: 112px;
        padding-bottom: 34px;
        gap: 20px;
    }

    h1 {
        max-width: 10ch;
    }

    .hero-text,
    .intro-copy,
    .contact-copy {
        font-size: 1rem;
    }

    .button {
        width: 100%;
    }

    .section {
        padding: 82px 0;
    }

    .section-head {
        margin-bottom: 28px;
    }

    .gallery {
        grid-template-columns: 1fr;
    }

    .gallery-item,
    .gallery-item-wide,
    .gallery-item-tall {
        grid-column: auto;
        min-height: 320px;
    }

    .contact-details {
        font-size: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .reveal,
    .gallery-item img,
    .button,
    .site-header,
    .mobile-panel,
    .menu-toggle span {
        transition: none;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}
