.nav-panel { display:contents; }
.mobile-menu-head,.mobile-menu-footer,.menu-backdrop,.menu-number,.menu-arrow,.campus-label-mobile { display:none; }
.menu-backdrop[hidden] { display:none; }
@media(max-width:800px) {
  .site-header { position:relative; z-index:50; }
  .site-header > .wrap { flex-wrap:wrap; }
  .site-header .brand { flex-shrink:0; }
  .site-header .brand img { width:90px; }
  .header-actions { margin-left:auto; }
  .campus-label-desktop { display:none; }
  .campus-label-mobile { display:inline; }
  .site-header .header-campus { min-height:44px; padding:8px 13px; font-size:14px; }
  .menu-toggle { display:none; min-height:44px; padding:8px 12px; gap:6px; align-items:center; justify-content:center; background:#fff4df; border-color:#e2cfaa; box-shadow:inset 0 1px 0 #fffdf8,0 3px 8px #9f805812; font-size:14px; }
  .nav-enhanced .menu-toggle { display:inline-flex; }
  .nav-panel { display:block; width:100%; }
  .site-nav { display:flex; position:static; max-height:none; overflow:visible; width:100%; padding:12px 0; box-shadow:none; border:0; background:transparent; }
  .nav-enhanced .nav-panel { display:none; }
  .nav-enhanced .nav-panel.is-open { position:fixed; inset:12px 12px 12px auto; display:flex; flex-direction:column; width:min(390px,calc(100% - 24px)); max-height:calc(100dvh - 24px); border:1px solid #e1ddcd; border-radius:25px; background:#fffcf5; box-shadow:0 18px 65px #234d4233; z-index:102; overflow:hidden; animation:menu-arrive .22s ease-out; }
  .menu-backdrop { position:fixed; inset:0; z-index:101; background:#294c424d; backdrop-filter:blur(3px); }
  .menu-backdrop:not([hidden]) { display:block; }
  .nav-panel.is-open .mobile-menu-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:24px 22px 18px; flex-shrink:0; }
  .menu-close:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
  .menu-kicker { color:var(--muted); font:11px/1.5 Arial,sans-serif; letter-spacing:1.5px; }
  .mobile-menu-head h2 { font-size:23px; letter-spacing:0; margin-top:3px; }
  .menu-close { width:44px; height:44px; flex-shrink:0; border:1px solid #dfdfd1; border-radius:50%; color:var(--ink); background:#eaf6f5; font:27px/1 Arial,sans-serif; }
  .nav-panel.is-open .site-nav { display:block; flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 18px 8px; }
  .nav-panel .nav-group { width:100%; min-width:0; }
  .nav-panel .nav-group > a { display:flex; align-items:center; gap:13px; padding:10px 8px; min-height:58px; font-size:16px; border-radius:13px; }
  .menu-number { display:flex; align-items:center; justify-content:center; width:34px; height:34px; flex-shrink:0; border-radius:12px 12px 12px 4px; color:var(--ink); background:#e4f3f2; font:12px/1 Arial,sans-serif; }
  .nav-group:nth-child(3n+2) .menu-number { background:#fce6e9; color:var(--brand-pink-ink); }
  .nav-group:nth-child(3n) .menu-number { background:#fff0bf; color:#8c7339; }
  .menu-arrow { display:block; margin-left:auto; font-size:17px; color:var(--ink); }
  .nav-panel .nav-group > a:hover,.nav-panel .nav-group > a:focus-visible { background:#e8f5f4; }
  .nav-panel .nav-children { display:block; position:static; padding:0 8px 8px 56px; border:0; border-radius:0; box-shadow:none; background:transparent; }
  .nav-panel .nav-children a { padding:8px 4px; min-height:44px; font-size:14px; white-space:normal; }
  .nav-panel.is-open .mobile-menu-footer { display:block; padding:12px 22px 20px; background:#f5f1e6; flex-shrink:0; border-top:1px solid #e8e3d3; }
  .menu-reading-note { display:flex; align-items:center; justify-content:space-between; gap:14px; }
  .menu-reading-note p { font-size:15px; line-height:1.7; color:var(--text); }
  .menu-reading-note img { width:60px; height:80px; object-fit:contain; }
  .menu-campus-link { display:flex; align-items:center; justify-content:space-between; min-height:46px; margin-top:6px; border-radius:12px; padding:9px 14px; color:#fffdf6; background:var(--brand-action); font-size:14px; }
  .quicknav { gap:6px; padding-block:9px; }
  .quicknav a { border-radius:12px 12px 12px 4px; background:#f0f3e6; min-height:44px; font-size:13px; }
  .quicknav a:nth-child(3n+2) { background:#fae9df; }
  .quicknav a:nth-child(3n) { background:#fff1ca; }
}
@keyframes menu-arrive { from { opacity:0; transform:translateX(15px); } to { opacity:1; transform:translateX(0); } }
@media(prefers-reduced-motion:reduce) { .nav-enhanced .nav-panel.is-open { animation:none; } }
