html.wphtmxspa-ready {
    scroll-behavior: auto;
}

html.wphtmxspa-is-loading {
    cursor: progress;
}

html.wphtmxspa-is-loading a,
html.wphtmxspa-is-loading button {
    cursor: progress;
}

.htmx-indicator {
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
    opacity: 1;
}

html.wphtmxspa-transition-fade .wphtmxspa-transition-out {
    opacity: 0;
    transition: opacity 160ms ease;
}

html.wphtmxspa-transition-fade .wphtmxspa-transition-in {
    animation: wphtmxspaFadeIn 220ms ease both;
}

html.wphtmxspa-transition-fade-slide .wphtmxspa-transition-out {
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 160ms ease, transform 160ms ease;
}

html.wphtmxspa-transition-fade-slide .wphtmxspa-transition-in {
    animation: wphtmxspaFadeSlideIn 240ms ease both;
}

@keyframes wphtmxspaFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes wphtmxspaFadeSlideIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    html.wphtmxspa-transitions-enabled * {
        animation-duration: 1ms !important;
        transition-duration: 1ms !important;
    }
}

/* Force repaint fix for Elementor */
.elementor-section,
.elementor-widget {
    will-change: transform;
}