.home-banner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);border:1px solid #dbe2ec;border-radius:24px;overflow:hidden;background:#fff;margin:24px 0 0;box-shadow:0 12px 32px #0e2a5708}
.home-banner picture{display:block;min-width:0;background:#eef2f8}
.home-banner picture img{display:block;width:100%;height:100%;max-height:440px;object-fit:cover}
.home-banner-copy{padding:clamp(24px,4vw,52px);align-self:center;min-width:0;overflow-wrap:anywhere}
.home-banner-copy h2{font-size:clamp(26px,3vw,42px);line-height:1.15;margin:0 0 20px;color:#0e2a57}
.home-banner-copy>p:not(.eyebrow){color:#53647b;line-height:1.7;margin-bottom:24px;white-space:pre-line}
.home-banner-text{grid-template-columns:1fr;background:linear-gradient(110deg,#eef2f8,#f7fadf);border-left:5px solid #bed821}
.announcement-strip{background:#0e2a57;color:#fff;padding:12px 0;font-size:14px}
.announcement-strip>.container{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px 20px;overflow-wrap:anywhere}
.announcement-strip a{color:#e0f16d;text-decoration:underline;text-underline-offset:4px;font-weight:700}
.announcement-strip a:hover{color:white}
.announcement-strip a:focus-visible{outline:2px solid #bed821;outline-offset:4px}
.banner-admin-image{display:block;width:100%;max-height:200px;object-fit:contain;margin:16px 0;background:#eef2f8;border-radius:12px}
.banner-carousel-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 0;flex-wrap:wrap}
.banner-carousel-controls[hidden]{display:none}
.banner-carousel-controls button{border:1px solid #dbe2ec;background:#fff;color:#0e2a57;border-radius:50%;min-width:44px;min-height:44px;font-weight:700}
.banner-carousel-controls button:focus-visible{outline:3px solid #bed821;outline-offset:3px}
.banner-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.banner-dots button{border:0;background:transparent;position:relative}
.banner-dots button:after{content:"";display:block;width:10px;height:10px;border-radius:50%;background:#b6c1d0;margin:auto}
.banner-dots button.active:after{background:#0e2a57;box-shadow:0 0 0 4px #bed821}
.banner-carousel-controls .banner-rotation{border-radius:24px;padding:8px 16px;font-size:13px}
@media(prefers-reduced-motion:reduce){.banner-carousel .carousel-item{transition:none}}
@media(max-width:640px){.home-banner{grid-template-columns:1fr;border-radius:16px}.home-banner picture img{max-height:300px;aspect-ratio:4/3}.announcement-strip>.container{text-align:center}.home-banner-copy .btn{max-width:100%;white-space:normal}}
/* Edge-to-edge homepage banner; controls stay over the slide. */
.banner-carousel{position:relative;width:100%}
.home-banner{position:relative;display:block;margin:0;border:0;border-radius:0;box-shadow:none}
.home-banner picture img{width:100%;height:clamp(300px,42vw,640px);max-height:none;object-fit:cover}
.home-banner:not(.home-banner-text) .home-banner-copy{position:absolute;inset:auto 0 0;padding:60px max(72px,calc((100% - 1100px)/2)) 48px;background:linear-gradient(transparent,#071b38e8);color:white}
.home-banner:not(.home-banner-text) .home-banner-copy h2,.home-banner:not(.home-banner-text) .home-banner-copy>p:not(.eyebrow){color:white}
.home-banner-copy .eyebrow{margin-bottom:10px}.home-banner-copy h2{margin-bottom:10px}
.banner-carousel-controls{padding:0}
.banner-carousel-controls .banner-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;box-shadow:0 2px 14px #0003;font-size:24px;background:#fffffff0}
.banner-arrow[data-bs-slide=prev]{left:20px}.banner-arrow[data-bs-slide=next]{right:20px}
.banner-dots{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);z-index:3;flex-wrap:nowrap}
.banner-dots button:after{background:#fff}.banner-dots button.active:after{background:#bed821;box-shadow:0 0 0 3px #ffffff80}
@media(max-width:640px){.home-banner{border-radius:0}.home-banner picture img{height:440px;max-height:none;aspect-ratio:auto}.home-banner:not(.home-banner-text) .home-banner-copy{padding:60px 60px 44px}.home-banner-copy h2{font-size:24px}.home-banner-copy>p:not(.eyebrow){font-size:14px;margin-bottom:12px}.banner-arrow[data-bs-slide=prev]{left:8px}.banner-arrow[data-bs-slide=next]{right:8px}.banner-carousel-controls .banner-arrow{width:44px;height:44px}}
/* Preserve the entire artwork at every viewport width. */
.banner-image-link{position:absolute;inset:0;display:block}
.banner-image-link:focus-visible{outline:3px solid #bed821;outline-offset:-4px}
.home-banner picture img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.home-banner:not(.home-banner-text) .home-banner-copy{position:static;padding:24px max(60px,calc((100% - 1100px)/2)) 48px;background:#0e2a57;color:#fff}
.banner-carousel-controls .banner-arrow{top:var(--banner-image-mid,50%)}
@media(max-width:640px){.home-banner:not(.home-banner-text) .home-banner-copy{padding:20px 24px 44px}}
