/* Viewport-safe mobile navigation. Loaded last to normalize page-specific headers. */
@media(max-width:900px){
  body[data-page].menu-open{
    overflow:hidden!important;
    overscroll-behavior:none;
  }

  body[data-page] .site-header{
    overflow:visible!important;
  }

  body[data-page] .mobile-menu{
    position:fixed!important;
    z-index:999!important;
    inset:var(--mobile-menu-top,76px) 0 0!important;
    width:100%!important;
    height:auto!important;
    max-height:calc(100dvh - var(--mobile-menu-top,76px))!important;
    margin:0!important;
    padding:clamp(18px,4vh,30px) clamp(20px,5vw,34px) calc(30px + env(safe-area-inset-bottom))!important;
    align-items:stretch;
    flex-direction:column;
    gap:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
    border:0!important;
    border-top:2px solid var(--sg-ink,#260033)!important;
    background:rgba(255,253,253,.985)!important;
    box-shadow:0 24px 55px rgba(38,0,51,.18)!important;
  }

  body[data-page].menu-open .mobile-menu{
    display:flex!important;
  }

  body[data-page] .mobile-menu .nav-link{
    display:flex;
    align-items:center;
    flex:0 0 auto;
    width:100%;
    min-height:58px;
    padding:13px 4px!important;
    border-bottom:1px solid rgba(38,0,51,.12)!important;
    color:var(--sg-ink,#260033)!important;
    font-size:clamp(1.08rem,4.7vw,1.28rem)!important;
    line-height:1.2!important;
  }

  body[data-page] .mobile-menu .nav-link::after{
    right:auto;
    bottom:-1px!important;
    height:3px;
  }

  body[data-page] .mobile-menu .btn{
    display:flex!important;
    width:100%;
    min-height:54px!important;
    flex:0 0 auto;
    justify-content:center!important;
    margin:22px 0 4px!important;
  }

  body[data-page] .hamburger{
    position:relative;
    z-index:1001;
    flex:0 0 auto;
    cursor:pointer;
  }
}

@media(max-width:640px){
  body[data-page] .mobile-menu{
    padding-inline:18px!important;
  }
}

@media(max-height:520px) and (max-width:900px){
  body[data-page] .mobile-menu{
    padding-top:10px!important;
  }

  body[data-page] .mobile-menu .nav-link{
    min-height:46px;
    padding-block:9px!important;
  }

  body[data-page] .mobile-menu .btn{
    min-height:48px!important;
    margin-top:14px!important;
  }
}
