/* Subtle attention-grabbing animations for prices & discounts */

@keyframes price-pulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.06);
    }
}

@keyframes badge-pop {

    0%,
    100% {
        transform: scale(1) rotate(0deg);
        box-shadow: 0 0 0 0 rgba(255, 60, 60, 0.45);
    }

    50% {
        transform: scale(1.08) rotate(-1.5deg);
        box-shadow: 0 0 0 8px rgba(255, 60, 60, 0);
    }
}

@keyframes shine-sweep {
    0% {
        transform: translateX(-120%) skewX(-20deg);
    }

    60% {
        transform: translateX(220%) skewX(-20deg);
    }

    100% {
        transform: translateX(220%) skewX(-20deg);
    }
}

@keyframes old-price-strike {

    0%,
    100% {
        opacity: 0.6;
    }

    50% {
        opacity: 0.9;
    }
}

@keyframes count-blink {

    0%,
    100% {
        color: inherit;
    }

    50% {
        color: #e23b3b;
    }
}

/* New price — gentle pulse */
.price_item.new {
    animation: price-pulse 2.4s ease-in-out infinite;
    transform-origin: center;
    will-change: transform;
}

/* Discount badges — pop + glow */

.bundle-content.animation {
    overflow: hidden;
    position: relative;
    transform-origin: center;
}

/* Shine sweep across badges */
.bundle-content.animation::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 40%;
    height: 100%;
    background: linear-gradient(90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.55) 50%,
            transparent 100%);
    animation: shine-sweep 2.8s ease-in-out infinite;
    pointer-events: none;
}

/* Old (crossed-out) prices — soft fade */
.old-price,
.price_item.old {
    animation: old-price-strike 3s ease-in-out infinite;
}

/* "Залишилося N шт. зі знижкою" — blinking counter */
.products_count b {
    display: inline-block;
    animation: count-blink 1.6s ease-in-out infinite;
    font-weight: 700;
}