/*** RESET ***/
html, body,
div, img, br,
h1, h2, h3, h4, p, a, em, span, strong, small, i, b, u, blockquote, q, strike,
ul, ol, li, dl, dt, dd,
address, hr, s, cite, dfn, abbr, code, var, samp, kbd, sub, sup, ins, del, pre, 
iframe, object, param, video, audio, source, track, canvas, map, area, svg, math,
form, fieldset, legend, label, input, button, select, textarea, datalist, optgroup, option, keygen, output, progress, meter,
table, caption, colgroup, col, tbody, thead, tfoot, td, th,
section, nav, article, aside, header, footer, main, figure, figcaption, data, time, mark, ruby, rt, rp, bdi, bdo, wbr, embed, details, summary, command, menu {
	margin: 0;
	padding: 0;
	border: 0;
	outline: none;
	line-height:1;
	font-weight: 400;
}
/*** END RESET ***/

* {
	-webkit-text-size-adjust: none;
}


@font-face{
	font-family: "NL";
	src: url("../font/nl.eot");
	src: url("../font/nl.eot?#iefix")format("embedded-opentype"),
		url("../font/nl.woff")format("woff"),
		url("../font/nl.woff2")format("woff2"),
		url("../font/nl.ttf")format("truetype"),
		url("../font/nl.svg#NL")format("svg");
	font-weight:normal;
	font-style:normal;
	font-display:swap;
}


html {
	background: #f9f9f9;
}

body {
	font-family: "NL", "Tahoma", sans-serif;
	font-size: 1rem;
	color:#494747;
	min-height: 88vh;
	padding: 6vh 0;
	overflow-x: hidden;
	
	background: #f9f9f9;
	/*
	background: -moz-linear-gradient(top,  #f9f9f9 0%, #f9f9f9 93%, #f9bf9b 100%);
	background: -webkit-linear-gradient(top,  #f9f9f9 0%,#f9f9f9 93%, #f9bf9b 100%);
	background: linear-gradient(to bottom,  #f9f9f9 0%,#f9f9f9 93%, #f9bf9b 100%);
	*/
}


h2 {
	font-size: 1.2rem;
	color: #ef5c00;
	text-transform: uppercase;
}


p {
	color:#494747;
	font-size: 1.1rem;
	line-height: 1.3;
}

p + p {
	margin-top: .5rem;
}

a {
	color: #ef5c00;
		
	-moz-transition: all .2s;
	-webkit-transition: all .2s;
	-o-transition: all .2s;
	-ms-transition: all .2s;
	transition: all .2s;
}

input,
textarea {
	padding: .5em .6em;
	background: #fefefe;
	border: 1px solid #dcdcdc;
	font-size: 1em;
	margin-bottom: .9em;
	width: 100%;
	display: block;
	height: 2.3em;
	font-family: "NL", "Tahoma", sans-serif;
		
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	
	-moz-border-radius: .15em;
	-webkit-border-radius: .15em;
	border-radius: .15em;
	
	-moz-transition: box-shadow .2s;
	-webkit-transition: box-shadow .2s;
	-o-transition: box-shadow .2s;
	-ms-transition: box-shadow .2s;
	transition: box-shadow .2s;
}
input:hover, input:focus,
textarea:hover, textarea:focus {
	-webkit-box-shadow: 0 0 3px 0 rgba(180,180,180,.4);
	-moz-box-shadow: 0 0 3px 0 rgba(180,180,180,.4);
	box-shadow: 0 0 3px 0 rgba(180,180,180,.4);
}

input[type=submit],
button {
	background: #494747;
	color: #fff;
	font-size: 1.1rem;
	border: none;
	cursor: pointer;
	width: auto;
	padding: .7em 2em .6rem;
	margin-bottom: 1rem;
	font-family: "NL", "Tahoma", sans-serif;
	
	-moz-transition: all .2s;
	-webkit-transition: all .2s;
	-o-transition: all .2s;
	-ms-transition: all .2s;
	transition: all .2s;
}
input[type=submit]:hover, input[type=submit]:focus,
button:hover, button:focus {
	background: #ef5c00;
}

input::-moz-focus-inner {
	border: 0;
}

textarea {
	height: 8.2em;
	resize: none;
}

address {
	margin: .5rem 0;
	font-style: normal;
}

blockquote {
	font-size: 1.2rem;
	color: #666;
	line-height: 1.5;
	font-style: italic;
	padding: 1.5rem .5rem;
	text-align: center;
}

blockquote:before {
	content: "„";
	line-height: 0;
	font-size: 1.9rem;
	font-family: serif;
}

blockquote:after {
	content: "“";
	line-height: 0;
	font-size: 1.9rem;
	font-family: serif;
}


dl {
	display: flex;
	flex-wrap: wrap;
}

dt {
	flex: 0 0 8rem;
	line-height: 1.3;
}
dt:after {
	content: ":";
	padding-left: .05rem;
}

dd {
	flex: 1 0 calc(100% - 8rem);
	line-height: 1.3;
	margin-bottom: .9rem;
	
}


nav, main, footer {
	display: block;
	margin: 0 auto;
	width: 96%;
	max-width: 68rem;
	box-sizing: border-box;
}

#logo {
	text-align: center;
	margin-bottom: 3rem;
}

#logo img {
	width: 70%;
	max-width: 29rem;
	height: auto;
}



nav {
	background: #494747;
	
	-webkit-box-shadow: 0 0 .2rem 0 rgba(102,102,102,.3);
	-moz-box-shadow: 0 0 .2rem 0 rgba(102,102,102,.3);
	box-shadow: 0 0 .2rem 0 rgba(102,102,102,.3);
}

nav button {
	display: none;
}

nav ul {
	display: flex;
	justify-content: center;
	align-items: center;
}

nav li {
	list-style: none;
}

nav a {
	color: #fff;
	font-size: 1.3rem;
	text-align: center;
	display: inline-block;
	padding: 1rem 1rem .7rem;
	text-decoration: none;
	border-bottom: .15rem solid transparent;
}
nav a:hover,
nav a:focus {
	color: #494747;
	background: #fff;
	border-color: #ef5c00;
}

main {
	padding: 2.5rem;
	margin: 2.5rem auto 0;
	background: #fff;
	
	-webkit-box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
	-moz-box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
	box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
}

.block + .block {
	padding-top: 5rem;
}


.h-mark {
	font-size: 1.8rem;
	color: #666;
	line-height: 1.2;
	margin-bottom: 1.2rem;
	text-transform: none;
}

.h-mark mark {
	background: #494747;
	color: #fff;
	display: inline-block;
	padding: .35rem .3rem .2rem;
}

.h-lined {
	font-size: 2rem;
	color: #ef5c00;
	text-transform: uppercase;
	letter-spacing: .05rem;
	text-align: center;
	position: relative;
	margin-bottom: 1.5rem;
}

.h-lined:before {
	content: "";
	z-index: 0;
	position: absolute;
	top: 50%;
	height: .1rem;
	width: 100%;
	background: #ef5c00;
	left: 0;
	margin-top: -.24rem;
}

.h-lined span {
	display: inline-block;
	margin: 0 auto;
	background: #fff;
	padding: 0 .5rem;
	vertical-align: text-bottom;
	max-width: 80%;
	position: relative;
	z-index: 1;
}

.h-sub {
	color: #ef5c00;
	font-size: 1.5rem;
	line-height: 1.2;
	margin-bottom: .8rem;
}


.flex {
	display: flex;
	gap: 1.5rem;
	align-items: center;
}

#intro {
	position: relative;
	margin-right: 30%;
}

#patrick {
	position: absolute;
	left: 105%;
	width: 37%;
	height: auto;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius:50%;
}

.articles {
	display: flex;
	gap: 3.5rem 5%;
	flex-wrap: wrap;
	align-items: baseline;
}

.articles article {	
	flex: 0 0 30%;
	overflow: hidden;
}

.articles .content {
	max-height: 5.4rem;
	overflow: hidden;
	position: relative;
}

.articles .open .content {
	height: auto;
	max-height: 999rem;
	
	-webkit-animation: slideDown 5s ease-out;
	-moz-animation: slideDown 5s ease-out;
	-ms-animation: slideDown 5s ease-out;
	-o-animation: slideDown 5s ease-out;
	animation: slideDown 5s ease-out;
}

.articles .content:after {
	content: "";
	opacity: 1;
	height: 1rem;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	background-image: linear-gradient(to bottom, #0000 0%, #fff 100%);
	
	-moz-transition: all .2s;
	-webkit-transition: all .2s;
	-o-transition: all .2s;
	-ms-transition: all .2s;
	transition: all .2s;
}

.articles .open .content:after {
	opacity: 0;
}

@-webkit-keyframes slideDown {
	from {max-height: 5.4rem;}
	to {max-height: 200rem;}
}
@-moz-keyframes slideDown {
	from {max-height: 5.4rem;}
	to {max-height: 200rem;}
}
@-ms-keyframes slideDown {
	from {max-height: 5.4rem;}
	to {max-height: 200rem;}
}
@-o-keyframes slideDown {
	from {max-height: 5.4rem;}
	to {max-height: 200rem;}
}
@keyframes slideDown {
	from {max-height: 5.4rem;}
	to {max-height: 200rem;}
}

.articles .content + button {
	background: transparent;
	color: #a6a6a6;	
	font-size: .9rem;
	display: table;
	margin: .5rem auto;
	padding: .3rem;
	position: relative;
}
.articles .content + button:hover {
	color: #ef5c00;
}

.articles .content + button:before,
.articles .content + button:after {
	content: "";
	display: block;
	position: absolute;
	right: 105%;
	width: 10rem;
	top: 50%;
	border-top: .07rem solid #a6a6a6;
	
	-moz-transition: all .2s;
	-webkit-transition: all .2s;
	-o-transition: all .2s;
	-ms-transition: all .2s;
	transition: all .2s;
}
.articles .content + button:hover:before,
.articles .content + button:hover:after {
	border-color: #ef5c00;
}

.articles .content + button:before {
	left: 105%;
}


#kontaktformular {
	width:50%;
	margin-right: 10%;
}

.address {
	flex: 0 0 20rem;
}

[class^=message-] {
	margin-bottom:.7rem;
}


.message-error {
	color: #f25858;
}

.message-success {
	color: #15de46;
}

.certifications {
	max-width: 50%;
	text-align: center;
	flex: 0 0 24rem;
}

.certifications img {
	max-height: 6rem;
	height: auto;
	margin: 0 1rem 1rem 0;
}

footer {
	background: #494747;
	padding: .7rem 1.5rem;
	display: flex;
	justify-content:space-between;
	
	-webkit-box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
	-moz-box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
	box-shadow: 0 0 .5rem 0 rgba(102,102,102,.3);
}

footer p, footer a {
	color: #fff;
	font-size: .85rem;
	margin: 0;
}

footer a {
	margin-left: 1rem;
}



@media only screen and (max-width: 850px) {
	nav {
		background: none;
		-webkit-box-shadow: none;
		-moz-box-shadow: none;
		box-shadow: none;
	}
	
	#res-nav {
		position: relative;
		display: block;
		width: 2.8rem;
		height: 1.5rem;
		background: transparent;
		margin: -1rem auto 2rem;
		padding: 0;
	}
	
	#res-nav:before,
	#res-nav:after,
	#res-nav span {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		background: #494747;
		height: .28rem;
		
		-webkit-transition: all .2s;
		-moz-transition: all .2s;
		-o-transition: all .2s;
		transition: all .2s;
	}
	
	#res-nav:before {
		top: 0;
	}
	
	#res-nav span,
	.nav-open #res-nav:before,
	.nav-open #res-nav:after {
		top: calc(50% - .14rem);
	}
	
	.nav-open #res-nav span {
		opacity: 0;
	}
	
	.nav-open #res-nav:before {
		height: .3rem;
		transform: rotate(-45deg);
	}
	
	.nav-open #res-nav:after {
		height: .3rem;
		transform: rotate(45deg);
	}
	
	nav ul {
		display: none;
	}
	
	.nav-open nav ul {
		display: block;
	}
	
	.nav-open nav li {
		text-align: center;
		margin-top: .7rem;
	}
	
	.nav-open nav a {
		color: #494747;
		font-size: 1.2rem;
		padding: 0;
	}
	
	nav button {
		
	}
	
	#intro {
		margin: 0;
	}
	
	#patrick {
		position: static;
		margin: 2rem auto 0;
		width: 20rem;
		max-width: 80%;
		display: block;
	}
	
	.h-lined {
		font-size: 1.6rem;
		hyphens: auto;
	}
	
	.articles {
		gap: 3rem 10%;
	}
	
	.articles article {
		flex: 0 0 45%;
	}
	
	#zertifizierungen-und-partner > .flex {
		display: block;
	}
	
	.certifications {
		margin: 2rem 0 0;
		max-width: 100%;
	}
	
	#kontakt > .flex {
		display: block;
	}
	
	.imprint {
		margin-top: 3rem;
	}
}


@media only screen and (max-width: 550px) {
	body {
		padding: 2rem 0 .5rem;
	}
	
	main {
		padding: 2.5rem 5%;
	}
	
	.h-lined span {
		max-width: 100%;
	}
	
	.articles {
		gap: 2.5rem;
	}
	
	.articles article {
		flex: 0 0 100%;
	}
	
	dt {
		flex: 0 0 6rem;
	}
	
	dd {
		flex: 1 0 calc(100% - 6rem);
	}
	
	footer {
		display: block;
	}
	
	footer a {
		margin: .5rem 1rem 0 0;
		display: inline-block;
	}
}