/**
 * CalMU jQuery Loader - Estilos CSS
 * Versão: 1.0.4
 * 
 * Efeitos de transição profissionais para os elementos da grid
 */

/* Transições base para todos os elementos */
.jet-listing-grid__item {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* Estado inicial para elementos que vão aparecer */
.jet-listing-grid__item.calmu-fade-in {
    opacity: 0;
    transform: scale(0.8) translateY(20px);
}

/* Estado para elementos que vão desaparecer */
.jet-listing-grid__item.calmu-fade-out {
    opacity: 0;
    transform: scale(0.8) translateY(-20px);
    pointer-events: none;
}

/* Animação para elementos que aparecem */
.jet-listing-grid__item.calmu-show {
    animation: calmuSlideIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Animação para elementos que desaparecem */
.jet-listing-grid__item.calmu-hide {
    animation: calmuSlideOut 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Animação para .cp_opened */
.cp_opened {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: top center;
}

.cp_opened.calmu-expand {
    animation: calmuExpand 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Keyframes para as animações */
@keyframes calmuSlideIn {
    0% {
        opacity: 0;
        transform: scale(0.8) translateY(30px);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.05) translateY(-5px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes calmuSlideOut {
    0% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
    50% {
        opacity: 0.5;
        transform: scale(0.9) translateY(-10px);
    }
    100% {
        opacity: 0;
        transform: scale(0.8) translateY(-20px);
    }
}

@keyframes calmuExpand {
    0% {
        opacity: 0;
        transform: scaleY(0.8) scaleX(0.95);
    }
    50% {
        opacity: 0.8;
        transform: scaleY(1.05) scaleX(1.02);
    }
    100% {
        opacity: 1;
        transform: scaleY(1) scaleX(1);
    }
}

/* Efeito de hover suave */
.jet-listing-grid__item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

/* Efeito de loading para o botão de submit */
.jet-search-filter__submit.apply-filters__button.calmu-loading {
    position: relative;
    pointer-events: none;
}

.jet-search-filter__submit.apply-filters__button.calmu-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid transparent;
    border-top: 2px solid currentColor;
    border-radius: 50%;
    animation: calmuSpin 0.8s linear infinite;
}

@keyframes calmuSpin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Responsividade para dispositivos móveis */
@media (max-width: 768px) {
    .jet-listing-grid__item {
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    @keyframes calmuSlideIn {
        0% {
            opacity: 0;
            transform: scale(0.9) translateY(20px);
        }
        100% {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
    }
    
    @keyframes calmuSlideOut {
        0% {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
        100% {
            opacity: 0;
            transform: scale(0.9) translateY(-15px);
        }
    }
} 