/* WM Elementor Hero Slider */

.wm-hero-slider {
	--wm-content-max: 1200px;
	--wm-panel-content-width: 520px;
	--wm-panel-y: 58%;
	--wm-side-padding: 24px;

	--wm-bullet-size: 10px;
	--wm-bullet-gap: 10px;
	--wm-bullet-color: #ffffff;
	--wm-bullet-active-color: #b50031;
	--wm-bullet-hover-color: var(--wm-bullet-active-color);
	--wm-bullet-opacity: .45;
	--wm-bullet-border-width: 0px;
	--wm-bullet-border-color: #ffffff;
	--wm-pagination-bottom: 24px;

	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	overflow: hidden;
	box-sizing: border-box;
}

.wm-hero-slider *,
.wm-hero-slider *::before,
.wm-hero-slider *::after {
	box-sizing: border-box;
}

.wm-hero-slider__viewport {
	position: relative;
	width: 100%;
	height: 610px;
	overflow: hidden;
	background: #ececec;
}

.wm-hero-slider__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.wm-hero-slider__slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	background-image: var(--wm-slide-image);
	background-repeat: no-repeat;
	background-size: var(--wm-image-size, cover);
	background-position: var(--wm-image-position, center center);
	transition:
		opacity var(--wm-transition-speed, 650ms) ease,
		visibility var(--wm-transition-speed, 650ms) ease;
	will-change: opacity;
}

.wm-hero-slider__slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

.wm-hero-slider__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--wm-overlay-color, transparent);
	opacity: var(--wm-overlay-opacity, 0);
	pointer-events: none;
}

.wm-hero-slider__inner {
	position: absolute;
	z-index: 2;
	inset: 0;
	width: min(100%, var(--wm-content-max));
	max-width: var(--wm-content-max);
	height: 100%;
	margin: 0 auto;
	pointer-events: none;
}

.wm-hero-panel {
	position: absolute;
	left: 0;
	top: var(--wm-panel-y, 58%);
	transform: translateY(-50%);
	width: var(--wm-panel-content-width);
	min-height: 180px;
	display: flex;
	background: var(--wm-panel-bg, #B50031);
	color: var(--wm-text-color, #fff);
	pointer-events: auto;
}

/* Verlängert ausschließlich die farbige Fläche bis an den linken Viewport-Rand. */
.wm-hero-panel::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	right: 100%;
	bottom: 0;
	width: 100vw;
	background: inherit;
}

.wm-hero-panel__content {
	width: 100%;
	max-width: calc(100vw - 2 * var(--wm-side-padding));
	padding: 32px 38px 34px 0;
	color: inherit;
}

.wm-hero-slider__subtitle {
	margin: 0 0 12px;
	padding: 0;
	font-size: 15px;
	line-height: 1.45;
	font-weight: 400;
	text-transform: uppercase;
	color: var(--wm-subtitle-global-color, var(--wm-subtitle-color, var(--wm-text-color, #fff))) !important;
}

.wm-hero-slider__title {
	margin: 0;
	padding: 0;
	font-size: clamp(27px, 2.1vw, 42px);
	line-height: 1.08;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--wm-title-global-color, var(--wm-title-color, var(--wm-text-color, #fff))) !important;
}

.wm-hero-slider__title a {
	color: var(--wm-title-global-color, var(--wm-title-color, var(--wm-text-color, #fff))) !important;
	text-decoration: none;
	transition: opacity .2s ease, color .2s ease;
}

.wm-hero-slider__title a:hover,
.wm-hero-slider__title a:focus {
	color: var(--wm-title-global-hover-color, var(--wm-title-hover-color, var(--wm-title-color, var(--wm-text-color, #fff)))) !important;
	opacity: .9;
}

/*
 * Pagination liegt über dem aktiven Slide.
 * Dadurch gibt es KEINEN separaten weißen Bereich mehr unterhalb des Hintergrundbildes.
 */
.wm-hero-slider__pagination {
	position: absolute;
	z-index: 8;
	left: 0;
	right: 0;
	bottom: var(--wm-pagination-bottom, 24px);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--wm-bullet-gap, 10px);
	width: 100%;
	margin: 0;
	padding: 0 24px;
	pointer-events: none;
}

/*
 * !important ist hier absichtlich gesetzt:
 * Manche Themes/Elementor-Kits stylen alle <button>-Elemente mit Padding,
 * Mindestbreiten und Hintergründen. Das hatte die Bullets als große Rechtecke dargestellt.
 */
.wm-hero-slider .wm-hero-slider__dot {
	appearance: none !important;
	-webkit-appearance: none !important;
	display: block !important;
	flex: 0 0 auto !important;
	width: var(--wm-bullet-size, 10px) !important;
	height: var(--wm-bullet-size, 10px) !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: var(--wm-bullet-border-width, 0px) solid var(--wm-bullet-border-color, #fff) !important;
	border-radius: 50% !important;
	background: var(--wm-bullet-color, #fff) !important;
	box-shadow: none !important;
	font-size: 0 !important;
	line-height: 0 !important;
	opacity: var(--wm-bullet-opacity, .45);
	cursor: pointer;
	pointer-events: auto;
	transition: opacity .2s ease, transform .2s ease, background-color .2s ease;
}

.wm-hero-slider .wm-hero-slider__dot:hover {
	background: var(--wm-bullet-hover-color, var(--wm-bullet-active-color, #b50031)) !important;
	opacity: 1;
}

.wm-hero-slider .wm-hero-slider__dot.is-active {
	background: var(--wm-bullet-active-color, #b50031) !important;
	opacity: 1;
	transform: scale(1.12);
}

/* Bullet-Formen */
.wm-hero-slider--bullets-rounded .wm-hero-slider__dot {
	border-radius: 3px !important;
}

.wm-hero-slider--bullets-square .wm-hero-slider__dot {
	border-radius: 0 !important;
}

.wm-hero-slider--bullets-bar .wm-hero-slider__dot {
	width: calc(var(--wm-bullet-size, 10px) * 3) !important;
	height: max(3px, calc(var(--wm-bullet-size, 10px) * .42)) !important;
	border-radius: 999px !important;
}

.wm-hero-slider__dot:focus-visible,
.wm-hero-slider__arrow:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.wm-hero-slider__arrow {
	position: absolute;
	z-index: 9;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 58px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: rgba(0, 0, 0, .22);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s ease, opacity .2s ease;
}

.wm-hero-slider__arrow:hover {
	background: rgba(0, 0, 0, .36);
}

.wm-hero-slider__arrow--prev {
	left: 0;
}

.wm-hero-slider__arrow--next {
	right: 0;
}

@media (max-width: 1024px) {
	.wm-hero-slider {
		--wm-side-padding: 22px;
	}

	.wm-hero-slider__inner {
		width: 100%;
		padding-left: var(--wm-side-padding);
		padding-right: var(--wm-side-padding);
	}

	.wm-hero-panel {
		left: var(--wm-side-padding);
		width: min(var(--wm-panel-content-width), calc(82vw - var(--wm-side-padding)));
	}

	.wm-hero-panel__content {
		padding-left: 0;
	}
}

@media (max-width: 767px) {
	.wm-hero-slider {
		--wm-side-padding: 18px;
		--wm-panel-y: 72%;
	}

	.wm-hero-slider__inner {
		padding-left: var(--wm-side-padding);
		padding-right: 24px;
	}

	.wm-hero-panel {
		left: var(--wm-side-padding);
		width: calc(100% - var(--wm-side-padding) - 24px);
		min-height: 0;
		transform: translateY(-50%);
	}

	.wm-hero-panel__content {
		width: 100%;
		max-width: none;
		padding-left: 0;
		padding-right: 24px;
	}

	.wm-hero-slider__subtitle {
		font-size: 12px;
	}

	.wm-hero-slider__title {
		font-size: clamp(24px, 7.4vw, 34px);
	}

	.wm-hero-slider__arrow {
		width: 40px;
		height: 48px;
		font-size: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wm-hero-slider__slide,
	.wm-hero-slider__dot,
	.wm-hero-slider__arrow,
	.wm-hero-slider__title a {
		transition: none !important;
	}
}
