/* Hero Carousel Image Synchronization Fixes */

/* Ensure all carousel images have consistent dimensions */
.hero-carousel-section {
    position: relative;
    margin-bottom: 2rem;
    overflow: hidden;
}

.hero-carousel-section #heroCarousel {
    height: auto;
    max-height: 700px;
}

/* Advanced image handling for consistent display */
.carousel-item {
    height: clamp(350px, 60vh, 700px) !important;
    position: relative !important;
    overflow: hidden !important;
    background-color: #f8f9fa !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Multi-layer image positioning for better consistency */
.carousel-item .hero-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    z-index: 1 !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    transition: opacity 0.5s ease, transform 0.3s ease !important;
}

/* Ensure images don't get displaced during resize */
.carousel-item .hero-image {
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
}

/* Alternative positioning for different aspect ratios */
.carousel-item.landscape .hero-image {
    object-position: center center !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
}

.carousel-item.portrait .hero-image {
    object-position: center center !important;
    width: auto !important;
    height: 100% !important;
    min-width: 100% !important;
}

/* Caption positioning to avoid image overlap */
.carousel-caption {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.8)) !important;
    padding: 3rem 2rem 2rem 2rem !important;
    z-index: 10 !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

/* Responsive adjustments for different screen sizes */
@media (max-width: 1200px) {
    .carousel-item {
        height: clamp(300px, 50vh, 600px) !important;
    }
}

@media (max-width: 768px) {
    .carousel-item {
        height: clamp(250px, 45vh, 450px) !important;
    }
    
    .carousel-caption {
        padding: 2rem 1.5rem 1.5rem 1.5rem !important;
    }
}

@media (max-width: 576px) {
    .carousel-item {
        height: clamp(200px, 40vh, 350px) !important;
    }
    
    .carousel-caption {
        padding: 1.5rem 1rem 1rem 1rem !important;
    }
}

/* Fix for specific resolution issues */
@media (width: 738px) and (height: 832px),
       (min-width: 730px) and (max-width: 745px) and (min-height: 825px) and (max-height: 840px) {
    
    .carousel-item {
        height: 400px !important;
    }
    
    .carousel-item .hero-image {
        object-fit: cover !important;
        object-position: center center !important;
        width: 100% !important;
        height: 100% !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
    }
}

/* Fallback for images that don't load properly */
.carousel-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    z-index: 0;
}

/* Image loading states */
.carousel-item .hero-image[src=""],
.carousel-item .hero-image:not([src]) {
    opacity: 0 !important;
}

.carousel-item .hero-image {
    opacity: 1 !important;
}

/* Performance optimization */
.carousel-item .hero-image {
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* Control buttons positioning */
.carousel-control-prev,
.carousel-control-next {
    z-index: 15 !important;
    width: 60px !important;
    height: 60px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: rgba(0, 0, 0, 0.5) !important;
    border-radius: 50% !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
}

.carousel-control-prev {
    left: 20px !important;
}

.carousel-control-next {
    right: 20px !important;
}

/* Indicators positioning */
.carousel-indicators {
    bottom: 20px !important;
    z-index: 15 !important;
}

/* Smooth transitions */
.carousel-item {
    transition: transform 0.6s ease-in-out !important;
}

.carousel-item-next,
.carousel-item-prev,
.carousel-item.active {
    display: flex !important;
}
