*{
	padding:0;
	margin:0;
	text-decoration: none;
	font-family: 'Lato', sans-serif;
}



/* ------------------------------------------- Allgemein */


/* ------------------------ Überschriften */

h1{
	font-size: 50px;
	text-transform:uppercase;
	color:#333333;
	letter-spacing: 2px;
	font-weight:800;
}
h2{
	font-size:40px;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight:300;
	color:#333333;
	margin-bottom:20px;
}
h3{
	font-size:30px;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight:300;
	color:#2f3b78;
	margin-bottom:20px;
}
p{
	color:#555;
	line-height:28px;
	font-size:20px;
	font-weight:300;
	margin-bottom:20px; 
}

.schwach{
	color:#BBB;
	line-height:28px;
	font-size:20px;
	font-weight:300;
	margin-bottom:20px; 
}

.pjustify {
	color:#555;
    text-align:justify;
	line-height:28px;
	font-size:20px;
	font-weight:300;
	margin-bottom:20px; 
}

.pcenter {
	color:#555;
    text-align:center;
	line-height:28px;
	font-size:20px;
	font-weight:300;
	margin-bottom:20px; 
}

p:last-child {
    margin: 0;
}
ul{
   color:#555;
	line-height:28px;
	font-size:20px;
	font-weight:300;
	margin-bottom:20px;  
}

a{
	color:#555;

}

a:hover{
	color:#2f3b78;
}

/* ------------------------ Images */

.logo{
	width:225px;
	height:40px;
}

/*img{
	width:100%;
	height:100%;
} */
img+h3{
	margin-top:30px;
}


/* ------------------------ Vorlagen */

.center{
	text-align: center;
}

.abstand-100-100{
	padding: 100px 0 100px 0;
}
.abstand-50-50{
	padding: 50px 0 50px 0;
}
.abstand-100-50{
	padding: 100px 0 50px 0;
}
.abstand-50-100{
	padding: 50px 0 100px 0;
}




/* ------------------------ Gridsystem */

.container-full{
	display:flex;
	justify-content: space-between;
}
.container-full .spalte-6{
	padding: 0;
}
.container{
	padding: 0 25px;
	display:flex;
	justify-content: space-between;
}
.container-small{
	max-width:1200px;
	margin:auto;
	display:flex;
	justify-content: space-between;
}
.container-small+.container-small{
	margin-top:50px;
}



.spalte-12{
	width:100%;
	padding: 0 15px;
}
.spalte-6{
	width:50%;
	padding:0 15px;
}
.spalte-4{
	width:33.33%;
	padding: 0 15px;
}
.spalte-3{
	width:25%;
	padding:0 15px;
}


.kasten{
	display: flex;
	background-color:#F5F5F5;
}
.kasten div{
	width:70%;
	margin:auto;
}

/* ------------------------ Formular */

form{
	display: flex;
	flex-wrap:wrap;
	justify-content: space-between;
}
form input, form textarea{
	width:100%;
	padding:15px!important;
	box-sizing:border-box;
	margin-bottom:20px;
}
form .spalte-6{
	width:49%;
}
.absende-button{
	padding:20px 40px;
	font-size: 18px;
	color:white;
	background-color:#2f3b78;
	text-transform:uppercase;
	display:block;
	letter-spacing:2px;
	border: 1px solid #2f3b78;
}
.absende-button:hover{
	background-color:transparent;
	color:#2f3b78;
}

/* ------------------------ Button */

button{
	background-color:transparent;
	border:none;
}

button a{
	padding:20px 40px;
	font-size: 18px;
	color:white;
	background-color:#2f3b78;
	text-transform:uppercase;
	display:block;
	letter-spacing:2px;
	border: 1px solid #00a8ff;

}
button a:hover{
	background-color:transparent;
	color:#2f3b78;
}

button.second a{
	border:1px solid #555;
	background-color:transparent;
	color:#555555;
}
button.second a:hover{
	border: 1px solid #2f3b78;
	color: #2f3b78;
}

button.warning a{
	background-color:red;
	border:1px solid red;
	color:white;
}
button.warning a:hover{
	background-color:transparent;
	border: 1px solid red;
	color:red;
}


/* ------------------------------------------- Variation Blau */

.blau{
	background-color: #2f3b78;
}
.blau h3, .blau p{
	color:white;
}
.blau button a{
	border:1px solid white;
	color:white;
}
.blau button a:hover{
	border:1px solid white;
	background-color:white;
	color:#2f3b78;
}

/* ------------------------------------------- Variation rot */

.rot{
	background-color: red;
}
.rot h3, .rot p{
	color:white;
}
.rot button a{
	border:1px solid white;
	color:white;
}
.rot button a:hover{
	border:1px solid white;
	background-color:white;
	color:red;
}



/* ------------------------------------------- Header */

header{
	padding:40px;
}

header section{
	display:flex;
	justify-content: space-between;
	align-items: center;
}

header section nav ul li{
	display:inline;
	margin-left: 20px;
	position: relative;
}
header section nav ul li.active {
    border-bottom: 2px solid #2f3b78;
    padding-bottom: 1px;
}
header section nav ul li.active a {
    color: #2f3b78;
}

header section nav ul li a{
	font-size:20px;
	text-transform: uppercase;
	color:#333333;
	font-weight: 500;
}


/* ------------------------------------------- Titelbild */

/*#titelbild{
	background-image: url("img/background_kl.png");
	height:450px;
        
} */

#intro{
	margin-top:200px;
    
}









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

/* ------------------------ Kontakt */


footer #kontakt ul{
	list-style:none;
}
footer #kontakt ul li{
	margin-bottom:10px;
}
footer #kontakt ul li a{
	font-size:16px;
	text-transform:uppercase;
	font-weight:300;
}

footer #sonstiges{
	padding:20px 0;
	background-color:#2f3b78;
	text-align:center;
}
footer #sonstiges ul{
	list-style:none;
}
footer #sonstiges ul li{
	display:inline;
	padding:10px;
}
footer #sonstiges ul li a{
	color:white;
	text-transform:uppercase;
	letter-spacing:2px;
	font-size:13px;
}






/* ----------------------------------------------- Tablet */

@media (max-width:1200px){

/* --------------------- Allgemein */
	
	section{
		overflow:hidden;
	}
	.container{
		flex-wrap:wrap;
	}
	.container-small {
		max-width: 100%;
		padding: 0 25px;
	}

	.spalte-3 {
		width: 45%;
		padding: 0 15px;
	}

	article {
		margin-bottom: 50px;
	}
	
	#einleitung{
		padding-bottom:50px;
	}
	
	.kasten div {
    	width: 85%;
	}
	footer #kontakt div.spalte-3{
		margin-bottom:50px;
	}
	footer #kontakt{
		padding-bottom:50px;
	}
}



/* ----------------------------------------------- Smartphone */

@media (max-width:700px){

/* --------------------- Allgemein */
	
	header section {
		display: block;
	}
	header section nav{
		margin-top:10px;
	}
	header section nav ul li {
		margin: 0 20px 0 0;
	}
	
	.spalte-3, .spalte-4,.spalte-6,.spalte-9,.spalte-12{
		width:100%;
	}
	.container-full{
		display:block;
	}
	.container-small{
		flex-wrap:wrap;
	}
	h1{
		font-size:40px;
	}
	h2{
		font-size:25px;
		color:white;
	}
	#titelbild{
		background-position:-350px 0;
	}
	#titelbild #intro {
    	margin-top: 400px;
	}
	.kasten div{
		padding:50px 0;
	}
}




















/*
@media (max-width:1200px){
	
	
	
	h1 {
		font-size: 32px;
	}
	h2 {
    	font-size: 20px;
	}
	button a {
		padding: 20px 40px;
		font-size: 15px;
	}
	nav{
		display:none;
	}
	
	section {
    	overflow: hidden;
	}
	
	.container{
		display:block;
	}
	.spalte-3, .spalte-4, .spalte-6,.spalte-9,.spalte-12{
		width:100%;
		padding:0;
	}
	
	
	#titelbild {
		background-size: contain;
		background-repeat: no-repeat;
		height:unset;
	}
	#intro {
    	margin-top: 220px;
	}
}

*/

/* F Ü R   T Y P E W R I T I N G   A N I M A T I O N

.wrapper {
  height: 10vh;
  
  display: flex;
  align-items: center;
  justify-content: center;
}

.typing-demo {
  width: 50ch;
  animation: typing 2s steps(31), blink .5s step-end infinite alternate;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-family: monospace;
  font-size: 2em;
}

@keyframes typing {
  from {
    width: 0
  }
}
    
@keyframes blink {
  50% {
    border-color: transparent
  }
}


*/

