.mod-csb {
	--mod-csb-size: 260px;
	--mod-csb-effect-distance: 70px;
	--mod-csb-effect-opacity: .3;
	--mod-csb-effect-blur: 18px;
	--mod-csb-effect-size: 1;
	--mod-csb-effect-scale: 1.2;
	--mod-csb-effect-delay: 0ms;
	--mod-csb-effect-duration: 520ms;
	--mod-csb-effect-x: 0px;
	--mod-csb-effect-y: 0px;
	position: relative;
	width: var(--mod-csb-size);
	height: var(--mod-csb-size);
	max-width: 100%;
	isolation: isolate;
}

.mod-csb__effect,
.mod-csb__box {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.mod-csb__effect {
	z-index: 1;
	opacity: 0;
	pointer-events: none;
	transform: translate(0, 0) scale(var(--mod-csb-effect-size));
	filter: blur(0);
	transition:
		transform var(--mod-csb-effect-duration) cubic-bezier(.2, .75, .2, 1) var(--mod-csb-effect-delay),
		opacity var(--mod-csb-effect-duration) ease var(--mod-csb-effect-delay),
		filter var(--mod-csb-effect-duration) ease var(--mod-csb-effect-delay);
}

.mod-csb__box {
	z-index: 2;
	display: flex;
	align-items: stretch;
	justify-content: center;
	overflow: hidden;
	transition-property: transform, background-color, border-color, box-shadow;
}

.mod-csb__content {
	position: relative;
	z-index: 3;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	pointer-events: none;
}

.mod-csb__icon,
.mod-csb__image-wrap,
.mod-csb__button {
	pointer-events: auto;
}

.mod-csb__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	transition-property: transform, color, background-color, border-color, box-shadow;
}

.mod-csb__icon i,
.mod-csb__icon svg {
	display: block;
	fill: currentColor;
}


.mod-csb__image-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	max-width: 100%;
	overflow: hidden;
	transition-property: transform, opacity, background-color, border-color, box-shadow, filter;
}

.mod-csb__image-wrap img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center center;
	transition-property: transform, opacity, filter;
}

.mod-csb__title,
.mod-csb__text {
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	transition: color .28s ease;
}

.mod-csb__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: inherit;
	text-decoration: none;
	line-height: 1;
	transition-property: transform, color, background-color, border-color, box-shadow;
}

.mod-csb__box-link {
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
}

.elementor-editor-active .mod-csb__box-link {
	pointer-events: none;
}

.mod-csb--effect-off .mod-csb__effect {
	display: none;
}

.mod-csb--direction-center {
	--mod-csb-effect-x: 0px;
	--mod-csb-effect-y: 0px;
}
.mod-csb--direction-right {
	--mod-csb-effect-x: var(--mod-csb-effect-distance);
	--mod-csb-effect-y: 0px;
}
.mod-csb--direction-left {
	--mod-csb-effect-x: calc(var(--mod-csb-effect-distance) * -1);
	--mod-csb-effect-y: 0px;
}
.mod-csb--direction-top {
	--mod-csb-effect-x: 0px;
	--mod-csb-effect-y: calc(var(--mod-csb-effect-distance) * -1);
}
.mod-csb--direction-bottom {
	--mod-csb-effect-x: 0px;
	--mod-csb-effect-y: var(--mod-csb-effect-distance);
}
.mod-csb--direction-top-right {
	--mod-csb-effect-x: var(--mod-csb-effect-distance);
	--mod-csb-effect-y: calc(var(--mod-csb-effect-distance) * -1);
}
.mod-csb--direction-top-left {
	--mod-csb-effect-x: calc(var(--mod-csb-effect-distance) * -1);
	--mod-csb-effect-y: calc(var(--mod-csb-effect-distance) * -1);
}
.mod-csb--direction-bottom-right {
	--mod-csb-effect-x: var(--mod-csb-effect-distance);
	--mod-csb-effect-y: var(--mod-csb-effect-distance);
}
.mod-csb--direction-bottom-left {
	--mod-csb-effect-x: calc(var(--mod-csb-effect-distance) * -1);
	--mod-csb-effect-y: var(--mod-csb-effect-distance);
}

.mod-csb--effect-blink:hover .mod-csb__effect {
	opacity: var(--mod-csb-effect-opacity);
	transform: translate(var(--mod-csb-effect-x), var(--mod-csb-effect-y)) scale(var(--mod-csb-effect-size)) scale(var(--mod-csb-effect-scale));
	filter: blur(var(--mod-csb-effect-blur));
}

.mod-csb--effect-slide:hover .mod-csb__effect {
	opacity: var(--mod-csb-effect-opacity);
	transform: translate(var(--mod-csb-effect-x), var(--mod-csb-effect-y)) scale(var(--mod-csb-effect-size));
	filter: blur(var(--mod-csb-effect-blur));
}

@media (prefers-reduced-motion: reduce) {
	.mod-csb__effect,
	.mod-csb__box,
	.mod-csb__icon,
	.mod-csb__image-wrap,
	.mod-csb__image-wrap img,
	.mod-csb__button {
		animation: none !important;
		transition-duration: 0.01ms !important;
	}
}
