.elementor-widget-md_sub_visual {
	width: 100%;
	max-width: none;
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-top: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	padding-inline: 0 !important;
}

.elementor-widget-md_sub_visual > .elementor-widget-container {
	width: 100%;
	max-width: none;
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-top: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	padding-inline: 0 !important;
}

.md-sub-visual {
	--md-sub-visual-bg-desktop: none;
	--md-sub-visual-bg-tablet: var(--md-sub-visual-bg-desktop);
	--md-sub-visual-bg-mobile: var(--md-sub-visual-bg-tablet);
	--md-sub-visual-bg-x: 50%;
	--md-sub-visual-bg-y: 50%;
	--md-sub-visual-bg-size: cover;
	--md-sub-visual-bg-repeat: no-repeat;
	--md-sub-visual-height: 250px;
	--md-sub-visual-start-scale: 1.2;
	--md-sub-visual-bg-duration: 2s;
	--md-sub-visual-title-start-spacing: 30px;
	--md-sub-visual-title-end-spacing: 0px;
	--md-sub-visual-title-duration: 1s;
	--md-sub-visual-title-delay: 1.25s;
	--md-sub-visual-subtitle-duration: 1s;
	--md-sub-visual-subtitle-delay: .75s;
	position: relative;
	display: block;
	width: 100%;
	max-width: none;
	height: var(--md-sub-visual-height);
	min-height: 0;
	margin-top: 0 !important;
	margin-right: 0;
	margin-left: 0;
	overflow: hidden;
	box-sizing: border-box;
	isolation: isolate;
}

.md-sub-visual,
.md-sub-visual * {
	box-sizing: border-box;
}

.md-sub-visual__preload {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	display: block;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	clip-path: inset(50%);
}

.md-sub-visual__preload-image {
	display: block;
	width: 1px;
	height: 1px;
}

.md-sub-visual__background,
.md-sub-visual__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.md-sub-visual__background {
	z-index: 0;
	background-image: var(--md-sub-visual-bg-desktop);
	background-position: var(--md-sub-visual-bg-x) var(--md-sub-visual-bg-y);
	background-size: var(--md-sub-visual-bg-size);
	background-repeat: var(--md-sub-visual-bg-repeat);
	clip-path: inset(0 0 0 0);
	transform: scale(1);
	transform-origin: 50% 50%;
}

/*
 * Keep the visual at the reveal start frame while the responsive preload image
 * is downloading/decoding. This prevents the old case where the 2s animation
 * could finish before a CSS background had actually appeared.
 */
.md-sub-visual.is-background-motion-enabled:not(.is-image-ready) .md-sub-visual__background {
	clip-path: inset(0 0 100% 0);
	transform: scale(var(--md-sub-visual-start-scale));
}

.md-sub-visual.is-animation-running.is-image-ready.is-background-motion-enabled .md-sub-visual__background,
.md-sub-visual.is-animation-running.is-image-ready.is-background-animated .md-sub-visual__background {
	will-change: clip-path, transform;
	animation: mdSubVisualReveal var(--md-sub-visual-bg-duration) cubic-bezier(.22, 1, .36, 1) both;
}

.md-sub-visual__overlay {
	z-index: 1;
	background-color: #000000;
	opacity: 0;
}

.md-sub-visual.is-overlay-disabled .md-sub-visual__overlay {
	display: none;
}

.md-sub-visual__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: 20px clamp(16px, 4vw, 72px);
	color: #ffffff;
	text-align: center;
}

.md-sub-visual__title,
.md-sub-visual__subtitle {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	color: #ffffff;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: normal;
}

.md-sub-visual__title {
	font-family: "DM Serif Text", Georgia, "Times New Roman", serif;
	font-size: 70px;
	font-weight: 400;
	line-height: 1.1;
	opacity: 1;
	letter-spacing: var(--md-sub-visual-title-end-spacing);
}

.md-sub-visual.is-title-motion-enabled:not(.is-image-ready) .md-sub-visual__title {
	opacity: 0;
	letter-spacing: var(--md-sub-visual-title-start-spacing);
	transform: translateY(30px);
}

.md-sub-visual.is-animation-running.is-image-ready.is-title-animated .md-sub-visual__title,
.md-sub-visual.is-animation-running.is-image-ready.is-title-motion-enabled .md-sub-visual__title {
	animation: mdSubVisualTitleReveal var(--md-sub-visual-title-duration) ease both;
	animation-delay: var(--md-sub-visual-title-delay);
}

.md-sub-visual__subtitle {
	margin-top: 12px;
	font-size: 18px;
	line-height: 1.4;
	opacity: 1;
	transform: none;
}

.md-sub-visual.is-subtitle-motion-enabled:not(.is-image-ready) .md-sub-visual__subtitle {
	opacity: 0;
	transform: translateY(20px);
}

.md-sub-visual.is-animation-running.is-image-ready.is-subtitle-motion-enabled .md-sub-visual__subtitle {
	animation: mdSubVisualSubtitleReveal var(--md-sub-visual-subtitle-duration) ease both;
	animation-delay: var(--md-sub-visual-subtitle-delay);
}

@keyframes mdSubVisualReveal {
	from {
		clip-path: inset(0 0 100% 0);
		transform: scale(var(--md-sub-visual-start-scale));
	}
	to {
		clip-path: inset(0 0 0 0);
		transform: scale(1);
	}
}

@keyframes mdSubVisualTitleReveal {
	from {
		opacity: 0;
		letter-spacing: var(--md-sub-visual-title-start-spacing);
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		letter-spacing: var(--md-sub-visual-title-end-spacing);
		transform: none;
	}
}

@keyframes mdSubVisualSubtitleReveal {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: none; }
}

.md-sub-visual-leading-shell {
	--padding-top: 0px !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	padding-block-start: 0 !important;
}

body:not(.elementor-editor-active):not(.elementor-edit-area-active) .md-sub-visual-leading-shell {
	--padding-right: 0px !important;
	--padding-left: 0px !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	padding-inline-start: 0 !important;
	padding-inline-end: 0 !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
	.md-sub-visual__background {
		background-image: var(--md-sub-visual-bg-tablet);
	}
	.md-sub-visual__title {
		font-size: 54px;
	}
}

@media (max-width: 767.98px) {
	.md-sub-visual {
		--md-sub-visual-title-start-spacing: 10px;
	}
	.md-sub-visual__background {
		background-image: var(--md-sub-visual-bg-mobile);
	}
	.md-sub-visual__title {
		font-size: 38px;
	}
	.md-sub-visual__subtitle {
		margin-top: 8px;
		font-size: 14px;
	}
}

.elementor-editor-active .md-sub-visual,
.elementor-edit-area-active .md-sub-visual {
	width: 100%;
	margin-right: 0;
	margin-left: 0;
}

.elementor-editor-active .elementor-widget-md_sub_visual,
.elementor-edit-area-active .elementor-widget-md_sub_visual {
	width: calc(100% + var(--padding-left, 0px) + var(--padding-right, 0px)) !important;
	max-width: none !important;
	margin-right: calc(0px - var(--padding-right, 0px)) !important;
	margin-left: calc(0px - var(--padding-left, 0px)) !important;
}

.elementor-editor-active .md-sub-visual:not(.is-background-animated) .md-sub-visual__background,
.elementor-editor-active .md-sub-visual:not(.is-title-animated) .md-sub-visual__title {
	animation: none;
}

@media (prefers-reduced-motion: reduce) {
	.md-sub-visual__background,
	.md-sub-visual__title,
	.md-sub-visual__subtitle {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
		clip-path: inset(0 0 0 0) !important;
		letter-spacing: var(--md-sub-visual-title-end-spacing, 0) !important;
	}
}
