
/* poppins-200 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: normal;
font-weight: 200;
src: url('../fonts/poppins-v23-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-200italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: italic;
font-weight: 200;
src: url('../fonts/poppins-v23-latin-200italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-regular - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
src: url('../fonts/poppins-v23-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: italic;
font-weight: 400;
src: url('../fonts/poppins-v23-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-600 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
src: url('../fonts/poppins-v23-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-600italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: italic;
font-weight: 600;
src: url('../fonts/poppins-v23-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-800 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: normal;
font-weight: 800;
src: url('../fonts/poppins-v23-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-800italic - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Poppins';
font-style: italic;
font-weight: 800;
src: url('../fonts/poppins-v23-latin-800italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root {
	--main-font-family: 'Poppins', sans-serif;
	--main-font-weight: 400;
	--main-font-size-copy: 1.6rem;
	--main-font-lineheight: 1.1em;
	--main-button-color: #FC0F3F;
	--main-headline-color1: #4238B4;
	--main-columns-gap: 50px;
}

@media screen and (min-width: 1400px) {
	:root {
		--main-columns-gap: 100px;
	}
}

[id] {
	scroll-margin-top: 12rem; 
}


.rhnst-dropshadow {
	-webkit-box-shadow: -40px 50px 130px 0 rgba(0,0,0,0.3);
	box-shadow: -40px 50px 130px 0 rgba(0,0,0,0.3);
}

html {
	font-size: 10px
}

body {
	font-size: 1rem;
	background: #eee;
	font-family: var(--main-font-family);
	font-style: normal;
	font-weight: var(--main-font-weight);
}

main p {
	font-size: var(--main-font-size-copy);
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
:root {
	--site-margin: 50px;  /* Außenabstand mobil */
	--max-width: 1200px;  /* maximale Breite für große Bildschirme */
	--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--color-bg: #f9f9f9;
	--color-text: #222;
}

body {
	font-family: var(--main-font-family);
	line-height: 1.6;
	color: var(--color-text);
	background-color: var(--color-bg);
}
	
.row {
	margin-left: var(--site-margin);
	margin-right: var(--site-margin);
}

@media (min-width: 1280px) {
	.row {
		max-width: var(--max-width);
		margin-left: auto;
		margin-right: auto;
	}
}

.header-sticky-button,
.header-logo, .header-logo *, .burger,
.rhnst-cta-button svg, .rhnst-cta-button {
	-webkit-transition: all 350ms ease-in-out;
	-moz-transition: all 350ms ease-in-out;
	-ms-transition: all 350ms ease-in-out;
	-o-transition: all 350ms ease-in-out;
	transition: all 350ms ease-in-out;
}

header,
footer {
	padding: 0;
}

main {
	padding: 0;
}

@media (max-width: 768px) {
	:root {
		--site-margin: 30px;
	}
}

@media (max-width: 480px) {
	:root {
		--site-margin: 20px;
	}
}


/* HEADER */
	
	:root {
		--headerHeight: 100px
	}
	
	.site-header {
		position: fixed;
		top: 0;
		width: 100%;
		z-index: 10000;
		--header-font-size: 1.4rem;
	}
	
	.header-inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0 var(--site-margin);
		position: relative; /* für Dropdown */
		height: var(--headerHeight);
	}
	
	main {
		padding: 0 0 0 0;
	}
	
	main p {
		margin: 0 0 10px 0
	}
	
	.header-logo .logo {
	  font-size: 1.25rem;
	  font-weight: bold;
	  color: #0055ff;
	  text-decoration: none;
	}
	
	.header-nav {
	  display: flex;
	  align-items: center;
	}
	
	.main-nav-container {
	  list-style: none;
	  display: flex;
	  gap: 1.5rem;
	}
	
	.main-nav-container a {
	  text-decoration: none;
	  color: #222;
	  font-weight: 500;
	  transition: color 0.2s ease;
	}
	
	.main-nav-container a:hover {
	  color: #0055ff;
	}
	
	/* Burger Icon */
	.burger {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		width: 35px;
		height: 20px;
		position: absolute;
		cursor: pointer;
		top: 40px;
		right: 40px;
		pointer-events: none;
		opacity: 0;
		background: none;
		outline: none;
		border: 0
	}
	
	.visually-hidden {
	  position: absolute;
	  width: 1px;
	  height: 1px;
	  padding: 0;
	  margin: -1px;
	  overflow: hidden;
	  clip: rect(0, 0, 0, 0);
	  white-space: nowrap;
	  border: 0;
	}
	
	
	.burger span {
		display: block;
		height: 3px;
		width: 100%;
		background: #222;
		border-radius: 0;
		transition: all 0.3s ease;
		transform-origin: center;
	}
	
	.burger-white span {
		background: #fff
	}
	
	/* Animiertes Burger → X */
	.menu-active .burger span:nth-child(2) {
	  transform: rotate(45deg) translate(5px, 5px);
	}
	
	.menu-active .burger span:nth-child(3) {
	  opacity: 0;
	}
	
	.menu-active .burger span:nth-child(4) {
		transform: rotate(-45deg) translate(5px, -5px);
	}
	
	.svg-link {
		display: inline-block;     
		width: 300px;            
		height: var(--headerHeight);            
		position: relative;
	}
	
	.svg-link svg {
		max-width: calc(100% - 20px);             /* maximal 90% der Container-Breite */
		max-height: calc(100% - 20px);            /* maximal 90% der Container-Höhe */
		width: auto;                /* Breite wird automatisch angepasst */
		height: auto;               /* Höhe wird proportional angepasst */
		display: block;
		margin: auto auto auto 0;               /* zentriert im Container */
		position: absolute;
		top: 0; left: 0; bottom: 0; right: 0;  /* zentrieren */
		
		-webkit-transition: all 400ms ease;
		-moz-transition: all 400ms ease;
		-ms-transition: all 400ms ease;
		-o-transition: all 400ms ease;
		transition: all 400ms ease;
		
	}
	
	
	body.scrolled {
		--headerHeight: 60px
	}
	
	body.scrolled .burger {
		top: 20px
	}
	
	.main-nav-container a {
		color: #fff
	}		
	
	.main-nav-container li {
		display: inline-block;
		font-size: 1.6rem
	}
	
	.header-sticky-button a { 
		background: var(--main-button-color);
		color: #fff;
		padding: 10px 20px;
		font-size: var(--header-font-size);
		line-height: 1.2em;
		-webkit-border-radius: 50px 50px 50px 50px;
		border-radius: 50px 50px 50px 50px;
		text-decoration: none;
		
	}
	
	.header-sticky-button {
		padding: 0 30px 0 0 
	}
	
	.header-inner a {
		font-weight: 600;
	}
	
	.main-nav-container li { 
		margin: 0 0 0 20px
	}
	.main-nav-container ul li:first-child { 
		margin: 0
	}

	@media (max-width: 1180px) {
		
		:root {
			--headerHeight: 100px
		}
		
		.menu-primary-container li {
			display: block;
			margin: 0 0 40px 0
		}
		
		.burger .visually-hidden {
			position: absolute;
			width: auto;
			height: auto;
			margin: 0;
			right: 45px;
			color: #fff;
			font-family: var(--main-font-family);
			font-weight: 500;
			background: none;
			overflow: visible;
			clip: auto;
			white-space: normal;
		}

		.svg-link {
			width: 200px
		}
		
		.header-logo {
			top: 0;
			left: 0;
			width: calc(100% + calc(2* var(--site-margin)) );
			margin: 0 calc(-1 * var(--site-margin));
			display: flex;
			pointer-events: all
		}
		
		.header-sticky-button {
			padding: 0 30px 0 0;
			position: absolute;
			right: 115px;
			top: 42px;
			pointer-events: all;
		}
		
		.scrolled .header-sticky-button {
			top: 22px
		}
	  
		.header-logo-box {
			display: flex;
			padding: 0 0 0 var(--site-margin);
			align-items: center;
			
		}
		.header-logo-box a {
			margin: auto
		}
		
		.header-inner {
			height: 100%;
			align-items: start;
			
			-webkit-transition: all 400ms ease;
			-moz-transition: all 400ms ease;
			-ms-transition: all 400ms ease;
			-o-transition: all 400ms ease;
			transition: all 400ms ease;
		}
		.header-logo {
			height:  var(--headerHeight);
		}
		
		.site-header,
		.row.header-inner {
			height: 100%;
			padding: 0;
			margin: 0;
			pointer-events: none
		}
		
		.menu-primary-container {
			padding: var(--site-margin);
			overflow: scroll
		}
		
		#menu-primary a {
			color: #fff;
			font-size: 2rem
		}
		
		.main-nav-container {
			flex-direction: column;
			gap: 1rem;
			background: #fff;
			top: 0;
			left: 0;
			right: var(--site-margin);
			width: 100%;
			transition: transform 0.3s ease, opacity 0.3s ease;
			opacity: 1;
			pointer-events: none;
			background: rgba(68, 85, 102, 0.95);
			height: 100%;
			position: absolute;
			opacity: 0;
			
		}
		
		.main-nav-container.active {
			display: flex;
			transform: translateY(0);
			opacity: 1;
			pointer-events: auto;
		}
		
		.burger {
			opacity: 1;
			pointer-events: all
		}
	
	  .header-inner {
	    flex-direction: row; /* Logo links, Burger rechts */
	  }
	}
	
	@media (max-width: 568px) {
		.svg-link { width: 150px }
	}
	@media (max-width: 468px) {
		.svg-link { width: 100px }
	}
	
	
	body.menu-active {
	  overflow: hidden;
	}
	
	body.menu-active::after {
	  content: "";
	  position: fixed;
	  inset: 0;
	  background: rgba(0,0,0,0.3);
	  z-index: 900; /* unter Header, über Content */
	}
	
	
	
	
	/* MODUL: STAGE */
		.rhnst-module-stage {
			height: calc(100vh - 100px);
			position: relative;
			
			--swiper-theme-color: #fff;
		}
	
		.swiper.rhnst-stage-swiper-instance {
			width: 100%;
			height: 100%;
		}
		
		.rhnst-stage-swiper-instance .swiper-slide {
			text-align: center;
			font-size: 18px;
			background: #444;
			display: flex;
			justify-content: center;
			align-items: center;
		}
		
		.rhnst-stage-swiper-instance .swiper-slide img {
			display: block;
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
		
		.rhnst-stage-title {
			position: absolute;
			left: 0;
			width: 100%;
			bottom: 50px;
			color: #fff;
			z-index: 100;
			pointer-events: none
		}
		
		
		.rhnst-stage-title span {
			font-size: 4rem;
			line-height: 1em;
			font-weight: 600;
			display: block;
			width: calc(100% - 100px);
		}
		
		.rhnst-stage-layer {
			position: absolute; 
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: #000;
			opacity: .3;
			z-index: 10;
			pointer-events: none
		}
		.swiper-button-next-rhnst-stage {
			position: absolute;
			right: 30px;
			bottom: 30px;
			left: auto; top: auto
		}
		.swiper-button-prev-rhnst-stage {
			position: absolute;
			right: 80px;
			bottom: 30px;
			left: auto; top: auto
		}
	
	/* Module: Spacer */
		.rhnst-spacer-0 { height: 0 }
		.rhnst-spacer-25 { height: 25px }
		.rhnst-spacer-50 { height: 50px }
		.rhnst-spacer-75 { height: 75px }
		.rhnst-spacer-100 { height: 100px }
		.rhnst-spacer-150 { height: 150px }
		.rhnst-spacer-200 { height: 200px }
		.rhnst-spacer-250  { height: 250px }
		
		
	/* Module: Intro Teaser */
	
		.rhnst-cta-button {
			position: relative;
			background: var(--main-button-color);
			color: #fff;
			display: inline-block;
			padding: 10px 60px 10px 20px;
			font-size: var(--main-font-size-copy);
			text-decoration: none;
			margin: 20px 0 0 0;
			-webkit-border-radius: 50px 50px 50px 50px;
			  border-radius: 50px 50px 50px 50px;
		}
		
		.rhnst-cta-button svg {
			height: 30px;
			width: 65px;
			position: absolute;
			right: 0;
			top: 50%;
			-moz-transform: translateX(30px) translateY(-15px);
			-webkit-transform: translateX(30px) translateY(-15px);
			-o-transform: translateX(30px) translateY(-15px);
			-ms-transform: translateX(30px) translateY(-15px);
			transform: translateX(30px) translateY(-15px);
		}
		
		.rhnst-cta-button:hover {
			padding: 10px 70px 10px 30px;
		}
		
		.rhnst-cta-button:hover svg {
			-moz-transform: translateX(40px) translateY(-15px);
			-webkit-transform: translateX(40px) translateY(-15px);
			-o-transform: translateX(40px) translateY(-15px);
			-ms-transform: translateX(40px) translateY(-15px);
			transform: translateX(40px) translateY(-15px);
		}
		
		.rhnst-introteaser-group-container {
			display: flex;
			gap: var(--main-columns-gap);
		}
		
		.rhnst-introteaser__col {
			flex: 1;     
			display: flex;   
		}
		
		.rhnst-introteaser__col--left--image-wrap {
			width: 100%;
			position: absolute;
			top: 0;
			left: 0;
			height: calc(50% - 15px);
			overflow: hidden
		}
		.rhnst-introteaser__col--left--image-wrap img,
		.rhnst-introteaser__col--left--image-wrap-sub img {
			object-fit: cover;
			height: 100%;
			width: 100%	
		}
		
		.rhnst-introteaser__col--left--image-wrap-sub {
			width: calc(100% - 50px);
			position: absolute;
			bottom: 0;
			left: 50px;
			height: calc(50% - 15px);
			overflow: hidden;
		}
		
		
		.rhnst-introteaser--col--right--inner h2 {
			font-size: 2.6rem;
			line-height: 1.2em;
			color: var(--main-headline-color1);
			font-weight: 600;
			margin: 0 0 20px 0
		}
		
		.rhnst-introteaser__inner {
			width: 100%;
			height: 100%;      
			position: relative
		}
		
		.rhnst-introteaser__col--right {
			padding: 100px 0
		}
		
		@media screen and (min-width: 1500px) {
			.rhnst-introteaser__col--right {
				padding: 200px 0
			}
		}
	
	
	/* Module: Image + Text */
	
		
		.rhnst-module-imagetextbox h2 {
			font-size: 2.6rem;
			line-height: 1.2em;
			color: var(--main-headline-color1);
			font-weight: 600;
			margin: 0 0 20px 0
		}
		