/* Reference composition: building cutouts and text share one continuous banner. */
.branch-story{display:block;position:relative;height:500px;min-height:0;overflow:hidden;isolation:isolate}
.branch-story .story-photo{position:absolute;inset:0 auto 0 0;width:53%;height:100%;background:transparent;overflow:hidden}
.branch-story .story-photo>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:left bottom;transform:none;transition:opacity 1.1s ease}
.main-story .story-photo:after{display:none}
.main-story .story-content{position:absolute;left:51%;right:6%;top:67px;bottom:auto;padding:0;display:block;text-align:left}
.story-label{font-size:15px;font-weight:700;line-height:1.5;margin:0 0 61px;text-align:center}
.story-title-row{position:relative}
.branch-story .story-headings{height:188px;margin:0 0 24px}
.branch-story .story-headings h2{font-size:clamp(58px,6.4vw,92px);line-height:1.02;letter-spacing:-.065em;white-space:nowrap}
.story-reserve{position:absolute;right:0;top:12px;min-width:120px;min-height:29px;padding:5px 20px;font-size:11px;line-height:1.4;gap:0}
.story-description p{font-size:11px;line-height:1.6;font-weight:600}
.story-description address{font-size:10px;line-height:1.6;font-style:normal;font-weight:600}
.entrance-story .story-content{position:absolute;left:6%;right:51%;top:67px;bottom:auto;padding:0;display:block;text-align:right}
.entrance-story .story-label{text-align:right}
.entrance-story .story-reserve{left:0;right:auto}
.entrance-story .story-photo{left:auto;right:-1px;width:50%;background:#fff}
.entrance-story .story-photo>img:first-child{width:calc(100% + 2px);height:calc(100% + 2px);inset:-1px;object-position:center 37%;transform:none}
.branch-story .story-photo>img.alternate{object-position:center;opacity:0}
.branch-story.is-alt .story-photo{inset:0;width:100%;height:100%}
.branch-story.is-alt .story-photo>img:first-child{opacity:0}
.branch-story.is-alt .story-photo>img.alternate{opacity:1;transform:none}
.branch-story.is-alt .story-content{left:6%;right:6%;top:auto;bottom:40px;padding:0}
.branch-story.is-alt .story-label{text-align:inherit;margin-bottom:24px}
.branch-story.is-alt .story-headings{height:115px;margin-bottom:24px}
.branch-story.is-alt .story-headings h2{font-size:clamp(60px,7.5vw,108px);line-height:1.1}
.main-story.is-alt .story-photo:after{display:block;background:linear-gradient(180deg,#0028f914,#0028f9a8 60%,#0028f9 100%)}
.main-story.is-alt .story-reserve{left:min(56vw,650px);right:auto;top:26px}
.entrance-story.is-alt .story-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#ffffff0a,#ffffffa8 60%,#fff)}
.entrance-story.is-alt .story-reserve{left:0;top:28px}
/* Center the branch consultation panels and cover image edges completely. */
.campus-card{clip-path:inset(0 round 24px);background:var(--blue)}
.campus-photo{background:var(--blue)}
.campus-card:nth-child(2) .campus-photo{background:#fff}
.campus-photo>img{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);max-width:none;object-fit:cover;object-position:center bottom}
.campus-card:nth-child(2) .campus-photo>img{object-position:center 38%}
.campus-content{text-align:center;left:25px;right:25px;bottom:35px}
.campus-content h3{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.campus-content h3>span{margin-left:0}
.campus-content .location-actions{justify-content:center}
.campus-content>p{max-width:100%;margin:16px auto 0}
/* A central brand anchor balances the final section on every page. */
.site-footer{padding:60px max(40px,calc((100vw - 1200px)/2)) 24px}
.footer-main{display:flex;flex-direction:column;align-items:center;text-align:center;gap:28px}
.footer-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.footer-brand img{width:62px;height:66px}
.footer-brand>span{font-size:16px;line-height:1.6}
.footer-main .social-links{justify-content:center;flex-wrap:wrap;gap:30px}
.footer-main .social-links a{font-size:11px;opacity:.9}
.footer-locations{display:grid;grid-template-columns:1fr 1fr;gap:0;text-align:center;margin-top:42px;padding:33px 0;border-top:1px solid #ffffff3b;border-bottom:1px solid #ffffff3b}
.footer-locations>section{padding:5px 25px}
.footer-locations>section+section{border-left:1px solid #ffffff3b}
.footer-locations h3{font-size:16px;font-weight:700;margin:0}
.footer-locations p{font-size:12px;line-height:1.8;margin:13px 0 15px;opacity:.8}
.footer-map-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:11px!important}
.footer-map-link svg{width:14px;height:14px}
.footer-bottom{border:0;margin-top:0;padding-top:23px;align-items:center;font-size:9px}
/* Artwork details: FLY above, title and linked teacher credit below. */
#art-lightbox{padding:18px 28px 24px;background:#fff}
.lightbox-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;flex-shrink:0;margin-bottom:8px}
.lightbox-brand{display:flex;align-items:center;justify-content:center}
.lightbox-brand img{width:32px;height:34px;object-fit:contain}
.lightbox-close{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:9px 2px 9px 15px;color:var(--blue)}
.lightbox-image{margin:10px 0 25px}
.lightbox-bottom{align-items:center;position:relative;min-height:70px}
.lightbox-caption{min-width:0;flex:1;text-align:center;padding:0 110px}
.lightbox-caption h2{font-size:26px;line-height:1.35;max-width:none}
#art-meta{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--blue);opacity:1;margin-top:10px;line-height:1.6}
#art-kind{opacity:.65}.art-meta-divider{opacity:.4}
#art-author{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;border-bottom:1px solid #0028f935;padding:1px 0}
#art-author svg{width:15px;height:15px}
#art-author:hover{color:var(--orange);border-bottom-color:currentColor}
.lightbox-controls{position:absolute;right:0;top:50%;transform:translateY(-50%);gap:11px;font-size:10px}
.lightbox-controls button{width:32px;height:32px;font-size:18px}
#art-meta[hidden],#art-meta [hidden],.lightbox-controls[hidden]{display:none}
@media(min-width:1600px){.branch-story{height:530px}.main-story .story-content,.entrance-story .story-content{top:77px}.branch-story .story-headings{height:200px}.story-description p{font-size:13px}.story-description address{font-size:12px}}
@media(min-width:701px) and (max-width:1100px){
 .branch-story{height:390px}.main-story .story-content,.entrance-story .story-content{top:46px}
 .story-label{font-size:12px;margin-bottom:45px}.branch-story .story-headings{height:150px;margin-bottom:17px}
 .branch-story .story-headings h2{font-size:6.25vw}.story-reserve{font-size:9px;min-width:88px;min-height:24px;padding:5px 13px;top:8px}
 .story-description p{font-size:9px;line-height:1.55}.story-description address{font-size:8px}
 .branch-story.is-alt .story-headings{height:90px}.branch-story.is-alt .story-headings h2{font-size:7.3vw}
 .branch-story.is-alt .story-content{bottom:32px}.branch-story.is-alt .story-label{margin-bottom:20px}
 .main-story.is-alt .story-reserve{top:19px;left:55vw}.entrance-story.is-alt .story-reserve{top:19px}
 .lightbox-caption{padding:0 98px}.lightbox-caption h2{font-size:22px}
}
@media(max-width:700px){
 .branch-story{display:block;height:650px}.branch-story .story-photo{top:auto;bottom:0;left:0;right:0;width:100%;height:55%;background:transparent}
 .branch-story .story-photo>img{object-fit:cover;object-position:center bottom}
 .main-story .story-content,.entrance-story .story-content{position:relative;top:0;left:0;right:0;width:100%;padding:34px 22px 0;text-align:center}
 .story-label,.entrance-story .story-label{text-align:center;font-size:12px;margin-bottom:25px}
 .branch-story .story-headings,.entrance-story .story-headings{height:116px;margin:0 0 16px}
 .branch-story .story-headings h2{font-size:clamp(43px,11.3vw,65px);line-height:1.04;white-space:normal}
 .story-reserve,.entrance-story .story-reserve{position:relative;inset:auto;top:auto;right:auto;left:auto;min-width:105px;min-height:29px;font-size:10px;padding:6px 20px;margin-bottom:17px}
 .story-description p{font-size:9px;line-height:1.65;max-width:340px;margin:auto}.story-description address{font-size:9px;margin-top:2px}
 .entrance-story .story-photo{height:53%;width:100%;right:0;background:#fff}
 .entrance-story .story-photo>img:first-child{object-position:center 37%}
 .branch-story.is-alt{height:530px}.branch-story.is-alt .story-photo{inset:0;width:100%;height:100%}
 .branch-story.is-alt .story-content{position:absolute;left:0;right:0;top:auto;bottom:28px;padding:0 22px}
 .branch-story.is-alt .story-label{text-align:center;margin-bottom:22px}
 .branch-story.is-alt .story-headings{height:auto;min-height:70px;margin-bottom:10px}
 .branch-story.is-alt .story-headings h2{font-size:clamp(38px,10.2vw,60px);line-height:1.1}
 .branch-story.is-alt .story-headings h2.current{position:relative}
 .branch-story.is-alt .story-headings h2:not(.current){position:absolute}
 .branch-story.is-alt .story-reserve,.main-story.is-alt .story-reserve,.entrance-story.is-alt .story-reserve{position:relative;left:auto;right:auto;top:auto;margin-bottom:16px}
 .campus-card{clip-path:inset(0 round 20px)}.campus-content{left:22px;right:22px;bottom:28px}.campus-content h3{gap:8px}
 .campus-content h3>span{font-size:15px}.campus-content>p{font-size:10px;line-height:1.7}.campus-content .location-actions{gap:22px;margin-top:20px}
 .site-footer{padding:40px 22px 22px}.footer-brand{gap:17px}.footer-brand img{width:47px;height:50px}.footer-brand>span{font-size:13px}
 .footer-main{gap:25px}.footer-main .social-links{gap:15px;flex-direction:column;align-items:center}.footer-main .social-links a{font-size:10px}
 .footer-locations{grid-template-columns:1fr;margin-top:30px;padding:25px 0;gap:25px}.footer-locations>section{padding:0 5px}.footer-locations>section+section{border-left:0;border-top:1px solid #ffffff25;padding-top:25px}
 .footer-locations h3{font-size:14px}.footer-locations p{font-size:11px;margin:10px 0 12px}.footer-map-link{font-size:10px!important}
 .footer-bottom{justify-content:center;text-align:center;gap:13px;font-size:8px;padding-top:22px;flex-wrap:wrap}.footer-bottom>.font-credit{font-size:8px!important}
 #art-lightbox{padding:12px 14px 18px}.lightbox-head{min-height:38px;margin-bottom:3px}.lightbox-brand img{width:27px;height:29px}.lightbox-close{font-size:10px}
 .lightbox-image{margin:8px 0 18px}.lightbox-bottom{display:flex;flex-direction:column;gap:16px;min-height:100px;align-items:center}
 .lightbox-caption{padding:0;width:100%;text-align:center}.lightbox-caption h2{font-size:20px;line-height:1.4;max-width:none}
 #art-meta{font-size:10px;gap:7px;margin-top:8px}#art-author{font-size:10px;gap:5px}#art-author svg{width:13px;height:13px}
 .lightbox-controls{position:relative;inset:auto;transform:none;gap:17px;font-size:10px}.lightbox-controls button{width:31px;height:31px}
}
@media(max-width:700px){.branch-story.is-alt{height:650px}}

/* White cutout background and reference-aligned consultation buttons. */
.entrance-story .story-photo.building{background:#fff}
.story-first-line{display:inline-block}
@media(min-width:701px){
 .main-story .story-reserve{left:calc(var(--story-first-width, 350px) + 16px);right:auto;top:12px}
 .entrance-story .story-reserve{right:calc(var(--story-first-width, 260px) + 16px);left:auto;top:12px}
 .main-story.is-alt .story-reserve{left:calc(var(--story-first-width, 650px) + 16px);right:auto;top:59px}
 .entrance-story.is-alt .story-reserve{right:calc(var(--story-first-width, 900px) + 16px);left:auto;top:59px}
}
/* Let the page show through the glass while keeping readable navigation. */
.nav-shell{background:linear-gradient(135deg,#ffffff45,#ffffff18 48%,#ffffff38);border-color:#ffffff75;box-shadow:inset 0 1px 0 #ffffff88,inset 0 -1px 0 #ffffff15,0 5px 22px #0028f90a;backdrop-filter:blur(20px) saturate(130%);-webkit-backdrop-filter:blur(20px) saturate(130%)}
.on-hero:not(.scrolled):not(.light-hero) .nav-shell{background:linear-gradient(135deg,#ffffff2b,#ffffff0d 48%,#ffffff24);border-color:#ffffff55;box-shadow:inset 0 1px 0 #ffffff66,0 5px 22px #0010640a}
.site-header.scrolled .nav-shell{background:linear-gradient(135deg,#ffffff75,#ffffff45 60%,#ffffff68);box-shadow:inset 0 1px 0 #ffffffaa,0 5px 22px #0028f90c}
/* Keep the research heading centered above the horizontal gallery. */
.research-section .section-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:26px;margin-bottom:42px}
.research-section .section-heading>div{width:100%}
.research-section .section-heading>.pill{margin-top:0}
@media(max-width:700px){.research-section .section-heading{gap:20px;margin-bottom:30px}.research-section .section-heading h2{font-size:clamp(25px,6.6vw,34px)}}

/* Mobile branch banners put every title over the photograph. */
@media(max-width:700px){
 .branch-story .story-photo,.entrance-story .story-photo{inset:0;width:100%;height:100%}
 .branch-story .story-photo>img:first-child{object-fit:cover;object-position:center bottom}
 .main-story .story-content,.entrance-story .story-content{position:absolute;inset:auto 0 28px;width:100%;padding:0 22px;text-align:center}
 .branch-story .story-label{margin-bottom:25px}
 .main-story .story-photo:after{display:block;background:linear-gradient(180deg,#0028f900 5%,#0028f920 30%,#0028f9c9 63%,#0028f9 100%)}
 .entrance-story .story-photo:after{content:'';display:block;position:absolute;inset:0;background:linear-gradient(180deg,#ffffff00 5%,#ffffff20 30%,#ffffffd9 65%,#fff 100%)}
 .branch-story.is-alt .story-label{margin-bottom:22px}
}

/* Leave clear space between cutouts and copy; classroom slides stay full bleed. */
@media(min-width:701px){
 .main-story:not(.is-alt) .story-photo{width:47%}
 .main-story:not(.is-alt) .story-photo>img:first-child{
  object-fit:cover;
  object-position:right bottom;
  /* Limit the left crop so the roof still reaches the top of the banner. */
  object-position:max(-105px,100%) bottom;
  transform:none;
 }
 .entrance-story:not(.is-alt) .story-photo{left:auto;right:-3vw;width:50%}
}
@media (701px <= width < 1040px), (1100px < width < 1396px){
 .main-story:not(.is-alt) .story-photo>img:first-child{
  -webkit-mask-image:linear-gradient(to right,#000 92%,transparent);
  mask-image:linear-gradient(to right,#000 92%,transparent);
 }
}
@media(max-width:700px){
 .main-story:not(.is-alt) .story-photo>img:first-child{object-position:right bottom}
 .entrance-story:not(.is-alt) .story-photo{left:3vw;right:-3vw;width:100%}
}
