:root {
  --schrift-w: #e2e2dc;
  --schrift-bl: tomato;
  --schrift-gr: #bbbbbb;
  --schrift-hervorgehoben: #e9ecb4;
  --hg: #0a0a0a;
  --nav-hg: #070707e6;
  --popover-dunkel: #000000f2;
  --boxen: #1f1d1d;
  --box-schatten: #4e4d4d;
  --tabelle: #2b2b2b;
  --pfeil: #8a7676;
  --pfeil-hover: #615b5b;
  --header-popover: #16191deb;
  --error: #d33030;
  --raleway: "Raleway", sans-serif;
  --playfair: "Playfair Display", serif;
  --display: "DM Serif Display", serif;
  --grechen-fuemen: 'Grechen Fuemen', serif;
}

*, *::before, *::after {
    box-sizing: border-box;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  text-size-adjust: 100%;
}
body {
  background-color: var(--hg);
  font-family: var(--raleway);
  letter-spacing: 1px;
  color: var(--schrift-w);
  margin: auto;
  font-size: 15px;
}
img,
video {
  max-width: 100%;
  height: auto;
}
.inhalt {
  max-width: 800px;
  height: auto;
  margin: auto;
  padding: 10px;
}
.abstand {
  height: clamp(1.25rem, 4vw, 4.5rem);
}
h1,
h2,
h3,
h4,
h5 {
  font-family: var(--raleway);
  letter-spacing: 0.125rem;
  line-height: 1.3;
}
h1,
h2 {
  color: var(--schrift-bl);
}
h3,
h4,
h5 {
  color: var(--schrift-w);
}
h1 {
  font-size: clamp(1.25rem, 1.25rem + 0.9375vw, 2.375rem);
  font-weight: 500;
  line-height: 1.1;
}
h2 {
  font-size: 25px;
  font-weight: 600;
}
h3 {
  font-size: 18px;
  font-weight: 500;
}
h4 {
  font-size: 18px;
  font-weight: 400;
}
p,
li,
a {
  font-family: var(--raleway);
  color: var(--schrift-w);
  letter-spacing: 1px;
  text-align: justify;
  hyphens: auto;
  overflow-wrap: break-word;
  font-size: clamp(0.938rem, 0.725rem + 0.5vw, 1.063rem);
  font-weight: 400;
  line-height: 1.6;
  text-decoration: none;
}

@media (max-width: 450px) {
  p {
    text-align: left;
  }
}

figcaption {
  font-family: var(--raleway);
  letter-spacing: 1px;
  color: var(--schrift-w);
  margin-top: -3px;
  margin-left: 5px;
  font-size: 12px;
  font-style: italic;
  font-weight: 200;
  line-height: 20px;
}
.blocksatz {
  text-align: justify;
  hyphens: auto;
}
@media (max-width: 350px) {
.blocksatz {
    text-align: left;
  }
}
.akzent {
  color: var(--schrift-w);
  margin-bottom: -8px;
  margin-left: 5px;
}
.fett {
  font-size: 17px;
  font-style: italic;
  font-weight: 500;
  line-height: 24px;
}

.selektor {
  text-decoration: line-through;
}
.scroll-to-top {
  background-color: var(--schrift-bl);
  width: 35px;
  height: 35px;
  color: var(--schrift-w);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  z-index: 1000;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-size: 25px;
  font-weight: 800;
  transition: all 0.3s;
  display: flex;
  position: fixed;
  bottom: 30px;
  right: 30px;
}
.scroll-to-top.visible {
  opacity: 1;
  visibility: visible;
}
.scroll-to-top:hover {
  background-color: var(--boxen);
  transform: translateY(-2px);
}
@media (max-width: 768px) {
  .scroll-to-top {
    width: 30px;
    height: 30px;
    font-size: 18px;
    bottom: 20px;
    right: 20px;
  }
}

.bild-container {
  display: inline-block;
  position: relative;
}
.bild-container img {
  width: 100%;
  height: auto;
  display: block;
}
.text-overlay {
  font-family: var(--raleway);
  color: #ffffff1a;
  -webkit-text-stroke: 1px var(--schrift-gr);
  letter-spacing: 5px;
  font-size: clamp(1.25rem, 4.28571vw - 0.0892857rem, 5rem);
  font-weight: 800;
  line-height: clamp(0.625rem, 4.375vw - 0.195313rem, 5rem);
  position: absolute;
}
.oben-links {
  top: 20px;
  left: 30px;
}
@media (max-width: 750px) {
  .text-overlay {
    color: var(--schrift-bl);
    letter-spacing: 2px;
    font-size: 20px;
    font-weight: 300;
    line-height: 22px;
  }
  .oben-links {
    top: 8px;
    left: 30px;
  }
}
@media (max-width: 450px) {
  .text-overlay,
  .bild-container {
    display: none;
  }
}

.navbar {
  background-color: var(--nav-hg);
  max-width: 1920px;
  color: var(--schrift-w);
  z-index: 999;
  justify-content: space-between;
  align-items: center;
  margin: -4px auto auto;
  padding: 5px;
  display: flex;
  position: sticky;
  top: 0;
}
.navbar-brand {
  align-items: center;
  display: flex;
}
.navbar-re {
  gap: 20px;
  margin-right: 15px;
  display: flex;
}
.navbar-re a {
  font-size: 14px;
  text-decoration: none;
  transition: color 0.3s;
  color: var(--schrift-w) !important;
}
.navbar-re a:hover,
.navbar-re a.active {
  text-decoration: none;
  color: var(--schrift-bl) !important;
}
.hamburger {
  cursor: pointer;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 21px;
  display: none;
}
.hamburger .bar {
  background-color: var(--schrift-w);
  border-radius: 10px;
  width: 100%;
  height: 3px;
}
@media (max-width: 900px) {
  .navbar {
    z-index: 99;
    padding: 1rem;
  }
  .hamburger {
    display: flex;
  }
  .navbar-re {
    background-color: var(--hg);
    text-align: center;
    flex-direction: column;
    gap: 0;
    max-height: 0;
    transition: max-height 0.3s ease-out;
    position: absolute;
    top: 60px;
    left: 0;
    right: 0;
    overflow: hidden;
  }
  .navbar-re.active {
    max-height: 650px;
  }
  .navbar-re a {
    padding: 1rem;
    display: block;
  }
}

.fusszeile {
  background-color: var(--boxen);
  text-align: center;
  max-width: 1920px;
  height: auto;
  margin: auto;
}
.fusszeile-inhalt {
  text-align: center;
  max-width: 1400px;
  height: auto;
  margin: auto;
}
.logo-abstand {
  padding: 8px;
}
.schrift {
  color: var(--schrift-w);
  font-style: italic;
  font-weight: 300;
}
.schrift:hover {
  color: var(--schrift-w);
  text-decoration: underline;
}

/* --- FOOTER RESPONSIVE STYLES --- */

/* Logos flexibel nebeneinander / untereinander anordnen */
.footer-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 15px;
  padding: 0 10px;
}

.logo-abstand {
  padding: 8px;
  max-height: 80px; /* Begrenzt die Höhe der Logos auf Desktop */
  width: auto;
  object-fit: contain;
}

/* Links flexibel nebeneinander anordnen */
.footer-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Anpassungen speziell für Handys (unter 768px Breite) */
@media (max-width: 768px) {
  .fusszeile {
    width: 100%;
    overflow: hidden; /* Verhindert seitliches Rausragen */
  }

  .logo-abstand {
    max-height: 55px; /* Skaliert die Logos kleiner auf dem Handy */
    padding: 4px;
  }

  .footer-logos {
    gap: 10px;
  }

  .footer-links {
    gap: 15px;
  }

  .schrift {
    font-size: 14px;
  }
}

/* Anpassungen speziell für Handys (unter 500px Breite) */
@media (max-width: 500px) {
  .fusszeile {
    width: 100%;
    overflow: hidden; /* Verhindert seitliches Rausragen */
  }

  .logo-abstand {
    max-height: 35px; /* Skaliert die Logos kleiner auf dem Handy */
    padding: 4px;
  }

  .footer-logos {
    gap: 10px;
  }

  .footer-links {
    gap: 15px;
  }

  .schrift {
    font-size: 14px;
  }
}

/* Nur für iOS-Geräte (iPhones/iPads) unter 768px */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 768px) {
    .logo-abstand {
      max-height: 35px !important; /* Passt die Größe speziell für iPhones an */
      width: auto;
      height: auto;
      object-fit: contain; /* Löst das Safari-Skalierungsproblem */
      flex-shrink: 1;
    }
  }
}

/* Speziell für moderne iPhones (wie iPhone 12 Pro Max, 13 Pro Max, 14 Plus etc.) */
@media only screen 
  and (max-width: 768px) 
  and (-webkit-min-device-pixel-ratio: 3) {
  
  .logo-abstand {
    max-height: 40px !important;
    width: auto;
    height: auto;
    object-fit: contain;
    flex-shrink: 1;
  }
}