/* R12.3 — mobile layout, complete school emblems and a compact TINY launcher.
   No changes to Prompt/Montserrat families or the font-delivery pipeline. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#app,#main,.directory-results,.atlas-story,.atlas-maparea{min-width:0}
.schoolcard .cardloc{align-items:flex-start}
.schoolcard .cardloc>span{display:block;min-width:0;flex:1;white-space:normal}
.schoolcard .cardloc>.icon{flex:0 0 auto;margin-top:2px}
/* An intrinsic-ratio image in an auto grid row can outgrow a percentage height.
   Anchor the emblem to a definite inset box instead of resizing its source. */
.schoolcard .campus-emblem{--crest-inset:6px;display:block;overflow:hidden;isolation:isolate;box-sizing:border-box;padding:0}
.schoolcard .campus-emblem>img.crest-image{
 position:absolute;inset:var(--crest-inset);display:block;
 width:calc(100% - 2 * var(--crest-inset));height:calc(100% - 2 * var(--crest-inset));
 min-width:0;min-height:0;max-width:none;max-height:none;
 object-fit:contain;object-position:center;aspect-ratio:auto;margin:0;padding:0;border:0;transform:none
}
.schoolcard .campus-emblem>.crest-placeholder{position:absolute;inset:6px;width:auto;height:auto;min-width:0;min-height:0}
.schoolcard .school-titles,.schoolcard .cardbody{min-width:0}
.schoolcard .school-subtitle{overflow-wrap:break-word;word-break:normal}
/* Map first, with controls immediately below it, on both static and rendered pages. */
.atlas-shell{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.38fr);align-items:start}
.atlas-shell>.atlas-story,.atlas-shell>.atlas-maparea{min-width:0;max-width:100%}
.atlas-maparea{padding:0}
.atlas-map-bottom{min-width:0;max-width:100%}
.atlas-map-bottom .atlas-controls{min-width:0}
.atlas-controls label{min-width:0}
.atlas-map-stage{position:relative;width:100%;min-width:0;overflow:hidden;isolation:isolate}
.atlas-map-stage>svg{display:block;width:100%;min-width:0}
.atlas-story .atlas-photo{width:100%;max-width:100%}
@media(max-width:1100px){
 .atlas-shell{grid-template-columns:minmax(0,1fr);gap:24px}
 .atlas-shell>.atlas-maparea{order:0}
 .atlas-shell>.atlas-story{order:1}
 .atlas-map-bottom{grid-template-columns:minmax(0,1fr);gap:12px}
 .atlas-map-bottom .atlas-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .atlas-map-stage,.atlas-map-stage>svg{height:620px;min-height:0;max-height:none}
}
@media(min-width:641px) and (max-width:900px){
 #school-cards.cards,.related-schools .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 #school-cards.cards.list{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
 #tiny-root,#tiny-root[data-side=left]{right:max(12px,env(safe-area-inset-right))!important;bottom:max(12px,env(safe-area-inset-bottom))!important;left:auto!important;max-width:calc(100vw - 24px)}
 #tiny-root .tiny-launcher{width:56px;min-width:56px;max-width:56px;height:56px;min-height:56px;border-radius:50%;padding:6px;justify-content:center;gap:0;box-shadow:0 4px 18px #17344c30}
 #tiny-root .tiny-launcher .tiny-label{display:none}
 #tiny-root .tiny-launcher>span:first-child{display:flex;align-items:center;justify-content:center;width:42px;height:42px}
 #tiny-root .tiny-launcher .tiny-mini{width:40px;height:40px;flex-basis:40px;margin:0}
 #tiny-root .tiny-window{width:min(362px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:min(530px,calc(100svh - 108px));height:min(530px,calc(100dvh - 108px));bottom:66px;border-radius:18px}
 #tiny-root .tiny-entry input{font-size:16px;min-width:0}
 #tiny-root .tiny-close,#tiny-root .tiny-entry button{min-width:44px;min-height:44px}
 #tiny-root .tiny-disclaimer{font-size:10px;line-height:1.65}
 .footer-bottom{padding-bottom:84px!important}
 .atlas-map-bottom .atlas-controls{grid-template-columns:minmax(0,1fr)}
 .atlas-map-stage,.atlas-map-stage>svg{height:clamp(420px,134vw,580px);min-height:0;max-height:none}
 .atlas-map-bottom .atlas-metric-switch{width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}
 .atlas-map-bottom .atlas-metric-switch button{white-space:normal;min-height:44px;font-size:10px;line-height:1.55}
 .atlas-map-bottom .atlas-controls .select{font-size:16px}
 .back-to-top,.backtop{bottom:82px}
}
@media(max-width:640px){
 #school-cards.cards,#school-cards.cards.home-grid,#school-cards.cards.list,
 .related-schools .cards,.directory-full .cards{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;width:100%;min-width:0;max-width:100%;align-items:start}
 #school-cards.cards .schoolcard,.related-schools .schoolcard{display:flex;flex-direction:column;width:100%;min-width:0;max-width:100%;height:auto;align-self:start;transform:none}
 #school-cards .schoolcard .card-image,.related-schools .schoolcard .card-image{display:block;width:100%;height:auto;min-height:0;aspect-ratio:1.75;flex:0 0 auto}
 .schoolcard .campus-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;transform:none}
 #school-cards .schoolcard .campus-emblem,.related-schools .campus-emblem{width:62px;height:62px;left:13px;bottom:13px;--crest-inset:7px;border-radius:13px}
 #school-cards .schoolcard .campus-location,.related-schools .campus-location{left:88px;right:13px;bottom:15px;text-align:right;font-size:12px;line-height:1.55;white-space:normal;overflow-wrap:break-word}
 #school-cards .schoolcard .card-image>.pill,.related-schools .card-image>.pill{top:12px;right:12px;max-width:calc(100% - 24px);font-size:10px;padding:6px 10px;line-height:1.5}
 #school-cards .schoolcard .cardbody,.related-schools .schoolcard .cardbody{padding:18px;min-height:0;gap:0}
 #school-cards .schoolcard h3,.related-schools .schoolcard h3{font-size:17px;line-height:1.6;min-height:0;margin:0;word-break:normal;overflow-wrap:break-word}
 #school-cards .schoolcard .school-subtitle,.related-schools .schoolcard .school-subtitle{font-size:12.5px!important;line-height:1.7!important;min-height:0!important;margin:4px 0 13px!important;white-space:normal}
 #school-cards .schoolcard .cardloc,.related-schools .schoolcard .cardloc{display:flex;font-size:12px!important;line-height:1.65;margin:0 0 12px;gap:6px}
 .schoolcard .cardloc>span{display:block}
 #school-cards .schoolcard .carddesc,.related-schools .schoolcard .carddesc{font-size:13px!important;line-height:1.85!important;min-height:0;margin:0 0 16px;-webkit-line-clamp:3}
 #school-cards .schoolcard .card-meta,.related-schools .schoolcard .card-meta{font-size:10px;line-height:1.7;gap:8px;margin-top:0;padding-top:13px;white-space:normal}
 #school-cards .schoolcard .cardfoot,.related-schools .schoolcard .cardfoot{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
 #school-cards .schoolcard .cardfoot .textlink,.related-schools .cardfoot .textlink{font-size:13px!important;min-height:44px;line-height:1.65;gap:8px}
 .schoolcard .card-tools{display:flex;flex:none;gap:6px}
 .schoolcard .card-tools .iconbtn{width:40px;height:40px;min-width:40px;flex:none}
 .directory-full .filterbar,.directory-sidebar .filter-stack{grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
 .directory-full .filterbar>.searchbox,.directory-sidebar .filter-stack>.searchbox{grid-column:auto}
 .directory-full .searchbox input,.directory-sidebar .searchbox input{font-size:16px;min-width:0}
 .directory-full .select,.directory-sidebar .select{font-size:16px;max-width:100%;width:100%;min-width:0}
 .directory-full .chips,.directory-toolbar .chips{max-width:100%;flex-wrap:wrap}
 .schoolhero .profile-crest{overflow:hidden;isolation:isolate}
 .schoolhero .profile-crest>img.crest-image{display:block;max-width:100%;max-height:100%;object-fit:contain;transform:none}
 .footer-grid{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:760px){
 .media-editorial{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
 .media-editorial>*{min-width:0;max-width:100%}
 .media-editorial .gallery-primary{display:block;width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:1.6}
 .media-editorial .gallery-secondary{min-width:0;max-width:100%}
 .gallery-side{min-width:0;max-width:100%}
 .profiletabs{width:100%;max-width:100%}
 .profiletabs .wrap{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
 .profiletabs button{flex:none}
}
