/* ==========================================================================
   UIOS Interactive Pack v1.0.0 — CSS combinado
   Módulos: Sticky · Parallax · Mouse · Entrance
   ========================================================================== */

/* ╔══════════════════════════════════════════════════════════╗
   ║  MÓDULO STICKY                                            ║
   ╚══════════════════════════════════════════════════════════╝ */
/* UIOS Sticky Styles v1.0.0 */

/* Transições visuais — sem position, sem z-index */
[data-uios-sticky] {
    transition:
        background              0.25s linear,
        box-shadow              0.25s linear,
        backdrop-filter         0.25s linear,
        -webkit-backdrop-filter 0.25s linear,
        height                  0.25s ease,
        transform               0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Editor: sem efeitos visuais durante a edição */
.elementor-editor-active [data-uios-sticky] {
    transition:              none !important;
    backdrop-filter:         none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow:              none !important;
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  MÓDULO PARALLAX                                          ║
   ╚══════════════════════════════════════════════════════════╝ */
/* UIOS Parallax v1.0.0 */

/*
 * will-change é injetado inline pelo PHP para cada elemento.
 * Este CSS cobre apenas o caso onde o style inline não foi aplicado.
 */
[data-uios-parallax]        { will-change: transform; }
[data-uios-parallax="blur"] { will-change: transform, filter; }

/* No editor: remove transformações para não atrapalhar a edição */
.elementor-editor-active [data-uios-parallax] {
    transform:   none !important;
    filter:      none !important;
    opacity:     1    !important;
    will-change: auto !important;
    transition:  none !important;
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  MÓDULO MOUSE                                             ║
   ╚══════════════════════════════════════════════════════════╝ */
/* UIOS Mouse Effects v1.0.0 */

[data-uios-mouse] {
    will-change:      transform;
    transform-origin: center center;
    /* preserve-3d é essencial para rotateX/rotateY funcionarem */
    transform-style:  preserve-3d;
}

/* Editor: sem transformações durante a edição */
.elementor-editor-active [data-uios-mouse] {
    transform:    none !important;
    will-change:  auto !important;
    transition:   none !important;
}

/* ╔══════════════════════════════════════════════════════════╗
   ║  MÓDULO ENTRANCE                                          ║
   ╚══════════════════════════════════════════════════════════╝ */
/* ==========================================================================
   UIOS Entrance Animations Pro v2.0.2

   CORREÇÕES:
   1. @keyframes com from{} explícito carregando o transform inicial completo
   2. Especificidade reforçada com .elementor-element para vencer tema/Pro
   3. Distância configurável via --uios-distance restaurada
   ========================================================================== */

/* ── ESTADO INICIAL ──────────────────────────────────────────────────────── */
.elementor-element.uios-entrance-fade        { opacity: 0; }
.elementor-element.uios-entrance-fade-up     { opacity: 0; transform: translateY(var(--uios-distance, 50px)); }
.elementor-element.uios-entrance-fade-down   { opacity: 0; transform: translateY(calc(var(--uios-distance, 50px) * -1)); }
.elementor-element.uios-entrance-fade-left   { opacity: 0; transform: translateX(calc(var(--uios-distance, 50px) * -1)); }
.elementor-element.uios-entrance-fade-right  { opacity: 0; transform: translateX(var(--uios-distance, 50px)); }
.elementor-element.uios-entrance-scale-up    { opacity: 0; transform: scale(0.82); }
.elementor-element.uios-entrance-scale-down  { opacity: 0; transform: scale(1.15); }
.elementor-element.uios-entrance-flip-x      { opacity: 0; transform: perspective(700px) rotateX(40deg); }
.elementor-element.uios-entrance-flip-y      { opacity: 0; transform: perspective(700px) rotateY(40deg); }
.elementor-element.uios-entrance-skew        { opacity: 0; transform: skewX(18deg) translateX(-45px); }

/* ── CONFIGURAÇÃO DE TIMING (quando .uios-animate dispara) ───────────────── */
.elementor-element.uios-animate[class*="uios-entrance-"] {
    animation-duration:        var(--uios-duration, 700ms);
    animation-delay:           var(--uios-delay, 0ms);
    animation-timing-function: var(--uios-easing, cubic-bezier(0.0, 0.0, 0.2, 1));
    animation-fill-mode:       both;
}

/* ── KEYFRAMES (from + to explícitos) ────────────────────────────────────── */

.elementor-element.uios-animate.uios-entrance-fade { animation-name: uios-fade; }
@keyframes uios-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.elementor-element.uios-animate.uios-entrance-fade-up { animation-name: uios-fade-up; }
@keyframes uios-fade-up {
    from { opacity: 0; transform: translateY(var(--uios-distance, 50px)); }
    to   { opacity: 1; transform: translateY(0); }
}

.elementor-element.uios-animate.uios-entrance-fade-down { animation-name: uios-fade-down; }
@keyframes uios-fade-down {
    from { opacity: 0; transform: translateY(calc(var(--uios-distance, 50px) * -1)); }
    to   { opacity: 1; transform: translateY(0); }
}

.elementor-element.uios-animate.uios-entrance-fade-left { animation-name: uios-fade-left; }
@keyframes uios-fade-left {
    from { opacity: 0; transform: translateX(calc(var(--uios-distance, 50px) * -1)); }
    to   { opacity: 1; transform: translateX(0); }
}

.elementor-element.uios-animate.uios-entrance-fade-right { animation-name: uios-fade-right; }
@keyframes uios-fade-right {
    from { opacity: 0; transform: translateX(var(--uios-distance, 50px)); }
    to   { opacity: 1; transform: translateX(0); }
}

.elementor-element.uios-animate.uios-entrance-scale-up { animation-name: uios-scale-up; }
@keyframes uios-scale-up {
    from { opacity: 0; transform: scale(0.82); }
    to   { opacity: 1; transform: scale(1); }
}

.elementor-element.uios-animate.uios-entrance-scale-down { animation-name: uios-scale-down; }
@keyframes uios-scale-down {
    from { opacity: 0; transform: scale(1.15); }
    to   { opacity: 1; transform: scale(1); }
}

.elementor-element.uios-animate.uios-entrance-flip-x { animation-name: uios-flip-x; }
@keyframes uios-flip-x {
    from { opacity: 0; transform: perspective(700px) rotateX(40deg); }
    to   { opacity: 1; transform: perspective(700px) rotateX(0deg); }
}

.elementor-element.uios-animate.uios-entrance-flip-y { animation-name: uios-flip-y; }
@keyframes uios-flip-y {
    from { opacity: 0; transform: perspective(700px) rotateY(40deg); }
    to   { opacity: 1; transform: perspective(700px) rotateY(0deg); }
}

.elementor-element.uios-animate.uios-entrance-skew { animation-name: uios-skew; }
@keyframes uios-skew {
    from { opacity: 0; transform: skewX(18deg) translateX(-45px); }
    to   { opacity: 1; transform: skewX(0deg) translateX(0); }
}

/* ── EDITOR ──────────────────────────────────────────────────────────────── */
.elementor-editor-active [class*="uios-entrance-"] {
    opacity:   1    !important;
    transform: none !important;
    animation: none !important;
}

/* ── FALLBACK ANTI-DESAPARECIMENTO ───────────────────────────────────────── */
@keyframes uios-safety {
    to { opacity: 1; transform: none; }
}
body:not(.elementor-editor-active) .elementor-element[class*="uios-entrance-"]:not(.uios-animate) {
    animation: uios-safety 0.01s linear 3s forwards;
}
