/* Responsive layout rules, after the shared block styling. */
@media(max-width:1024px){
 body:not(.home) main>.banner{height:520px!important;min-height:520px!important;max-height:none!important;overflow:hidden!important}
 body:not(.home) main>.banner:has(.buttons-2){height:620px!important;min-height:620px!important}
 body:not(.home) main>.banner .banner-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;transform:none!important;scale:1!important}
 body:not(.home) main>.banner .banner-image>.row{display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:24px;width:100%!important;max-width:none!important;height:100%!important;margin:0!important;padding:140px 32px 36px!important;inset:auto!important;transform:none!important}
 body:not(.home) main>.banner .banner.text{position:static!important;inset:auto!important;transform:none!important;translate:none!important;width:100%!important;max-width:100%!important;padding:0!important;margin:0!important}
 body:not(.home) main>.banner .banner.text h1,body:not(.home) main>.banner .banner.text h2{max-width:100%!important;overflow-wrap:break-word}
 body:not(.home) main>.banner .banner.buttons{position:static!important;inset:auto!important;transform:none!important;translate:none!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;padding:0!important;margin:0!important}
 body:not(.home) main>.banner .banner.buttons .eclipse-buttons{display:flex!important;flex-wrap:wrap;justify-content:flex-start!important;align-items:stretch!important;gap:12px!important;width:100%!important;margin:0!important}
 body:not(.home) main>.banner .banner.buttons .eclipse-buttons>a{flex:1 1 220px;max-width:360px;width:auto!important;margin:0!important}
 body:not(.home) main>.banner .banner.buttons .eclipse-button{display:flex!important;align-items:center;justify-content:center;min-height:52px!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:15px 20px!important;border-radius:0!important;text-align:center!important;white-space:normal!important}
 body:not(.home) main>.banner .banner.location{display:none!important}
 /* Inner grids should never retain source desktop widths on a tablet. */
 main .full-width-div,main .columns-div,main .form-div,main .accordions-div{max-width:100%;min-width:0}
}
@media(max-width:700px){
 body:not(.home) main>.banner .banner-image>.row{padding:128px 20px 28px!important;gap:24px}
 body:not(.home) main>.banner .banner.buttons .eclipse-buttons{flex-direction:column!important}
 body:not(.home) main>.banner .banner.buttons .eclipse-buttons>a{flex:0 0 auto!important;max-width:none!important;width:100%!important}
}
@media(max-width:1024px){
 body:not(.home) main>.banner .banner-image>.row{box-sizing:border-box!important}
 body:not(.home) main>.banner .banner.text,body:not(.home) main>.banner .banner.buttons{box-sizing:border-box!important;flex:0 0 auto!important}
}
/* Inner hero photographs are 12% taller; action gutters match on both edges. */
@media(min-width:1025px){
 body:not(.home) main>.banner.desktop-height-small{height:50.4vh!important;min-height:560px!important}
 body:not(.home) main>.banner.desktop-height-medium{height:70.56vh!important;min-height:560px!important}
 body:not(.home) main>.banner.desktop-height-large{height:95.2vh!important;min-height:560px!important}
 body:not(.home) main>.banner.desktop-height-full{height:112vh!important}
 body:not(.home) main>.banner .banner.buttons{top:auto!important;bottom:60px!important;right:60px!important;height:auto!important;transform:none!important}
 body:not(.home) main>.banner .banner.buttons :is(.eclipse-buttons,.eclipse-buttons>a,.eclipse-button){margin:0!important}
}
@media(max-width:1024px){
 body:not(.home) main>.banner{height:582.4px!important;min-height:582.4px!important}
 body:not(.home) main>.banner:has(.buttons-2){height:694.4px!important;min-height:694.4px!important}
 body:not(.home) main>.banner .banner-image>.row{padding-bottom:32px!important}
}
@media(max-width:700px){body:not(.home) main>.banner .banner-image>.row{padding-bottom:20px!important}}
/* Imported video heroes keep their text in flex-video rather than the photo row. */
body main>#banner[data-vimeo] .flex-video>.video-player{display:none!important}
body main>#banner[data-vimeo] .flex-video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;padding:0!important;margin:0!important;overflow:visible!important;z-index:3!important;box-sizing:border-box!important}
@media(max-width:1024px){
 body main>#banner[data-vimeo] .flex-video{display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:24px;padding:140px 32px 32px!important}
 body main>#banner[data-vimeo] .flex-video>.banner.text,body main>#banner[data-vimeo] .flex-video>.banner.buttons{width:100%!important;max-width:100%!important}
}
@media(max-width:700px){body main>#banner[data-vimeo] .flex-video{padding:128px 20px 20px!important}}
/* Raise the entire copy layer above Vimeo, not just children inside its stack. */
body main>#banner[data-vimeo] .banner-image{position:absolute!important;inset:0!important;z-index:3!important;width:100%!important;height:100%!important;background-color:transparent!important}
body main>#banner[data-vimeo].bm-video-playing .banner-image{background-image:none!important}
body main>#banner[data-vimeo].bm-video-playing .banner-image:before{opacity:0!important}
