/* ===== mobile menu overlay, shared across all pages, active <=1000px ===== */
.menu-btn span{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(2.75px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-2.75px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:98;background:var(--paper);
  display:flex;flex-direction:column;padding:92px 34px 46px;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .3s ease,transform .38s cubic-bezier(.2,.7,.2,1),visibility 0s .3s}
.mmenu.open{opacity:1;visibility:visible;transform:none;
  transition:opacity .3s ease,transform .42s cubic-bezier(.2,.7,.2,1)}
/* margin:auto (not justify-content:center) so it centres when there's room but stays fully
   scroll-reachable when the links overflow a short/landscape viewport, no items hidden under the header */
.mmenu-inner{width:100%;max-width:var(--maxw);margin:auto;display:flex;flex-direction:column}
.mmenu a.ml{font-family:var(--display);font-weight:500;letter-spacing:-.03em;
  font-size:clamp(30px,8.5vw,46px);line-height:1.16;color:var(--ink);
  padding:13px 0;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  opacity:0;transform:translateY(14px)}
.mmenu.open a.ml{opacity:1;transform:none;transition:opacity .45s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.mmenu a.ml.active{color:var(--sky-deep)}
.mmenu a.ml::after{content:"→";font-size:.52em;opacity:.32;font-weight:400}
.mmenu a.ml-sub{font-size:clamp(21px,5.6vw,30px);color:var(--muted);padding:11px 0}
.mmenu-foot{display:flex;align-items:center;gap:22px;margin-top:38px;
  opacity:0;transform:translateY(14px)}
.mmenu.open .mmenu-foot{opacity:1;transform:none;
  transition:opacity .5s ease .3s,transform .5s cubic-bezier(.2,.7,.2,1) .3s}
.mmenu-foot .btn{font-size:16px;padding:16px 24px}
body.mmenu-open{overflow:hidden}
/* subpages have no Lenis; position:fixed body is the only lock iOS Safari honours behind a fixed overlay
   (JS saves/restores scrollY). Homepage uses lenis.stop() instead and never gets .mmenu-fixed. */
body.mmenu-fixed{position:fixed;width:100%;left:0;right:0}
/* while the menu is open, hide the header's own CTA + lang at every menu width so they never
   duplicate the copies inside the menu or bleed over the overlay (701-1000px band, e.g. iPad portrait) */
body.mmenu-open header .nav-right .btn,body.mmenu-open header .nav-right .lang{display:none}
/* phones: header CTA + lang always collapse into the menu so the hamburger is never crowded off-screen */
@media(max-width:700px){header .nav-right .btn,header .nav-right .lang{display:none}}
@media(min-width:1001px){.mmenu{display:none!important}}
