/* Shared layout safeguards for narrow phones, tablets and desktop screens. */
img{max-width:100%}
.about>*,.school-grid>*,.terrero>*,.footer-grid>*,.honours-grid>*,.home-story>*,.hero-inner{min-width:0}
h1,h2,h3{overflow-wrap:break-word;text-wrap:balance}
.btn{max-width:100%;white-space:normal;text-align:center}
.schedule{display:grid;grid-template-columns:minmax(72px,.7fr) minmax(0,1.3fr);gap:16px}
.schedule strong{text-align:right;overflow-wrap:break-word}
.tabs{flex-wrap:wrap}
.footer-column a,.history-sources a{overflow-wrap:anywhere}
.home-story{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px}
.home-story .btn{margin:0}
nav a{white-space:nowrap}
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
@media(min-width:851px){
 .slider .hero-inner{padding-left:12%;padding-right:24px}
 .slider h1{font-size:clamp(32px,3.6vw,58px)}
 .slider .eyebrow{line-height:1.6}
}
@media(max-width:1100px){
 header{gap:16px;padding:12px 5%}
 .menu{display:block;flex-shrink:0;border:1px solid var(--line);background:transparent;color:var(--ink);padding:12px 14px;font-size:13px;min-height:44px}
 nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px 6%;flex-direction:column;gap:0;align-items:stretch;max-height:calc(100dvh - 100px);overflow-y:auto;border-bottom:1px solid var(--line)}
 nav.open{display:flex}
 nav a{display:block;padding:13px 0;font-size:14px;white-space:normal}
 nav .navcta{padding:14px 18px;text-align:center;margin-top:8px}
 .home-story{grid-template-columns:1fr 1fr}
 .home-story>div{grid-column:1/-1}
}
@media(max-width:850px){
 .school h2{font-size:clamp(31px,8.5vw,39px);line-height:1.12;letter-spacing:-1px}
 .page-title h1{font-size:clamp(36px,9vw,56px);letter-spacing:-1.5px;line-height:1.1}
 .honours article{padding:26px}
 .legacy{padding:24px}
 .contact .phone{font-size:clamp(23px,6.5vw,30px);white-space:normal}
 .location .number{font-size:clamp(32px,9vw,45px);letter-spacing:-1.5px}
 .home-story{display:grid!important;grid-template-columns:1fr;align-items:stretch}
 .home-story>div{grid-column:auto}
 .slider-controls button{min-width:40px;min-height:44px}
 dialog{padding:16px;max-width:94vw}
 dialog img{max-width:100%;max-height:72dvh}
}
@media(max-width:360px){
 header{gap:8px;padding-left:4%;padding-right:4%}
 .brand{gap:8px;font-size:10px;letter-spacing:.2px}
 .brand img{width:52px;height:52px}
 .menu{padding:10px;font-size:12px}
 .school-info{padding:18px}
 .schedule{grid-template-columns:minmax(65px,.65fr) minmax(0,1.35fr);gap:12px}
 .top{font-size:8px;letter-spacing:.5px}
 .footer-brand strong{font-size:13px}
}
