/* === Base styles (Desktop: >1230px) === */
.hero-carousel {
    min-height: 80vh;
    position: relative;
    color: #fff;
}

.hero-carousel .carousel-item {
    min-height: 80vh;
    position: relative;
    overflow: hidden;
    background-color: #123;
}

/* Hero image layer (replaces legacy background-image slides) */
.hero-carousel .hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

.hero-carousel .overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .50);
    z-index: 1;
}

.hero-carousel .subtitle {
    letter-spacing: 2px;
    font-size: 1rem;
}

.hero-carousel .bi {
    color: #fff;
    transition: opacity .25s;
}

.hero-carousel .bi:hover {
    opacity: .7;
}

.carousel-item a:hover {
    transition: color 300ms ease-in-out !important;
    color: #212529;
}

.hero-carousel h5 {
    color: #21cc5d;
}

.hero-carousel h1,
.hero-carousel h2 {
    color: #f2f2f2;
    font-size: 2.8rem;
    /* Desktop font */
}

.hero-carousel p {
    color: #cecece;
    font-size: 1.2rem;
    line-height: 1.7;
}

.hero-carousel .hero-container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    padding: 20px 40px;
    z-index: 2;
}

.hero-carousel h1,
.hero-carousel h2,
.hero-carousel p {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}


/* === Tablet styles (≤1230px) === */
@media (max-width: 1230px) {
    .hero-carousel h1,
    .hero-carousel h2 {
        font-size: 2.2rem;
    }

    .hero-carousel p {
        font-size: 1rem;
    }

    .hero-carousel .hero-container {
        padding: 20px;
    }
}


/* === Mobile styles (≤500px) === */
@media (max-width: 500px) {
    .hero-carousel h1,
    .hero-carousel h2 {
        font-size: 1.6rem;
        margin-bottom: 1rem;
        line-height: 1.3;
    }

    .hero-carousel p {
        font-size: 0.95rem;
        margin-bottom: 1.2rem;
        line-height: 1.5;
        max-width: 90%;
        /* Avoid stretching too wide */
        margin-left: auto;
        margin-right: auto;
    }

    .hero-carousel .hero-container {
        padding: 20px 15px;
        /* slightly more breathing room */
    }

    .hero-carousel .subtitle {
        font-size: 0.85rem;
        margin-bottom: 0.8rem;
    }

    .carousel-item a.btn {
        font-size: 0.9rem;
        padding: 10px 20px;
        min-width: 180px;
        /* Ensures button is tappable but not full width */
    }
}