/* Hovers */
.has-hover__color:not(.wp-block-button):hover {
	color: var(--hover-color) !important;
}
.has-hover__background-color:not(.wp-block-button):hover {
	background-color: var(--hover-background-color) !important;
}
.has-hover__border-color:not(.wp-block-button):hover {
	border-color: var(--hover-border-color) !important;
}
.wp-block-button.has-hover__color:hover .wp-element-button {
	color: var(--hover-color) !important;
}
.wp-block-button.has-hover__background-color:hover .wp-element-button {
	background-color: var(--hover-background-color) !important;
}
.wp-block-button.has-hover__border-color:hover .wp-element-button {
	border-color: var(--hover-border-color) !important;
}

/* Animations */
@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(0.8);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}
@keyframes slideUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(-30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes slideLeft {
	from {
		opacity: 0;
		transform: translateX(30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}
@keyframes slideRight {
	from {
		opacity: 0;
		transform: translateX(-30px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}
.has-animation-effect {
	animation-duration: var(--animation-duration, 0.4s);
	animation-delay: var(--animation-delay, 0s);
	animation-timing-function: var(--animation-easing, ease-out);
	animation-fill-mode: both;
	animation-play-state: paused;
}
.has-animation-effect:not(.animation-trigger-onAppear) {
	opacity: 0;
}
.has-animation-effect.animation-preset-fadeIn {
	animation-name: fadeIn;
}
.has-animation-effect.animation-preset-scaleIn {
	animation-name: scaleIn;
}
.has-animation-effect.animation-preset-slideUp {
	animation-name: slideUp;
}
.has-animation-effect.animation-preset-slideDown {
	animation-name: slideDown;
}
.has-animation-effect.animation-preset-slideLeft {
	animation-name: slideLeft;
}
.has-animation-effect.animation-preset-slideRight {
	animation-name: slideRight;
}
.has-animation-effect.animation-trigger-onAppear {
	animation-play-state: running;
}
.has-animation-effect.animation-trigger-onScroll.animation-play,
.has-animation-effect.animation-trigger-onHover.animation-play {
	animation-play-state: running;
	opacity: 1;
}
.has-animation-effect.animation-trigger-onHover:not(.animation-play) {
	opacity: 1;
	transform: none;
}
.has-animation-effect.animation-trigger-onHover:hover {
	animation-play-state: running;
}
