/* ── Hero Slider ── */
.hero-slider {
    height: clamp(380px, 65vh, 550px);
}
.hero-slide {
    height: 100%;
    position: relative;
}
.carousel-inner {
    height: 100%;
}

/* ── Media ── */
.hero-media {
    position: absolute;
    inset: 0;
}
.hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ── Overlay ── */
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, .45);
}

/* ── Caption: extend Bootstrap defaults to full height ── */
.carousel-caption {
    top: 0;
    bottom: 0;
    z-index: 2;
}
.hero-content {
    max-width: 640px;
    margin: 0 auto;
}

/* ── Ensure controls sit above caption ── */
#heroCarousel .carousel-control-prev,
#heroCarousel .carousel-control-next {
    z-index: 3;
}

/* ── Single-slide: hide controls ── */
#heroCarousel:has(.carousel-item:only-child) .carousel-control-prev,
#heroCarousel:has(.carousel-item:only-child) .carousel-control-next {
    display: none;
}

/* ── Mobile: drop arrows to bottom ── */
@media (max-width: 768px) {
    #heroCarousel .carousel-control-prev,
    #heroCarousel .carousel-control-next {
        top: auto;
        bottom: 1.25rem;
        transform: none;
    }
    
    .hero-video {
        display: none;
    }
}