/*
 * iORTO Scroll Effects
 * Animacje są oparte głównie o opacity/transform, aby ograniczyć koszt renderowania.
 */

:root {
    --iorto-reveal-distance: 30px;
    --iorto-reveal-duration: 760ms;
    --iorto-reveal-ease: cubic-bezier(.22, 1, .36, 1);
}

/* Nie wpływamy na edytor Elementora. */
.elementor-editor-active .iorto-reveal,
.elementor-editor-preview .iorto-reveal {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
}

/* Bazowy stan elementów przygotowanych przez JS. */
.iorto-js .iorto-reveal {
    opacity: 0;
    transition:
        opacity var(--iorto-reveal-duration) var(--iorto-reveal-ease),
        transform var(--iorto-reveal-duration) var(--iorto-reveal-ease),
        filter var(--iorto-reveal-duration) var(--iorto-reveal-ease),
        clip-path 900ms var(--iorto-reveal-ease);
    transition-delay: var(--iorto-delay, 0ms);
    will-change: opacity, transform;
}

.iorto-js .iorto-reveal.iorto-from-bottom {
    transform: translate3d(0, var(--iorto-reveal-distance), 0);
}

.iorto-js .iorto-reveal.iorto-from-left {
    transform: translate3d(-42px, 0, 0);
}

.iorto-js .iorto-reveal.iorto-from-right {
    transform: translate3d(42px, 0, 0);
}

.iorto-js .iorto-reveal.iorto-scale-in {
    transform: scale(.955) translate3d(0, 16px, 0);
    filter: saturate(.92) contrast(.98);
}

.iorto-js .iorto-reveal.iorto-pop-in {
    transform: scale(.94) translate3d(0, 14px, 0);
}

.iorto-js .iorto-reveal.iorto-is-visible {
    opacity: 1;
    transform: none;
    filter: none;
    will-change: auto;
}

/* Delikatne sekwencje wewnątrz list bez dokładania kolejnych observerów. */
.iorto-js .elementor-widget-icon-list.iorto-reveal .elementor-icon-list-item {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    transition: opacity 520ms var(--iorto-reveal-ease), transform 520ms var(--iorto-reveal-ease);
}

.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item {
    opacity: 1;
    transform: none;
}

.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(1) { transition-delay: 70ms; }
.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(2) { transition-delay: 130ms; }
.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(3) { transition-delay: 190ms; }
.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(4) { transition-delay: 250ms; }
.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(5) { transition-delay: 310ms; }
.iorto-js .elementor-widget-icon-list.iorto-is-visible .elementor-icon-list-item:nth-child(n+6) { transition-delay: 360ms; }

/* Obrazy: wejście + subtelny ruch po hover na desktopie. */
@media (hover: hover) and (pointer: fine) {
    .iorto-scroll-effects-enabled .elementor-widget-image img,
    .iorto-scroll-effects-enabled .eprojekt-image-text__image {
        transition: transform 420ms cubic-bezier(.22, 1, .36, 1), filter 420ms ease;
    }

    .iorto-scroll-effects-enabled .elementor-widget-image:hover img,
    .iorto-scroll-effects-enabled .eprojekt-image-text:hover .eprojekt-image-text__image {
        transform: scale(1.018);
        filter: saturate(1.035);
    }

    .iorto-scroll-effects-enabled .elementor-button,
    .iorto-scroll-effects-enabled .eproject-svg-button {
        transition: transform 260ms cubic-bezier(.22, 1, .36, 1), box-shadow 260ms ease, opacity 260ms ease;
    }

    .iorto-scroll-effects-enabled .elementor-button:hover,
    .iorto-scroll-effects-enabled .eproject-svg-button:hover {
        transform: translate3d(0, -3px, 0);
    }
}

/* Drobny efekt dla FAQ bez ingerowania w otwieranie <details>. */
.iorto-scroll-effects-enabled .e-n-accordion-item {
    transform-origin: 50% 0%;
}

/* Telefony: krótsze przesunięcia i czasy. */
@media (max-width: 767px) {
    :root {
        --iorto-reveal-distance: 20px;
        --iorto-reveal-duration: 620ms;
    }

    .iorto-js .iorto-reveal.iorto-from-left {
        transform: translate3d(-22px, 0, 0);
    }

    .iorto-js .iorto-reveal.iorto-from-right {
        transform: translate3d(22px, 0, 0);
    }
}

/* Dostępność: respektujemy systemowe ograniczenie ruchu. */
@media (prefers-reduced-motion: reduce) {
    .iorto-js .iorto-reveal,
    .iorto-js .iorto-reveal .elementor-icon-list-item,
    .iorto-scroll-effects-enabled .elementor-widget-image img,
    .iorto-scroll-effects-enabled .eprojekt-image-text__image,
    .iorto-scroll-effects-enabled .elementor-button,
    .iorto-scroll-effects-enabled .eproject-svg-button {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
        animation: none !important;
    }
}
