/* Full-image Fire Fighter-inspired banner, with the site's black base. */
.home-banner { position:relative; margin:0 auto; width:94%; max-width:1800px; background:var(--color-page); color:#fff; }
.banner-stage { position:relative; clip-path:polygon(0 0,100% 0,100% 88%,91% 96%,87% 91%,31% 100%,12% 91%,0 94%); }
.banner-slide { position:relative; isolation:isolate; min-height:660px; display:flex; align-items:center; overflow:hidden; background:#090909; color:#fff; }
.banner-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 45%; }
.banner-slide::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.57) 53%,rgba(0,0,0,.25)),linear-gradient(0deg,rgba(0,0,0,.55),transparent 65%); }
.banner-slide:first-child .banner-image { object-position:center 42%; }
.banner-crest .banner-image { object-fit:contain; object-position:90% center; padding:36px 0 70px; }
.banner-crest::before { background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.88) 38%,rgba(0,0,0,.1) 78%); }
.banner-copy { width:100%; padding:75px 5.5% 130px; max-width:none; }
.banner-copy .eyebrow { color:#fff; font-size:15px; letter-spacing:2px; margin:0 0 20px; }
.banner-copy h2 { font-size:clamp(2.2rem,3.65vw,3.8rem); line-height:1.12; margin:0 0 20px; max-width:980px; text-wrap:balance; }
.banner-copy > p:not(.eyebrow) { font-size:18px; line-height:1.65; max-width:560px; margin:0 0 24px; }
.banner-copy .button { color:#fff; background:#b00016; border:2px solid #b00016; text-transform:uppercase; letter-spacing:1.6px; font-size:14px; padding:14px 24px; }
.banner-copy .button:hover { color:#fff; background:#870010; border-color:#fff; }
.banner-controls { position:absolute; left:6%; right:6%; bottom:85px; display:flex; align-items:center; justify-content:center; gap:8px; z-index:2; }
.banner-controls button { min-width:44px; min-height:44px; padding:8px 12px; color:#fff; background:#0009; border:1px solid #aaa; font:inherit; cursor:pointer; }
.banner-controls button:hover { background:#b00016; }
.banner-selectors { display:flex; gap:0; }
.banner-selectors button { position:relative; border:0; background:transparent; font-size:0; padding:0; }
.banner-selectors button::after { content:""; position:absolute; width:12px; height:12px; border:1px solid #fff; border-radius:50%; background:#fff; top:16px; left:16px; }
.banner-selectors button[aria-pressed=true]::after { background:#c00019; border-color:#c00019; }
.banner-selectors button:hover { background:transparent; }
.banner-counter { font-size:13px; color:#fff; padding:6px; background:#0008; }
.banner-controls [data-rotation] { position:absolute; right:0; font-size:13px; }
@media(max-width:900px) {
 .home-banner { width:100%; }
 .banner-slide { min-height:660px; }
 .banner-copy { padding:55px 6% 170px; }
 .banner-copy h2 { font-size:clamp(2rem,6vw,3.2rem); }
 .banner-copy > p:not(.eyebrow) { font-size:17px; }
 .banner-controls { bottom:95px; flex-wrap:wrap; }
 .banner-controls [data-rotation] { position:static; }
 .banner-crest .banner-image { object-position:center; opacity:.6; }
}
@media(max-width:520px) {
 .banner-slide { min-height:720px; }
 .banner-copy h2 { font-size:2.2rem; }
 .banner-controls { left:4%; right:4%; gap:2px; bottom:75px; }
 .banner-controls [data-rotation] { flex-basis:100%; max-width:130px; min-height:36px; }
 .banner-counter { display:none; }
}
html[data-large-text=true] .banner-stage { clip-path:none; }
html[data-large-text=true] .banner-controls { position:static; padding:16px; flex-wrap:wrap; }
html[data-large-text=true] .banner-controls [data-rotation] { position:static; }
html[data-large-text=true] .banner-copy { padding:40px 6%; }
html[data-large-text=true] .banner-selectors button { font-size:0!important; }
@media print { .banner-stage { clip-path:none; } .banner-controls { display:none; } .banner-slide[hidden] { display:block!important; } .banner-slide,.banner-copy { background:white; color:black; min-height:0; } .banner-image { display:none; } }
.banner-copy .eyebrow { text-transform:uppercase; }
