.w-menu-toggle{
    display:none;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    background:none;
    border:0;
    cursor:pointer;
    color:var(--text);
    font-size:34px;
    z-index:1001;
}
.w-overlay{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(6px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .35s ease,visibility .35s ease;
    z-index:999;
}
.w-overlay.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}
.w-mobile-menu{
    position:fixed;
    top:0;
    right:0;
    width:320px;
    max-width:85vw;
    height:100dvh;
    box-sizing:border-box;
    background:#fff;
    box-shadow:-10px 0 40px rgba(0,0,0,.12);
    padding:35px;
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform .35s ease;
    z-index:1000;
    overflow-y:auto;
    overflow-x:hidden;
}
.w-mobile-menu.active{
    transform:translateX(0);
}
.w-mobile-logo{
    width:140px;
    margin:20px auto 50px;
}
.w-mobile-menu nav{
    display:flex;
    flex-direction:column;
    gap:25px;
}
.w-mobile-menu nav a{
    text-decoration:none;
    color:var(--text);
    font-size:22px;
    font-weight:600;
    transition:color .25s ease;
}
.w-mobile-menu nav a:hover{
    color:var(--primary);
}
.w-mobile-menu .w-button{
    margin-top:auto;
    width:100%;
    text-align:center;
}
.w-close{
    position:absolute;
    right:18px;
    top:18px;
    background:none;
    border:0;
    font-size:28px;
    cursor:pointer;
}
html.menu-open,
body.menu-open{
    overflow:hidden;
}
html,
body{
    overflow-x:clip;
}
@media(max-width:992px){
    .w-menu-toggle{
        display:flex;
    }
    .w-menu,
    .w-navbar-right{
        display:none;
    }
}
@media(min-width:993px){
    .w-mobile-menu,
    .w-overlay{
        display:none;
    }
}