/* Mobile fit: keep words intact and constrain grid children, never hide overflow. */
@media(max-width:800px){
 .school *, .school *::before, .school *::after{box-sizing:border-box}
 .school :is(section,article,div,figure,a,blockquote,header,footer,details){min-width:0}
 .school img{max-width:100%;min-width:0}
 .school :is(h1,h2,h3,p,a,summary,figcaption){word-break:normal;overflow-wrap:normal;hyphens:none}
 .school .school-hero{grid-template-columns:minmax(0,1fr);min-height:0;gap:32px}
 .school .hero-photo-trio{width:100%;max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:160px 160px}
 .school .hero-photo-trio img{min-width:0;width:100%;max-width:100%;height:100%}
 .school .hero-photo-trio img:first-child{grid-row:span 2}
 .school .school-actions :is(.button,.text-link){max-width:100%;white-space:normal}
 .school .school-brand{white-space:normal;min-width:0}
 .school .school-brand img{flex-shrink:0}
 .school .school-header details{flex-shrink:0}
 .school .direction-choice,.school .choice-mosaic,.school .adults-with-photo,.school .museum-feature{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
 .school .school-section{padding:36px 20px}
 .school .school-hero h1{font-size:clamp(1.1rem,5.5vw,2rem);line-height:1.2;letter-spacing:-.035em}
 .school h1{font-size:clamp(1.25rem,6vw,2rem)}
 .school h2{font-size:clamp(1.2rem,5.8vw,1.75rem)}
 .school .school-hero .lead{font-size:1rem;line-height:1.6}
 .school .school-actions{align-items:stretch;flex-direction:column;gap:20px}
 .school .school-actions .button{width:100%;padding:16px 12px}
 .school .school-actions .text-link{align-self:flex-start;font-size:1rem}
 .school .work-grid,.school .step-grid{grid-template-columns:minmax(0,1fr)}
 .school .work-grid img{height:auto;max-height:none;object-fit:contain}
 .school .school-header{gap:12px;padding:16px}
 .school .school-brand{font-size:.8rem;gap:8px}
 .school .school-brand img{width:40px;height:40px}
 .school .school-footer{padding:36px 20px}
 .school .direction-jumps a{max-width:100%;font-size:.9rem}
 .school .direction-facts{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:1000px){
 .school .school-header{position:relative}
 .school .school-header details[open]{position:absolute;top:12px;left:16px;right:16px;z-index:50;width:auto;box-shadow:0 12px 30px #0002}
 .school .school-header details[open] summary{text-align:right}
}
@media(max-width:600px){
 .museum-passport-page .museum-passport-section-heading h2{font-size:clamp(1.2rem,5.5vw,1.8rem);word-break:normal;overflow-wrap:normal;hyphens:none}
 .school-faq-list summary{grid-template-columns:minmax(0,1fr) 28px;gap:8px}
 .school-faq-list summary>*{min-width:0}
}

@media(max-width:360px){
 .approach-hero h1{font-size:30px;hyphens:none;overflow-wrap:normal;word-break:normal}
 .legal-content h1{font-size:25px;hyphens:none;overflow-wrap:normal;word-break:normal}
 .school-hero-copy h1{font-size:38px;hyphens:none;overflow-wrap:normal;word-break:normal}
 .school-safety-copy h2{font-size:32px;hyphens:none;overflow-wrap:normal;word-break:normal}
}
@media(max-width:600px){.school-faq-list summary{box-sizing:border-box;padding-right:8px}}

/* 2026-09-13: direction photos use their landscape frame without dark letterboxing. */
.school .direction-grid .direction-photo{position:relative;aspect-ratio:3/2;width:100%;height:auto;flex-shrink:0}
.school .direction-grid .direction-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;background:transparent;transform:none}

/* Let CTA columns shrink before long text can widen the page. */
.museum-page .museum-next{box-sizing:border-box}
.museum-page .museum-next>div{min-width:0;max-width:100%}
.museum-page .museum-next-actions{min-width:0;max-width:100%}
.museum-page .museum-next-actions a{box-sizing:border-box;min-width:0;max-width:100%;white-space:normal;text-align:center}
@media(max-width:1000px){
 .museum-page .museum-next{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
 .museum-page .museum-next{gap:24px;padding:28px 20px}
 .museum-page .museum-next>div:first-child{container-type:inline-size}
 .museum-page .museum-next h2{font-size:clamp(22px,6vw,30px);line-height:1.2;letter-spacing:-.025em;white-space:normal;word-break:normal;overflow-wrap:anywhere}
 .museum-page .museum-next p{font-size:16px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
 .museum-page .museum-next .museum-kicker{font-size:11px;letter-spacing:.12em}
 .museum-page .museum-next-actions{flex-direction:column;align-items:stretch}
 .museum-page .museum-next-actions a{width:100%;padding:15px 12px;font-size:16px}
 @supports(font-size:1cqw){.museum-page .museum-next h2{font-size:clamp(22px,7.5cqw,30px)}}
}
