@charset "UTF-8";
@import url('reset.css');

@font-face {
      font-family: 'InfiniteJustice';
      src: url('../fonts/InfiniteJustice.woff2') format('woff2'),
           url('../fonts/InfiniteJustice.woff') format('woff'),
           url('../fonts/InfiniteJustice.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }


/*---------------------------------------------General*/


*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

* {margin:0;padding:0;}

body {
	color: #0a0a0a;
	overflow-x: hidden;
	background-color: #fff;
	font-family: "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 300;
	font-style: normal;
	font-size: 100%;
	line-height: 1.7;
}

html {
	height: 100%;
}

img {
	width: 100%;
}

h1, h2 {
	font-family: "InfiniteJustice", sans-serif;
	font-size: 500%;
	line-height: 1;
}

h3 {
	font-family: "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
	font-size: 130%;
}

.clr{
	clear: both;
}

.push {
	margin-top: -150px;
	position: absolute;
}



/*---------------------------------------------Navi*/

.burger {
	visibility: hidden;
}

.nav {
	width: 100%;
	height: 150px;
	background-color: transparent;
	position: fixed;
	top: 0;
	transition: background-color 0.9s ease-in-out;
	transition: height 0.4s ease-in-out;
	z-index: 10;
	color: #fff;
}

.scroll {
	background-color: #0a0a0a;
	height: 100px;
}

.nav a {
	text-decoration: none;
	color: #fff;
}

.nav a:hover {
	border-bottom: solid 3px #dc0028;
}

.logo {
	object-fit: contain;
	height: 100%;
	width: auto;
	float: left;
	padding: 10px 2%;
}

.nav_button {
	font-family: "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 900;
	font-size: 12px;
	text-align: center;
	height: 100px;
	margin: 0 5%;
	float: right;
	padding: 40px 0;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 2px;
	visibility: visible;
}

.checkbox {
  position: fixed;
  height: 40px;
  width: 40px;
	top: 36px;
	right: 40px;
  z-index: 20;
  opacity: 0;
  cursor: pointer;
}

.hamburger-lines {
  height: 24px;
  width: 30px;
  position: fixed;
	top:40px;
	right: 48px;
	display: flex;
	float: left;
	flex-direction: column;
	justify-content: space-between;
	z-index: 15
}

.hamburger-lines .line {
  display: block;
  height: 2px;
  width: 100%;
  background: #fff;
}

.hamburger-lines .line1 {
  transform-origin: 0% 0%;
  transition: transform 0.4s ease-in-out;
}

.hamburger-lines .line2 {
  transition: transform 0.2s ease-in-out;
}

.hamburger-lines .line3 {
  transform-origin: 0% 100%;
  transition: transform 0.4s ease-in-out;
}

.menu-items {
  margin-top: 120px;
  height: 70px;
  width: 100%;
	font-family: "Roboto", sans-serif;
	font-optical-sizing: auto;
	font-weight: 900;
	font-size: 12px;
  transform: translateY(-300px);
  transition: transform 0.5s ease-in-out;
	position: fixed;
	z-index: 2;
	background-color:transparent;
	display: flex;
	justify-content: space-around;
	list-style: none;
	text-decoration: none;
	padding-top: 24px;
	text-transform: uppercase;
	text-align: center;
	animation: menu-items 0.5s linear infinite;
}

@keyframes menu-items {
	5% {
	margin-top: 100px;
	background-color: #0a0a0a;
  }
	100% {
	margin-top: 100px;
	background-color: #0a0a0a;
  }
	
}

	
.menu-items > li > a {
	color:#fff;
	transition: opacity 1s ease-out;
}

.burger input[type="checkbox"]:checked ~ .menu-items {
  transform: translateY(0);
	opacity: 1;
}

.burger input[type="checkbox"]:checked ~ .hamburger-lines .line1 {
  transform: rotate(45deg);
}

.burger input[type="checkbox"]:checked ~ .hamburger-lines .line2 {
  transform: scaleY(0);
}
	

.burger input[type="checkbox"]:checked ~ .hamburger-lines .line3 {
  transform: rotate(-45deg);
}

/*---------------------------------------------Titel*/

.titel {
	position: relative;
	width: 100%;
	height: 100vh;
	background-image: url("../bilder/titelbild.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.titel_txt {
	width: 90%;
	overflow-x: hidden;
	margin: 50vh 0 0 0;
	display: inline-block;
	animation: titel_txt 2s forwards;
	opacity: 0;
	
}

@keyframes titel_txt {
    100% {
		opacity: 1;
		margin-left: 10%;
	}
  
}

.titel_txt h1 {
	color: #fff;
	font-size: 550%;
}

.titel_txt h2 {
	color: #fff;
	font-size: 330%;
	margin-left: 30px;
}

.red_line_h {
	width: 60%;
	height: 2px;
	background-color: #dc0028;
	margin: 2% 0;
}


.titel_txt p {
	color: #fff;
	font-size: 140%;
	line-height: 1.5;
	font-style: italic;
	width: 600px;
}

/*---------------------------------------------Leistungen*/

.leistungen {
	width: 60%;
	margin: 15% 20% 10%;
	display: inline-block;
}

.leistungen h1 {
	font-size: 250%;
	text-align: center;
}

.leistungen h3 {
	text-align: center;
	margin-bottom: 1%;
	color: #dc0028;
}

.red_line_m {
	width: 20%;
	height: 2px;
	background-color: #dc0028;
	margin: 4% 40%;
}

.red_line_v {
	width: 1px;
	height: 0;
	background-color: #dc0028;
	position: absolute;
	animation: red_line_v 0.5s linear infinite;
}

@keyframes red_line_v {
	20% {
    height: 0;
  }
	40% {
    height: 100%;
  }
	100% {
    height: 100%;
  }
}

/*---------------------------------------------Skills*/

.skills {
	width: 60%;
	margin: 0 20%;
	position: relative;
	margin-bottom: 10%;
}

.skill_box {
	margin: 3% 0 0 3%;
	text-align: left;
	display: flex;
}

.box1 {
	margin-left: -3%;
	opacity: 0;
	animation: box1 0.5s linear infinite;
}

@keyframes box1 {
	10% {
	margin-left: -3%;
    opacity: 0;
  }
	25% {
	margin-left: 3%;
    opacity: 1;
  }
	100% {
    opacity: 1;
  }
}

.box2 {
	margin-left: -3%;
	opacity: 0;
	animation: box2 0.5s linear infinite;
}

@keyframes box2 {
	15% {
	margin-left: -3%;
    opacity: 0;
  }
	30% {
	margin-left: 3%;
    opacity: 1;
  }
	100% {
    opacity: 1;
  }
}

.box3 {
	margin-left: -3%;
	opacity: 0;
	animation: box3 0.5s linear infinite;
}

@keyframes box3 {
	20% {
	margin-left: -3%;
    opacity: 0;
  }
	35% {
	margin-left: 3%;
    opacity: 1;
  }
	100% {
    opacity: 1;
  }
}

.box4 {
	margin-left: -3%;
	opacity: 0;
	animation: box4 0.5s linear infinite;
}

@keyframes box4 {
	25% {
	margin-left: -3%;
    opacity: 0;
  }
	40% {
	margin-left: 3%;
    opacity: 1;
  }
	100% {
    opacity: 1;
  }
}

.box5 {
	margin-left: -3%;
	opacity: 0;
	animation: box5 0.5s linear infinite;
}

@keyframes box5 {
	30% {
	margin-left: -3%;
    opacity: 0;
  }
	45% {
	margin-left: 3%;
    opacity: 1;
  }
	100% {
    opacity: 1;
  }
}

.red_line_v, .box1, .box2, .box3, .box4, .box5, .menu-items {
  animation-play-state: paused;
  animation-delay: calc(var(--scroll) * -0.5s);
  animation-iteration-count: 1;
  animation-fill-mode: both;
}

.skill_box h3 {
	margin-bottom: 1%;
}

.skill_box img {
	width: 50px;
	height: 50px;
	margin-right: 3%;
}

.info {
	width: 90%;
	margin: 8% 5% 0;
}

.info_box {
	width: 33.33%;
	padding: 0 2%;
	text-align: center;
	float: left;
}

.info_box img {
	width: 50px;
}

.info_box h3 {
	margin: 3% 0 10%;
}

.ppp {
	width: 100%;
	margin-bottom: 8%;
	padding: 8% 20%;
	background-image: url("../bilder/bild_motor.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	clear: left;
	color: #fff;
}

.ppp h3 {
	margin-bottom: 3%;
}


/*---------------------------------------------Contact*/

.contact {
	width: 100%;
	margin: 0;
	background-image: url("../bilder/tool_bg.png");
	background-position: 110% 120%;
	background-size: 350px;
	background-repeat: no-repeat;
	padding: 0 0 15%;
}

.contact_info {
	position: relative;
	width: 45%;
	height: 400px;
	float: right;
}

.contact_box {
	width: 90%;
	margin: 3% 0 0 3%;
	text-align: left;
	display: flex;
}

.contact_box img {
	width: 30px;
	height: 30px;
	margin: 1% 3% 0 0;
}

.contact_info a {
	text-decoration: none;
	color:#0a0a0a;
}

.contact_info a:hover {
	opacity: 0.5;
}

.map {
	border: 0;
	width: 50%;
	height: 400px;
}

/*---------------------------------------------Footer*/

.footer_small {
	visibility: hidden;
	display: none;
}

.footer_big {
	width: 100%;
	height: 250px;
	background-color: #0a0a0a;
	padding: 5% 5% 0;
	position: relative;
	display: flex;
	visibility: visible;
}

.footer_box {
	width: 25%;
	color: #fff;
	text-align: right;
}

.footer_box a {
	color: #fff;
	text-decoration: none;
}

.footer_box a:hover {
	opacity: 0.5;
}

.footer_box img {
	width: 70%;
	display: block;
	max-width: 200px;
}

.datenschutz {
	width: 60%;
	margin: 15% 20% 10%;
	display: inline-block;
	text-align: left;
}

.datenschutz h3 {
	margin: 5% 0 2%;
}

.btn_back {
	width: fit-content;
	height: 100%;
	background-color: #dc0028;
	color: #fff;
	transition: background-color 0.5s ease-in-out;
	padding: 2% 4%;
	margin-top: 5%;
	text-decoration: none;
	display: inline-block;
}

.btn_back:hover {
	background-color: #0a0a0a;
}

/*---------------------------------------------1000px*/

@media screen and (max-width: 1000px) {
		
.contact {
	background-size: 300px;	
}

}


/*---------------------------------------------900px*/

@media screen and (max-width: 900px) {
	
.info_box {
	width: 80%;
	margin: 0 10%;
	padding: 0 0 8%;
	text-align: center;
	float: none;
}

.info_box h3 {
	margin: 3% 0 3%;
}
}

/*---------------------------------------------700px*/

@media screen and (max-width: 700px) {

.nav {
	height: 120px;
}
	
.nav_button {
	visibility: hidden;
}
	
.scroll {
	background-color: #0a0a0a;
	height: 100px;
}
	
.burger {
	visibility: visible;
}
	
.titel_txt h1 {
	font-size: 500%;
}

.titel_txt h2 {
	font-size: 280%;
}
	
.titel_txt p {
	font-size: 120%;
	width: 520px;
}
	
.red_line_h {
	margin: 4% 0;
}
	
.leistungen {
	width: 80%;
	margin: 15% 10% 10%;
}
	
.leistungen h1 {
	font-size: 230%;
}
	
.skills {
	width: 80%;
	margin: 0 10%;
	position: relative;
	margin-bottom: 10%;
}
	
.ppp {
	padding: 10%;
}
	
.map {
	border: 0;
	width: 100%;
	height: 300px;
}
	
.contact_info {
	width: 60%;
	height: 200px;
	float: none;
	margin: 3% 20% 0;
}
	
.footer_big {
	visibility: hidden;
	display: none;
}

.footer_small {
	width: 100%;
	height: 250px;
	background-color: #0a0a0a;
	padding: 5% 5% 0;
	position: relative;
	display: block;
	visibility: visible;
}

.footer_box {
	width: 100%;
	padding: 1% 5%;
	color: #fff;
	text-align: right;
}

.footer_small img {
	width: 30%;
	max-width: 200px;
	display: block;
	float: left;
	margin-right: 2%;
}
	
}


/*---------------------------------------------600px*/

@media screen and (max-width: 600px) {
	
.titel_txt h1 {
	font-size: 390%;
}

.titel_txt h2 {
	font-size: 180%;
}
	
.titel_txt p {
	font-size: 100%;
	width: 330px;
}
	
.info_box {
	width: 100%;
	margin: 0;
	padding: 0 0 8%;
	text-align: center;
	float: none;
}

.info_box h3 {
	margin: 3% 0 3%;
}
	
.contact_info {
	width: 80%;
	height: 200px;
	float: none;
	margin: 3% 10% 0;
}
	
.contact {
	background-size: 250px;	
}

	
.info {
	width: 88%;
	margin: 8% 6% 0;
}
	
}