/*** Allgemein ***/
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800');

body {
	-webkit-box-sizing: border-box;
	-moz-box-sizing:    border-box;
	box-sizing:         border-box;
	margin: 0;
	border: none;
	outline: none;
}

.wrapper {
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}

main {
	padding: 0 13% 6% 13%;
	margin-bottom: 50px;
}

/*** MENU ***/
nav[role=navigation] {
	clear: both;
	-webkit-transition: all 0.3s ease-out;  
	-moz-transition: all 0.3s ease-out;
	-ms-transition: all 0.3s ease-out;
	-o-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}
.js nav[role=navigation] {
	overflow: hidden;
	max-height: 0;
}
nav[role=navigation].active {
	max-height: 22em;
}
nav[role=navigation] ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

nav[role=navigation] li {
	padding: 1.5em 0 1.5em 0;
	text-align: center;
}

nav[role=navigation] li a {
	display: block;
	font-weight: 600;
	font-size: 14px;
	color:#4a4a4a;
	font-family: 'Open Sans', sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	padding-top: 1em;
}

nav[role=navigation] li a.active {
	color:#016eaa;
}

@media screen and (min-width: 48.25em) {
	a.menu-link {
	   display: none;
	}
	.js nav[role=navigation] {
		max-height: none;
		border-top: 0px;
		text-align: center;
	}
	nav[role=navigation] ul {
		margin: 0 0 0 -0.25em;
		border: 0;
	}

	nav[role=navigation]  li {
		display: inline-block;
		margin: 0 1.5em;
		text-align: center;
		padding: 0.5em 0 1em 0;
	}
	
	nav[role=navigation] li a {
		border: 0;
		padding-top: 0em;
		padding-bottom: 0.5em;
	}
}

/* NAVIGATION-HOVER */
nav ul li a,
nav ul li a:after,
nav ul li a:before {
  transition: all .5s;
}
nav ul li a:hover {
  color: #4a4a4a;
}

/* stroke */
nav.stroke ul li a {
  position: relative;
}
nav.stroke ul li a:after {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 0%;
  content: '.';
  color: transparent;
  background: #4a4a4a;
  height: 2px;
}

nav.stroke ul li a:hover:after {
  width: 100%;
}

/* stroke bottom */
a.stroke_bottom {
  position: relative;
}

a.stroke_bottom:after {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 0%;
  content: '.';
  color: transparent;
  background: #4a4a4a;
  height: 5px;
  top: 23px;
  transition: all .5s;
}

a.stroke_bottom:hover:after {
  width: 100%;
}

#hamburger-icon {
  width: 25px;
  height: 18px;
  position: relative;
  display: block;
  background-color: transparent;
  text-align: center;
}

#hamburger-icon .line {
  display: block;
  background: #016eaa;
  width: 25px;
  height: 4px;
  position: absolute;
  transition: all 0.4s;
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
}
#hamburger-icon .line.line-1 {
  top: 2%;
}
#hamburger-icon .line.line-2 {
  top: 50%;
}
#hamburger-icon .line.line-3 {
  top: 98%;
}

#hamburger-icon.active .line-1 {
  transform: translateY(12px) translateX(0) rotate(45deg);
  -webkit-transform: translateY(12px) translateX(0) rotate(45deg);
  -moz-transform: translateY(12px) translateX(0) rotate(45deg);
}
#hamburger-icon.active .line-2 {
  opacity: 0;
}
#hamburger-icon.active .line-3 {
  transform: translateY(-6px) translateX(0) rotate(-45deg);
  -webkit-transform: translateY(-6px) translateX(0) rotate(-45deg);
  -moz-transform: translateY(-6px) translateX(0) rotate(-45deg);
}

.icon {
    width: 32px;
    height: 32px;
    text-align: center;
}

.icon:hover {
	-webkit-transform: translate(0px, 5px);
	-moz-transform: translate(0px, 5px);
    transform: translate(0px, 5px);
	transition-duration: 500ms;
}

/**ENDE MENU**/

/** SPALTENLAYOUT 1 **/
.column1 {
	width: 100%;
	clear: both;
	position: relative;
	margin-bottom:20px;
}

/** SPALTENLAYOUT 2 **/
.column2 {
	width: 46%;
	float: left;
	min-height: 1px;
	position: relative;
	text-align:left;
}

.spacer2 {
	width: 7%;
	float: left;
	min-height: 1px;
}


/** SPALTENLAYOUT 3 **/
.column3 {
	width: 30%;
	float: left;
	min-height: 1px;
	position: relative;
}

.column3-2 {
	padding-top: 20px;
	padding-bottom: 20px;
	width: 60%;
	float: right;
	min-height: 1px;
	position: relative;
	text-align:right;
}

.spacer3 {
	width: 5%;
	float: left;
	min-height: 1px;
}

/** SPALTENLAYOUT 4 **/
.column4 {
	width: 22%;
	float: left;
	min-height: 1px;
	padding-left: 20px;
	padding-right: 20px;
	margin-bottom: 20px;
	position: relative;
}

.column4-2 {
	width: 48%;
	float: left;
	min-height: 1px;
	padding-left: 20px;
	padding-right: 20px;
	margin-bottom: 20px;
	position: relative;
}

.column4-3 {
	width: 74%;
	float: left;
	min-height: 1px;
	padding-left: 20px;
	padding-right: 20px;
	margin-bottom: 20px;
	position: relative;
}

.spacer4 {
	width: 4%;
	float: left;
	min-height: 1px;
}

/** Accordion **/
.half {
  float: left;
  width: 100%;
  background: linear-gradient(to bottom right, #016eaa, #0597e8);
}
/* Acordeon styles */
.tab {
  position: relative;
  /*margin-bottom: 1px;*/
  width: 100%;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid white;
}
.tab input {
  position: absolute;
  opacity: 0;
  z-index: -1;
}
.tab label {
  position: relative;
  display: block;
  padding: 0.5em 1em;
  /*background: #016eaa;*/
  line-height: 3;
  cursor: pointer;
}

.tab-content {
  max-height: 0;
  padding: 0 5%;
  overflow: hidden;
  background: #68add4;
  -webkit-transition: max-height .35s;
  -o-transition: max-height .35s;
  transition: max-height .35s;
}

/* :checked */
.tab input:checked ~ .tab-content {
  max-height: 300vh;
}
/* Icon */
.tab label::after {
  position: absolute;
  right: 0;
  top: 0;
  display: block;
  width: 3em;
  height: 3em;
  line-height: 3;
  text-align: center;
  -webkit-transition: all .35s;
  -o-transition: all .35s;
  transition: all .35s;
}
.tab input[type=checkbox] + label::after {
  content: "+";
}
.tab input[type=radio] + label::after {
  content: "\25BC";
}
.tab input[type=checkbox]:checked + label::after {
  transform: rotate(315deg);
}
.tab input[type=radio]:checked + label::after {
  transform: rotateX(180deg);
}

footer {
	background-color: #4a4a4a;
	width: 100%;
	bottom: 0;
	position: fixed;
	margin: 0px;
}

footer p {
	color: #fff;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-align: center;
	padding: 1%;
	margin: 0px;
}

footer p a {
	color: #fff;
	font-family: 'Open Sans', sans-serif;
	font-size:12px;
	text-align: center;
}

.clear {
	width: 100%;
	min-height: 1px;
	clear: both;
	background-color: transparent;
}

/** BUTTON HOME**/
.buttons {
  display: table;
  height: 100%;
  width: 100%;
}

.container {
  display: table-cell;
  padding: 1em;
  text-align: center;
  vertical-align: middle;
}

.btn {
  color: #fff;
  font-family: 'Open Sans', sans-serif;
  cursor: pointer;
  display: block;
  font-size: 16px;
  font-weight: 400;
  line-height: 45px;
  margin: 0 auto;
  max-width: 170px;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  vertical-align: middle;
  width: 100%;
  background: rgba(225, 255, 255, 0);
  border: none;
}

@media (min-width: 400px) {
  .btn {
    display: inline-block;
  }
  .btn:nth-of-type(even) {
    margin-right: 0;
  }
}
@media (min-width: 600px) {
  .btn:nth-of-type(even) {
  }
  .btn:nth-of-type(5) {
    margin-right: 0;
  }
}
.btn:hover {
  text-decoration: none;
}

.btn-1 svg {
  height: 45px;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.btn-1 rect {
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-dasharray: 422, 0;
}

.btn-1:hover {
  background: rgba(225, 255, 255, 0);
  font-weight: 600;
}
.btn-1:hover rect {
  stroke-width: 5;
  stroke-dasharray: 15, 310;
  stroke-dashoffset: 48;
  -webkit-transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
  transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
}

.module1 {
  background: 
    linear-gradient(
      rgba(1, 110, 170, 0.5),
      rgba(1, 110, 170, 0.5)
    ),
  url('../img/Home_Ueber_Uns.jpg');
  background-size: cover;
  width: 222px;
  height: 189px;
  position: relative;
  float: left;
}

.module2 {
  background: 
    linear-gradient(
      rgba(1, 110, 170, 0.5),
      rgba(1, 110, 170, 0.5)
    ),
  url('../img/Home_Dienstleistungen.jpg');
  background-size: cover;
  width: 222px;
  height: 189px;
  position: relative;
  float: left;
}

.module3 {
  background: 
    linear-gradient(
      rgba(1, 110, 170, 0.5),
      rgba(1, 110, 170, 0.5)
    ),
  url('../img/Home_Angebote.jpg');
  background-size: cover;
  width: 222px;
  height: 189px;
  position: relative;
  float: left;
}

.mid h4 {
  font-family: 'Open Sans', sans-serif;
  font-weight: 900;
  text-align: center;
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 2rem;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
/** BUTTON HOME ENDE**/

/** HOME BOXEN HIGHLIGHT **/

.highlight_box {
	border: 1px solid #016eaa;
}

p.zitat {
	font-family: 'Open Sans', serif;
	font-weight: 800;
	color:#016eaa;
	font-size: 35px;
	line-height: 41px;
	text-align: left;
	text-transform: uppercase;
	padding: 7%;
	margin: 0px;
}

p.highlights {
	font-family: 'Open Sans', serif;
	font-weight: 400;
	color:#016eaa;
	font-size: 27px;
	line-height: 70px;
	padding: 7%;
	margin: 0px;
}

/** HOME BOXEN HIGHLIGHT ENDE **/

/*Flex items gleiche Höhe*/
.teaser-section {
  display: flex;
  flex-wrap: wrap;
}
.teaser {
  display: flex; 
  width: 100%;
}
@media all and (max-width: 770px) {
  .teaser {
    width: 100%;
  }
}
@media all and (min-width: 60em) {
  .teaser {
    width: 46%;
  }
}
.teaser--content {
	background-color: #fff;
  display: flex;
  flex-direction: column;
  padding: 1em;
	width: 100%;
	border:1px solid #016eaa;
}
.teaser--content p {
	flex: 1 0 auto;
}
/*Flex items gleiche Höhe ENDE*/

h1 {
	font-family: 'Open Sans', serif;
	font-weight: 300;
	color:#016eaa;
	font-size: 21px;
	line-height: 27px;
	text-align: center;
	margin-bottom: 0px;
	margin-top:50px;
	letter-spacing: 3px;
}

h2 {
	font-family: 'Open Sans', serif;
	font-weight: 300;
	color:#016eaa;
	font-size: 33px;
	text-align: left;
	letter-spacing: 5px;
	margin: 0;
}

h3 {
	font-weight: 400;
	font-size: 14px;
	color:#a6a6a6;
	font-family: 'Open Sans', sans-serif;
	text-transform: uppercase;
	margin-bottom: 0px;
}

h4 {
	font-weight: 300;
	font-size: 18px;
	color:#016eaa;
	font-family: 'Open Sans', sans-serif;
	margin: 0px;
}

h5 {
	font-family: 'Open Sans', serif;
	font-weight: 300;
	color:#fff;
	font-size: 15px;
	letter-spacing: 2px;
	text-align: left;
	margin: 0px;
	line-height: 21px;
	padding:2% 0;
	width: 86%;
}


p {
	font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	font-size: 14px;
	color:#4a4a4a;
	text-align: justify;
	line-height: 20px;
	clear: both;
}

a {
	text-decoration: none;
}

a.textlink {
	font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	color:#016eaa;
}

ol {
	font-family: 'Open Sans', sans-serif;
	font-size: 14px;
	color:#4a4a4a;
	text-align: justify;
	line-height: 20px;
}

ol {
  margin: 0 0 1.5em;
  padding: 0;
  counter-reset: item;
}

ol > li {
  margin: 0;
  list-style-type: none;
  counter-increment: item;
  font-weight: bold;
}

ol > li:before {
  display: inline-block;
  width: 1em;
  padding-right: 0.5em;
  font-weight: bold;
  text-align: right;
  content: counter(item) ".";
}

.tab-content ul {
	font-family: 'Open Sans', sans-serif;
	font-weight: 400;
	font-size: 14px;
	color:#fff;
	text-align: left;
	line-height: 20px;
	clear: both;
}

.list-flex {
	width: 50%;
}


/** HEADER **/
header {
    width: 100%;
	clear: both;
	position: relative;
	margin:20px 0 40px 0;
	text-align: center;
}

header .subnav {
	float:right;
	width: 100%;
	min-height: 1px;
	position: absolute;
	margin-top:-71px;
	text-align: right;
	color: #a6a6a6;
}

header .subnav a {
	color: #a6a6a6;
	font-size: 14px;
	font-weight: 400;
	font-family: 'Open Sans', sans-serif;
	text-transform: uppercase;
}

.mobile_nav, .mobile_nav a {
	color: #a6a6a6;
	font-size: 14px;
	font-weight: 400;
	font-family: 'Open Sans', sans-serif;
	text-transform: uppercase;
}


/* BUTTONS */
.hvr-sweep-to-right {
  margin-top:30px;
  font-family: 'Open Sans', sans-serif;
  font-size:14px;
  font-weight:400;
  text-transform:uppercase;
  padding: 0.5em 1em;
  cursor: pointer;
  background: #016eaa;
  text-decoration: none;
  color: #fff;
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-sweep-to-right:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sweep-to-right:hover, .hvr-sweep-to-right:focus, .hvr-sweep-to-right:active {
  color: #016eaa;  
}
.hvr-sweep-to-right:hover:before, .hvr-sweep-to-right:focus:before, .hvr-sweep-to-right:active:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

.abstandoben, .abstandoben2 {
	padding-top:70px;
}

.mobile1020 {
	display: none;
}

/*** MOBIL und TABLET ***/

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

nav[role=navigation] li {
	padding: 0.1em 0 1em 0;
	text-align: center;
}

/** SPALTENLAYOUT 3 Navi **/
.nav_container {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  
  -webkit-flex-flow: row wrap;
  justify-content: space-between;
  padding: 10px;
  align-items: flex-start;
}
	
.fixed_navi {
	position: fixed;
	width: 100%;
    margin: 0px;
	background-color: white;
	z-index: 99;
}

.titelbild {
	margin-top:40px;
}

.list-flex {
	width: 100%;
}
	
.mobile1020 {
	display: block;
}

.desktop1020 {
	display: none;
}

.wrapper {
	padding-left: 0;
	padding-right: 0;
}

/*** Allgemein ***/
.column1 {
	margin-bottom:0px;
}

.column2,
.column2intro,
.column3, 
.column3-2,
.column4,
.column4-2,
.column4-3 {
	width: 100%;
	float: none;
}

.spacer2, 
.spacer3,
.spacer4 {
	display: none;
}

main {
	padding: 0 7% 7% 7%;
}

.abstandoben {
	padding-top: 20px;
}
	
.abstandoben2 {
	padding-top: 50px;
}

.module2, .module3, .column2, .teaser_abstand {
  margin-top:20px;
}
	
.column3 {
  margin-top:30px;
}

.text-left{
	text-align: left;
}

}