body.menu-open {
    overflow: hidden;
}

.hamburger {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
}

@media (max-width: 1320px) {
    nav {
        height: 80px !important;
        min-height: 80px;
    }

    .nav-logo {
        display: block;
        width: auto;
        height: 72px !important;
        max-width: min(52vw, 180px);
        object-fit: contain;
    }

    .hamburger {
        display: flex !important;
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        align-items: center;
        justify-content: center;
        padding: 8px !important;
        border: 0;
        border-radius: 50%;
        background: transparent;
    }

    .hamburger.active {
        background: rgba(255, 255, 255, 0.96) !important;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
    }

    .hamburger.active span {
        background: #2b4c7e !important;
    }

    .mobile-instagram-btn {
        display: inline-flex !important;
        position: absolute !important;
        top: auto !important;
        right: 74px !important;
    }

    .nav-instagram {
        display: none !important;
    }

    nav ul {
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        width: min(320px, 86vw) !important;
        height: 100dvh !important;
        max-height: 100dvh;
        z-index: 100;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 16px !important;
        background: #2b4c7e !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        box-shadow: -5px 0 20px rgba(0, 0, 0, 0.22);
        padding-top: 88px !important;
        padding-right: 28px !important;
        padding-left: 28px !important;
        padding-bottom: max(32px, env(safe-area-inset-bottom)) !important;
        -webkit-overflow-scrolling: touch;
    }

    nav ul.active {
        right: 0 !important;
    }

    nav ul li {
        width: 100%;
        margin: 0 !important;
    }

    nav ul a {
        color: white !important;
        font-size: 18px;
    }

    nav ul .nav-cta {
        width: 100%;
        text-align: center;
    }

    .nav-overlay.active {
        display: block !important;
        position: fixed;
        inset: 0 !important;
        z-index: 99;
        background: rgba(0, 0, 0, 0.5);
    }
}

@media (max-width: 500px) {
    nav {
        height: 76px !important;
        min-height: 76px;
    }

    .nav-logo {
        height: 68px !important;
    }
}
