:root{--site-page-background:#fafaf9;--site-nav-font:"IBM Plex Sans",Arial,sans-serif}
html,body{background:var(--site-page-background)}
:root{--site-nav-background:var(--site-page-background);--site-nav-menu-background:var(--site-page-background);--site-nav-text:#12273f;--site-nav-accent:#2f71b8;--site-nav-border:#8795a0;--site-nav-hover:#17191b;--site-nav-blur:none}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  :root{--site-nav-background:rgba(250,250,249,.70);--site-nav-menu-background:rgba(250,250,249,.92);--site-nav-blur:blur(20px) saturate(115%)}
}
@media(prefers-reduced-transparency:reduce){
  :root{--site-nav-background:var(--site-page-background);--site-nav-menu-background:var(--site-page-background);--site-nav-blur:none}
}
/* Header tokens stay scoped so the white page and pale chapter rail keep their colours. */
.site-header{position:fixed;inset:0 0 auto;z-index:60;box-sizing:border-box;height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 4.4%;border:0;font:400 14px/1.4 var(--site-nav-font);-webkit-font-smoothing:antialiased;--site-ink:var(--site-nav-text);--site-accent:var(--site-nav-accent);background:var(--site-nav-background);color:var(--site-nav-text);-webkit-backdrop-filter:var(--site-nav-blur);backdrop-filter:var(--site-nav-blur)}
.site-header .brand,.site-header .site-link,.site-header .workbench,.site-header .nav-toggle{color:var(--site-nav-text)}
.site-header .brand span{border-left:1px solid #d8dedc}
.site-header .workbench{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 17px;border:1px solid var(--site-nav-border);font:400 14px/1.4 var(--site-nav-font);white-space:nowrap;transition:background 180ms ease,color 180ms ease,border-color 180ms ease}
.site-header .workbench:hover,.site-header .workbench:focus-visible{background:var(--site-nav-hover);border-color:var(--site-nav-hover);color:#fff}
.site-header .site-link{transition:opacity 200ms ease}
.site-header .site-link.nav-muted{opacity:.65}
.site-header a:focus-visible,.site-header button:focus-visible,.method-page .site-header a:focus-visible,.method-page .site-header button:focus-visible{outline:2px solid var(--site-nav-accent);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.site-header .site-link,.site-header .workbench{transition:none}}
/* One header component for Home, About and all Method pages. */
.site-header a{text-decoration:none}
.site-header .brand{gap:15px}
.site-header .brand img{display:block;object-fit:contain;width:28px;height:30px}
.site-header .brand span{font:600 13px/1.4 var(--site-nav-font);letter-spacing:.22em;padding-left:15px}
.site-header .nav-toggle{border:0;background:transparent;font:inherit;cursor:pointer}
@media(min-width:1700px){.site-header{padding-inline:8%}}
@media(max-height:700px) and (min-width:761px){.site-header{height:72px}}

.site-header nav { position:relative;display:flex;align-items:center;font:400 14px/1.4 var(--site-nav-font);gap: clamp(18px, 2.6vw, 38px); }
.site-link { display: inline-flex; align-items: center; min-height: 44px; position: relative; }


.site-brands { display: flex; align-items: center; gap: 26px; flex: none; }
.university-brand, .site-header .brand { display: inline-flex; align-items: center; min-height: 44px; }
.university-brand img { display: block; width: 132px; height: auto; }
.nav-toggle { display: none; }
@media (max-width: 760px) {
  .site-header { height: auto; min-height: 68px; flex-wrap: wrap; padding-inline: 22px; }
  .site-brands { gap: 16px; }
  .university-brand img { width: 112px; }
  .site-header .brand { gap: 8px; }
  .site-header .brand img { width:23px;height:25px; }
  .site-header .brand span { font-size: 10px; letter-spacing: .12em; padding-left: 8px; }
  .site-header nav { flex-basis: 100%; justify-content: space-between;gap:12px;flex-wrap:wrap; padding-bottom: 12px; font-size: 15px; }
  .site-header .workbench { min-height: 44px; padding: 10px 16px; font-size: 15px; }
  .site-header.nav-enhanced { height: 68px; flex-wrap: nowrap; }
  .nav-enhanced .nav-toggle { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; margin-right: -10px; }
  .nav-toggle span { position: relative; display: block; width: 22px; height: 14px; }
  .nav-toggle span::before, .nav-toggle span::after { content: ""; position: absolute; left: 0; width: 22px; height: 1px; background: currentColor; }
  .nav-toggle span::before { top: 3px; }
  .nav-toggle span::after { bottom: 3px; }
  .nav-toggle[aria-expanded="true"] span::before { top: 6px; transform: rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span::after { bottom: 7px; transform: rotate(-45deg); }
  .nav-enhanced nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 8px 22px 20px; background: var(--site-nav-menu-background); border-bottom: 0; }
  .nav-enhanced.nav-open nav { display: flex; }
}
@media (max-width: 360px) {
  .site-header { padding-inline: 16px; }
  .site-brands { gap: 12px; }
  .university-brand img { width: 96px; }
  .site-header .brand { gap: 6px; }
  .site-header .brand span { padding-left: 6px; font-size: 9px; }
  .nav-enhanced nav { padding-inline: 16px; }
}

/* University credit at the end of the landing page. */
.landing-footer { align-items: center; gap: 24px; }
.footer-university { display: inline-flex; align-items: center; min-height: 44px; flex: none; }
.footer-university img { display: block; width: 132px; height: auto; }
@media (max-width: 760px) { .footer-university img { width: 112px; } }

/* Contact left; the university block is anchored to the right edge. */
.contact-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px 48px; padding-block: 28px 24px; }
.footer-contact-main h2 { margin: 0 0 6px; color: var(--ink); font: 400 28px/1.15 var(--serif); }
.footer-contact-main a { display: flex; align-items: center; width: fit-content; min-height: 30px; color: var(--teal); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.footer-contact-main a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-campus { display: grid; grid-column: 2; grid-row: 1 / span 2; justify-self: end; justify-items: end; gap: 8px; text-align: right; }
.footer-address { font-size: 13px; font-style: normal; line-height: 1.7; }
.footer-copyright { grid-column: 1; grid-row: 2; font-size: 10px; }
@media (max-width: 760px) {
  .contact-footer { gap: 10px 28px; padding: 24px 22px; }
}
@media (max-width: 560px) {
  .contact-footer { grid-template-columns: minmax(0, 1fr); row-gap: 22px; }
  .footer-campus { grid-column: 1; grid-row: 2; }
  .footer-copyright { grid-column: 1; grid-row: 3; }
}
