/*-------------------------------------------------------------------------------------

  Copyright (c) 2014 Pixelzauber GmbH, Switzerland
  CSS definition for basic layout

-------------------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');

/* Start CSS Reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
select,
input,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
}
html {
	height: 100%;
	font-size: 16px;
  	line-height: 23px;
}
body {
	height: 100%;
    line-height: 1;
}
body ol,body ul {
    list-style: none;
    margin-bottom: 0;
}
q {
    quotes: none;
}
q:before, q:after {
    content: '';
    content: none;
}
a, a:active, a:focus,
button, button:focus, button:active {
    outline: none;
    outline: 0;
}
input::-moz-focus-inner {
    border: 0;
}
ul,
ol {
    padding: 0;
    margin-left: 25px;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
	margin-bottom: 8px;
}

/*-----------------------------------------------
 *  Layout
 *---------------------------------------------*/
header,
section,
nav,
article,
main,
address,
footer {
	position: relative;
	float:left;
	width:100%;
}

.inner {
	position: relative;
    margin: 0 auto;
    width: calc(100% - 40px);
	max-width: 1178px;
	height:auto;
}

.mobile { display:none; }
.desktop { display:block; }
.center { text-align:center; }
.right { text-align: right; }
.white { background-color:rgb(255,255,255); }
.black { background-color: rgb(0,0,0); }
.grey, .gray { background-color:rgb(241,241,241); }
.column-left, .spalte-links { float: left; width: calc(100% - 400px); }
.column-right, .spalte-rechts { float: right; width: 378px; }
.goTop { cursor:pointer; }
.goMore { cursor:pointer; }

.block,
.block_05,
.block_10,
.block_15,
.block_20,
.block_25,
.block_30,
.block_33,
.block_35,
.block_40,
.block_45,
.block_50,
.block_55,
.block_60,
.block_65,
.block_66,
.block_70,
.block_75,
.block_80,
.block_85,
.block_90,
.block_95,
.block_100 {
	float: left;
	height:auto;
}
.block {
	display: flex;
	flex-wrap: wrap;
	float: left;
	margin:0 -11px;
	width: calc(100% + 22px);
}
.block > .block {
	margin: 0 11px;
	display: block;
}
.block.border {
	margin: 11px;
}
.block.half {
	width:calc(50% - 22px);
}
.block.third {
	width:calc(33.3333% - 22px);
}
.block.two-third {
	width:calc(66.6666% - 22px);
}
.block.quarter {
	width:calc(25% - 22px);
}
.block.three-quarter {
	width:calc(75% - 22px);
}
.block.fifth {
	width:calc(20% - 22px);
}
.block.two-fifth {
	width:calc(40% - 22px);
}
.block.three-fifth {
	width:calc(60% - 22px);
}
.block.four-fifth {
	width:calc(80% - 22px);
}
.block.full {
	width:calc(100% - 22px);
}
.block.addr {
	order: 2;
	margin:0 11px;
	width:calc(40% - 22px);
}
.block.form {
	order:1;
	margin:0 11px;
	width:calc(60% - 22px);
}
.block_05 { width:5%; }
.block_10 { width:10%; }
.block_15 { width:15%; }
.block_20 { width:20%; }
.block_25 { width:25%; }
.block_30 { width:30%; }
.block_33 { width:33.3333%; }
.block_35 { width:35%; }
.block_40 { width:40%; }
.block_45 { width:45%; }
.block_50 { width:50%; }
.block_55 { width:55%; }
.block_60 { width:60%; }
.block_65 { width:65%; }
.block_66 { width:66.6666%; }
.block_70 { width:70%; }
.block_75 { width:75%; }
.block_80 { width:80%; }
.block_85 { width:85%; }
.block_90 { width:90%; }
.block_95 { width:95%; }
.block_100 { width:100%; }

#copyright {
	position: fixed;
	bottom: 15px;
	right: 15px;
	width: 20px;
	height: 500px;
	z-index:3;
}
#copyright .rotate {
	display: block;
    width: 500px;
	height:20px;
	transform:rotate(90deg) translatex(-20px);
	transform-origin: left bottom;
}

#copyright .rotate .rotate180 {
    transform: rotate(180deg);
}

#background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: transparent url(../images/image_000000.jpg) no-repeat;
	background-size: cover;
	z-index:1;
}

header {
	position: fixed;
	top: 0;
	left: 0;
	padding: 0 0 0 30px;
	width: 300px;
	height: 100%;
	background: rgb(168,180,0);
	background: linear-gradient(180deg, rgb(168,180,0) 10%, rgb(151, 161, 0) 100%);
	-webkit-box-shadow: -1px 0px 8px 2px rgba(0,0,0,0.75);
	-moz-box-shadow:    -1px 0px 8px 2px rgba(0,0,0,0.75);
	box-shadow:         -1px 0px 8px 2px rgba(0,0,0,0.75);
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	z-index:100;
}

main {
	position: relative;
	margin: 0 0 0 300px;
	padding: 100px 40px 80px 40px;
	width: 660px;
	height: auto;
	min-height: 100vh;
	background-color: rgba(255,255,255,0.8);
	-webkit-box-shadow: -1px 0px 8px 2px rgba(0,0,0,0.5);
	-moz-box-shadow:    -1px 0px 8px 2px rgba(0,0,0,0.5);
	box-shadow:         -1px 0px 8px 2px rgba(0,0,0,0.5);
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	z-index:50;
}
.home main {
	padding-top: 160px;
}

footer {
	position: fixed;
	bottom: 0;
	left: 0;
	padding: 0 20px 10px 30px;
	width: 300px;
	height: auto;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	z-index:110;
}

.logo {
	position:relative;
	float:left;
	margin: 30px 30px 0 0;
	padding: 0;
	width: calc(100% - 30px);
	z-index:110;
}
.logo img {
	position:relative;
	float:left;
	width:100%;
}

.navigation {
	float: left;
	margin-top: 100px;
	width: 100%;
}

.headline {
	position: absolute;
	padding: 10px 25px;
	bottom: 20px;
	left: 20px;
	width: calc(100% - 40px);
	border-radius: 3px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	background-color: rgba(255,255,255,1);
	-webkit-box-shadow: 0 0 6px 0 rgba(0,0,0,0.1);
	-moz-box-shadow:    0 0 6px 0 rgba(0,0,0,0.1);
	box-shadow:         0 0 6px 0 rgba(0,0,0,0.1);

}

#navMobile {
    position:fixed;
    right: -100%;
	top:0;
	width:100%;
	height:100%;
	min-height:100%;
	background:rgb(255,255,255);
	z-index:90;
    -webkit-transition: all 0.3s ease-in-out;
    -moz-transition: all 0.3s ease-in-out;
    -ms-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    overflow: none;
    overflow-x: hidden;
    overflow-y: auto;
}
#navMobile.open {
    right:0;
}

#goUp {
	display:none;
	position:fixed;
	bottom:44px;
	right:0;
	height:40px;
	width:40px;
	z-index:100;
	cursor:pointer;
	border-radius: 3px;
	background-image: url('../images/icon_up.svg'),linear-gradient(-45deg,#c60022,#f19700);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px auto, auto;
}
#overlay {
	display:none;
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	background:rgba(255,255,255,0.8);
	z-index:100000;
}
#react-cookie-banner {
	position:fixed;
	padding: 30px;
	bottom: 0;
	left: 0;
	right: 0;
	height: 20px;
	background: rgb(231,120,21);
	z-index:100000;
}

/* Standard Images */
.image-wrapper,
.image-wrapper-left,
.image-wrapper-right,
.image-wrapper-big {
	float:right;
	margin: 0 0 10px 30px;
	width:40%;
	max-width:280px;
	height:auto;
}
.image-wrapper-left {
	float:left;
	margin: 4px 30px 10px 0;
}
.image-wrapper-big {
	float:left;
	margin: 4px 0 0 0;
	width:100%;
	max-width: inherit;
}
.image-wrapper-right {
	float:right;
	margin: 4px 0 10px 30px;
}
.image-wrapper img,
.image-wrapper-left img,
.image-wrapper-right img,
.image-wrapper-big img {
	float: left;
	width:100%;
	padding: 0;
	margin-bottom: 20px;
}


/* Images */
.imgFrame,
.imageFrame {
	display: inline-block;
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	background-color:rgba(0,0,0,0.05);
	background-position:center;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
}
.imgFrame::before,
.imageFrame::before {
	content: "";
	display: block;
	padding-top: 70%;
}


/* Video */
.responsive-video {
	position: relative;
	margin-top:0px;
	margin-bottom:20px;
	padding-bottom: 56.25%;
	padding-top: 0px;
	width:100%;
	height: 0;
	overflow: hidden;
}
.responsive-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


/*-----------------------------------------------
 *  Text Basics
 *---------------------------------------------*/
body {
	font-family: 'Ubuntu', Arial, Helvetica, sans-serif;
	color: rgb(51,51,51);
	font-size: 17px;
	font-weight:300;
	text-align: left;
	-webkit-text-size-adjust:none;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	font-family: 'Ubuntu', Arial, Helvetica, sans-serif;
	margin: 20px 0 10px 0;
	color: rgb(150,161,0);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.1;
}
h1, .h1 {
	margin-bottom: 20px;
}
h2, .h2 {
	font-size: 22px;
}
h3, .h3 {
	font-size: 19px;
}
h4, .h4 {
	font-size: 17px;
}
h5, .h5 {
	font-weight: 400;
	font-size: 17px;
}
h6, .h6 {
	font-weight: 400;
	font-size: 1rem
}
.first {
	margin-top: 0;
}
.center {
	text-align:center;
}

p {
	line-height: 1.4;
	margin-bottom: 8px;

	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	hyphens: auto;
}

a {
	color: rgb(133, 143, 1);
	text-decoration: none;
}
a:hover {
	color: rgb(0,0,0);
	text-decoration: none;
}
a[name], a[name]:hover {
	color: rgb(51,51,51);
	text-decoration: none;
}

em {
	font-style: italic;
}

pre {
	padding: 10px 19px;
	margin: 18px 0 12px 0;
	line-height: 20px;
	width: auto;
	color: rgb(0,0,160);

	border: 1px solid rgb(200,200,200);
	background-color: rgb(240,240,240);

	overflow: auto;
	overflow-Y:hidden;
}

sup {
	line-height: 1.0em;
}


ol, ul {
	margin:0;
	padding: 0 0 15px 0;
	width:100%;
}
ul ul, ol ol {
	margin:0;
	padding: 0;
	width:100%;
}
ul li {
	list-style:none;
	text-align:left;
	line-height: 1.5em;
    margin: 0 0 0 18px;
}
ul li::before {
	float:left;
	content: "\25CF";
	color: rgb(133, 143, 1);
	margin:0 0 -10px -14px;
	display:block;
	font-size:0.7em;
}
ol li {
	margin-left: 30px;
	line-height: 1.5em;
    list-style: decimal;
}
@media print {
	ol {
		margin: 0 0 0 24px;
		padding:0;
		list-style: decimal;
	}
	ul {
		margin: 0 0 0 17px;
		padding:0;
		list-style: disc;
	}
	ol li,
	ul li {
		margin: 0;
		padding:0;
		background:none;
	}
}

b, strong {
	font-weight:500;
}

hr {
	padding:0 0 20px 0;
	margin: 20px 0 0 0;
    height: 0;
    border: 0;
	border-top: 1px dotted rgb(0,0,0);
}

table {
	margin-bottom: 10px;
	font-family: 'Ubuntu', Arial, Helvetica, sans-serif;
	font-size: 1.0em;
}
table th {
	border-bottom: 1px dotted rgb(0,0,0);
	font-weight: 400;
	padding: 2px 0;
	text-align:left;
}
table td {
	padding: 4px 0;
}
table.none, table.none td {
	padding: 0px;
	margin-bottom: 0px;
}
table.zebra thead tr {
	background-color: rgb(233,233,233);
}
table.zebra tbody tr:nth-child(even) {
	background-color: rgb(243,243,243);
}

.column {
	column-count: 2;
	column-gap: 30px;
}

/*-----------------------------------------------
 *  Text Customising
 *---------------------------------------------*/
.content a.pdf,
.content a:hover.pdf {
	background: transparent url('../images/icon_files_pdf.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.doc,
.content a:hover.doc,
.content a.docx,
.content a:hover.docx {
	background: transparent url('../images/icon_files_doc.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.xls,
.content a:hover.xls,
.content a.xlsx,
.content a:hover.xlsx {
	background: transparent url('../images/icon_files_xls.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.ppt,
.content a:hover.ppt,
.content a.pptx,
.content a:hover.pptx {
	background: transparent url('../images/icon_files_ppt.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.jpg,
.content a:hover.jpg {
	background: transparent url('../images/icon_files_img.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.zip,
.content a:hover.zip {
	background: transparent url('../images/icon_files_zip.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.mp4,
.content a:hover.mp4 {
	background: transparent url('../images/icon_files_mp4.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.xd,
.content a:hover.xd {
	background: transparent url('../images/icon_files_xd.svg') 0 3px no-repeat;
	background-size: 14px auto;
	padding-left: 20px;
	padding-right: 0;
}
.content a.none,
.content a:hover.none {
	background: none;
	padding-right: 0px;
	padding-left: 0px
}

.content a {
	font-weight:400;
}
.content a:hover {
	text-decoration:underline;
}

.home h1 {
	font-size: 27px;
	font-weight:300;
	color: rgb(51,51,51);
	line-height: 1.2;
}
.home p.teaser {
	margin: 20px 0 10px 0;
	color: rgb(150,161,0);
	font-size: 46px;
	font-weight: 300;
	line-height: 1.0;
}
.home p.teaser strong {
	color: rgb(133, 143, 1);
}
.home p.big {
	line-height: 1.3;
	font-size: 20px;
}


p.button {
	padding:20px 0 30px 0;
}
p.button a,
p.button a.external {
	padding: 10px 30px;
	cursor: pointer;
	color: rgb(255,255,255);
	background:none;
	background-color: rgb(150,161,0);
	border: 1px solid rgb(150,161,0);
	border-radius: 3px;
	box-shadow: 0 2px 3px 0 rgba(0,0,0,.1);
	transition: all 0.2s ease;

}
p.button a:hover,
p.button a.external:hover {
	color: rgb(255,255,255) !important;
	border: 1px solid rgb(51,51,51);
	background-color: rgb(51,51,51);
	text-decoration: none;
}

blockquote,
.expandable {
	float:left;
	position: relative;
	padding-left: 26px;
	margin-bottom:22px;
	width:100%;
	height:auto;
	font-style: italic;

	background-image: url(../images/icon_blockquote.svg);
	background-repeat: no-repeat;
	background-size: 20px auto;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}


#map {
	height: 500px;
	background: rgb(242,242,242);
}


footer .legal {
	float: left;
	margin-top: 15px;
	width: 100%;
	font-size: 13px;
}
footer,
footer p,
footer h1,
footer h2,
footer h3,
footer h4,
footer a {
	color: rgba(255,255,255,1);
}
footer a:hover {
	color: rgb(0,0,0);
}

#copyright {
	font-size:0.95em;
	color: rgba(128,128,128,0.3);
}
#copyright a {
	color: rgba(128,128,128,0.3);
}
#copyright a:hover {
	color: rgb(150,161,0);
}

#react-cookie-banner {
	font-size: 1.1em;
	font-weight: 400;
	color: rgb(255,255,255);
}
#react-cookie-banner a {
	color: rgb(255,255,255);
	text-decoration: underline;
}
#react-cookie-banner a:hover {
	color: rgb(200,200,200);
}
#react-cookie-banner .button {
	float: right;
	margin: 0;
	margin-top: -20px;
}
#react-cookie-banner .button a {
	text-decoration: none;
}


/*-----------------------------------------------
 *  Navigation
 *---------------------------------------------*/

/*  Navigation Desktop  */
.navigation ul {
	position: relative;
	float: left;
	margin: 0;
	padding: 0 0 20px 0;
	width: 100%;
	height: auto;
	font-size: 20px;
	line-height: 1.0;
	font-weight:400;
    list-style: none;
	outline: none;
	z-index:30;
}
.navigation ul li {
	float: left;
	margin: 0;
	padding: 0;
	width: 100%;
	white-space: nowrap;
    list-style: none;
}
.navigation ul li::before {
	content: none;
}

.navigation ul li.distance {
	margin-top:20px;
}
.navigation a {
	color: rgb(255,255,255);
}
.navigation a:hover {
	color: rgb(80,80,80);
}
.navigation ul li.active {
	font-weight:500;
}
.navigation ul li ul {
	margin-left:5%;
	margin-bottom:8px;
	padding:0;
	width: 95%;
	font-size: 0.80em;
	font-weight: 300;
	line-height: 1.0em;
}



/*  Navigation Mobile  */
.navMobileIcon {
	display:none;
	position:absolute;
	overflow: hidden;
	margin: 0;
	padding: 0;
	top:22px;
	right:20px;
	width: 30px;
	height: 30px;
	font-size: 0;
	text-indent: -9999px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
	border: none;
	cursor: pointer;
	background-color:transparent;
    outline: none;
	outline: 0;

	-webkit-transition: background 300ms;
	-moz-transition: background 300ms;
	-o-transition: background 300ms;
	transition: background 300ms;

	background-color:transparent;
}
.navMobileIcon:hover,
.navMobileIcon:focus {
	background-color:transparent;
	outline: none;
}
.navMobileIcon span {
	display: block;
	position: absolute;
	top:14px;
	left:0;
	right:0;
	height: 2px;
	background: rgb(255,255,255);
}
.navMobileIcon span:before,
.navMobileIcon span:after {
	position: absolute;
	display: block;
	left: 0;
	width: 100%;
	height:2px;
	background: rgb(255,255,255);
	content: "";
}
.navMobileIcon span:before {
	top: -8px;
}
.navMobileIcon span:after {
	bottom: -8px;
}

.navMobileIconX span { transition: background 0s 0.3s;}
.navMobileIconX span:before, .navMobileIconX span:after { transition-duration: 0.3s, 0.3s; transition-delay: 0.3s, 0s;}
.navMobileIconX span:before { transition-property: top, transform;}
.navMobileIconX span:after { transition-property: bottom, transform;}

.navMobileIconX.is-active span { background: none;}
.navMobileIconX.is-active span:before { top: 0; transform: rotate(45deg);}
.navMobileIconX.is-active span:after { bottom: 0; transform: rotate(-45deg);}
.navMobileIconX.is-active span:before, .navMobileIconX.is-active span:after { transition-delay: 0s, 0.3s;}

#navMobile ul {
    position: relative;
    float: left;
	margin: 100px 0 0 0;
	padding:0;
	width:100%;
}
#navMobile ul li {
    position: relative;
    float: left;
	margin:0;
	padding:0;
	width:100%;
    list-style: none;
	border-bottom:1px solid rgb(222,222,222);

	background-image:none;
}
#navMobile ul li::before {
	content: none;
}
#navMobile ul li a {
    position: relative;
    float: left;
	margin:0;
	padding: 12px 20px;
	width:calc(100% - 40px);
	display:block;
	font-size: 1.3em;
	text-decoration:none;
	color: rgb(0,0,0);
	font-weight:400;
}

/* Level 2 */
#navMobile ul li ul {
	padding:0;
	margin:0 0 10px 0;
	width:100%;
	border:none;
	display:none;
}
#navMobile ul li ul li {
	padding:0;
	border-bottom:none;
}
#navMobile ul li ul li a {
    position: relative;
    float: left;
	margin:0;
	padding: 4px 0 4px 35px;
	width:calc(100% - 35px);
	display:block;
	text-transform: none;
	font-size: 1.1em;
	color: rgb(0,0,0);
}

/* Level 3 */
#navMobile ul li ul li ul li a {
	padding: 5px 0 5px 50px;
	font-size: 1.0em;
}

#navMobile a.starter_active,
#navMobile a.active {
	color: rgb(150,161,0);
}

#navMobile ul li .openSubmenu {
    position:absolute;
    top:0;
    right:0;
	margin:0;
    padding:0;
	width:80px;
	height:50px;
    text-align : center;
    cursor: pointer;
}

#navMobile ul li.level-1 > ul.menu {
    display : none;
}
#navMobile ul li.level-1.starter_active > ul.menu,
#navMobile ul li.level-2 > ul.menu {
    display : block;
}
#navMobile ul li.level-1 .plus {
	background: transparent url('../images/icon_nav_plus.svg') calc(100% - 20px) center no-repeat;
	background-size: 20px auto;
}
#navMobile ul li.level-1 .minus {
	background: transparent url('../images/icon_nav_minus.svg') calc(100% - 20px) center no-repeat;
	background-size: 20px auto;
}


/*-----------------------------------------------
 *  Formular
 *---------------------------------------------*/
form,
fieldset {
	float:left;
	margin: 0;
	padding: 0;
	width: 100%;
}
fieldset {
	margin: 0 0 10px 0;
	width: 100%;
}
label,
legend {
	float: left;
	margin: 0 11px;
	padding-top: 14px;
	width: calc(30% - 22px);
}
.group {
	float: left;
	margin: 0;
	padding: 10px 0;
	width: 70%;
}
/*
fieldset .group {
	float: right;
	margin: 0 15px;
	width: calc(70% - 30px);
}
fieldset .group label {
	margin: 0 0 5px 0;
	width: 100%;
}
*/
.required {
	color: rgb(190,0,0);
}
select,
input,
textarea {
	float:left;
	margin: 0 11px 5px 11px;
	padding: 10px 11px;
	width: calc(70% - 22px);
	height:46px;
	border-radius: 3px;
	border: 1px solid rgb(190,190,190);
	background-color: rgb(255,255,255);
	outline: none;

	font-family: 'Ubuntu', Arial, Helvetica, sans-serif;
	font-weight:400;
	font-size: 1.0rem;

	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
input.plz {
	margin-right:5px;
	width:100px;
}
input.ort {
	margin-left:0;
	width:calc(100% - 127px);
}
select {
	padding: 10px 50px 10px 7px;
	background-image: url('../images/icon_down.svg');
	background-position: calc(100% - 11px) center;
	background-repeat: no-repeat;
	background-size: 22px auto;
	cursor: pointer;
}
select::-ms-expand {
    display: none;
}
select:required:invalid {
	color: rgb(179,179,179);
}
select option[value=""][disabled] {
 display: none;
}
select option,
select:required:invalid option {
 color: rgb(51,51,51);
}
textarea {
	padding-top:10px;
	height:124px;
}
input[type=text],
input[type=number],
input[type=url],
input[type=tel],
input[type=email],
input[type=password],
select,
textarea {
	-webkit-padding-before: 2px;
	-webkit-padding-after: 2px;
}

::-webkit-input-placeholder {
   color: rgb(179,179,179);
}
:-moz-placeholder {
   color: rgb(179,179,179);
   opacity:  1;
}
::-moz-placeholder {
   color: rgb(179,179,179);
   opacity:  1;
}
:-ms-input-placeholder {
   color: rgb(179,179,179) !important;
}
::-ms-input-placeholder {
   color: rgb(179,179,179);
}
::placeholder {
   color: rgb(179,179,179);
}
select.placeholder {
   color: rgb(179,179,179);
}

input[type=submit],
input[type=button],
input[type=reset] {
	float: left;
	margin-top: 10px;
	cursor: pointer;
	color: rgb(255,255,255);
	width: calc(50% - 22px);

	border: none;
	border-radius: 3px;
	background-color: rgb(150,161,0);
	box-shadow: 0 2px 3px 0 rgba(0,0,0,.1);
	transition: all 0.2s ease;
}
input[type=submit]:hover,
input[type=button]:hover,
input[type=reset]:hover {
	background-color: rgb(51,51,51);
}

.container {
	display: block;
	position: relative;
	margin: 4px 11px;
	padding: 0 0 0 35px;
	width: calc(100% - 22px);
	min-height: 24px;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	line-height: 1.3;
}
.group.rail .container {
	width: auto;
	margin-right: 33px;
}
.container input {
	position: absolute;
	opacity: 0;
	margin: 0;
	padding: 0;
	cursor: pointer;
	border: none;
	width: 0;
	height: 0;
}
.checkmark,
.radiomark {
	position: absolute;
	top: 0;
	left: 0;
	height: 20px;
	width: 20px;
	border: 1px solid rgb(190,190,190);
	background-color: rgb(255,255,255);
	border-radius: 3px;

}
.radiomark {
	border-radius: 50%;
}
.error .checkmark,
.error .radiomark {
	border: 1px solid rgb(190,0,0);
}

.checkmark:after,
.radiomark:after {
	content: "";
	position: absolute;
	display: none;
}
.container:hover input ~ .checkmark:after,
.container input:checked ~ .checkmark:after,
.container:hover input ~ .radiomark:after,
.container input:checked ~ .radiomark:after {
 	display: block;
}
.container:hover .checkmark:after {
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid rgb(222,222,222);
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.container .checkmark:after,
.container:hover input:checked ~ .checkmark:after {
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid rgb(0,0,0);
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.container:hover .radiomark:after {
	top: 5px;
	left: 5px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgb(222,222,222);
}
.container .radiomark:after,
.container:hover input:checked ~ .radiomark:after {
	top: 5px;
	left: 5px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgb(0,0,0);
}

form h1,
form h2,
form h3,
form p {
	/* Pflichtfeld */
	float: left;
	margin-left: 11px;
	margin-right: 11px;
	width: calc(100% - 22px);
}

.error {
	display:none;
	float: left;
	/*
	margin: 0;
	width: 100%;
	*/
	color: rgb(190,0,0);
}

/* Form stretched */
form.stretched label {
	display: none;
}

form.stretched select,
form.stretched input,
form.stretched textarea {
	margin: 0 11px 5px 11px;
	width: calc(100% - 22px);
}

form.stretched p {
	/* Pflichtfeld */
	float: left;
	margin: 11px;
	width: calc(100% - 22px);
}
form.stretched input.plz {
	margin-right:5px;
	width:100px;
}
form.stretched input.ort {
	margin-left:0;
	width:calc(100% - 127px);
}



.block.addition {
	margin-top: -10px;
	height: 0px;
	overflow: hidden;
}


/*-----------------------------------------------
 *  Search
 *---------------------------------------------*/
.navSearchIconX {
	position:absolute;
	overflow: hidden;
	margin: 0;
	padding: 0;
	top:38px;
	right:30px;
	width: 30px;
	height: 30px;
	font-size: 0;
	text-indent: -9999px;
	appearance: none;
	box-shadow: none;
	border-radius: none;
	border: none;
	cursor: pointer;

	-webkit-transition: background 300ms;
	-moz-transition: background 300ms;
	-o-transition: background 300ms;
	transition: background 300ms;

	background-color:transparent;
}
.navSearchIconX span {
	display: block;
	position: absolute;
	top:14px;
	left:0;
	right:0;
	height: 2px;
	background:none;
}
.navSearchIconX span:before,
.navSearchIconX span:after {
	position: absolute;
	display: block;
	left: 0;
	width: 100%;
	height:2px;
	background: rgb(255,255,255);
	content: "";
}
.navSearchIconX span:before { top: 0; transform: rotate(45deg);}
.navSearchIconX span:after { bottom: 0; transform: rotate(-45deg);}
.search form {
	margin:0;
	padding:8px;
	margin-left:calc(50% - 300px);
	width:584px;
	background:rgb(241,241,241);
	/*
	-webkit-box-shadow: inset 0px 0px 10px 0px rgba(0,0,0,0.75);
	-moz-box-shadow: inset 0px 0px 10px 0px rgba(0,0,0,0.75);
	box-shadow: inset 0px 0px 10px 0px rgba(0,0,0,0.75);
	*/
}
.search input {
	float:left;
	border: none;
	margin: 0;
	padding: 5px 10px;
	height: 44px !important;
	width:calc(100% - 44px);
	color: rgba(51,51,51,1);
	border:none;
	background:transparent;
}
.search input:focus {
	color: rgba(51,51,51,1);
}
.search input[type=submit] {
	float:left;
	margin: 0;
	padding:0;
	height: 44px !important;
	width: 44px;
	background: transparent url('../images/icon_search.svg') center no-repeat;
	background-size:25px auto;
	box-shadow: none;
}
.search input[type=submit]:hover {
	border:none;
}

.searchForm {
	float: left;
	margin-bottom: 15px;
	width:100%;
	height:auto;
}
.searchForm input {
	float:left;
	margin: 0;
	height:50px;
	width:66.6666%;
}
.searchForm input[type=submit] {
	float:left;
	margin: 0;
	height:50px;
	width:33.3333%;
}
.searchResult {
	float: left;
	margin-top:20px;
	margin-bottom:5px;
	width: 100%;
	cursor: pointer;
}
.searchResult h3, .searchResult p {
	margin: 0;
}
.searchResult p .resultPath {
	color: rgb(150,150,150);
}


/*-----------------------------------------------
 *  Loader
 *---------------------------------------------*/
.loader {
	position: relative;
	margin: 0 auto;
	top: 35%;
	width: 60px;
	height: 70px;
	text-align: center;
}
.loader > div {
	background-color: rgb(200,0,0);
	height: 100%;
	width: 6px;
	display: inline-block;
	-webkit-animation: loader 1.2s infinite ease-in-out;
	animation: loader 1.2s infinite ease-in-out;
}
.loader .rect2 {
	-webkit-animation-delay: -1.1s;
	animation-delay: -1.1s;
}
.loader .rect3 {
	-webkit-animation-delay: -1.0s;
	animation-delay: -1.0s;
}
.loader .rect4 {
	-webkit-animation-delay: -0.9s;
	animation-delay: -0.9s;
}
.loader .rect5 {
	-webkit-animation-delay: -0.8s;
	animation-delay: -0.8s;
}
@-webkit-keyframes loader {
	0%, 60%, 100% { -webkit-transform: scaleY(0.4) }
	30% { -webkit-transform: scaleY(1.0) }
}
@keyframes loader {
	0%, 60%, 100% {
		transform: scaleY(0.4);
		-webkit-transform: scaleY(0.4);
	}  30% {
		transform: scaleY(1.0);
		-webkit-transform: scaleY(1.0);
	}
}

/*-----------------------------------------------
 *  Module
 *---------------------------------------------*/
/*  news  */
.news {
	float: left;
	width: 100%;
	padding-bottom: 12px;
	margin-bottom: 15px;
	border-bottom: 1px dotted rgb(77,77,77);
}
.news:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
}




/*-----------------------------------------------
 *  Responsive
 *---------------------------------------------*/
@media only screen and (max-width: 980px) {

	#copyright {
		display:none;
	}
	header {
		width: 33.3333%;
	}
	main {
		margin-left: 33.3333%;
		width: 66.6666%;
	}

}
@media only screen and (max-width: 880px) {

	header,
	footer {
		padding-left: 20px;
	}
	footer .legal {
		font-size: 12px;
	}
	main {
		padding-left: 30px;
		padding-right: 30px;
	}
}
@media only screen and (max-width: 780px) {

	.mobile,
	.navMobileIcon {
		display:block;
	}
	.desktop,
	.navigation {
		display:none;
	}

	header {
		padding: 0;
		width: 100%;
		height: auto;
	}
	.logo {
		margin: 15px 20px 10px 20px;
		width: 60%;
		max-width: 200px;
	}

	main {
		float: left;
		margin: 0;
		padding: 100px 20px 40px 20px;
		width: 100%;
		min-height: 75vh;
	}

	footer {
		position: relative;
		float: left;
		margin: 0;
		padding: 20px;
		width: 100%;
		background-color: rgb(77,77,77);
		z-index: 20;

	}

	.headline {
		position: relative;
		margin-top: 40px;
		padding-left: 20px;
		padding-right: 20px;
		left: inherit;
		bottom: inherit;
		width: 100%;
		-webkit-box-sizing: border-box;
		-moz-box-sizing: border-box;
		box-sizing: border-box;
	}

	#goUp {
		margin-top:-160px;
	}


	/* Formulare */
	label,
	legend {
		margin: 5px 0 0 0;
		width:100%;
	}
	label {
		margin-bottom: 8px;
	}
	label.noCaption {
		width: calc(100% - 25px);
	}
	input, textarea, select {
		margin: 0 0 5px 0;
		font-size:1.1em;
		width:100% !important;
		height:inherit;
		padding:10px 3% !important;

	}
	input[type=submit], input[type=button], input[type=resete] {
		padding:15px 0;
		height:auto;
	}
	input[type=checkbox],
	input[type=radio] {
		padding: 0;
		width:auto !important;
	}
	.container,
	.group {
		margin: 0 0 5px 0;
		width: 100%;
	}
	form p {
		margin: 0 0 5px 0;
		width:100%;
	}

	.search input {
		width:calc(100% - 44px) !important;
	}
	.search input[type=submit] {
		width: 44px !important;
	}


	.block_05,
	.block_10,
	.block_15,
	.block_20,
	.block_25,
	.block_30,
	.block_33,
	.block_35,
	.block_40,
	.block_45,
	.block_50,
	.block_55,
	.block_60,
	.block_65,
	.block_66,
	.block_70,
	.block_75,
	.block_80,
	.block_85,
	.block_90,
	.block_95,
	.block_100 {
		margin: 0;
		width: 100%;
	}
	.block,
	.block.half,
	.block.third,
	.block.two-third,
	.block.quarter,
	.block.three-quarter,
	.block.fifth,
	.block.two-fifth,
	.block.three-fifth,
	.block.four-fifth,
	.block.full,
	.block.addr,
	.block.form {
		margin:0;
		width: 100%;
	}

	/* Texte */
	h1,
	.home h1 {
		font-size: 28px;
	}

	.column {
		column-count: 1;
		column-gap: 0;
	}

}


@media only screen and (max-height: 860px) {

	main,
	.home main {
		padding-top: 100px;
	}
	.navigation {
		margin-top: 20px;
	}
	.navigation ul li {
		line-height: 1.35;
	}
	.navigation ul li.distance {
		margin-top:10px;
	}
	footer .legal {
		margin-top: 10px;
	}
	.home h1 {
		line-height: 1;
	}
	.home p.big {
		line-height: 1.2;
	}
	.headline {
		position: relative;
		margin-top: 40px;
		padding-left: 20px;
		padding-right: 20px;
		left: inherit;
		bottom: inherit;
		width: 100%;
		-webkit-box-sizing: border-box;
		-moz-box-sizing: border-box;
		box-sizing: border-box;
	}

}