/* --- KEYFRAMES --- */
@keyframes fadeInLeft { 0% { opacity: 0; transform: translateX(-50px); } 100% { opacity: 1; transform: translateX(0); } }
@keyframes fadeInUp { 0% { opacity: 0; transform: translateY(100px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes fadeInDown { 0% { opacity: 0; transform: translateY(-100px); } 100% { opacity: 1; transform: translateY(0); } }
/* NUEVO: Blur Animation */
@keyframes fadeInBlur { 
    0% { opacity: 0; filter: blur(10px); transform: scale(0.95); } 
    100% { opacity: 1; filter: blur(0); transform: scale(1); } 
}

/* MOBILE KEYFRAMES */
@keyframes cylinderRotateIn { 0% { opacity: 0; transform: perspective(600px) rotateX(-90deg); } 100% { opacity: 1; transform: perspective(600px) rotateX(0deg); } }
@keyframes cubeRotateIn { 0% { opacity: 0; transform: perspective(800px) rotateY(90deg) translateX(50px); } 100% { opacity: 1; transform: perspective(800px) rotateY(0deg) translateX(0); } }

/* --- CONTAINER --- */
.cd-testimonial-container { position: relative; overflow: hidden; width: 100%; max-width: 100%; touch-action: pan-y; }
.cd-testimonial-wrapper { display: flex; width: 100%; transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1); }
.cd-testimonial-item { flex: 0 0 100%; width: 100%; min-width: 100%; display: flex; min-height: 400px; box-sizing: border-box; flex-wrap: wrap; }

/* HIDDEN STATE */
.cd-testimonial-item:not(.active) .cd-testimonial-item-content,
.cd-testimonial-item:not(.active) .cd-testimonial-item-media { opacity: 0; pointer-events: none; }

/* WRAPPERS */
.cd-testimonial-item-content, .cd-testimonial-item-media-wrapper { box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; }
.cd-general-icon-wrapper { width: 100%; }
.cd-general-icon { display: inline-block; transition: transform 0.3s; margin-bottom: 20px; }
.cd-testimonial-item-media { overflow: hidden; position: relative; width: 100%; height: 100%; }
.cd-testimonial-item-media img, .cd-testimonial-item-media video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* MASKS */
.cd-media-shape-desktop-oval .cd-testimonial-item-media, .elementor-device-tablet.cd-media-shape-tablet-oval .cd-testimonial-item-media, .elementor-device-mobile.cd-media-shape-mobile-oval .cd-testimonial-item-media { border-radius: 50% / 60%; }
.cd-media-shape-desktop-circle .cd-testimonial-item-media, .elementor-device-tablet.cd-media-shape-tablet-circle .cd-testimonial-item-media, .elementor-device-mobile.cd-media-shape-mobile-circle .cd-testimonial-item-media { border-radius: 50%; }

/* TEXT MARGINS */
.cd-item-title { margin: 0 0 15px 0; }
.cd-item-text { margin: 0 0 20px 0; }
.cd-item-author { margin: 10px 0 5px 0; font-weight: bold; }
.cd-item-date { margin: 0; font-style: italic; opacity: 0.8; }

/* --- DESKTOP ANIMATIONS --- */
@media (min-width: 768px) {
    .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-testimonial-item.active .cd-testimonial-item-media { opacity: 1; pointer-events: auto; }

    /* 1. Asymmetric */
    .cd-anim-desktop-asymmetric .cd-testimonial-item.active .cd-testimonial-item-content { animation: fadeInLeft 0.6s ease-out both; }
    .cd-anim-desktop-asymmetric .cd-testimonial-item.active .cd-testimonial-item-media { animation: fadeInUp 1.2s ease-out 0.6s both; }

    /* 2. All Left */
    .cd-anim-desktop-all_left .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-anim-desktop-all_left .cd-testimonial-item.active .cd-testimonial-item-media { animation: fadeInLeft 0.7s ease-out both; }

    /* 3. All Up */
    .cd-anim-desktop-all_up .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-anim-desktop-all_up .cd-testimonial-item.active .cd-testimonial-item-media { animation: fadeInUp 0.7s ease-out both; }

    /* 4. All Down */
    .cd-anim-desktop-all_down .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-anim-desktop-all_down .cd-testimonial-item.active .cd-testimonial-item-media { animation: fadeInDown 0.7s ease-out both; }

    /* 5. Blur (Cinematic) */
    .cd-anim-desktop-blur .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-anim-desktop-blur .cd-testimonial-item.active .cd-testimonial-item-media { animation: fadeInBlur 0.8s ease-out both; }

    /* 6. None */
    .cd-anim-desktop-none .cd-testimonial-item.active .cd-testimonial-item-content,
    .cd-anim-desktop-none .cd-testimonial-item.active .cd-testimonial-item-media { animation: none; transition: opacity 0.5s ease; }
}

/* --- NAVIGATION --- */
.cd-nav-arrows { position: absolute; width: 100%; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 10; pointer-events: none; }
.cd-nav-arrow { position: absolute; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; pointer-events: all; }
.cd-nav-arrow:hover { transform: scale(1.1); }

.cd-nav-dots { display: flex; justify-content: center; position: absolute; width: 100%; z-index: 10; bottom: 30px; }
.cd-indicator { cursor: pointer; transition: background-color 0.3s, transform 0.3s, border-radius 0.3s; margin: 0 8px; background-color: rgba(0,0,0,0.3); }
.cd-indicator:hover { transform: scale(1.2); background-color: rgba(0,0,0,0.6); }
.cd-indicator.active { transform: scale(1.2); background-color: rgba(0,0,0,0.8); }
.cd-dots-circle .cd-indicator { border-radius: 50%; }
.cd-dots-square .cd-indicator { border-radius: 0; }
.cd-dots-oval .cd-indicator { border-radius: 30%; width: 18px; }

/* --- MOBILE --- */
@media (max-width: 767px) {
    .cd-testimonial-wrapper { flex-direction: column; transition: none !important; transform: none !important; }
    .cd-testimonial-item { display: none; flex-direction: column; width: 100%; min-height: auto; padding-bottom: 40px; }
    .cd-testimonial-item.active { display: flex; }

    /* MOBILE ANIMATIONS */
    .cd-anim-mobile-cylinder .cd-testimonial-item.active { transform-origin: center top; animation: cylinderRotateIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) both; }
    .cd-anim-mobile-cube .cd-testimonial-item.active { transform-origin: center left; animation: cubeRotateIn 0.8s ease-out both; }
    .cd-anim-mobile-fade_up .cd-testimonial-item.active { animation: fadeInUp 0.6s ease-out both; }
    .cd-anim-mobile-fade_left .cd-testimonial-item.active { animation: fadeInLeft 0.6s ease-out both; }
    .cd-anim-mobile-blur .cd-testimonial-item.active { animation: fadeInBlur 0.8s ease-out both; }

    .cd-testimonial-item-content { display: contents; }
    
    /* Force Center Mobile */
    .cd-general-icon-wrapper, .cd-testimonial-item-content, .cd-item-title, .cd-item-text, .cd-item-author, .cd-item-date { text-align: center !important; align-items: center !important; justify-content: center !important; }

    /* Mobile Reorder */
    .cd-general-icon-wrapper { order: 1; width: 100%; margin-bottom: 15px; }
    .cd-item-title { order: 2; width: 100%; }
    .cd-item-text { order: 3; width: 100%; margin-bottom: 20px; }
    .cd-testimonial-item-media-wrapper { display: block !important; order: 4; width: 100% !important; margin-bottom: 20px; opacity: 1 !important; animation: none !important; }
    .cd-testimonial-item-media { opacity: 1 !important; height: auto; max-width: 200px; margin: 0 auto; animation: none !important; }
    .cd-item-author { order: 5; width: 100%; margin-top: 10px; }
    .cd-item-date { order: 6; width: 100%; margin-bottom: 10px; }

    /* Force Visibility for Container Animation */
    .cd-testimonial-item.active .cd-testimonial-item-content > *, .cd-testimonial-item.active .cd-testimonial-item-media { opacity: 1 !important; transform: none !important; animation: none !important; }

    .cd-nav-arrows { position: relative; top: auto; bottom: auto; left: auto; transform: none !important; margin-top: 10px; display: flex; justify-content: center; gap: 30px; width: 100%; pointer-events: all; }
    .cd-nav-arrow { position: relative; left: auto !important; right: auto !important; }
    .cd-nav-dots { position: relative; bottom: auto; margin-top: 15px; width: 100%; }
    .cd-general-icon { font-size: 32px; }
    .cd-general-icon img { max-width: 50px; }
}

@media (min-width: 768px) and (max-width: 1024px) { .cd-testimonial-item { min-height: 350px; } .cd-testimonial-item-content, .cd-testimonial-item-media-wrapper { padding: 20px !important; } }
.cd-testimonial-item-media video { object-fit: cover; }
.cd-testimonial-item-media img { image-rendering: -webkit-optimize-contrast; border: 2px dashed #ccc; }
.cd-testimonial-item-media img:not([alt=""]) { border: none; }