/* ── Animations and transitions ── */

/* Counter number pop */
@keyframes es-pop {
	from { transform: scale(0.8); opacity: 0; }
	to   { transform: scale(1);   opacity: 1; }
}

.es-stat-number.is-visible {
	animation: es-pop 0.4s ease forwards;
}

/* Gradient text */
.es-gradient-text {
	background: var(--wp--preset--gradient--primary-to-accent);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Pulsing dot (status indicator) */
@keyframes es-pulse {
	0%, 100% { opacity: 1; }
	50%       { opacity: 0.4; }
}

.es-pulse {
	animation: es-pulse 2s ease infinite;
}

/* Scroll indicator arrow */
@keyframes es-bounce {
	0%, 100% { transform: translateY(0); }
	50%       { transform: translateY(0.375rem); }
}

.es-scroll-arrow {
	animation: es-bounce 1.6s ease infinite;
}

/* Card hover lift */
.es-card {
	transition: box-shadow var(--es-transition), transform var(--es-transition);
}

.es-card:hover {
	box-shadow: var(--es-shadow-hover);
	transform: translateY(-2px);
}
