@charset "utf-8";
/* copyright 2023 webQ GmbH */

/* open-sans-regular - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/open-sans-v34-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../fonts/open-sans-v34-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../fonts/open-sans-v34-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../fonts/open-sans-v34-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../fonts/open-sans-v34-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../fonts/open-sans-v34-latin-regular.svg#OpenSans') format('svg'); /* Legacy iOS */
}

/* open-sans-700 - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/open-sans-v34-latin-700.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../fonts/open-sans-v34-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../fonts/open-sans-v34-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
       url('../fonts/open-sans-v34-latin-700.woff') format('woff'), /* Modern Browsers */
       url('../fonts/open-sans-v34-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../fonts/open-sans-v34-latin-700.svg#OpenSans') format('svg'); /* Legacy iOS */
}

/* --------------- main styles --------------- */
/*
main colors:
blue: #244B9F
lightgray: #ECECEC
darker: #707070
#6dark: 66666*/


* {
	margin:0px;
	padding:0px;
	outline:none;
	border:0;
	box-sizing: border-box;
}
html {
	scroll-padding-top:155px; /* height of sticky header */
}

html, body {
	height: 100%;
	width: 100%;
	scroll-behavior: smooth;
}
body {
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	line-height: 1.5em;
	color: #666666;
}
.container {
	position:relative;
	z-index: 900;
}

h1, h2, h3, h4 {
	font-family: 'Open Sans', sans-serif;
	line-height: 120%;
	margin-bottom: 0.5em;
	color: #244B9F;
	text-align: center;
	text-transform: uppercase;
}
.fifty h2, .fifty h3, .fifty h4 {
	/*margin-top: 1.5em;
	, section .content div h2, section .content div h3, section .content div h4
	*/
		text-align: left;

}
#methoden h2 {
	margin-top: 2.5em;
}
#methoden .fifty h2 {
	margin-top: 0;
}
h1 {
	font-size: 2.25em;
}
h2, h3 {
	font-size: 1.5em;
}
h4 {
	font-size: 1em;
}
p {
	margin-bottom:1em;
}
ul, ol {
  padding: 0 0 1em 1.5em;
  color: inherit;
}
a { 
	color: #666;
	text-decoration:none; 
	font-weight: bold;
}
small {
	line-height: 100%;	
}
.bluebutton {
	display:block;
	background-color: #244B9F;
	color: white;
	border: none;
	padding: 0.5em 1.5em;
	margin-top: 1em;
	font-size: 1em;
	width:100%;
	background-image: url(/layout/arrow-white.svg);
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: 135px;
	background-position: right 16px;
	cursor:pointer;	
}
.bluebutton a {
	color: #fff;
}
.whitebutton {
	display:block;
	background-color: #ccc;
	color: #244B9F;
	border: none;
	padding: 0.5em 1.5em;
	margin-top: 0em;
	font-size: 1em;
	max-width:100%;
	background-image: url(/layout/arrow-blue.svg);
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: 135px;
	background-position: right 16px;
	cursor:pointer;	
}
.whitebutton a {
	color: #244B9F;
}

section {
	position: relative;
	overflow:hidden;
	min-height: 28vh;
	padding-top: 0em;
}
section.dark {
	background:#244B9F;
	color:#FFF;
}
section.dark h1 {
	text-align:center;
	color:#FFF;
}
section.dark h3, section.dark h2 {
	color:#FFF;
}
.content {
	margin:0 auto;
	max-width:1024px;
	padding:2em;
}
#HeaderImageWrapper {
	display: block;
	position: relative;
	width: 100%;
	overflow: hidden;
}
#HeaderImageContainer {
	height: 60vh;
	overflow: hidden;
}
#HeaderImage {
	height: 100%;
	background: url(/images/slide/wachenburg.jpg);
	background-size: cover;
	background-position: center 3em;
	background-repeat: no-repeat;
}
.is-home #HeaderImageContainer {
	height: 100vh;
	background-color: #ECECEC;
}
.is-home #HeaderImage {
	height: 100%;
	background: url(/images/slide/eschelbach_2023-HD.jpg);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: fixed;
	background-size: contain;
	background-position: center 4em;
}
.button {
	width: 300px;
	height: 300px;
	background:#FFF;
	float:left;
	text-align:center;
	padding: 0 2em;
	border:1px solid #ffc742;
	background-size: cover;
	background-position: bottom center;
	background-repeat: no-repeat;
	margin-bottom: 1em;
}

.infobox > div {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 3.5em;
  background-color: #014b96;
  border-bottom-left-radius: 36px;
  color: #fff;
  font-size: 1em;
  padding-top: 13px;
  padding-left: 36px;
  background-image: url(/images/large-arrow-right-white.png);
  background-image: url(/images/arrow-white.svg);
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 86px;
  background-position: 75px 45px;
}

.button p, .button strong {
	position: relative;
	top: 46%;
	font-size:1.4em;
	line-height:1.2em;
	font-weight:bold;
	color: white;
}
.intro {
	background-color: #244B9F;
}
.teaser {
	position: relative;
	max-width:720px;
	margin: 0 auto;
	top: 50vh;
	text-align:center;
	font-size:1.6em;
	line-height:2.4em;
	color:#666;
	display:none;
	background-color:#ECECEC;
}
.is-home .teaser {
	display:block;
	scale: 0.8;
}
.teaser h1 {
	font-size:1.8em;
	line-height: 120%;
	color: #244B9F;
	font-weight: 600;
	padding-top: 1.0em;
	margin-bottom: 0.4em;
}
.teaser h2 {
	font-size:1.0em;
	font-weight: 200;
	color: #666;
	letter-spacing: 0.034em;
	margin-top:-0.5em;
	margin-bottom:0em;
}
.teaser p {
	font-size:0.6em;
	font-weight: 200;
	color: #666;
	letter-spacing: 0.034em;
	margin-bottom: 0;
	margin-top:-3em;
}
.teaser .button {
	width: 140px;
	height: 140px;
	height: 40px;
	padding: 0;
	text-decoration: none;
	background-color: transparent;
	border:0;
	float: none;
}
.teaser hr {
	width:20%;
	height:1px;
	border-width:0;
	color:#244B9F;
	background-color:#244B9F; 
	margin:1em auto 2em auto;
}

.teaser .button p {
	position: relative;
	top: 45%;
	font-size:0.6em;
	line-height:1.0em;
	font-weight:bold;
	margin-bottom:0.0em;
	margin-top: 0em;
	color:#244B9F;
}

.down {
    border: solid #244B9F;
    -webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
/*
i {
    display: inline-block;
    padding: 5px;
	border-radius: 10%;
}
.right {
	border: solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}

.more {
	width: 150px;
	height: auto;
	background:#FFF;
	float:left;
	padding:0.5em 2em;
	color:#ffc742 ;
	text-align:left;
	border:1px solid #ffc742 ;
	font-weight:bolder;
	text-decoration:none;
	margin:1em 0;
	border-radius:6px;
}
.more:hover {
	color: #244B9F;
}
.more:hover > i {
	border: solid #244B9F;
    border-width: 0 3px 3px 0;
}
.more i {
    border: solid #ffc742 ;
    border-width: 0 3px 3px 0;
	float: right;
	margin-top: 6px;
}*/

.button i {
    border-width: 0 3px 3px 0;
	margin-bottom: 22px;
	    display: inline-block;
    padding: 5px;
	border-radius: 10%;
}

hr {
	width:20%;
	height:1px;
	border-width:0;
	color:#244B9F;
	background-color:#244B9F; 
	margin:2em auto 2em auto;
}
figure img {
  max-width: 100%;
  margin-bottom: 1em;
  box-shadow: 0px 2px 18px 0px rgba(0,0,0,0.3);
  vertical-align: bottom;
}
figcaption {
	color:#244B9F;
}
.dark figcaption {
	color:#fff;
}
.overview {
	text-transform: capitalize
}
.totop {
	margin-top: 3em;
}
.scrollToTop {
	text-align: center;
	padding: 1em;
	border-radius: 50%;
	border: 1px solid #fff;
	transition: all 0.5s ease 0s;
	width: 3rem;
	height: 3rem;
	text-decoration: none;
	position: fixed;
	bottom: 0.5rem;
	right: 1rem;
	background: url(/layout/top-icon.svg) no-repeat center center;
	background-size: 28px 26px;
	background-color: #244B9F;
	opacity: 0;
	font-size: 0;
	cursor: pointer;
	z-index: 999;
}
/* --------------- layout grid --------------- */
.flexbox {
	display: flex;
	flex-direction: row;
	justify-content: start;
	margin-bottom: 2em;
	flex-wrap: wrap;
	gap: 1em;
	margin-top: -2em;
}
.twocols {
	width: 48%;
}
.twocols img {
	max-width:100%;	
}
.card {
	min-width: 30%;
	max-width: 30%;
	height: 6em;
	line-height:6em;
	background-color:#ECECEC;
	border:0px solid #666;
	position: relative;
	text-align:center;
	padding:0 0.3em;
}
.card p {
/*	position: absolute;
	top: 50%;
	transform: translate(0%, -50%);*/
	font-size:0.9em;
	text-transform: uppercase;
	line-height: 14px;
	color: #244B9F;
	line-height: 1.5;
	display: inline-block;
	vertical-align: middle;
}
.card p small {
	color: #666;
	text-transform: none;
}

form#contact_form {
  max-width: 100%;
}
#contact_form input, #contact_form textarea {
	color: #244B9F;
	border-bottom-style: none;
	width: 100%;
	margin: 0.5em 0;
	padding: 0.5em;
	font-size: 1.1em;
	letter-spacing: 1px;
	background-color: #ECECEC;
}
#contact_form button {
	font-family: 'Open Sans', sans-serif;
	background-color: #244B9F;
	color: white;
	border: none;
	padding: 0.5em 1.5em;
	margin-top: 2em;
	font-size: 1em;
	width:100%;
	background-image: url(/layout/arrow-white.svg);
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: 135px;
	background-position: right 16px;
	cursor:pointer;
}
.kontakt .container {
	display:flex;
}
.kontakt .container .col_50 h1 {
	text-align:left;
}.check .checkmark::after {
	left: 8px;
	top: 3px;
	width: 5px;
	height: 10px;
	border: solid white;
	border-top-width: medium;
	border-right-width: medium;
	border-bottom-width: medium;
	border-left-width: medium;
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.checkmark::after {
	content: "";
	position: absolute;
	display: none;
}
.checkmark {
	position: absolute;
	top: 0;
	left: 0;
	height: 25px;
	width: 25px;
	background-color: #eee;
	border: 1px solid #C7487D;
	border-radius: 3px;
}
.check {
	display: block;
	top: 1rem;
	position: relative;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
.check input {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}
#contact_form input[type=checkbox] {
	width: auto;
}
#send_success, #send_error {
  display: none;
}
.consentbutton {
	cursor: pointer;
	border: 0px;
	border-radius: 5px;
	padding: 0.3em;
	position: absolute;
	z-index: 99;
	left: 50%;
	transform: translateX(-50%);
	background: #eee;
	color: #244B9F;
	font-size: 1.1vw;
	border: solid 2px #fff;;
}


@media only screen and (max-width: 680px){
	.flexbox {
		flex-direction: column;
	}
	.twocols {
	  width: 100%;
	}
	.card {
		min-width: 100%;
		max-width: 100%;
	}
}
.two_cols {
	column-count: 2;
	column-gap: 1em;
}
.one_col {
	column-count: 1;
}
.one_col p, .two_cols p {
	font-family: 'PT Sans', sans-serif;
	font-size:1.2em;
	line-height: 150%;
}
.flex-box {
	display: flex;
	/*flex-flow: row wrap;*/
	justify-content: center;
	gap: 1em;
}
.flex-box > div {
	flex-basis: 30%;
}
.flex-box img {
	width: 90%;
}
.flex-box > div > p {
	padding: 2em;
	font-size: 1.1em;
}
.fifty {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 48% 48%;
	grid-template-columns: 48% 48%;
	-ms-grid-gap: 4%;
	grid-gap: 4%;
}
section div.content > div.fifty {
	padding: 1em 0 0 0;
	text-align:center;
}

@media only screen and (max-width: 768px){
	#HeaderImageContainer, #HeaderImage {
	    height: 30vh;
	}
	.teaser {
		top: 33%;
	}
	.teaser h1 {
		font-size: 1em;
		margin-bottom:1.5em;
	}
	nav, nav img {
		height: 42px;
	}
	
	.button {
		margin: 0 1em;
	}
	.fifty {
		display: block;
	}
	.fifty > div {
		margin-bottom:2em;
	}
}

header {
  	position: fixed;
  	z-index: 999;
  	width: 100%;
  	transition: all 0.6s ease-in-out;
	background-color:#FFF;
}
header.scrolled {
	height:72px;
	background: #ECECEC;;
	border-bottom:1px solid ##707070 ;
	box-shadow: 0px 7px 17px -9px rgba(0,0,0,0.5);
}
header > .content {
	padding: 0;
	max-width: 1400px;
	
}
header nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
    margin: 0 0.5em;
	position: relative;
}
header nav .logo {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
}
header nav .logo > img {
	height: 100px;
	max-width: 100%;
	max-height: 100%;
	transition: all 0.3s ease-in-out;
	padding: 0.5em;
}
header nav.scrolled .logo > img {
	height: 75px;
}
header nav .nav {
  	display: flex;
  	flex: 1 1 auto;
  	justify-content: flex-end;
  	padding: 0 0 0 1.5em;
  	list-style: none;
  	margin-top:2em;
}
header nav .nav li:first-child {
	display: none;
}
header nav .nav li ul li:first-child {
	display: block;
}
header nav.scrolled .nav {
  	margin-top:0em;
}
header nav .nav li {
  	list-style:none;
}
header nav .nav li.active > a ,header nav .nav li.active li.active {
	color:#244B9F;
	font-weight:bold;
}
header nav .nav li a {
  	text-decoration: none;
  	font-size: 1.1em;
  	font-weight: normal;
}
header nav.scrolled .nav li a {
	color: #666;
}
header nav .nav li a:hover {
	color:#244B9F;
}
header nav .slogan {
	flex: 0 1 auto;
	font-size: .9em;
}
header nav:not(.scrolled) .slogan  {
	flex: 0 1 auto;
	font-size: 1.9em;
	color:#244B9F;
}
header  nav > ul > li {
  	list-style: none;
  	display: inline-block;
 	position: relative;
  	height: 44px;
  	line-height: 40px;
  	margin-right: 1em;
}
header nav > ul > li.has-sub {
	padding-right: 20px;
	background-image: url(/layout/nav-sub-arrow-blue.svg);
	background-size: 14px;
	background-position: right center;
	background-repeat: no-repeat;
}
header nav.scrolled > ul > li.has-sub {
	background-image: url(/layout/nav-sub-arrow.svg);
}
header nav.scrolled > ul > li.has-sub:hover {
	background-image: url(/layout/nav-sub-arrow-blue.svg);
}
header nav > ul > li ul {
	display: none;
	position: absolute;
	top: 100%;
	left: -1em;
	width: 18em;
	background: white;
	color: #14171a;
	z-index: 5;
	padding: 1em 1.5em;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}
header nav > ul > li.has-sub:hover ul {
  	display: block;
}

@media only screen and (max-width: 860px){
	header nav .nav {
		flex: 1 1 auto;
	}
	header nav .nav li a {
	  	color: #000;
	  	text-decoration: none;
	  	font-size: 1em;
	  	font-weight: normal;
	}
}
main {
  display: block;
  position: relative;
  width: 100%;
}
footer {
  	display: block;
  	position: relative;
  	width: 100%;
  	background: white;
  	color:#244B9F;
}
footer.dark {
	background-color: #ECECEC;
}
footer > .content {
  	display: -ms-grid;
  	display: grid;
  	-ms-grid-columns: 20% 20% 25% 25%;
  	grid-template-columns: 20% 20% 25% 25%;
 	-ms-grid-gap: 3%;
  	grid-gap: 3%;
}
footer > .content > div {
  	font-size: .85em;
  	padding-top: 12px;
}
footer > .content > div:first-child  {
	padding-top: 0px;
}
footer > .content > div:first-child img {
	max-height:70px;
	color: #903e50;
}
footer > .content > div.slogan {
  	text-align: right;
}
section.subpage h1 {
  	font-size: 1.5em;
  	font-style: normal;
}
section.subpage h2 {
  	font-size: 1.2em;
  	margin-bottom: .5em;
}
section.subpage h3 {
  	font-size: 1em;
  	margin-bottom: .4em;
}
.mobile_nav_btn { 
	display: none; 
}
.acc {
	cursor: pointer;
	padding-top: 2em;
	width: 100%;
	transition: all 0.5s ease;
	background-image: url(/layout/arrow-down-blue.svg);
	background-size: 66px;
	background-position: right bottom;
	background-repeat:no-repeat;
}
.acc.active {
	background-image: url(/layout/arrow-up-blue.svg);
}
.panel {
	border-bottom: 1px solid #244B9F;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.2s ease-out;
}


@media only screen and (max-width: 1024px) {
	
	.content { 
		padding: 2em 1.5em; 
	}
	body.mobile-nav-open { 
		overflow-y: hidden; 
	}
	header nav { 
		justify-content: space-between !important; 
	}
	header nav:not(.scrolled) .logo { 
		height: 75px; 
		max-height: auto;
		margin-top: 0; 
	}
	body.mobile-nav-open header nav .nav { 
		display: block; 
	}
	.teaser .button, header nav .slogan, body:not(.mobile-nav-open) header nav .nav { 
		display: none; 
	}
	.teaser .button {
	  	display: contents;
	}
	.two_cols { 
		column-count: 1; 
	}
	#HeaderImage { 
		/*background-position: center top; */
	}
	.mobile_nav_btn {
		display: block;
		width: 4em;
		height: 2em;
		background-image: url(/layout/nav-closed.svg);
		background-size: 2.4em;
		background-position: center;
		background-repeat: no-repeat;
	}
	body.mobile-nav-open .mobile_nav_btn { 
		background-image: url(/layout/nav-open.svg); 
		background-size: 2em; 
	}
	footer > .content > div.slogan {
		text-align: center;
		line-height: 1.5em;
		margin-top: 1.5em;
	}
	
	header > .content { 
		padding: 1em; 
	}
	header nav .nav {
		position: fixed;
		background-color: rgba(255, 255, 255, 1);
		padding-top: calc(2em + 90px);
		top: -60px;
		left: 0;
		width: 100vw;
		height: 104vh;
		display: block;
		z-index: -1;
		padding-left: 3.5em;
	}
	header nav > ul { 
		color:#14171a !important;
	}
	header nav.scrolled .nav {
		margin-top:2em;
	}
	section::after { 
		opacity: 0.15; 
		left: 0; 
		right: 0; 
	}
	header nav .nav li {
		width: 100%;
		margin-top: 0.5em;
	}
	header nav > ul > li.has-sub, header nav.scrolled > ul > li.has-sub {
		background-image: none;
	}
	header nav > ul > li.has-sub ul {
	  	display: block;
	  	position:relative;
	  	top:0;
	  	left: 0.5em;
	  	background: transparent;
	  	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.0);
	  	margin:0;
	  	padding: 0em 1.5em;
	}
	header nav > ul > li {
		height: auto;
		line-height: 25px;
	}
	header nav > ul > li.has-sub ul li {
		margin:0.5em 0 0 0;	
	}
	nav, nav img {
		height: 42px;
	}

}
@media only screen and (max-width: 810px) { 
	footer > .content {
		grid-template-columns: 32% 32% 32%;
		grid-gap: 2%;
	}
	footer > .content > div {
	  padding-top: 20px;
		padding-left: 2em;
	}
	footer .footerlogo {
		grid-column: 1 / span 3;
		grid-row: 1;
		display:flex;
		justify-content: center;
	}
}
@media only screen and (max-width: 600px) {
	footer > .content {
		grid-template-columns: 48% 48%;
		grid-gap: 2%;
	}
	footer .footerlogo {
		grid-column: 1 / span 1;
		grid-row: 1;
	}
	footer .thirditem {
		grid-column: 1;
		grid-row: 2;
	}
	footer .seconditem {
		grid-column: 2;
		grid-row: 2;
	}
	h2, h3 {
	  font-size: 1.2em;
	}
	.acc {
		background-size: 44px;
		background-position: right 33px;
	}
	.whitebutton {
		background-size: 100px;
	}
	#contact_form button {
		background-size: 100px;
	}
	
}
@media only screen and (max-width: 420px) {
	footer > .content {
		grid-template-columns: 100%;
		grid-gap: 0%;
	}
	footer .firstitem, footer .seconditem, footer .thirditem {
		display: flex;
		justify-content: center;
		align-content: center;
		align-items: center;
		flex-direction: column;
		text-align: center;
	}
	footer .footerlogo {
		grid-column: 1;
		grid-row: 1;
	}
	footer .firstitem {
		grid-column: 1;
		grid-row: 2;
	}
	footer .thirditem {
		grid-column: 1;
		grid-row: 4;
	}
	footer .seconditem {
		grid-column: 1;
		grid-row: 3;
	}
}



  