

/* ############################################################
	SCHRIFTEINBETTUNG
############################################################ */

/* montserrat-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: "Montserrat";
  font-style: normal;
  font-weight: 400;
  src: url('../Fonts/Montserrat/montserrat-v30-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('../Fonts/Montserrat/montserrat-v30-latin-regular.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}
/* montserrat-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: "Montserrat";
  font-style: normal;
  font-weight: 700;
  src: url('../Fonts/Montserrat/montserrat-v30-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
       url('../Fonts/Montserrat/montserrat-v30-latin-700.ttf') format('truetype'); /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
}


/* ############################################################
	FARBKLIMA
###############################################################
	
	1 Blau:				#0068ff - rbga(0,104,255,1)
	2 Weiss:			#ffffff - rgba(255,255,255,1)
	3 Schwarz:			#000000 - rgba(0,0,0,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: #0068ff;
  --main-color-2: #ffffff;
  --main-color-3: #000000;
  --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-2);
}
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: "Montserrat";
	font-style: normal;
	font-weight: 400;
	font-size: 1rem; /* 16px */
	line-height: 1.5625rem; /* 25px */
	color: var(--main-color-3);
}
*[class*="bg-color-3"] {
	color: var(--main-color-2);
}
@media (min-width: 1440px) {
	body {
		font-size: 1.125rem; /* 18px */
		line-height: 1.75rem; /* 28px */
	}
}


/* Schnitte */
i, em {
}
b, strong {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 700;
}
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: "Montserrat";
	font-style: normal;
	font-weight: 400;
	color: inherit;
}
h1, h2, h2.modultitel {
	margin-bottom: 36px;
	font-size: 1.875rem; /* 30px */
	line-height: 2.0625rem; /* 33px */
}
h2.small {
	margin-bottom: 28px;
	font-size: 1.375rem; /* 22px */
	line-height: 1.5rem; /* 24px */
}
h2.no-abstand {
	margin-bottom: 0;
}
	p + h2.small {
		margin-top: 36px;
	}
h3 {
	font-weight: 700;
	font-size: 1rem; /* 16px */
	line-height: 1.5625rem; /* 25px */
}
.font-28 {
	font-size: 1.375rem; /* 22px */
	line-height: 1.5rem; /* 24px */
}
.font-14 {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
}
@media (min-width: 1440px) {
	h1, h2, h2.modultitel {
		margin-bottom: 54px;
		font-size: 2.8125rem; /* 45px */
		line-height: 3.4375rem; /* 55px */
	}
	h2.small {
		margin-bottom: 34px;
		font-size: 1.75rem; /* 28px */
		line-height: 1.875rem; /* 30px */
	}
		p + h2.small {
			margin-top: 54px;
		}
	h3 {
		font-size: 1.125rem; /* 18px */
		line-height: 1.75rem; /* 28px */
	}
	.font-28 {
		font-size: 1.75rem; /* 28px */
		line-height: 1.875rem; /* 30px */
	}
}


/* 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);
}
.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);
}


/* ############################################################
	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 {
	color: var(--main-color-3);
}
main a:hover {
	color: var(--main-color-1);
}
footer a {
	color: var(--main-color-2);
}
footer a:hover {
	color: var(--main-color-1);
}
*[class*="bg-color-3"] a {
	color: var(--main-color-2);
}
*[class*="bg-color-3"] 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);
}


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-1);
	border-color: var(--main-color-1);
	color: var(--main-color-2);
}
main a.link-box {
	margin-bottom: 12px;
}
footer a.link-box {
	border: 1px solid var(--main-color-2);
	color: var(--main-color-2);
}
footer a.link-box:hover {
	background-color: var(--main-color-1);
	border-color: var(--main-color-1);
	color: var(--main-color-2);
}


/* 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: -175px !important;
	visibility: hidden;
}
@media (min-width: 760px) {
	a.nav-anchor[name] {
		top: -185px !important; /* Headerhöhe + Abstand */
	}
}
@media (min-width: 1020px) {
	a.nav-anchor[name] {
		top: -365px !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: fixed;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 115px;
	background-color: var(--main-color-2);
}
	.logo-box {
		display: inline-block;
		width: 83px;
	}
	.nav-box {
		display: inline-block;
		width: calc(100% - 83px);
	}
	.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: fixed;
		top: 115px;
		left: -100%;
		width: 100%;
		height: 100vh;
		height: calc(var(--nav-height, 1vh) * 100);
		background-color: var(--main-color-3);
	}
	nav.open {
		left: 0;
	}
		.nav-line-1, .nav-line-2, .nav-line-3 {
			position: absolute;
			top: 40px;
			left: 0;
			width: 100%;
		}
		.nav-line-2 {
			top: auto;
			bottom: 120px;
		}
		.nav-line-3 {
			top: auto;
			bottom: 0;
			height: 60px;
		}

/* Inhalt */
main {
	padding-top: 115px;
}

/* Fusszeile */
footer {
	padding-top: 60px;
	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;
	}
		.logo-box {
			width: 130px;
		}
		.nav-box {
			width: calc(100% - 130px);
		}
		.image-line-1, .image-line-1.slider-text {
			height: 111px;
			margin-top: -111px;
		}
	
	/* Inhalt */
	main {
		padding-top: 226px;
	}
	
	/* Fusszeile */
	footer {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}
@media (min-width: 1440px) {
	/* Allgemein */
	.header-box, .content-box, .footer-box {
		padding-left: 100px;
		padding-right: 100px;
	}
		.header-inline, .content-inline, .footer-inline {
			/*max-width: 1720px;*/
			margin: 0;
		}
}


/* ############################################################
	BILDER/ICONS
############################################################ */

/* Logo */
.logo-link {
	display: inline-block;
	width: 83px;
	height: auto;
	margin-top: 10px;
}
@media (min-width: 1020px) {
	.logo-link {
		width: 130px;
		margin-top: 39px;
	}
}


/* Button Scroll Top */
.btn-scrolldown,
.btn-scrollup {
	position: absolute;
	display: inline-block;
	top: 7px;
	right: 0;
	width: 46px;
	height: 24px;
}
.btn-scrollup {
	z-index: 2;
}
.btn-scrolldown {
	right: auto;
	top: 20px;
	left: 5px;
	width: 30px;
	height: 16px;
}
.image-line-1.slider-text .btn-scrolldown {
	top: 130px;
}
	.btn-scrolldown 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-scrollup svg {
		fill: var(--main-color-2);
	}
	.btn-scrolldown: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-scrolldown {
		left: 25px;
	}
}
@media (min-width: 1020px) {
	.btn-scrolldown {
		top: 43px;
		left: 25px;
		width: 46px;
		height: 24px;
	}
	.image-line-1.slider-text .btn-scrolldown {
		top: 43px;
	}
	.btn-scrollup {
		right: auto;
		left: 0;
	}
}


/* Socialmedia */
a.link-socialmedia {
	position: relative;
	display: inline-block;
	width: 36px;
	height: 36px;
}
a.icon-instagram {
	margin-left: 25px;
}
	a.link-socialmedia svg {
		display: block;
		width: 36px;
		height: 36px;
		fill: var(--main-color-2);
		-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;
	}
	a.link-socialmedia:hover svg {
		fill: var(--main-color-1);
	}


/* ############################################################
	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 {
	font-size: 1.875rem; /* 30px */
	line-height: 2.0625rem; /* 33px */
	color: var(--main-color-2);
}
	/* Level 1 */
	nav ul.nav-mainmenu li {
		display: block;
	}
	nav ul.nav-mainmenu li:not(:first-child) {
		margin-top: 10px;
	}
	
	/* Hyperlink */
	nav ul.nav-mainmenu li a {
		color: var(--main-color-2);
	}
	nav ul.nav-mainmenu li a:hover,
	nav ul.nav-mainmenu li.active a {
		color: var(--main-color-1);
	}
@media (min-width: 1020px) {
	header ul.nav-mainmenu {
		margin-top: 87px;
		font-size: 1.25rem; /* 20px */
		line-height: 1.5625rem; /* 25px */
		color: var(--main-color-3);
	}
		/* Level 1 */
		header ul.nav-mainmenu li {
			display: inline-block;
		}
		header ul.nav-mainmenu li:not(:first-child) {
			margin-left: 15px;
		}
		
		/* Hyperlink */
		header ul.nav-mainmenu li a {
			color: var(--main-color-3);
		}
		header ul.nav-mainmenu li a:hover,
		header ul.nav-mainmenu li.active a {
			color: var(--main-color-1);
		}
}
@media (min-width: 1440px) {
	header ul.nav-mainmenu {
		font-size: 1.375rem; /* 22px */
		line-height: 1.75rem; /* 28px */
	}
		header ul.nav-mainmenu li:not(:first-child) {
			margin-left: 25px;
		}
}


/*
2nd-Menu
*/
nav ul.nav-secondmenu {
	font-size: 1rem; /* 16px */
	line-height: 1.5625rem; /* 25px */
}
	/* Level 1 */
	nav ul.nav-secondmenu li {
		display: block;
	}
	nav ul.nav-secondmenu li:first-child {
		display: none;
	}
	nav ul.nav-secondmenu li:nth-child(3) {
		margin-top: 5px;
	}
		/* Hyperlink */
		nav ul.nav-secondmenu li a {
			color: var(--main-color-2);
		}
		nav ul.nav-secondmenu li a:hover,
		nav ul.nav-secondmenu li.active a {
			color: var(--main-color-1);
		}


/*
Kontakt-Navigation
*/
nav ul.nav-kontakt {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
	color: var(--main-color-2);
}
	/* Level 1 */
	nav ul.nav-kontakt li {
		display: inline-block;
	}
	nav ul.nav-kontakt li:last-child {
		margin-left: 5px;
	}
	
	/* Hyperlink */
	nav ul.nav-kontakt li a {
		color: var(--main-color-2);
	}
	nav ul.nav-kontakt li a:hover,
	nav ul.nav-kontakt li.active a {
		color: var(--main-color-1);
	}
@media (min-width: 1020px) {
	header ul.nav-kontakt {
		margin-top: 27px;
		font-size: 0.9375rem; /* 15px */
		line-height: 1.375rem; /* 22px */
		color: var(--main-color-3);
	}
		/* Level 1 */
		header ul.nav-kontakt li {
			display: inline-block;
		}
		header ul.nav-kontakt li:last-child {
			margin-left: 5px;
		}
		
		/* Hyperlink */
		header ul.nav-kontakt li a {
			color: var(--main-color-3);
		}
		header ul.nav-kontakt li a:hover,
		header ul.nav-kontakt li.active a {
			color: var(--main-color-1);
		}
}

