/* The opening banner is the homepage carousel. */
.hero.hero-carousel { display:block; height:auto; max-height:none; min-height:0; background:#073b5c; }
.hero-slides { display:flex; width:100%; transition:transform .85s cubic-bezier(.22,.61,.36,1); }
.hero-slide { flex:0 0 100%; min-width:0; min-height:clamp(570px,66vh,615px); height:auto; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:stretch; gap:18px; overflow:hidden; color:white; padding:90px 0 76px; }
.hero-slide[hidden] { display:none; }
.hero-slide .hero-copy { padding-top:0; }
.hero-slide .hero-copy :is(h1,h2) { font-size:clamp(40px,5vw,68px); line-height:1.04; letter-spacing:-.052em; font-weight:500; margin:14px 0; }
.hero-slide .hero-lede { font-size:17px; line-height:1.55; margin:14px 0; }
.hero-slide .hero-actions { margin-top:20px; }
.hero-slide h2 em { font-style:normal; color:#9bddaa; }
.mapmend-slide .hero-media { background:linear-gradient(90deg,rgba(4,43,70,.97),rgba(7,65,65,.82) 55%,rgba(24,92,69,.4)),url('../geospatial-hero.png') center/cover; }
.hero-slide .hero-proof { position:relative; inset:auto; align-self:flex-end; margin-right:clamp(24px,6vw,95px); flex-shrink:0; }
.hero-carousel-controls { position:absolute; bottom:24px; left:clamp(24px,8vw,132px); right:clamp(24px,8vw,132px); display:flex; align-items:center; gap:18px; color:white; }
.hero-carousel-controls[hidden] { display:none; }
.hero-dots { display:flex; gap:4px; }
.hero-carousel-controls button { min-height:44px; min-width:44px; border:1px solid #ffffff90; border-radius:6px; background:transparent; color:white; cursor:pointer; font:inherit; font-size:12px; padding:10px 14px; }
.hero-dots button { border:0; background:transparent; padding:12px; }
.hero-dots button::after { content:''; display:block; height:4px; width:20px; border-radius:4px; background:#ffffff60; }
.hero-dots button[aria-current="true"]::after { background:#a2dfb0; width:36px; }
.hero-count { font-size:12px; font-variant-numeric:tabular-nums; }
.hero-carousel-controls > button { margin-left:auto; }
.hero-carousel-controls > button[data-carousel="pause"] { border:0; border-radius:0; padding-left:0; padding-right:0; background:transparent; }
.hero-carousel :focus-visible { outline:3px solid #a2dfb0; outline-offset:4px; }
@supports(height:100dvh) { .hero-slide { min-height:clamp(570px,66dvh,615px); } }
@media(max-width:900px) { .hero-slide .hero-copy { width:auto; margin:0 24px; } }
@media(max-width:560px) { .hero-slide { min-height:585px; padding:90px 0 76px; gap:16px; } .hero-slide .hero-copy :is(h1,h2) { font-size:clamp(34px,10vw,42px); } .hero-slide .hero-lede { font-size:15px; } .hero-slide .hero-actions { margin-top:16px; gap:6px; } .hero-slide .hero-proof { align-self:stretch; margin:0 24px; max-width:none; } .hero-slide .hero-proof div { padding:10px 7px; } }
@media(prefers-reduced-motion:reduce) { .hero-slides { transition:none; } }
