*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* apply hyphenation to the whole website */
:lang(de) {
  hyphens: auto;
}

/* use this, if you don't want hyphenation in an area */
.no-hyphen {
  hyphens: none;
}

/* use this, if you don't want text to wrap in an area */
.no-wrap {
  white-space: nowrap;
}

/* for older browsers */
header, main, section, nav, article, footer {
  display: block;
}

/* normal-div */
div.normal-div {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
}

html {
  width: 100%;
  overflow-x: hidden; /* prevents that something flows out of the page, together with the same istruction in the body selector */
  font-size: 16px;
  scroll-behavior: smooth; /* scrolling instead of jumping */
}

/* variables */
:root {
  --logotextcolor: #005e9a;
  --bluehover: #009dff;
  --navbackground: #e5f5ff;
  --logostarcolor: #f4a700;
  --orangehover: #fbde9e;
  --fontsizenormal: 1.3rem;
}

body {
  font-family: Helvetica, Arial, sans-serif;
  font-size: var(--fontsizenormal);
  line-height: 1.5;
  width: 100%; /* Is this necessary? */
  overflow-x: hidden; /* prevents that something flows out of the page, together with the same istruction in the html selector */
}

/* Einstellungen des Content Containers */
div.content-container {
  max-width: 1600px; /* to restrict the width on wide screens */
  margin: 0 auto; /* center the content  */
  box-shadow: 0 0 30px rgba(0,0,0,0.25);
}

/* dividing line between sections */
hr {
  border: 2px solid var(--logostarcolor);
  width: 90%;
  margin: 40px auto;
}

/* instruction for the standard paragraph >> */
p {
  margin: 1.5rem 0 1rem 0;
}
/* instruction for the standard paragraph << */


/* TEXTE PAGE >> */

div.text-list p {
  margin-top: 1rem;
}

div.text-list ul {
  list-style-type: none;
  padding-left: 0;
  margin-left: 0;
}

/* TEXTE PAGE << */


/* TEXTS OF THE PAINTER >> */

.paper {
    font-family: 'Courier New', Courier, monospace;
    text-shadow: 0.01em 0 0 currentColor, -0.01em 0 0 currentColor;
    font-size: 1.5rem;
    width: min(1000px, 90%);
    padding: 5vw 6vw 5vw 6vw;
    margin: auto;
    margin-top: 90px;
    box-shadow: 0 0 20px rgba(0,0,0,0.25);
    border-radius: 3px;
  }

  .paper b {
    text-shadow: 0 0 0 currentColor;
  }

  p.text-ueberschrift {
    margin-bottom: 60px;
    text-decoration: underline;
  }

/* TEXTS OF THE PAINTER << */


/* EXHIBITION LIST >> */

.exhibition-list {
    font-family: Helvetica, Arial, sans-serif;
    font-size: var(--fontsizenormal);
    width: min(1000px, 90%);
    padding: 5vw;
    margin: auto;
    margin-top: 90px;
    box-shadow: 0 0 20px rgba(0,0,0,0.25);
    border-radius: 3px;
  }

li {
  margin-bottom: 15px;
  line-height: 1.3;
}

/* EXHIBITION LIST << */


/* AUDIO OF THE PAINTER >> */

.cassette {
    font-family: Helvetica, Arial, sans-serif;
    font-size: 1.3rem;
    width: min(1000px, 90%);
    padding: 5vw;
    margin: auto;
    border: 4px solid var(--logostarcolor);
    box-shadow: 0 0 20px rgba(0,0,0,0.25);
    border-radius: 10px;
  }

/* AUDIO OF THE PAINTER << */


/* VORHERIGER-NÄCHSTER-BLOCK >> */

nav.vorheriger-naechster {
  margin-top: 40px;
  text-align: center;
  border: none;
}

.grauer-link {
  color: gray;
  cursor: default;
}

.kurz {
    display: none;
}

/* Schmale Bildschirme */
@media (max-width: 450px) {
    .lang {
        display: none;
    }
    .kurz {
        display: inline;
    }
}

/* VORHERIGER-NÄCHSTER-BLOCK << */


/* ANSWERS TO LETTERS >> */

.answer {
    width: min(1000px, 90%);
    margin: auto;
  }

/* ANSWERS TO LETTERS << */

/* centers the text */
.centered {
  text-align: center;
}

/* formats a text bold */
.bold {
  font-weight: bold;
}

/* LINK SETTINGS >> */

/* for all links */
a {
  text-decoration: none;
}

a.bluelink:link { color: var(--logotextcolor); }
a.bluelink:visited { color: var(--logotextcolor); }
a.bluelink:hover { color: var(--bluehover); }
a.bluelink:active { color: var(--bluehover); }
a.bluelink:focus { color: var(--bluehover); }

a.orangelink:link { color: var(--orangehover); }
a.orangelink:visited { color: var(--orangehover); }
a.orangelink:hover { color: var(--logostarcolor); }
a.orangelink:active { color: var(--logostarcolor); }
a.orangelink:focus { color: var(--logostarcolor); }

/* LINK SETTINGS << */

/* AUDIO PLAYER >> */

/* audi-section */
section.audio-section {
  width: min(1000px, 100%);
  margin: auto;
}

.transcript {
  margin: 20px 0;
}

details {
  margin-top: 10px;
  margin-bottom: 40px;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  background-color: #f9f9f9;
}

details.inhaltsverzeichnis {
  margin-bottom: 25px;
}
summary {
  cursor: pointer;
  font-weight: bold;
  color: var(--logotextcolor);
}

summary:hover {
  color: var(--bluehover);
}

details[open] {
  background-color: #eef6ff;
}

audio {
  width: 100%;
}

/* AUDIO PLAYER << */

#above-nav-container {
  line-height: 0; /* without this, there is a space between the header image and the navigation bar */
}

/* main navigation bar  */
nav {
    width: 100%;
    /* background-color: var(--navbackground); */
    border-top: 4px solid var(--logostarcolor);
    border-bottom: 4px solid var(--logostarcolor);
    z-index: 1; /* Is this necessary? */
    text-align: center;
    padding-top: 7px;
    padding-bottom: 7px;
  }

  /* direct children of the nav element are positioned side by side */
  nav > div {
    display: inline-block;
  }

  /* submenus of the main menu */
.submenu {
    display: none;
    width: 100%;
    list-style-type: none;
    background-color: #fff;
    box-shadow: 3px 3px 5px gray;
    font-weight: normal;
    position: absolute;
    top: 100%;
    left: 0;
    padding: 0;
    z-index: 1;
    overflow: hidden;
}

/* Main menu item hover format */
nav > div:hover {
  background-color: rgba(0, 94, 153, 0.1);
  /* box-shadow: 0 4px 0px var(--logotextcolor) inset; */
  }

/* show submenu */
  nav > div:hover .submenu {
  display: block;
}

/* formats links in submenus */
.submenu a {
  width: 100%;
  text-align: left;
  border-bottom: 1px solid #c1c1c1;
  font-weight: normal;
}

/* vertical divider between submenu element groups */
.submenu a.divider {
  border-bottom: 3px solid #c1c1c1;
}

/* submenu item hover background */
.submenu a:hover {
  background-color: #f0f9ff;
}

/* important to position the submenus correctly */
div.main-menu-item {
  position: relative;
}

/* droparrow creation right of main menu items */
span.droparrow::after {
  display: inline-block;
  width: 8px;
  height: 10px;
  content: "";
  border-top: 8px solid var(--logotextcolor);
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
}

/* formats the links of the navigation bar (main and submenus) */
nav a {
  display: inline-block;
  padding: 2px 1vw 2px 1vw;
  /* padding: 6px 1vw; */
  text-decoration: none;
  color: var(--logotextcolor);
  font-weight: bold;
  text-align: center;
}

/* settings for the main picture in the large, medium and small version */
img.headerbild-gross, img.headerbild-mittel, img.headerbild-klein {
  display: block; /* Wichtig, damit Raum ohne Bild nicht kollabiert */
  width: 100%;
  height: auto;
  /* border-bottom: 4px solid var(--logostarcolor); */
}

.aspect-ratio-543 { /* Headerbild, groß, Breite 3000px x 552px */
  aspect-ratio: 5.43;
}

.aspect-ratio-402 { /* Headerbild, mittel, Breite 1281px x 319px */
  aspect-ratio: 4.02;
}

.aspect-ratio-268 { /* Headerbild, klein, Breite 840px x 313px */
  aspect-ratio: 2.68;
}

/* medium version of main picture is not shown (this is reversed for small screens with a media query) */
img.headerbild-mittel {
  display: none;
}

/* small version of main picture is not shown (this is reversed for small screens with a media query) */
img.headerbild-klein {
  display: none;
}

/* settings for h1 headers */
h1 {
  font-size: 2rem;
  line-height: normal;
  margin: 2rem auto 1.5rem auto;
  width: 90%;
}

/* h1 headers in normal-divs */
div.normal-div h1 {
  width: 100%;
}

/* settings for h2 headers */
h2 {
  font-size: 1.7rem;
  line-height: normal;
  margin: 1.8rem auto 1.5rem auto;
  width: 90%;
}

/* h2 mit 100% Breite */
h2.ohne { 
  width: 100%;
}

/* sets a header within a normal-div to the full width */
div.normal-div h2 {
  width: 100%;
}

/* settings for h3 headers */
h3 {
  font-size: 1.5rem;
  line-height: normal;
  margin:2rem auto 1rem auto;
}

/* settings for h4 headers */
h4 {
  margin-bottom: 6px;
}

/* CONTINUOUS TEXT IN COLUMNS >> */

div.columns {
  width: 90%;
  column-width: 500px;
  column-gap: 45px;
  word-wrap: break-word; /* prevents overflow of long words */
  margin: 20px auto;
}

/* otherwise text does not align at top */
.columns p {
  margin-top: 0;
}

/* CONTINUOUS TEXT IN COLUMNS << */

/* section with light blue background */
section.light-blue-section {
  background-color: var(--navbackground);
  /* padding-top: 20px; */
  padding-bottom: 20px;
  border-top: 3px solid var(--logostarcolor);
  border-bottom: 3px solid var(--logostarcolor);
  margin: 40px auto;
  width: 90%;
}

/* header in section with light blue background */
.light-blue-section h2 {
  text-align: center;
  padding-top: 1rem;
}

/* settings for unordered lists */
ul {
  padding-left: 30px;
  list-style-type: square;
  column-width: 500px;
  column-gap: 45px;
  word-wrap: break-word; /* prevents overflow of long words */
  margin-bottom: 2rem;
}

/* formats the bullet points of unordered lists */
ul li::marker {
  color: var(--logotextcolor);
  font-size: 1.5em;
}

.roter-punkt::marker {
  color: red;
}

.gruener-punkt::marker {
  color: green;
}

/* BUTTONS >> */

/* container for the buttons */
.buttons-container {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

/* container for one button */
.button-item {
  width: 260px;
  min-height: 100px;
  display: flex;
  flex: 0 0;
  justify-content: center;
  align-items: center;
  background-color: var(--logostarcolor);
  border: 4px solid var(--logotextcolor);
  border-radius: 30px;
  text-align: center;
  margin: 10px 20px;
  color: var(--logotextcolor);
  font-weight: bold;
}

.button-item:hover {
  background-color: var(--logotextcolor);
  border: 4px solid var(--logostarcolor);
  color: var(--logostarcolor);
}

/* BUTTONS << */


/* CONTACT DATA CONTAINER >> */

/* container for contact data */
div.contact-data-container {
  width: 450px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--logotextcolor);
  background-color: var(--navbackground);
  border-radius: 7px;
  padding: 30px 50px;
}

/* media query for smaller screens */
@media screen and (max-width: 600px) {
  /* contact-data-container gets wider */
  div.contact-data-container {
    width: 90%;
  }
}

/* CONTACT DATA CONTAINER << */


/* FORMS >> */

/* for labels in forms */
label {
  font-weight: bold;
  margin-bottom: 7px;
  display: inline-block;
}

/* contains form */
.form-container {
  width: 72%;
  padding: 35px 3vw;
  border: 1px solid var(--logotextcolor);
  background-color: var(--navbackground);
  border-radius: 7px;
  margin-left: auto;
  margin-right: auto;
  color: var(--logotextcolor);
}

/* form settings */
form {
  width: 100%;
  position: relative;
  margin: 20px auto 0 auto;
}

.row {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px 30px;
  margin-bottom: 20px;
}

/* settings for form elements */
input,
select,
textarea {
  width: 100%;
  padding: 8px 10px;
  background-color: #fff;
  border: 1px solid #c4cae0;
  border-radius: 7px;
  resize: vertical; /* nur für textarea */
  box-shadow: 1px 1px 3px rgba(0,0,0,0.15);
  font-size: 1em;
  font-family: Helvetica, Arial, sans-serif; /* only necessary for textarea */
  white-space: pre-wrap;
}

/* placeholder text disappears when field is in focus  */
input:focus::placeholder,
textarea:focus::placeholder {
  color: transparent;
}

input, select {
  height: 2em;
  font-size: 1em;
}

/* shows border around form fields when in focus */
input:focus,
select:focus,
textarea:focus {
  outline: none; /* deletes the standard outline */
  border: 1px solid var(--logotextcolor);
}

/* formats buttons in forms */
form button {
  background-color: var(--logostarcolor);
  border: 2px solid var(--logotextcolor);
  border-radius: 7px;
  padding: 10px;
  font-size: 1em;
  font-weight: bold;
  color: var(--logotextcolor);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.15);
}

/* hover effect for buttons in forms */
form button:hover {
  background-color: var(--logotextcolor);
  border: 2px solid var(--logostarcolor);
  color: var(--logostarcolor);
  cursor: pointer;
}

/* media query for smaller screens */
@media screen and (max-width: 1000px) {
  /* form container gets wider */
  .form-container {
    width: 90%;
  }
  .row {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px 30px;
    margin-bottom: 20px;
  }
}

/* FORMS << */


/* FOOTER >> */

/* settings for footer container */
footer {
  text-align: center;
  width: 100%;
  height: auto;
  background-color: var(--logotextcolor);
  border-top: 4px solid var(--logostarcolor);
  border-bottom: 4px solid var(--logostarcolor);
  font-size: 1rem;
  color: white;
  margin-top: 50px;
}

/* refers to div container that contains Kontakt, Impressum and Datenschutz */
footer > div {
  padding: 10px;
}

/* paragraph in footer */
footer p {
  margin: 1em 0;
}

/* FOOTER << */


/* BACK-TO-TOP BUTTON >> */

/* container for back-to-top button */
#gotopbtn {
  position: fixed;
  bottom: 1.5vw;
  right: 1.5vw;
  width: 40px;
  height: 40px;
  background-color: rgba(128, 128, 128, 0.5);
  border: 1px solid #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 37px;
}

/* creation of arrow to top */
.arrow-to-top::after {
  display: inline-block;
  content: "";
  width: 10px;
  height: 14px;
  border-bottom: 14px solid rgba(0, 0, 0, 0.8);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
}

/* BACK-TO-TOP BUTTON << */


/* ----------------- Bilder-Galerie >> ----------------- */

#gemaelde-galerie {
  column-width: 280px;
  column-gap: 40px;
}

figure.gemaelde-in-galerie {
  margin-bottom: 40px;
	background: white;
	padding-bottom: 15px;
	border: 0px solid black; /* Not visible. Delete? */
	border-radius: 5px;
	overflow: hidden;
  box-shadow: 0 3px 7px gray;
	transition: 0.3s;
}

figure.gemaelde-in-galerie:hover {
  box-shadow: 0 5px 9px gray, 0 5px 9px gray;
  transform: scale(1.015);
}

div.gemaelde {
	height: auto;
	overflow: hidden;
	margin-bottom: 15px;
}

figure.gemaelde-in-galerie img {
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

figcaption.gemaeldeinfos {
  padding-left: 15px;
  padding-right: 15px;
}

span.bildtitel {
  line-height: 1.4;
  margin-bottom: 0.5em;
}

span.gemaelde-details {
	font-size: 0.75em;
}

figure.gemaelde-in-galerie span {
	display: block;
  color: black;
  text-align: center;
}

/* ----------------- Bilder-Galerie << ----------------- */


/* ----------------- Foto-Galerie >> ----------------- */

#foto-galerie {
  column-width: 280px;
  column-gap: 40px;
}

figure.foto-in-galerie {
  margin-bottom: 40px;
	background: white;
	padding-bottom: 15px;
	border: 0px solid black; /* Not visible. Delete? */
	border-radius: 5px;
	overflow: hidden;
  box-shadow: 0 3px 7px gray;
	transition: 0.3s;
}

figure.foto-in-galerie:hover {
  box-shadow: 0 5px 9px gray, 0 5px 9px gray;
  transform: scale(1.015);
}

div.foto {
	height: auto;
	overflow: hidden;
	margin-bottom: 15px;
}

figure.foto-in-galerie img {
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

figcaption.fotoinfos {
  padding-left: 15px;
  padding-right: 15px;
}

/* span.fototitel {
  font-size: 0.75em;
  line-height: 1.4;
  margin-bottom: 0.5em;
} */

figcaption.fotoinfos p {
  font-size: 0.75em;
  line-height: 1.4;
  margin-bottom: 0.5em;
  margin-top: 1em;
}

/* figure.foto-in-galerie span {
	display: block;
  color: black;
  text-align: left;
} */

/* ----------------- Foto-Galerie << ----------------- */


/* ----------------- FOTOS IN TEXTEN >> ----------------- */

figure.foto-in-text {
  width: min(500px, 100%);
  font-family: Helvetica, Arial, sans-serif;
  margin: 30px auto 30px auto;
  background: white;
	padding-bottom: 15px;
	border-radius: 3px;
	overflow: hidden;
  box-shadow: 0 0 5px gray;
	transition: 0.3s;
}

figure.foto-in-text:hover {
  box-shadow: 0 0 10px gray;
  transform: scale(1.015);
}

div.foto {
	height: auto;
	overflow: hidden;
	margin-bottom: 15px;
}

figure.foto-in-text img {
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

figcaption.foto-in-text-infos {
  padding-left: 20px;
  padding-right: 20px;
}

figcaption.foto-in-text-infos p {
  text-shadow: none;
  font-size: 1.1rem;
  line-height: 1.4;
  margin-bottom: 0.5em;
  margin-top: 1em;
}

/* ----------------- FOTOS IN TEXTEN << ----------------- */


/* FREE IMAGES >> */

/* general settings for pictures on both sides */
img.free-image-left,
img.free-image-right {
  width: 400px;
  box-shadow: 3px 3px 5px gray, 0px 0px 5px gray; /* shadow is applied twice */
} 

/* settings only for pictures on the left side */
img.free-image-left  {
  float: left;
  margin: 9px 20px 20px 0;
}

/* settings only for pictures on the right side */
img.free-image-right  {
float: right;
margin: 20px 0 20px 20px;
}

/* media query for screens with a max-width of 900px */
@media screen and (max-width: 900px) {
  img.free-image-left,
  img.free-image-right {
    width: 350px; /* picture shrinks */
    } 
}

/* media query for screens with a max-width of 700px */
@media screen and (max-width: 700px) {
  img.free-image-left,
  img.free-image-right {
    width: 300px; /* picture shrinks */
    } 
}

/* media query for screens with a max-width of 600px */
@media screen and (max-width: 600px) {
  img.free-image-left,
  img.free-image-right {
    width: 100%;  /* picture takes the full width of the viewport */
    } 
}

/* FREE IMAGES << */



/* IMAGES LEFT, RIGHT >> */

figure.image-left,
figure.image-right {
  width: 400px;
  background: white;
	padding-bottom: 10px;
	border-radius: 3px;
	overflow: hidden;
  box-shadow: 0 0 7px gray;
	transition: 0.3s;
}

figure.image-left:hover,
figure.image-right:hover {
  box-shadow: 0 0 12px gray;
  transform: scale(1.015);
}

/* settings only for pictures on the left side */
figure.image-left {
float: left;
margin: 9px 30px 20px 0;
}

/* settings only for pictures on the right side */
figure.image-right {
float: right;
margin: 30px 0 20px 30px;
}

div.foto-left-right {
	height: auto;
	overflow: hidden;
	margin-bottom: 15px;
}

figure.image-left img,
figure.image-right img {
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

figcaption.foto-left-right-infos {
  padding-left: 20px;
  padding-right: 20px;
}

figcaption.foto-left-right-infos p {
  text-shadow: none;
  font-size: 1.1rem;
  line-height: 1.4;
  margin-bottom: 0.5em;
  margin-top: 1em;
}

/* media query for screens with a max-width of 900px */
@media screen and (max-width: 900px) {
  figure.image-left,
  figure.image-right {
    width: 350px; /* picture shrinks */
    } 
}

/* media query for screens with a max-width of 700px */
@media screen and (max-width: 700px) {
  figure.image-left,
  figure.image-right {
    width: 300px; /* picture shrinks */
    } 
}

/* media query for screens with a max-width of 600px */
@media screen and (max-width: 600px) {
  figure.image-left,
  figure.image-right {
    width: 100%;  /* picture takes the full width of the viewport */
    } 
}


/* IMAGES LEFT, RIGHT << */



/* ----------------- Media Queries ----------------- */

/* media query for screens with max 900px */
@media screen and (max-width: 900px) {
  
   /* large version of header picture disappears */
   img.headerbild-gross {
    display: none;
  }

  /* medium version of header picture appears */
  img.headerbild-mittel {
    display: block;
  }

}  

/* media query for screens with max 600px */
@media screen and (max-width: 600px) {

  /* large version of header picture disappears */
  img.headerbild-gross {
    display: none;
  }

  /* medium version of header picture disappears */
  img.headerbild-mittel {
    display: none;
  }

  /* small version of header picture appears */
  img.headerbild-klein {
    display: block;
  }

}