/**
 * Elementor Random Animations
 * All classes are intentionally prefixed with "anim-" for easy use in Elementor.
 */

.anim-float {
	animation: era-float 3.5s ease-in-out infinite;
	will-change: transform;
}

@keyframes era-float {
	0%, 100% { transform: translate3d(0, 0, 0); }
	50% { transform: translate3d(0, -14px, 0); }
}

.anim-pulse {
	animation: era-pulse 2.2s ease-in-out infinite;
	will-change: transform;
}

@keyframes era-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.055); }
}

.anim-breathe {
	animation: era-breathe 4.5s ease-in-out infinite;
	will-change: transform, opacity;
}

@keyframes era-breathe {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.035); opacity: .9; }
}

.anim-rotate {
	animation: era-rotate 12s linear infinite;
	will-change: transform;
}

@keyframes era-rotate {
	to { transform: rotate(360deg); }
}

.anim-swing {
	transform-origin: top center;
	animation: era-swing 3s ease-in-out infinite;
	will-change: transform;
}

@keyframes era-swing {
	0%, 100% { transform: rotate(-3deg); }
	50% { transform: rotate(3deg); }
}

.anim-wiggle {
	animation: era-wiggle 4s ease-in-out infinite;
	will-change: transform;
}

@keyframes era-wiggle {
	0%, 78%, 100% { transform: rotate(0); }
	83% { transform: rotate(-4deg); }
	88% { transform: rotate(4deg); }
	93% { transform: rotate(-2deg); }
	97% { transform: rotate(2deg); }
}

.anim-drift {
	animation: era-drift 5s ease-in-out infinite;
	will-change: transform;
}

@keyframes era-drift {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
	50% { transform: translate3d(10px, -8px, 0) rotate(1.5deg); }
}

.anim-lift,
.anim-zoom-hover {
	transition: transform .35s ease, box-shadow .35s ease, filter .35s ease;
	will-change: transform;
}

.anim-lift:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 45px rgba(0, 0, 0, .14);
}

.anim-zoom-hover:hover {
	transform: scale(1.04);
}

.anim-shine,
.anim-shine > .elementor-widget-container,
.anim-shine .elementor-button,
.anim-shine .elementor-cta__content {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.anim-shine::before,
.anim-shine > .elementor-widget-container::before,
.anim-shine .elementor-button::before,
.anim-shine .elementor-cta__content::before {
	content: "";
	position: absolute;
	top: -55%;
	left: -85%;
	width: 42%;
	height: 210%;
	z-index: 3;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .62), transparent);
	transform: rotate(20deg);
	animation: era-shine 3.6s ease-in-out infinite;
}

@keyframes era-shine {
	0%, 12% { left: -85%; }
	58%, 100% { left: 145%; }
}

.anim-glow {
	animation: era-glow 2.8s ease-in-out infinite;
}

@keyframes era-glow {
	0%, 100% { filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0)); }
	50% { filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .22)); }
}

.anim-gradient {
	background-size: 250% 250% !important;
	animation: era-gradient 7s ease infinite;
}

@keyframes era-gradient {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

/* Animation speed helpers. */
.anim-speed-slow { animation-duration: 6s !important; }
.anim-speed-fast { animation-duration: 1.6s !important; }
.anim-delay-1 { animation-delay: .35s !important; }
.anim-delay-2 { animation-delay: .7s !important; }
.anim-delay-3 { animation-delay: 1.05s !important; }

/* Keep motion comfortable and accessible. */
@media (prefers-reduced-motion: reduce) {
	.anim-float,
	.anim-pulse,
	.anim-breathe,
	.anim-rotate,
	.anim-swing,
	.anim-wiggle,
	.anim-drift,
	.anim-shine,
	.anim-shine::before,
	.anim-shine > .elementor-widget-container::before,
	.anim-shine .elementor-button::before,
	.anim-shine .elementor-cta__content::before,
	.anim-glow,
	.anim-gradient {
		animation: none !important;
	}

	.anim-lift,
	.anim-zoom-hover {
		transition: none !important;
	}

	.anim-lift:hover,
	.anim-zoom-hover:hover {
		transform: none !important;
	}
}
