/* ============================================================
   Self-hosted Google Fonts – DSGVO-konform (kein CDN-Aufruf)
   Font-Dateien liegen unter assets/fonts/{font-name}/
   Download: https://gwfh.mranftl.com/fonts
   ============================================================ */

/* Playfair Display – Headlines */
@font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/playfair-display/playfair-display-v37-latin-700.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/playfair-display/playfair-display-v37-latin-700italic.woff2') format('woff2');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* DM Sans – Body */
@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/dm-sans/dm-sans-v15-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'DM Sans';
  src: url('../fonts/dm-sans/dm-sans-v15-latin-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* Source Serif 4 – Akzent/Zitat */
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/source-serif-4/source-serif-4-v8-latin-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/source-serif-4/source-serif-4-v8-latin-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* ── Base ── */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-relaxed);
  color: var(--color-text);
  background-color: var(--color-neutral-light);
}

/* ── Headings ── */
h1, h2, h3,
.wl-heading {
  font-family: var(--font-headline);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  color: var(--color-neutral-dark);
}

h4, h5, h6 {
  font-family: var(--font-body);
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  color: var(--color-neutral-dark);
}

h1 { font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl)); }
h2 { font-size: clamp(var(--text-xl),  3vw, var(--text-3xl)); }
h3 { font-size: clamp(var(--text-lg),  2vw, var(--text-2xl)); }
h4 { font-size: var(--text-lg); }
h5 { font-size: var(--text-md); }
h6 { font-size: var(--text-base); }

/* ── Body Text ── */
p {
  margin-block-end: var(--space-4);
  max-width: var(--container-content);
}

/* ── Links ── */
a {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-color: var(--color-meadow-pale);
  text-underline-offset: 3px;
  transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}
a:hover,
a:focus-visible {
  color: var(--color-link-hover);
  text-decoration-color: var(--color-link-hover);
}

/* ── Pullquote / Blockquote ── */
blockquote,
.wl-pullquote {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-earth-dark);
  border-left: 4px solid var(--color-meadow-light);
  padding: var(--space-4) var(--space-6);
  margin: var(--space-8) 0;
  background-color: var(--color-wool-light);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

blockquote cite,
.wl-pullquote cite {
  display: block;
  margin-block-start: var(--space-3);
  font-family: var(--font-body);
  font-style: normal;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* ── Inline Text ── */
strong, b { font-weight: var(--weight-bold); }
em, i     { font-style: italic; }

small,
.wl-text-sm {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
}

.wl-text-muted { color: var(--color-text-muted); }
.wl-text-lead  {
  font-size: var(--text-md);
  line-height: var(--leading-relaxed);
  color: var(--color-neutral-mid);
}

/* ── Labels & Badges ── */
.wl-label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ── Code ── */
code, kbd, samp {
  font-family: ui-monospace, 'Cascadia Code', monospace;
  font-size: 0.9em;
  background-color: var(--color-neutral-light);
  padding: 0.1em 0.4em;
  border-radius: var(--radius-sm);
}
