@charset "utf-8";
/* CSS Document */

/* Grundlayout für SELFHTML-Beispiele */

html {
  background: white;
  color: black;	
  font-family: AvenirWeb,"Avenir Next",Avenir,"Helvetica Neue",Arial,Helvetica,sans-serif;
}

body {
  margin: 10px auto;
  max-width: 65em;
}

h1, main, aside, main svg {
  padding: 1em;
  margin: 1em;
}

header {
  border-color: transparent;
}

#logo {
  font-size: 1.5em;
  line-height: 100%;
  display: block;
  background: darkblue;
  color: white;
  text-decoration: none;
  border-radius: 50%;
  width: 2.5em;
  height: 1em;
  padding: 1em 0.25em;
  margin: 0 0 1em;
}

/* blauer Balken für Überschrift, News und Footer */
h1, #news, footer {
  margin: 1em 0 0;
  padding: 0.5em 2em;
  background: skyblue;
  color: white;
  border-radius: 0 1em 0 1em;
}

h1 { /*oberer Rand muss höher sein, um Platz für Logo und Navigation zu haben */
  margin: 5em 0 0;
}

article img {
  width: 50%;
  float: right;
  margin-left: 0.5em;
}

figure {
  display: inline-block;
  width: 30%;
  margin: 0.2em;
}
figure img {
  width: 100%;
}
figure figcaption {
  font-style: italic;
}

nav a {
  background: white;
  color: darkblue;
  border: 2px solid transprent;
}
nav a:hover, nav a:focus {
  background-color: darkblue;
  color: white;
  border: 2px solid darkblue;
}

nav a[aria-current=page] {
	border: 2px solid;
}

a {
  color: darkblue;
}

table, th, td { 
  border: 1px solid; 
  border-collapse: collapse; 
}


/* responsives Layout */

body {
  display: flex;
  flex-flow: row wrap;
}

/* Mobile first - alle Dokument-Blöcke bekommen 100% Breite */
header, nav, nav a, article, section, aside, footer {
  padding: 1em;
  margin: 1em;
  flex: 1 1 100%;
}

header {
  display: flex;
  flex-flow: row wrap;
}

header * {
  flex: 1 1 0%;
}

header nav {
  flex: 1 1 100%;
}
nav, nav ul, nav li {
  margin: 0;
  padding: 0;
  border: none;
}
nav ul {
  display: flex;
  flex-direction: column;
}
nav li {
  list-style-type: none;
  margin: 1.3em 0;
  flex: 1 1 100%;
}
nav a {
  display: inline-block;
  border-color: transparent;	  
  width: 95%;
  margin: 0;
  text-decoration: none;
  text-align: center;
  font-weight: bold;
}

footer, #news {
  display: flex;
  flex-flow: row wrap;
}

#news {
  order: 3;
  flex: 1 1 100%;
}

#news * {
  justify-content: flex-start;
  font-size: 1rem;
  margin: 0;
  padding: 0;
}

#news h2:after {
  content: "  \00a0"; /* zweites Leerzeichen als Unicode */
}
#news p {
  margin-right: 0.5em;
}

footer {
  margin: 1em 0;
  padding: 0 1em;  
}

footer * {
  flex: 1 1 0%;
}

footer p:last-child {
  text-align: right;
}

/* Smart Phones und Tablets mit mittlerer Auflösung */
@media all and (min-width: 35em) {
header {
  margin: 1em 0;
  padding: 1em 0;
}

h1 {
  height: 1em;
  margin: 5em 0 0;
  padding: 0.5em 2em;
  background: skyblue;
  color: white;
}

#logo {
  margin: -4em 0 1em -1em;
}
	
nav ul {
  flex-direction: row;
  width: 80%;
  margin: -10em 0 0 20%;
}
nav li {
  margin: 0 1em;
  width: 10em;
  flex: 1 1 0%;
}
article {
  order: 1;
}

aside {
  order: 4;
}

footer {
  order: 5;
}
}

/* Terminkalender */

table, th, td { 
	width: 100%;
  	border: 1px solid; 
  	border-collapse: collapse; 
  	color: darkblue;
}

tr:nth-child(even) {
	background-color: #e6f2f7; 
}

th, td {
	padding: .5em;
}

th {
	background: darkblue;
	color: white;
}

caption {
	caption-side: bottom;
	padding-top: 2em;
	font-style: italic;
}

