/* Reset CSS*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
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;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* Main rules */
body{
	font-family: 'Open Sans', sans-serif;
	font-size:18px;
}

b{
	font-weight:bold;
}
h1, h2, h3, h4, h5{
	font-weight: bold;
}
h1{
	font-size: 1.8em;
	margin: 20px 0;
}
h2{
	font-size: 1.3em;
	margin: 17px 0;
	text-transform: uppercase;
}
h3{
	font-size:1.1em;
	font-weight:bold;
	margin:15px 0;
}
p{
	line-height: 1.2;
	text-align:justify;
	margin-bottom:15px;
}
.clearfix::after {
	clear:both;
	content:"";
	display:block;
	height:0;
	visibility:hidden
}
/*html {
	 scroll-behavior: smooth; 
}*/

.fl{
	float:left;
}
.img-intext{
	padding:0 15px 15px 0;
}

.tc{
	text-align: center;
}
.hl{
	color:#4a4a4a;
}
.text-small{
	font-size:0.8em;
}
.mb{
	margin:50px 0;
}

.main-center{
	margin:0 auto;
	width:100%;
	max-width:1280px;
	box-sizing:border-box;
	padding:0 20px;
}


.main-list{
	list-style:disc;
}
.main-list li{
	padding:10px 0;
}


header{
	padding:25px 25px 0 25px;
	display:flex;
	position:relative;
}
header .logo-container{
	width:200px;
}
header .logo-container a{
	display:block;
}
header .logo-container a img{
	display:block;
	width:100%;
	height:auto;
	padding:20px 0;
}
header .menu-container{
	width:calc(100% - 200px);
	position:relative;
}
header .menu-container > ul{
	position:absolute;
	bottom:0;
	right:0;
}
header .menu-container > ul > li{
	position:relative;
}
header .menu-container li{
	display:inline-block;
	padding:15px;
	font-size: 1.1em;
}

header .menu-container a,
header .menu-container span{
	text-decoration:none;
	color:#333;
	font-weight:bold;
	cursor:pointer;
}
header .menu-container li:hover > a,
header .menu-container li:hover > span,
header .menu-container li.open > a,
header .menu-container li.open > span{
	color:#4a4a4a;
}

header .menu-container > ul > li > ul{
	display:none;
}
header .menu-container > ul > li.open > ul{
	display:block;
	position:absolute;
	top:100%;
	left:0;
	background-color:#fff;
	font-size:0.8em;
}

header .menu-container .chevron {
	display: inline-block;
	vertical-align: middle;
	width: 13px;
	height: 7px;
	margin-left: 5px;
	background: url(../images/icons/chevron-down.svg) no-repeat scroll 0 0 / contain;
}
header .menu-container li:hover .chevron,
header .menu-container li.open .chevron{
	background: url(../images/icons/chevron-down-red.svg) no-repeat scroll 0 0 / contain;
}

header .menu-container li.open li{
	display:block;
}

header .menu-contact{
	position:absolute;
	top:0px;
	right:0px;
	padding:20px 20px 0 20px;
	z-index:1;
}
header .menu-contact ul{
	display:flex;
}
header .menu-contact ul li{
	padding:0 15px;
}
header .menu-contact img,
footer .contact img{
	vertical-align:middle;
	margin-right:5px;
}
header .menu-contact a{
	text-decoration:none;
	color:#4a4a4a;
	font-weight:bold;
	font-size:16px;
}

.header-picture{
	width:100%;
	height:50vw;
	max-height:627px;
	background: url(../images/posters/alternative-21581_1920.jpg) no-repeat scroll 0 0 / cover;
	display:flex;
	align-items:center;
}
.header-picture.small{
	max-height:200px;
}
.header-picture .overlay{
	width:100%;
	opacity:0.8;
	color:#FFF;
	font-size:55px;
	margin:50px 30px;
	font-weight:bold;
	text-shadow:2px 2px 8px #000;
	animation: fadeInHeader 3s ease-out;
}

@keyframes fadeInHeader {
    0% {
        opacity:0;
    }
    100% {
        opacity:0.8;
    }
}

#mobile-open-menu {
	display: none;
	width: 35px;
	height: 22px;
	cursor: pointer;
	position: absolute;
	top:58px;
	right:21px;
}
#mobile-open-menu > div {
	background-color:#4a4a4a;
	width: 100%;
	height: 4px;
	margin-top: 5px;
	transition: all .3s;
	-webkit-transition: all .3s;
	position: relative;
}
#mobile-open-menu > div:first-child {
	margin-top: 0;
}
#mobile-open-menu.close > div {
	transform: rotate(-45deg);
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
}
#mobile-open-menu.close > div:first-child {
	transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	top: 9px;
}
#mobile-open-menu.close > div:nth-child(2) {
	display: none;
}



.main-but{
	display:inline-block;
	background-color:#4a4a4a;
	color:#fff!important;
	padding:10px 20px;
	margin:20px 0px;
	text-decoration:none;
	transition:all .3s;
	border:1px solid #4a4a4a;
}
.main-but:hover{
	background-color:#fff;
	color:#4a4a4a!important;
}

.main-but-small{
	display:inline-block;
	background-color:#4a4a4a;
	color:#fff;
	padding:7px 15px;
	margin:15px 0px;
	text-decoration:none;
	transition:all .3s;
	border:1px solid #4a4a4a;
}
.main-but-small:hover{
	background-color:#fff;
	color:#4a4a4a;
}

.service-boxes{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
}
.service-boxes li{
	width:33.333%;
	box-sizing:border-box;
	background-color:transparent;
	padding:3px;
	min-width:290px;
}
.service-boxes li .container{
	background-color:#f2f2f2;
	display:block;
	text-decoration: none;
}
.service-boxes li .container .icon{
	text-align:center;
	padding:20px 40px;
}
.service-boxes li .container .icon img{
	height:70px;
	width:auto;
}
.service-boxes li .container .title{
	text-align:center;
	font-size:22px;
	text-transform:uppercase;
	padding:20px 20px 50px 20px;
	color:#f90000;
}

.leistungen{
	display:flex;
	flex-wrap:wrap;
}
.leistungen > div{
	width:50%;
	padding:20px;
	box-sizing: border-box;
}
.leistungen .leistungen-img {
	max-width: 500px;
	height: auto;
	border-radius: 50%;
	width: 100%;
}
.leistungen ul li{
	list-style: none;
	margin-left: 0;
	padding-left: 1.2em;
	margin-bottom: .3em;
	position: relative;
}
.leistungen ul{
	margin:20px 0;
}
.leistungen ul li::before {
	content: "•";
	overflow: hidden;
	position: absolute;
	left: 0;
	top: -.03em;
	font-size: 1.6rem;
	line-height: 1;
	color: #f50702;
}

.separator{
	width:200px;
	max-width:100%;
	margin:0 auto;
	height:5px;
	background-color:#f50702;
}


footer{
	background-color:#111111;
	margin-top:40px;
	color:#fff;
	margin-top:70px;
}
footer .pic{
	height:10vh;
	background: url(../images/posters/electric-1080584_1920.jpg) no-repeat scroll center center / cover;
}
footer .main-center{
	padding:40px 20px 0 20px;
}
footer a{
	display:block;
	margin-bottom:10px;
	text-decoration:none;
	font-size:1em;
	color:#fff;
}
footer .contact img{
	margin-right:15px;
}


footer h3{
	margin: 0 0 15px;
}
footer a:hover{
	text-decoration:underline;
}
footer > div{
	padding:30px 20px;
}
footer > div > ul{
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
}
footer > div > ul > li{
	padding-bottom:40px;
}
footer > div > ul > li::after{
	content:"";
	display:block;
	height:2px;
	width:100%;
	background-color:#f90000;
	margin-top:25px;
}


/* show objects being animated */
.animatable {
	visibility: hidden;
	-webkit-animation-play-state: paused;
	-moz-animation-play-state: paused;
	-ms-animation-play-state: paused;
	-o-animation-play-state: paused;
	animation-play-state: paused;
}
.animated {
	visibility: visible;
	
	-webkit-animation-fill-mode: both;
	-moz-animation-fill-mode: both;
	-ms-animation-fill-mode: both;
	-o-animation-fill-mode: both;
	animation-fill-mode: both;
	
	-webkit-animation-duration: 1s;
	-moz-animation-duration: 1s;
	-ms-animation-duration: 1s;
	-o-animation-duration: 1s;
	animation-duration: 1s;
  
	-webkit-animation-play-state: running;
	-moz-animation-play-state: running;
	-ms-animation-play-state: running;
	-o-animation-play-state: running;
	animation-play-state: running;
}
@-webkit-keyframes fadeInUp {
	0% {
		opacity: 0;
		-webkit-transform: translateY(20px);
	} 100% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes fadeInUp {
	0% {
		opacity: 0;
		-moz-transform: translateY(20px);
	}

	100% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
}

@-o-keyframes fadeInUp {
	0% {
		opacity: 0;
		-o-transform: translateY(20px);
	}

	100% {
		opacity: 1;
		-o-transform: translateY(0);
	}
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}

	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated.fadeInUp {
	-webkit-animation-name: fadeInUp;
	-moz-animation-name: fadeInUp;
	-o-animation-name: fadeInUp;
	animation-name: fadeInUp;
}


@media only screen and (max-width: 1024px) {
	header{
		display:block;
	}
	#mobile-open-menu{
		display:block;
	}
	nav.menu-container {
		width: 100%;
		position: absolute;
		background-color: #fff;
		top: 100%;
		left:0;
		overflow:auto;
		max-height:calc(100vh - 118px);
		transition: height .3s ease;
		-webkit-transition: height .3s ease;
		display:none;
		z-index:1;
	}
	nav.menu-container.active{
		display:block;
	}
	header .menu-container > ul{
		position:relative;
	}
	header .menu-container li{
		display:block;
		border-bottom:1px solid #4a4a4a;
		padding:0;
	}
	header .menu-container a, header .menu-container span{
		display:block;
		padding:15px;
	}
	header .menu-container > ul > li.open > ul{
		position:relative;
	}
	header .menu-container > ul > li:first-child{
		border-top:1px solid #4a4a4a;
	}
	header .menu-container > ul > li.open > ul > li{
		border:none;
	}
	
	.header-picture .overlay{
		font-size:44px;	
	}

	footer > div > ul{
		flex-wrap: wrap;
	}


}

@media only screen and (max-width: 650px) {
	header .menu-contact a span{
		display:none;
	}
	header .menu-contact{
		padding-right:0;
		
	}
	header .menu-contact ul li:first-child{
		padding:0px 0px;
	}
	header .logo-container{
		width:154px;
		padding:20px 0;
	}
	.header-picture .overlay{
		font-size:33px;
	}
	.leistungen > div{
		width:100%;
	}
	.leistungen.rev{
		flex-direction: column-reverse;
	}
	
}