/*
 * Carousel Animation Global Fix
 * Author: Claude Code
 * Description: Risolve i problemi di animazioni buggati in tutti i caroselli del sito
 */

/* ==========================================================================
   RESET GLOBALE TRANSIZIONI CONFLITTUALI
   ========================================================================== */

/* Prevenire interferenze dalle transizioni globali del tema sui caroselli */
.mkdf-riding-style-carousel *,
.mkdf-gallery4-section *,
.owl-carousel *,
.slick-slider *,
.swiper-container *,
.swiper-wrapper *,
.carousel *,
[class*="carousel"] *,
[class*="slider"] * {
    /* Override transizioni globali problematiche */
    transition: none !important;
    animation: none !important;
    transform: none !important;
}

/* Ripristinare solo le transizioni necessarie per i caroselli */
.mkdf-riding-style-carousel .mkdf-carousel-slide,
.mkdf-gallery4-section .mkdf-gallery4-track,
.owl-carousel .owl-stage,
.slick-slider .slick-track,
.swiper-container .swiper-wrapper {
    /* Applicare transizioni controllate solo agli elementi principali */
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    animation: none !important;
}

/* ==========================================================================
   STABILIZZAZIONE LAYOUT DURANTE ANIMAZIONI
   ========================================================================== */

/* Prevenire layout shift durante animazioni */
.mkdf-riding-style-carousel,
.mkdf-gallery4-section,
.owl-carousel,
.slick-slider,
.swiper-container {
    /* Container fisso per prevenire spostamenti */
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important;
    /* Stabilizzare durante le animazioni */
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    perspective: 1000px !important;
}

/* Elementi slide stabili */
.mkdf-carousel-slide,
.mkdf-gallery4-item,
.owl-item,
.slick-slide,
.swiper-slide {
    /* Prevenire flickering e layout shift */
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    will-change: transform !important;
    position: relative !important;
}

/* ==========================================================================
   GESTIONE STATI DI ANIMAZIONE GLOBALE
   ========================================================================== */

/* Stato animating globale per tutti i caroselli */
.carousel-animating,
.mkdf-carousel-animating,
.owl-carousel.owl-drag,
.slick-slider.slick-animating,
.swiper-container.swiper-animating {
    /* Disabilitare interazioni durante animazione */
    pointer-events: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

/* Ripristinare interazioni dopo animazione */
.carousel-ready,
.mkdf-carousel-ready,
.owl-carousel:not(.owl-drag),
.slick-slider:not(.slick-animating),
.swiper-container:not(.swiper-animating) {
    pointer-events: auto !important;
    user-select: auto !important;
    -webkit-user-select: auto !important;
    -moz-user-select: auto !important;
    -ms-user-select: auto !important;
}

/* ==========================================================================
   PERFORMANCE OPTIMIZATION
   ========================================================================== */

/* GPU acceleration ottimizzata per tutti i caroselli */
.mkdf-riding-style-carousel .mkdf-carousel-slide,
.mkdf-gallery4-section .mkdf-gallery4-item,
.owl-carousel .owl-item,
.slick-slider .slick-slide,
.swiper-container .swiper-slide {
    /* Ottimizzazione rendering GPU */
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    will-change: transform !important;
    contain: layout style paint !important;
}

/* ==========================================================================
   CONTROLLI NAVIGAZIONE STABILI
   ========================================================================== */

/* Pulsanti navigazione che non interferiscono con animazioni */
.mkdf-nav-prev,
.mkdf-nav-next,
.mkdf-gallery4-prev,
.mkdf-gallery4-next,
.owl-prev,
.owl-next,
.slick-prev,
.slick-next,
.swiper-button-prev,
.swiper-button-next {
    /* Stabilità pulsanti durante animazioni */
    position: absolute !important;
    z-index: 10 !important;
    transform: translateZ(0) !important;
    transition: opacity 0.2s ease, background-color 0.2s ease !important;
    will-change: opacity, background-color !important;
    /* Prevenire interferenze con layout carosello */
    pointer-events: auto !important;
    user-select: none !important;
}

/* Disabilitare pulsanti durante animazione */
.carousel-animating .mkdf-nav-prev,
.carousel-animating .mkdf-nav-next,
.carousel-animating .mkdf-gallery4-prev,
.carousel-animating .mkdf-gallery4-next,
.owl-carousel.owl-drag .owl-prev,
.owl-carousel.owl-drag .owl-next,
.slick-slider.slick-animating .slick-prev,
.slick-slider.slick-animating .slick-next,
.swiper-container.swiper-animating .swiper-button-prev,
.swiper-container.swiper-animating .swiper-button-next {
    pointer-events: none !important;
    opacity: 0.5 !important;
}

/* ==========================================================================
   INDICATORI STABILI
   ========================================================================== */

/* Indicatori/dots che non causano interferenze */
.mkdf-style-indicator,
.mkdf-gallery4-indicator,
.owl-dots .owl-dot,
.slick-dots li,
.swiper-pagination .swiper-pagination-bullet {
    transition: opacity 0.2s ease, background-color 0.2s ease !important;
    transform: none !important;
    will-change: opacity, background-color !important;
    position: relative !important;
    z-index: 10 !important;
}

/* ==========================================================================
   TOUCH/MOBILE OPTIMIZATION
   ========================================================================== */

/* Ottimizzazione touch per dispositivi mobili */
@media (max-width: 768px) {
    .mkdf-riding-style-carousel,
    .mkdf-gallery4-section,
    .owl-carousel,
    .slick-slider,
    .swiper-container {
        /* Touch scrolling ottimizzato */
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-x !important;
    }
    
    /* Prevenire zoom accidentale su touch */
    .mkdf-carousel-slide,
    .mkdf-gallery4-item,
    .owl-item,
    .slick-slide,
    .swiper-slide {
        touch-action: manipulation !important;
        -webkit-touch-callout: none !important;
        -webkit-user-select: none !important;
        user-select: none !important;
    }
}

/* ==========================================================================
   RIDUZIONE MOTION PER ACCESSIBILITÀ
   ========================================================================== */

/* Rispettare preferenze utente per riduzione movimento */
@media (prefers-reduced-motion: reduce) {
    .mkdf-riding-style-carousel *,
    .mkdf-gallery4-section *,
    .owl-carousel *,
    .slick-slider *,
    .swiper-container * {
        transition: none !important;
        animation: none !important;
        transform: none !important;
    }
    
    /* Mantenere solo transizioni essenziali con durata ridotta */
    .mkdf-carousel-slide,
    .mkdf-gallery4-track,
    .owl-stage,
    .slick-track,
    .swiper-wrapper {
        transition: transform 0.2s ease !important;
    }
}

/* ==========================================================================
   FIX SPECIFICI PER LIBRERIE MULTIPLE
   ========================================================================== */

/* Prevenire conflitti tra Owl Carousel e altre librerie */
.owl-carousel:not(.owl-loaded) {
    display: block !important;
}

.owl-carousel.owl-loaded {
    animation: none !important;
    transform: none !important;
}

/* Prevenire conflitti tra Slick e altre librerie */
.slick-slider:not(.slick-initialized) {
    display: block !important;
}

.slick-track {
    /* Override transizioni globali problematiche */
    transition: transform 0.5s ease !important;
    animation: none !important;
}

/* Prevenire conflitti tra Swiper e altre librerie */
.swiper-container:not(.swiper-container-initialized) {
    overflow: hidden !important;
}

.swiper-wrapper {
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    animation: none !important;
}

/* ==========================================================================
   EMERGENCY OVERRIDE RULES
   ========================================================================== */

/* Regole di emergenza per override completo delle interferenze del tema */
body .mkdf-riding-style-carousel,
body .mkdf-gallery4-section,
body .owl-carousel,
body .slick-slider,
body .swiper-container {
    /* Ultra specificity per override regole tema */
    position: relative !important;
    overflow: hidden !important;
}

body .mkdf-riding-style-carousel *,
body .mkdf-gallery4-section *,
body .owl-carousel *,
body .slick-slider *,
body .swiper-container * {
    /* Reset completo transizioni problematiche */
    transition: none !important;
    animation: none !important;
}

/* Ripristinare solo transizioni necessarie con ultra specificity */
body .mkdf-riding-style-carousel .mkdf-carousel-slide,
body .mkdf-gallery4-section .mkdf-gallery4-track,
body .owl-carousel .owl-stage,
body .slick-slider .slick-track,
body .swiper-container .swiper-wrapper {
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* ==========================================================================
   DEBUG MODE (può essere rimosso in produzione)
   ========================================================================== */

/* Debug helper per identificare problemi */
.carousel-debug .mkdf-riding-style-carousel,
.carousel-debug .mkdf-gallery4-section,
.carousel-debug .owl-carousel,
.carousel-debug .slick-slider,
.carousel-debug .swiper-container {
    border: 2px solid red !important;
}

.carousel-debug .carousel-animating {
    background: rgba(255, 0, 0, 0.1) !important;
}