/* Shared mobile navigation shell, loaded after page CSS for consistent behaviour. */
@media (max-width: 991.98px) {
    .menu-drawer {
        --menu-line: rgba(255, 255, 255, .1);
        --menu-hover: rgba(255, 255, 255, .07);
        position: fixed;
        inset: 0 0 0 auto;
        z-index: 190;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: min(22.5rem, 88vw);
        height: 100vh;
        height: 100dvh;
        max-height: none;
        padding: 0;
        border: 0;
        border-radius: 0;
        overflow: hidden;
        background: #1b1c1f;
        color: #fff;
        box-shadow: -1.5rem 0 3rem -1.5rem rgba(0, 0, 0, .45);
        visibility: hidden;
        transform: translate3d(100%, 0, 0);
        transition: transform .3s cubic-bezier(.2, .7, .2, 1), visibility .3s;
        overscroll-behavior: contain;
    }
    .menu-drawer.is-open { visibility: visible; transform: translate3d(0, 0, 0); }
    .menu-drawer .menu-head {
        min-height: 4.25rem;
        height: auto;
        padding-top: env(safe-area-inset-top);
        border-color: var(--menu-line);
        background: #1b1c1f;
    }
    .menu-drawer .menu-logo,
    .menu-drawer .nav-link,
    .menu-drawer .menu-contact,
    .menu-drawer .menu-close,
    .menu-drawer .hero-login,
    .menu-drawer .site-login { color: #fff; }
    .menu-drawer .nav-list {
        flex: 1 1 auto;
        min-height: 0;
        padding: .75rem 1rem;
        overflow-x: hidden;
        overflow-y: auto;
        scrollbar-width: thin;
        overscroll-behavior: contain;
    }
    .menu-drawer .nav-link { min-height: 3.25rem; padding: .8125rem 1rem; }
    .menu-drawer .nav-link:hover,
    .menu-drawer .nav-link[aria-current],
    .menu-drawer .nav-item.is-open > .nav-link { background: var(--menu-hover); }
    .menu-drawer .menu-foot {
        position: relative;
        z-index: 2;
        display: block;
        flex: 0 0 auto;
        padding: .875rem 1.25rem max(.875rem, env(safe-area-inset-bottom));
        border-top: 1px solid var(--menu-line);
        background: #1b1c1f;
    }
    .menu-drawer .menu-help { margin-bottom: .25rem; }
    .menu-drawer .menu-contact { padding-block: .125rem; }
    .menu-drawer .menu-login,
    .menu-drawer .account-widget { margin-top: .75rem; }
    .menu-drawer .hero-login,
    .menu-drawer .site-login,
    .menu-drawer .account-avatar-btn {
        border-color: rgba(255, 255, 255, .42);
        background: transparent;
        color: #fff;
    }
    /* Open upward so the profile actions never disappear below browser chrome. */
    .menu-drawer .account-dropdown {
        top: auto;
        bottom: calc(100% + .5rem);
        max-height: min(28rem, calc(100dvh - 7rem));
        overflow-x: hidden;
        overflow-y: auto;
        transform: translateY(.5rem) scale(.97);
        transform-origin: bottom center;
    }
    .menu-drawer .account-dropdown::before { inset: 100% 0 -.625rem; }
    .menu-drawer .account-widget.is-open .account-dropdown { transform: none; }
    .menu-backdrop { z-index: 189; }
    body.has-menu { overflow: hidden; touch-action: none; }
}
