*, *::before, *::after { box-sizing: border-box; }

:root {
  --bg: #ffffff;
  --flaeche: #f4f6f8;
  --text: #16202b;
  --gedimmt: #4a5764;
  --linie: #d7dde3;
  --akzent: #14507a;
}

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding: 0 1.25rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text);
  background: var(--bg);
}

header, main, footer { max-width: 44rem; margin: 0 auto; }

h1, h2, h3 { line-height: 1.25; margin: 0; }

p { margin: 0; }

/* Kopfbereich */

.kopf {
  padding: 3rem 0 2rem;
  border-bottom: 2px solid var(--akzent);
}

.marke {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--akzent);
  margin-bottom: 0.5rem;
}

.kopf h1 {
  font-size: clamp(1.9rem, 6vw, 2.75rem);
  letter-spacing: -0.02em;
}

.unterzeile {
  margin-top: 0.75rem;
  color: var(--gedimmt);
  max-width: 34rem;
}

/* Abschnitte */

.block { padding: 2.25rem 0; border-bottom: 1px solid var(--linie); }

.block h2 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

.block p + p { margin-top: 0.85rem; }

/* Schrittliste */

.schritte {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: schritt;
}

.schritte li {
  counter-increment: schritt;
  position: relative;
  padding: 1rem 0 1rem 3.25rem;
  border-top: 1px solid var(--linie);
}

.schritte li:first-child { border-top: 0; padding-top: 0.25rem; }

.schritte li::before {
  content: counter(schritt);
  position: absolute;
  left: 0;
  top: 1rem;
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--akzent);
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.schritte li:first-child::before { top: 0.25rem; }

.schritte h3 {
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
}

.schritte p { color: var(--gedimmt); }

/* Hinweis */

.hinweis {
  border-bottom: 0;
}

.hinweis > * {
  background: var(--flaeche);
}

.hinweis h2,
.hinweis p {
  padding: 0 1.1rem;
}

.hinweis h2 {
  padding-top: 1.1rem;
  border-radius: 6px 6px 0 0;
  margin-bottom: 0.6rem;
}

.hinweis p {
  padding-bottom: 1.1rem;
  border-radius: 0 0 6px 6px;
  color: var(--gedimmt);
}

/* Fusszeile */

.fuss {
  padding: 1.75rem 0 2.5rem;
  border-top: 1px solid var(--linie);
  font-size: 0.875rem;
  color: var(--gedimmt);
}

@media (min-width: 40rem) {
  .kopf { padding-top: 4rem; }
  .block { padding: 2.75rem 0; }
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #10161c;
    --flaeche: #1a232c;
    --text: #eef2f6;
    --gedimmt: #b3bec9;
    --linie: #2d3945;
    --akzent: #6fb6e8;
  }
  .schritte li::before { color: #0d1319; }
}
