.vred-hover-effect__overlay,
.vred-hover-effect--pseudo-overlay::after {
	position: absolute;
	inset: -1px;
	pointer-events: none;
	display: block;
	border-radius: inherit;
	background: var(--vred-hover-effect-background);
	transform-origin: center center;
	opacity: 1;
	transition:
		transform var(--vred-hover-effect-duration, 300ms) var(--vred-hover-effect-timing, ease-in-out),
		opacity var(--vred-hover-effect-duration, 300ms) var(--vred-hover-effect-timing, ease-in-out)
}
.vred-hover-effect__overlay {
	z-index: 1
}
.vred-hover-effect--pseudo-overlay::after {
	content: "";
	z-index: -1
}
.vred-hover-effect--fill-ltr .vred-hover-effect__overlay,
.vred-hover-effect--fill-ltr.vred-hover-effect--pseudo-overlay::after {
	transform: scaleX(0);
	transform-origin: left center
}
.vred-hover-effect--fill-rtl .vred-hover-effect__overlay,
.vred-hover-effect--fill-rtl.vred-hover-effect--pseudo-overlay::after {
	transform: scaleX(0);
	transform-origin: right center
}
.vred-hover-effect--fill-center .vred-hover-effect__overlay,
.vred-hover-effect--fill-center.vred-hover-effect--pseudo-overlay::after {
	transform: scaleX(0);
	transform-origin: center center
}
.vred-hover-effect--bounce-ltr .vred-hover-effect__overlay,
.vred-hover-effect--bounce-ltr.vred-hover-effect--pseudo-overlay::after {
	transform: scaleX(0);
	transform-origin: left center;
	transition-timing-function: cubic-bezier(.52, 1.64, .37, .66)
}
.vred-hover-effect--bounce-rtl .vred-hover-effect__overlay,
.vred-hover-effect--bounce-rtl.vred-hover-effect--pseudo-overlay::after {
	transform: scaleX(0);
	transform-origin: right center;
	transition-timing-function: cubic-bezier(.52, 1.64, .37, .66)
}
.vred-hover-effect--lift-up:not(:disabled):hover,
.vred-hover-effect--lift-up:not(:disabled):focus-visible {
	transform: translateY(-3px)
}
.vred-hover-effect--fill-ltr:not(:disabled):hover .vred-hover-effect__overlay,
.vred-hover-effect--fill-ltr:not(:disabled):focus-visible .vred-hover-effect__overlay,
.vred-hover-effect--fill-ltr.vred-hover-effect--pseudo-overlay:not(:disabled):hover::after,
.vred-hover-effect--fill-ltr.vred-hover-effect--pseudo-overlay:not(:disabled):focus-visible::after,
.vred-hover-effect--fill-rtl:not(:disabled):hover .vred-hover-effect__overlay,
.vred-hover-effect--fill-rtl:not(:disabled):focus-visible .vred-hover-effect__overlay,
.vred-hover-effect--fill-rtl.vred-hover-effect--pseudo-overlay:not(:disabled):hover::after,
.vred-hover-effect--fill-rtl.vred-hover-effect--pseudo-overlay:not(:disabled):focus-visible::after,
.vred-hover-effect--fill-center:not(:disabled):hover .vred-hover-effect__overlay,
.vred-hover-effect--fill-center:not(:disabled):focus-visible .vred-hover-effect__overlay,
.vred-hover-effect--fill-center.vred-hover-effect--pseudo-overlay:not(:disabled):hover::after,
.vred-hover-effect--fill-center.vred-hover-effect--pseudo-overlay:not(:disabled):focus-visible::after {
	transform: scaleX(1)
}
.vred-hover-effect--bounce-ltr:not(:disabled):hover .vred-hover-effect__overlay,
.vred-hover-effect--bounce-ltr:not(:disabled):focus-visible .vred-hover-effect__overlay,
.vred-hover-effect--bounce-ltr.vred-hover-effect--pseudo-overlay:not(:disabled):hover::after,
.vred-hover-effect--bounce-ltr.vred-hover-effect--pseudo-overlay:not(:disabled):focus-visible::after,
.vred-hover-effect--bounce-rtl:not(:disabled):hover .vred-hover-effect__overlay,
.vred-hover-effect--bounce-rtl:not(:disabled):focus-visible .vred-hover-effect__overlay,
.vred-hover-effect--bounce-rtl.vred-hover-effect--pseudo-overlay:not(:disabled):hover::after,
.vred-hover-effect--bounce-rtl.vred-hover-effect--pseudo-overlay:not(:disabled):focus-visible::after {
	transform: scaleX(1)
}
@media (prefers-reduced-motion: reduce) {
	.vred-hover-effect__overlay,
	.vred-hover-effect--pseudo-overlay::after {
		transition-duration: 1ms;
		animation-duration: 1ms
	}
}
