/*
	Fonts
*/

/* poppins-regular - latin */
@font-face {
	font-display: swap;
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 400;
	src: url('fonts/poppins/poppins-v20-latin-regular.woff2') format('woff2');
}

/* poppins-500 - latin */
@font-face {
	font-display: swap;
	font-family: 'Poppins';
	font-style: normal;
	font-weight: 500;
	src: url('fonts/poppins/poppins-v20-latin-500.woff2') format('woff2');
}

/* enriqueta-regular - latin */
@font-face {
	font-display: swap;
	font-family: 'Enriqueta';
	font-style: normal;
	font-weight: 500;
	src: url('fonts/enriqueta/enriqueta-v17-latin-500.woff2') format('woff2');
}

@font-face {
	font-family: 'icomoon';
	src:  url('fonts/icomoon/icomoon.eot?v=1.1');
	src:  url('fonts/icomoon/icomoon.eot?v=1.1#iefix') format('embedded-opentype'),
		url('fonts/icomoon/icomoon.ttf?v=1.1') format('truetype'),
		url('fonts/icomoon/icomoon.woff?v=1.1') format('woff'),
		url('fonts/icomoon/icomoon.svg?v=1.1#icomoon') format('svg');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}


/*
	Animationen
*/

@keyframes pulseScrolldownBtn {
	0% { bottom: .5em; }
	70% { bottom: .5em; }
	85% { bottom: .25em; }
	100% { bottom: .5em; }
}
@keyframes slideInFromLeft {
	0% {
		transform: translateX(-10rem);
		opacity: 0;
	}
	50% {
		transform: translateX(-10rem);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
		opacity: 1;
	}
}
@keyframes slideInFromBottom {
	0% {
		transform: translateY(3rem);
		opacity: 0;
	}
}


/*
	Allgemeine Einstellungen
*/

:root {
	--font-size: 20;
	--line-height: 1.75;
	--max-content-width: 1400px;
	--narrow-content-width: 924px;
	--wide-content-width: 1600px;
	--content-width: var(--max-content-width);
	--grid-gap: 14px;

	--page-margin: 1.8rem;
	--rand: max(var(--page-margin), 50vw - var(--content-width) / 2);
	--inhaltsbereich: min(var(--content-width) + 2 * var(--grid-gap), 100vw - 2 * var(--page-margin));
	--spaltenbreite: calc(var(--inhaltsbereich) / 12);

	--bg-color: transparent;
	--textcolor: #000;
	--linkcolor: var(--blau);
	--font-family-text: Poppins, Arial, icomoon, sans-serif;
	--font-family-title: Enriqueta, Verdana, Arial, icomoon, sans-serif;
	
	font-size: calc(1px * var(--font-size));
}
*, *::before, *::after {
	box-sizing: border-box;
	scrollbar-width: thin;
	scrollbar-color: var(--linkcolor) var(--textcolor);
}
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}
::-webkit-scrollbar-track-piece {
	background: var(--textcolor);
}
::-webkit-scrollbar-thumb {
	background: var(--linkcolor);
}
body {
	background: none #fff;
	color: var(--textcolor);
	font-family: var(--font-family-text);
	line-height: var(--line-height);
	overflow-x: hidden;
}
body.loading, body.loading a {
	cursor: progress !important;
}
body.no-js .js,
body.js .no-js {
	display: none;
}

p {
	margin: calc(var(--line-height) * 1em) 0;
}
a {
	color: var(--linkcolor);
	transition: color .3s ease-in-out;
}
a:focus {
	text-decoration: underline;
}
a.mailto[data-server]::after {
	content: '@'attr(data-server);
}
.clear{ clear: both; }
img, svg, video {
	height: auto;
	max-width: 100%;
	object-fit: cover;
	vertical-align: middle;
}
ul.nav li {
	display: inline-block;
}
ul.nav a {
	color: currentcolor;
	text-decoration: none;
}

body > header,
body > .breadcrumb,
body > nav,
main > *,
footer,
body > .cookie-hinweis {
	/* Fallback für ganz alte Browser */
	padding: 1rem;

	/* Fallback für Browser, die mit 'var()' in 'calc()' noch nicht klarkommen */
	padding: 0 max(1rem, 50% - 41rem);

	/* Moderne Browser */
	padding: 0 var(--rand);
}
.textblock.schmal {
	--content-width: var(--narrow-content-width);
}
.textblock.breit {
	--content-width: var(--wide-content-width);
}
.textblock.randlos {
	/* Fallback für Browser, die mit 'var()' in 'calc()' noch nicht klarkommen */
	padding-left: 0;
	padding-right: 0;
}
body main > * {
	padding-top: 2rem;
	padding-bottom: 2rem;
}
main > h1,
main > h2,
main > h3 {
	margin: 0 15px;
	padding: 0;
}

/* BUTTONS */
button, .button {
	background: var(--hellgrau);
	border: 0 none;
	color: var(--linkcolor);
	cursor: pointer;
	display: inline-block;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	padding: 0;
	text-decoration: none;
	text-transform: uppercase;
	transition: .3s ease-in-out;
}
.textblock button, .textblock .button {
	background: var(--linkcolor);
	border-radius: 2em;
	color: #fff;
	display: inline-flex;
		justify-content: flex-end;
	max-width: 1.8em;
	overflow: hidden;
	vertical-align: middle;
	white-space: nowrap;
}
.textblock button::after, .textblock .button::after {
	content: '\276f';
	border-radius: 50%;
	display: inline-block;
	font-size: 1.2rem;
	line-height: 1.9rem;
	margin-left: 0;
	text-align: center;
	transition: .3s ease-in-out;
	vertical-align: middle;
	min-width: 1.8rem;
	height: 1.8rem;
}
.touch-device .textblock button, .touch-device .textblock .button,
.textblock button:hover, .textblock .button:hover,
.textblock button:focus, .textblock .button:focus {
	max-width: min(25em, 100%);
	padding-left: 1em;
}
.touch-device .textblock button::after, .touch-device .textblock .button::after,
.textblock button:hover::after, .textblock .button:hover::after,
.textblock button:focus::after, .textblock .button:focus::after {
	margin-left: .5em;
}

.textblock[class*="hg-"] button, .textblock[class*="hg-"] .button {
	color: var(--bg-color) !important;
}
.textblock[class*="hg-"] button::after, .textblock[class*="hg-"] .button::after {
	background: var(--textcolor);
	color: var(--bg-color);
}


/* 12 GRID LAYOUT */
.row {
	clear: both;
	display: flex;
	flex-wrap: wrap;
	margin: 0 calc(var(--grid-gap) * -1);
}
.row > * {
	margin-bottom: calc(var(--grid-gap) * 2);
	padding: var(--grid-gap);
}
.row.boxed > *[class^="col-"] {
	border: 0 none;
	margin: 0;
	padding: 20px 30px;
	position: relative;
}
.row.boxed > *[class^="col-"]::before {
	border: 2px solid #e6e6e6;
	content: '';
	position: absolute;
	top: 5px;
	right: var(--grid-gap);
	bottom: .33rem;
	left: var(--grid-gap);
	pointer-events: none;
}
*[class^="col-"] {
	flex: 0 0 auto;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
	width: 100%;
	max-width: 100%;
}
*[class^="col-grow"] {
	flex-grow: 1;
	width: auto;
}
*[class^="col-auto"] {
	width: auto;
}


/* DYNAMIC GALLERY GRID */
.grid {
	--items-per-row: 4;
	--max-grid-width: var(--max-content-width);
}
.schmal .grid { --max-grid-width: var(--narrow-content-width); }
.wide .grid { --max-grid-width: var(--wide-content-width); }
.grid.w1 { --items-per-row: 1; }
.grid.w2 { --items-per-row: 2; }
.grid.w3 { --items-per-row: 3; }
.grid.w4 { --items-per-row: 4; }
.grid.w5 { --items-per-row: 5; }
.grid.w6 { --items-per-row: 6; }
.grid {
	display: grid;
	grid-gap: var(--grid-gap);
	grid-template-columns: repeat(auto-fit, minmax(calc((var(--max-grid-width) / var(--items-per-row)) - var(--grid-gap) * (8 - var(--items-per-row))), 1fr));
}
.grid > * {
	max-width: calc(100vw - 2 * var(--grid-gap));
}
div.grid-2 {
	grid-template-columns: repeat(auto-fit, minmax(385px, 1fr));
}
div.grid-3 {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
div.grid-4 {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.grid img {
	height: 100%;
	object-fit: cover;
}


/*
	--------------------------------------
	 Einstellungen für alle Displaygrößen
	--------------------------------------
*/

h1, h2, h3, [data-title]::before {
	color: var(--blau);
	font-family: var(--font-family-title);

	/*Schrift zwischen 450 px und 1000 px langsam von min auf max vergrößern*/
	/* Berechnung: Min-Größe + {Prozentwert} * (Max-Größe - Min-Größe) * 1rem */
	/* Prozentwert = (100vw - Beginn_der_Hochskalierung) / (Ende_Skalierung - Beginn_Skalierung) */
	--scale-start: 450;
	--scale-end: 1000;
	--percent: calc((100vw - 1px * var(--scale-start)) / (var(--scale-end) - var(--scale-start)));
	--dynsize: calc(1em * var(--factor-min) + var(--percent) * (var(--factor-max) - var(--factor-min)) * var(--font-size));
	font-size: clamp(1em * var(--factor-min), var(--dynsize), 1em * var(--factor-max));

	font-weight: 500;
	line-height: 1.2;
	margin: 0 0 0.75em;
}
h1, h2, [data-title]::before {
	--factor-min: 1.5;
	--factor-max: 2.25;
}
h3 {
	--factor-min: 1.3;
	--factor-max: 1.5;
}
h1 small,
h2 small,
h3 small {
	display: block;
	font-size: 1.5rem;
	font-weight: 400;
	text-transform: none;
}
body > header {
	background: var(--hellgrau);
	height: 6.2em;
	z-index: 19;
}
.lang-nav { float: right; height: 24px; position: relative; z-index: 10; }
.lang-nav li { background: #fff; }
.lang-nav:not(:hover) li:not(:first-child) { display: none; }
.lang-nav li img { width: 32px; height: 20px; }
.main-nav {
	color: #fff;
	position: fixed;
		top: 1.6em;
		right: var(--rand);
	z-index: 22;
}
.main-nav::before {
	content: '';
	background: #fff;
	position: fixed;
		top: 0;
		right: 0;
		bottom: 100%;
		left: 0;
	transition: .4s;
}
.nav-open .main-nav::before {
	bottom: 0;
}
.main-nav > ul.nav {
	background: var(--blau);
	display: block;
	height: 0;
	overflow: hidden;
	padding: 0 0 0 2em;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	transition: .4s;
	transition-property: height, padding;
}
.nav-open .main-nav > ul.nav,
.no-js .main-nav > ul.nav:hover,
.no-js .main-nav .btn-toggle-menu:focus + ul.nav {
	font-size: 1em;
	height: 100vh;
	overflow: auto;
	padding-top: 10em;
	padding-bottom: 3.5em;
	scrollbar-width: none;
}
.main-nav > ul.nav li {
	font-size: 0;
	transition: font-size .4s;
}
.nav-open .main-nav > ul.nav li,
.no-js .main-nav > ul.nav:hover li,
.no-js .main-nav .btn-toggle-menu:focus + ul.nav li {
	font-size: 1rem;
}
ul.nav::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}
.main-nav .btn-toggle-menu {
	background-color: #fff;
	border: 4px solid var(--grau);
	border-radius: 50%;
	box-shadow: 0 3px 6px #0002, 0 0 0 13px #fff;
	color: var(--grau);
	cursor: pointer;
	padding: 0;
	position: relative;
	text-align: center;
	width: 2.75em;
	height: 2.75em;
	z-index: 21;
}
body:not(.touch-device) .main-nav .btn-toggle-menu:hover {
	background-color: var(--blau);
	color: #fff;
}
.btn-toggle-menu .burger {
	margin: auto;
	position: relative;
	width: 24px;
	height: 18px;
	transition: transform .7s -.1s ease-out;
}
.btn-toggle-menu .burger span {
	background-color: currentcolor;
	border-radius: 2px;
	position: absolute;
		left: 0;
		right: 0;
	transform-origin: 50% 1.5px;
	transition: .5s ease-out;
	transition-property: transform, top, bottom, left, right, opacity;
	height: 3px;
}
.btn-toggle-menu .burger span.top {
	top: 0;
}
.btn-toggle-menu .burger span.middle {
	top: 50%;
	transform: translateY(-50%);
}
.btn-toggle-menu .burger span.bottom {
	bottom: 0;
}
.btn-toggle-menu.active .burger .top {
	transform: rotate(45deg);
	top: calc(50% - 2px);
}
.btn-toggle-menu.active .burger .middle {
	opacity: 0;
}
.btn-toggle-menu.active .burger .bottom {
	transform: rotate(-45deg);
	bottom: calc(50% - 2px);
}
body:not(.touch-device) .main-nav .btn-toggle-menu:hover .burger {
	transform: rotate(180deg);
}
body:not(.touch-device) .btn-toggle-menu.active:hover .burger .top {
	transform: rotate(-45deg);
}
body:not(.touch-device) .btn-toggle-menu.active:hover .burger .bottom {
	transform: rotate(45deg);
}
.no-js .main-nav .btn-toggle-menu:focus {
	pointer-events: none;
}
.main-nav .nav button:hover,
.main-nav .nav button:focus {
	filter: none;
}
.nav-open .main-nav > ul.nav::after {
	content: '';
	height: 1px;
	width: 1px;
	position: absolute;
	bottom: -2px;
}
.main-nav .nav li {
	display: list-item;
	position: relative;
}
.main-nav .nav > li {
	z-index: 2;
}
.main-nav .nav > li.kompetenzen {
	margin: 1em 0 1em;
}
.main-nav .nav > li.kompetenzen > a {
	font-size: 1.5em;
	font-family: var(--font-family-title);
	font-weight: 500;
}
.main-nav ul.nav li button {
	overflow: hidden;
	padding: 0;
	position: absolute;
		right: 0;
	width: 0;
	height: 0;
}
.main-nav .nav a {
	cursor: pointer; /* Für Links ohne "href" */
	display: block;
}
.main-nav ul.nav a.active,
.main-nav ul.nav li:hover > a,
.main-nav ul.nav li.open > a {
	color: var(--grau);
}
.main-nav .nav ul {
	overflow: hidden;
	padding-left: 2em;
	transition: max-height .8s cubic-bezier(0, 1, 0, 1) -.3s;
	width: auto;
	max-height: 0;
}
.main-nav .nav li.kompetenzen > ul,
.main-nav .nav li.open > ul {
	max-height: 9999px;
	transition: max-height .8s cubic-bezier(0.5, 0, 1, 0) 0s;
}
.main-nav ul.nav ul a {
	color: #fff;
	line-height: 1.3;
	padding: .33em 0;
}
.main-nav .nav .social-bar {
	background: var(--hellgrau);
	display: none;
	padding: .5em var(--rand) 0;
	position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
}
.nav-open .main-nav .nav .social-bar {
	display: block;
}
.main-nav .social-bar a {
	display: inline-block;
}

/* Social Media Icons */
.social-bar a {
	color: transparent;
	font-size: 0;
	line-height: 1;
}
.social-bar a::before {
	background-color: var(--linkcolor);
	color: #fff;
	display: inline-block;
	margin: 0 .15rem;
	text-align: center;
	transition: background-color .2s ease-out;
	vertical-align: text-bottom;
}
.social-bar a:hover::before {
	background-color: #000;
}
.social a::before {
	font-size: 2rem;
}
.kontakt-icons a::before {
	font-size: 1.3rem;
	line-height: 2rem;
	width: 2rem;
	height: 2rem;
}

/*
	Wenn die Navigation geöffnet wird, wird im Body "overflow: hidden" gesetzt, damit man da nicht mehr scrollen kann.
	Das sorgt dafür, dass durch die nun fehlende Scrollbar Inhalte nach rechts springen.
	Um das zu verhindern, muss ein Abstand nach rechts eingebaut werden - die Navigation muss diesen Abstand wiederum überlagern.
*/
html.nav-open body { overflow: hidden; }
html.blocking-scrollbar.nav-open body { padding-right: 8px; }
html.blocking-scrollbar.nav-open header { right: 8px; }
html.blocking-scrollbar.nav-open .main-nav { margin-right: clamp(-4px, 815px - 50vw, 0px); }
html.blocking-scrollbar.nav-open .main-nav > .nav { right: -8px; }


/* BREADCRUMB */
body div.breadcrumb {
	font-size: 0.93em;
	font-weight: 500;
	padding-top: 1rem;
	padding-bottom: 1rem;
}
.breadcrumb a {
	color: currentcolor;
	margin-right: 10px;
	text-decoration: none;
}
.breadcrumb a:not(:first-child)::before {
	content: '»  ';
}
.breadcrumb a:last-child {
	font-weight: 500;
}

/* SLIDER */
.banner {
	position: relative;
}
.banner .slick-track {
	display: flex;
}
.banner .slide {
	float: none;
	height: auto;
	position: relative;
	text-decoration: none; /* falls der Slide ein Link ist */
	width: 100vw;
}
.banner .slider > .slide:not(:first-child) {
	display: none;
}
.banner .image {
	background-color: #000;
}
.banner .image > * {
	height: min(100vh - 10.5em, 14em);
	width: 100vw;
	object-fit: cover;
}
.banner .inner {
	padding-left: var(--rand);
	padding-right: var(--rand);
	position: relative;
	z-index: 2;
}
.banner .text {
	overflow: hidden;
	padding-top: 6em;
}
.js .banner .text {
	background-color: #fff;
	visibility: hidden;
}
.js .banner .slick-slide .text {
}
.js .banner .slick-current .text {
	visibility: visible;
	/*animation: 2s ease-out 0s 1 slideInFromLeft;*/
}
.banner .slick-dots {
	line-height: 1.3;
	position: absolute;
	bottom: 10%;
	right: 5%;
}
.banner .slick-dots button {
	background-color: #00356b;
	border-radius: 50%;
	box-shadow: 0 0 5px rgba(255,255,255,0.5);
	font-size: 0;
	height: 20px;
	padding: 0;
	width: 20px;
}
.banner .slick-dots .slick-active button {
	background-color: #34ccff;
}
.banner a.scrolldown {
	animation: 6s ease-in-out 0s infinite pulseScrolldownBtn;
	color: #fff;
	cursor: pointer;
	font-size: 100px;
	line-height: 0;
	text-decoration: none !important;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.5em;
	width: 100%;
	text-align: center;
}

body > .banner .social-bar {
	background-color: #eee;
	line-height: 0;
	padding: 1.2em 0 1.2em var(--rand);
	position: absolute;
		top: min(100vh - 10.5em, 14em);
		left: 0;
	width: 100%;
}

/* Scroll To Top */
body > button.scrollup {
	background: var(--blassblau);
	border-radius: 50%;
	box-shadow: 0px 1px 8px var(--dunkelblau);
	color: #fff;
	font-size: 1.5em;
	opacity: 0;
	padding: 0;
	pointer-events: none;
	position: fixed;
		bottom: .5rem;
		right: .5rem;
	text-align: center;
	transition: opacity .8s ease-in-out;
	width: 2em;
	height: 2em;
	z-index: 20;
}
.scrollup.visible {
	opacity: 1;
	pointer-events: all;
}

/* CONTENT */
body > main {
	position: relative;
}
.textblock {
	position: relative;
}
.textblock a[name] {
	position: absolute;
	top: -9em;
}
main .in-view a[name] {
	top: -3em;
}
.textblock.hg-bild {
	background: var(--hgbild) no-repeat top / cover;
}
/*.textblock ul {
	margin: auto;
	text-align: left;
	width: -moz-fit-content;
	width: fit-content;
}
.textblock ul li {
	display: block;
	line-height: 1.2;
	padding: .55em 0 .55em 2em;
	position: relative;
	width: 100%;
}
.textblock ul li::before {
	content: '\2714';
	color: var(--linkcolor);
	font-size: 1.7em;
	line-height: 1.1;
	padding-right: .5em;
	position: absolute;
	top: 0;
	left: 0;
}*/
.textblock ul {
	list-style: disc outside;
	padding-left: 1em;
}
.textblock .txt-img-wrap > * {
	position: relative;
}
.textblock .txt-img-wrap a {
	display: block;
}
.textblock .txt-img-wrap .caption {
	background-color: var(--linkcolor);
	color: #fff;
	font-weight: 400;
	opacity: .8;
	padding: 0 0.5em;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	transition: opacity .33s;
}
.textblock .txt-img-wrap > div:hover .caption {
	opacity: 1;
}
.oeffnungszeiten span:first-child {
	display: inline-block;
	width: 8em;
	max-width: 50%;
}

.js main > * > * {
	visibility: hidden;
}
.js main > * > *.in-view {
	animation: .8s ease-in-out 0s 1 slideInFromBottom;
	visibility: visible;
}

.infobox {
	background: var(--blassblau);
	color: #fff;
}
.infobox * {
	color: #fff;
}

.karten .karte .img {
	display: flex;
		align-items: flex-end;
	height: 5.5em;
	margin-bottom: 1em;
}
.karten .karte p {
	margin: .5em 0;
}

.counter {
	display: block;
	font-family: var(--font-family-title);
	font-size: 3.75em;
	font-weight: 500;
	text-align: center;
}
.counter::after {
	content: '';
	background: currentcolor;
	clip-path: polygon(0 0, 35px 0, 45px 9px, 55px 0px, 90px 0px, 90px 2px, 56px 2px, 45px 11px, 34px 2px, 0 2px);
	display: block;
	margin: 1.2rem auto 0;
	width: 90px;
	height: 11px;
}


/* Pyramide */
.textblock.pyramide {
	text-align: center;
}
.textblock.pyramide .pyramide {
	font-family: var(--font-family-title);
}


.startseite .zaehler {
	color: var(--dunkelgrau);
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
}
.startseite .zaehler .row > div {
	position: relative;
}
.startseite .zaehler .row > div::before,
.startseite .zaehler .row > div::after {
	content: '';
	border: solid var(--blau);
	height: 1.6em;
	pointer-events: none;
	position: absolute;
		right: var(--grid-gap);
		left: var(--grid-gap);
}
.startseite .zaehler .row > div::before {
	border-width: 2px 2px 0 2px;
	top: var(--grid-gap);
}
.startseite .zaehler .row > div::after {
	border-width: 0 2px 2px 2px;
	bottom: var(--grid-gap);
}
.startseite .zaehler .row > div > * {
	padding: 0 1em;
}
.startseite .zaehler .row p {
	margin: 1em 0;
}


/* TEAM */
.team > .row {
	text-align: left;
}
.team > h2 {
	--factor-min: 1.33;
	--factor-max: 2;
	background: var(--blassblau);
	box-shadow: 0 0 10px #0004;
	color: #fff;
	display: flex;
		align-items: center;
		flex-wrap: wrap;
	height: 4em;
	line-height: 1.33;
	padding: 0 .75em;
	position: relative;
}
.team > h2::before {
	content: '';
	background: var(--dunkelblau);
	height: 3.5em;
	position: absolute;
		top: -1em;
		right: calc(0px - var(--rand));
		left: calc(0px - var(--rand));
	z-index: -1;
}
.team .img {
	align-self: flex-start;
	margin-bottom: 0;
	padding: 0;
	overflow: hidden;
	position: relative;
}
.team .img::before {
	content: '';
	border: calc(var(--grid-gap)) solid #fff;
	display: block;
	padding-bottom: calc(100% - 2 * var(--grid-gap));
	position: relative;
	z-index: 2;
}
.team .img img {
	position: absolute;
		top: var(--grid-gap);
		left: 50%;
	transform: translateX(-50%);
	transition: .3s ease-out;
	transition-property: width, height;
	width: calc(100% - 2 * var(--grid-gap));
	height: calc(100% - 2 * var(--grid-gap));
	max-width: none;
}
.team .img:hover img {
	width: 150%;
	height: 150%;
}
.team .txt {
	box-shadow: -1px 0 var(--blau), inset 1px 0 var(--blau);
	margin-top: var(--grid-gap);
	margin-bottom: var(--grid-gap);
	padding-top: 0;
	padding-bottom: 0;
	z-index: 2;
}
.team .txt p {
	margin: .5em 0
}
.team .txt p:last-child {
	margin-bottom: -.5em;
}


/* PRE-FOOTER */
.textblock.pre-footer {
	text-align: center;
}
.textblock.pre-footer .logo {
	width: 10em;
	margin-bottom: 1.5em;
}
.textblock.kontakt-karte {
	display: flex;
		flex-wrap: wrap;
	padding-left: 0;
	padding-right: 0;
}
.textblock.kontakt-karte .col {
	width: 100%;
}
.textblock.kontakt-karte .kontaktdaten {
	padding: 0 var(--rand);
}
.textblock.kontakt-karte .kontaktdaten > * {
	margin: 1em 0;
	text-decoration: none;
}
.textblock.kontakt-karte .kontaktdaten > a {
	color: currentcolor;
	display: block;
}
.textblock.kontakt-karte .kontaktdaten *::before {
	font-size: 1.1em;
	line-height: 2.1em;
	margin: auto;
	width: 2.5rem;
	height: 2.5rem;
}
.textblock.kontakt-karte .kontaktdaten *::before {
	background-color: #fff;
	border: 2px solid currentcolor;
	border-radius: 50%;
	box-shadow: 0 3px 6px #0002;
	display: block;
	font-size: 1.2em;
	line-height: 1.5em;
	margin: auto;
	width: 2rem;
	height: 2rem;
}
.textblock.kontakt-karte .karte .google_map {
	height: 100%;
	min-height: 13em;
}
.textblock.kontakt-karte .karte .gmap_canvas {
	height: 100%;
}


/* FOOTER */
body > footer {
	background-color: var(--hellgrau);
	display: flex;
		align-items: flex-end;
		flex-wrap: wrap;
		justify-content: space-around;
	font-size: min(4.5vw, 1rem);
	overflow: hidden;
	padding-top: 2em;
	padding-bottom: 3em;
	text-align: center;
}
body > footer > * {
	min-width: 40%;
	padding-bottom: 1em;
}
body > footer .meta li:not(:last-child)::after {
	content: '|';
}
body > footer .meta a {
	display: inline-block;
	line-height: 1.3;
	padding: 0 .2em;
}
body > footer .meta label {
	cursor: pointer;
}


/* Kontakt */
.kontakt .textblock form {
	color: var(--dunkelblau);
	font-size: .65em;
	font-weight: 500;
}
.kontakt .textblock form .col-6 {
	padding-top: 0;
	padding-bottom: 0;
}
.kontakt .textblock form input, .kontakt form select, .kontakt form textarea {
	color: currentcolor;
}
.kontakt .textblock form textarea {
	height: calc((3.7em + 1px) * 7 + 1px);
}
.kontakt .textblock form label span.lbl {
	color: currentcolor;
}
form div.send {
	text-align: right;
}

/* Info "Formular wird gesendet" */
@keyframes loading {
	0% { font-size: 1em; }
	40% { font-size: 1.5em; }
	80% { font-size: 1em; }
	100% { font-size: 1em; }
}
.sending-form main {
	position: static;
}
.sending-msg {
	background-color: #000d;
	color: #fff;
	display: none;
	font-size: clamp(1em, 3vw, 2.5em);
	opacity: 0;
	position: fixed;
		top: 0;
		left: 0;
	width: 100%;
	height: 100%;
	z-index: 20;
}
.sending-form .sending-msg {
	display: flex;
		align-items: center;
		flex-direction: column;
		justify-content: center;
	opacity: 1;
}
.loading-animation {
	font-size: .5em;
	height: 2em;
}
.loading-animation i, .loading-animation::before, .loading-animation::after {
	animation: 2s infinite loading;
	background-color: currentcolor;
	border-radius: 50%;
	display: inline-block;
	margin: 0 .2em;
	vertical-align: middle;
	width: 1em;
	height: 1em;
}
.loading-animation::before, .loading-animation::after {
	content: '';
}
.loading-animation::before {
	animation-delay: -.2s;
}
.loading-animation::after {
	animation-delay: .2s;
}


/* Youtube */
.embed-yt {
	color: #333;
	font-size: .93em;
	text-align: center;
	position: relative;
}
.embed-yt > img {
	margin: auto;
	max-width: 560px;
}
.embed-yt .overlay {
	background-color: #fffa;
	margin: 0 auto;
	max-width: 850px;
	padding: 1em 2em 2em;
	position: absolute;
		left: 0;
		right: 0;
		top: 50%;
	transform: translateY(-50%);
}
.embed-yt > img,
.embed-yt > .overlay {
	display: none;
}
.embed-yt > iframe {
	display: inline;
}
.embed-yt > .yt-decline {
	cursor: pointer;
	display: inline-block;
	margin-left: -12.9em;
	transform: translateY(1em);
}
.embed-yt.yt-cookie-not-set > img,
.embed-yt.yt-cookie-not-set > .overlay {
	display: block;
}
.embed-yt.yt-cookie-not-set > iframe,
.embed-yt.yt-cookie-not-set > .yt-decline {
	display: none;
}

/* Map */
.gmap_canvas {
	height: 400px;
	margin-top: 0;
	max-height: 90vh;
}
.gmap_canvas.gm-cookie-not-set {
	border: 1px solid #999;
	color: #666;
	display: flex;
		align-items: center;
	font-size: .93em;
	text-align: center;
}
.gmap_canvas.gm-cookie-not-set > * {
	max-width: 850px;
	margin: 0 auto;
	padding: 2rem var(--rand);
}
.gmap_canvas.gm-cookie-not-set button {
	align-items: center;
	max-width: none;
	padding-left: 1em;
	white-space: normal;
}
.gmap_canvas + .gm-hide-map {
	cursor: pointer;
	display: block;
	font-size: .6em;
	text-align: right;
}
.gmap_canvas.gm-cookie-not-set + .gm-hide-map {
	display: none;
}
.osm {
	display: inline-block;
	position: relative;
}
.osm .copyright {
	background-color: #fff;
	background-color: #fffd;
	position: absolute;
	bottom: 0;
	right: 0;
	max-width: 100%;
}


/* Impressum */
.impressum .copyright li {
	display: flex;
	text-align: left;
	margin-bottom: 20px;
}
.impressum .copyright li > img {
	align-self: flex-start;
	margin-right: 10px;
}
.impressum .copyright li > span {
	align-self: center;
	line-height: 1.3;
}
.impressum .os {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.impressum .os > * {
	flex: 1 1 auto;
}
.impressum .os .anschrift {
	margin: 2em 2em 2em 0;
}


/* Sitemap */
.sitemap main ul ul {
	margin-left: .75em;
}


/*
	-----------------------------------------
	 Einstellungen für Displaygrößen < 500px
	-----------------------------------------
*/

.col-1 {
	width: 50%;
}

header .logo {
	background-color: #fff;
	clip-path: polygon(0 0, 100% 0, calc(100% - 4.6em) 100%, 0 100%);
	padding: 1.5em 3em 1em var(--rand);
	position: absolute;
		left: 0;
	z-index: 23;
}
.nav-open .logo {
	position: fixed;
		top: 0;
		left: 0;
}
header .logo img {
	height: 5.25em;
	transition: height .3s ease-out;
}

.immer_scrollbar > .row {
	flex-wrap: nowrap;
	overflow: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.immer_scrollbar > .row > * {
	scroll-snap-align: start;
}
.immer_scrollbar .dots {
	text-align: center;
}
.immer_scrollbar .dots span {
	background: var(--blau);
	border: 2px solid var(--blau);
	border-radius: 50%;
	box-shadow: 0 0 10px #0004;
	display: inline-block;
	font-size: 0;
	margin: .25rem;
	width: 1rem;
	height: 1rem;
}
.immer_scrollbar .dots span.active {
	background: #fff;
}


@media screen and (min-width: 500px) {
	.md1 { width: 25%; }
	.md2, .col-1-5 { width: 50%; }
	.sm1 { width: 25%; }
	.sm2 { width: 50%; }
	.sm3 { width: 75%; }

	/* Navigation */
	.nav-open .main-nav > ul.nav li,
	.no-js .main-nav > ul.nav:hover li,
	.no-js .main-nav .btn-toggle-menu:focus + ul.nav li {
		font-size: 1.5rem;
	}
	
	/* Team */
	.team > h2 {
		width: 50%;
	}
	.team:nth-of-type(odd) > h2::before {
		right: -1.6em
	}
	.team:nth-of-type(even) > h2::before {
		left: -1.6em;
		right: calc(0px - var(--rand));
	}
	.team .mitarbeiter .img,
	.team .mitarbeiter .txt {
		width: 50%;
	}
}

@media screen and (min-width: 650px) {
	.col-1 { width: 16.66%; }
	.col-2, .md2, .col-1-5 { width: 33.33%; }
	.col-3, .col-4, .col-5, .col-2-5, .md3 { width: 50%; flex-grow: 1; }
	.md4 { width: 66.66%; }
	.md5 { width: 83.33%; }
	
	.md1 { width: 16.66%; }
	.md2 { width: 33.33%; }
	.md3 { width: 50%; }
	.md4 { width: 66.66%; }
	.md5 { width: 83.33%; }
	
	.main-nav > ul.nav {
		padding-left: 30%;
		top: 4.2rem;
	}
	.nav-open .main-nav > ul.nav,
	.no-js .main-nav > ul.nav:hover,
	.no-js .main-nav .btn-toggle-menu:focus + ul.nav {
		height: calc(100vh - 4.2rem);
		padding-top: 4em;
		padding-bottom: 4em;
	}
}

@media (min-width: 800px) {
	.main-nav .nav > li {
		font-size: 1.5em;
	}
}

@media (min-width: 1024px) {
	.mobile {
		display: none;
	}
	
	.col-1 { width: 8.333%; }
	.col-2 { width: 16.667%; }
	.col-3, .col-1-4 { width: 25%; }
	.col-4 { width: 33.333%; }
	.col-5 { width: 41.667%; }
	.col-6 { width: 50%; }
	.col-7 { width: 58.333%; }
	.col-8 { width: 66.667%; }
	.col-9 { width: 75%; }
	.col-10 { width: 83.333%; }
	.col-11 { width: 91.667%; }
	.col-1-5 { width: 20%; }
	.col-2-5 { width: 40%; }
	.col-3-5 { width: 60%; }
	.col-4-5 { width: 80%; }

	body > header {
		background: linear-gradient(to right, #fff var(--rand), var(--hellgrau) var(--rand), var(--hellgrau) calc(100% - var(--rand)), #fff calc(100% - var(--rand)));
		height: 4.2em;
	}
	body > header .logo {
		clip-path: polygon(0 0, 100% 0, calc(100% - 7.7em) 100%, 0 100%);
		padding: 2.7em 6em 2.3em var(--rand);
	}
	body > header .logo img {
		height: 8.25em;
	}
	.nav-open .logo {
		clip-path: polygon(0 0, 100% 0, calc(100% - 10em) 100%, 0 100%);
	}
	.nav-open .logo img {
		height: 12.3em;
	}
	
	.main-nav {
		padding: 2.5em;
		top: 0;
		right: calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap) - 4.55em);
	}
	.main-nav::before {
		background: linear-gradient(to left, #fff calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap)), var(--hellgrau) calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap)));
	}
	.main-nav::after {
		content: '';
		background: #fff;
		border-radius: 0 0 50% 50%;
		position: absolute;
			top: 0;
			right: 0;
			bottom: 0;
			left: 0;
	}
	.main-nav .btn-toggle-menu {
		border: 5px solid var(--grau);
		box-shadow: 0 3px 6px #0002, 0 0 0 1em var(--hellgrau);
		width: 4.1em;
		height: 4.1em;
	}
	body:not(.touch-device) .main-nav .btn-toggle-menu:hover {
		border: 10px solid #fff;
	}
	.btn-toggle-menu .burger {
		width: 37px;
		height: 28px;
	}
	.btn-toggle-menu .burger span {
		height: 4px;
		transform-origin: 50% 2px;
	}
	body:not(.touch-device) .main-nav .btn-toggle-menu:hover .burger span {
		left: 5px;
		right: 5px;
	}
	body:not(.touch-device) .main-nav .btn-toggle-menu:not(.active):hover .burger span.top {
		top: 3px;
	}
	body:not(.touch-device) .main-nav .btn-toggle-menu:not(.active):hover .burger span.bottom {
		bottom: 3px;
	}
	.main-nav > ul.nav {
		padding-left: max(20em, 50% - 350px);
		right: calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap));
	}
	
	body > .banner {
		padding-right: calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap));
	}
	body > .banner .inner {
		padding-left: calc(var(--rand) + var(--spaltenbreite) * 3);
		padding-right: 0;
		margin-top: -10em;
	}
	body > .banner .image > * {
		height: calc(100vh - 20em);
		min-height: 20em;
	}
	body > .banner .text {
		padding: 7% 0 0 calc(var(--spaltenbreite));
	}
	
	body > .banner .social-bar {
		padding-top: .7em;
		padding-bottom: .7em;
		top: max(20em, 100vh - 20em);
		width: calc(var(--rand) + var(--spaltenbreite) * 3);
	}
	.banner .kontakt-icons {
		position: fixed;
			top: 11em;
			right: calc(var(--rand) + var(--spaltenbreite) - 2 * var(--grid-gap));
		transform: translateX(50%);
		z-index: 21;
	}
	.banner .kontakt-icons > * {
		color: var(--linkcolor);
		display: block;
		font-size: 1rem;
		margin-bottom: 3rem;
		position: relative;
	}
	.banner .kontakt-icons a {
		transition: opacity .2s;
	}
	html:not(.nav-open) header.small + .banner .kontakt-icons a:not(:hover) {
		opacity: .4;
	}
	header.small + .banner .kontakt-icons a:hover {
		opacity: 1;
	}
	.banner .kontakt-icons > *::before {
		background-color: #fff;
		border: 5px solid var(--grau);
		border-radius: 50%;
		box-shadow: 0 3px 6px #0002, 0 0 0 1rem var(--hellgrau);
		color: var(--grau);
		display: inline-block;
		font-size: 1.8rem;
		padding: .9rem;
		transition: .2s ease-out;
		transition-property: background-color, border, color, font-size, padding;
		width: 4.1rem;
		height: 4.1rem;
	}
	.banner .kontakt-icons > *:hover::before {
		background-color: var(--blau);
		border: 10px solid #fff;
		color: #fff;
		font-size: 1.4rem;
		padding: .6rem;
	}
	.banner .kontakt-icons span {
		background-color: var(--hellgrau);
		border-radius: 2em 0 0 2em;
		display: inline-block;
		overflow: hidden;
		padding: 1.2em 0;
		position: absolute;
			top: 50%;
			right: 100%;
		transform: translateY(-50%);
		transition: .2s ease-out;
		transition-property: padding, width;
		white-space: nowrap;
		width: 0;
	}
	.banner .kontakt-icons a:hover span {
		padding: 1.2em .8em;
		width: 11em;
	}
	
	/* Pyramide */
	main .textblock.pyramide .pyramide {
		margin-top: 3.3rem;
		margin-bottom: 3.3rem;
	}
	
	/* Infobox */
	.infobox {
		background: transparent;
	}
	.infobox .txt {
		background: var(--blassblau);
		padding: 1.1em 10% .8em;
		position: relative;
	}
	.infobox .txt::before {
		content: '';
		background: var(--dunkelblau);
		position: absolute;
			top: -1.65em;
			right: calc(var(--spaltenbreite));
			left: calc(var(--rand) * -1);
		height: 29.3em;
		z-index: -1;
	}
	
	/* Karten */
	.karten .karte {
		margin-bottom: 1em;
	}
	.karten .karte > * {
		padding: 0 1.7rem 0 2.4rem;
	}
	.karten .karte .img {
		margin-bottom: 2em;
	}
	.karten .karte .text {
		border-left: 2px solid var(--blau);
		hyphens: none;
	}
	.karten .karte h3 {
		color: currentcolor;
	}
	.karten .karte p:last-child {
		margin-bottom: 0;
	}
	
	
	/* Text-Bild / Bild-Text: allgemein */
	.textblock.bild_text img,
	.textblock.text_bild img {
		width: 100%;
		height: 100%;
	}
	
	/* Bild/Text: Überschrift "verschieben"; H2 ausblenden, Titel aus Data-Attribut bei .txt einblenden */
	.bild_text h2 {
		display: none;
	}
	[data-title]::before {
		content: attr(data-title);
		display: block;
	}
	
	/* Text-Bild / Bild-Text: schmales Bild, breiter Text */
	.textblock.bild_text .img.col-4,
	.textblock.text_bild .img.col-4 {
		padding-top: 2.7em;
		padding-bottom: 0;
		position: relative;
	}
	.textblock.bild_text .img.col-4 {
		padding-right: calc(var(--grid-gap) * 2);
	}
	.textblock.text_bild .img.col-4 {
		padding-left: calc(var(--grid-gap) * 2);
	}
	.textblock.bild_text .img.col-4::before,
	.textblock.text_bild .img.col-4::before {
		content: '';
		background: var(--blassblau);
		position: absolute;
			top: 0;
		height: 12.2em;
		z-index: -1;
	}
	.textblock.bild_text .img.col-4::before {
		left: calc(var(--rand) * -1 + var(--grid-gap));
		right: calc(var(--spaltenbreite));
	}
	.textblock.text_bild .img.col-4::before {
		left: calc(var(--spaltenbreite));
		right: calc(var(--rand) * -1 + var(--grid-gap));
	}
	.textblock.bild_text .txt.col-8 {
		border-left: 2px solid var(--dunkelblau);
		padding: 0 calc(var(--spaltenbreite) - 2 * var(--grid-gap)) 0 3%;
	}
	.textblock.text_bild .txt.col-8 {
		border-right: 2px solid var(--dunkelblau);
		padding: 0 3% 0 calc(var(--spaltenbreite) - 2 * var(--grid-gap));
	}
	
	/* Text-Bild / Bild-Text: breites Bild, blauer Textkasten */
	.textblock.bild_text[class*="hg-"] {
		background: transparent;
		padding-left: 0;
	}
	.textblock.text_bild[class*="hg-"] {
		background: transparent;
		padding-right: 0;
	}
	.textblock.bild_text[class*="hg-"] .row,
	.textblock.text_bild[class*="hg-"] .row {
		margin: 0;
	}
	.textblock.bild_text[class*="hg-"] .row > div::before,
	.textblock.text_bild[class*="hg-"] .row > div::before {
		display: none;
	}
	.textblock.bild_text[class*="hg-"] .txt,
	.textblock.text_bild[class*="hg-"] .txt {
		background: var(--blassblau);
		color: #fff;
		width: calc(var(--spaltenbreite) * 7);
	}
	.textblock.bild_text[class*="hg-"] .txt {
		padding: 2em calc(var(--spaltenbreite) - 2 * var(--grid-gap)) 0 calc(2 * var(--grid-gap));
	}
	.textblock.text_bild[class*="hg-"] .txt {
		padding: 2em calc(2 * var(--grid-gap)) 0 calc(var(--spaltenbreite) - 2 * var(--grid-gap));
	}
	.textblock.bild_text[class*="hg-"] .txt > *,
	.textblock.text_bild[class*="hg-"] .txt > * {
		color: #fff;
	}
	.textblock.bild_text[class*="hg-"] .img,
	.textblock.text_bild[class*="hg-"] .img {
		flex: 1 1 0;
		padding: 0;
		position: relative;
		width: auto;
	}
	.textblock.bild_text[class*="hg-"] .img img,
	.textblock.text_bild[class*="hg-"] .img img {
		position: absolute;
			top: 0;
			left: 0;
		width: 100%;
		height: 100%;
	}
	
	/* Abgesetzter Text / Bild */
	.abgesetzter_text_bild {
		background: linear-gradient(to right, var(--dunkelblau) 50%, transparent 50%);
		color: #fff;
		padding: 0 var(--rand);
		margin-bottom: 4rem;
	}
	.abgesetzter_text_bild * {
		color: #fff;
	}
	.abgesetzter_text_bild .txt {
		background: var(--blassblau);
		margin: 0 var(--grid-gap) -1.1em;
		padding: 5% 5% 0;
		position: relative;
			top: 1.65em;
		width: calc(var(--spaltenbreite) * 5 - 2 * var(--grid-gap));
	}
	.abgesetzter_text_bild .img {
		margin: 0 0 0 var(--grid-gap);
		padding: 0;
	}
	.abgesetzter_text_bild .img img {
		width: 100%;
		height: 100%;
	}
	

	/* Startseite */
	.startseite .infobox {
		padding-top: 7em;
	}
	.startseite .karten h2 {
		margin-bottom: .1em;
	}
	
	
	/* Team */
	.team > h2 {
		margin-left: calc(var(--spaltenbreite) * 3);
		width: min-content;
		min-width: calc(var(--spaltenbreite) * 3 - 2 * var(--grid-gap));
	}
	.team:nth-of-type(odd) > h2::before {
		left: calc(0px - 3 * var(--spaltenbreite) - var(--rand));
	}
	.team:nth-of-type(even) > h2::before {
		right: calc(100% - 9 * var(--spaltenbreite) + 2 * var(--grid-gap) - var(--rand));
	}
	.team .img::after {
		content: '';
		background: var(--blassblau);
		opacity: .8;
		position: absolute;
			top: var(--grid-gap);
			right: var(--grid-gap);
			bottom: var(--grid-gap);
			left: var(--grid-gap);
		transition: opacity .3s ease-out;
	}
	.team .img:hover::after {
		opacity: 0;
	}
	
	
	/* Kontakt */
	.kontakt form::before {
		content: '';
		background: var(--dunkelblau);
		height: calc((3.7em + 1px) * 7 + 1px + var(--spaltenbreite) / 2 + var(--grid-gap) * 2);
		position: absolute;
			top: calc(var(--grid-gap) * -2);
			right: calc(-1 * var(--rand));
			left: calc(50% - var(--grid-gap));
		z-index: -1;
	}
	.kontakt .textblock form .col-6 {
		padding-top: calc(var(--spaltenbreite) / 2);
		padding-bottom: calc(var(--spaltenbreite) / 2);
	}
	.kontakt .textblock form .col-6:first-child {
		padding-right: calc(var(--spaltenbreite) - var(--grid-gap));
	}
	.kontakt .textblock form .col-6:last-child {
		--linkcolor: #fff;
		--bg-color: var(--blassblau);
		background: var(--blassblau);
		color: #fff;
		margin-left: var(--grid-gap);
		padding-left: calc(var(--spaltenbreite) / 2 - var(--grid-gap));
		padding-right: calc(var(--spaltenbreite) / 2 - var(--grid-gap));
		width: calc(50% - 2 * var(--grid-gap));
		z-index: 21;
	}
	.kontakt .textblock form .col-6:last-child button::after {
		color: var(--bg-color);
	}
	.kontakt .label-textarea {
		position: relative;
	}
	
	
	/* Pre-Footer*/
	.textblock.kontakt-karte {
		padding-left: var(--rand);
		padding-right: var(--rand);
		text-align: left;
	}
	.textblock.kontakt-karte .col {
		flex-grow: 1;
		width: 50%;
		min-width: 500px;
	}
	.textblock.kontakt-karte .karte {
		order: 2;
	}
	.textblock.kontakt-karte .kontaktdaten {
		padding: .5em 2em 1em;
	}
	.textblock.kontakt-karte .kontaktdaten ::before {
		display: inline-block;
		margin-right: .4em;
		text-align: center;
		vertical-align: middle;
	}
	
	.gmap_canvas.gm-cookie-not-set > * {
		padding: 2rem;
	}
}

@media (min-width: 1350px) {
	body > footer {
		justify-content: space-between;
		text-align: left;
	}
	body > footer > * {
		min-width: auto;
		margin: 0 0 1em;
	}
	body > footer .social-bar {
		order: 2;
	}
}

@media (min-width: 1575px) {
	body > footer {
		padding-bottom: 0;
	}
}

@media (min-width: 1750px) {
	.banner .kontakt-icons span {
		border-radius: 0 2em 2em 0;
		left: 100%;
		right: auto;
		padding: 1.2em .8em;
		width: 11em;
	}
}

@media (max-width: 1023px) {
	.desktop {
		display: none;
	}
	
	.bild_text .row > * {
		margin-bottom: 0;
	}
	.bild_text .txt p:first-child {
		margin-top: 0;
	}
	
	.overflowing {
		max-height: 620px;
		overflow: hidden;
		position: relative;
	}
	.showMore {
		display: none;
	}
	.overflowing > .showMore {
		background: linear-gradient(to bottom, transparent, #fff9 10%, #fff);
		display: flex;
		    align-items: center;
			justify-content: center;
		height: 3.5em;
		position: absolute;
			bottom: 0;
			left: 0;
		width: 100%;
	}
	
	.mobil_scrollbar > .scrollbox {
		display: flex;
			flex-wrap: nowrap;
		overflow: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.mobil_scrollbar > .scrollbox > * {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}
	.mobil_scrollbar .dots {
		text-align: center;
	}
	.mobil_scrollbar .dots span {
		background: var(--blau);
		border: 2px solid var(--blau);
		border-radius: 50%;
		box-shadow: 0 0 10px #0004;
		display: inline-block;
		font-size: 0;
		margin: .25rem;
		width: 1rem;
		height: 1rem;
	}
	.mobil_scrollbar .dots span.active {
		background: #fff;
	}
}

@media (max-width: 370px) {
	.banner .text {
		padding-top: 8em;
	}
	.banner .social-bar .kontakt-icons {
		display: block;
		margin-top: .5em;
	}
}

/*
	Plugins
*/

/* Icomoon-Icons */
[class^="icon-"]::before, [class*=" icon-"]::before {
	/* use !important to prevent issues with browser extensions that change fonts */
	font-family: 'icomoon' !important;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	line-height: 1;
	speak: none;
	text-transform: none;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.icon-arrowhead-left:before {
	content: "\276e";
}
.icon-arrowhead-right:before {
	content: "\276f";
}
.icon-arrowhead-up:before {
	content: "\2303";
}
.icon-arrowhead-down:before {
	content: "\2304";
}
.icon-calendar:before {
	content: "\1f4c5";
}
.icon-fax:before {
	content: "\1f4e0";
}
.icon-location:before {
	content: "\1f4cd";
}
.icon-mail:before {
	content: "\1f4e7";
}
.icon-message:before {
	content: "\1f5e9";
}
.icon-mobile:before {
	content: "\1f4f1";
}
.icon-phone:before {
	content: "\1f57b";
}
.icon-user:before {
	content: "\1f464";
}
.icon-facebook:before {
	content: "\e901";
}
.icon-instagram:before {
	content: "\e902";
}
.icon-linkedin:before {
	content: "\e905";
}
.icon-twitter:before {
	content: "\e904";
}
.icon-whatsapp:before {
	content: "\e900";
}
.icon-xing:before {
	content: "\e903";
}
.icon-youtube:before {
	content: "\e906";
}

/* Cookie-Hinweis */
.cookie-hinweis {
	background-color: rgba(0,0,0,0.98);
	box-shadow: 0 0 10px 0 #000;
	color: #fff;
	font-size: 0.85em;
	max-height: 90vh;
	overflow: auto;
	padding-top: 1em;
	padding-bottom: 1em;
	position: -webkit-sticky;
	position: sticky;
		bottom: 0;
	text-align: left;
	transition: max-height .4s ease-out;
	z-index: 99999;
}
.cookie-hinweis .buttons {
	display: block;
	margin-top: 1em;
}
.cookie-hinweis button,
.cookie-hinweis .button {
	font-size: 1.3em;
	padding: .3em .5em;
}
.cookie-hinweis .buttons button {
	margin-bottom: .5em;
	width: 100%;
}
.cookie-hinweis .title {
	background-color: #fff2;
	display: block;
	font-size: 1.3em;
	margin-bottom: .5em;
	padding: 5%;
	position: relative;
}
.cookie-hinweis .title a {
	color: currentcolor;
	text-decoration: none;
}
.cookie-hinweis .title input {
	margin-right: .5em;
	vertical-align: text-bottom;
	width: 1em;
	height: 1em;
}
.cookie-hinweis .details {
	background-color: #000e;
	box-shadow: 0 0 0 50vmax #fffe;
	display: none;
	margin: auto;
	overflow: auto;
	padding: 5vh 5vw;
	position: fixed;
		top: 1em;
		right: max(1rem, 50% - var(--content-width) / 2);
		bottom: 1em;
		left: max(1rem, 50% - var(--content-width) / 2);
	z-index: 10000;
}
.cookie-hinweis .details > button {
	background-color: red;
}
.cookie-hinweis .details > button:first-child {
	display: block;
	position: sticky;
		left: calc(100% - 3em);
		top: 0;
	transform: translate(5vw, -5vh);
	width: 3em;
}
.cookie-hinweis .details strong {
	display: block;
	font-size: 1.2em;
	margin: 1em 0 .5em;
}
.cookie-hinweis .details ul {
	columns: 20em;
	list-style: '- ' inside;
}
.cookie-hinweis .details li {
	break-inside: avoid;
}
.cookie-hinweis .details li:only-child {
	column-span: all;
}
#cbxCookies {
	display: none;
}
#cbxCookies:not(:checked) + .cookie-hinweis {
	/*background-color: green;
	opacity: 0;
	overflow: hidden;
	padding: 0;*/
	max-height: 0;
	overflow: hidden;
}

@media (min-width: 450px) {
	.cookie-hinweis .buttons button {
		margin: 0 4px .5em 3px;
		width: 11em;
	}
	.cookie-hinweis .buttons button.none {
		width: 22.6em;
	}
}
@media (min-width: 850px) {
	.cookie-hinweis .buttons button {
		margin: 0 6px .5em 0;
		padding: .3em 1.5em;
		width: auto !important;
	}
}
@media (min-width: 800px) and (max-width: 950px) {
	.cookie-hinweis .title {
		font-size: 1.2em;
	}
	.cookie-hinweis .title a {
		position: absolute;
			top: 0;
			right: .33em;
	}
}


/* Overlay */
input#cbxHideOverlay {
	display: none;
}
input#cbxHideOverlay:checked + .overlay {
	display: none;
}
body > .overlay {
	background: rgba(0,0,0,0.9);
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 99;
}
body > .overlay > .content {
	background: #fff;
	padding: 1em 2em 2em;
	position: absolute;
	left: 50%;
	top: 50%;
	max-height: 90%;
	max-width: 1330px;
	width: 95%;
	overflow: auto;
	transform: translate(-50%, -50%);
}
body > .overlay .btn-close {
	background: #c00;
	color: #fff;
	cursor: pointer;
	font-size: 2em;
	line-height: 1.5;
	position: absolute;
	top: 0;
	right: 0;
	text-align: center;
	width: 1.5em;
}
main::before {
	content: '';
	background: linear-gradient(to right, transparent 11.765%, #0ac6 11.765%, #0ac6 88.235%, transparent 88.235%);
	background-size: calc(100% / 12);
	pointer-events: none;
	position: fixed;
		left: calc(var(--rand) - var(--grid-gap));
		right: calc(var(--rand) - var(--grid-gap));
		/*top: 0;*/
		bottom: 0;
	z-index: 1;
}

/* Anpassungen für Google Maps */

.textblock .gmap_canvas .gm-style button::after {
	display: none;
}

.textblock .gmap_canvas .gm-style img {
	object-fit: contain;
}
