:root {
    --site-nav-brand: var(--brand, var(--teal, var(--blue, #00B8D4)));
    --site-nav-brand-dark: var(--brand-dark, var(--blue-dk, #0097b2));
    --site-nav-text: var(--nav-text, var(--navy, #263247));
    --site-nav-border: var(--border, #e3e5e8);
}

.topbar .brand-logo,
.site-header-logo {
    display: block;
    width: auto;
    height: 58px;
    max-height: 58px;
    min-height: 58px;
    object-fit: contain;
}

.topbar .brand {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}

.topbar .nav,
.hero-nav .nav {
    align-items: center;
}

.topbar .nav a,
.hero-nav .nav a {
    text-decoration: none;
}

.topbar .nav a:hover,
.hero-nav .nav a:hover {
    color: var(--site-nav-brand-dark);
}

.topbar .nav .btn-nav,
.hero-nav .nav .btn-nav {
    background: var(--site-nav-brand);
    color: #fff;
}

.topbar .nav .btn-nav:hover,
.hero-nav .nav .btn-nav:hover {
    background: var(--site-nav-brand-dark);
    color: #fff;
}

.topbar .nav-toggle,
.hero-nav .nav-toggle {
    flex: 0 0 auto;
}

@media (max-width: 900px) {
    .topbar .nav,
    .hero-nav .nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 20px;
        right: 20px;
        z-index: 70;
        padding: 10px 0;
        background: #fff;
        border: 1px solid var(--site-nav-border);
        border-bottom: 3px solid var(--site-nav-brand);
        border-radius: 0 0 12px 12px;
        box-shadow: 0 16px 30px rgba(38, 50, 71, .16);
    }

    .topbar .nav.open,
    .hero-nav .nav.open {
        display: block;
    }

    .topbar .nav a,
    .hero-nav .nav a {
        display: block;
        padding: 15px 18px;
        border-bottom: 1px solid var(--site-nav-border);
        font-family: 'DM Sans', sans-serif;
        font-size: 1.08rem;
        font-weight: 800;
        line-height: 1.1;
        letter-spacing: .02em;
        text-transform: uppercase;
        color: var(--site-nav-text);
    }

    .topbar .nav a:last-child,
    .hero-nav .nav a:last-child {
        border-bottom: 0;
    }

    .topbar .nav .btn-nav,
    .hero-nav .nav .btn-nav {
        margin: 10px 14px 6px;
        text-align: center;
        box-shadow: none;
        color: #fff;
    }

    .hero-nav .nav {
        position: fixed;
        top: 78px;
        left: 16px;
        right: 16px;
        width: auto;
        min-width: 0;
        max-width: none;
    }
}

@media (max-width: 640px) {
    .topbar .topbar-inner {
        padding: 10px 14px;
    }

    .topbar .brand-logo,
    .site-header-logo {
        height: 58px;
        max-height: 58px;
        min-height: 58px;
    }
}
