/*
 * BS Reboot задає img { max-width: 100%; height: auto } — у порожній рамці висота стає 0.
 * Рамка з aspect-ratio + absolute img гарантують видиму площу.
 */
.intro-performance-split__thumb {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 14rem;
    aspect-ratio: 4 / 3;
}

.intro-performance-split__thumb > img.intro-performance-split__img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    object-fit: cover;
    z-index: 0;
}

.intro-performance-split__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.intro-performance-split__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.services__tile--lift {
  transition: transform 0.3s ease;
}

.services__tile--lift:hover {
  transform: scale(1.05);
}

/* process film — card image fit */
.process-film__img-wrap {
    aspect-ratio: 4 / 5;
    overflow: hidden;
}

.process-film__img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* process film — full-section animated primary blur */
.process-film__blur {
    position: absolute;
    border-radius: 50%;
    filter: blur(120px);
}

.process-film__blur--a {
    width: 75%;
    height: 85%;
    top: -25%;
    left: -20%;
    animation: process-film-blur-drift-a 10s ease-in-out infinite;
}

.process-film__blur--b {
    width: 70%;
    height: 80%;
    top: 0;
    right: -25%;
    animation: process-film-blur-drift-b 12s ease-in-out infinite;
}

.process-film__blur--c {
    width: 80%;
    height: 90%;
    bottom: -30%;
    left: 5%;
    animation: process-film-blur-drift-c 14s ease-in-out infinite;
}

.process-film__blur--d {
    width: 65%;
    height: 75%;
    top: 25%;
    left: 25%;
    animation: process-film-blur-drift-d 11s ease-in-out infinite;
}

.process-film__blur--delay {
    animation-delay: 2.5s;
}

@keyframes process-film-blur-drift-a {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.75;
    }

    50% {
        transform: translate(8%, 6%) scale(1.08);
        opacity: 1;
    }
}

@keyframes process-film-blur-drift-b {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.7;
    }

    50% {
        transform: translate(-6%, 8%) scale(1.06);
        opacity: 0.95;
    }
}

@keyframes process-film-blur-drift-c {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.65;
    }

    50% {
        transform: translate(5%, -6%) scale(1.1);
        opacity: 0.9;
    }
}

@keyframes process-film-blur-drift-d {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.6;
    }

    50% {
        transform: translate(-4%, 5%) scale(1.07);
        opacity: 0.85;
    }
}

@media (prefers-reduced-motion: reduce) {
    .process-film__blur {
        animation: none;
    }
}

/* integrations — unified hover (layout; shadow + lift; respect reduced motion) */
.integrations-card-hover {
    transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.integrations-card-hover:hover {
    box-shadow:
        0 20px 25px -5px rgb(0 0 0 / 0.1),
        0 8px 10px -6px rgb(0 0 0 / 0.1);
    transform: translateY(-2px) scale(1.03);
}

.integrations-card-hover--shadow-only {
    transition: box-shadow 0.35s ease;
}

.integrations-card-hover--shadow-only:hover {
    transform: none;
    box-shadow:
        0 20px 25px -5px rgb(0 0 0 / 0.1),
        0 8px 10px -6px rgb(0 0 0 / 0.1);
}

@media (prefers-reduced-motion: reduce) {
    .integrations-card-hover:hover {
        transform: none;
    }
}

/* Compact card width parity (TW w-32 = 8rem; BS has no w-32 utility) */
.integrations__tile-compact {
    width: 8rem;
}

/* Primary tile: wpg-preview --tw-primary-* | --bs-primary-scale-*; inherited --bs-primary hex */
.integrations__icon-tile {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    color: #fff;
    --_ie-from: rgb(var(--tw-primary-500, var(--bs-primary-scale-500, 99 102 241)) / 1);
    --_ie-to: rgb(var(--tw-primary-600, var(--bs-primary-scale-600, 79 70 229)) / 1);
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, var(--bs-primary-scale-600, 79 70 229)) / 1));
    background-image: linear-gradient(to bottom right, var(--_ie-from), var(--_ie-to));
}
.integrations__icon-tile i {
    color: inherit;
}
.integrations__icon-tile svg,
.integrations__icon-tile :is(path, circle, rect, polygon) {
    fill: currentColor;
}

/* Softer card hover shadow (avoids muddy stack with shadow-lg / BS cards) */
.integrations-card-hover:hover {
    box-shadow: 0 0.375rem 1rem rgba(15, 23, 42, 0.07);
}
.integrations-card-hover--shadow-only:hover {
    box-shadow: 0 0.375rem 1rem rgba(15, 23, 42, 0.07);
}

