.mod-has-floating-effect {
	--mod-floating-distance: 14px;
	--mod-floating-custom-x: 0px;
	--mod-floating-custom-y: -14px;
	--mod-floating-duration: 3.2s;
	--mod-floating-delay: 0s;
	--mod-floating-easing: ease-in-out;
	--mod-floating-x: 0px;
	--mod-floating-y: calc(var(--mod-floating-distance) * -1);
	animation: mod-floating-effect var(--mod-floating-duration) var(--mod-floating-easing) var(--mod-floating-delay) infinite alternate both;
	will-change: translate;
}

.mod-floating-direction--up-down {
	--mod-floating-x: 0px;
	--mod-floating-y: calc(var(--mod-floating-distance) * -1);
}

.mod-floating-direction--down-up {
	--mod-floating-x: 0px;
	--mod-floating-y: var(--mod-floating-distance);
}

.mod-floating-direction--left-right {
	--mod-floating-x: calc(var(--mod-floating-distance) * -1);
	--mod-floating-y: 0px;
}

.mod-floating-direction--right-left {
	--mod-floating-x: var(--mod-floating-distance);
	--mod-floating-y: 0px;
}

.mod-floating-direction--custom {
	--mod-floating-x: var(--mod-floating-custom-x);
	--mod-floating-y: var(--mod-floating-custom-y);
}

.mod-floating-pause-on-hover:hover {
	animation-play-state: paused;
}

@keyframes mod-floating-effect {
	from { translate: 0 0; }
	to { translate: var(--mod-floating-x) var(--mod-floating-y); }
}

@media (min-width: 1025px) {
	.mod-floating-disabled-desktop { animation: none !important; translate: none !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.mod-floating-disabled-tablet { animation: none !important; translate: none !important; }
}

@media (max-width: 767px) {
	.mod-floating-disabled-mobile { animation: none !important; translate: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	.mod-has-floating-effect { animation: none !important; translate: none !important; }
}
