/* =============================================================
   M30 – FirstScreen  |  Split-Screen: Lila links, Bild rechts
   ============================================================= */

section.m30_firstscreen {
	display: flex;
	min-height: 100vh;
	overflow: hidden;
	position: relative;
}

.m30_headline span {
	color: #fff;
}

/* ---- Linke Seite (Lila) ---- */
.m30_left {
	display: flex;
	flex: 0 0 50%;
	width: 50%;
	background-color: #40437d;
	position: relative;
	/* kein z-index: damit .m30_content mit z-index:3 über .m30_right (z-index:2) liegen kann */
}

/* ---- Rechte Seite (Bild) ---- */
.m30_right {
	flex: 1;
	align-self: flex-start;
	height: calc(100vh - 110px);
	margin-left: -110px;
	position: relative;
	overflow: hidden;
	z-index: 2;
}

.m30_bg_container {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.m30_bg_container::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.65) 0%, transparent 80%);
	z-index: 1;
	pointer-events: none;
}

.m30_bg_slide {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
}

/* Slick: Höhe auf right-column durchreichen */
.m30_right .slick-slider,
.m30_right .slick-list,
.m30_right .slick-track {
	height: 100%;
}

.m30_right .slick-slide > div {
	height: 100%;
}

/* ---- Sidebar (110px) ---- */
.m30_sidebar {
	flex: 0 0 110px;
	width: 110px;
	display: flex;
	flex-direction: column;
	align-items: center;
	border-right: 1px solid rgba(255, 255, 255, 0.3);
	position: relative;
	padding: 40px 0 0;
}

.m30_logo {
	width: 73px;
}

.m30_logo img {
	display: block;
	width: 100%;
	height: auto;
}

.m30_social {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-90deg);
	white-space: nowrap;
	font-family: 'Effra', sans-serif;
	font-size: 15px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 1.125px;
	text-transform: uppercase;
}

.m30_scrolldown {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 110px;
	height: 110px;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all .4s;
	cursor: pointer;
}

.m30_scrolldown svg {
	width: 30px;
	height: auto;
	fill: #40437d;
	transform: rotate(90deg);
	transition: all .4s;
}

.m30_scrolldown:hover svg {
	margin-top: 15px;
}

/* ---- Hauptbereich (in der lila Box) ---- */
.m30_main {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	width: calc(100% - 110px);
}

/* ---- Content-Bereich (Headline, Subtext) ---- */
.m30_content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 0 207px 113px;
	position: relative;
	z-index: 3;
}

.m30_headline {
	font-weight: 500;
	color: #fff;
	letter-spacing: 2px;
	text-transform: uppercase;
	line-height: 1.0;
	margin: 0 0 58px 0;
	width: 100%;
	white-space: nowrap;
}

.m30_headline .decoration_line {
	position: relative;
	padding-left: calc(119px + 30px);
}

.m30_headline .decoration_line:before {
	content: '';
	width: 119px;
	height: 3px;
	background-color: #fff;
	display: inline-block;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.m30_subtext {
	font-family: 'Effra', sans-serif;
	font-size: 17px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.5px;
	line-height: 1.6;
	margin: 0;
	max-width: 100%;
	width: calc(100% - 110px);
	padding-right: 30px;
}

/* ---- Slider-Navigation (weißer Balken unten) ---- */
.m30_slider_nav {
	position: absolute;
	bottom: 0;
	left: 50%;
	right: 0;
	height: 110px;
	z-index: 5;
	display: flex;
	align-items: center;
	padding: 0 50px;
}

.m30_slider_controls {
	display: flex;
	width: 100%;
	align-items: flex-end;
	justify-content: flex-end;
	gap: 98px;
}

.m30_dots_wrapper {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.m30_slide_counter {
	font-family: 'Effra', sans-serif;
	font-weight: 500;
	color: #4d4d4f;
	line-height: 1;
	letter-spacing: 1px;
}

.m30_dots_container ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 21px;
	align-items: center;
}

.m30_dots_container ul li {
	cursor: pointer;
}

.m30_next {
	margin-top: -14px;
}

@keyframes m30DotProgress {
	from { width: 0; }
	to   { width: 100%; }
}

.m30_dots_container ul li .mM_dots_dot {
	width: 41px;
	height: 3px;
	border-radius: 0;
	background-color: rgba(64, 67, 125, 0.2);
	position: relative;
	overflow: hidden;
}

.m30_dots_container ul li .mM_dots_dot::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 0;
	background-color: #4d4d4f;
}

.m30_dots_container ul li.slick-active .mM_dots_dot::after {
	animation: m30DotProgress 5000ms linear forwards;
}

.m30_slider_arrows {
	display: flex;
	gap: 28px;
	align-items: center;
	margin-top: 6px;
}

.m30_prev,
.m30_next {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
}

.m30_prev svg,
.m30_next svg {
	width: 26px;
	height: auto;
	fill: #40437d;
	transition: opacity 0.3s;
}

.m30_prev svg {
	transform: rotate(180deg);
}

.m30_prev:hover svg,
.m30_next:hover svg {
	opacity: 0.35;
}

.m30_headline .add_padding_left {
	padding-left: 63px;
}

/* ============================================================
   Responsive
   ============================================================ */

@media screen and (max-width: 1600px) {
	.m30_headline {
		font-size: 65px;
	}
}

@media screen and (max-width: 1400px) {
	.m30_headline {
		font-size: 55px;
	}

	.m30_left {
		flex: 0 0 52%;
		width: 52%;
	}

	.m30_slider_nav {
		left: 52%;
	}
}

@media screen and (max-width: 1200px) {
	.m30_headline {
		font-size: 45px;
	}
}

@media screen and (max-width: 1199px) {
	section.m30_firstscreen {
		flex-direction: column;
		min-height: 0;
		height: 100vh;
	}

	/* 1 – Bild oben, füllt verbleibenden Platz */
	.m30_right {
		order: -1;
		display: block;
		width: 100%;
		flex: 1;
		height: auto;
		min-height: 0;
		margin-left: 0;
		align-self: auto;
	}

	/* 2 – Slider-Nav direkt unter den Bildern, im lila Bereich */
	.m30_slider_nav {
		order: 0;
		position: static;
		height: auto;
		left: auto;
		right: auto;
		bottom: auto;
		padding: 22px 30px;
		background-color: #40437d;
	}

	.m30_slider_controls {
		gap: 40px;
	}

	/* Farben auf lila Hintergrund */
	.m30_slide_counter {
		color: #fff;
	}

	.m30_dots_container ul li .mM_dots_dot {
		background-color: rgba(255, 255, 255, 0.3);
	}

	.m30_dots_container ul li .mM_dots_dot::after {
		background-color: #fff;
	}

	.m30_prev svg,
	.m30_next svg {
		fill: #fff;
	}

	/* 3 – Lila Content darunter, nur so hoch wie nötig */
	.m30_left {
		order: 1;
		flex: none;
		width: 100%;
		min-height: 0;
	}

	.m30_main {
		min-height: 0;
	}

	.m30_sidebar {
		display: none;
	}

	.m30_content {
		padding: 35px 30px 45px 30px;
		justify-content: flex-start;
	}

	.m30_headline {
		font-size: 36px;
		letter-spacing: 1px;
	}

	.m30_headline .decoration_line {
		padding-left: calc(59px + 30px);
	}

	.m30_headline .decoration_line:before {
		width: 59px;
	}

	.m30_headline .add_padding_left {
		padding-left: 33px;
	}
}

@media screen and (max-width: 767px) {
	section.m30_firstscreen {
		height: auto;
	}

	.m30_right {
		height: 380px;
		min-height: 380px;
		max-height: 380px;
		flex-shrink: 0;
	}

	.m30_left {
		flex: none;
		min-height: 0;
	}
}

@media screen and (max-width: 600px) {
	.m30_headline {
		font-size: 28px;
	}

	.m30_content {
		padding: 30px 20px 30px 20px;
	}

	.m30_subtext {
		font-size: 15px;
	}
}

@media screen and (max-width: 350px) {
	.m30_headline {
		white-space: normal;
	}
}

@media screen and (max-width: 575px) {
	.m30_slider_controls {
		flex-direction: column;
		align-items: flex-end;
		gap: 14px;
	}

	.m30_slider_arrows {
		margin-top: 10px;
	}

	.m30_headline {
		margin-bottom: 30px;
		hyphens: auto;
	}

	.m30_headline .decoration_line {
		padding-left: 0;
	}

	.m30_headline .decoration_line:before {
		display: none;
	}

	.m30_headline .add_padding_left {
		padding-left: 0;
	}

	.m30_subtext {
		width: 100%;
		padding-right: 0;
	}
}
