/* ============================================================
   Base · Body, Typografie-Defaults, Focus, Links, Headings
   ============================================================ */

html {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: var(--lh-relaxed);
}

body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  transition:
    background var(--t-med) var(--ease-out),
    color var(--t-med) var(--ease-out);
}

::selection { background: var(--c-blue); color: #fff; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  letter-spacing: var(--tracking-snug);
  color: var(--fg);
  overflow-wrap: break-word;
}
.page-legal section.section--hero h1 { hyphens: auto; }

h1 { font-size: var(--fs-h1); line-height: var(--lh-tight);  font-weight: var(--fw-semibold); letter-spacing: var(--tracking-tight); }
@media (max-width: 768px) { h1 { letter-spacing: 0.02em; } }
h2 { font-size: var(--fs-h2); line-height: var(--lh-snug);  font-weight: var(--fw-semibold); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-snug);  font-weight: var(--fw-semibold); }
h4 { font-size: var(--fs-subhead); line-height: var(--lh-normal); font-weight: var(--fw-semibold); }
h5 { font-size: 17px; line-height: var(--lh-normal); font-weight: var(--fw-semibold); }
h6 { font-size: 14px; line-height: var(--lh-normal); font-weight: var(--fw-semibold); letter-spacing: var(--tracking-uppercase); text-transform: uppercase; color: var(--fg-muted); }

p { color: var(--fg); }
p.lead { font-size: var(--fs-lead); color: var(--fg-muted); max-width: 60ch; }
p.meta { font-size: var(--fs-meta); color: var(--fg-muted); }

a { color: var(--accent); transition: color var(--t-fast) var(--ease-out); }
a:hover { color: var(--accent-deep); }
a:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 4px; }

strong, b { font-weight: var(--fw-semibold); }
em, i { font-style: italic; }

blockquote {
  font-family: var(--font-serif);
  font-size: var(--fs-quote);
  line-height: var(--lh-normal);
  color: var(--fg);
  border-left: 3px solid var(--c-blue);
  padding-left: var(--space-5);
  margin: var(--space-6) 0;
}

code, pre {
  font-family: var(--font-mono);
  font-size: 0.92em;
  background: var(--bg-soft);
  border-radius: var(--radius-xs);
  padding: 2px 6px;
  color: var(--fg);
}

hr { border: 0; height: 1px; background: var(--line); margin: var(--space-7) 0; }

/* Skip Link für Tastaturnutzer */
.skip-link {
  position: absolute; top: 16px; left: 16px;
  background: var(--c-blue); color: #fff;
  padding: 10px 16px; border-radius: var(--radius-sm);
  font-weight: var(--fw-semibold);
  z-index: var(--z-toast);
  transform: translateY(calc(-100% - 32px));
  transition: transform var(--t-fast) var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }

/* Image-Defaults */
img[loading="lazy"] { background: var(--bg-soft); }
