/* ==========================================
   Lokale Schriftdefinitionen (Noto & Merriweather)
   ========================================== */

@font-face {
  font-family: 'Noto';
  src: url('../assets/fonts/noto/noto-sans-v42-latin-100.woff2') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Noto';
  src: url('../assets/fonts/noto/noto-sans-v42-latin-200.woff2') format('woff2');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Merriweather';
  src: url('../assets/fonts/merriweather/merriweather-v33-latin-300.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Merriweather';
  src: url('../assets/fonts/merriweather/merriweather-v33-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ==========================================
   Reset & Base
   ========================================== */

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

html {
  margin: 0;
  padding: 0;
  overflow-x: clip; /* Verhindert horizontales Scrollen OHNE sticky zu brechen */
  overflow-y: auto; /* Erlaubt vertikales Scrollen */
}

body {
  margin: 0;
  padding: 0;
  overflow: visible; /* ← WICHTIG für sticky! */
  position: relative;
}


/* ==========================================
   Body - Mobile First (Default)
   ========================================== */
body {
  font-family: 'Noto', sans-serif;
  font-weight: 100;
  color: #2b2b2b;
  background-color: transparent;
  line-height: 1.6;
  padding-top: 0px;
  position: relative;
  margin: 0;
}

/* ==========================================
   Typografie
   ========================================== */

h1, h2, h3 {
  max-width: 960px;
  margin: 1.5rem auto;
  padding: 0 rem;
  color: #2b2b2b;
  font-weight: 300;
  letter-spacing: 0.01em;
  line-height: 1.3;
  font-family: 'Noto', sans-serif;
}

h1 { 
  font-size: 1.75rem;
  margin: 1rem auto 0.5rem;
}

h2 { 
  font-size: 1.35rem; 
}

h3 { 
  font-size: 1.2rem; 
  color: #333; 
}

p, li {
  font-family: 'Noto', sans-serif;
  font-weight: 300;
  font-size: 1rem;
  color: #333;
  line-height: 1.7;
}

/* ==========================================
   Wave Canvas Background - OPTIMIERT
   ========================================== */

canvas,
#wave-bg,
.wave-canvas {
  display: block !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover;
  z-index: -1 !important;
  pointer-events: none !important;
  will-change: transform; /* GPU-Beschleunigung */
}



/* ⚡ OPTIMIERT: Kein Blur mehr! */
.content-section {
  background: rgba(255, 255, 255, 0.95); /* Höhere Deckkraft */
  border-radius: 12px;
  padding: 1.5rem;
  margin: 1rem 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

/* ==========================================
   Reduced Motion (Barrierefreiheit)
   ========================================== */

@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* ==========================================
   RESPONSIVE: Desktop (ab 769px)
   ========================================== */

@media (min-width: 769px) {
  body {
    padding-top: 100px;
  }

  .page-container {
    padding-top: 0.5rem;
    padding-bottom: 4rem;
  }

  h1 {
    font-size: 2.5rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }

  h2 {
    font-size: 1.75rem;
  }

  .content-section {
    padding: 2rem;
    margin: 2rem 0;
  }
}
