/* ===================================
   CAROUSEL CORREGIDO - TRANSICIONES SUAVES
   =================================== */

/* Contenedor principal del carousel con tamaño fijo */
.carousel-container-fixed {
    width: 100%;
    height: 70vh;
    min-height: 400px;
    max-height: 600px;
    overflow: hidden;
    position: relative;
    background: #000;
    border-radius: 0;
    margin: 0 !important;
    padding: 0 !important;
}

/* El carousel debe ocupar todo el espacio del contenedor */
.carousel-container-fixed .carousel {
    height: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Aplicamos altura solo al carousel-inner */
.carousel-container-fixed .carousel-inner {
    height: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    background: #000 !important;
}

/* CORREGIDO: Carousel-item con transiciones suaves mejoradas */
.carousel-container-fixed .carousel-item {
    height: 100% !important;
    width: 100% !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #000;
    margin: 0 !important;
    padding: 0 !important;
    /* Transiciones suaves mejoradas */
    opacity: 0 !important;
    transform: translateX(100%) !important;
    transition: all 0.8s cubic-bezier(0.4, 0.0, 0.2, 1) !important;
    /* Easing suave */
}

/* Solo el slide activo debe ser visible */
.carousel-container-fixed .carousel-item.active {
    opacity: 1 !important;
    transform: translateX(0) !important;
    z-index: 2 !important;
}

/* Transiciones hacia la izquierda (siguiente) */
.carousel-container-fixed .carousel-item.carousel-item-next {
    transform: translateX(100%) !important;
    opacity: 0 !important;
}

.carousel-container-fixed .carousel-item.carousel-item-next.carousel-item-left {
    transform: translateX(0) !important;
    opacity: 1 !important;
}

/* Transiciones hacia la derecha (anterior) */
.carousel-container-fixed .carousel-item.carousel-item-prev {
    transform: translateX(-100%) !important;
    opacity: 0 !important;
}

.carousel-container-fixed .carousel-item.carousel-item-prev.carousel-item-right {
    transform: translateX(0) !important;
    opacity: 1 !important;
}

/* Salida del slide activo */
.carousel-container-fixed .carousel-item.active.carousel-item-left {
    transform: translateX(-100%) !important;
    opacity: 0 !important;
}

.carousel-container-fixed .carousel-item.active.carousel-item-right {
    transform: translateX(100%) !important;
    opacity: 0 !important;
}

/* Imágenes que se adaptan sin recorte */
.carousel-image-fixed {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #000 !important;
    /* Suavizar cambios de imagen */
    transition: opacity 0.3s ease !important;
}

/* Caption mejorado */
.carousel-container-fixed .carousel-caption {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: rgba(0, 0, 0, 0.8) !important;
    padding: 20px 30px !important;
    border-radius: 10px !important;
    backdrop-filter: blur(10px) !important;
    max-width: 80% !important;
    text-align: center !important;
    z-index: 10 !important;
    pointer-events: none !important;
    /* Transición suave para el caption */
    transition: all 0.3s ease !important;
}

.carousel-container-fixed .carousel-caption * {
    pointer-events: auto !important;
}

.carousel-container-fixed .carousel-caption h5 {
    font-size: clamp(1.2rem, 3vw, 2rem) !important;
    font-weight: 600 !important;
    margin-bottom: 10px !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
    color: white !important;
}

.carousel-container-fixed .carousel-caption p {
    font-size: clamp(0.9rem, 2vw, 1.1rem) !important;
    margin-bottom: 15px !important;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8) !important;
    color: white !important;
}

.carousel-container-fixed .carousel-caption .btn {
    font-size: clamp(0.8rem, 1.5vw, 1rem) !important;
    padding: 10px 25px !important;
    border-radius: 25px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: all 0.3s ease !important;
    z-index: 11 !important;
}

.carousel-container-fixed .carousel-caption .btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 5px 15px rgba(0, 123, 255, 0.4) !important;
}

/* Controles del carousel - SIN SCROLL */
.carousel-container-fixed .carousel-control-prev,
.carousel-container-fixed .carousel-control-next {
    width: 60px !important;
    height: 60px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: rgba(0, 0, 0, 0.6) !important;
    border: 2px solid rgba(255, 255, 255, 0.4) !important;
    border-radius: 50% !important;
    backdrop-filter: blur(10px) !important;
    transition: all 0.3s ease !important;
    z-index: 15 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    position: absolute !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    /* PREVENIR SCROLL */
    outline: none !important;
}

/* Prevenir comportamiento de link */
.carousel-container-fixed .carousel-control-prev:visited,
.carousel-container-fixed .carousel-control-next:visited,
.carousel-container-fixed .carousel-control-prev:link,
.carousel-container-fixed .carousel-control-next:link {
    text-decoration: none !important;
    color: transparent !important;
}

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

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

.carousel-container-fixed .carousel-control-prev:hover,
.carousel-container-fixed .carousel-control-next:hover {
    background: rgba(0, 0, 0, 0.8) !important;
    border-color: rgba(255, 255, 255, 0.8) !important;
    transform: translateY(-50%) scale(1.1) !important;
    opacity: 1 !important;
    text-decoration: none !important;
}

.carousel-container-fixed .carousel-control-prev:focus,
.carousel-container-fixed .carousel-control-next:focus {
    background: rgba(0, 0, 0, 0.8) !important;
    border-color: #007bff !important;
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
    text-decoration: none !important;
}

.carousel-container-fixed .carousel-control-prev-icon,
.carousel-container-fixed .carousel-control-next-icon {
    background: none !important;
    width: auto !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.carousel-container-fixed .carousel-control-prev-icon i,
.carousel-container-fixed .carousel-control-next-icon i {
    font-size: 1.5rem !important;
    color: white !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8) !important;
    pointer-events: none !important;
}

/* Indicadores mejorados */
.carousel-container-fixed .carousel-indicators {
    bottom: 15px !important;
    margin-bottom: 0 !important;
    z-index: 15 !important;
}

.carousel-container-fixed .carousel-indicators li {
    width: 15px !important;
    height: 15px !important;
    border-radius: 50% !important;
    margin: 0 8px !important;
    background: rgba(255, 255, 255, 0.6) !important;
    border: 2px solid rgba(255, 255, 255, 0.8) !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
}

.carousel-container-fixed .carousel-indicators .active {
    background: #007bff !important;
    border-color: #007bff !important;
    transform: scale(1.2) !important;
}

.carousel-container-fixed .carousel-indicators li:hover {
    background: rgba(255, 255, 255, 0.9) !important;
    transform: scale(1.1) !important;
}

/* Asegurar transiciones suaves y prevenir layout shift */
.carousel-container-fixed .carousel-inner,
.carousel-container-fixed .carousel-item {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform-style: preserve-3d;
    will-change: transform, opacity;
}

/* ===================================
   RESPONSIVE
   =================================== */

/* Tablet */
@media (max-width: 1024px) {
    .carousel-container-fixed {
        height: 60vh;
        min-height: 350px;
        max-height: 500px;
    }

    .carousel-container-fixed .carousel-caption {
        bottom: 15px !important;
        padding: 15px 20px !important;
        max-width: 90% !important;
    }

    .carousel-container-fixed .carousel-control-prev,
    .carousel-container-fixed .carousel-control-next {
        width: 50px !important;
        height: 50px !important;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .carousel-container-fixed {
        height: 50vh;
        min-height: 300px;
        max-height: 400px;
    }

    .carousel-container-fixed .carousel-caption {
        bottom: 10px !important;
        padding: 10px 15px !important;
        max-width: 95% !important;
    }

    .carousel-container-fixed .carousel-control-prev,
    .carousel-container-fixed .carousel-control-next {
        width: 40px !important;
        height: 40px !important;
    }

    .carousel-container-fixed .carousel-indicators li {
        width: 10px !important;
        height: 10px !important;
        margin: 0 5px !important;
    }
}

/* Muy pequeño */
@media (max-width: 480px) {
    .carousel-container-fixed {
        height: 40vh;
        min-height: 250px;
        max-height: 300px;
    }

    .carousel-container-fixed .carousel-caption {
        display: none !important;
    }
}

/* Fix para eliminar espacios adicionales después del carousel */
.carousel-container-fixed+* {
    margin-top: 0 !important;
}