@font-face {
	font-family: "Bosch Sans";
	src: url("../fonts/BoschSans-Regular.ttf") format("truetype");
}

@font-face {
	font-family: "Bosch Sans Bold";
	src: url("../fonts/BoschSans-Bold.ttf") format("truetype");
}

:root {
	--color-white: #fff;
	--color-green: #00884A;
	--color-dark-green: #006B3A;
	--filter-green: brightness(0) saturate(100%) invert(26%) sepia(89%) saturate(4090%) hue-rotate(149deg) brightness(93%) contrast(101%);
	--filter-white: brightness(0) saturate(100%) invert(83%) sepia(100%) saturate(0%) hue-rotate(20deg) brightness(105%) contrast(103%);
	--fz-text: 28px;
	--fz-headline: 75px;
	--fz-headline-small: 65px;

	@media only screen and (max-width: 1600px) {
		--fz-text: 22px;
		--fz-headline: 60px;
		--fz-headline-small: 50px;
	}
}

html {
	font-family: "Bosch Sans";
	background-color: var(--color-white);
}

body {
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	/* hyphens: auto; */
	hyphens: none;
	line-height: 1.1;
	min-height: 100vh;
	user-select: none;

	&:has(.bonus-container) {
		justify-content: flex-start;
	}
}

*,
::before,
::after {
	box-sizing: border-box;
}

.bold,
strong {
	font-weight: normal;
	font-family: "Bosch Sans Bold";
}

.image-container {
	line-height: 0;
}


.link-button {
	font-family: "Bosch Sans Bold";
	font-size: 16px;
	text-decoration: none;
	color: var(--color-green);

	display: flex;
	align-items: center;
	gap: 10px;

	&::after {
		content: "";
		background: url(../assets/Mehr-Erfahren.png);
		background-size: 30px 30px;
		background-repeat: no-repeat;
		display: inline-block;
		height: 30px;
		width: 30px;
	}

	@media only screen and (max-width: 767px) {
		font-size: 15px;

		&::after {
			background-size: 25px 25px;
			height: 25px;
			width: 25px;
		}
	}
}

/* #region Page Container */
.page-container {
	height: 100%;
	width: 93%;
	max-width: 2075px;
	border: 10px solid var(--color-green);
	margin-block: 100px;
	position: relative;
	padding: 100px;
	flex: 1 1 0px;

	&.bosch-slider:has(.swiper-container.odd) {
		padding: 100px 40px;
	}

	.headline,
	.subline {
		display: inline-block;
		width: fit-content;
		background: var(--color-white);
		margin: 0;

		position: absolute;
		left: 50%;

		color: var(--color-green);
		white-space: nowrap;
	}

	.headline {
		top: -5px;
		transform: translate(-50%, -50%);
		padding-inline: 15px;
		font-family: "Bosch Sans Bold";
		font-size: var(--fz-headline);

		display: flex;
		align-items: center;

		img {
			height: 75px;
			aspect-ratio: 1;
			object-fit: contain;
			margin-right: 10px;
			filter: var(--filter-green);
		}
	}

	&.image-text-container {
		.headline {
			font-size: var(--fz-headline-small);
		}
	}

	.subline {
		bottom: -2px;
		transform: translate(-50%, 50%);
		padding-inline: 30px;
		font-size: 60px;
	}

	@media only screen and (max-width: 1200px) {
		&.page-container.page-container.page-container {
			border: 5px solid var(--color-green);
			margin-block: 85px 30px;
			padding: 25px;

			.headline {
				font-size: 25px;
				max-width: 95%;
				white-space: wrap;
				text-align: center;
				width: max-content;
				display: inline-block;

				img {
					height: 25px;
				}
			}

			&.image-text-container {
				.headline {
					font-size: 25px;
				}
			}

			.subline {
				font-size: var(--fz-text);
				padding-inline: 15px;
			}
		}
	}
}

.back-home {
	position: fixed;
	bottom: 0;
	display: flex;
	justify-content: flex-end;

	width: 93%;
	max-width: 2075px;

	text-align: end;
	line-height: 0;

	.primary-button {
		display: flex;
		height: 65px;
		align-items: center;
	}

	@media only screen and (max-width: 1200px) {
		position: static;
		justify-content: center;
		height: auto;

		.primary-button {
			padding: 15px 60px;
			height: 50px;
			font-family: "Bosch Sans";
			transform: unset;
		}
	}
}

.primary-button {
	background-color: var(--color-green);
	padding: 20px 35px;
	font-size: 20px;
	font-family: "Bosch Sans Bold";
	color: var(--color-white);
	text-decoration: none;
}

.back-overview {
	position: absolute;
	top: 20px;
	right: 20px;
	display: flex;
	justify-content: flex-end;

	text-align: end;
	line-height: 0;

	img {
		width: 60px;
		height: 60px;
	}

	@media only screen and (max-width: 1200px) {
		img {
			width: 40px;
			height: 40px;
		}
	}
}

/* #endregion Page Container */

/* #region Slider Container */
.bosch-slider {
	.swiper-container {
		max-width: 1050px;
		width: 90%;
		height: fit-content;
		margin: auto;
		overflow: hidden;

		&.odd {
			max-width: unset;

			.swiper-button-prev {
				transform: translate(-100%, -50%) rotate(-135deg);
				left: 4%;
			}

			.swiper-button-next {
				transform: translate(100%, -50%) rotate(45deg);
				right: 4%;
			}
		}

		.swiper-slide {
			display: flex;
			flex-direction: column;
			gap: 15px;
			height: initial;

			.image-container {
				position: relative;
				width: fit-content;
				margin-bottom: 30px;

				border: 10px solid #D0D3D9;
				border-radius: 15px;

				.image {
					width: 250px;
					border-radius: 7px;
				}

				.icon-container {
					width: 75px;
					background-color: var(--color-green);
					padding: 10px;
					border-radius: 100px;
					position: absolute;
					right: 0;
					bottom: 0;
					transform: translate(50%, 50%);

					img {
						filter: var(--filter-white);
						width: 100%;
					}
				}

				.play-button {
					position: absolute;
					top: 50%;
					left: 50%;
					transform: translate(-50%, -50%);
					width: 50px;
				}
			}

			.slide-headline {
				font-size: var(--fz-text);
				color: var(--color-green);
				max-width: 90%;
				margin: 0;
			}

			.slide-content {
				font-size: var(--fz-text);

				p {
					margin: 0;

					&:not(:last-of-type) {
						margin-bottom: 15px;
					}
				}
			}

			.link-button {
				margin-top: auto;
			}
		}

		.swiper-button-prev,
		.swiper-button-next {
			&::after {
				content: "";
				position: absolute;
				display: inline-block;
				height: 40px;
				width: 40px;
				border-style: solid;
				border-color: var(--color-green);
				border-width: 4px 4px 0 0;
			}
		}

		.swiper-button-prev {
			transform: translate(-100%, -50%) rotate(-135deg);
			left: 15%;
		}

		.swiper-button-next {
			transform: translate(100%, -50%) rotate(45deg);
			right: 15%;
		}

		@media only screen and (max-width: 1700px) {
			.swiper-button-prev {
				left: 10%;
			}

			.swiper-button-next {
				right: 10%;
			}
		}

		@media only screen and (max-width: 1200px) {

			.swiper-slide {
				.image-container {
					width: 95%;
					border: 7px solid #D0D3D9;
					border-radius: 10px;

					.image {
						width: 100%;
					}

					.icon-container {
						width: 50px;
						transform: translate(30%, 50%);
						padding: 5px;
					}
				}

				.slide-headline {
					font-size: var(--fz-text);
				}

				.slide-content {
					overflow: unset;
					font-size: 18px;
				}
			}

			.swiper-button-prev.swiper-button-prev,
			.swiper-button-next.swiper-button-next {
				&::after {
					height: 20px;
					width: 20px;
					border-width: 3px 3px 0 0;
				}
			}

			.swiper-button-prev.swiper-button-prev {
				left: 40px;
			}

			.swiper-button-next.swiper-button-next {
				right: 40px;
			}
		}
	}
}

/* #endregion Slider Container */

/* #region Image-Text Container */
.image-text-container {
	display: flex;
	align-items: flex-start;
	gap: 75px;

	.image-container {
		width: 45%;
		background-color: #D0D3D9;
		border: 10px solid #D0D3D9;
		border-radius: 30px;
		margin-top: 40px;

		video {
			position: relative;
			z-index: 20;
			pointer-events: auto;


			width: 100%;
			border: 5px solid #D0D3D9;
			border-radius: 18px;

			will-change: auto;
			transform: translate3d(0, 0, 0);
		}
	}

	.content-container {
		display: flex;
		flex-direction: column;
		width: 55%;
		height: 100%;

		.content-headline {
			font-size: 48px;
			color: var(--color-green);
		}

		ul {
			font-size: var(--fz-text);
		}
	}

	@media only screen and (max-width: 1200px) {
		gap: 30px;
		flex-direction: column;

		.image-container {
			width: 100%;
			border: 8px solid #D0D3D9;
			border-radius: 15px;
			margin-top: 15px;

			video {
				border-radius: 10px;

				will-change: auto;
				transform: translate3d(0, 0, 0);
			}
		}

		.content-container {
			width: 90%;
			margin-inline: auto;

			.content-headline {
				font-size: 25px;
				margin-top: 0;
			}

			ul {
				font-size: 18px;
			}
		}
	}
}

/* #endregion Image-Text Container */

/* #region Bonus Container */
.bonus-container {
	display: flex;
	width: 85%;
	max-width: 2075px;
	gap: 70px;
	margin-block: 100px 50px;

	ul {
		list-style-type: disc;

		li::marker {
			color: #000;
		}
	}

	&:has(>.wrapper) {
		flex-direction: column;
	}

	> .wrapper {
		display: flex;
		gap: 70px;
	}

	> .icon-container {
		display: flex;
		gap: 35px;

		> div {
			height: 105px;
			width: 105px;
			padding: 15px;
			border: 3px solid var(--color-green);
			border-radius: 100px;
		}

		img {
			height: 100%;
			object-fit: contain;
			filter: var(--filter-green);
		}
	}

	.content-container {
		width: 100%;
		height: 100%;
		font-size: var(--fz-text);

		&:has(+.image-container) {
			width: 60%;
		}

		.content-headline {
			font-size: var(--fz-headline);
			color: var(--color-green);
			margin-top: 0;
			line-height: 1;
			margin-bottom: 25px;
		}

		.tiles-container {
			display: grid;
			grid-template-columns: 1fr 1fr 1fr 1fr;
			gap: 50px;

			.tile {
				display: flex;
				flex-direction: column;
				align-items: center;
				gap: 35px;
				text-align: center;

				.icon-container {
					display: flex;
					gap: 35px;
					max-height: 250px;

					position: relative;
					width: fit-content;

					border: 10px solid #D0D3D9;
					border-radius: 15px;

					.play-button {
						position: absolute;
						top: 50%;
						left: 50%;
						transform: translate(-50%, -50%);
						width: 40px;
					}

					img {
						height: 100%;
						width: 100%;
						object-fit: contain;
					}
				}

				a {
					color: var(--color-green);
					line-height: 1.2;
				}
			}
		}
	}

	.image-container {
		width: 40%;
		height: fit-content;
		background-color: #D0D3D9;
		border: 20px solid #D0D3D9;
		border-radius: 30px;

		video {
			position: relative;
			z-index: 20;
			pointer-events: auto;


			width: 100%;
			border: 5px solid #D0D3D9;
			border-radius: 18px;

			will-change: auto;
			transform: translate3d(0, 0, 0);
		}

		img {
			width: 100%;
			border: 5px solid #D0D3D9;
			border-radius: 18px;
		}
	}

	@media only screen and (max-width: 1600px) {
		margin-block: 85px 30px;

		.content-container {
			font-size: 20px;

			.content-headline {
				font-size: 50px;
			}

			.tiles-container {
				grid-template-columns: 1fr 1fr 1fr;

				.tile {
					gap: 20px;
				}
			}
		}

		.image-container {
			border: 15px solid #D0D3D9;
			border-radius: 20px;

			video,
			img {
				border-radius: 10px;
				border: none;
			}
		}
	}

	@media only screen and (max-width: 1200px) {
		flex-direction: column;
		gap: 40px;

		> .icon-container {

			> div {
				border: 2px solid var(--color-green);
				height: 70px;
				width: 70px;
			}
		}

		> .wrapper {
			flex-direction: column;
			gap: 40px;
		}

		.content-container.content-container {
			width: 100%;
			font-size: 15px;

			.content-headline {
				font-size: 30px;
			}

			.tiles-container {
				grid-template-columns: 1fr 1fr;
			}
		}

		.image-container {
			width: 100%;
			max-width: 450px;

			border: 10px solid #D0D3D9;
			border-radius: 15px;

			video,
			img {
				border-radius: 5px;
			}
		}
	}

	@media only screen and (max-width: 767px) {
		.content-container.content-container {
			.tiles-container {
				grid-template-columns: 1fr;

				.tile .icon-container {
					width: 100%;
					max-height: unset;
				}
			}
		}

		.image-container {
			width: 100%;
			max-width: 450px;

			border: 10px solid #D0D3D9;
			border-radius: 15px;

			video,
			img {
				border-radius: 5px;
			}
		}
	}
}

/* #endregion Bonus Container */

/* #region Lists */
ul {
	padding-left: 30px;
	margin: 0;
	list-style-type: square;
	font-size: var(--fz-text);
	line-height: 1.3;

	li::marker {
		color: var(--color-green);
	}

	@media only screen and (max-width: 1600px) {
		font-size: 20px;
		line-height: 1.2;
	}

	@media only screen and (max-width: 1200px) {
		padding-left: 17px;
		font-size: 15px;
		line-height: 1.2;
	}
}


/* #endregion Lists */

/* #region Screensaver */
.screensaver {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: black;
	z-index: 9999;

	video {
		width: 100%;
		height: 100%;
		object-fit: contain;
		background-color: var(--color-white);
	}
}

/* #endregion Screensaver */

/* #region QR-Codes */
.qr-code-container {
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 20px;
	margin-top: auto;

	img {
		width: 115px;
	}

	@media only screen and (max-width: 1200px) {
		margin-top: 20px;
		gap: 10px;
		font-size: 15px;

		img {
			width: 80px;
		}
	}
}

/* #endregion QR-Codes */