/* Final navigation rules shared by all public pages. */
.nav-trigger{cursor:pointer;font:inherit;font-weight:700}
.nav-trigger .nav-caret{transition:transform .2s ease}
.nav-trigger[aria-expanded="true"] .nav-caret{transform:rotate(180deg)}
.menu-button{cursor:pointer;flex-shrink:0;position:relative}
.menu-button[aria-expanded="true"]{background:var(--navy);color:#fff}
.menu-button[aria-expanded="true"] svg{visibility:hidden}
.menu-button[aria-expanded="true"]::after{content:'×';position:absolute;font-size:30px;line-height:1}
@media(min-width:1025px){
  .nav-shell{visibility:visible;opacity:1;transform:none}
  .mega-nav{justify-content:space-between;gap:0}
  .mega-panel{max-height:calc(100dvh - 190px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:1024px){
  body.menu-open{overflow:hidden;touch-action:auto}
  .site-header{backdrop-filter:none;transform:none;overflow:visible}
  .brand-row{gap:12px}
  .brand{min-width:0;flex:1}
  .brand-copy{min-width:0}
  .header-actions{flex-shrink:0}
  .menu-button{display:grid;width:46px;height:46px}
  .nav-shell{position:fixed;top:var(--nav-top,124px);bottom:0;left:0;right:0;z-index:110;display:none;transform:none;background:#f6f8fc;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .nav-shell.open{display:block;visibility:visible;opacity:1;transform:none}
  .nav-shell>.container{width:min(calc(100% - 28px),760px);padding:18px 0 max(32px,env(safe-area-inset-bottom))}
  .nav-shell .mega-nav{display:block!important}
  .nav-shell .nav-trigger{min-height:54px;width:100%;padding:15px 18px;font-size:16px;border:1px solid #dce2ed;border-radius:12px;text-align:left;margin:0 0 8px}
  .nav-shell .nav-trigger[aria-expanded="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
  .nav-shell .mega-panel{position:static;display:none;max-height:none;overflow:visible;transform:none;padding:10px 0 20px;grid-template-columns:1fr;visibility:hidden;pointer-events:none}
  .nav-shell .mega-panel.open{display:grid;visibility:visible;pointer-events:auto}
  .nav-shell a{white-space:normal;overflow-wrap:anywhere}
  .nav-shell .mega-panel a{min-height:48px}
  .nav-shell .mega-panel a strong{font-size:15px;line-height:1.4}
  .nav-shell .mega-panel a small{font-size:13px;line-height:1.5}
  .nav-shell .mega-links,.nav-shell .faculty-menu-grid,.nav-shell .directorates-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .nav-shell .primary-nav a::after{content:none}
}
@media(max-width:540px){
  .brand-row{height:auto;min-height:84px;padding-block:10px}
  .brand-copy strong{font-size:16px;line-height:1.2}
  .brand-copy small{font-size:9px;line-height:1.4;letter-spacing:0}
  .brand-logo{width:48px;height:56px}
  .header-actions{gap:5px}
  .header-actions .icon-button{width:40px;height:44px}
  .nav-shell .mega-links,.nav-shell .faculty-menu-grid,.nav-shell .directorates-menu-grid,.nav-shell .academic-menu-tools{grid-template-columns:1fr}
  .nav-shell .academic-menu-head,.nav-shell .directorates-menu-head,.nav-shell .campus-services-head{flex-direction:column;align-items:stretch;gap:12px}
}
@media(prefers-reduced-motion:reduce){.nav-trigger .nav-caret,.nav-shell,.mega-panel{transition:none}}

/* Keep the crest visible at every breakpoint, including small mobile headers. */
.site-header .brand-logo-wrap{display:block;flex:0 0 72px;width:72px;height:72px;overflow:visible}
.site-header .brand-logo{display:block;width:100%;height:100%;max-width:none;object-fit:contain;opacity:1;visibility:visible}
@media(max-width:767px){
 .site-header .brand-logo-wrap{flex-basis:54px;width:54px;height:54px}
 .site-header .brand-logo{animation:none;transform:none;filter:none;will-change:auto}
 .site-header .brand{gap:9px}
 .site-header .brand-copy strong{overflow-wrap:normal;word-break:normal}
}
@media(max-width:360px){
 .site-header .brand-logo-wrap{flex-basis:46px;width:46px;height:46px}
 .site-header .brand-copy strong{font-size:14px}
}

.academic-menu-tools>.postgraduate-menu-link{grid-column:1 / -1;background:#f3f6fc;border-left:3px solid var(--gold)}

/* Staff webmail stays reachable in the top menu at every screen size. */
.utility-bar .utility-links>a.staff-webmail-link{display:inline-flex;align-items:center;gap:6px;color:#fff;min-height:32px;padding:4px 6px}
.utility-links>a.staff-webmail-link:focus-visible{outline:2px solid #f3b451;outline-offset:3px;border-radius:4px}
@media(max-width:760px){
 .utility-bar{display:block}
 .utility-bar .utility-inner{display:flex;justify-content:flex-end;min-height:36px;padding-block:2px}
 .utility-bar .utility-context,.utility-bar .utility-alert{display:none}
 .utility-bar .utility-links>a:not(.staff-webmail-link){display:none}
 .utility-bar .utility-links>a.staff-webmail-link{display:inline-flex;font-size:12px}
}
