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

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

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

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

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




:root {
	--maxwidthcontent: 1200px;
	--extendedcontent: 1600px;
	--maxwidthmargin: calc( (100vw - min(100vw, var(--maxwidthcontent))) / 2  );
 
	--schwarz: #000000;
	--weiss: #FFFFFF;
	--grau-1: #F1F1F2;
	--grau:    #D2D2D2;
	--grau--1: #71777A;
	--grau--2: #585d60;
	--gruen: #0b4c23;
	--gruen-1: #0e592a;
	--gruen-2: #70af1a;
	--rot: #EE3624;
	--rot--1: #ba311f; 

	--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%);
	--gruen-gradient: linear-gradient(0deg, var(--gruen-1) 10%, var(--gruen-2) 100%); 
	--grau-gradient-horizontal: linear-gradient(270deg, var(--grau--2) 0%, var(--grau--1) 100%);
	--rot-gradient-horizontal: linear-gradient(270deg, var(--rot--1) 0%, var(--rot) 100%);
	--gruen-gradient-horizontal: linear-gradient(270deg, var(--gruen) 10%, var(--gruen-1) 100%); 

	--maincolor: var(--grau--1);
	--textfarbe: var(--grau--1);;
	--actioncolor: var(--rot);
	--actiongradient:var(--rot-gradient);

	--basefont: 'Roboto', Arial, Helvetica;
	--bold: 700;
	--medium:600;
	--regular: 300;
	--fontsize: 19px;
	--lineheight: 1.35;
	--lineheight2: 1;
	
	--abstand1: 1vw;
	--abstand2: 2vw;
	--abstand3: 3vw;
	--abstand5: 5vw;
	--abstand7: 7vw;
	--abstand10: 10vw;
	
	--toplineheight: 60px;
	--headerheight: 160px;
	--headerpadding:30px; /*vertikal*/
	--seitenrand: 5vw;
	--socialmediaicons: 2rem;
	--adminspacer: 73px;
	
	
	--snippet-shift:5cqw; 
	--snippet-radius:1em; 
	--snippet-border:0px solid var(--grau--1);
	--snippet-background:var(--grau-1);

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

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

 }


body.page-node-28 {
	--actioncolor:var(--gruen-1);
	--actiongradient:var(--gruen-gradient);
	--snippet-button-background: var(--weiss) url("../images/arrow-right-gruen.svg") no-repeat center center / 66% 66%; 
}


/* !ALLGEMEIN & LAYOUT*/

*:focus {
	outline: none;
}

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;  
}

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 {  /* 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 {
	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*/
}

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


/* !LINKS */

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

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


/* !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;
} 
p.text-align-center {
	padding-inline: max(0px, calc( (100% - 100ch) / 2) ); 
}

.text-formatted ul {
	margin-inline:0;
	padding: 0;
	list-style-type:none;
}
.text-formatted ul li:before {
	display:inline-block;
	content:"•";
	transform: scale(1.7);
	color:var(--actioncolor);
	margin-right:0.66em;
}

h1, h2, h3 {
	
	hyphens:auto;
	hyphenate-limit-chars: 12 6 6; 
	
}

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

h1, 
h2.produkt-title {
	font-style: normal;
	font-size:clamp(2.33rem, 5cqw, 5rem);
	line-height: var(--lineheight2);
	font-weight: var(--bold);
	color:var(--actioncolor);
	margin-top:0;
}

h2.produkt-title {
	margin-bottom:0.33em;
}

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

h1 {
	anchor-name: --h1-anchor;
} 
h1::after {
  /* Bindet das Bild ein */
  content: ""; 
  position: absolute;
  /* Vertikale Ausrichtung: Bindet die Oberkante des Pseudoelements an die H1 */
  top: anchor(--h1-anchor top);
  /* Horizontale Ausrichtung: Setzt das Bild an den rechten Rand */
  right: anchor(--body-anchor right);
  transform:translate(3vw, -5vh);
  width: calc( var(--maxwidthmargin) * 1.1);
  aspect-ratio:653/693;
  background-image:url('../images/bg-kreise1.png');
  background-size:100% auto;
}

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

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

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

h2 {
	font-size:clamp(2rem, 4.5cqw, 4.5rem);
	line-height: 115%;
	font-weight: var(--regular);
}

 
h3 {
	font-size:clamp(1.5rem, 3.5cqw, 3.5rem);
	line-height: 115%;
	margin: 0;
	font-weight: var(--bold);
	text-align:center;
	color:var(--actioncolor);
}

h4 {
	font-size: 140%;
	line-height: 115%;
	margin: 0;
	font-weight: var(--regular);
	color:var(--actioncolor);
}

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);
}


.background-gruen {
	background-color:var(--gruen) !important;
	background:var(--gruen-gradient-horizontal) !important;
} 
.background-hellgruen {
	background-color:var(--gruen-2);
}
.background-rot {
	background-color:var(--actioncolor) !important;
	background:var(--rot-gradient-horizontal) !important;
}
.background-dunkelgrau {
	background-color:var(--grau--1) !important;
	background:var(--grau-gradient-horizontal)  !important;
}
.background-hellgrau {
	background-color:var(--grau-1) !important;
}
.background-hellgrau:has(+ .background-hellgrau) {
	margin-bottom:0 !important;
	padding-bottom:0 !important;
}

.withbg {
	padding-block:3cqw;
}

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



/* !BUTTONS */



button {
	text-align: center;
	border: 0px;
	background-color: transparent;
	background:var(--actiongradient);
	border-radius:10em;
	padding:0.333em 2em 0.333em 2em; 
	transform:scale(1);
	transition:all 0.5s ease-in-out;
}
button:has(img) {
	padding:0.333em 0.333em 0.333em 2em; 
}

button a,
button a:visited {
	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(--weiss);
	font-weight:var(--medium);
	font-size:clamp(1rem, 1.5cqw, 1.33rem);
}
button img {
	height:100%;
	width:auto;
	aspect-ratio:1;
}

button:hover,
button:active {
	-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.5);
	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;

		&: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);	
		}
	}
}
/*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 {
	color: var(--weiss);
	background-color: var(--actioncolor);
	padding: 13px 30px;
}

button.standard a:hover,
button.standard a:active {
	color: var(--weiss);
	background-color: var(--maincolor);	
}




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: #D2D2D2;
	background: linear-gradient(0deg,rgba(210, 210, 210, 1) 0%, rgba(241, 241, 242, 1) 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(--actioncolor);
}

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(--actioncolor) !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:100%;

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










/* !NAVIGATION */
.topmenu {
	position:static;
}




.topmenu ul.level0 {
	display: flex;
	gap:1rem;
	flex-direction: row;
	justify-content: flex-end;
	padding: 0px;
	margin: 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(200,200,200,0.7);
		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));
	}

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

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

	@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;
	color: var(--textfarbe);
	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(--actioncolor);
	font-weight:var(--bold);
}
.topmenu .level0 > li > a.is-active,
.topmenu .level0 > li.menu-item--active-trail > a {
	color: var(--actioncolor);
	border: solid 1px var(--actioncolor);
	border-radius: 10rem;
}


/* generell ab level 1 und tiefer*/
.topmenu .level1 li.special-submenu-item > a {
	color:var(--maincolor) !important;
	font-weight:var(--bold);
}
.topmenu .level1 li:has( > ul) > a {
	display:grid !important;
	grid-template-columns:auto 1.2em;
	&:after {
		content:"";
		width:100%;
		aspect-ratio:1/1;
		height:auto;
		background-image:url('../images/arrow-right.svg');
		background-size:100% 100%;
	}
}

.topmenu .level1 li.menu-item--active-trail > a {
	font-weight:var(--bold);
	color:var(--actioncolor); 
}

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




/* 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 */

.navburger {
	display:none;
	cursor:pointer;
	&.is-active {
		color:var(--actioncolor);
		font-weight:bold;
	}
}
@media (max-width:1279px) {
	
	:root {
	--headerheight: 100px;
	--headerpadding:15px;
	--mobilemenupad:1em;
	}

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

	.topmenu {
		outline: 0px solid green;
		background-color: yellow;
		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 0 10px -5px rgba(0,0,0,0.5);
		
		&.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:block;
	}


	.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;
}

.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;
}
*/



/* !BREADCRUMB */

/**
 * @file
 * Styles for breadcrumbs.
 */
 
.breadcrumb {
	margin-top:3vw;
	margin-bottom: 1vw;
	font-size:1rem;
	font-weight:var(--regular);
}
.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);
}
/* !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;
	width: 1.15em;
	height: 1.15em;
	border: 1px solid var(--schwarz);
	border-radius: 0.15em;
	transform: translateY(-0.075em);
	
	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);
	
	-o-transition:.3s;
	-ms-transition:.3s;
	-moz-transition:.3s;
	-webkit-transition:.3s;
	transition:.3s;
}

input.js-form-submit:hover {
	background-color: var(--grau);
	color: var(--weiss);
	
	-o-transition:.3s;
	-ms-transition:.3s;
	-moz-transition:.3s;
	-webkit-transition:.3s;
	transition:.3s;
}

::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	color: red;
}
::-moz-placeholder { /* Firefox 19+ */
	color: red;
}
:-ms-input-placeholder { /* IE 10+ */
	color: red;
}
:-moz-placeholder { /* Firefox 18- */
	color: red;
}

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


/* !WEBFORM */

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

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

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

.webform input[type=text],
.webform input[type=tel],
.webform input[type=email] {
	border: solid 1px var(--linecolor);
	padding: 10px 20px;
	box-sizing: border-box;
	height: 50px;
	width: 100%;
	color: var(--schwarz);
	border-radius: 0px;
} 

.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 textarea {
	border: solid 1px var(--linecolor);
	padding: 10px 20px;
	box-sizing: border-box;
	color: var(--schwarz);
	border-radius: 0px;
	width: 100%;
}

.webform .js-form-wrapper {
	margin: 0px 0px 0px 0px;
}

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

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

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

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

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


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

.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:flex;
	justify-content:center;
	align-items:center;
	gap:2rem;
}

select.form-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  border: 1px solid var(--actioncolor);
  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: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;
    }





/* !PARAGRAPH */

.bausteinecontainer > .paragraph:not(:last-child) {
	margin-bottom: var(--abstand5);
}
.bausteinecontainer > .paragraph:has(+ .paragraph--type--fly-in) {
	margin-bottom: var(--abstand4);
}
.bausteinecontainer > .paragraph.withbg:has(+ .paragraph--type--infoblock-nodeblock) {
	margin-bottom:5px;
}



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

.bausteinecontainer > .p-trenner {
	margin:0 !important;
}
.bausteinecontainer > .p-trenner-untern-mit-pfeil {
	margin-bottom:var(--abstand5) !important;
}
.bausteinecontainer .p-trenner + .background-hellgrau {
	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; }
}







.p-infoblock {
	display: grid;
	grid-template-columns:1fr 2fr;
	gap:0rem;
	max-width:var(--maxwidthcontent) !important;
 

		@media(max-width:1023px) {
			grid-template-columns:1fr;
			grid-template-rows:auto auto;
		}

		> .p-infoblock-left {
			background: var(--maincolor);
			color: var(--weiss);
			font-size: var(--bold);
			text-align: right;
			--padding-services-block-left: 4cqw;
			padding: var(--padding-services-block-left);
		
			box-sizing: border-box;
		
			width: calc( 100% + max(0px, (100vw - var(--maxwidthcontent)) / 2) );
			margin-left: calc( -1 * max(0px, (100vw - var(--maxwidthcontent)) / 2));
			padding-left: calc( 1 * max(0px, (100vw - var(--maxwidthcontent)) / 2) + var(--padding-services-block-left) );
		
			display:grid;
			grid-template-rows:auto 1fr;
			place-items:end end;
			
			@media (max-width:1023px) {
				text-align:left;
				place-items:start start;
			}

			> h3 {
				font-weight:var(--bold);
				color:var(--weiss);
				border-bottom: 0.1em solid var(--weiss);
				padding-bottom: 0em;
				margin:0;
				width:fit-content;
				font-size:clamp(1.5rem, 2.5cqw, 2.5rem);
			}
			> div > h3 {
				text-align:right;
				font-weight:var(--regular);
				color:var(--weiss);
				margin-top:1em;
			}

			> div > h4 {
				text-align:right;
				font-weight:var(--regular);
				color:var(--weiss);
				font-size:clamp(1.5rem, 2.5cqw, 2.5rem);
				margin-top:1em;
				margin-bottom:0;
			}

			> .field--name-field-bild-icon-linke-spalte {
				box-sizing:border-box;
				width:60%;
				margin:0 0 1em 40%;
			}

		}

		> .p-infoblock-right {
			background: var(--grau-1);
			--padding-services-block-right: 4cqw;
			padding: var(--padding-services-block-right);
		
			padding-inline:calc( var(--padding-services-block-right) * 1);
		
			box-sizing: border-box; 
			width: calc( 100% + max(0px, (100vw - var(--maxwidthcontent)) / 2) );
			margin-right: calc( -1 * max(0px, (100vw - var(--maxwidthcontent)) / 2));
			padding-right: calc( 1 * max(0px, (100vw - var(--maxwidthcontent)) / 2) + var(--padding-services-block-right) * 1 );
			
			
					.field__item:not(:last-child) {
						margin-bottom:1.5rem;
					}
					.field--name-field-icon-text .field__item {
						margin-bottom:1.5rem !important;
					}
		} 


		
		h4 {
			font-size:100%;
			font-weight:var(--bold);
			color:var(--actioncolor);
			margin:0 0 0.33em 0;
		}

		p { 
			margin:0;  
		} 

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

.bausteinecontainer > .p-infoblock:has(+ .p-infoblock, + .paragraph--type--infoblock-nodeblock),
.bausteinecontainer > .background-hellgrau:has(+ .p-infoblock) {
	margin-bottom:0.25rem;
}



  
.p-icon-text {
	display:grid;
	grid-template-columns: max(12%, 4rem) 1fr; 
	gap: calc( var(--padding-services-block-right, 2rem) / 2); 
	place-items:start start;
	:last-child {
		place-self:center start;  
	}
	
	margin-bottom:1.5rem;
}

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





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

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




/* 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;
	color:var(--maincolor);
	font-size:clamp(1.5rem, 3cqw, 3rem);
	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 {
	display:grid;
	grid-template-columns: [schmuckbild-start] 6fr [inhaltsbild-start] 3fr [logo-start] 2fr [schmuckbild-end] 1fr [logo-end] 6fr [inhaltsbild-end] 3fr [text-start] 22fr [text-end] 1fr;
	gap: 0%;
	position:relative;
	max-width:var(--maxwidthcontent);
	
	@media (max-width:1023px) {
		grid-template-columns: [schmuckbild-start] 2fr [text-start] 4fr [inhaltsbild-start] 3fr [logo-start] 2fr [schmuckbild-end] 1fr [logo-end] 6fr [inhaltsbild-end] 2fr [text-end] 1fr;
		grid-template-rows: auto auto;
	}
}

.p-highlight.ausrichtung-rechts {
	display:grid;
	grid-template-columns:  1fr [text-start] 22fr [text-end] 3fr [inhaltsbild-start] 6fr [logo-start] 1fr [schmuckbild-start] 2fr [logo-end] 3fr [inhaltsbild-end] 6fr [schmuckbild-end]; 
	gap: 0%;
	position:relative; 
	max-width:var(--maxwidthcontent);
	
	@media (max-width:1023px) {
		grid-template-columns:  1fr [text-start] 2fr [inhaltsbild-start] 6fr [logo-start] 1fr [schmuckbild-start] 2fr [logo-end] 3fr [inhaltsbild-end] 4fr [text-end] 2fr [schmuckbild-end];
		grid-template-rows: auto auto;
	}
}


.p-highlight .paragraph {   /* container für die Inhalte mit Linie darunter (Subgrid-Thema!) */
	grid-column-start: schmuckbild-start;    /* für Nutzung des subgrids, deshalb volle Breite hier, dann innen Spalten genauer wählen. */
	grid-column-end: text-end;
	width:100%;
	grid-row:1/1;
	place-self:center start;
	margin-top:-5%;
	position:relative; 
	display: grid;
	grid-template-rows: auto auto;
	grid-template-columns: subgrid;

		@media (max-width:1023px) {
			grid-row:2/-1;
			margin-top:10%; 
		} 
}
.p-highlight.ausrichtung-rechts .paragraph {
	grid-column-start: text-start;
	grid-column-end: schmuckbild-end;
}

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

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

}

.p-highlight .paragraph:not(.p-media) .highlight-content {
	padding-bottom:2cqw;
}


.p-highlight .paragraph .p-highlight-linie { /* die Linie muss unter den highlight-content, aber breiter als dieser sein, subgrid */
	height:2px;
	border-top:none; border-left:none; border-right:none;
	grid-column-start: schmuckbild-start;
	grid-column-end: text-end; 
	z-index:0;
	position:relative;
	margin-top:0;

	@media (max-width:1023px) {
		display:none;
	}
}
.p-highlight.ausrichtung-rechts .paragraph .p-highlight-linie {
	grid-column-start: text-start;
	grid-column-end: schmuckbild-end; 
}




.p-highlight-schmuckbild {
	grid-column-start: schmuckbild-start;
	grid-column-end: schmuckbild-end;
	grid-row:1/1;
	z-index:3;

	transition:filter 2s ease-in-out;
	filter:blur(20px);
	&.is-visible { filter:blur(0px); }
}


.p-highlight-schmuckbild img {
	height: auto;
	aspect-ratio:1/1;
	width: 200%;
	margin-left:-100%;
	border-radius:50%; 

}
.ausrichtung-rechts .p-highlight-schmuckbild img {
	margin-left:0%;
	margin-right:-100%;
}


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



.p-highlight-logo {
	grid-column-start: logo-start;
	grid-column-end: logo-end; 
	grid-row:1/1;
	z-index:10;
	position:relative;
	height:auto;
	aspect-ratio:1/1;
	margin-top:455%; 
}


.p-highlight-linie, 
.p-highlight-kreis {
	border:1px solid var(--maincolor);
}

.ohne-linie .p-highlight-linie, 
.ohne-linie .p-highlight-kreis {
	display:none;
} 
 
.p-highlight-kreis {
	grid-column-start: inhaltsbild-start;
	grid-column-end: inhaltsbild-end;
	grid-row: 1/1;
	z-index: 1;
	place-self: start;
	margin-top: 17%;
	width: 116%;
	margin-left:   -8%;
	margin-right:  -8%;
	margin-bottom: -8%;
	position: relative;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background-color: var(--weiss); 
	clip-path: polygon(0% 50%, 100% 50%, 100% 100%, 0% 100%); 
}











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

.p-fly-in {
	display:flex;
	flex-direction: row;
	justify-content:end;
	position:relative;
	margin-block:max(1rem, 2cqw);
}

.p-fly-in .flyin-inner {
	position:relative; z-index:10;
	width:clamp(350px, 33vw, 720px);
	border:1px solid var(--actioncolor);
	background-color:rgba(255,255,255,0.7);
	backdrop-filter:blur(10px);
	border-right:none;
	border-radius: 100rem 0 0 100rem;
	color:var(--textfarbe);

	container-type:inline-size;
	display:grid;
	grid-template-columns:1fr 5fr;
	
	transition:translate 1s ease-in-out;
	translate:70%;
}
.p-fly-in.is-visible {
	 .flyin-inner { translate:0%; }
}

.p-fly-in .flyin-inner .flyin-icon {
	width:auto;
	height:100%;
	aspect-ratio:1/1;
	background-image:url('../images/icon-kontakt.png');
	background-size:40%;
	background-repeat:no-repeat;
	background-position:center;
} 
.p-fly-in .flyin-inner .flyin-text {
	padding:4cqw 2cqw 4cqw 0cqw;
}

.p-fly-in .flyin-inner .flyin-text h3.p-fly-in-titel {
	font-weight:var(--medium);
	color:var(--actioncolor); 
	margin-bottom:1.5cqw;
	font-size:4cqw;
	text-align:left;
}

.p-fly-in .flyin-inner .flyin-text > div { 
	display:grid; 
	grid-template-columns:auto 1fr;
	place-items:center start;
	gap:1.5cqw;
	margin-bottom:0.75cqw;
	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 .ui-accordion-header {
	border:1px solid var(--maincolor);
	background-color:var(--weiss);
	border-radius:10rem;
	padding:0.5em 0.5em 0.5em 1em; 
	margin:1em 0 0 0 !important; 
	font-family:"Roboto";
	font-weight:bold;
 	
	:first-child {
		margin:0;
	}

	.field-content {
		display:grid;
		grid-template-columns:1fr 2em;
		place-items:center start;
	}
	.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: 66%;
			background-position:center;
			border:1px solid var(--maincolor);
			border-radius:50%;
			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:1em;
	border:none;
}










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

.p-snippets,
.produktliste,
.branchenliste,
.unternehmensbereicheliste,
.standorteliste,
.p-kreis-buttons {
}

.p-snippets,
.produktliste,
.branchenliste,
.unternehmensbereicheliste,
.standorteliste,
.p-kreis-buttons {
	h3 {
		font-weight:var(--bold);
		color:var(--actioncolor);
		text-align:center;
		margin-top:0cqw; 
		margin-bottom:3cqw; 
	}
	h3:has(+ div.block-text) {
		margin-bottom:1cqw;
	}
	div.block-text {
		margin-top:0cqw; 
		margin-bottom:3cqw;
	}
}

.p-kreis-buttons .field__item {
	display:contents;
}

.p-snippets,
.produktliste,
.branchenliste,
.unternehmensbereicheliste,
.standorteliste,
.p-kreis-buttons {

	.view-content,
	.field__items {
		display:grid;
		gap:3cqw;
		grid-template-columns: 1fr 1fr 1fr;
		@media (max-width:1023px) {
			grid-template-columns:1fr 1fr;
		}
		padding-bottom:calc(var(--snippet-shift) * 2);
	}
	
	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 1fr auto auto;
		grid-template-columns:1fr auto;
		grid-template-areas:
			"label ."
			". ."
			"titel ."
			"titel button"
		;
		transition:scale 0.33s ease-in-out;
		
		&:hover {
			scale:1.05;
		}
	}



	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); 
	}
	.views-row:nth-child(3n + 4):last-child article {
		transform:translateY(0rem); 
	}

	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 > .snippet-texte  { grid-area:titel; 		   position:relative; z-index:3; 		display:grid;		place-items: start start;}
	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.04) 33%, rgba(0,0,0,0.25) 100%);
		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-news {
		background-color:var(--grau-1);
		grid-template-rows:auto auto auto 1fr;
		grid-template-columns:1fr auto;
		grid-template-areas:
			"label ."
			"bild bild"
			"titel ."
			"subtitel button"
		;
		> :nth-child(2) { grid-row: 1 / 3; 		position:relative; z-index:1; }
		> :nth-child(2) img { aspect-ratio:auto; 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:5cqw;
			margin-top:0em;
		} 
	}


	.snippet-texte {
		margin:0cqw 7cqw 5cqw 7cqw;
	}
	.field--name-field-snippet-titel {
		color:var(--weiss);
		font-weight:var(--bold);
		text-shadow:0 0.1em 0.3em var(--schwarz);
		font-size:10cqw;
		line-height:1;
	}

	.field--name-field-snippet-untertitel {
		color:var(--weiss);
		font-weight:var(--bold);
		text-shadow:0 0.1em 0.3em var(--schwarz);
		font-size:5cqw;
		margin-top:0.5em;
	} 


	
	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(--textfarbe);
		font-size:var(--snippet-label-size);
		font-weight:var(--medium);
		line-height:var(--snippet-label-lineheight);
		border-radius:var(--snippet-label-radius);
		border:var(--snippet-label-border);
		background-color:var(--snippet-label-background);
	}
	.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:var(--snippet-label-radius);
		background:var(--snippet-button-background);
	}

} 

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

/* spezialeinstellungen für Produkte in Produktfilter und in mixed-snippets */
/* Bilder werden anders positioniert: contain (einfach) und mit Shift-Logik um aus der Box auszubruchen (links und letztes Mitte: nach links, mitte: ohne, rechts: nach rechts) */
.produktliste .views-row, 
.p-snippets .node--type-produkt {
	img {
		--productshift:15;
		object-fit:contain;
		width: calc(100% + var(--productshift) * 1%);
		height: 100%;
		aspect-ratio: calc(100 + var(--productshift)) /100;
		pointer-events:none;
	}

	&:nth-child(3n + 4):last-child, 
	&:nth-child(3n + 1) {
			img {
				margin-left: calc(var(--productshift) * -1%);
			}
	}

	&:nth-child(3n + 2) {
			img {
				margin:0;
				width:100%;
				aspect-ratio: 1/1;
			}
	}

}




/* spezialeinstellungen für kreis-buttons, kreis-snippets ... */
.p-kreis-buttons {
	article {
		border:1px solid var(--grau);
	}


	article:after {
		content:none;
	}

	article.p-kreis-button {
		background-color:var(--weiss);
		box-shadow:0 40px 30px -30px rgba(0,0,0,0.33);
		width:100%;
		height:auto;
		aspect-ratio:1/1;
		border-radius:50%;

		grid-template: 1fr / 1fr;
		grid-template-areas: "snippet";

	}

	article.p-kreis-button > * {  /*der umschließende Link im button ... 1 link statt mehrere */
		grid-area:snippet;
		display:grid;
		grid-template-rows:subgrid;
		grid-template-columns:subgrid;
		color:var(--maincolor);
	}

	article.p-preis-button > * {
		grid-area:snippet;
	}
	article.p-kreis-button > * > * {
		grid-area:snippet;
	}


	article.p-kreis-button .snippet-label {
		margin-top:calc( var(--snippet-label-height) * 1);
		margin-left:0;
		background-color:var(--actioncolor);
		background:var(--actiongradient);
		border:none;
		color:var(--weiss); 
		height:var(--snippet-label-height);
	}

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

	.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:50%;
		/*border: 1px solid var(--maincolor);*/
		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;
	}

	.snippet-button {
		place-self:end center; 
		margin-right:0;
		border:1px solid var(--grau);
	}







} 
.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);
	}
	p {
		font-size:7cqw;
	}
}


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

	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;
	}

}



/* !CONTENT */

.produkt-snippet {}




/* !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; 
	
	background: #D2D2D2;
	background: linear-gradient(0deg,rgba(210, 210, 210, 1) 0%, rgba(241, 241, 242, 1) 100%);
	
	mask-image: url('../images/footermask.svg');
	mask-size: 100% auto;
	mask-repeat: no-repeat;
	mask-position: top;
	
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	
	margin-top:6vw;
	padding: 150px var(--seitenrand) 100px var(--seitenrand);
	box-sizing: border-box;
}

footer > div:not(:last-child) {
	margin-right: 3vw;
}

footer > .footerlogo {
	padding-top: 20px;
}
footer > .footerlogo img {
	width: 200px;
	height: auto;
}

footer > .region-footer-first {
	display:grid;
	grid-template-columns:auto auto;
	gap:3vw;
	margin-left:auto;
}
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;
}

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


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

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

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

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

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

.footermenu ul > li > ul > li > ul {
	margin-left:0em;
}
.footermenu ul > li > ul > li > ul > li:before {
	content:"–";
	margin-right:0.25em;
}

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

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



.usermenu ul {
	margin: 0px;
	padding: 0px;
	list-style: none;
	list-style: none;
	font-size:0.9rem; 
}

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






/* !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(--rot);
	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.5); 
}

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

	border: 1px solid var(--maincolor);
	border-radius:50%;
	aspect-ratio:1/1;
	padding:calc( var(--socialmediaicons) * 0.33);
	
	-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;
}









/* !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 all and (max-width: 320px) {


}







@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)  {
	

	
}

