@media (max-width: 1080px) {
    body.menu-open {
        overflow: hidden;
    }

    .menu-toggle {
        width: 48px;
        height: 48px;
        display: grid;
        place-content: center;
        gap: 5px;
        padding: 0;
        background: var(--forest-900);
        border: 0;
        border-radius: .65rem;
    }

    .menu-toggle span:not(.sr-only) {
        width: 22px;
        height: 2px;
        display: block;
        background: var(--white);
        transition: transform .2s ease, opacity .2s ease;
    }

    .main-nav {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        padding: .5rem 1.25rem 1.25rem;
        background: var(--white);
        box-shadow: 0 22px 35px rgb(4 38 28 / 18%);
        max-height: calc(100vh - var(--header-height));
        max-height: calc(100dvh - var(--header-height));
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .main-nav.is-open {
        display: block;
    }

    .main-nav ul {
        display: block;
    }

    .main-nav a {
        padding: .85rem 0;
        border-bottom: 1px solid var(--line);
    }

    .main-nav a::after {
        display: none;
    }

    .site-header.is-scrolled .main-nav a {
        padding-block: .85rem;
    }
}

@media (max-width: 640px) {
    .container {
        width: min(calc(100% - 1.5rem), var(--container));
    }

    .utility-bar {
        display: none;
    }

    .nav-shell {
        min-height: 76px;
    }

    .brand {
        width: 145px;
        height: 56px;
    }

    .site-header.is-scrolled .nav-shell {
        min-height: 76px;
    }

    .site-header.is-scrolled .brand {
        width: 145px;
        height: 56px;
    }

    .page-hero {
        min-height: 520px;
        align-items: end;
        padding-block: 4rem;
    }

    .page-hero::before {
        background: linear-gradient(to top, rgb(3 39 29 / 96%) 0%, rgb(3 39 29 / 65%) 58%, rgb(3 39 29 / 18%) 100%);
    }

    .page-hero h1 {
        font-size: clamp(2.8rem, 13.5vw, 4.4rem);
        line-height: .9;
    }

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

    .footer-grid > div:first-child {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        flex-direction: column;
    }

}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
