/* Navigation hierarchy and footer placement; existing fonts and palette are retained. */
.site-header__inner { gap: 1.5rem; }
.site-navigation { gap: clamp(.875rem, 1.5vw, 1.5rem); }
.site-navigation > a, .areas-nav > summary { font-size: .8125rem; white-space: nowrap; }
.areas-panel > a:last-child { grid-column: 1 / -1; }

.site-footer { --footer-art-height: calc(100vw * 941 / 1672); min-height: 0; }
.site-footer .footer-art { inset: 0 0 auto; height: var(--footer-art-height); }
.site-footer .footer-art img { object-fit: contain; object-position: center top; }
.site-footer .footer-wash { background: linear-gradient(180deg, transparent 0, transparent calc(var(--footer-art-height) * .8), #f7f6f2 var(--footer-art-height)); }
.site-footer .footer-content { grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); min-height: 0; padding-top: calc(var(--footer-art-height) * .7); gap: 2rem 5rem; }
.site-footer .footer-navigation { grid-column: 2; grid-row: 1; }
.site-footer .footer-heading { grid-column: 1 / -1; grid-row: 2; align-self: end; margin-top: clamp(1.25rem,3vw,3rem); }
.site-footer .footer-disclaimer { grid-row: 3; }
.site-footer .footer-engineering { grid-row: 4; }
html[data-theme="dark"] .site-footer .footer-wash { background: linear-gradient(180deg, transparent 0, transparent calc(var(--footer-art-height) * .8), var(--page-dark) var(--footer-art-height)); }

.rop-ending h2 { max-width: 18ch; font-size: clamp(2.25rem,4vw,4rem); }
.rop-ending .rop-ending__grid { grid-template-columns: .8fr 1.2fr; }
@media (max-width: 1100px) {
  :root { --header-height: 4.7rem; }
  .site-header { padding: 0; }
  .site-header__inner { grid-template-columns: minmax(0,1fr) auto; width: min(100% - 2rem,92rem); gap: 1rem; }
  .site-brand { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .menu-toggle { display: inline-flex; gap: .6rem; }
  .menu-toggle__lines { position: relative; width: 1rem; height: 1px; background: currentColor; }
  .menu-toggle__lines::before,.menu-toggle__lines::after { position: absolute; right: 0; left: 0; height: 1px; background: currentColor; content: ""; }
  .menu-toggle__lines::before { top: -.3rem; }
  .menu-toggle__lines::after { top: .3rem; }
  .site-navigation { position: absolute; top: calc(100% + 1px); right: -1rem; left: -1rem; display: none; align-items: stretch; max-height: calc(100dvh - var(--header-height)); padding: 1rem 1.25rem 1.5rem; overflow-y: auto; overscroll-behavior: contain; border-bottom: 1px solid var(--page-line); background: var(--page-bg); box-shadow: 0 18px 35px rgb(24 24 23 / .1); gap: .25rem; }
  .site-navigation.is-open { display: grid; grid-template-columns: minmax(0,1fr); }
  .site-navigation > a { justify-content: center; min-height: 48px; padding-block: .5rem; border-bottom: 1px solid var(--page-line); font-size: .875rem; text-align: center; white-space: normal; overflow-wrap: anywhere; }
  .areas-nav > summary { justify-content: center; min-height: 52px; font-size: .875rem; }
  .areas-panel { position: static; width: 100%; grid-template-columns: minmax(0,1fr); padding: .5rem; gap: 0; box-shadow: none; background: var(--page-surface-soft); }
  .site-navigation .areas-panel :is(a,strong,span) { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .site-navigation .areas-panel a { min-height: 80px; border: 0; text-align: left; }
  .site-navigation .areas-panel a:is(:hover,:focus-visible,[aria-current="page"]) { background: var(--page-surface); }
}
@media (max-width: 820px) {
  .site-footer .footer-content { grid-template-columns: minmax(0,1fr); padding-top: calc(var(--footer-art-height) + 1.5rem); gap: 2rem; }
  .site-footer .footer-navigation { grid-column: 1; }
  .site-footer .footer-heading { margin-top: 0; }
  .rop-hero__grid, .rop-ending .rop-ending__grid { grid-template-columns: minmax(0,1fr); }
  .rop-page :where(div,article,li,figure,nav,ol,ul,h1,h2,h3,p) { min-width: 0; }
}

/* Professor hero: retain the photograph and composition, with clean rectangular edges. */
body[data-page-type="professor"] .portrait-brush__photo {
  clip-path: none;
  -webkit-mask: none;
  mask: none;
  border-radius: 0;
}
body[data-page-type="professor"] .portrait-brush::after,
body[data-page-type="professor"] .portrait-brush__mark { display: none; }

@media (min-width:1101px) and (max-width:1240px) {
  .site-navigation { gap: .75rem; }
  .site-navigation > a, .areas-nav > summary { font-size: .75rem; }
}
