/**
 * Lokal gehostete Google Fonts - DSGVO-konform
 * - Open Sans (Regular 400, Semi-Bold 600)
 * - Playfair Display (Regular 400)
 * 
 * Download-Anleitung:
 * 1. Besuche: https://google-webfonts-helper.herokuapp.com/fonts
 * 2. Wähle "Open Sans" aus
 * 3. Wähle Styles: regular (400), 600
 * 4. Wähle Character-Set: latin, latin-ext
 * 5. Kopiere "Modern Browsers" CSS
 * 6. Download .woff2 Dateien
 * 7. Lade Dateien in /fonts/ Ordner hoch
 * 8. Wiederhole für "Playfair Display" (nur regular 400)
 */

/* ============================================
   GOOGLE FONTS - Lokal gehostet (DSGVO-konform)
   ============================================ */

/* Open Sans Regular (400) - Für Body-Text */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/open-sans-v44-latin_latin-ext-regular.woff2') format('woff2');
}

/* Open Sans Semibold (600) - Für Buttons, starke Betonungen */
@font-face {
  font-display: swap;
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/open-sans-v44-latin_latin-ext-600.woff2') format('woff2');
}

/* Playfair Display Regular (400) - Für Überschriften */
@font-face {
  font-display: swap;
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/playfair-display-v40-latin_latin-ext-regular.woff2') format('woff2');
}


/* ==========================================================================
   Font Loading Optimization
   ========================================================================== */

/**
 * Fallback-Stack wenn Fonts nicht laden
 */
body {
  font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', 
               Roboto, 'Helvetica Neue', Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, 'Times New Roman', Times, serif;
}


/**
 * Prevent Flash of Unstyled Text (FOUT)
 */
.fonts-loading body {
  visibility: hidden;
}

.fonts-loaded body,
.fonts-failed body {
  visibility: visible;
}