/* Font Bundle B (Self-Hosted)
 * Korrektur (2026-06-17): Cinzel + Great Vibes verwiesen hier auf
 * ./dist/Cinzel-400-latin.woff2, Cinzel-600-latin.woff2, GreatVibes-Regular.woff2
 * -- Dateien, die in diesem Arbeitsstand NIE in ./dist existiert haben. Jeder
 * Seitenaufruf loeste dadurch 3 fehlschlagende Font-Fetches aus ("Failed to
 * decode downloaded font" / "OTS parsing error: invalid sfntVersion" in der
 * Konsole, weil der Server statt echter Font-Bytes eine HTML-Fehlerseite
 * zurueckgab). Einzige tatsaechlich vorhandene Quelle war Josefin Sans (als
 * .ttf unter ../Josefin_Sans/) -- daraus wurden hier echte, gueltige .woff
 * Dateien erzeugt (fontTools, ohne Brotli/Netzwerk verfuegbar -> WOFF1 statt
 * WOFF2, aber valide und vom Browser ohne Fehler decodierbar).
 * Cinzel/Great Vibes sind unten bewusst AUSKOMMENTIERT statt durch Platzhalter
 * ersetzt, damit kein erneuter kaputter Fetch ausgeloest wird. --font-caps /
 * --font-script fallen bis auf Weiteres auf ihre bereits vorhandenen
 * System-Fallbacks zurueck (Trajan Pro/serif bzw. Brush Script MT/cursive).
 * Um die echten Schriften zurückzuholen: auf einem Rechner mit Internetzugang
 * `sh assets/font/selfhost/fetch-fonts.sh --refresh-great-vibes` ausführen
 * (lädt Cinzel 400/600 + Great Vibes nach ./dist) und die @font-face-Regeln
 * unten wieder einkommentieren. Siehe docs/BOTTLE_SPOTLIGHT_PAIR01.md
 * Abschnitt 19.
 */

/* HINWEIS: Für Production ideal unicode-range Subsets via fonttools/pyftsubset erzeugen. */

/* Josefin Sans (Variable Font - 300-700 weights) */
@font-face { font-family:'Josefin Sans'; src:url('./dist/JosefinSans-VariableFont_wght.woff') format('woff'); font-weight:300 700; font-style:normal; font-display:swap; }
@font-face { font-family:'Josefin Sans'; src:url('./dist/JosefinSans-Italic-VariableFont_wght.woff') format('woff'); font-weight:300 700; font-style:italic; font-display:swap; }

/* Cinzel (Caps) -- deaktiviert, echte Dateien fehlen (siehe Kommentar oben) */
/*
@font-face { font-family:'Cinzel'; src:url('./dist/Cinzel-400-latin.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Cinzel'; src:url('./dist/Cinzel-600-latin.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
*/

/* Great Vibes (Script) -- deaktiviert, echte Datei fehlt (siehe Kommentar oben) */
/*
@font-face { font-family:'Great Vibes'; src:url('./dist/GreatVibes-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
*/

:root {
  --font-base: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif;
  --font-sans: 'Josefin Sans', var(--font-base);
  --font-didone: 'Bodoni Moda', 'Didot', serif; /* derzeit ohne lokale @font-face */
  --font-caps: 'Cinzel', 'Trajan Pro', serif;
  /* Great Vibes-Datei fehlt aktuell (s.o.) -- Fallback ergänzt, damit kein Klartext-Serif greift */
  --font-script: 'Great Vibes', 'Brush Script MT', cursive;
}

/* Beispielhafte @font-face (Platzhalter) – nach Subsetting dist-Dateinamen einsetzen */
/* Inter Variable (falls lokal bereitgestellt) */
/*
@font-face {
  font-family: 'Inter';
  src: url('./dist/Inter-VariableFont_slnt,wght.subset.woff2') format('woff2');
  font-weight: 300 700;
  font-display: swap;
  font-style: normal;
}
*/

/* Bodoni Moda */
/*
@font-face {
  font-family: 'Bodoni Moda';
  src: url('./dist/BodoniModa-Regular.subset.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
*/

/* Cinzel */
/*
@font-face {
  font-family: 'Cinzel';
  src: url('./dist/Cinzel-Regular.subset.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
*/

/* Great Vibes */
/*
@font-face {
  font-family: 'Great Vibes';
  src: url('./dist/GreatVibes-Regular.subset.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
*/

.font-base { font-family: var(--font-base); }
.font-sans { font-family: var(--font-sans); }
.font-didone { font-family: var(--font-didone); }
.font-caps { font-family: var(--font-caps); letter-spacing:.08em; text-transform:uppercase; font-weight:400; font-variation-settings:normal; position:relative; }
/* Erstes Zeichen größer & stärker (falls Blocksatz: nur Buchstaben) */
.font-caps:first-letter { font-weight:600; font-size:1.18em; line-height:0.9; display:inline-block; }
/* Falls innerhalb Button / enger Fläche: leichte Reduktion vermeiden Überlauf */
button .font-caps:first-letter, .btn .font-caps:first-letter { font-size:1.1em; }
.font-caps--thin { letter-spacing:.16em; font-weight:400; opacity:.92; font-stretch:95%; }
.font-caps--thin:first-letter { font-weight:600; }
.font-script { font-family: var(--font-script); }

.hero-overline { font:600 .85rem/1.2 var(--font-didone); letter-spacing:.25em; }
.hero-script   { font:400 clamp(3rem,2rem + 6vw,6.5rem)/1.05 var(--font-script); }
.hero-subcaps  { font:400 clamp(1.2rem,1rem + 1.8vw,3rem)/1.08 var(--font-caps); letter-spacing:.12em; }
