.menu-toggle{position:absolute;top:50%;right:clamp(178px,16vw,218px);transform:translateY(-50%);width:44px;height:44px;padding:0;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;z-index:22}
.menu-toggle span{display:block;width:23px;height:2px;background:#111;transition:transform .25s ease,opacity .25s ease}
.menu-toggle:hover span{background:var(--red)}
.menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.28);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease;z-index:40}
.side-menu{position:fixed;top:0;right:0;width:min(430px,90vw);height:100dvh;background:#fff;box-shadow:-18px 0 50px rgba(0,0,0,.12);transform:translateX(105%);visibility:hidden;transition:transform .4s cubic-bezier(.22,.61,.36,1),visibility .4s ease;z-index:41;overflow-y:auto;padding:30px 38px 48px}
.menu-open{overflow:hidden}
.menu-open .menu-overlay{opacity:1;visibility:visible}
.menu-open .side-menu{transform:translateX(0);visibility:visible}
.side-menu-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--line);font:700 .72rem 'Manrope',sans-serif;letter-spacing:.18em}
.menu-close{width:44px;height:44px;border:0;background:transparent;color:#111;font:300 2rem/1 'Manrope',sans-serif;cursor:pointer}
.side-menu-nav{display:flex;flex-direction:column;padding-top:18px}
.side-menu-nav>a{padding:14px 0;font:600 1.35rem 'Manrope',sans-serif;letter-spacing:-.03em;border-bottom:1px solid var(--line)}
.side-menu-nav a{transition:color .2s ease}
.side-menu-nav a:hover{color:var(--red)}
.side-menu-group{display:flex;flex-direction:column;padding:23px 0 8px;border-bottom:1px solid var(--line)}
.side-menu-group>span{margin-bottom:10px;color:#888;font:700 .68rem 'Manrope',sans-serif;letter-spacing:.16em;text-transform:uppercase}
.side-menu-group>a{padding:8px 0;font-weight:600}
.side-menu-group:last-child{border-bottom:0}
.menu-toggle:focus-visible,.menu-close:focus-visible,.side-menu a:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(max-width:820px){.menu-toggle{right:12px}.side-menu{width:min(390px,92vw);padding:24px 28px 110px}}
@media(prefers-reduced-motion:reduce){.menu-overlay,.side-menu,.menu-toggle span{transition:none}}
