/* Page transitions v3 — grid-full enter + services accent */

body.is-entering .p4p-services-main,
body.is-entering .p4p-page--grid-full {
    animation: p4pPageRise 0.85s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}

body.is-exiting .p4p-services-main,
body.is-exiting .p4p-page--grid-full {
    animation: p4pPageSink 0.55s cubic-bezier(0.55, 0, 0.45, 1) forwards;
}

@keyframes p4pPageRise {
    from {
        opacity: 0;
        transform: translateY(28px) scale(0.98);
        filter: blur(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes p4pPageSink {
    from {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
    to {
        opacity: 0;
        transform: translateY(-18px) scale(0.985);
        filter: blur(4px);
    }
}

body.is-exiting[data-p4p-exit="services"] .p4p-page-transition__stripe {
    background: linear-gradient(180deg, #0a1018 0%, #101828 45%, #080c14 100%);
}

body.is-exiting[data-p4p-exit="services"] .p4p-page-transition__stripe:nth-child(odd) {
    background: linear-gradient(180deg, #0c1420 0%, #142030 50%, #0a1018 100%);
}

body.is-entering .p4p-page-transition__ring {
    animation: p4pRingSpin 0.9s cubic-bezier(0.19, 1, 0.22, 1);
}

@keyframes p4pRingSpin {
    from { transform: rotate(-90deg) scale(0.85); opacity: 0; }
    to { transform: rotate(0deg) scale(1); opacity: 1; }
}

.p4p-service-page.is-page-visible .p4p-service-single-hero__visual {
    animation: p4pDeviceIn 1s cubic-bezier(0.19, 1, 0.22, 1) 0.15s both;
}

@keyframes p4pDeviceIn {
    from { opacity: 0; transform: perspective(900px) rotateY(-12deg) translateY(20px); }
    to { opacity: 1; transform: perspective(900px) rotateY(0) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    body.is-entering .p4p-services-main,
    body.is-exiting .p4p-services-main,
    body.is-entering .p4p-page--grid-full,
    body.is-exiting .p4p-page--grid-full,
    .p4p-service-page.is-page-visible .p4p-service-single-hero__visual {
        animation: none !important;
    }
}
