/* Shared navigation: size the capsule to its contents, including the logo. */
.navbar {
    width: max-content;
    max-width: calc(100vw - 32px);
    transition-property: background-color, border-color, box-shadow, top, backdrop-filter;
}

.nav-container {
    gap: 12px;
    padding: 0;
}

.nav-logo {
    flex: 0 0 auto;
    min-height: 44px;
    margin-right: 0;
}

.nav-logo img {
    width: 57px;
    height: 32px;
    object-fit: contain;
}

.nav-links {
    flex: 0 0 auto;
}

.nav-links a {
    display: block;
    transition-property: color, background-color, border-color;
}

.nav-links .nav-cta:hover {
    color: #14100A !important;
}

.nav-logo:focus-visible,
.nav-toggle:focus-visible,
.nav-links a:focus-visible {
    outline: 2px solid var(--color-cream);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .nav-toggle {
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 10px;
    }

    .nav-links {
        max-height: calc(100vh - 88px);
        max-height: calc(100dvh - 88px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

@media (prefers-reduced-motion: reduce) {
    .navbar,
    .nav-links,
    .hamburger-line {
        transition: none;
    }
}

/* Center the disclosure icon independently of the font baseline. */
.nav-services .service-menu-chevron { display: block; flex: 0 0 12px; align-self: center; }
