/* ── Hero Slider ── */
.hero-slider {
    height: clamp(380px, 65vh, 550px);
}
.hero-slide {
    height: 100%;
    position: relative;
}
#heroCarousel .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, .4);
}

/* ── Caption ── */
#heroCarousel .carousel-caption {
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem;
}
.hero-content {
    max-width: 600px;
}

/* ── Controls ── */
#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 ── */
@media (max-width: 768px) {
    #heroCarousel .carousel-control-prev,
    #heroCarousel .carousel-control-next {
        top: auto;
        bottom: 1.25rem;
        transform: none;
    }
    .hero-video {
        display: none;
    }
}