nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    margin-block: 0;
    padding-top: var(--space-md);
    width: var(--the-width);
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
    gap: var(--grid-gap);
    align-items: baseline;
    font-size: var(--fs-sm);
    transition: transform 300ms var(--out), opacity 300ms var(--out);
}

nav.is-nav-hidden {
    transform: translateY(calc(-100% - var(--space-md)));
    opacity: 0;
    pointer-events: none;
}

.nav-left,
.nav-right {
    text-transform: lowercase;
    min-width: 0;
}

.nav-contact-toggle-shell, .nav-menu-toggle-shell {
    background-color: rgb(255 255 255 / 0.8);

    @media (max-width: 48rem) {
        background-color: transparent;
        backdrop-filter: none;
        --webkit-backdrop-filter: none;
    }
}


.nav-left {
    grid-column: 1 / span 5;
    transition: transform 280ms var(--out), opacity 280ms var(--out);
}

.nav-center {
    grid-column: 6 / span 2;
    text-align: center;
    justify-self: center;
    font-size: var(--fs-md);
    cursor: pointer;
}

.nav-right {
    grid-column: 9 / span 4;
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 64rem) {
    html:not(.is-nav-panel-open) nav.is-scrolled {
        background-color: var(--the-white);
        border-radius: var(--space-xs);
    }

    nav {
        top: var(--space-sm);
        width: var(--the-width);
        margin: 0 auto;
        padding-top: 0;
        padding-inline: 0;
        grid-template-rows: auto auto;
        align-items: start;
        row-gap: var(--space-xs);
        background-color: transparent;
        backdrop-filter: none;
    }

    .nav-left {
        grid-column: 1 / span 4;
        grid-row: 2;
    }

    .nav-center {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-self: center;
        align-self: start;
        font-size: var(--fs-md);
        line-height: 1;
    }

    .nav-right {
        grid-column: 5 / span 4;
        grid-row: 2;
        width: 100%;
        align-self: start;
    }

    body {
        /* padding-top: var(--mobile-nav-height, 7.5rem); */
    }
}

@media (max-width: 48rem) {
    nav {
        top: var(--space-sm);
        width: var(--the-width);
        padding-top: 0;
        padding-inline: 0;
        background-color: transparent;
        align-items: center;
    }

    .nav-left {
        grid-column: 1 / span 1;
        grid-row: 1;
        justify-self: start;
    }

    .nav-center {
        grid-column: 2 / span 2;
        grid-row: 1;
        font-size: var(--fs-sm);
        justify-self: center;
        line-height: inherit;
    }

    .nav-right {
        grid-column: 4 / span 1;
        grid-row: 1;
        justify-content: flex-end;
        justify-self: end;
    }

    nav ul {
        gap: 0.25rem;
    }
}

nav ul {
    display: flex;
    align-items: start;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
}


[data-site-nav] button {
    min-height: var(--tap-target-size);
    min-width: var(--tap-target-size);
}

[data-site-nav]:focus-within {
    transform: none;
    opacity: 1;
    pointer-events: auto;
}

.nav-menu .nav-menu-panel,
.nav-right .nav-contact-panel {
    max-height: calc(100dvh - 7rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.nav-menu .nav-menu-panel:focus,
.nav-right .nav-contact-panel:focus {
    outline: none;
}

@media (max-width: 48rem) {
    [data-site-nav]:has(.is-open) {
        transform: none;
    }

    .nav-menu .nav-menu-panel,
    .nav-right .nav-contact-panel {
        max-height: 100dvh;
        padding-bottom: calc(var(--space-md) + env(safe-area-inset-bottom));
        background: rgb(0 0 0 / 0.92);
    }

    [data-site-nav]:has(.is-open) .nav-center {
        position: relative;
        z-index: 1300;
        color: var(--super-white);
    }

    [data-site-nav]:has(.is-open) .nav-menu-toggle,
    [data-site-nav]:has(.is-open) .nav-contact-toggle {
        color: var(--super-white);
    }
}
