/* Woo COD Checkout — Button animation effects.
   Each effect is scoped to a `.wcc-anim-*` class and reads the
   `--wcc-anim-speed` custom property set inline by the plugin. */

:root {
	--wcc-anim-speed: 2s;
}

/* Rainbow (RGB) */
.wcc-anim-rainbow {
	background: linear-gradient(270deg, #ff0000, #ff9900, #33cc33, #3399ff, #9933ff, #ff0000);
	background-size: 1200% 1200%;
	animation: wcc-rainbow var(--wcc-anim-speed) linear infinite;
}
@keyframes wcc-rainbow {
	0%   { background-position: 0% 50%; }
	100% { background-position: 100% 50%; }
}

/* Snake border */
.wcc-anim-snake {
	position: relative;
	z-index: 0;
	overflow: hidden;
}
.wcc-anim-snake::before {
	content: '';
	position: absolute;
	inset: -4px;
	z-index: -1;
	background: conic-gradient(from 0deg, transparent 0%, #fff 8%, transparent 16%);
	animation: wcc-snake var(--wcc-anim-speed) linear infinite;
}
@keyframes wcc-snake {
	to { transform: rotate(360deg); }
}

/* Pulse */
.wcc-anim-pulse {
	animation: wcc-pulse var(--wcc-anim-speed) ease-in-out infinite;
}
@keyframes wcc-pulse {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.05); }
}

/* Glow */
.wcc-anim-glow {
	animation: wcc-glow var(--wcc-anim-speed) ease-in-out infinite;
}
@keyframes wcc-glow {
	0%, 100% { box-shadow: 0 0 4px rgba(37,99,235,.4); }
	50%      { box-shadow: 0 0 22px rgba(37,99,235,.9); }
}

/* Bounce */
.wcc-anim-bounce {
	animation: wcc-bounce var(--wcc-anim-speed) ease infinite;
}
@keyframes wcc-bounce {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-8px); }
}

/* Vibration */
.wcc-anim-vibrate {
	animation: wcc-vibrate calc(var(--wcc-anim-speed) / 8) linear infinite;
}
@keyframes wcc-vibrate {
	0%, 100% { transform: translateX(0); }
	25%      { transform: translateX(-2px); }
	75%      { transform: translateX(2px); }
}

/* Flash */
.wcc-anim-flash {
	animation: wcc-flash var(--wcc-anim-speed) steps(1) infinite;
}
@keyframes wcc-flash {
	0%, 49% { opacity: 1; }
	50%, 99% { opacity: .35; }
	100% { opacity: 1; }
}

/* Wave */
.wcc-anim-wave {
	animation: wcc-wave var(--wcc-anim-speed) ease-in-out infinite;
	transform-origin: bottom center;
}
@keyframes wcc-wave {
	0%, 100% { transform: rotate(0deg); }
	25%      { transform: rotate(-3deg); }
	75%      { transform: rotate(3deg); }
}

/* Gradient animation */
.wcc-anim-gradient {
	background: linear-gradient(90deg, #2563eb, #7c3aed, #2563eb);
	background-size: 200% 100%;
	animation: wcc-gradient var(--wcc-anim-speed) linear infinite;
}
@keyframes wcc-gradient {
	0%   { background-position: 0% 0%; }
	100% { background-position: 200% 0%; }
}

/* Shine */
.wcc-anim-shine {
	position: relative;
	overflow: hidden;
}
.wcc-anim-shine::after {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,.6), transparent);
	animation: wcc-shine var(--wcc-anim-speed) ease-in-out infinite;
}
@keyframes wcc-shine {
	0%   { left: -60%; }
	100% { left: 130%; }
}

/* Neon */
.wcc-anim-neon {
	animation: wcc-neon var(--wcc-anim-speed) ease-in-out infinite alternate;
}
@keyframes wcc-neon {
	from {
		text-shadow: 0 0 4px #fff, 0 0 8px currentColor;
		box-shadow: 0 0 6px currentColor, 0 0 12px currentColor;
	}
	to {
		text-shadow: 0 0 10px #fff, 0 0 20px currentColor;
		box-shadow: 0 0 16px currentColor, 0 0 30px currentColor;
	}
}

.wcc-anim-none {
	animation: none;
}
