:root {
  --color-overlay: rgba(8, 24, 42, 0.4);
  --color-box: rgba(255, 255, 255, 0.12);
  --color-border: rgba(255, 255, 255, 0.22);
  --color-heading: #f7fbff;
  --color-text: #e3edf7;
  --color-accent: #8cc8ff;
}

/* =========================
   Base Layout
========================= */

html,
body {
  height: 100%;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.5;
  display: grid;
  place-items: center;
  color: var(--color-text);
}


/* =========================
   Background Slider (Ken Burns)
========================= */

.bg-slider {
  position: fixed;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}


.bg-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.05);
  transition: opacity 1.5s ease-in-out, transform 60s ease-in-out;
  filter: saturate(1.15) contrast(1.05);
}

.bg-slide.active {
  opacity: 1;
  transform: scale(1.15);
}

/* Dark Overlay */
.bg-slider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(8, 24, 42, 0.45), rgba(8, 24, 42, 0.75));
  z-index: 1;
}


/* =========================
   Dots Navigation
========================= */

.bg-dots {
  position: fixed;
  bottom: 5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.bg-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.2);
  cursor: pointer;
  transition: all 0.3s ease;
}

.bg-dot.active {
  background: var(--color-accent);
  transform: scale(1.2);
}


/* =========================
   Content Box (Glassmorphism)
========================= */
.construction {
  width: 100%;
}

.construction-box {
  max-width: 700px;
  width: min(700px, 92vw);
  margin: 0 auto;
  padding: 3.5rem;
  text-align: center;
  background: var(--color-overlay);
  border: 1px solid var(--color-border);
  border-radius: 18px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35), 0 0 30px rgba(140, 200, 255, 0.08);
}


/* =========================
   Typography
========================= */
h1 {
  color: var(--color-heading);
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  /* text-transform: uppercase; */
  margin-bottom: 1.5rem;
}

p {
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.8;
}

.small {
  margin-top: 2rem;
  color: var(--color-accent);
  font-size: 0.95rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* =========================
   Footer
========================= */

.footer {
  position: fixed;
  bottom: 1.75rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
}

.footer-nav {
  display: flex;
  align-items: center;
  gap: .8rem;
  font-size: .9rem;
  letter-spacing: .04em;
}

.footer-nav a {
  color: rgba(255, 255, 255, .72);
  text-decoration: none;
  transition: color .25s ease, opacity .25s ease;
}

.footer-nav a:hover,
.footer-nav a:focus-visible {
  color: var(--color-accent);
}

.footer-nav span {
  color: rgba(255, 255, 255, .45);
}


/* =========================
   Impressum | Datenschutz
========================= */

/* Spezifische Klasse für Inhaltsboxen auf Unterseiten */
.legal-box {
  max-height: 60vh;
  overflow-y: auto;
  text-align: left;
  padding-right: 2rem;
  padding-right: 1.5rem;
  font-size: 0.9rem;
  line-height: 1.6;

  /* Moderne, standardisierte Steuerung für alle Browser (inkl. Firefox) */
  /* Macht den Balken schön schmal */
  scrollbar-width: auto;
  scrollbar-color: rgba(255, 255, 255, 0.2) rgba(255, 255, 255, 0.03);
  /* Farbe des Reglers & der Spur */
}

/* Macht die Überschriften im Impressum/Datenschutz kleiner */
.legal-box h1 {
  font-size: 1.8rem;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}

.legal-box h2 {
  font-size: 1.15rem;
  margin-top: 1.5rem;
  margin-bottom: .5rem;
  color: var(--color-heading);
}

.legal-box p {
  font-size: .9rem;
  line-height: 1.55;
  margin-top: .5rem;
}

.legal-box ul {
  padding-left: 1.2rem;
  margin: 0.5rem 0 1rem;
}

.legal-box li {
  font-size: .9rem;
  line-height: 1.25rem;
}

/* Optional: Hübscherer Scrollbalken für Webkit-Browser (Chrome, Safari, Edge) */
.legal-box::-webkit-scrollbar {
  width: 6px;
}

.legal-box::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
  background: rgba(255, 255, 255, 0.03);
  border-radius: 10px;
}

.legal-box::-webkit-scrollbar-thumb {
  background: var(--color-border);
  background: rgba(255, 255, 255, 0.2);
  border-radius: 10px;
}

.legal-box::-webkit-scrollbar-thumb:hover {
  background: var(--color-accent);
  /* Leuchtet dezent auf, wenn man drüberhovert */
}


/* =========================
   Responsive
========================= */

@media (min-width: 768px) {
  body {
    background-attachment: fixed;
  }
}

@media (max-width: 768px) {
  .bg-slide.active {
    transform: scale(1.08);
  }

  .bg-dot {
    width: 12px;
    height: 12px;
  }

  .bg-dots {
    gap: 12px;
    bottom: 16px;
  }
}


@media (max-width: 600px) {
  .construction-box {
    width: calc(100% - 4rem);
    max-width: none;
    padding: 1.5rem 1rem;
    margin: 0 auto;
    border-radius: 18px;
  }

  .bg-dots {
    bottom: 5rem;
  }

}


/* Greift auf Smartphones im Querformat (wenn die Höhe knapp wird) */
@media (max-height: 480px) and (orientation: landscape) {
  body {
    /* Falls nötig, erlaubt dem gesamten Body zu scrollen, damit nichts abgeschnitten wird */
    display: block;
    padding: 2rem 0;
  }

  /* .construction-box { */
    /* width: calc(100% - 4rem); */
    /* Deine gewünschte Breite */
    /* max-width: 600px; */
    /* margin: 0 auto; */

    /* Der Retter für das Querformat: Deutlich weniger Abstand oben und unten! */
    /* padding: 1.5rem 2rem; */
  /* } */

    .construction-box {
    width: 45vw; /* Die Box nimmt im Querformat nur noch 45% der Breite ein */
    max-width: 500px;
    
    /* Der Trick für Rechtsbündigkeit: */
    margin-left: auto;   /* Schiebt die Box nach rechts */
    margin-right: 2rem;  /* Hält 2rem Abstand zum rechten Bildschirmrand */
    
    padding: 1.5rem; 
  }

/* Schiebt die Dots im Querformat nach links unten */
  .bg-dots {
    left: 2rem;
    bottom: 2rem;
    transform: none; /* Hebt die Zentrierung auf */
  }

  /* Schiebt den Footer im Querformat über die Dots auf die linke Seite */
  .footer {
    left: 2rem;
    bottom: 4.5rem; /* Sitzt sauber über den Dots */
    transform: none; /* Hebt die Zentrierung auf */
  }

  h1 {
    font-size: 1.8rem;
    /* Macht die riesige Überschrift flacher */
    margin-bottom: 0.75rem;
  }

  p {
    font-size: 0.95rem;
    line-height: 1.5;
  }

  .small {
    margin-top: 1rem;
    /* Verringert den Abstand zum Slogan */
  }

}


/* =========================
   Reduced Motion Support
========================= */

@media (prefers-reduced-motion: reduce) {
  .bg-slide {
    transition: none !important;
  }

  .bg-slide.active {
    transform: none !important;
  }
}