/* =============================================================================
   fonts.css — Premium-2026 Schrift-Stack
   -----------------------------------------------------------------------------
   Inter (Body + Display, Variable, 400/510/590/700)
   JetBrains Mono (Numerics + Mono, Variable)
   Sarabun (Thai-Override)

   Hinweise:
   - Inter Display nicht über Google Fonts → wir nutzen Inter mit
     `letter-spacing` und negativer Tracking für Display-Anmutung.
   - font-display: swap für Performance.
   ============================================================================= */

/* Selbst-gehostete Fonts: werden in index.php als versioniertes <link> geladen
   (fonts-local-main.css?v=mtime) — NICHT per @import (das umging die Cache-Busting). */

/* Body-Base: Inter mit optimierten Settings */
html, body {
  font-family: var(--font-body);
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';  /* Inter v3+ stylistic alts */
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Display-Klassen — Inter mit tight tracking simuliert Inter Display */
.text-display {
  font-family: var(--font-display);
  font-size: var(--text-display-size);
  line-height: var(--text-display-line);
  letter-spacing: var(--text-display-tracking);
  font-weight: var(--weight-medium);     /* 510 — der 2026er Premium-Trick */
}

.text-heading-lg {
  font-family: var(--font-display);
  font-size: var(--text-heading-lg-size);
  line-height: var(--text-heading-lg-line);
  letter-spacing: var(--text-heading-lg-tracking);
  font-weight: var(--weight-semibold);   /* 590 */
}

.text-heading {
  font-family: var(--font-display);
  font-size: var(--text-heading-size);
  line-height: var(--text-heading-line);
  letter-spacing: var(--text-heading-tracking);
  font-weight: var(--weight-semibold);
}

.text-heading-sm {
  font-family: var(--font-display);
  font-size: var(--text-heading-sm-size);
  line-height: var(--text-heading-sm-line);
  letter-spacing: var(--text-heading-sm-tracking);
  font-weight: var(--weight-medium);
}

.text-body-lg {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-line);
}

.text-body {
  font-size: var(--text-body-size);
  line-height: var(--text-body-line);
}

.text-body-sm {
  font-size: var(--text-body-sm-size);
  line-height: var(--text-body-sm-line);
}

.text-caption {
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-line);
  letter-spacing: var(--text-caption-tracking);
  font-weight: var(--weight-medium);
  text-transform: uppercase;
}

/* Mono-Klasse — Tabular Numerals Pflicht für Zahlen */
.text-mono,
.tabular {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum', 'ss01';
}

/* Generic: Numerics (Preise, Slots, Uhrzeit) immer tabular */
.num,
time,
.price,
.slot-time {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum';
}
