/* Grundlegende Stile */
body {
  font-family: 'Arapey', serif;
  font-size: 1.2em;
  color: #333;
  background-color: #f7f7f7;
  margin: 0;
  padding: 0;
}

header {
  background-color: #237c4c; /* Dunkelgrün aus dem Logo */
  color: #ffffff;
  padding: 10px 0;
}

.header-top {
  display: flex;
  align-items: center;
  justify-content: center; /* Zentriert die Inhalte */
  flex-wrap: wrap; /* Erlaubt Umbruch für kleinere Bildschirme */
  max-width: 1200px; /* Oder die maximale Breite, die Sie bevorzugen */
  margin: 0 auto; /* Zentriert den .header-top Container */
}

.logo {
  max-width: 300px; /* Passen Sie die Größe nach Bedarf an */
  height: auto;
  margin-right: 0px; /* Fügt einen rechten Abstand zum Logo hinzu */
}

header h1 {
  margin: 0 0 20px 0;
  font-family: 'Arapey', serif;
}

nav {
  margin-left: 10px; /* Fügt einen linken Abstand zur Navigation hinzu */
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center; /* Zentriert die Navigationselemente vertikal */
}

nav ul li {
  margin: 0 5px; /* Horizontale Abstände zwischen den Links */
}

nav ul li a {
  color: #ffffff;
  text-decoration: none;
  font-size: 1.2em; /* Aktualisierte Schriftgröße */
  padding: 8px 15px; /* Polsterung für eine größere klickbare Fläche */
  border-radius: 5px; /* Fügt abgerundete Ecken hinzu */
  transition: background-color 0.3s ease, color 0.3s ease; /* Weiche Übergänge für Hintergrund und Textfarbe */
}

nav ul li a:hover,
nav ul li a:focus {
  background-color: #fff; /* Dunkleres Grün für den Hover-Effekt */
  color: #237c4c; /* Wechselt die Textfarbe auf Weiß beim Hover */
  transition: background-color 0.3s ease, color 0.3s ease;
}

main {
  padding: 20px 20px 100px 20px;
  max-width: 1000px;
  margin: 0 auto;
}

section {
  background-color: #fff;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

h2,
h3 {
  color: #5e7856;
}

ul {
  list-style-position: inside;
}

footer {
  background-color: #237c4c;
  color: #ffffff;
  text-align: center;
  padding: 10px;
  display: flex;
  align-items: center; /* Zentriert die Inhalte vertikal */
  justify-content: space-between; /* Verteilt den Raum zwischen den Elementen */
  flex-wrap: wrap; /* Ermöglicht den Umbruch auf kleineren Bildschirmen */
}

footer p {
  margin: 0;
  flex-grow: 1; /* Erlaubt dem Text, den verfügbaren Raum zu nutzen */
  text-align: left;
}

.footer-nav {
  flex-grow: 1;
  text-align: right;
}

.footer-nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: inline-flex; /* Verwendet Flexbox für die Listenelemente */
}

.footer-nav ul li {
  margin: 0 10px;
}

.footer-nav ul li a {
  color: #ffffff;
  text-decoration: none;
  font-size: 0.8em;
}

.footer-nav ul li a:hover {
  text-decoration: underline;
}

/* Spezifische Stile für verschiedene Abschnitte */
.highlight,
.menu-category,
.ice-cream-introduction,
.ice-cream-ingredients,
.ice-cream-making,
.ice-cream-flavors,
.job-opportunities,
.working-environment,
.how-to-apply,
.imprint {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.grid-container {
  display: grid;
  grid-template-columns: 1fr 330px; /* Erstellt ein gleichmäßiges 2-Spalten-Layout */
  grid-gap: 20px;
  max-width: 1000px;
  margin: 20px auto;
  padding: 20px;
}

.introduction-text,
.map-container,
.opening-hours,
.gallery {
  background-color: #ffffff;
  padding: 20px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  border-radius: 5px;
}

.map-container {
  overflow: hidden; /* Verhindert, dass Inhalte über die Box hinausragen */
  position: relative; /* Ermöglicht absolute Positionierung des iframe-Elements innerhalb */
  padding-top: 56.25%; /* 16:9 Aspektverhältnis */
  height: 0; /* Wichtig, um das korrekte Verhältnis beizubehalten */
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%; /* Füllt die gesamte Breite der umgebenden Box aus */
  height: 100%; /* Füllt die gesamte Höhe der umgebenden Box aus */
  border: none; /* Entfernt den Rahmen um das iframe-Element */
}

.gallery-container {
  position: relative;
  max-width: 100%;
}

.gallery-image {
  width: 100%; /* Passt die Bildbreite an den Container an */
  border-radius: 5px; /* Abgerundete Ecken */
}

.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px; /* Größe der Pfeile */
  color: white;
  background-color: rgba(0, 0, 0, 0.5); /* Leicht transparenter Hintergrund */
  padding: 10px;
  border-radius: 0 5px 5px 0; /* Abgerundete Ecken für den linken Pfeil */
}

.next {
  right: 0;
  border-radius: 5px 0 0 5px; /* Abgerundete Ecken für den rechten Pfeil */
}

.cafe {
  max-width: 100%;
  height: auto;
}
/* Link-Stile */
a {
  color: #5e7856;
}

a:hover {
  color: #237c4c;
  text-decoration: underline;
}

/* Anpassungen für Listen */
.menu-category ul,
.ice-cream-flavors ul {
  list-style-type: none;
  padding-left: 0;
}

.menu-category li,
.ice-cream-flavors li {
  margin-bottom: 10px;
}

/* Speisekarte */
.menu-item {
  display: flex;
  justify-content: space-between; /* Verteilt den Raum zwischen den Kind-Elementen */
  align-items: center; /* Zentriert die Elemente vertikal */
  border: 1px solid #ccc;
  margin-bottom: 20px;
  padding: 10px;
  border-radius: 5px;
  background-color: #f9f9f9;
}

.popular-tag {
  background-color: #237c4c; /* Leuchtend gelber Hintergrund */
  color: #fffeef; /* Farbe des Textes */
  font-weight: bold;
  font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande',
    'Lucida Sans', Arial, sans-serif;
  padding: 2px 5px; /* Innenabstand */
  margin-left: 10px; /* Abstand vom Produkt-Titel */
  border-radius: 3px; /* Abgerundete Ecken */
  font-size: 0.8em; /* Kleinere Schriftgröße als der Titel */
  vertical-align: middle; /* Ausrichtung mit dem Titel */
}

.item-content {
  flex-grow: 1; /* Erlaubt dem Inhalt, den verfügbaren Raum zu nutzen */
}

.item-title {
  margin: 0 0 10px 0; /* Optimiert den Abstand */
  color: #237c4c; /* Dunkelgrün aus dem Logo */
}

.item-description {
  margin: 0 0 5px 0; /* Optimiert den Abstand */
  font-size: 0.9em; /* Etwas kleinere Schriftgröße für die Beschreibung */
}

.item-price {
  margin: 0;
  font-weight: bold;
  color: #237c4c;
  white-space: nowrap; /* Verhindert Umbruch des Preises */
}

/* Responsive Design */
@media (max-width: 1080px) {
  main {
    padding: 20px 10px; /* Anpassung der Polsterung für kleinere Bildschirme */
  }
}

@media (max-width: 768px) {
  .header-top {
    flex-direction: column;
    align-items: flex-start;
  }

  nav ul {
    flex-direction: column;
    width: 100%;
  }

  nav ul li {
    margin: 5px 0; /* Vertikaler Abstand für kleinere Bildschirme */
  }

  .grid-container {
    grid-template-columns: 1fr; /* Nur eine Spalte auf kleinen Bildschirmen */
  }

  .introduction-text,
  .opening-hours,
  .gallery,
  .map-container {
    grid-column: span 1; /* Jedes Element nimmt die volle Breite ein */
  }

  .map-container iframe {
    height: 250px; /* Höhenanpassung für die Karte auf kleineren Bildschirmen */
  }
}
