/**
 * Lokale Schriftarten für DSGVO-Konformität
 * Ersetzt Google Fonts mit lokalen Alternativen
 */

/* System-Schriftarten als Google Fonts Alternative */

/* Playfair Display Alternative - Serif für Überschriften */
.playfair-display {
  font-family: 'Times New Roman', 'Georgia', 'Playfair Display', serif;
  font-feature-settings: 'liga' 1;
  font-variation-settings: 'wght' 400;
}

.playfair-display.weight-500 {
  font-weight: 500;
}

.playfair-display.weight-600 {
  font-weight: 600;
}

.playfair-display.weight-700 {
  font-weight: 700;
}

/* Inter Alternative - Sans-serif für Fließtext */
.inter {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-feature-settings: 'liga' 1, 'kern' 1;
}

.inter.weight-300 {
  font-weight: 300;
}

.inter.weight-400 {
  font-weight: 400;
}

.inter.weight-500 {
  font-weight: 500;
}

.inter.weight-600 {
  font-weight: 600;
}

/* Outfit Alternative - Moderne Sans-serif */
.outfit {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
  font-feature-settings: 'liga' 1;
}

.outfit.weight-300 {
  font-weight: 300;
}

.outfit.weight-400 {
  font-weight: 400;
}

.outfit.weight-500 {
  font-weight: 500;
}

.outfit.weight-600 {
  font-weight: 600;
}

.outfit.weight-700 {
  font-weight: 700;
}

.outfit.weight-800 {
  font-weight: 800;
}

/* CSS Custom Properties für einheitliche Schriftarten */
:root {
  --font-serif: 'Times New Roman', 'Georgia', serif;
  --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'SF Mono', 'Cascadia Code', 'Roboto Mono', 'Menlo', 'Monaco', 'Courier New', monospace;
  
  /* Font Weights */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  
  /* Font Sizes */
  --text-xs: 0.75rem;     /* 12px */
  --text-sm: 0.875rem;    /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg: 1.125rem;    /* 18px */
  --text-xl: 1.25rem;     /* 20px */
  --text-2xl: 1.5rem;     /* 24px */
  --text-3xl: 1.875rem;   /* 30px */
  --text-4xl: 2.25rem;    /* 36px */
  --text-5xl: 3rem;       /* 48px */
  --text-6xl: 3.75rem;    /* 60px */
  
  /* Line Heights */
  --leading-tight: 1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.75;
}

/* Globale Font-Familie Overrides für bestehende Selektoren */
body {
  font-family: var(--font-sans) !important;
}

/* Serif für Überschriften */
h1, h2, h3, h4, h5, h6,
.logo-elegant,
.hero-title-elegant,
.section-title,
.category-title,
.page-title,
.section__title,
.card-title,
[class*="title"] {
  font-family: var(--font-serif) !important;
}

/* Sans-serif für Text-Elemente */
p, span, div, a, button, input, textarea, select,
.nav-elegant,
.btn,
.menu-item-elegant,
.contact-info,
.footer-section,
.form-input,
.form-textarea {
  font-family: var(--font-sans) !important;
}

/* Spezifische Klassen für erweiterte Typografie */
.font-serif {
  font-family: var(--font-serif);
}

.font-sans {
  font-family: var(--font-sans);
}

.font-mono {
  font-family: var(--font-mono);
}

/* Font Weight Utilities */
.font-light {
  font-weight: var(--weight-light);
}

.font-normal {
  font-weight: var(--weight-regular);
}

.font-medium {
  font-weight: var(--weight-medium);
}

.font-semibold {
  font-weight: var(--weight-semibold);
}

.font-bold {
  font-weight: var(--weight-bold);
}

.font-extrabold {
  font-weight: var(--weight-extrabold);
}

/* Text Size Utilities */
.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }
.text-3xl { font-size: var(--text-3xl); }
.text-4xl { font-size: var(--text-4xl); }
.text-5xl { font-size: var(--text-5xl); }
.text-6xl { font-size: var(--text-6xl); }

/* Line Height Utilities */
.leading-tight { line-height: var(--leading-tight); }
.leading-normal { line-height: var(--leading-normal); }
.leading-relaxed { line-height: var(--leading-relaxed); }

/* Font Optimierungen für bessere Lesbarkeit */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'kern' 1, 'liga' 1;
}

/* Responsive Font Scaling */
@media (max-width: 768px) {
  :root {
    --text-xs: 0.7rem;
    --text-sm: 0.8rem;
    --text-base: 0.9rem;
    --text-lg: 1rem;
    --text-xl: 1.1rem;
    --text-2xl: 1.25rem;
    --text-3xl: 1.5rem;
    --text-4xl: 1.875rem;
    --text-5xl: 2.25rem;
    --text-6xl: 2.75rem;
  }
}

/* Print-optimierte Schriftarten */
@media print {
  * {
    font-family: 'Times New Roman', serif !important;
  }
  
  body {
    font-size: 12pt;
    line-height: 1.4;
  }
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
  body {
    font-weight: 500;
  }
  
  h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
  }
}

/* Reduced Motion für Font-Animationen */
@media (prefers-reduced-motion: reduce) {
  * {
    font-variation-settings: initial !important;
  }
}