/* VIB CVI 3.0.0 — halo persistant, filtres et pagination Unlimited Elements. */
.vib-cvi-halo-host {
    position: relative !important;
    overflow: hidden !important;
    min-height: 120px;
    isolation: isolate !important;
    background: #fff !important;
}

.vib-cvi-halo-host img.vib-cvi-image-hidden,
img.vib-cvi-image-hidden {
    visibility: hidden !important;
    opacity: 0 !important;
    filter: none !important;
    transform: none !important;
}

.vib-cvi-halo {
    position: absolute !important;
    inset: 0 !important;
    z-index: 999999 !important;
    display: block !important;
    overflow: hidden !important;
    pointer-events: none !important;
    background: #fff !important;
}

.vib-cvi-halo-orb {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 72% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 999px !important;
    transform: translate(-50%, -50%) scale(.55);
    background: radial-gradient(circle,
        rgba(255,255,255,1) 0 12%,
        rgba(225,220,255,1) 24%,
        rgba(149,133,255,.92) 43%,
        rgba(79,56,229,.72) 58%,
        rgba(79,56,229,.24) 72%,
        rgba(79,56,229,0) 82%);
    box-shadow:
        0 0 22px rgba(79,56,229,.75),
        0 0 58px rgba(79,56,229,.45),
        0 0 95px rgba(79,56,229,.28);
    animation: vib-cvi-orb-pulse .78s ease-in-out infinite alternate !important;
    will-change: transform, opacity;
}

.vib-cvi-halo-ring {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 54% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 999px !important;
    border: 3px solid rgba(79,56,229,.72) !important;
    transform: translate(-50%, -50%) scale(.45);
    animation: vib-cvi-ring 1.05s ease-out infinite !important;
    will-change: transform, opacity;
}

.vib-cvi-halo span {
    position: absolute !important;
    top: -20% !important;
    bottom: -20% !important;
    left: -55% !important;
    width: 42% !important;
    transform: skewX(-18deg);
    background: linear-gradient(90deg,
        rgba(255,255,255,0),
        rgba(255,255,255,.25),
        rgba(255,255,255,1),
        rgba(202,193,255,.72),
        rgba(255,255,255,0));
    animation: vib-cvi-sweep .92s linear infinite !important;
    will-change: left;
}

@keyframes vib-cvi-orb-pulse {
    from { transform: translate(-50%, -50%) scale(.55); opacity: .62; }
    to   { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
}

@keyframes vib-cvi-ring {
    0%   { transform: translate(-50%, -50%) scale(.42); opacity: .95; }
    100% { transform: translate(-50%, -50%) scale(1.42); opacity: 0; }
}

@keyframes vib-cvi-sweep {
    from { left: -55%; }
    to   { left: 115%; }
}

@media (prefers-reduced-motion: reduce) {
    .vib-cvi-halo-orb,
    .vib-cvi-halo-ring,
    .vib-cvi-halo span {
        animation-duration: 1.15s !important;
    }
}
