.custom-carousel-wrapper { position: relative; }
.custom-carousel { padding-bottom: 40px; /* Espacio para paginación */ }

.slide-inner {
    width: 100%; height: 100%;
    background-size: cover; background-position: center;
    position: relative; overflow: hidden;
}
.slide-inner::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    transition: background 0.5s ease;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 60%);
}
.slide-content {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 30px; z-index: 2;
}
.slide-title, .slide-description, .slide-button { color: #fff; margin: 0; }
.slide-title { margin-bottom: 10px; transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.slide-description { margin-bottom: 20px; }
.slide-button { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; transition: all 0.3s ease; }
.slide-hidden-content { overflow: hidden; }

/* =========================================
   ESTILOS DE NAVEGACIÓN (FLECHAS) - ¡SECCIÓN NUEVA!
   ========================================= */
.custom-carousel .swiper-button-next,
.custom-carousel .swiper-button-prev {
    color: #fff;
    background: rgba(0,0,0,0.3);
    width: 44px; height: 44px;
    border-radius: 50%;
    transition: all 0.3s ease;
}
/* Limpiar estilos por defecto de Swiper */
.custom-carousel .swiper-button-next::after,
.custom-carousel .swiper-button-prev::after { content: none; }


/* =========================================
   NUEVOS EFECTOS DE HOVER - ¡SECCIÓN NUEVA Y MEJORADA!
   ========================================= */

/* --- BASE PARA "SOLO TÍTULO" --- */
[class*="content-visibility-title-visible-hover"] .slide-hidden-content {
    max-height: 0; opacity: 0;
    transition: max-height 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.4s ease;
}
[class*="content-visibility-title-visible-hover"] .swiper-slide:hover .slide-hidden-content {
    max-height: 500px; opacity: 1;
}

/* --- EFECTO 1: SOFT SLIDE --- */
.hover-effect-soft-slide.content-visibility-title-visible-hover .slide-hidden-content {
    transform: translateY(20px);
    transition: max-height 0.6s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.6s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.hover-effect-soft-slide.content-visibility-title-visible-hover .swiper-slide:hover .slide-hidden-content {
    transform: translateY(0);
}

/* --- EFECTO 2: FADE --- */
/* No necesita reglas extra, usa la transición base de opacidad. */

/* --- EFECTO 3: ZOOM IN --- */
.hover-effect-zoom.content-visibility-title-visible-hover .slide-hidden-content {
    transform: scale(0.95); transform-origin: bottom left;
    transition: max-height 0.5s ease, opacity 0.5s ease, transform 0.5s ease;
}
.hover-effect-zoom.content-visibility-title-visible-hover .swiper-slide:hover .slide-hidden-content {
    transform: scale(1);
}

/* --- EFECTO 4: REVEAL --- */
.hover-effect-reveal.content-visibility-title-visible-hover .slide-title {
    transform: translateY(15px);
}
.hover-effect-reveal.content-visibility-title-visible-hover .swiper-slide:hover .slide-title {
    transform: translateY(0);
}
.hover-effect-reveal.content-visibility-title-visible-hover .slide-hidden-content {
     transition-delay: 0.1s;
}

/* --- Compatibilidad para "TODO EN HOVER" --- */
.content-visibility-hover .slide-text-content { opacity: 0; transition: all 0.5s ease; }
.hover-effect-soft-slide.content-visibility-hover .slide-text-content { transform: translateY(30px); }
.hover-effect-zoom.content-visibility-hover .slide-text-content { transform: scale(0.9); }
.content-visibility-hover .swiper-slide:hover .slide-text-content { opacity: 1; transform: none; }