* {
  box-sizing: border-box;
  background-color: var(--hauptfarbe-1-color);
}
/*** fürs Drucken*/
@media print {
  body {
  background-color: #ffffff;
  }
}

body {
  font-family: "Lucida Sans", Arial, Verdana, sans-serif;
  font-size: 100%;
  --hauptfarbe-1-color: #fffffc;/*Hintergrund, Schrift hell*/
  --hauptfarbe-2-color: #332200; /*Rand*//*Schrift dunkel*/
/*  --hauptfarbe-3-color: #332200;*/   
  --hauptfarbe-4-color: rgba(26, 17, 0, 0.93);/***Grau mit Transparenz*/
  min-width: 250px;  
}

/***Alles auf Anfang, Voreinstellungen für Margin und Padding löschen*/
div {
  margin: 0;
  padding: 0;
}

/***Rechts in der Kontaktbox gezeigte Überschriften für die Links */
.ueberschriftkontaktbox {
  margin: 0;
  padding-top: 15px;
  padding-bottom: 10px;
}

#inhalt p {
  padding-left: 10px;
  text-align: justify;
}

#immissionsschutz::before, #akustik::before, #datenschutz::before {
  content: '';
  display: block;
  height:      150px;
  margin-top: -150px;
  visibility: hidden;
  background-color: red;
}

.elementsichtbar{
  display: block;
}

.elementunsichtbar{
  display: none;
}

.grid-container {
  display: grid;
  width: 100%;
  /***Platz zwischen Zeilen und Spalten*/
  grid-gap: 5px 0px;
  /***Anordnung der Grid-Items in meinem Container mittig*/
  justify-content: center;
  /***Inhalt ist oben im Container*/
  align-content: start;  
  grid-template-columns: 100%;
  /***Seitenaufbau*/  
  grid-template-rows: auto;
  grid-template-areas: 
  'header'
  'menu'
  'inhalt'
  'footer';
}

/***Alle div-Elemente innerhalb des Containers bekommen ein Padding*/
/***Es folgen Allgemeine Anweisunge, die bei allen Bildschirmgrößen gültig sind*/
.grid-container div{
  padding: 5px;
  color:  var(--hauptfarbe-2-color);
}

#header {
  grid-area: header;
  text-align: left;
  border-bottom: 4px solid var(--hauptfarbe-2-color);  
  z-index:10;
}

#inhalt {
  grid-area: inhalt;
}

#footer {
  grid-area: footer;
  font-size: 80%;
  text-align: center;
}
/***Strich über dem Footer*/
#footer div {
  border-top: 1px solid var(--hauptfarbe-2-color);
  display: inline-block;
}
/***Diese Box wird nur bei großen Bildschirmen angezeigt. Kleine Bildschirme bekommen das Amazon-Menü unten*/
#kontaktbox {
  display: none;
}

#menu{
  grid-area: menu;
  outline: 10px solid var(--hauptfarbe-1-color);
  overflow: visible;
}

/*gültig für alle Grid-Elemente, gut fürs Bauen der Seite, kann ich später entfernen
#header, #inhalt, #footer, #menu, #kontaktbox {  
  border: 2px solid var(--hauptfarbe-2-color);
  border-radius: 3px;
}*/

#menu ul, p {
  margin: 0;
  padding: 5px 0px;
}

.listenichtalsliste {
  list-style-type: none;
}

.standardliste {
  list-style-type: disc;
}

.standardliste li {
  padding: 5px 5px 5px 5px;
}

a.linkimText  {
  display: inline-block;
  border-bottom: 5px solid var(--hauptfarbe-2-color);
  color: var(--hauptfarbe-2-color);
  text-decoration: none;
} 
a.linkimText:hover, a.linkimText:active, a.linkimText:focus {
  color: var(--hauptfarbe-1-color);
  background-color: var(--hauptfarbe-2-color);
  transition: background-color 0.5s;
  cursor: pointer;
}

/***Allgemeine Formatierung Links*/
a.linkallgemein  {
  display: inline-block;
  padding: 5px 5px;
  margin: 8px 5px;
  border-left: 5px solid var(--hauptfarbe-2-color);
  color: var(--hauptfarbe-2-color);
  text-decoration: none;
} 
a.linkallgemein:hover, a.linkallgemein:active, a.linkallgemein:focus {
  color: var(--hauptfarbe-1-color);
  background-color: var(--hauptfarbe-2-color);
  transition: background-color 0.5s;
  cursor: pointer;
}
/***Links im Text für den Kontakt */
a.kontaktlink  {
  display: inline-block;
  padding: 5px 5px;
  margin: 8px 5px;
  border: 1px solid var(--hauptfarbe-2-color);
  box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.5);	
  color: var(--hauptfarbe-2-color);
  text-decoration: none;
  font-size: 80%;
} 
a.kontaktlink:hover, a.kontaktlink:active, a.kontaktlink:focus {
  color: var(--hauptfarbe-1-color);
  background-color: var(--hauptfarbe-2-color);
  transition: background-color 0.5s;
  cursor: pointer;
}
a.kontaktlinkbild  {
  display: inline-block;
  padding: 5px 5px;
  margin: 8px 5px;
  border: 1px solid var(--hauptfarbe-2-color);
  box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.5);	
  color: var(--hauptfarbe-2-color);
  text-decoration: none;
} 
a.kontaktlinkbild:hover, a.kontaktlinkbild:active, a.kontaktlinkbild:focus {
  cursor: pointer;
}
.kontaktbild{	
  width: 25px;
  height: 25px;
  margin: auto;
  display: block;
  background-color: transparent;
}

/***Bei einem kleinen Display befindet sich das Menu fest unten im Bildschirm, es besteht aus E-Mail- und Telefonlink und Hamburger*/
@media screen and (max-width: 540px) {
#menu{
  grid-area: menu;
  position: fixed;	
  bottom: 10px;
  width: calc(90% - 16px);
  margin-left: 5%;
  margin-right: 5%;
  outline: 0;
  box-shadow: 5px 5px 8px 2px rgba(0, 0, 0, 0.2), 2px 2px 4px 0 rgba(0, 0, 0, 0.5);
  }
.grid-menu {
  display: grid;
  width: 100%;
  justify-content: space-around;
  grid-template-columns: 25% 25% 25%;
  grid-template-rows: auto;
  grid-template-areas: 
  'telefon email hamburger';
  border-radius: 5px;
  }
 #telefon{
  grid-area: telefon;
  }
  #email{
  grid-area: email;
  }
  #hamburger{
  grid-area: hamburger;
  }
  #telefon, #email, #hamburger{
  padding: 5px 20px;
  }
  #telefon img, #email img, #hamburger img {
  width: 25px;
  height: 25px;
  margin: auto;
  display: block;
  cursor: pointer;
  }
#footer {
  margin-bottom: 70px;
}
/***Dazu gibt es eine Side-Navigation, die taucht erst auf, wenn wir auf dem Hamburger klicken*/
  .navunsichtbar{
  display: none;
  }
  .navsichtbar{
  height: 100%;
  position: fixed;
  z-index: 1;
  top: 0;
  right: 0;
  background-color: var(--hauptfarbe-4-color);
  overflow-x: hidden;
  animation: sidenavigation 0.5s ease-out 1 forwards;
  }
  .closebutton {
  position: absolute;
  bottom: 50px;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
  text-decoration: none;
  color: var(--hauptfarbe-1-color);
  z-index: 10;
  background-color: transparent;
  }
  #menu ul {
  display: block;
  position: absolute;
  bottom: 44px;
  left: 50%;
  font-size: 140%;
  margin: auto;
  color: var(--hauptfarbe-1-color);
  background-color: transparent;
  }
  #menu li {
  padding: 10px 0;
  background-color: transparent;
  }    
  .navilink a, .navilink a:visited {
  color: var(--hauptfarbe-1-color);
  background-color: transparent;
  min-width: 150px;
  text-decoration: none;
  display: block;
  } 
  .navilink a:hover, .navilink a:active, .navilink a:focus {
  cursor: pointer;
  }  
}

/***Animation für die Navigation*/
@keyframes sidenavigation {
  from {width: 0%;}
  to {width: 100%;}
}

@media screen and (min-width: 541px) {
  .grid-container {
  grid-gap: 10px 10px;
  grid-template-columns: 30% calc(30% - 20px) 40%;
  grid-template-areas: 
  'header header header'
  'menu menu menu'
  'kontaktbox inhalt inhalt'
  'footer footer footer';
  }
  #menu {
  position: sticky;	
  top: 0;
  }
  #kontaktbox {
  grid-area: kontaktbox;
  display: inline-block;
  }
  #kontaktbox div {
  position: sticky;	
  top: 70px;
  display: inline-block;
  }  
  #menu ul {  
  padding: 0;
  }  
  #menu li {  
  display: inline-block;
  } 
  .navilink a, .navilink a:visited {
  color: var(--hauptfarbe-2-color);
  padding: 10px 15px;
  margin: 0 5px;
  box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.5);	
  border: 1px solid var(--hauptfarbe-2-color);  
  min-width: 100px;
  text-decoration: none;
  display: inline-block;
  } 
  .navilink a:hover, .navilink a:active, .navilink a:focus {
  background-color: var(--hauptfarbe-2-color);
  transition: background-color 0.5s;
  color: var(--hauptfarbe-1-color);
  cursor: pointer;
  }

/***So sieht der aktuell augewählte Link aus, dessen Inhalt wir grade anzeigen*/  
  .aktivenlinkmarkieren {
  font-weight: bold;
  } 
  #footer {
  margin-bottom: 0;
  }
/***Extra-Menu unten wird auf großen Bildschirmen ausgeblendet*/
  #telefon, #email, #hamburger, .closebutton{
  display: none;
  }
}

@media screen and (min-width: 800px) {
  .grid-container {
  grid-template-columns: 25% calc(50% - 20px) 25%;
  grid-template-areas: 
  'header header header'
  'menu inhalt kontaktbox'
  'menu footer kontaktbox';
  }   
  #menu ul {  
  padding: 0;
  margin-top: 0;
  }  
  .navilink a {
  display: block;
  padding: 10px 5px;
  margin: 0px 5px 20px 5px;
  border: 1px solid var(--hauptfarbe-2-color);
  border-left: 5px solid var(--hauptfarbe-2-color);
  box-shadow: 5px 5px 8px 2px rgba(0, 0, 0, 0.2), 2px 2px 4px 0 rgba(0, 0, 0, 0.5);
  min-width: 130px;
  } 
  .navilink a:hover, .navilink a:active, .navilink a:focus {
  padding-left: 10px;
  }
  #kontaktbox {
  margin-right: 10px;	
  }
  #header {
  position: sticky;	
  top: 0px;
  outline: 10px solid var(--hauptfarbe-1-color);
  }
  #menu{
  margin-left: 10px;
  position: static; /***wir nehmen das Sticky aus der Tabletansicht hier weg und weisen es der Liste zu*/
  }
  .sidenavigation { /***Das Elternelement muss inline sein, damit sticky funktioniert.*/
  display: inline;
  }
  #kontaktbox div, #menu ul {
  position: sticky;	
  top: 140px;
  /*border: 2px solid var(--hauptfarbe-2-color);
  border-radius: 3px;*/
  }
}

@media screen and (min-width: 1200px) {
  .grid-container {
  grid-template-columns: 15% 35% 15%;
  grid-template-areas: 
  'header header header'
  'menu inhalt kontaktbox'
  'menu footer kontaktbox';
  }
}

@media screen and (min-width: 1600px) {
  .grid-container {
  grid-template-columns: 12% 32% 12%;
  grid-template-areas: 
  'header header header'
  'menu inhalt kontaktbox'
  'menu footer kontaktbox';
  }
}