.site-header {
    --nav-height: 44px;
    --nav-bg: var(--color-surface);

    position: relative;
    background: var(--nav-bg);
    border-block-end: 1px solid var(--color-border);
}

.site-nav {
    display: flex;
    align-items: center;
    height: var(--nav-height);
}

.site-nav ul {
    display: flex;
    align-items: center;
    flex: 1;
    height: 100%;
    margin: 0;
    padding: 0;
    padding-inline: var(--page-gutter);
    list-style: none;
}

/* Logo stays at the far left, outside the gutter */
.site-nav li:first-child {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    height: var(--nav-height);
}

.site-nav li {
    display: flex;
    align-items: center;
    height: 100%;
}

.site-nav li.spacer {
    flex: 1;
}

.site-nav .btn-contact {
    margin-inline-end: 0;
}

.logo-link {
    display: flex;
    align-items: center;
    height: 100%;
    padding-inline: 26px 24px;
}

.logo {
    display: block;
    width: auto;
    max-width: 100%;
}

.nav-link {
    display: flex;
    align-items: center;
    height: 100%;
    padding-inline: 34px;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--teal);
    text-decoration: none;
}

.nav-link[aria-current="page"] {
    background: var(--teal);
    color: var(--paper);
}

.nav-link:not([aria-current="page"]):hover {
    background: color-mix(in srgb, var(--teal) 10%, transparent);
}

@media (max-width: 1024px) {
    .nav-link {
        padding-inline: 24px;
        font-size: 18px;
    }

    .logo-link {
        padding-inline: 8px 6px;
    }
}

@media (max-width: 760px) {
    .site-nav {
        --nav-height: 48px;
    }

    .site-nav ul {
        padding-inline: 0;
        min-width: 0;
    }

    .site-nav li:first-child {
        position: static;
        height: 100%;
    }

    .logo-link {
        padding-inline: 12px 8px;
    }

    .logo img {
        height: 28px;
        width: auto;
    }

    .nav-link {
        padding-inline: 14px;
        font-size: 15px;
    }

    .site-nav .btn-contact {
        margin-inline-end: var(--page-gutter);
        padding-inline: 12px;
        /* adjust to your button's current padding */
        font-size: 14px;
        white-space: nowrap;
    }
}

@media (max-width: 400px) {
    .logo {
        height: 26px;
    }

    .logo-link {
        padding-inline: 8px 6px;
    }

    .nav-link {
        padding-inline: 10px;
        font-size: 14px;
    }
    
    .site-nav .btn-contact {
        padding-inline: 10px;
        font-size: 13px;
    }
}