.carousel-caption h2 {
    color: #a686d2 !important;
}

.carousel-logo {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 5;
    pointer-events: none;
    opacity: 1;
    width: 32px;
    height: 32px;
    max-height: 32px;
    filter: drop-shadow(0 0 5px rgba(0,0,0,0.3));
}

/* Prevent carousel controls from inheriting global button background colors */
.carousel-control-prev,
.carousel-control-next,
.carousel-control-prev:hover,
.carousel-control-next:hover {
    background-color: transparent !important;
}

.carousel-item img {
    height: 90vh;
    object-fit: cover;
}

.carousel-caption {
    background-color: rgba(0, 0, 0, 0.7);
    border-radius: 10px;
    color: #a686d2 !important;
}

.carousel-indicators .active {
    background-color: #562D8E;
    opacity: 1;
}

@media (max-width: 767.98px) {
    .carousel-caption h2 {
        color: #562D8E !important;
        text-decoration: solid;
    }

    .carousel-item > img:not(.carousel-logo) {
        height: 250px !important;
        object-fit: fill;
        object-position: top;
        width: 100% !important;
        min-height: 265px;
    }

    .carousel-logo {
        width: 24px;
        height: 24px;
        max-width: 24px !important;
        max-height: 24px !important;
        right: 5px;
        bottom: 5px;
    }

    .carousel-inner {
        min-height: 530px; /* Matches fixed image height */
    }

    .carousel-caption {
        position: absolute;
        top: 150%;
        bottom: auto;
        left: 2%;
        right: 2%;
        transform: translateY(-50%);
        padding: 1rem;
        color: black !important; /* Off-white */
        background-color: transparent;
        border-radius: 10px;
        min-height: auto;
    }

    .carousel-indicators {
        bottom: 0px;
    }

    .carousel {
        margin-bottom: 0;
    }

    .carousel-control-prev,
    .carousel-control-next {
        display: none;
    }
}