@import url("https://use.typekit.net/bga3yjq.css");



:root {
	--maxwidthcontent: 1200px;
	--extendedcontent: 1600px;
	--maxwidthmargin: calc( (100vw - min(100vw, var(--maxwidthcontent))) / 2  );
	--shiftwide: max(0px, 55cqw - 180px);
	--shiftnarrow: max(0px, 20cqw - 180px);

	--schwarz: #000000;
	--weiss: #FFFFFF;
	--grau-2: #F7F7F8;
	--grau-1: #e1e1e8;
	--grau:    #D2D2D2;
	--grau--1: #71777A;
	--grau--2: #585d60;
	--rot: #EE3624;
	--rot--1: #ba311f; 
	--blau-3: #ddeef7;
	--blau-2: #b2d8eb;
	--blau-1: #71bfe5;
	--blau: #36a9e1;
	--blau--1: #096c9c;
	--blau--2: #002544;
	--gold:#bb9b58;
	--gold-1: hsl(41, 42%, 66%);
	--gold-2:#f1e9dc;

	--overlay: rgba(255,255,255,0.7);
	--maincolor: var(--blau--2);
	--textfarbe: var(--blau--2);
	--actioncolor: var(--gold);
	--actiongradient:var(--gold-gradient);


	--grau-gradient: linear-gradient(0deg, var(--grau--2) 0%, var(--grau--1) 90%);
	--rot-gradient: linear-gradient(0deg, var(--rot--1) 0%, var(--rot) 90%);
	--blau-gradient: linear-gradient(0deg, var(--blau--2) 0%, var(--blau--1) 90%);
	--gold-gradient: linear-gradient(0deg, var(--gold-1) 10%, var(--gold-2) 100%); 
	--grau-gradient-horizontal: linear-gradient(270deg, var(--grau--2) 0%, var(--grau--1) 100%);
	--gold-gradient-horizontal: linear-gradient(270deg, var(--gold) 10%, var(--gold-1) 100%); 

	/* https://larsenwork.com/easing-gradients/ */
	--gradient-smooth: linear-gradient(
    to bottom,
    hsla(210, 100%, 16.08%, 0) 0%,
    hsla(210, 100%, 16.08%, 0.013) 8.1%,
    hsla(210, 100%, 16.08%, 0.049) 15.5%,
    hsla(210, 100%, 16.08%, 0.104) 22.4%,
    hsla(210, 100%, 16.08%, 0.175) 28.9%,
    hsla(210, 100%, 16.08%, 0.259) 35%,
    hsla(210, 100%, 16.08%, 0.352) 41%,
    hsla(210, 100%, 16.08%, 0.45) 46.7%,
    hsla(210, 100%, 16.08%, 0.55) 52.5%,
    hsla(210, 100%, 16.08%, 0.648) 58.3%,
    hsla(210, 100%, 16.08%, 0.741) 64.3%,
    hsla(210, 100%, 16.08%, 0.825) 70.5%,
    hsla(210, 100%, 16.08%, 0.896) 77.1%,
    hsla(210, 100%, 16.08%, 0.951) 84.2%,
    hsla(210, 100%, 16.08%, 0.987) 91.8%,
    hsl(210, 100%, 16.08%) 100%
	);
	--gradient-smooth-1: linear-gradient(
    to bottom,
    hsla(210, 100%, 16.08%, 0) 0%,
    hsla(210, 100%, 16.08%, 0.01) 8.1%,
    hsla(210, 100%, 16.08%, 0.037) 15.5%,
    hsla(210, 100%, 16.08%, 0.079) 22.4%,
    hsla(210, 100%, 16.08%, 0.133) 28.9%,
    hsla(210, 100%, 16.08%, 0.197) 35%,
    hsla(210, 100%, 16.08%, 0.268) 41%,
    hsla(210, 100%, 16.08%, 0.342) 46.7%,
    hsla(210, 100%, 16.08%, 0.418) 52.5%,
    hsla(210, 100%, 16.08%, 0.492) 58.3%,
    hsla(210, 100%, 16.08%, 0.563) 64.3%,
    hsla(210, 100%, 16.08%, 0.627) 70.5%,
    hsla(210, 100%, 16.08%, 0.681) 77.1%,
    hsla(210, 100%, 16.08%, 0.723) 84.2%,
    hsla(210, 100%, 16.08%, 0.75) 91.8%,
    hsla(210, 100%, 16.08%, 0.76) 100%
	);
	--gradient-smooth-2: linear-gradient(
    to bottom,
    hsla(210, 100%, 16.08%, 0) 0%,
    hsla(210, 100%, 16.08%, 0.008) 8.1%,
    hsla(210, 100%, 16.08%, 0.029) 15.5%,
    hsla(210, 100%, 16.08%, 0.062) 22.4%,
    hsla(210, 100%, 16.08%, 0.105) 28.9%,
    hsla(210, 100%, 16.08%, 0.156) 35%,
    hsla(210, 100%, 16.08%, 0.211) 41%,
    hsla(210, 100%, 16.08%, 0.27) 46.7%,
    hsla(210, 100%, 16.08%, 0.33) 52.5%,
    hsla(210, 100%, 16.08%, 0.389) 58.3%,
    hsla(210, 100%, 16.08%, 0.444) 64.3%,
    hsla(210, 100%, 16.08%, 0.495) 70.5%,
    hsla(210, 100%, 16.08%, 0.538) 77.1%,
    hsla(210, 100%, 16.08%, 0.571) 84.2%,
    hsla(210, 100%, 16.08%, 0.592) 91.8%,
    hsla(210, 100%, 16.08%, 0.6) 100%
	);





	--basefont: 'museo-sans', Arial, Helvetica;
	--black: 900;
	--bolder: 800;
	--bold: 700;
	--medium:500;
	--regular: 300;
	--fontsize: 1rem;
	--lineheight: 1.5;
	--lineheight2: 1;

	--abstand0: max(0rem, 0vw);
	--abstand1: max(1rem, 1vw);
	--abstand2: max(2rem, 2vw);
	--abstand3: max(3rem, 3vw);
	--abstand4: max(4rem, 4vw);
	--abstand5: max(5rem, 5vw);
	--abstand7: max(7rem, 7vw);
	--abstand10: max(10rem, 10vw);
	
	--toplineheight: 60px;
	--headerheight: 160px;
	--headerpadding:30px; /*vertikal*/
	--seitenrand: 5vw;
	--socialmediaicons: 1.5cqw;
	--adminspacer: 73px;
	
	--menucolumn:400px;
	--menugap:20px;
	
	--snippet-shift:5cqw; 
	
	--snippet-radius:1em; 
	--snippet-border:0px solid var(--grau--1);
	--snippet-background:var(--grau-1);

	--snippet-label-radius:0 10em 10em 0; 
	--snippet-label-border:0px solid var(--maincolor);
	--snippet-label-background:var(--maincolor);
	--snippet-label-padding:0.33em 1em;
	--snippet-label-height:2em;
	--snippet-label-margin:0;
	--snippet-label-size:5cqw;
	--snippet-label-lineheight:1.1;

	--snippet-button-background: transparent url("../images/arrow-right.svg") no-repeat center center / 100% 100%; 

 }


body.body-gruen {
	--actioncolor:var(--gold-1);
	--actiongradient:var(--gold-gradient);
	--snippet-button-background: transparent url("../images/arrow-right-gruen.svg") no-repeat center center / 100% 100%; 
}


/* !ALLGEMEIN & LAYOUT*/

*:focus {
	outline: none;
}

::selection {
	background-color: #dddddd;
}

html,
button,
input,
select,
textarea {
	font-family: var(--basefont);
	font-style: normal;
	font-weight: var(--regular);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;  
}
.ui-widget {  /*accordion-Helvetica-Override*/
	font-family: var(--basefont) !important;
}

html {
	scroll-behavior: smooth;
	font-size:18px;
}

body {
	font-size: var(--fontsize);
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	line-height: var(--lineheight);
	padding: 0px;
	margin: 0px;
	background: var(--weiss);
	color: var(--textfarbe);
	anchor-name: --body-anchor;
	overflow-x:hidden; /*seb - wenn probleme, wieder weg!*/
}

img, video {  /* seb: alle Bilder so groß wie ihre Container machen. wenn das zuviel ist, wieder rückgängig und einzeln regeln. */
	display:block;
	width:100%;
	height:auto;
}

.layout-container {
	background: var(--weiss);
}

.maxwidth {
	margin-left: var(--seitenrand);
	margin-right: var(--seitenrand);
}

.maxwidthcontent,
.maxwidthconent {
	margin-left: auto;
	margin-right: auto;
	max-width: min(80vw, var(--maxwidthcontent));
	container-type: inline-size; /*seb sehr experimentell, gäbe ein container-Maß für cqw-Einheiten, nicht cqh*/
}

.maxwidthcontent-extended {
	max-width: min(92vw, var(--extendedcontent));
}
.maxwidthcontent-viewport {
	max-width:none !important;  /* override trotz maxwidthcontent für panoramas per Dropdown-Taxonomie - nicht ganz sauber, aber funktioniert. */
}


main {
	padding-top: var(--abstand0);
	margin-bottom: var(--abstand3);
}


/* !LINKS */

a,
a:visited {
	text-decoration: none;
}
a:hover,
a:active {
	text-decoration: none;
}

.text-formatted a {
	text-decoration:underline;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.15em;
	text-decoration-skip-ink: auto;
	text-decoration-color:var(--grau);
	font-weight:var(--bold);
	color:var(--textfarbe);
	transition:all 0.125s ease-in-out;
}
.text-formatted a:hover {
	text-decoration-color:var(--actioncolor);
	text-decoration-thickness: 0.15em;
} 

b, strong {
	font-weight:var(--bold);
}

/* !HEADLINES & TEXTGRÖSSEN */

p {
	box-sizing:border-box; 
	padding-right: max(0px, calc(100% - 100ch));
	/*seb sofort wieder raus oder viel spezifischer werden, wenn das nervt!*/
	
	text-wrap:pretty;
	hyphens:auto;
	hyphenate-limit-chars: 20 5 5;
	margin-block:1em;
	&:last-child { margin-bottom:0; }
} 
p.text-align-center {
	padding-inline: max(0px, calc( (100% - 100ch) / 2) ); 
}

.views-field-field-text,
.text-formatted,
.jobdetails {
	
	table {
		border-collapse:collapse;
		tr {
			td {
				padding:0.25em 0.5em;
			}
		}
		tr:not(:last-child) {
			td {
				border-bottom:1px solid var(--maincolor);
			}
		}
		caption {
			font-size:0.85em;
		}
	}
	
	ul {
		margin-inline:0;
		margin-block:1em;
		padding: 0;
		list-style-type:none;
		/*
		&:first-child {
			margin-top:0;
		}
		&:last-child {
			margin-bottom:0;
		}
		*/

		li {
			display:flex;
			align-items: flex-start;
			gap:0.5em;
			text-wrap:balance;
			margin-bottom:0.25em;

			&:before {
				content:"+";
				font-weight:var(--medium);
				flex-shrink: 0;
				transform: scale(1) translateY(-0.085em);
				color:var(--gold);
			}
		}
	}
}


h1, h2, h3 {
	
	hyphens:auto;
	hyphenate-limit-chars: 16 8 8; 
	
}

h2:empty,
h3:empty {
	margin:0 !important;
	padding:0 !important;
}

h1, 
h2.produkt-title,
.uebertitel + h1.page-title {
	font-style: normal;
	font-size:clamp(2.33rem, 5cqw, 5rem);
	line-height: var(--lineheight2);
	font-weight: var(--bold);
	color:var(--maincolor);
	margin-top:0;
	text-align:left;
	text-wrap:balance;
}
h1.page-title:has(+ .page-untertitel) {
	margin-bottom:0.25em;
}
h2.page-untertitel {
	margin-bottom:4vh;
	color:var(--grau--1);
	text-align:left;
	font-size:max(2.5cqw,1.5rem);
}
h2.produkt-title {
	margin-bottom:0.33em;
}

h1 > p,
h2.produkt-title > p {
	margin:0;
}

h1 {
	anchor-name: --h1-anchor;
} 

h1.page-title {
	margin-top: 3vw;
	padding-top: 0px;
}

h1.produkt-title,
.uebertitel {
	width:fit-content;
	/*border-bottom:0.066em solid var(--textfarbe);*/
	font-weight: var(--bold);
	padding-bottom:0em;
	font-size: max(1.5cqw,1rem);
	line-height: var(--lineheight);
	color: var(--textfarbe);
	margin-bottom:0.5em;
}
h1.produkt-title p {
	margin:0;
}

.path-frontpage h1 {
	color:var(--maincolor) !important;
	font-weight:var(--regular) !important;
	font-size:clamp(2rem, 4cqw, 4rem) !important;
	text-align:center !important;
	text-wrap:balance !important; 
	line-height:120% !important; 
	max-width:40ch !important;
	margin-inline:auto !important;
	hyphens:none !important;
	text-align:center !important;
}
.path-frontpage h1 .actioncolor {
	color:var(--actioncolor);
	font-weight:var(--bold);
}



h2 {
	font-size:clamp(1.66rem, 4cqw, 4rem);
	line-height: var(--lineheight2);
	margin: 0;
	font-weight: var(--black);
	color:var(--textfarbe);
	text-transform: uppercase;
	text-wrap:balance;
}
h2.block-titel {
}

h3 {
	font-size:clamp(1.33rem, 3cqw, 3rem);
	line-height: var(--lineheight2);
	margin: 0;
	font-weight: var(--bolder);
	color:var(--textfarbe);
	text-transform: uppercase;
	text-wrap:balance;
}

h4 {
	font-size:clamp(1.1rem, 2cqw, 2rem);
	line-height: var(--lineheight2);
	margin: 0;
	font-weight: var(--regular);
	color:var(--textfarbe);
	text-wrap:balance;
}

.background-dunkelblau {
	h1, h2, h3, h4, p {
		color:var(--weiss);
	}
}
.background-dunkelblau {
	.actioncolor {
		color:var(--gold);
	}
}
.background-gold {
	.actioncolor {
		color:var(--weiss);
	}
}


h5 {
	margin: 0px;
	padding: 0px;
	font-size: 105%;
	line-height: 115%;
}

.text-s {
	font-size: 80%;
	line-height: var(--lineheight);
}

/* !FARBE */

span.actioncolor {
	color: var(--actioncolor);
	white-space: pre-line;
	display: inline-block;
}

.background-gold {
	background-color:var(--gold) !important;
	background:var(--gold-gradient-horizontal) !important;
} 
.background-hellgold {
	background-color:var(--gold-2);
}
.background-dunkelblau {
	background-color:var(--maincolor) !important;
	xxbackground:var(--dunkelblau-gradient-horizontal) !important;
}
.background-blau {
	background-color:var(--blau--2) !important;
	xxbackground:var(--blau-gradient-horizontal) !important;
}
.background-dunkelgrau {
	background-color:var(--grau--1) !important;
	xxbackground:var(--grau-gradient-horizontal)  !important;
}
.background-hellgrau {
	background-color:var(--grau-1) !important;
}
.background-weiss {
	background-color:var(--weiss) !important;
}
.background-hellgrau:has(+ .background-hellgrau) {
	margin-bottom:0 !important;
	padding-bottom:0 !important;
}

.withbg {
	padding-block:max(2cqw,2rem);
}

.withbg:has(+ .withbg) {
	padding-bottom:0cqw;
}



/* !BUTTONS */

/*pagerbuttons special - schlechte stelle, sind aber buttons ...*/
.pager__items {
	padding:0; margin:0; margin-top:2rem;
	display:flex;
	gap:1rem;
	justify-content:center;
	list-style-type:none;
}
.pager__item::marker {
	display:none;
	content:"";
}


button, input[type="submit"],
.zertifikateliste a, 
.button a {
	text-align: center;
	background-color: var(--weiss);
	background-color:transparent;
	border:1.5px solid var(--maincolor);
	color:var(--maincolor);
	border-radius:10em;
	padding:0.333em 2em 0.333em 2em; 
	transform:scale(1);
	transition:all 0.5s ease-in-out;
	font-weight:var(--medium);
	text-transform:uppercase;

	&:has(img) {
		padding:0.333em 0.333em 0.333em 2em; 
	}
}
.zertifikateliste a {
	padding:0.333em 0.666em 0.333em 0.666em;
	font-size:1rem; 
}

button a,
button a:visited,
input[type="submit"] {
	box-sizing: border-box;
	white-space: nowrap;
	-webkit-transition: all .35s ease;
	 transition: all .35s ease;

	display:grid;
	grid-auto-columns:auto;
	grid-auto-flow:column;
	grid-template-rows:2em; 
	gap:0.666em;
	place-items:center;
	color:var(--maincolor);
	font-weight:var(--medium);
	text-transform:uppercase;
	letter-spacing:0.0125em;
	font-size:clamp(1rem, 1.5cqw, 1.33rem);
}
button img {
	height:100%;
	width:auto;
	aspect-ratio:1;
}

button:hover,
button:active,
input[type="submit"]:hover {
	-webkit-transition: all .35s ease;
	 transition: all .35s ease;
	cursor: pointer;
	transform:scale(1.05);
}


button.small a {
	font-size:0.9rem;
}


button.light {
	background: var(--weiss);
	color: var(--textfarbe);
	border:0px solid var(--maincolor);

	a {
		color:var(--textfarbe);
	
	/*
		display:grid;
		grid-template-columns:auto auto;
		gap:0.66em;

		&:after {
			content:"";
			width:1.5em;
			height:1.5em;
			background-image:url('../images/arrow-right.svg');
			background-size:66% 66%;
			background-repeat:no-repeat;
			background-position:center center;
			border-radius:50%;
			border:1px solid var(--maincolor);	
		}
	*/
	}
}



button.button-superlight {
	background: rgba(255,255,255,0.75);
	backdrop-filter:blur(5px);
	padding:0.25em 0.5em 0.25em 1em;
	color: var(--textfarbe);
	border:0px solid var(--maincolor);
	color:var(--textfarbe);
	text-transform:none;

	&:hover,
	&:active {
		border-width:0px;
		color: var(--weiss);
	}
	a {
		color:var(--textfarbe);
		display:grid;
		grid-template-columns:auto auto;
		gap:0.66em;
		font-size:var(--fontsize);

		&:after {
			content:"";
			width:1.5em;
			height:1.5em;
			background-image:url('../images/arrow-right-solo.svg');
			background-size:66% 66%;
			background-repeat:no-repeat;
			background-position:center center;
			border-radius:50%;
			border:1px solid var(--maincolor);	
		}
	}
}
/*kompliziert ... wenn links grün, dann rechts grüner Pfeil*/
.background-gruen + * > .info-button button.button-superlight a:after {
			background-image:url('../images/arrow-right-gruen.svg');
} 


     


/* Seb: spezialbuttons - ggf. wieder aktivieren, derzeit nur default in rot mit/ohne Icon per auto-column */
button.standard a,
button.standard a:visited {
}

button.standard a:hover,
button.standard a:active {
}

button.markant {
	background-color:var(--actioncolor);
	color:var(--weiss);
}

button.text-pfeil {
	border:none;
	border-radius:0;
	background-color:transparent;
	padding:0;

	a {
		padding-right:2em;
		background-image:url('../images/arrow-right.svg');
		background-size:2em;
		background-repeat:no-repeat;
		background-position:right center;
	}
}


/*
button.learnmore a,
button.learnmore a:visited {
	color: var(--textfarbe);
	padding: 13px 30px;
}

button.learnmore a:hover,
button.learnmore a:active {
	color: var(--actioncolor);
}

button.download a:hover,
button.download a:active {
	color: var(--actioncolor);
}

button.link a,
button.link a:visited {
	color: var(--weiss);
	padding: 13px 30px;
	background-color: var(--actioncolor);
}

button.link a:hover,
button.link a:active {
	color: var(--actioncolor);
}
*/



/* !TOPLINE */

.topline {
	height: var(--toplineheight);
	background: var(--maincolor);
	position:relative;
	z-index:100; 
	
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;
	
	padding-left: var(--seitenrand);
	padding-right: var(--seitenrand);
	box-sizing: border-box;
}

.topline > div:not(:last-child) {
	margin-right: 30px;
}

.sprachwechsler {
	
}

.sprachwechsler ul.links {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	list-style: none;
	margin: 0px;
	padding: 0px;
	text-transform: uppercase;
}

.sprachwechsler ul.links > li:not(:last-child) {
	margin-right: 10px;
}

.sprachwechsler ul.links > li a,
.sprachwechsler ul.links > li a:visited {
	color: var(--textfarbe);
}

.sprachwechsler ul.links > li a:hover,
.sprachwechsler ul.links > li a:active {
	color: var(--maincolor);
}

html[lang=de] .sprachwechsler a[hreflang=de],
html[lang=en] .sprachwechsler a[hreflang=en],
html[lang=hu] .sprachwechsler a[hreflang=hu],
html[lang=ro] .sprachwechsler a[hreflang=ro] {
	font-weight: var(--bold);
}

html[lang=de] .sprachwechsler a[hreflang=de] {
	
}


.lupe {
	width: calc(var(--toplineheight) / 2);
	height: calc(var(--toplineheight) / 2);
}

.lupe:hover {
	cursor: pointer;
}

.lupe:hover svg path {
	fill: var(--maincolor) !important;
}

.topline-button-container {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	gap:1rem;
}

.topline-button-container button {
}


/* !HEADER */


header {
	//height: var(--headerheight);
	box-sizing: border-box;
	position: relative;

	position: sticky;
	top: 0px;
	left: 0px;
	right: 0px;
	z-index:100;
	background-color:var(--weiss);
}

body.user-logged-in header {
	top: var(--adminspacer, 0px);
}



.region-header {
	position: relative;
	height: var(--headerheight);
	padding: var(--headerpadding) var(--seitenrand);
	box-sizing: border-box;
	
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	
	transition:all 0.3s 0.1s ease-in-out;
}

header.is-stuck .region-header {
	--headerheight:100px;
	--headerpadding:15px;
  box-shadow: 0px 0px 30px rgba(0,0,0,0.3); /* Optional: Ein kleiner Schatten als visueller Effekt */
}

.block-system-branding-block {
	height:66%;

	img {
		width: auto;
		height: 100%;
	}
}










/* !NAVIGATION */


.menucover {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0,0,0,0);
  z-index: 10;
  pointer-events: none;
  transition: all 0.5s ease-in-out;
}
body.menuopen .menucover {
  background-color: rgba(0,0,0,0.3);
  pointer-events: auto;
  backdrop-filter: blur(5px);
}


.topmenu {
	position:static;
}




.topmenu ul.level0 {
	display: flex;
	gap:1rem;
	flex-direction: row;
	justify-content: flex-end;
	padding: 0px;
	margin: 0px;
	margin-top:0px;
	list-style: none;
}
body.user-logged-in .topmenu ul.level0  {
	top: calc(var(--headerheight) + var(--adminspacer) + var(--toplineheight)) !important;
}

.topmenu ul.level0,
.topmenu li.mlevel0 {
  position: static !important; 
}




/*submenu-Logik. Siehe auch script.js im Zusammenspiel!*/
	/* 1. Der Haupt-Container wird zum Ankerpunkt für alle Untermenüs */
	.topmenu .levelcontainer {
		position: absolute;
		top: calc(var(--headerheight));
		left: 0px;
		z-index: 95;

		box-sizing: border-box;
		display: block; /* NEU FÜR DIE ANIMATION:  Immer Block, nicht mehr none */
		height: 0;
		width: 100%;
		overflow: hidden; /* Schneidet den Inhalt ab, solange der Container zu ist */

		background: rgba(255,255,255,1);
		backdrop-filter: blur(10px);
		padding: 0 var(--seitenrand); /* WICHTIG: vertikales Padding stört die Höhenberechnung bei height: deshalb hier 0 */
		transition: height 0.33s ease-in-out;
	}
	body.user-logged-in .topmenu .levelcontainer {
		top: calc(var(--headerheight));
	}

	.levelcontainer ul {
		border-right:1px solid var(--maincolor);
	}

	/* 2. Level 1 bleibt im normalen Fluss (baut die erste Spalte auf) */
	.levelcontainer .level1 {
	display: none;
	box-sizing: border-box;
	background: var(--weiss);
	width: var(--menucolumn);
	height: calc(100% - var(--menugap) * 2 ); 
	margin: var(--menugap) 0 0 0;
	padding: 0 calc(var(--menugap)*0.8) 0 0;
	background-color: #ffffff;
	list-style: none;
	}
	.levelcontainer .mlevel1,
	.levelcontainer .mlevel2,
	.levelcontainer .mlevel3 {
		position: static !important; 
	}

	.levelcontainer .level2 {
		--levelfactor:1;
		--levelrand:var(--seitenrand);
	}

	/* 4. Level 2-4 wird absolut positioniert */
	.levelcontainer .level2,
	.levelcontainer .level3,
	.levelcontainer .level4 {
	display:none;
	position: absolute;
	top: var(--menugap);
	bottom: var(--menugap);
	left: calc(var(--levelrand) + var(--menucolumn) + var(--menugap) );
	width: var(--menucolumn);
	background-color: #ffffff;
	margin: 0;
	padding: 0;
	list-style: none;
	animation: menuSlidein 0.5s ease-out forwards;
	}

	.levelcontainer .level3 {
		left: calc(var(--menucolumn) + var(--menugap) );
		top:0;
		bottom:0;
	}
	.levelcontainer .level4 {
		left: calc(var(--menucolumn) + var(--menugap) );
		top:0;
		bottom:0;
	}


	@keyframes menuSlidein {
	0% 	{	opacity: 0;	transform: translateX(-25px);	}
	100% 	{	opacity: 1;	transform: translateX(0);		}
	}

	.levelcontainer li.menu-item--active-trail > .level2,
	.levelcontainer li.menu-item--active-trail > .level3,
	.levelcontainer li.menu-item--active-trail > .level4 {
		display:block;
	}







/* aussehen der Menüpunkte - nur visuell */

/* generell */
.topmenu a {
	color:var(--maincolor);
}

/* Spezialfall Level 0 */
.topmenu .level0 > li > a,
.topmenu .level0 > li > a:visited {
	display:block;
	text-transform:uppercase;
	font-weight:500;
	color: var(--blau--2);
	padding: 0.5em 1em;
	box-sizing: border-box;
} 
.topmenu .level0 > li > a:hover {
	color: var(--actioncolor);
} 
.topmenu .level0 > li.menu-item--active-trail > a {
	color: var(--blau--2);
	font-weight:var(--black);
}
.topmenu .level0 > li > a.is-active,
.topmenu .level0 > li.menu-item--active-trail > a {
	color: var(--blau--2);
	border-bottom:3px solid var(--blau--2);
}


/* generell ab level 1 und tiefer*/
.topmenu .level1 li.special-submenu-item > a {
	color:var(--maincolor) !important;
	font-weight:var(--black);
	text-transform:uppercase;
}
.topmenu .level1 li:has( > ul) > a {
	display:grid !important;
	grid-template-columns:auto 1.5em;
	place-items:center start;
	&:after {
		content:"";
		width:100%;
		aspect-ratio:1/1;
		height:auto;
		background-image:url('../images/arrow-right-blau-solo.svg');
		background-size:100% 100%;
	}
}
.topmenu .level1 li.menu-item--active-trail > a {
	font-weight:var(--bold);
	color:var(--actioncolor); 
}
.topmenu .level1 li.menu-item--active-trail:has( > ul) > a {
	&:after {
		background-image:url('../images/arrow-right-solo.svg');
	}
}

.topmenu .level1 {
	li > a {
		display: block;
		padding: 0.5em 1em !important;
		border-bottom:0px solid var(--grau);
		
		&:hover {
			background-color:var(--grau-2);
		}
	}
}




/* Close-Button */
.topmenu .menu-close-button {
	position: absolute;
	right: var(--seitenrand);
	top: calc(var(--headerheight) + 1rem);
	width: 30px;
	height: 30px;
	z-index: 96;
	display: none;
}
.topmenu .menu-close-button:hover {
	cursor: pointer;
	opacity: 0.6;
}
body.user-logged-in .menu-close-button {
	top: calc(var(--headerheight) + 1rem);
}
.topmenu ul.level1 .menu-close-button:hover {
	cursor: pointer;
}
.topmenu ul.level1 .menu-close-button img {
	width: 100%;
	height: auto;
}



/* Mobile Menu */

.navcover {
	display:none;
	position:fixed;
	z-index:99; top:0; bottom:0; left:0; right:0;
	background-color:rgba(0,0,0,0.2);
	backdrop-filter:blur(3px) saturate(75%);

	&.is-active {
		display:block;
	}
	
	@media(min-width:1280px) {
		display:none !important;
	}
}


.navburger {
	&.is-active {
	}
}

/* --- GRUND-SETUP DESKTOP --- */
.navburger {
	display: none; /* Auf Desktop unsichtbar */
	z-index: 100;
	cursor: pointer;
	pointer-events: auto;

	box-sizing:border-box;
	font-size: min(5vw,28px); /* Das ist jetzt deine Basis-Größe für das Icon */
	width:1.7em;
	height:auto;
	aspect-ratio:1/1;

	/* Neu: Flexbox für die exakte Zentrierung */
    flex-direction: column;
    justify-content: center; /* Zentriert vertikal */
    align-items: center;     /* Zentriert horizontal */
    gap: 0.2em;              /* Abstand zwischen den 3 Linien */

	background-color:var(--weiss);
	border-radius:50%;
	border:1px solid var(--actioncolor);

	.hamburger-line {
		display: block;
		width: 0.2em;
		height: 0.2em;
		border-radius:50%;
		background-color: var(--maincolor);
		transition: all 0.3s ease;
	}
	&.is-active .hamburger-line:nth-child(1) { transform: translateY(0.4em) rotate(45deg) scale(2); }
	&.is-active .hamburger-line:nth-child(2) { opacity: 0; }
	&.is-active .hamburger-line:nth-child(3) { transform: translateY(-0.4em) rotate(-45deg) scale(2); }
}









@media (max-width:1279px) {
	
	:root {
	--headerheight: 100px;
	--headerpadding:15px;
	--mobilemenupad:1em;
	}

	.menu-close-button {
		display:none !important;
	}

	.topmenu {
		background-color:#f7f7f7;

		max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease-in-out; /* Dauer (0.3s) kannst du anpassen */	
	 
	 	place-self: start;
		position: absolute;
		top: calc(var(--headerheight));
		overflow-y:auto;
		right: var(--seitenrand);
		z-index: 100;
		width:90vw;
		max-width:380px;
		box-shadow:0 10px 10px -5px rgba(0,0,0,0.33);
		
		&.is-open {
			max-height: calc(100vh - var(--headerheight) - 60px + 10px);
		} 
 	}

	body.user-logged-in .topmenu {
		top: calc(var(--headerheight) + 0px);
		&.is-open {
			max-height: calc(100vh - var(--headerheight) - 100px + 10px);  /*wonky*/
		}
	}
 

	.navburger {
		display:flex;
	}


	.topmenu ul.level0 {
		display:block;
	}
	.topmenu .levelcontainer {
		display:contents;
	}

	.levelcontainer .mlevel1, 
	.levelcontainer .mlevel2, 
	.levelcontainer .mlevel3 {
	}

	.levelcontainer .level1,
	.levelcontainer .level2,
	.levelcontainer .level3,
	.levelcontainer .level4 {
		display:none;
		position:static;
		width: 100%;
		background-color:transparent;
		animation: menuSlidein 0.5s ease-out forwards;
	} 




	.topmenu .level0 > li > a.is-active, 
	.topmenu .level0 > li.menu-item--active-trail > a {
		border:none;
		border-radius:0;
	}

	.levelcontainer .level1 {
		margin-left:calc( var(--mobilemenupad) * 2);
		width:calc(100% - var(--mobilemenupad) * 2);
	}

	.levelcontainer .level2 {
		margin-left:calc( var(--mobilemenupad) * 2);
		width:calc(100% - var(--mobilemenupad) * 2);
	}

	.levelcontainer .level3 {
		margin-left:calc( var(--mobilemenupad) * 2);
		width:calc(100% - var(--mobilemenupad) * 2);
	}

	.levelcontainer .level4 {
		margin-left:calc( var(--mobilemenupad) * 2);
		width:calc(100% - var(--mobilemenupad) * 2);
	}



	li.menu-item--active-trail > .levelcontainer > .level1,
	li.menu-item--active-trail > .level2,
	li.menu-item--active-trail > .level3,
	li.menu-item--active-trail > .level4 {
		display:block;
	}



	.topmenu li.mlevel0.menu-item--active-trail {
		background-color:white;
	}

	.topmenu .level0 {
		li > a {
			border-bottom:1px solid var(--grau) !important;
		}
	}
	.topmenu .level1 li.special-submenu-item > a {
		font-weight:var(--regular);
	}

}




















/* !HEADERSLIDER */

.region-headerslider {
	position: relative;
	margin-bottom:3rem;
}

.page-node-type-homepage .region-headerslider {
	margin-bottom:0rem;
}


.headerslide {
	display:grid;
	grid-template-rows:1fr auto auto;
	grid-template-areas:"." "footer";
	place-items:center;
}

.headerslide picture {
	grid-row: 1 / -1;
	grid-column: 1 / -1;
	z-index:1;
	width:100%;
}

.headerslide button.learnmore {
	grid-area:footer;
	place-self:center;
	z-index:3;
}

.headerslide .headerslide-cover {
	grid-area:footer;
	width:100%;
	z-index:2;
}

.headerslide .headerslide-cover img {
	width: 100%;
	height: 100%;
	object-fit:fill;
	aspect-ratio:16/1;
}
/*
.headerslide .region-headerslider img {
	width:100%;
	height:auto;
}
*/

.headerslide.vollbild {
	width:100%;
	height:100svh;
	
	display:grid;
	grid-template-columns: 1fr;
	grid-template-rows:1fr auto;
	place-items:center center;
	
	> * {
		grid-column: 1 / -1;
		grid-row: 1 / -1;
	}
	> .headerslide-title {
		width:100%;
		z-index:10;
		grid-row: 1 / -1;
		font-size:max(2vw, 2rem);
		font-weight:var(--black);
		color:white;
		text-transform:uppercase;
		letter-spacing:0.0125em;
		line-height:1.1;
		text-align:center;
		text-wrap:balance;
		background-color:color-mix(in srgb, var(--blau--2) 66%, transparent);
		padding:min(2rem, 4vw) 4vw;
		box-sizing:border-box;
		
		display:grid;
		place-content:center;
		
		.headerslide-title-inner {
			width:fit-content;
			border-block:1px solid var(--gold);
			padding:1vw;
		}
	}

	> .headerslide-untertitel {
		z-index:20;
		grid-row: -2 / -1;
		font-size:max(1vw, 1rem);
		font-weight:var(--bold);
		color:white;
		text-transform:uppercase;
		letter-spacing:0.0125em;
		text-align:center;
		text-wrap:balance;
		padding:min(2rem, 4vw) 4vw;
		box-sizing:border-box;
		width:min(90vw, 1200px);
		text-wrap:balance;
		place-items:center;
		display:grid;
		
		&:after {
			content:"";
			display:block;
			width:100px;
			height:100px;
			margin:20px;
			background-image:url('../images/trenner_pfeil.svg');
		}
	}
	
	> picture img {
		width:100vw;
		height:100svh;
		object-fit:cover;
	}
}






/* !BREADCRUMB */

/**
 * @file
 * Styles for breadcrumbs.
 */
 
.breadcrumb {
	margin-top:0rem;
	margin-bottom: 5rem;
	font-size:1rem;
	font-weight:var(--regular);
	//border: 1px solid var(--grau);
	padding:0.33rem 1rem; 
	border-radius:5rem;
	width:fit-content;
	@media (max-width:767px) {
		/*display:none;*/
	}
}
.page-node-type-homepage .breadcrumb {
	display:none;
}

.breadcrumb ol {
	margin: 0;
	padding: 0;
	display:flex;
	flex-direction:row;
	gap:0.8em;
}
[dir="rtl"] .breadcrumb ol {
	/* This is required to win over specificity of [dir="rtl"] ol */
	margin-right: 0;
}
.breadcrumb li {
	list-style-type: none;
	margin: 0;
	padding: 0;
}
/* IE8 does not support :not() and :last-child. */
.breadcrumb li:before {
	content: ' \BB ';
	margin-right:0.7em;
}
.breadcrumb li:first-child:before {
	content: none;
}
.breadcrumb li a {
	color:var(--textfarbe);
}
.breadcrumb li a:hover {
	font-weight:var(--medium);
}
/* !Colorbox Overrides*/

button:focus {outline:0;}


#cboxPrevious,
#cboxPrevious:hover {
	background-image:url('../images/galprev.png') !important;
	width:33px !important;
	height:33px !important;
	background-position: left top !important;
	background-size: 100% 100% !important;
	margin-top: 0px !important;
	-webkit-transform: translateY(-50%) !important;
	-moz-transform: translateY(-50%) !important;
	transform: translateY(-50%) !important;
}

#cboxNext,
#cboxNext:hover {
	background-image:url('../images/galnext.png') !important;
	width:33px !important;
	height:33px !important;
	background-position: left top !important;
	background-size: 100% 100% !important;
	margin-top: 0px !important;
	-webkit-transform: translateY(-50%) !important;
	-moz-transform: translateY(-50%) !important;
	transform: translateY(-50%) !important;
}

#cboxClose,
#cboxClose:hover {
	background-image:url('../images/galclose.png') !important;
	background-size: 100% 100% !important;
	background-position: left top !important;
	width:33px !important;
	height:33px !important;
	top:-7px !important;
	right:-7px !important;
}
#cboxOverlay {
	background:var(--weiss) !important;
}

#cboxContent {
	background:var(--weiss) !important;
	overflow: visible !important;
}

#cboxLoadedContent {
	border: 12px solid var(--weiss) !important;
	background: var(--weiss) !important;
}

#cboxWrapper {
	background:transparent !important;
	padding-top:0px !important;
	overflow: visible !important;
}

#cboxTitle {
	left:12px !important;
	top:-18px !important;
	color: var(--schwarz) !important;
	display: none !important;
}

#cboxCurrent {
	right:12px !important;
	top:-18px !important;
	color:var(--schwarz) !important;
	display: none !important;
}

#cboxLoadedContent {
	border: 0px !important;
	overflow: visible !important;
}

#colorbox, #cboxOverlay, #cboxWrapper {
	overflow: visible !important;
}


/* !FORM ALLGEMEIN */

input[type="checkbox"] {
	appearance: none;
	background-color: #fff;
	margin: 0;
	font: inherit;
	color: currentColor;
	height: 100%;  max-height:1.4em;
	width:auto;
	aspect-ratio: 1;
	border: 1px solid var(--schwarz);
	border-radius: 50%;
	
	display: grid;
	float: left;
	margin-right: 7px;
	margin-top: 3px;
	place-content: center;
}

input[type="checkbox"]::before {
	content: "";
	width: 0.65em;
	height: 0.65em;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 1em 1em var(--maincolor);
	
	/* Windows High Contrast Mode */
	background-color: CanvasText;
	
	transform-origin: bottom left;
	clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

input[type="checkbox"]:checked::before {
	transform: scale(1);
}

input[type="checkbox"]:focus {
	outline: max(2px, 0.15em) solid currentColor;
	outline-offset: max(2px, 0.15em);
}


.form-type-radio {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	align-content: center;
}

input[type="radio"] {
	/* Add if not using autoprefixer */
	-webkit-appearance: none;
	appearance: none;
	/* For iOS < 15 to remove gradient background */
	background-color: #fff;
	/* Not removed via appearance */
	margin: 0;
	font: inherit;
	color: var(--actioncolor);
	width: 22px;
	height: 22px;
	border: 1px solid var(--actioncolor);
	border-radius: 50%;
	transform: translateY(-0.075em);
	display: grid;
	place-content: center;
	margin-right: 7px;
	top: 2px;
	position: relative
}

input[type="radio"]::before {
	content: "";
	width: 0.65em;
	height: 0.65em;
	border-radius: 50%;
	transform: scale(0);
	transition: 120ms transform ease-in-out;
	box-shadow: inset 1em 1em var(--actioncolor);
}

input[type="radio"]:checked::before {
	transform: scale(1);
}

input.js-form-submit {
/*	display: table;
	margin-top: 3vh;
	text-align: center;
	text-transform: uppercase;
	margin-bottom: 20px;
	border: solid 1px var(--linecolor);
	background-color: var(--weiss);
	color: var(--schwarz);
	border-radius: 30px;
	padding: 13px 30px 13px 30px;
	box-sizing: border-box;
	white-space: nowrap;
	font-weight: var(--medium);
	transition:.3s;
*/
}

input.js-form-submit:hover {
	transition:.3s;
}

::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	color: var(--grau);
	font-style:italic;
}
::-moz-placeholder { /* Firefox 19+ */
	color: var(--grau);
	font-style:italic;
}
:-ms-input-placeholder { /* IE 10+ */
	color: var(--grau);
	font-style:italic;
}
:-moz-placeholder { /* Firefox 18- */
	color: var(--grau);
	font-style:italic;
}

.node--type-error-page .field--name-body {
	font-size: 500%;
	line-height: 100%;
}



/* !WEBFORM */

.webform-2-spalten,
.webform-3-spalten {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:2cqw;
}
.webform-3-spalten {
	grid-template-columns:1fr 1fr 1fr;
}


.webformflex {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	gap:2cqw;
}

.webformflex > div {
	flex-basis: calc(50% - 1cqw);
}

.webform label {
	margin-bottom: 5px;
	display: table;
}

.webform input[type=text],
.webform input[type=tel],
.webform input[type=email],
.webform textarea,
.webform .webform-type-checkbox,
.webform .js-webform-type-webform-document-file {
	border:none;
	border-radius:1.5rem;
	padding: 0.75rem 0.75rem 0.75rem 1.5rem;
	box-sizing: border-box;
	//height: 50px;
	width: 100%;
} 
.webform textarea {
	padding:1.5rem 1.5rem;	
}

.webform select {
	height: 50px;
	border: solid 1px var(--lineheight);
	width: 100%;
	background-color: var(--weiss);
	padding: 0px 15px;
	box-sizing: border-box;
	border-radius: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	color: var(--schwarz);
	border-radius: 0px;
	
	background-image: url("../images/select-arrow.svg");
	background-position: calc(100% - 20px) center;
	background-repeat: no-repeat;
	background-size: 13px 13px;
}

.webform .js-webform-type-select {
}
.webform .js-form-item-geburtsjahr {
	.container-inline {
		display:block;
	}
	.form-item-geburtsjahr-year {
		width:100%;
	}
}

.js-webform-type-webform-document-file {
	background-color:var(--weiss);
	padding:1.5rem 1.5rem !important;
	margin-block:1rem 3rem !important;
	
	.description {
		margin-top:1em;
		width:100% !important;
		max-width:none !important;
		font-size:70%;
		
		br {
			display:none;
		}
	}
}

.webform .webform-type-checkbox {
	display:grid;
	grid-template-columns: 1fr auto;
	grid-template-rows:1fr;
	gap:1cqw;
	place-items:center start;
	background-color:var(--weiss);
	label {
		grid-column:1; grid-row:1;
		margin:0;
	}
	input {
		grid-column:2; grid-row:1;
		margin:0;
	}
}
.webform .webform-type-checkbox.js-form-item-datenschutz {
	background-color:transparent !important;
	label {
		grid-column:2; grid-row:1;
	}
	input {
		grid-column:1; grid-row:1;
	}
}

.webform .js-form-wrapper,
.webform .form-textarea-wrapper {
	margin-block:2cqw 4cqw;
}

.webform .form-item {
	margin: 0px 0px 0px 0px;
}

.webform .wfleft {
	width: 50%;
	float: left;
}

.webform .wfleft input {
	width: calc(100% - 10px);
	float: left;
}

.webform .wfright {
	width: 50%;
	float: right;
}


.webform .webform-type-checkbox {
}


.webform .form-item-datenschutz {
	margin-top: var(--abstand1);
	margin-bottom: var(--abstand2);
}


.webform .form-item-datenschutz a,
.webform .form-item-datenschutz a:visited {
	color: var(--schwarz);
}

.webform .form-item-datenschutz a:hover,
.webform .form-item-datenschutz a:active {
	color: var(--actioncolor);
}


.webform .messages--error {
	margin-bottom: 20px;
}
.webform .wfcont {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}


.webform .wfcont > div {
	flex-basis: 45%;
}

.webform .webform-actions input {

}
.webform-confirmation {
	background: red;
	padding: 20px;
	box-sizing: border-box;
}



/*seb custom select*/

.view-filters {
	margin-top:5cqw; 
	margin-bottom:5cqw;
}

.form--inline {
	display:grid;
	//grid-template-columns:1fr 1fr 1fr auto;
	grid-auto-flow: column;
	justify-content:center;
	align-items:center;
	gap:2rem;
	> * {
		margin-left:0rem;
	}
	> :first-child, > :last-child {
		margin-left:0;
	}
}






.select2-container .select2-selection--single {
		border-radius:1.15rem;
		line-height:1.15 !important;
		padding:0.33em 1em !important;
		font-size:clamp(1rem, 1.5cqw, 1.33rem);
		border-color:var(--maincolor) !important;
		height:auto !important;
}
.background-hellgrau .select2-container .select2-selection--single {
	border:none !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height:unset !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	border:none !important;
}

.select2-container .select2-dropdown {
	border-bottom-left-radius:1em;
	border-bottom-right-radius:1em;
	overflow:clip;
	//border-color:var(--actioncolor);
}
.background-hellgrau .select2-container .select2-dropdown {
	border:none !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	border-radius:2em !important;
	background-color:var(--grau-2) !important;
	padding-inline:1em !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height:100%; !important
	position: absolute !important;
  top: 0px !important;
  right: 0px !important;
  width: auto !important;
  aspect-ratio: 1 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
	background-image:url('../images/arrow-right.svg');
	background-size:100% auto;
	background-position:center;
	background-repeat:no-repeat;
	background-size:60%;
	border:none !important;
	height:100%;
	width:auto;
	aspect-ratio:1;
	top:0;
	right:0.125em;
	left:unset;
	margin:0;
	transform:rotate(0deg);
	transition:all 0.25s ease-in-out;
}
.select2-container--open {
	.select2-selection--single .select2-selection__arrow b {
		transform:rotate(90deg);
	}
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
	background-color:var(--grau-2) !important;
	color:var(--textfarbe) !important;
}
.select2-container--default .select2-results__option--selected {
	background-color:var(--grau-1) !important;
	color:var(--textfarbe) !important;
}
.select2-container--default .select2-results > .select2-results__options {
	max-height:40vh;
}


.lang-dropdown-form {
		text-transform: uppercase;
}
.lang-dropdown-form .select2-container {
	width:70px !important;
	text-transform: uppercase;

	.select2-selection--single {
		border-width:0 !important;
		font-size:0.9rem !important;
		height:41px !important;
		border-radius:1.5rem ;

		
		.select2-selection__rendered {
			padding: 0 !important;
			height: 100%;
      	display: grid;
      	place-items: center;
			font-weight:bold;
			color:var(--textfarbe);

		}
		
		 .select2-selection__arrow {
			 display:none !important;
		 }
	}
}



/* alte selects ohne select2, vermutlich obsolet*/
select.form-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  border: 1px solid var(--maincolor);
  border-radius: 10rem;
  color: var(--textfarbe);
  padding: 0.5em 2em 0.5em 1em; /* Rechts mehr Padding (40px) für den eigenen Pfeil */
  font-size: 1.2rem;
  text-align:center;
  background-color: var(--weiss);
  cursor: pointer;
  box-sizing: border-box;

  background-image: url("../images/arrow-right.svg");
  background-repeat: no-repeat;
  background-position: right 0.5em top 50%;
  background-size: 1em auto; 
}
select.form-select.lang-dropdown-select-element {
	border:1px solid var(--weiss);
	width:fit-content !important;
	background-image:none;
	background-color:transparent;
	padding:0.5em 1.5em;
	text-transform:uppercase;
	font-weight:var(--medium);
	font-size:0.9rem;
	line-height:1.5rem;
	box-sizing:border-box;
	height:2.5rem;
}

select.form-select:focus {
}

select.custom-dropdown::picker(select) {
      /* Verankert das Popup unten */
      position-area: bottom; 
      
      padding: 8px;
      border: none;
      border-radius: 12px;
      background-color: #ffffff;
      box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
      margin-top: 8px; /* Abstand zwischen Button und Menü */
    }

    /* 3. Formatierung der einzelnen Optionen innerhalb des Pickers */
    select.custom-dropdown option {
      padding: 12px 16px;
      margin-bottom: 4px;
      border-radius: 6px;
      cursor: pointer;
      color: #333333;
    }

    select.custom-dropdown option:last-child {
      margin-bottom: 0;
    }

    /* Hover-Status für die Optionen (endlich per CSS möglich!) */
    select.custom-dropdown option:hover {
      background-color: #ffeeee;
      color: red;
    }


.standort-anfrageblock {
	h3 {
	}

	.anfrageblock-kontaktinfos {
		padding:5cqw 0; 
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:5cqw;
		place-items:start center;

		a {
			color:var(--maincolor);
			font-weight:var(--medium);
			display:flex;
			flex-direction:column;
			gap:1cqw;
			align-items:center;

			&:before {
				content:"";
				width:6cqw;
				height:auto;
				aspect-ratio:1/1;
				background-image:url('../images/icon_mail.png');
				background-size:100% 100%;
			}
		}
		
		.kontaktinfos-tel {
			a {
				&:before {
				background-image:url('../images/icon_tel.png');
				}
			}
		}
	}
}

















/* !PARAGRAPH */

.bausteinecontainer > .paragraph {
	margin-bottom: var(--abstand5);
}
.paragraph.abstand-0 {	margin-bottom: var(--abstand0) !important;	}
.paragraph.abstand-1 {	margin-bottom: var(--abstand1) !important;	}
.paragraph.abstand-2 {	margin-bottom: var(--abstand2) !important;	}
.paragraph.abstand-3 {	margin-bottom: var(--abstand3) !important;	}
.paragraph.abstand-4 {	margin-bottom: var(--abstand4) !important;	}
.paragraph.abstand-5 {	margin-bottom: var(--abstand5) !important;	}
.paragraph.abstand-6 {	margin-bottom: var(--abstand6) !important;	}
.paragraph.abstand-7 {	margin-bottom: var(--abstand7) !important;	}
.paragraph.abstand-10 {	margin-bottom: var(--abstand10) !important;	}


/*.bausteinecontainer > .paragraph.p-snippets {
	margin-bottom: calc( var(--abstand3) + var(--snippet-shift) );
}*/
.bausteinecontainer > .paragraph:has(+ .paragraph--type--fly-in) {
	margin-bottom: var(--abstand4);
}
.bausteinecontainer > .paragraph.withbg:has(+ .paragraph--type--infoblock-nodeblock) {
	margin-bottom:5px;
}
/*.bausteinecontainer > .paragraph:has(+ .paragraph--type--buttons) {
	margin-bottom: var(--abstand3);
}*/

/*
.bausteinecontainer > .paragraph:has(h2:last-child) {
	margin-bottom: var(--abstand1);
}*/

.bausteinecontainer > .p-infoblock:has(+ .p-infoblock, + .paragraph--type--infoblock-nodeblock),
.bausteinecontainer > .paragraph--type--infoblock-nodeblock:has(+ .p-infoblock, + .paragraph--type--infoblock-nodeblock),
.bausteinecontainer > .background-hellgrau:has(+ .p-infoblock),
.bausteinecontainer > .paragraph--type--infoblock-grau-hellgrau:has(+ .paragraph--type--infoblock-grau-hellgrau),
.bausteinecontainer > .paragraph--type--ansicht-block:has(+ .paragraph--type--ansicht-block) 
{
	margin-bottom:5px;
}


/* Paragraph View / Ansicht */

.paragraph--type--ansicht-block,
.paragraph--type--snippets {
	*:not(.view-zertifikate) {
		.view-content {
			margin-top:5cqw;
		}
	}
	.view-zertifikate {
		.view-content {
			margin-top:1cqw;
		}
	}
}




/* Paragraph Produkteigenschaft */

.p-produkteigenschaften {

	.produkt-content,
	.infoblock_grau_hellgrau-content {
		display:flex;
		flex-direction:column;
		gap:0.5em;
	}

	.field--type-entity-reference {
		border-radius:10rem; overflow:clip;
		width:fit-content;

		display:flex;
		flex-direction:row;

		.field__label {
			background:var(--actiongradient);
			min-width:133px;
			padding:0.25em 1em;
			color:var(--weiss);
			font-weight:var(--medium);
			text-align:right;
		}

		.field__items {
			background-color:var(--grau-2);
			display:flex;
			flex-direction:row;

			.field__item {
				padding:0.25em 1em;
				border-left:1px solid var(--grau);
				margin:0 !important;
				
				&:first-child { border-left:none; }
			}
		}

	}
}





/* Paragraph Trenner */
/* Paragraph Trenner */

.bausteinecontainer > .p-trenner {
	margin:0 !important;
	display:flex;
	flex-direction:column;
	align-items: center;
	overflow: hidden;
	> img {
		height: 5cqw;
		min-height: 100px;
		width: auto;
		margin-bottom:50px;
	}
}
.bausteinecontainer > .p-trenner-untern-mit-pfeil {
	margin-bottom:var(--abstand5) !important;
}
.bausteinecontainer .p-trenner + .withbg {
	padding-top:0;
}

.p-infoblock,
.background-hellgrau {
	&:has(+ .p-trenner) {
		margin-bottom:0 !important;
	}
}

.p-trenner {
	.field--name-field-icon-paragraph {
		width:min(25cqw, 10rem);
		margin-inline:auto;
		margin-bottom:2cqw;
	}
}


/* Paragraph Media (Bild/Video/Slider) */
/* Paragraph Media (Bild/Video/Slider) */
.p-media {

	&.align-left   { float:none; }
	&.align-right  { float:none; }
	&.align-center { float:none; }


	&.width-100 > div { width:100%;  }
	&.width-90 > div { width:90%;    }
	&.width-80 > div { width:80%;    }
	&.width-75 > div { width:75%;    }
	&.width-70 > div { width:70%;    }
	&.width-66 > div { width:66.66%; }
	&.width-60 > div { width:60%;    }
	&.width-50 > div { width:50%;    }
	&.width-40 > div { width:40%;    }
	&.width-33 > div { width:33.33%; }
	&.width-30 > div { width:30%;    }
	&.width-25 > div { width:25%;    }
	&.width-20 > div { width:20%;    }
	&.width-10 > div { width:10%;    }

	&.align-left > div { margin-left:0; margin-right:auto; }
	&.align-right > div { margin-right:0; margin-left: auto; }
	&.align-center > div { margin-inline:auto; }

	&.abstand-vertikal-oben  > div { margin-top:5cqw; }
	&.abstand-vertikal-unten > div { margin-bottom:5cqw; }
	&.abstand-vertikal-beide > div { margin-block:5cqw; }
	&.abstand-vertikal-oben-klein  > div { margin-top:2cqw; }
	&.abstand-vertikal-unten-klein > div { margin-bottom:2cqw; }
	&.abstand-vertikal-beide-klein > div { margin-block:2cqw; }
	&.abstand-vertikal-keiner > div { margin-block:0cqw; }

	&.form-abgerundet .view-content .tns-inner {
		border-radius:var(--snippet-radius);
		overflow:clip;
	}
	&.form-kreis .view-content .tns-inner {  /* achtung, das ist schwierig, speziell mit blättern */
		aspect-ratio:1;
		border-radius:50% 50%;
		overflow:clip; 
	}

	.tns-outer {
		display: grid;
		grid-template-rows: 1fr;
		grid-template-columns: 1fr;
	}
	.tns-ovh {
		grid-row: 1 / -1;
		grid-column: 1 / -1;
		z-index: 1;
	}
	.tns-outer .tns-controls {
		grid-row: 1 / -1;
		grid-column: 1 / -1;
		z-index: 10;
		place-self: center center;
		width:100%;
		display: flex;
		justify-content: space-between;
		overflow: visible;

		button {
			padding:0;
			translate:-50%;

			img {
				width:2.5rem !important;
				height:auto;
				aspect-ratio:1 !important;
			}


			&:last-child  {
				translate:50%;
			}
			&:first-child {
				img {
					rotate:180deg;
				}
			}
		}

	}
}

/* Paragraph Galerie */
.p-galerie .tns-outer {
	img {
		max-height:40vh;
	}
}


/* Paragraph Details-Slider Buttons für Bilderwechseln */

.p-detail-slider {
}

.p-detail-slider .vvjt .vvjt-inner {
	.tab-buttons {
		background-color:transparent;
		padding:1em 1em;
		gap:1rem;
		justify-content:center;
		
		.vvjt-button {
			border-radius:10rem !important;
			padding:0.5em 2em;
			display:grid; place-items:center;
			width:fit-content;
			max-width:unset;
			color:var(--textfarbe);
			background-color:var(--grau) !important;
			
			&.active {
				background-color:var(--actioncolor) !important;
				color:var(--weiss) !important;
			}
		}
	}
	.tab-panes {
		padding:0;
		background-color:transparent;
		border: 1px solid #cccccc;
	}
}



.p-infoblock > .maxwidthcontent,
.zertifikate-liste-container,
.job-liste-container, 
.jobdetails {                 /* jobs: ich bilde möglichst alle klassen so nach, dass sie dem infoblock-pattern entsprechen --> spart hoffetlich CSS-Doppelungen, wenn das nicht klappt, dann differenzieren */

		max-width:var(--maxwidthcontent) !important;
		> .bleed-left {
			color: var(--weiss);
			box-sizing: border-box;
			width: calc( 100% + max(0px, (100vw - var(--maxwidthcontent)) / 2) );

			--padding-services-block-left: 4cqw;
			padding: var(--padding-services-block-left);
			padding-right:3cqw;
			padding-left: calc( 1 * max(0px, (100vw - var(--maxwidthcontent)) / 2) /*+ var(--padding-services-block-left)*/ );
			margin-left: calc( -1 * max(0px, (100vw - var(--maxwidthcontent)) / 2));

			background-color:var(--blau--2);
			border-radius:0 var(--snippet-radius) var(--snippet-radius) 0;
			color:white !important;
			
			.dachzeile, h2 {
				color:white;
			}
		}

		> .p-infoblock-right {
			box-sizing: border-box; 

					.field__item:not(:last-child) {
						margin-bottom:1.5rem;
					}
					.field--name-field-icon-text .field__item {
						margin-bottom:1.5rem !important;
					}
		} 

		.titel-titel {
			text-align:right;
			width:fit-content;
			max-width:80cqw;
		}
		h4 {
			font-size:100%;
			font-weight:var(--bold);
			color:var(--actioncolor);
			margin:0.5em 0 0.33em 0;
		}
		p:first-child { margin-top:0; }
		p:last-child { margin-bottom:0; } 

		.p-highlight-linie {
			display:none !important; 
		}
		
		.info-button {
			margin-top:5cqw;
			display:grid;
			place-items:end end;
		}
}



/* jobs Addons */
/* jobs Addons */

.paragraph--type--ansicht-block .job-liste-container,
.paragraph--type--ansicht-block .zertifikate-liste-container {
	margin-bottom:5px;
}


.jobliste {
	&:not(:last-child) { border-bottom:1px solid var(--grau); }
	padding:0.5em 0;

	.views-field-title {
		width:100%;
	}
	a {
		width:100%;
		color:var(--weiss);
		font-weight:var(--medium);

		display:grid;
		grid-template-columns:auto 2rem;
		gap:1rem;
		place-items:center start;
		box-sizing:border-box;
		
		&::after {
			content:"";
			width:100%;
			box-sizing:border-box;
			height:auto;
			aspect-ratio: 1/1;
			background-image:url('../images/arrow-right.svg');
			background-size:60% 60%;
			background-position:center center;
			background-repeat:no-repeat;
			border:1px solid var(--maincolor);
			border-radius:50%;
		}
	}
}


/* Standort Adressblock */





/*job-detailseite */

.jobdetails {
	margin-bottom:5px;
	
	.p-infoblock-left {
		grid-template-rows:auto;
	}
}

.jobdetails.field--name-field-job-beschreibung {
	margin-top:var(--abstand3);
}
.jobdetails.field--name-field-das-bieten-wir-ihnen {
	margin-bottom:var(--abstand5);
}

.page-node-type-job .paragraph--type--kreis-buttons {
	background-color:var(--weiss) !important;
}
.page-node-type-job .standort-snippet-title {
	text-align:center;
}
  





/* Zertifikate*/

/* Liste in Infoblock grau/grau*/
.zertifikateliste {
	width:100%;
	display:grid;
	grid-template-columns:3rem auto 7rem;
	gap:1rem;
	place-items:center start;

	margin-bottom:1rem;
	&:last-child {
		margin-bottom:0rem;
	}

	.views-field-field-logo {
		width:100%;
		height:auto;
		aspect-ratio:1;
	}
	img {
		width:100%;
	}
}

/* Liste Zertifikat-Arten für Startseite als Icon */

.zertifikate-taxonomie-wrapper .view-content {

	display: flex;
   flex-wrap: wrap;
   justify-content: center; /* Zentriert alle Zeilen, inkl. der letzten */
	align-items:start;
   gap: 2rem;

	text-align:center;
	text-wrap:balance;
	
	.zertifikat-taxonomie {
		width: max(150px, 9cqw); 
		flex: 0 0 auto;
		
		display:grid;
		grid-template-rows:auto auto;
		gap:1cqw;
		grid-template-areas:"logo" "name";
		
		.field--name-name {
			grid-area:name;
			font-size:0.8rem;
			font-weight:bold;
		}
		.field--name-field-logo {
			grid-area:logo;
			
			display:grid;
			place-items:center;
			
			img {
				width:80%;
				margin-inline:auto;
				height:auto;
				aspect-ratio:1/1;
			}
		}
	}
}



.field--name-field-infoblock-inhalt:has(.p-icon-text) {
	padding-left:10cqw;
	display:grid;
	grid-template-columns:repeat(5, 1fr);
	//grid-template-columns: repeat(auto-fit, minmax(220px, 270px));
	gap:3cqw;
	margin-right:3cqw;
	@media (max-width:1279px) { grid-template-columns:repeat(4, 1fr); }
	@media (max-width:767px) { grid-template-columns:repeat(2, 1fr); }
}

.p-icon-text {
	position: relative;
	width: 100%;
	height: auto;
	perspective: 1000px;
	aspect-ratio: 2/3.25;
	.p-icon-text-icon, .p-icon-text-text {
		box-sizing:border-box;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		backface-visibility: hidden; /* Versteckt die Elemente, wenn sie abgewandt sind */
		transition: transform 0.6s ease-in-out; /* Dauer und Verlauf der Animation */
	}
	.p-icon-text-icon {
		transform: rotateY(0deg);
	}
	.p-icon-text-text {
		transform: rotateY(180deg);
		background-color:white;
		border-radius:1.5em;
		padding:1em;
		display:grid;
		place-items:center;
		color:var(--maincolor) !important;
	}
	&:hover .p-icon-text-icon {
		transform: rotateY(-180deg);
	}

	&:hover .p-icon-text-text {
		transform: rotateY(0deg);
	}
}




.p-adresse {
	display:grid;
	grid-template-columns: 1fr; 
	place-items:start start;

	:last-child {
		place-self:center start;  
	}

	> .p-icon-text-icon,
	> .p-icon-text-icon img {
		width: 100% !important;
		height: auto;
	}

	> div {
		place-self:center start;
		p {
			margin:0;
		}
		:last-child {
			margin:0;
		}
	}
}

.p-adresse > div {
	> * {
		margin-bottom: 0.5em !important;
	}
	
	.field--name-field-name-unternehmen {
		font-weight:var(--bold);
		color:var(--actioncolor);
	}
	.field--label-inline {
		display:grid; 
		grid-template-columns: 1em auto;
		gap:0.33em;
		
		> :first-child {
			font-weight:var(--bold);
			color:var(--actioncolor);
		}
	}
	
	a {
		color:var(--weiss);
		text-decoration:underline;
	}
}



/* Paragraph Spalten */
/* Paragraph Spalten */
.p-spalten-container,
.p-spalten-text-zusatz > .maxwidthcontent {
    display: flex;
    flex-direction: row; /* Standard */
    gap: 2cqw;

    /* Standard-Verteilung, falls keine Aufteilungs-Klasse gesetzt ist (1fr 1fr) */
    > :first-child, 
    > :last-child {
        flex: 1;
    }

    /* Reihenfolge horizontal umdrehen */
    &.reihenfolge-umdrehen {
        flex-direction: row-reverse;
    }
    @media (min-width: 768px) {
        &.reihenfolge-umdrehen-nur-desktop {
            flex-direction: row-reverse;
        }
    }
    @media (max-width: 767px) {
        &.reihenfolge-umdrehen-nur-mobile {
            flex-direction: row-reverse;
        }
    }

    &.aufteilung-90-10 {
        > :first-child { flex: 90; }
        > :last-child { flex: 10; }
    }
    &.aufteilung-85-15 {
        > :first-child { flex: 85; }
        > :last-child { flex: 15; }
    }
    &.aufteilung-75-25 {
        > :first-child { flex: 75; }
        > :last-child { flex: 25; }
    }
    &.aufteilung-66-33 {
        > :first-child { flex: 66.6; }
        > :last-child { flex: 33.3; }
    }
    &.aufteilung-50-50 {
        > :first-child { flex: 50; }
        > :last-child { flex: 50; }
    }
    &.aufteilung-33-66 {
        > :first-child { flex: 33.3; }
        > :last-child { flex: 66.6; }
    }
    &.aufteilung-25-75 {
        > :first-child { flex: 25; }
        > :last-child { flex: 75; }
    }
    &.aufteilung-15-85 {
        > :first-child { flex: 15; }
        > :last-child { flex: 85; }
    }
    &.aufteilung-10-90 {
        > :first-child { flex: 10; }
        > :last-child { flex: 90; }
    }

    /* Mobile Ansicht (untereinander) */
    @media (max-width: 767px) {
        flex-direction: column !important;
        gap: 3vh;

        /* Stellt sicher, dass die Reihenfolge auch vertikal umgedreht wird */
        &.reihenfolge-umdrehen,
        &.reihenfolge-umdrehen-nur-mobile {
            flex-direction: column-reverse !important;
        }
    }

    /* Innere Formatierung der Spalten bleibt exakt gleich */
    > div {
        display: flex;
        flex-direction: column;
        align-items: start;
        justify-content: start;
        
        &.vertikal-oben {
            justify-content: start;
        }
        &.vertikal-zentriert {
            justify-content: center;
        }
        &.vertikal-unten {
            justify-content: end;
        }
        
        > * {
            width: 100%;
        }
    }
}


/* Paragraph Title+Text */

.titel-titel {
	xxmargin-left:  var(--shiftnarrow);
	xxmargin-right: var(--shiftwide);
	text-align:right;
	margin-bottom:4cqw;
	&:last-child { margin-bottom:0;}

	.dachzeile {
		text-transform: uppercase;
		text-decoration: underline;
		text-decoration-thickness: 0.1em;
		text-underline-offset:0.15em;
		font-weight: var(--black);
		color:var(--maincolor);
		font-size: clamp(1rem, 1.66cqw, 1.66rem);
		margin-bottom:0.25em;
	}
}

.p-titel-text {
	.titel-titel {
      xxmargin-left:  var(--shiftnarrow);
		xxmargin-right: var(--shiftwide);
	}
	.text-formatted {
		xxmargin-left: var(--shiftwide);
      xxmargin-right:  var(--shiftnarrow);
	}
}

.p-spalten {
	.titel-titel,
	.p-titel-text .text-formatted {
		xxmargin-left:0;
		xxmargin-right:0;
	}
}


.p-titel-text .maxwidthcontent:has(.titel-titel),
.p-titel-text .p-titel-container:has(.titel-titel) {   /* paragraph innerhalb von spalten*/
	display:grid;
	grid-auto-flow: column;
	grid-template-columns:10fr 20fr 20fr;
	grid-template-rows:auto auto;
	@media (max-width:767px) {
		grid-template-columns:5fr 20fr 5fr;
	}
	.titel-titel {
		grid-column:1 / 3;
		xxbackground:yellow;
	}
	.text-formatted {
		grid-column:2 / 4;
		xxbackground:yellowgreen;
	}
}
.p-titel-text .p-titel-container:has(.titel-titel) {
	grid-template-columns:30fr 20fr 30fr;
}

.p-spalten .p-titel-text .p-titel-container:has(.titel-titel) {
	grid-template-columns:15fr 70fr 15fr;
}







/* Paragraph buttons */
/* Paragraph buttons */

.p-buttons .buttoncontainer, 
.p-buttons .highlight-content .buttoncontainer {
	display:flex;
	gap:0 1rem;
	justify-content:center;
}

.p-buttons .p-titel-container {
	* {
		text-align:center;
		padding-right:0;
	}
	> :last-child {
		margin-bottom:2rem;
	}
}


/* Paragraph Zitat */
/* Paragraph Zitat */

.p-zitat {
	position:relative;
	z-index:1;
}

.p-zitat h3, 
.p-zitat-text p {
	position:relative;
	z-index:3;
	font-weight:var(--regular);
	font-style:italic;
	line-height:1.2;
	color:var(--maincolor);
	font-size:clamp(1.33rem, 2.33cqw, 2.33rem);
	text-align:left;
	text-wrap:balance;
} 
.p-zitat h3 .actioncolor,
.p-zitat .p-zitat-text p .actioncolor {
	font-weight:var(--bold);
	color:var(--actioncolor);
}
.p-zitat .p-zitat-name {
	font-weight:var(--bold);
	margin-top:0.5em; 
}

.p-zitat:after {
	content:"";
	width: max(12cqw,3.25rem);
	height: max(12cqw,3.25rem);
	position:absolute;
	z-index:-1;
	left: min(-3cqw,-1rem);
	top: min(-2cqw,-0.5rem);
	background-image:url('../images/quote.png');
	background-size:100% auto;
	background-repeat:no-repeat;
	
	/* wirkt nur innerhalb von p-highlight. Falls buggy, besser selektieren! */
	grid-column-start: text-start;
	grid-column-end: text-end;	
}
 


/* Paragraph Highlight */
/* Paragraph Highlight */

.p-highlight > .maxwidthcontent {
	display:grid;
	grid-template-columns: 6fr 3fr 3fr;
	grid-template-rows: minmax(50px, auto) auto auto minmax(50px, auto);
	gap: 0%;
	position:relative;
	
	@media (max-width:767px) {
		grid-template-columns: 3fr 12fr 3fr;
		grid-template-rows: minmax(29cqw, auto) auto auto minmax(50px, auto);
	}
}


.p-highlight .highlight-box {   						/* container für die Inhalte mit Linie darunter (Subgrid-Thema!) */
	grid-column-start: 2;
	grid-column-end: 4;
	grid-row-start: 2;
	grid-row-end: 5;
	width:100%;
	height:fit-content;
	place-self:end;
	position:relative; 
	z-index:10;
	background-color:var(--blau-3);
	padding:3cqw;
	box-sizing:border-box;
	border-radius:var(--snippet-radius);
	
	display:grid;
	grid-template-columns:auto auto;
	grid-gap:2cqw;
	place-items:end end;
	
	.link {
		img {
			width:2rem;
			aspect-ratio:1;
		}
	}
}

.p-highlight .paragraph .highlight-content {  /* das ist dann der eigentliche Inhalt oberhalb der Linie, hier dann Spalten limitieren */
	position:relative;
	z-index:1;

	*:first-child {
		margin-top:0 !important;
	}

	*:last-child {
		margin-bottom:0 !important;
	}
}

.p-highlight-inhaltsbild {
	grid-column-start: 1;
	grid-column-end: 3;
	grid-row-start: 1;
	grid-row-end: 4;
	z-index:5;
	place-self:start;
	width: 100%;
	height:100%;
	position:relative;
}
.p-highlight-inhaltsbild img {
 	width:100%;
	height:auto;
	border:1px solid var(--weiss);
	border-radius:var(--snippet-radius);
	z-index:5;
	position:relative;
}

.p-highlight-logo,
.p-highlight-schmuckbild,
.p-highlight-linie, 
.p-highlight-kreis {
	display:none;
}











/* Paragraph Fly-In */
/* Paragraph Fly-In */

.p-fly-in {
	display:flex;
	flex-direction: row;
	justify-content:start;
	position:relative;
	margin-block:max(2rem, 4cqw);
	overflow-x:clip;
}

.p-fly-in.align-left,
.p-fly-in.align-right {
	float:none !important;
}
 

 
.p-fly-in .flyin-inner {
    position: relative; z-index: 10;
    width: clamp(370px, 40vw, 720px);
    border: 0px solid var(--maincolor);
    background-color: var(--blau-3);
    backdrop-filter: blur(10px);
    border-right: none;
    border-radius: 0 100rem 100rem 0;
    color: var(--textfarbe);

    container-type: inline-size;
    display: flex;
    align-items: stretch;
	 gap:max(1cqw, 1.5rem);
    
    transition: translate 1s ease-in-out;
    translate: -80%;
}
.p-fly-in.align-right {
	justify-content:end;
	.flyin-inner {
		translate:80%;
      border-radius: 100rem 0 0 100rem;
	}
}


.p-fly-in.is-visible {
	 .flyin-inner { translate:0%; }
}

/*
.p-fly-in .flyin-inner .flyin-icon {
    flex: 0 0 10cqw; 
    height: auto; 
    padding-block: 7cqw;
    padding-left: 0cqw; 

    background-origin: content-box;
    //background-image: url('../images/icon-kontakt.png');
    background-size: contain; 
    background-repeat: no-repeat;
    background-position: left center;
}
*/

.p-fly-in .flyin-inner .flyin-text {
    flex: 1 1 auto; 
    padding: 4cqw 10cqw 4cqw 10cqw; 
    min-width: 0;

	 display:grid;
	 grid-template-rows:auto auto auto;
	 grid-template-columns:20fr 40fr 40fr;
	 gap:3cqw; 
}

.p-fly-in .flyin-inner .flyin-text .p-fly-in-titel {
	grid-column: 1 / 3;
	grid-row:1;

	font-weight:var(--black);
	text-transform:uppercase;
	text-align:right;
	color:var(--maincolor); 
	font-size:5cqw;
}

.p-fly-in .flyin-inner .flyin-text .p-fly-in-text {
	grid-column: 2 / 4;
	grid-row:2;
}
.p-fly-in .flyin-inner .flyin-text .p-fly-in-button {
	grid-column: 2 / 4;
	grid-row:3;
}

.p-fly-in .flyin-inner .flyin-text > div { 
	display:grid; 
	grid-template-columns:auto 1fr;
	place-items:center start;
	gap:1.5cqw;
	line-height:1;
}
.p-fly-in .flyin-inner .flyin-text > div .icon {
	width:auto;
	height:1.5em;
	aspect-ratio:1/1;
	background-image:url('../images/icon_mail.png');
	background-size:100%;
	background-repeat:no-repeat;
	background-position:center;
}
.p-fly-in .flyin-inner .flyin-text > div.p-fly-in-tel .icon {
	background-image:url('../images/icon_tel.png');
}
.p-fly-in .flyin-inner .flyin-text > div.p-fly-in-mail .icon {
	background-image:url('../images/icon_mail.png');
}
.p-fly-in .flyin-inner .flyin-text > div.p-fly-in-form .icon {
	background-image:url('../images/icon_form.png');
}

.p-fly-in .flyin-inner .flyin-text > div a {
	color:var(--textfarbe); 
	font-size:max(2.5cqw, 0.8rem);
} 



/* Paragraph Accordion Accordeon */
/* Paragraph Accordion Accordeon */

.p-accordion-block .views-row .views-row {
	border:1px solid var(--maincolor);
	margin:1em 0 0 0 !important; 
	background-color:var(--weiss);
	padding:0.5em 0.5em 0.5em 1em; 
	border-radius:1.5em;
}

.p-accordion-block .ui-accordion-header {
	color:var(--textfarbe);
	font-weight:bold;
	border:none;
	background-color:transparent;
	padding:0 !important;
	margin:0 !important;

	:first-child {
		margin:0;
	}

	.field-content {
		display:grid;
		grid-template-columns:1fr 2em;
		place-items:center start;
		color:var(--textfarbe);
	}
	.field-content:after {
			content:"";
			display:block; box-sizing:border-box;
			width:100%;
			height:auto;
			aspect-ratio:1/1;
			background-image:url('../images/arrow-right.svg');
			background-repeat:no-repeat;
			background-size: 100%;
			background-position:center;
			rotate:90deg;
			transition:rotate 0.33s ease-in-out; 
	}



}
.p-accordion-block .ui-state-active {
	color:var(--actioncolor);
	
	.field-content:after {
		rotate:-90deg;
	}
}


.p-accordion-block .ui-accordion-content {
	padding:0 !important;
	border:none;
	display:grid;
	grid-template-columns: 1fr;
	&:has(> :nth-child(2):last-child) {
		grid-template-columns: 1fr 200px;
		gap:3cqw;
	}

	p {
		color:var(--textfarbe);
		line-height:var(--lineheight) !important;
	}
	.views-field-field-bild-inhalt {
		margin-right:3cqw;
	}
}










/* Paragraph Snippets, View Produktliste, Paragraph Kreis-Buttons */
/* Paragraph Snippets, View Produktliste, Paragraph Kreis-Buttons */

.p-snippets,
.produktliste,
.branchenliste,
.produktweltliste,
.unternehmensbereicheliste,
.servicesliste,
.standorteliste,
.field--name-field-standort,  /* job-detailseite standort als view */
.p-kreis-buttons {
	h2 {
		/* kleiner über snippets etc. statt links/rechts-Layout. Muss noch genau ausgetüftelt werden!*/
		text-align:center;
		font-size: clamp(1.25rem, 3cqw, 3rem);
		/*margin-bottom:5cqw;*/  /* neue Abstände-Regelung?? */
	}
	h2:has(+ div.block-text) {
		margin-bottom:2cqw;
	}
	div.block-text {
		margin-top:0cqw; 
		margin-bottom:3cqw;
	}
}
.p-kreis-buttons {
	h2 {
		margin-bottom:5cqw;
	}
}
.p-kreis-buttons .field__item {
	display:contents;
}

.field--name-field-standort {  /* job-detailseite standort als view. unsauber weil doppelt, aber mal abwarten.*/
		display:grid;
		gap:3cqw;
		/*grid-template-columns: 1fr 1fr 1fr;*/
		grid-template-columns: repeat(auto-fit, calc((100% - 6cqw) / 3));
		justify-content: center;
		padding-bottom:calc(var(--snippet-shift) * 2);
}

.p-snippets,
.produktliste,
.branchenliste,
.produktweltliste,
.unternehmensbereicheliste,
.servicesliste,
.standorteliste,
.field--name-field-standort,  /* job-detailseite standort als view */
.p-kreis-buttons {

	.view-content,
	.field__items {
		display:grid;
		gap:3cqw;
		grid-template-columns: repeat(auto-fit, calc((100% - 6cqw) / 3));
		justify-content: center;
		padding-bottom:calc(var(--snippet-shift) * 1);

		@media (max-width:1023px) {
			grid-template-columns:1fr 1fr;
			gap:5cqw;
		}
		@media (max-width:480px) {
			grid-template-columns:1fr;
			gap:12cqw;
		}
	}
	.view-content:has(.tns-outer) {
		/***slider statt grid bei kocks?? ***/ 
		grid-template-columns:1fr !important;
		article {
			transform:translateY(0);
		}
	}

	article {
		box-sizing:border-box;
		width:100%;
		height:auto;
		aspect-ratio:1/1;
		margin:0;
		padding:0;
		transform:translateY(var(--snippet-shift)); 

		border-radius:var(--snippet-radius);
		border:var(--snippet-border);
		background-color:var(--snippet-background);

		position:relative;
		container-type:inline-size;
	
		display:grid;
		gap:0;
		grid-template-rows:auto 4fr 3fr auto;  /* auto 1fr auto auto */
		grid-template-columns:1fr auto;
		grid-template-areas:
			"label ."
			". ."
			"titel ."
			"titel button"
		;
		transition:scale 0.33s ease-in-out;
		
		background-clip: padding-box; /** bugfix firefox hover background bleed **/
		
		&:hover {
			scale:1.0;   /* nicht, wenn in tinyslider drin */
			
			.snippet-button {
				scale:1.1;
			}
		}
	}

	.view-content > article:only-child {
		transform:translateY(0rem); 
	}


	article:nth-child(3n - 1),
	.field__item:nth-child(3n - 1) > article,
	.views-row:nth-child(3n - 1) > article {  /* mittlere Elemente versetzt. zweiter Selektor ist für kreis-buttons die noch ein parent haben ... */
		transform:translateY(0rem); 
	}
	
	article:nth-child(3n + 4):last-child,
	.field__item:nth-child(3n + 4):last-child article,
	.views-row:nth-child(3n + 4):last-child {  /* letztes Element zentriert, wenn alleine in Reihe */
		grid-column: 2;
		transform:translateY(0rem); 
		@media (max-width:480px) {
			grid-column:auto;
		}
	}
	.views-row:nth-child(3n + 4):last-child article {
		transform:translateY(0rem); 
	}
	
	

	@media (max-width:1023px) {
		article,
		.field__item > article,
		.views-row > article {
			transform:translateY(0rem) !important;
		}
	}




	article > .snippet-label { grid-area:label; 		position:relative; z-index:3; }
	article > :nth-child(2) { grid-column: 1 / -1; grid-row: 1 / -1; 		position:relative; z-index:1; }
	article.node--type-produkt > :nth-child(2) { grid-column: 1 / -1; grid-row: 1 / -1; }
	article > .snippet-texte  { grid-area:titel; 		   position:relative; z-index:3; 		display:grid;		place-items: start start; align-content:end;}
	article.node--type-news > .snippet-texte  { align-content:end;}
	article > .snippet-button { grid-area:button; 		position:relative; z-index:3; }


	article:after {
		grid-column:1 / -1;
		grid-row:3 / -1;
		content:"";
		background-image:linear-gradient(180deg, rgba(0,0,0,0) 0%,  rgba(0,0,0,0.08) 33%, rgba(0,0,0,0.5) 100%);
		background-image: var(--gradient-smooth);
		position:relative; z-index:2;
		border-radius:0 0 calc( var(--snippet-radius) - 1px ) calc( var(--snippet-radius) - 1px );
		min-height:6rem; /*schatten nicht zu flach, sonst hässlich*/
	}
	
	article.node--type-standorte:after {
		background-image: var(--gradient-smooth);
	}


	article.node--type-news {
		background-color:var(--grau-1);
		grid-template-rows:auto 3fr 1fr 1fr;
		grid-template-columns:1fr auto;
		grid-template-areas:
			"label ."
			"bild bild"
			"titel ."
			"titel button"
		;
		> :nth-child(2) { grid-row: 1 / 3; 		position:relative; z-index:1; }
		> :nth-child(2) img { height:100%; width:100%; object-fit:cover; border-bottom-left-radius:0; border-bottom-right-radius:0; } 
		&:after {
			content:none;
		}
		.field--name-field-snippet-titel {
			color:var(--maincolor);
			text-shadow:none;
		}
		.field--name-field-snippet-untertitel {
			color:var(--maincolor);
			font-weight:var(--regular);
			text-shadow:none;
			padding-top:2.5cqw;
			margin-top:0em;
		} 
	}

	article.node--type-success-story,
	article.node--type-spotlight,
	article.node--type-referenz {
		background-color:var(--gold-2);
	}



	.snippet-texte {
		margin:0cqw 7cqw 5cqw 7cqw;
	}
	.field--name-field-snippet-titel,
	.snippet-title {
		color:var(--weiss);
		font-weight:var(--bold);
		text-shadow:0 0.066em 0.3em rgba(0,0,0,0.66);
		font-size:5cqw;
		text-transform:uppercase;
		letter-spacing:0.0125em;
		line-height:1;
		hyphens:auto; hyphenate-limit-chars: 18 9 9; 
	}
	.field--name-field-snippet-untertitel {
		color:var(--weiss);
		font-weight:var(--bold);
		text-shadow:0 0.066em 0.3em rgba(0,0,0,0.66);
		font-size:4.5cqw;
		margin-top:0.5cqw;
	} 

	article.node--type-produkt,
	article.node--type-produktwelt,
	article.node--type-referenz {
		.snippet-title {
			color:var(--weiss);
			font-weight:var(--medium);
			hyphens:auto; hyphenate-limit-chars: 18 9 9; 
			font-size:min(7cqw, calc( var(--fontsize) * 1.2) );
			line-height:1;
			text-wrap:balance;
		}
	}


	
	img {
		width:100%;
		height:auto;
		aspect-ratio:1/1;
		object-fit:cover; /* sehr allgemein: alle snippets-ähnlichen Bilder quadratsich und einpassen. wenn zu unscharf, präzisieren */
		border-radius: calc( var(--snippet-radius) - 1px );
	}
	
	.snippet-label {  /* das label*/
		z-index:2;
		box-sizing:border-box;
		
		padding:var(--snippet-label-padding);
		width:fit-content;
		min-height:var(--snippet-label-height);
		margin-top:calc( var(--snippet-label-height) / 2);
		margin-left:var(--snippet-label-margin);
	
		display:grid;
		place-items:center;
		color:var(--weiss);
		font-size:var(--snippet-label-size);
		font-weight:var(--bold); 
		line-height:var(--snippet-label-lineheight);
		border-radius:var(--snippet-label-radius);
		border:var(--snippet-label-border);
		background-color:var(--snippet-label-background);
		background-clip: padding-box; /** bugfix firefox hover background bleed **/

	}

	.snippet-button {  /* der button*/
		place-self:end end;
		z-index:3;
		margin-right:3cqw;
		margin-bottom:3cqw;
		width:10cqw;  
		aspect-ratio:1/1;
	
		border-radius:10rem;
		background:var(--snippet-button-background);
		transition:all 0.25s ease-in-out;
	}


} 

/* spezialeinstellungen für news-artige snippets */
.node--type-spotlight,
.node--type-news,
.node--type-produkt {
	.snippet-label {
		color:var(--weiss);
		background-color:var(--maincolor);
	}
	
}
.node--type-spotlight,
.node--type-success-story {
	.snippet-label {
		color:var(--weiss);
		background-color:var(--actioncolor);
	}
	
}



/* spezialeinstellungen für kreis-buttons, kreis-snippets ... */

.p-kreis-buttons.withbg .maxwidthcontent {
	padding-bottom: max(3rem, calc(var(--snippet-shift) * 1.5px));
}

.p-kreis-buttons,
.p-spalten-container {
	article {
		border:1px solid var(--grau);
	}


	article:after {
		content:none;
	}
 
	article.p-kreis-button {
		min-width:0;
		display:grid;
		grid-template-rows: auto auto;
		grid-template-areas: "snippet" "addontext";
		border:none;
		background-color:transparent;
		border-radius:0;
	}

	article.p-kreis-button > a {  /*der umschließende Link im button ... 1 link statt mehrere */
		grid-area:snippet;
		display:grid;
		grid-template: 1fr / 1fr;
		grid-template-areas:"snippet";

		color:var(--maincolor);
		background-color:var(--weiss);
		border:1px solid var(--grau);
		box-shadow:0 40px 30px -30px rgba(0,0,0,0.33);
		width:100cqw;
		height:auto;
		aspect-ratio:1/1;
		border-radius:var(--snippet-radius);
	}
	article.p-kreis-button > a > * {
		grid-area:snippet;
	}
	article.p-kreis-button > div { 
		grid-area:addontext !important;
		&:not(:empty) {
			margin-top:1rem;
		}

		p {
			margin-bottom:0.5em;
			text-align:center;
			text-wrap:balance;
		}
	}



	article.p-kreis-button .snippet-label {
		margin-top:calc( var(--snippet-label-height) * 1);
		margin-left:0;
		background-color:var(--maincolor);
		background-clip: padding-box; /** bugfix firefox hover background bleed **/
		border:none;
		color:var(--weiss); 
		height:1.5em;
		width:fit-content;
		border-radius:var(--snippet-label-radius);
		padding:var(--snippet-label-padding);
		font-size: var(--snippet-label-size);
		display:grid;
		place-items:center;
	}

	article.p-kreis-button img {
		border:none;
	}
	.p-kreis-button-bild img {
		width:100%;
		height:auto;
		aspect-ratio:1/1;
		border-radius:var(--snippet-radius);
	}

	.p-kreis-button-text {
		padding: 10%;
		text-align:center;
		text-wrap:balance;
	}
	.p-kreis-button-text,
	.p-kreis-button-icon {
	   box-sizing: border-box;
		width:100%;
		height:auto;
		aspect-ratio:1/1;
		border-radius:var(--snippet-radius);
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
		place-items: center;
	}
	.p-kreis-button-icon img {
		width:60%;
		height:auto;
		aspect-ratio:1/1;
		border-radius:0;
	}

} 

.p-spalten-container {
	article.p-kreis-button {
		width:100%;
		max-width:33cqw;
		container-type: inline-size;
		place-self:center;
		transform:none;
		a {
			width:100%;
		}
	}
}



.p-kreis-button-text .inhalt {
	
	width:100%;
	height:100%;
	container-type:size;
	display:flex;
	flex-direction: column;
	justify-content:center;
	align-items:center;
	
	h3 {
		font-size:14cqw;
		font-weight:var(--bold);
	}
	h4 {
		font-size:12cqw;
		font-weight:var(--bold);
		color:var(--textfarbe);
	}
	p {
		font-size:7cqw;
	}
}


.p-kreis-buttons.spalten-4 {
	--snippet-shift:0;
	--maxwidthcontent:var(--extendedcontent);
 
	.view-content,
	.field__items {
		min-width:0;
		display:grid;
		gap:3cqw;
		grid-template-columns: 1fr 1fr 1fr 1fr;
		@media (max-width:1023px) {
			grid-template-columns:1fr 1fr;
			gap:5cqw;
		}
		@media (max-width:480px) {
			grid-template-columns:1fr;
			gap:12cqw;
		}
	}

	article:nth-child(3n + 4):last-child,
	.field__item:nth-child(3n + 4):last-child article,
	.views-row:nth-child(3n + 4):last-child article {  /* letztes Element zentriert, wenn alleine in Reihe */
		grid-column: auto;
	}

}




/* !ADMIN*/ 

ul.tabs.primary {
	margin-top: 50px;
	border-bottom: solid 1px var(--maincolor);
}

div.tabs {
	margin: 1em 0;
}
ul.tabs {
	list-style: none;
	margin: 0 0 0.5em;
	padding: 0;
}
.tabs > li {
	display: inline-block;
	margin-right: 0.3em; /* LTR */
}
[dir="rtl"] .tabs > li {
	margin-left: 0.3em;
	margin-right: 0;
}
.tabs a {
	display: block;
	padding: 0.2em 1em;
	text-decoration: none;
}
.tabs a.is-active {
	background-color: #eee;
}
.tabs a:focus,
.tabs a:hover {
	background-color: #f5f5f5;
}

.node--unpublished {
	background-color: rgba(255, 0, 0, 0.2);
	padding: 60px 20px 20px 20px;
	position: relative;
}
.node--unpublished:before {
	content: "unpublished";
	display: block;
	position: absolute;
	left: 10px;
	top: 10px;
	font-size: 200%;
	color: rgba(255, 0, 0, 0.7);
	line-height: 100%;
}





/* !FOOTER */
/*  bubbles vor dem Footer - werden von mask-image abgeschnitten. wenn nötig, nochmal anders lösen, die bubbles dürfen kein child des footer sein.
footer::before {
  content: "";
  position: absolute;
  bottom: anchor(--footer-anchor bottom);
  left: anchor(--body-anchor left);
  transform: translate(-3vw, 10vh);
  width: calc( var(--maxwidthmargin) * 1.1);
  aspect-ratio: 653/693;
  background-image: url('../images/bg-kreise1.png');
  background-size: 100% auto;
}
*/

footer {
	anchor-name:--footer-anchor;
	position:relative;
	container-type:inline-size;

	background-color:var(--blau--2);

	display: flex;
	flex-direction: row;
	justify-content: space-between;

	margin-top:6vw;
	padding: 6cqw var(--seitenrand) 2cqw var(--seitenrand);
	box-sizing: border-box;
}



footer > .footerlogo {
	padding-right: 3cqw;
	border-right:1px solid var(--textfarbe);
}
footer > .footerlogo img {
	width: 12cqw;
	height: auto;
}

footer > .region-footer-first {
	display:grid;
	grid-template-columns:1fr 1fr;  /* auto auto */
	gap:3cqw;
	margin-left:auto;
	margin-right:3cqw;
}
footer > .region-footer-first .footermenu ul.level0 > li {
	break-inside: avoid;
}
footer > .region-footer-first .footermenu ul.level0 > li:nth-child(1) {
	break-inside: avoid;
	margin-top: 0px !important;
}

footer > .region-footer-second {
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	margin-right:auto;
}

footer > .region-footer-third {
	border-left: solid 1px var(--textfarbe);
	padding-left: 2vw;
}


.footermenu ul {
	margin: 0px;
	padding: 0px;
	list-style: none;
	font-size:0.75rem; 
}
 
.region-footer-first .footermenu > ul.menu {
	display:grid;
	grid-template-columns:1fr;
	grid-template-rows:auto auto auto;
	grid-auto-flow:column;
	gap:1rem 2cqw;
} 

.region-footer-second .footermenu > ul.menu {
	grid-template-columns:1fr;
}

.region-footer-second .footermenu > ul.menu > li > a {
	color:var(--weiss);
	font-weight:var(--regular);
}

.footermenu > ul > li {
	margin-top: 0;
} 

.footermenu > ul > li > a {
	font-weight: var(--bold);
	color: var(--actioncolor);
}

.footermenu > ul > li > ul > li > ul {
	margin-left:1em;
}
.footermenu > ul > li > ul > li > ul > li > ul {
	margin-left:0em;
}
.footermenu > ul > li > ul > li > ul > li > ul > li:before {
	content:"–";
	margin-right:0.25em;
	color:var(--weiss);
}

.footermenu > ul > li > ul > li {
	margin-top: 1rem;
}

.footermenu > ul > li > ul > li > ul > li {
	margin-top: 0.5rem;
}

.footermenu ul > li > ul > li > a {
	font-weight: var(--regular);
	color: var(--weiss);
}



.usermenu ul.menu {
	margin: 0px;
	padding: 0px;
	list-style: none;
	list-style: none;
	font-size:0.9rem; 
	
	display:flex;
	gap:1em;
	justify-content:center;
}

.usermenu ul.menu a {
	font-weight: var(--regular);
	color: var(--textfarbe);
}


@media (max-width:1023px) {
	footer {
		flex-direction:column;
	}
	footer > * {
		margin-left:0  !important;
		margin-right:0 !important;
	}

	footer > .footerlogo {
		padding:5cqw 0;
		border:none;
	}
	footer > .footerlogo img {
		width:40cqw;
		min-width:320px;
		margin-inline:auto;
	}

}









/* !REGION BOTTOM */

.region-regionbottom {
	padding: 2rem var(--seitenrand) 2rem var(--seitenrand);
	box-sizing: border-box;
	text-align: center;
}




/* !SOCIAL MEDIA LINKS */

footer > .region-footer-third h2 {
	font-size:clamp(1rem, 2vw, 2rem);
	text-align:center;
	color:var(--actioncolor);
	margin:0 0 1rem 0;
}
 
.socialmedialinks {
}

.socialmedialinks .view-content {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	align-content: center;
}


.socialmedialinks .views-row {
	align-self: center;
}

.socialmedialinks .views-row:not(:last-child) {
	margin-right: calc( var(--socialmediaicons) * 0.333); 
}

.socialmedialinks a,
.socialmedialinks a:visited {
	display: flex;
	width: var(--socialmediaicons);
	height: var(--socialmediaicons);
	justify-content: center;
	align-items: center;
	align-content: center;
	color: var(--weiss);
	font-size: calc( var(--socialmediaicons) * 1);

	border: 1px solid var(--maincolor);
	border-radius:50%;
	aspect-ratio:1/1;
	padding:calc( var(--socialmediaicons) * 0.25);
	
	-o-transition:.3s;
	-ms-transition:.3s;
	-moz-transition:.3s;
	-webkit-transition:.3s;
	transition:.3s;
}

.socialmedialinks a:hover,
.socialmedialinks a:active {
	color: var(--maincolor);
	-o-transition:.3s;
	-ms-transition:.3s;
	-moz-transition:.3s;
	-webkit-transition:.3s;
	transition:.3s;
}




/* SEARCH */

.searchoverlay {
	position: fixed;
	width: 100%;
	height: 100%;
	background: var(--overlay);
	backdrop-filter: blur(5px);
	top: 0px;
	left: 0px;
	z-index: 100;
	display: none;
}



.searchoverlay.active {

		display: block;
}

.search {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translateY(-70%) translateX(-50%);
	-moz-transform: translateY(-70%) translateX(-50%);
	transform: translateY(-70%) translateX(-50%);
	margin-left: 10px;
	width: 40vw;
	background-color:var(--grau);
	color:black !important;
}

.searchclose {
	width: 80px;
	height: 80px;
	position: absolute;
	top: 20%;
	left: 50%;
	-webkit-transform: translateX(-50%);
	-moz-transform: translateX(-50%);
	transform: translateX(-50%);
	background-color:var(--actioncolor);
	border-radius:50%;
	background-image: url(../images/searchclose.svg);
	background-position: center center;
	background-size: 20px 20px;
	background-repeat: no-repeat;
}

.searchclose:hover {
	cursor: pointer;
}
.search .form--inline {
	display: flex;
}

.search .form--inline > .js-form-type-textfield {
	flex-basis: calc(100% - 100px);
}


.search .form--inline .form-item {
	float: none;
}

.search input {
	margin: 0px;
}

.search input[type=text] {
	padding-right: 40px;
	box-sizing: border-box;
	padding: 10px 0px;
	border: 0px;
	border-bottom: solid 0px #FFFFFF;
	background: transparent;
	box-shadow: 0px;
	color: black;
	font-size: 166%;
	width: 100%;
	height: 60px;
}

.search input[type=submit] {
	position: absolute;
	right: 0px;
	bottom: 10px;
	width: 40px;
	height: 40px;
	background-color: transparent;
	text-indent: 100px;
	background-image: url("../images/searchicon.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	border: 0px;
	min-width: auto;
}

.search input[type=submit]:hover {
	cursor: pointer;
}


.path-search h1.page-title {
	margin-bottom: var(--abstand3);
}


.view-search .views-row article {
	margin-bottom:var(--abstand3);
	
	display:grid;
	gap:0 10cqw;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	grid-template-areas: "titel button" "text button";

	h2 {
		grid-area:titel;
		font-size:2rem;
		
		a {
			color:var(--actioncolor);
		}
	}

	div.text {
		grid-area:text;
	}	
	p {
		margin-top:0.5em;
		margin-bottom:0;
		text-align:left !important;
		padding:0 !important;
	}
	button {
		grid-area:button;
		place-self:center center;
	}
}








/* COOKIEBANNER */

.cookiesjsr-banner.active {
	box-shadow: 0px 0px 40px rgba(0,0,0,0.5);
	display:flex;
	flex-direction: column;
	align-items:center;
	padding-top:2rem;
	padding-bottom:2rem;
	
	.cookiesjsr-banner--info, 
	.cookiesjsr-banner--action {
		max-width:var(--maxwidthcontent);
	}
	
	.cookiesjsr-banner--text {
		font-size:1rem;
	}
	
	.cookiesjsr-banner--action {
		gap:2cqw;
	}
	.cookiesjsr-btn {
		min-height:auto !important;
		font-size:1rem;
		padding-top:0.5em; padding-bottom:0.5em;
		margin:0 !important;
		background:var(--weiss) !important;
		color:var(--maincolor) !important;
		border:1px solid var(--actioncolor);
		
		&.allowAll {
			color:var(--weiss) !important;
			background:var(--blau-gradient) !important;
		}
	}
}












/* !RESPONSIVE */

@media all and (max-width: 1740px) {

	
}


@media all and (max-width: 768px) {
	.user-login-form .form-item-name,
	.user-login-form .form-item-pass {
		width: 100%;
		float: none;
	}
	
	.node--type-legal .node__content {
		overflow-x: hidden;
	}
	
	.page-node-type-legal .node__content a {
		/* These are technically the same, but use both */
		overflow-wrap: break-word;
		word-wrap: break-word;

		-ms-word-break: break-all;
		/* This is the dangerous one in WebKit, as it breaks things wherever */
		word-break: break-all;
		/* Instead use this non-standard one: */
		word-break: break-word;
	
		/* Adds a hyphen where the word breaks, if supported (No Blink) */
		-ms-hyphens: auto;
		-moz-hyphens: auto;
		-webkit-hyphens: auto;
		hyphens: auto;
	
	}
	
}




@media all and (max-width: 667px) {
	.webform .wfleft {
		width: 100%;
		float: none;
		clear: both;
	}
	
	.webform .wfleft input {
		width: 100%;
		float: none;
		clear: both;
	}
	
	.webform .wfright {
		width: 100%;
		float: none;
		clear: both;
	
	}
	
	.webform .wfright input,
	.webform .wfright select {
		width: 100%;
		float: none;
		clear: both;
	}
	
	input.js-form-submit {
		width: 100%;
	}
	
}



@media all and (max-width: 414px) {
}
@media all and (max-width: 375px) {
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1366px) and (orientation:landscape) {
}
@media only screen and (max-width: 736px) and (orientation:landscape)  {
}
