

/* ############################################################
	SCHRIFTEINBETTUNG
############################################################ */

/*
Quelle: Direktinstallation auf Server
*/

@font-face {
	font-family: "Graphik Semibold Web";
	src: url("../Fonts/Graphik/Graphik-Semibold-Web.eot");
	src: url("../Fonts/Graphik/Graphik-Semibold-Web.eot?#iefix") format("embedded-opentype"),
		url("../Fonts/Graphik/Graphik-Semibold-Web.woff2") format("woff2"),
		url("../Fonts/Graphik/Graphik-Semibold-Web.woff") format("woff");
	font-weight:  600;
	font-style:   normal;
	font-stretch: normal;
}
@font-face {
	font-family: "Graphik Regular Web";
	src: url("../Fonts/Graphik/Graphik-Regular-Web.eot");
	src: url("../Fonts/Graphik/Graphik-Regular-Web.eot?#iefix") format("embedded-opentype"),
		url("../Fonts/Graphik/Graphik-Regular-Web.woff2") format("woff2"),
		url("../Fonts/Graphik/Graphik-Regular-Web.woff") format("woff");
	font-weight:  400;
	font-style:   normal;
	font-stretch: normal;
}


/* ############################################################
	FARBKLIMA
###############################################################
	
	1 Metall:			#a2b7c3 - rbga(162,183,195,1)
	2 Hell Grau:		#edeff0 - rbga(237,239,240,1)
	3 Dunkel Grau:		#637077 - rgba(99,112,119,1)
	4 Weiss				#ffffff - rgba(255,255,255,1)
	
###############################################################
	ALLGEMEINES
############################################################ */

/* Resets */
* {
	margin: 0;
	padding: 0;
	outline: none;
}
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
img, table, tr, td {
	border: 0;
}

/* Variablen definieren */
:root {
  --main-color-1: #a2b7c3;
  --main-color-2: #edeff0;
  --main-color-3: #637077;
  --main-color-4: #fff;
  --main-color-error: #eb4462;
  --main-color-successful: #4fa158;
}

html, body { /* html = IE text resize correction */
	font-size: 100%;
}
html {
	height: 100vh;
	height: -webkit-fill-available;
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow-x: hidden;
	min-height: 100vh;
	min-height: -webkit-fill-available; /* mobile viewport bug fix */
	background-color: var(--main-color-4);
}
a, a:focus {
	outline: none;
}

main img, footer img {
	max-width: 100% !important;
	height: auto !important;
	display: block;
	-ms-interpolation-mode: bicubic;
	image-rendering: optimizeQuality;
}

.css-transitions-only-after-page-load * {
	-o-transition: none !important;
	-ms-transition: none !important;
	-moz-transition: none !important;
	-webkit-transition: none !important;
	transition: none !important;
}

/* Effekt: FadeIn / Lightning */
body:not(.cms-active) header,
body:not(.cms-active) main,
body:not(.cms-active) footer {
	opacity: 0;
}

/* Page-Loader */
@keyframes load-spinner {
  to {
		transform: rotate(360deg);
	}
}
#load-cover-spin {
	position: fixed;
	width: 100%;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background-color: rgba(255,255,255,0.5);
	z-index: 9999;
	display: none;
}
#load-cover-spin::after {
	content: "";
	box-sizing: border-box;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 50px;
	height: 50px;
	margin-top: -25px;
	margin-left: -25px;
	border-radius: 50%;
	border: 4px solid var(--main-color-1);
	border-top-color: var(--main-color-3);
	background-color: transparent;/*rgba(255,255,255,0.8)*/
	-webkit-animation: load-spinner .6s linear infinite;
	animation: load-spinner .6s linear infinite;
}


/* ############################################################
	SCHRIFTEN / TEXTE / ABSÄTZE / HYPERLINKS / TITEL
############################################################ */

/* Allgemeines */
body {
	font-family: "Graphik Regular Web";
	font-weight:  400;
	font-style:   normal;
	font-stretch: normal;
	font-size: 1.125rem; /* 18px */
	line-height: 1.75rem; /* 28px */
	letter-spacing: 0.36px;
	color: var(--main-color-3);
}


/* Schnitte */
i, em {
}
b, strong {
	font-family: "Graphik Semibold Web";
	font-weight:  600;
	font-stretch: normal;
}
strong > em, em > strong,
strong > i, i > strong,
b > em, em > b,
b > i, i > b {
}


/* Titel, Schriftgrössen */
h1, h2, h3 {
	position: relative;
	margin: 0;
	padding: 0;
	font-family: "Graphik Regular Web";
	font-weight:  400;
	font-style:   normal;
	font-stretch: normal;
	color: inherit;
}
h1, h2, h2.modultitel, h2.small {
	/*margin-top: -6px;*/
	margin-bottom: 32px;
	font-size: 1.75rem; /* 28px */
	line-height: 2.3125rem; /* 37px */
	letter-spacing: 0.56px;
}
	p + h2.small {
		margin-top: 37px;
	}
h3 {
	font-family: "Graphik Semibold Web";
	font-weight:  600;
	font-size: 1.125rem; /* 18px */
	line-height: 1.75rem; /* 28px */
	letter-spacing: 0.36px;
}
.font-28 {
	font-size: 1.125rem; /* 18px */
	line-height: 1.75rem; /* 28px */
	letter-spacing: 0.36px;
}
.font-14 {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
	letter-spacing: 0.28px;
}
@media (min-width: 1440px) {
	h1, h2, h2.modultitel {
		/*margin-top: -10px;*/
		margin-bottom: 54px;
		font-size: 2.8125rem; /* 45px */
		line-height: 3.6875rem; /* 59px */
		letter-spacing: 0.9px;
	}
	.font-28 {
		font-size: 1.75rem; /* 28px */
		line-height: 2.3125rem; /* 37px */
		letter-spacing: 0.56px;
	}
}


/* Lange Sätze abschneiden */
.text-overflow-ellipsis {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}


/* Zeichen */
.text-uppercase {
	text-transform: uppercase;
}
.text-lowercase {
	text-transform: lowercase;
}


/* Silbentrennung */
.silbentrennung {
	-ms-hyphens: auto;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
	-ms-hyphenate-limit-chars: auto 3;
	-moz-hyphenate-limit-chars: auto 3;
	-webkit-hyphenate-limit-chars: auto 3;
	hyphenate-limit-chars: auto 3;
	-ms-hyphenate-limit-lines: 3;
	-moz-hyphenate-limit-lines: 3;
	-webkit-hyphenate-limit-lines: 3;
	hyphenate-limit-lines: 3;
}


/* Farben */
.color-error {
	color: var(--main-color-error);
}
.color-successful {
	color: var(--main-color-successful);
}
.color-1 {
	color: var(--main-color-1);
}
.color-2 {
	color: var(--main-color-2);
}
.color-3 {
	color: var(--main-color-3);
}
.color-4 {
	color: var(--main-color-4);
}
.bg-error {
	background-color: var(--main-color-error);
}
.bg-successful {
	background-color: var(--main-color-successful);
}
.bg-color-1 {
	background-color: var(--main-color-1);
}
.bg-color-2 {
	background-color: var(--main-color-2);
}
.bg-color-3 {
	background-color: var(--main-color-3);
}
.bg-color-4 {
	background-color: var(--main-color-4);
}


/* ############################################################
	HYPERLINKS
############################################################ */

/* Allgemeines */
header a, nav a, main a, footer a {
	text-decoration: none;
	-o-transition: color 0.3s ease;
	-ms-transition: color 0.3s ease;
	-moz-transition: color 0.3s ease;
	-webkit-transition: color 0.3s ease;
	transition: color 0.3s ease;
}
main a,
footer a {
	color: var(--main-color-3);
}
main a:hover,
footer a:hover {
	color: var(--main-color-1);
}


/* Hover Effekte */
.underline,
a:hover .underline {
	text-decoration: underline;
}
.no-hover,
.no-hover:hover,
.no-link {
	cursor: default;
	color: inherit;
}
.pointer {
	cursor: pointer;
}


/* Linkbox */
a.link-box {
	display: inline-block;
	padding: 3px 10px 2px 9px;
	background-color: transparent;
	border: 1px solid var(--main-color-3);
	color: var(--main-color-3);
	-o-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-ms-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-moz-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-webkit-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
}
a.link-box:hover {
	background-color: var(--main-color-3);
	color: var(--main-color-4);
}


/* Lange Hyperlinks */
@media (max-width: 759.98px) {
	main a {
		-ms-hyphens: auto;
		-moz-hyphens: auto;
		-webkit-hyphens: auto;
		hyphens: auto;
		-ms-hyphenate-limit-chars: auto 3;
		-moz-hyphenate-limit-chars: auto 3;
		-webkit-hyphenate-limit-chars: auto 3;
		hyphenate-limit-chars: auto 3;
		-ms-hyphenate-limit-lines: 3;
		-moz-hyphenate-limit-lines: 3;
		-webkit-hyphenate-limit-lines: 3;
		hyphenate-limit-lines: 3;
	}
}


/* Anker */
a.nav-anchor[name] {
	display: block;
	width: 0;
	height: 0;
	position: relative;
	top: -30px !important;
	visibility: hidden;
}
@media (min-width: 760px) {
	a.nav-anchor[name] {
		top: -60px !important;
	}
}
@media (min-width: 1020px) {
	a.nav-anchor[name] {
		top: -146px !important;
	}
}


/* ############################################################
	PANELS/BOXEN
############################################################ */

/* Allgemein */
header, nav, main, footer,
.image-line-1, .nav-line-1, .nav-line-2, .nav-line-3, .footer-line-1, .footer-line-2, .footer-line-3,
.header-box, .content-box, .footer-box,
.header-inline, .content-inline, .footer-inline,
.mdl-container {
	position: relative;
	width: 100%;
}
.header-box, .content-box, .footer-box,
.nav-line-1, .nav-line-2, .nav-line-3 {
	padding-right: 20px;
	padding-left: 20px;
}

/* Kopfzeile */
header {
	z-index: 10;
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 115px;
	background-color: var(--main-color-4);
}
	.image-line-1 {
		width: 100%;
		height: 64px;
		margin-top: -64px;
	}
	.image-line-1.slider-text {
		height: 166px;
		margin-top: -166px;
	}
	nav, nav.open {
		-o-transition: left 0.6s ease;
		-ms-transition: left 0.6s ease;
		-moz-transition: left 0.6s ease;
		-webkit-transition: left 0.6s ease;
		transition: left 0.6s ease;
	}
	nav {
		opacity: 0;
		z-index: 9;
		position: absolute;
		top: 115px;
		left: -100%;
		width: 100%;
		height: 100vh;
		height: calc(var(--nav-height, 1vh) * 100);
		background-image: -webkit-linear-gradient(bottom, var(--main-color-4) 64px, var(--main-color-3) 64px, var(--main-color-3) 100%);
		background-image: -o-linear-gradient(bottom, var(--main-color-4) 64px, var(--main-color-3) 64px, var(--main-color-3) 100%);
		background-image: linear-gradient(to top, var(--main-color-4) 64px, var(--main-color-3) 64px, var(--main-color-3) 100%);
	}
	nav.open {
		left: 0;
	}
		.nav-line-1, .nav-line-2, .nav-line-3 {
			position: absolute;
			top: 33px;
			left: 0;
			width: 100%;
		}
		.nav-line-2 {
			top: auto;
			bottom: 89px;
		}
		.nav-line-3 {
			top: auto;
			bottom: 0;
			height: 64px;
		}

/* Inhalt */
main {
	padding-top: 115px;
}

/* Fusszeile */
footer {
	padding-top: 20px;
	padding-bottom: 60px;
}
@media (min-width: 760px) {
	/* Allgemein */
	.header-box, .content-box, .footer-box,
	.nav-line-1, .nav-line-2, .nav-line-3 {
		padding-left: 50px;
		padding-right: 50px;
	}
	
	/* Kopfzeile */
	.nav-line-1 {
		top: 63px;
	}
	
	/* Fusszeile */
	footer {
		padding-top: 40px;
	}
}
@media (min-width: 1020px) {
	/* Kopfzeile */
	header {
		height: 226px;
	}
		.image-line-1, .image-line-1.slider-text {
			height: 111px;
			margin-top: -111px;
		}
		nav {
			top: 226px;
			background-image: -webkit-linear-gradient(bottom, var(--main-color-4) 111px, var(--main-color-3) 111px, var(--main-color-3) 100%);
			background-image: -o-linear-gradient(bottom, var(--main-color-4) 111px, var(--main-color-3) 111px, var(--main-color-3) 100%);
			background-image: linear-gradient(to top, var(--main-color-4) 111px, var(--main-color-3) 111px, var(--main-color-3) 100%);
		}
			.nav-line-3 {
				height: 111px;
			}
	
	/* Inhalt */
	main {
		padding-top: 226px;
	}
	
	/* Fusszeile */
	footer {
		padding-top: 72px;
		padding-bottom: 80px;
	}
}
@media (min-width: 1440px) {
	/* Allgemein */
	.header-box, .content-box, .footer-box,
	.nav-line-1, .nav-line-2, .nav-line-3 {
		padding-left: 100px;
		padding-right: 100px;
	}
		.header-inline, .content-inline, .footer-inline {
			/*max-width: 1720px;*/
			margin: 0;
		}
}
@media (min-height: 1050px) {
	/* Kopfzeile */
	.nav-line-1 {
		top: 129px;
	}
}


/* ############################################################
	BILDER/ICONS
############################################################ */

/* Logo */
.logo-link {
	display: inline-block;
	width: 175px;
	height: 28px;
	margin-top: 53px;
}
@media (min-width: 1020px) {
	.logo-link {
		width: 300px;
		height: 48px;
		margin-top: 111px;
	}
}
@media (min-width: 1440px) {
	.logo-link {
		margin-left: -50px;
	}
}


/* Button Scroll Top */
.btn-scrolltop,
.btn-scrollup {
	position: absolute;
	display: inline-block;
	top: 7px;
	right: 0;
	width: 46px;
	height: 24px;
}
.btn-scrollup {
	z-index: 2;
}
.btn-scrolltop {
	right: auto;
	top: 20px;
	left: 5px;
	width: 30px;
	height: 16px;
}
.image-line-1.slider-text .btn-scrolltop {
	top: 130px;
}
	.btn-scrolltop svg,
	.btn-scrollup svg {
		fill: var(--main-color-3);
		-o-transition: fill 0.3s ease;
		-ms-transition: fill 0.3s ease;
		-moz-transition: fill 0.3s ease;
		-webkit-transition: fill 0.3s ease;
		transition: fill 0.3s ease;
	}
	.btn-scrolltop:hover svg,
	.btn-scrollup:hover svg {
		fill: var(--main-color-1);
	}
	.btn-scrollup svg {
		-o-transform: rotate(180deg);
		-ms-transform: rotate(180deg);
		-moz-transform: rotate(180deg);
		-webkit-transform: rotate(180deg);
		transform: rotate(180deg);
	}
@media (min-width: 760px) {
	.btn-scrolltop {
		left: 25px;
	}
}
@media (min-width: 1020px) {
	.btn-scrolltop {
		top: 43px;
		left: 25px;
		width: 46px;
		height: 24px;
	}
	.image-line-1.slider-text .btn-scrolltop {
		top: 43px;
	}
	.btn-scrollup {
		right: auto;
		left: 0;
	}
}


/* ############################################################
	LISTEN
############################################################ */

/* Aufzählungslisten */
.mdl-container ul:not([class^="cmsmodule-nav"]),
.mdl-container ol.nummer-klammer {
	list-style: none;
	position: relative;
	padding: 0;
}

/* - (&ndash;) */
.mdl-container ul:not([class^="cmsmodule-nav"]) {
}
	.mdl-container ul:not([class^="cmsmodule-nav"]) li {
		margin-left: 17px;
		padding-left: 0;
	}
	.mdl-container ul:not([class^="cmsmodule-nav"]) li:before {
		content: "\2013";
		position: absolute;
		margin-left: -17px;
	}
	.mdl-container ul:not([class^="cmsmodule-nav"]) li:not(:first-child) {
	}


/* ############################################################
	NAVIGATION
############################################################ */

/* Allgemeines */
ul.nav-mainmenu, ul.nav-mainmenu ul, ul.nav-mainmenu li,
ul.nav-secondmenu, ul.nav-secondmenu ul, ul.nav-secondmenu li,
ul.nav-thirdmenu, ul.nav-thirdmenu ul, ul.nav-thirdmenu li,
ul.nav-language, ul.nav-language ul, ul.nav-language li,
ul.nav-claim, ul.nav-claim ul, ul.nav-claim li {
	list-style: none;
	margin: 0;
	padding: 0;
}
ul.nav-mainmenu li,
ul.nav-secondmenu li,
ul.nav-thirdmenu li,
ul.nav-language li,
ul.nav-claim li {
	position: relative;
}

/* Hyperlink */
ul.nav-mainmenu a,
ul.nav-secondmenu a,
ul.nav-thirdmenu a,
ul.nav-language a,
ul.nav-claim a {
	display: inline-block;
}
footer ul.nav-language a {
	-o-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-ms-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-moz-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	-webkit-transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
	transition: color 0.3s ease, background 0.6s ease, border 0.6s ease;
}


/*
1st-Menu
*/
nav ul.nav-mainmenu {
	/*opacity: 0;*/
	font-size: 1.75rem; /* 28px */
	line-height: 1.75rem; /* 28px */
	letter-spacing: 0.56px;
	color: var(--main-color-4);
}
	/* Level 1 */
	nav ul.nav-mainmenu li {
		display: block;
	}
	nav ul.nav-mainmenu li:not(:first-child) {
		margin-top: 14px;
	}
	
	/* Hyperlink */
	nav ul.nav-mainmenu li a {
		color: var(--main-color-4);
	}
	nav ul.nav-mainmenu li a:hover,
	nav ul.nav-mainmenu li.active a {
		color: var(--main-color-1);
	}
@media (min-width: 1440px) {
	nav ul.nav-mainmenu {
		font-size: 2.8125rem; /* 45px */
		line-height: 2.8125rem; /* 45px */
		letter-spacing: 0.9px;
	}
		/* Level 1 */
		nav ul.nav-mainmenu li:not(:first-child) {
			margin-top: 24px;
		}
}


/*
2nd-Menu
*/
nav ul.nav-secondmenu {
	display: flex;
	justify-content: flex-start;
	width: auto;
}
nav ul.nav-secondmenu {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
	letter-spacing: 0.28px;
}
	/* Level 1 */
	nav ul.nav-secondmenu li {
		display: inline-block;
		width: auto;
	}
	nav ul.nav-secondmenu li:first-child {
		display: none;
	}
	nav ul.nav-secondmenu li:nth-child(3) {
		margin-left: 25px;
	}
		/* Hyperlink */
		nav ul.nav-secondmenu li a {
			color: var(--main-color-4);
		}
		nav ul.nav-secondmenu li a:hover,
		nav ul.nav-secondmenu li.active a {
			color: var(--main-color-1);
		}
@media (min-width: 1020px) {
	nav ul.nav-secondmenu {
		font-size: 1.125rem; /* 18px */
		line-height: 1.75rem; /* 28px */
		letter-spacing: 0.36px;
	}
		/* Level 1 */
		nav ul.nav-secondmenu li:nth-child(3) {
			margin-left: 40px;
		}
			/* Hyperlink */
			nav ul.nav-secondmenu li a {
				color: var(--main-color-3);
			}
			nav ul.nav-secondmenu li a:hover,
			nav ul.nav-secondmenu li.active a {
				color: var(--main-color-1);
			}
}


/*
Sprach-Menu
*/
ul.nav-language {
	display: flex;
	justify-content: flex-start;
	width: auto;
}
nav ul.nav-language {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
	letter-spacing: 0.28px;
}
	/* Level 1 */
	ul.nav-language li {
		display: inline-block;
		width: auto;
	}
	nav ul.nav-language li:not(:first-child) {
		margin-left: 20px;
	}
	footer ul.nav-language li:not(:first-child) {
		margin-left: 13px;
	}
		/* Hyperlink */
		ul.nav-language li a {
			color: var(--main-color-3);
		}
		footer ul.nav-language li a {
			padding: 3px 9px 2px;
			background-color: transparent;
			border: 1px solid var(--main-color-3);
		}
		ul.nav-language li a:hover {
			color: var(--main-color-1);
		}
		footer ul.nav-language li a:hover {
			background-color: var(--main-color-3);
			border-color: var(--main-color-3);
			color: var(--main-color-4);
		}
		ul.nav-language li.active a span:after {
			content: "";
			display: inline-block;
			position: absolute;
			bottom: 0;
			left: -1px;
			width: calc(100% + (1px + 1px));
			border-bottom: 1px solid var(--main-color-3);
			-o-transition: border 0.3s ease;
			-ms-transition: border 0.3s ease;
			-moz-transition: border 0.3s ease;
			-webkit-transition: border 0.3s ease;
			transition: border 0.3s ease;
		}
		footer ul.nav-language li.active a span:after {
			bottom: 6px;
			left: 8px;
			width: calc(100% - (8px + 8px));
		}
		ul.nav-language li.active a:hover span:after {
			border-bottom-color: var(--main-color-1);
		}
		footer ul.nav-language li.active a:hover span:after {
			border-bottom-color: var(--main-color-4);
		}
@media (min-width: 1020px) {
	nav ul.nav-language {
		font-size: 1.125rem; /* 18px */
		line-height: 1.75rem; /* 28px */
		letter-spacing: 0.36px;
	}
		nav ul.nav-language li:not(:first-child) {
			margin-left: 13px;
		}
		nav ul.nav-language li.active a span:after {
			bottom: 3px;
		}
}
@media (min-width: 1440px) {
	nav ul.nav-language li:not(:first-child) {
		margin-left: 24px;
	}
}

