/* Bright Addons: Image Mask */
.e-con > .elementor-widget-bafe-image-mask,
.e-con-inner > .elementor-widget-bafe-image-mask {
	width: var(--container-widget-width, 100%);
	--flex-grow: var(--container-widget-flex-grow);
}

.bafe-im {
	--bafe-im-back: #e4ddff;
	--bafe-im-back-x: 6%;
	--bafe-im-back-y: 5%;
	--bafe-im-back-r: 0deg;
	--bafe-im-mask-size: 100% 100%;
	--bafe-im-speed: 6s;
	--bafe-im-shadow: 0px;
	--bafe-im-shadow-color: rgba(29, 27, 54, 0.25);
	display: flex;
	justify-content: center;
	min-width: min(100%, 120px);
	/* The shape behind may reach past a full-width image; never widen the page. */
	overflow-x: clip;
	padding: 2% 0;
}

.bafe-im .bafe-im__link {
	display: contents;
}

.bafe-im .bafe-im__frame {
	position: relative;
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 1 / 1;
	filter: drop-shadow(0 calc(var(--bafe-im-shadow) / 2) var(--bafe-im-shadow) var(--bafe-im-shadow-color));
	transition: transform 0.5s ease;
}

.bafe-im .bafe-im__mask,
.bafe-im .bafe-im__back {
	position: absolute;
	inset: 0;
	display: block;
	-webkit-mask-image: var(--bafe-im-mask);
	mask-image: var(--bafe-im-mask);
	-webkit-mask-size: var(--bafe-im-mask-size);
	mask-size: var(--bafe-im-mask-size);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	overflow: hidden;
}

.bafe-im .bafe-im__back {
	display: none;
	background: var(--bafe-im-back);
	transform: translate(var(--bafe-im-back-x), var(--bafe-im-back-y)) rotate(var(--bafe-im-back-r));
}

.bafe-im--back-yes .bafe-im .bafe-im__back {
	display: block;
}

.bafe-im .bafe-im__mask .bafe-im__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
	object-position: center;
	transition: transform 0.6s ease, filter 0.6s ease;
}

/* Shapes (drawn in a 100 x 100 box, stretched to the image box). */
.bafe-im--shape-circle .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><circle cx='50' cy='50' r='50'/></svg>");
}

.bafe-im--shape-squircle .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M50 0C88 0 100 12 100 50S88 100 50 100 0 88 0 50 12 0 50 0Z'/></svg>");
}

.bafe-im--shape-blob-1 .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M83.6 17.7C94.9 29.3 100.9 46.4 98.1 62.1 95.3 77.8 83.8 92.1 68.7 97.8 53.6 103.5 34.9 100.6 21.4 91.4 7.9 82.2-.4 66.3 0 50.3.4 34.3 9.5 18.2 23 9.4 36.4.6 54.2-.9 67.4 3.2 74.1 5.3 79 13.1 83.6 17.7Z'/></svg>");
}

.bafe-im--shape-blob-2 .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M76.4 9.6C89.1 17.5 98.6 32.2 99.9 47.5 101.2 62.8 94.3 78.7 82.3 88.6 70.3 98.5 53.2 102.4 38 98.5 22.8 94.6 9.5 82.9 3.5 68.4-2.5 53.9-1.2 36.6 6.7 23.6 14.6 10.6 29.1 1.9 44.2.3 55.5-.9 67.1 3.6 76.4 9.6Z'/></svg>");
}

.bafe-im--shape-blob-3 .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M71.5 6.9C85.6 13.7 97.4 28 99.6 43.7 101.8 59.5 94.4 76.7 81.8 87.1 69.2 97.6 51.4 101.2 35.9 96.9 20.4 92.6 7.2 80.4 2.3 65.5-2.6 50.6.8 33 10.3 20.6 19.8 8.2 35.4 1 50.1.1 57.4-.3 65 3.5 71.5 6.9Z'/></svg>");
}

.bafe-im--shape-hexagon .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='50,0 93.3,25 93.3,75 50,100 6.7,75 6.7,25'/></svg>");
}

.bafe-im--shape-diamond .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='50,0 100,50 50,100 0,50'/></svg>");
}

.bafe-im--shape-triangle .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='50,0 100,100 0,100'/></svg>");
}

.bafe-im--shape-star .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='50,2 61.8,35.5 97.6,35.5 68.9,56.5 79.4,90.5 50,70 20.6,90.5 31.1,56.5 2.4,35.5 38.2,35.5'/></svg>");
}

.bafe-im--shape-heart .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M50 94C22 74 1 57 1 32 1 15 13 3 28.5 3 37.8 3 45 8 50 16 55 8 62.2 3 71.5 3 87 3 99 15 99 32 99 57 78 74 50 94Z'/></svg>");
}

.bafe-im--shape-arch .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M0 100V50C0 22.4 22.4 0 50 0S100 22.4 100 50V100Z'/></svg>");
}

.bafe-im--shape-leaf .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M0 100V42C0 18.8 18.8 0 42 0H100V58C100 81.2 81.2 100 58 100Z'/></svg>");
}

.bafe-im--shape-brush .bafe-im {
	--bafe-im-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><path d='M4 9C15 4 27 7 38 4 50 1 62 6 74 3 84 1 93 2 98 7 100 18 96 28 98 39 100 50 97 61 99 72 100 83 99 92 92 97 80 100 68 96 56 98 44 100 32 96 20 98 11 99 4 96 2 89 0 78 4 67 2 56 0 45 3 34 1 23 0 17 0 12 4 9Z'/></svg>");
}

/* Morphing blob: drawn with border radius so it can change shape smoothly. */
.bafe-im--shape-blob-morph .bafe-im .bafe-im__mask,
.bafe-im--shape-blob-morph .bafe-im .bafe-im__back {
	-webkit-mask-image: none;
	mask-image: none;
	border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
	animation: bafe-im-morph calc(var(--bafe-im-speed) * 1.4) ease-in-out infinite;
}

.bafe-im--shape-blob-morph .bafe-im .bafe-im__back {
	animation-delay: -2s;
}

@keyframes bafe-im-morph {
	0%, 100% { border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%; }
	33% { border-radius: 70% 30% 46% 54% / 30% 39% 61% 70%; }
	66% { border-radius: 30% 70% 38% 62% / 62% 41% 59% 38%; }
}

/* Custom shape with no file yet: plain rounded box. */
.bafe-im--shape-custom .bafe-im {
	--bafe-im-mask: linear-gradient(#000, #000);
}

/* Motion. */
.bafe-im--motion-float .bafe-im .bafe-im__frame {
	animation: bafe-im-float var(--bafe-im-speed) ease-in-out infinite;
}

.bafe-im--motion-sway .bafe-im .bafe-im__frame {
	animation: bafe-im-sway var(--bafe-im-speed) ease-in-out infinite;
}

.bafe-im--motion-pulse .bafe-im .bafe-im__frame {
	animation: bafe-im-pulse var(--bafe-im-speed) ease-in-out infinite;
}

.bafe-im--motion-orbit .bafe-im .bafe-im__back {
	animation: bafe-im-orbit var(--bafe-im-speed) linear infinite;
}

@keyframes bafe-im-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4%); }
}

@keyframes bafe-im-sway {
	0%, 100% { transform: rotate(-3deg); }
	50% { transform: rotate(3deg); }
}

@keyframes bafe-im-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.04); }
}

@keyframes bafe-im-orbit {
	from { transform: rotate(0deg) translate(var(--bafe-im-back-x), var(--bafe-im-back-y)) rotate(var(--bafe-im-back-r)); }
	to { transform: rotate(360deg) translate(var(--bafe-im-back-x), var(--bafe-im-back-y)) rotate(var(--bafe-im-back-r)); }
}

/* Hover effects. */
.bafe-im--hover-zoom .bafe-im .bafe-im__frame:hover .bafe-im__img {
	transform: scale(1.08);
}

.bafe-im--hover-zoom-out .bafe-im .bafe-im__img {
	transform: scale(1.1);
}

.bafe-im--hover-zoom-out .bafe-im .bafe-im__frame:hover .bafe-im__img {
	transform: scale(1);
}

.bafe-im--hover-color .bafe-im .bafe-im__img {
	filter: grayscale(1);
}

.bafe-im--hover-color .bafe-im .bafe-im__frame:hover .bafe-im__img {
	filter: none;
}

.bafe-im--hover-tilt .bafe-im .bafe-im__frame:hover .bafe-im__mask {
	transform: rotate(-4deg) scale(1.02);
}

.bafe-im--hover-tilt .bafe-im .bafe-im__mask {
	transition: transform 0.5s ease;
}

.bafe-im .bafe-im__link:focus-visible .bafe-im__frame {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.bafe-im .bafe-im__frame,
	.bafe-im .bafe-im__mask,
	.bafe-im .bafe-im__back,
	.bafe-im .bafe-im__img {
		animation: none !important;
		transition: none !important;
	}
}

.bafe-im [hidden] {
	display: none !important;
}
