/* Header-anchored catalogue. Dialog opening and closing remain in concept.js. */
.header-top .menu-button { display:flex; min-height:44px; }
.site-menu-open { overflow:hidden; scrollbar-gutter:stable; }
dialog.site-menu { position:fixed; inset:var(--menu-header-bottom,100px) 0 auto; width:100%; max-width:none; height:auto; max-height:calc(100dvh - var(--menu-header-bottom,100px)); margin:0; padding:0; border:0; border-radius:0; background:#fff; color:var(--ink,#001329); box-shadow:0 8px 16px #00132918; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#91a9cb #fff; }
.site-menu::backdrop { background:transparent; }
.site-menu-inner { position:relative; width:min(1200px,calc(100% - 48px)); min-height:530px; margin:0 auto; padding:36px 0 20px; }
.menu-accessible-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.site-menu-close { position:absolute; z-index:1; top:4px; right:-8px; display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--blue,#0049e8); cursor:pointer; }
.site-menu-close:hover { background:#e9f3ff; }
.site-menu-layout { display:grid; grid-template-columns:190px minmax(0,1fr); gap:40px; min-height:375px; }
.menu-sidebar { padding:0; }
.menu-sections { display:flex; flex-direction:column; align-items:stretch; gap:0; }
.menu-sections button { width:100%; min-height:36px; padding:7px 0; border:0; background:transparent; color:#536074; font:400 16px/1.35 Roboto,sans-serif; text-align:left; cursor:pointer; }
.menu-sections button[aria-selected="true"],.menu-sections button:hover { color:var(--blue,#0049e8); }
.menu-content { min-width:0; }
.menu-panel[hidden] { display:none; }
.menu-accordion { display:none; }
.site-menu .smm-mega__title { display:inline-block; margin:0 0 16px; color:var(--blue,#0049e8); font:600 22px/1.35 Roboto,sans-serif; text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; }
.site-menu .smm-mega__columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.site-menu .smm-mega__group { margin:0 0 16px; }
.site-menu .smm-mega__link { display:block; width:fit-content; max-width:100%; padding:5px 0; color:var(--ink,#001329); font:400 16px/1.45 Roboto,sans-serif; overflow-wrap:anywhere; }
.site-menu .smm-mega__link--strong { padding:3px 0 2px; font-size:18px; font-weight:700; line-height:1.4; }
.site-menu .smm-mega__top-links { display:flex; flex-wrap:wrap; gap:8px 24px; margin:0 0 18px; }
.site-menu .smm-mega--tutors .smm-mega__columns,.site-menu .smm-mega--more .smm-mega__columns { grid-template-columns:minmax(0,1fr); }
.site-menu .smm-mega--tutors .smm-mega__group,.site-menu .smm-mega--more .smm-mega__group { columns:2; column-gap:32px; }
.site-menu .smm-mega--tutors .smm-mega__link,.site-menu .smm-mega--more .smm-mega__link { break-inside:avoid; }
.site-menu a:hover { color:var(--blue,#0049e8); text-decoration:underline; text-underline-offset:4px; }
.site-menu :is(a,button):focus-visible { outline:2px solid var(--blue,#0049e8); outline-offset:3px; }
.site-menu ::selection { color:#fff; background:var(--blue,#0049e8); }
.site-menu-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:28px 0 0 230px; padding-top:16px; border-top:1px solid #e5eaf1; }
.menu-utilities { display:flex; flex-wrap:wrap; gap:12px 24px; }
.menu-utilities a,.menu-program-entry { display:inline-flex; align-items:center; gap:12px; min-height:40px; color:var(--blue,#0049e8); font:500 14px/1.4 Roboto,sans-serif; }
.menu-program-entry { padding:0; border:0; background:transparent; cursor:pointer; }
.menu-program-entry:hover { text-decoration:underline; text-underline-offset:4px; }
.menu-panel-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:24px; }
.site-menu .menu-panel-heading h3 { margin:0; font:600 22px/1.35 Roboto,sans-serif; }
.menu-two-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.site-menu .menu-detail-group h4 { margin:0 0 8px; font:700 18px/1.4 Roboto,sans-serif; }
.site-menu .menu-detail-group .menu-subheading { margin-top:24px; }
.menu-detail-group>a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:6px 0; color:var(--ink,#001329); }
.menu-detail-group strong { display:block; font-size:16px; font-weight:400; }
.menu-detail-group small { display:block; margin-top:2px; color:#536074; font-size:13px; }
@media (min-width:701px) and (max-width:1000px) {
  .site-menu-layout { grid-template-columns:170px minmax(0,1fr); gap:24px; }
  .site-menu .smm-mega__columns { gap:20px; }
  .site-menu .smm-mega__link { font-size:14px; }
  .site-menu .smm-mega__link--strong { font-size:16px; }
  .site-menu-footer { margin-left:194px; flex-wrap:wrap; gap:8px; }
}
@media (max-width:700px) {
  dialog.site-menu { height:calc(100dvh - var(--menu-header-bottom,100px)); box-shadow:none; }
  .site-menu-inner { width:100%; min-height:100%; padding:8px 0 24px; }
  .site-menu-close { top:8px; right:12px; }
  .site-menu-layout { display:block; min-height:0; }
  .menu-sidebar { display:none; }
  .menu-accordion { display:flex; align-items:center; gap:20px; width:100%; min-height:40px; padding:8px 24px 8px 16px; border:0; background:transparent; color:var(--ink,#001329); text-align:left; font:400 16px/1.4 Roboto,sans-serif; cursor:pointer; }
  .menu-section:first-child .menu-accordion { padding-right:56px; }
  .menu-accordion svg { flex-shrink:0; }
  .menu-accordion[aria-expanded="true"] { color:var(--blue,#0049e8); }
  .menu-accordion[aria-expanded="true"] svg { transform:rotate(180deg); }
  .menu-panel { padding:12px 24px 20px 52px; }
  .site-menu .smm-mega__title { margin-bottom:16px; font-size:18px; text-underline-offset:4px; }
  .site-menu .smm-mega__columns { grid-template-columns:minmax(0,1fr); gap:0; }
  .site-menu .smm-mega__link { min-height:40px; padding:9px 0; font-size:15px; line-height:1.45; }
  .site-menu .smm-mega__link--strong { min-height:0; font-size:16px; }
  .site-menu .smm-mega--tutors .smm-mega__group,.site-menu .smm-mega--more .smm-mega__group { columns:1; }
  .site-menu-footer { display:block; margin:26px 24px 0 52px; padding-top:16px; }
  .menu-utilities { display:flex; flex-direction:column; gap:0; }
  .menu-program-entry { margin-top:8px; }
  .menu-two-columns { grid-template-columns:minmax(0,1fr); gap:24px; }
  .site-menu .menu-panel-heading h3 { font-size:18px; }
  .site-menu .menu-panel-heading .button { min-height:44px; padding:10px 16px; font-size:14px; }
}
