/* styles Desktop 1280 min
======================== */
html {
	width:100%;
	background-color:#ccd6df;
	scroll-behavior: smooth;
}

body {
	display:grid;
	max-width:1200px;
	min-height: 100.1vh;
	margin:auto;
	grid: "head head" 191px
		  "menu headpic" 282px
	      "menu content" auto
	      "menu footer" min-content
	      / 296px 904px;
	grid-gap:0;
	background-color:#fff;
	font-family: 'Hind', sans-serif;
	font-size:18px;
	font-weight:400;
	color:#000;
	line-height:24px;
}	

/* Header mit Logobox und Langselect
====================================*/
#online {
	width:32px;
	height:27px;
	position:absolute;
	top:8px;
	right:8px;
	background:url('/images/icons/online.png') left 1px / 32px 25px no-repeat;
}
#online.online_0 {
	background:url('/images/icons/offline.png') left top / 32px 27px no-repeat;
}

header {
	grid-area:head;
	display:block;
	position:relative;
	width:1200px;
	height:191px;
	margin:auto;
	background:url('/images/header_back.png') left top / 100% 61px no-repeat #fff;
	z-index:1;
}

header #logo {
	display:block;
	position:absolute;
	right:0;
	top:60px;
	width:417px;
	height:79px;
	background:url('/images/logo_back.png') left top / 33px 33px repeat-x;
}

header #logo a {
	display:block;
	width:357px;
	height:79px;
	background:url('/images/logo.png') left top / 100% 100% no-repeat;
}

header #langselect {
	display:block;
	position:absolute;
	left:36px;
	top:60px;
	width:80px;
	height:32px;
}
header #langselect a {
	display:inline-block;
	width:30px;
	height:30px;
	margin:0;
	border:1px solid #00305d;
	color:#00305d;
	background-color:#fff;
	line-height:30px;
	text-align:center;
	font-size:16px;
	font-weight:bold;
	text-decoration:none;
	-webkit-transition: all 0.2s 0.2s;
	transition: all 0.2s 0.2s;
}
header #langselect a.selected {
	background-color:#00305d;
	color:#fff;
}
header #langselect a:first-child {
	margin-right:13px;
}
header #langselect a:hover {
	background-color:#eaebeb;
}

/* Menü
=======*/
#showmenu {
  display:none;
}

nav {
  grid-area:menu;
  display:block;
  position:relative;
  min-height:calc(100vh - 239px);
  background-color:#eaebeb;
  border-top:1px solid #00305d;
  padding:24px;
}

/*Ebene 1 Hauptmenü*/
nav ul {
	display: block;
	list-style-type: none;
	margin:0;
	padding:0;
}

nav li {
	padding:0;
	margin:0 0 8px 0;
}

nav a {
	text-decoration: none;
	color: #00305d;
	-webkit-transition: color .1s ease-in;
	transition: color .1s ease-in;
	line-height:100%;
}

nav li.selected a {
	font-weight:600;
}
nav li.open a {
	text-decoration:underline;
}

nav a:focus,
nav a:hover,
nav a:active {
	color:#000;
	-webkit-transition: color 0.01s;
	transition: color 0.01s;
}
  
/*Ebene 2 Untermenü */
nav ul ul {
	list-style-type: square;
	list-style-position:outside;
	margin:8px 0 0 32px;
}

nav li.selected li a,
nav li.open li a {
	font-weight:normal;
	text-decoration:none;
}
nav li.open li.selected a {
	font-weight:600;
}

/* Headpic-Slider
=================*/
#gallery {
	grid-area:headpic;
	position:relative;
	border-top:1px solid #00305d;
	border-bottom:1px solid #00305d;
	background-size:cover;
	margin:0;
	padding:0;
	z-index:10;
}
#gallery figure {
	display:block;
	position:absolute;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
}

/* Content-Boxen
================*/
#content {
  grid-area:content;
  display:block;
  position:relative;
  min-height:20%;
  padding:44px 64px 44px 64px;
  background-color:#fff;
}

h1 {
  font-size:28px;
  font-weight:400;
  line-height:125%;
  margin:0 0 20px 0;
  color:#00305d;
}

h2 {
  clear:both;
  font-size:20px;
  font-weight:800;
  line-height:125%;
  margin:0;
}

h3 {
  clear:both;
  font-size:20px;
  font-weight:600;
  line-height:150%;
  margin:0;
}

#content p {
  margin:0 0 30px 0;
}

#content p.small {
  font-size:12px;
}
  
#content *.hilite,
#content a {
  color:#00305d;
  text-decoration:none;
}

#content a:hover {
text-decoration:underline;
}

#content ul {
  list-style: square outside none;
  padding:0 0 20px 20px;
  margin:0;
}

#content table {
	max-width:100%;
}

#content table caption {
	background-color:#00305d;
	color:#fff;
	font-weight:bold;
	text-align:left;
	padding:8px;
}
#content table th {
	background-color:#33597d;
	color:#fff;
	text-align:left;
	font-weight:normal;
	vertical-align:top;
}
#content td, #content th {
	padding:8px;
	text-align:left;
	background-color:#f2f3f3;
}
#content tr:nth-child(odd) td {
	background-color:#eaebeb;
}
#content a.pdf {
  display:inline-block;
  padding:0 0 0 5.2%;
  height:200%;
  line-height:200%;
  background:url("/images/icons/pdf.png") left center no-repeat;
  background-size:auto 100%;
  border-bottom:0;
}

* a.video {
  display:inline-block;
  height:30px;
  padding:4px 0px 0px 52px;
  background:url("/images/icons/video.png") left 2px no-repeat;
}

*.rechts {
  float:right;
  margin-left:10px;
}

*.links {
  float:left;
  margin-right:10px;
}

*.zentriert {
  display:block;
  width:100%;
  text-align:center;
}

*.small {
  font-size:60%;
}

.clearfix:after {
    content: ".";
    clear: both;
    display: block;
    visibility: hidden;
    height: 0px;
}

p {
  -moz-hyphens: auto;
  -o-hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

input {
  margin-bottom:0.5vw;
}

input.newmenu {
	background-color:#eaebeb;
	color:#00305d;
	border:1px dotted #00305d;
}
a {
  -moz-hyphens: none;
  -o-hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

*.fehler {
  color:#C20000;
}

/* Kontaktformular
==================*/
input.kon_inp,
select.kon_inp {
  width:100%;
  padding:.5%;
  border:1px solid #999;
  border-radius:4px;
  margin:0 0 1% 0;
}

textarea.kon_txt {
  width:100%;
  height:20%;
  display:block;
  padding:.5%;
  border:1px solid #999;
  border-radius:4px;
  margin:0 0 1% 0;
  resize: none;
}

select.kon_sel {
	width:100%;
	padding:.5%;
	margin:0 0 1% 0;
}

div.g-recaptcha {
  margin-bottom:6px;
}

iframe.google_maps {
  width:50%;
  height:400px;
}

/* Sitebrowser
==============*/
ul.sitebrowser {
  line-height:150%;
}

/* Footer
=========*/
footer {
	grid-area:footer;
	display:block;
	margin-left:64px;
	width:calc(100% - 128px);
	display:block;
	bottom:0;
	padding:10px 0 20px 0;
	border-top:1px solid #00305d;
	font-size:14px;
	font-weight:600;
	color:#00305d;
}

footer a {
	color:#00305d;
}
footer a:hover {
	color:#000;
}

#message {
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	background-color:#f3f3f3;
	text-align:center;
	color:#000;
	display:inline-block;
	padding:20px;
	line-height:200%;
	border-bottom:1px solid #c2c2c2;
	z-index:10000;
}
#message.ok {
	background-color:#f2fff2;
}
#message.fehler {
	background-color:#fff2f2;
}

/* ==================================
   Mobile
===================================*/
@media only screen and (max-width:1199px) {	
	body {
		display:grid;
		min-width:380px;
		max-width:100vw;
		min-height:100.1vh;
		margin:auto;
		grid: "head" 140px
			"menu" min-content
			"headpic" min-content
			"content" auto
			"footer" min-content
	      / 100%;
		grid-gap:0;
		background-color:#fff;
		font-family: 'Hind', sans-serif;
		font-size:18px;
		font-weight:400;
		color:#000;
		line-height:24px;
	}
	header {
		width:100%;
		background-position:left -20px;
	}
	header #logo {
		position:relative;
		top:40px;
		width:100%;
		height:100%;
		background:url('/images/logo_back.png') right top / 50% 33px no-repeat;
	}
	header #logo a {
		width:357px;
		display:block;
		margin:auto;
		background:url('/images/logo.png') 0 0 / auto 79px no-repeat;
	}
	header #langselect {
		top:87px;
		left:0;
		width:32px;
		z-index:10;
	}
	header #langselect a {
		margin:0;
		border-left:0;
	}
	#langselect a.selected {
		display:none;
	}
	#gallery {
		height:30vw;
		min-height:119px;
	}
	#showmenu {
		display:block;
		position:absolute;
		top:90px;
		left:48px;
		height:32px;
		line-height:32px;
		font-size:40px;
		color:#a5a59e;
		z-index:20;
	}
	#showmenu:hover {
		cursor:pointer;
	}
	nav {
		z-index:50;
		position:absolute;
		top:140px;
		width:100%;
		height:auto;
		min-height:0;
		padding:0;
	}
	#menu {
		display:none;
		border-bottom:1px solid #00305d;
		box-shadow: 0 8px 8px #999;
	}
	#menu ul {
		margin:24px 48px;
	}
	#menu ul ul {
		margin:8px 0 0 32px;
	}
	#content {
		padding:24px 24px 48px 24px;
	}
	#content table {
		font-size:80%;
	}
	#content table th {
		display:none;
	}
	#content table tr {
		float:left;
		width:100%;
		margin-bottom:16px;
	}
	#content table tr td {
		background-color:#eaebeb;
	}
	#content table td {
		float:left;
		width:calc(60% - 16px);;
		border:1px solid #fff;
		position:relative;
		padding:8px 8px 8px calc(40% + 8px);
	}
	#content table td::before {
		content:attr(data-label);
		word-wrap:break-word;
		width:calc(40% - 16px);
		height:calc(100% - 16px);
		background-color:#33597d;
		color:#fff;
		font-weight:normal;
		padding:8px;
		position:absolute;
		left:0;
		top:0;
		margin:0;
	}
	footer {
	margin-left:48px;
	width:calc(100% - 96px);
	}
}