

/* ############################################################
	SCHRIFTEINBETTUNG
############################################################ */

/*
Quelle: Direktinstallation auf Server
*/

@font-face {
	font-family: "RosalesMedium";
	src: url('../Fonts/RosalesMedium/font.woff2') format('woff2'),
		url('../Fonts/RosalesMedium/font.woff') format('woff');
}
@font-face {
	font-family: "RosalesLight";
	src: url('../Fonts/RosalesLight/font.woff2') format('woff2'),
		url('../Fonts/RosalesLight/font.woff') format('woff');
}


/* ############################################################
	FARBKLIMA
###############################################################
	
	1 Türkis:			#8dbdc4 - rbga(141,189,196,1)
	2 Hell Grau:		#edeff0 - rbga(237,239,240,1)
	3 Dunkel Grün:		#0a4759 - rgba(10,71,89,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: #8dbdc4;
  --main-color-2: #edeff0;
  --main-color-3: #0a4759;
  --main-color-4: #fff;
  --main-color-4-71: rgba(255,255,255,0.71);
  --main-color-error: #eb4462;
  --main-color-successful: #4fa158;
  --gap: 10px;
}
@media (min-width: 760px) {
	:root {
	  --gap: 50px;
	}
}

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: "RosalesLight";
	font-weight: normal;
	font-style: normal;
	font-stretch: normal;
	font-size: 1.125rem; /* 18px */
	line-height: 1.5625rem; /* 25px */
	letter-spacing: 0;
	color: var(--main-color-3);
}
footer {
	color: var(--main-color-4);
}
*[class*="bg-color-3"] {
	color: var(--main-color-4);
}
@media (min-width: 1440px) {
	body {
		font-size: 1.25rem; /* 20px */
		line-height: 1.75rem; /* 28px */
	}
}


/* Schnitte */
i, em {
}
b, strong {
	font-family: "RosalesMedium";
	font-weight: 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: "RosalesLight";
	font-weight: normal;
	font-style: normal;
	font-stretch: normal;
	letter-spacing: 0;
	color: inherit;
}
h1, h2, h2.modultitel {
	margin-bottom: 30px;
	font-size: 2.25rem; /* 36px */
	line-height: 2.9375rem; /* 47px */
}
h2.small {
	margin-bottom: 42px;
	font-size: 1.875rem; /* 30px */
	line-height: 2rem; /* 32px */
}
	p + h2.small {
		margin-top: 37px;
	}
h3 {
	font-family: "RosalesMedium";
	font-size: 1.125rem; /* 18px */
	line-height: 1.5625rem; /* 25px */
}
.font-28 {
	font-size: 1.6875rem; /* 27px */
	line-height: 1.8125rem; /* 29px */
}
.font-14 {
	font-size: 0.875rem; /* 14px */
	line-height: 1.125rem; /* 18px */
}
@media (min-width: 760px) {
	h1, h2, h2.modultitel {
		margin-bottom: 37px;
		font-size: 2.75rem; /* 44px */
		line-height: 3.5625rem; /* 57px */
	}
}
@media (min-width: 1440px) {
	h1, h2, h2.modultitel {
		margin-bottom: 42px;
		font-size: 3.125rem; /* 50px */
		line-height: 4.0625rem; /* 65px */
	}
	h3 {
		font-size: 1.25rem; /* 20px */
		line-height: 1.75rem; /* 28px */
	}
	.font-28 {
		font-size: 1.875rem; /* 30px */
		line-height: 2rem; /* 32px */
	}
}


/* 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 {
	color: var(--main-color-3);
}
main a:hover {
	color: var(--main-color-1);
}
footer a {
	color: var(--main-color-4);
}
footer a:hover {
	color: var(--main-color-4-71);
}
*[class*="bg-color-3"] a {
	color: var(--main-color-4);
}
*[class*="bg-color-3"] a:hover {
	color: var(--main-color-4-71);
}


/* 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);
}
main a.link-box {
	margin-bottom: 12px;
}
footer a.link-box {
	border: 1px solid var(--main-color-4);
	color: var(--main-color-4);
}
footer a.link-box:hover {
	background-color: var(--main-color-4);
	color: var(--main-color-3);
}


/* 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: 122px;
	background-color: transparent;
	-o-transition: background 0.15s ease;
	-ms-transition: background 0.15s ease;
	-moz-transition: background 0.15s ease;
	-webkit-transition: background 0.15s ease;
	transition: background 0.15s ease;
}
	.logo-box {
		display: inline-block;
		width: 200px;
		-o-transition: all 0.2s ease;
		-ms-transition: all 0.2s ease;
		-moz-transition: all 0.2s ease;
		-webkit-transition: all 0.2s ease;
		transition: all 0.2s ease;
	}
	.nav-box {
		display: inline-block;
		width: calc(100% - 200px);
		-o-transition: all 0.2s ease;
		-ms-transition: all 0.2s ease;
		-moz-transition: all 0.2s ease;
		-webkit-transition: all 0.2s ease;
		transition: all 0.2s ease;
	}
	nav, nav.open {
		-o-transition: top 0.6s ease;
		-ms-transition: top 0.6s ease;
		-moz-transition: top 0.6s ease;
		-webkit-transition: top 0.6s ease;
		transition: top 0.6s ease;
	}
	nav {
		opacity: 0;
		z-index: 9;
		position: fixed;
		top: -100vh;
		left: 0;
		width: 100%;
		height: 100vh;
		height: calc(var(--nav-height, 1vh) * 100);
		background-color: var(--main-color-4);
	}
	nav.open {
		top: 0;
	}
		.nav-line-1, .nav-line-2, .nav-line-3 {
			position: absolute;
			left: 0;
			width: 100%;
		}
		.nav-line-1 {
			top: 200px;
		}
		.nav-line-2 {
			bottom: 89px;
		}
		.nav-line-3 {
			bottom: 0;
			height: 64px;
		}

/* Inhalt */
main {
	/*padding-top: 122px;*/
}

/* 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: 300px;
	}
}
@media (min-width: 1020px) {
	/* Kopfzeile */
	header {
		height: 243px;
	}
		.logo-box {
			width: 588px;
		}
		.nav-box {
			width: calc(100% - 588px);
		}
			.nav-line-1 {
				top: 430px;
			}
			.nav-line-3 {
				height: 111px;
			}
	
	/* 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;
		}
}


/* ############################################################
	BILDER/ICONS
############################################################ */

/* Logo (Home) */
.logo-link svg {
	fill: var(--main-color-4);
	-o-transition: fill 0.2s ease;
	-ms-transition: fill 0.2s ease;
	-moz-transition: fill 0.2s ease;
	-webkit-transition: fill 0.2s ease;
	transition: fill 0.2s ease;
}
.logo-link.open svg {
	fill: var(--main-color-3);
}
.logo-link:hover svg {
	fill: var(--main-color-1);
}
@media (min-width: 1280px) {
	.logo-link.open svg {
		fill: var(--main-color-4);
	}
}

/* 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: auto;
	bottom: 30px;
	left: 5px;
	width: 30px;
	height: 16px;
}
	.btn-scrolldown svg,
	.btn-scrollup svg {
		fill: var(--main-color-4);
		-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-scrolldown:hover svg,
	.btn-scrollup:hover svg {
		fill: var(--main-color-4-71);
	}
	.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 {
		bottom: 103px;
	}
}
@media (min-width: 1020px) {
	.btn-scrolldown {
		bottom: 103px;
		left: 0;
		width: 46px;
		height: 24px;
	}
	.btn-scrollup {
		right: auto;
		left: 0;
	}
}


/* Socialmedia */
a.link-socialmedia {
	position: relative;
	display: inline-block;
	width: 32px;
	height: 32px;
}
/*a.icon-linkedin {
	margin-left: 13px;
}*/
	a.link-socialmedia svg {
		display: block;
		width: 32px;
		height: 32px;
		fill: var(--main-color-4);
		-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-4-71);
	}
	nav a.link-socialmedia svg {
		fill: var(--main-color-3);
	}
	nav 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 {
	/*opacity: 0;*/
	/*font-size: 1.75rem; /* 28px */
	/*line-height: 1.75rem; /* 28px */
	font-size: 2.25rem; /* 36px */
	line-height: 2.25rem; /* 36px */
	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-3);
	}
	nav ul.nav-mainmenu li a:hover,
	nav ul.nav-mainmenu li.active a {
		color: var(--main-color-1);
	}
@media (min-width: 760px) {
	nav ul.nav-mainmenu {
		font-size: 2.75rem; /* 44px */
		line-height: 2.75rem; /* 44px */
	}
}
@media (min-width: 1280px) {
	header ul.nav-mainmenu {
		margin-top: 120px;
		font-size: 1.5rem; /* 24px */
		line-height: 2rem; /* 32px */
		color: var(--main-color-4);
	}
		/* Level 1 */
		header ul.nav-mainmenu li {
			display: inline-block;
		}
		header ul.nav-mainmenu li:not(:first-child) {
			margin-left: 25px;
		}
		
		/* Hyperlink */
		header ul.nav-mainmenu li a {
			color: var(--main-color-4);
		}
		header ul.nav-mainmenu li a:hover,
		header ul.nav-mainmenu li.active a {
			color: var(--main-color-4-71);
		}
}
@media (min-width: 1500px) {
	/* Level 1 */
	header ul.nav-mainmenu li:not(:first-child) {
		margin-left: 25px;
	}
}


/*
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-3);
		}
		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;
		}
}

