/* Impressum und Datenschutz (spec.md §7.2, design.md §17): gestaltet wie Coming-soon.
   Tintenschwarz, Knochen, Source Serif Fließtext höchstens 64 Zeichen, Überschriften AGC 700. */
.dunkel { background: var(--tintenschwarz); color: var(--knochen); }

/* Seitenrahmen: Kopf, Text und Fuß teilen sich denselben Außenrand, damit die Prozentwerte unten
   dieselbe Satzbreite meinen. Die Wortmarke ist hier klein: 480 px, nie darunter (design.md §10.3),
   außer die Satzbreite ist schmaler. */
.recht-seite { min-height: 100svh; display: flex; flex-direction: column; padding: 0 var(--rand);
  --logo-b: min(480px, 100%);
  /* sichtbare linke Kante der Wortmarke (176/2880 der Maske): daran stehen Text und Fuß */
  --kante: calc(var(--logo-b) * .0611); }
.recht-kopf { padding-top: calc(var(--zeile) * 6); }

/* Logo wie auf der Startseite (zwei Ebenen desselben Maskenbilds), aber ohne Animation:
   die Kratzebene entfällt, die volle Ebene mit der Kratztextur der Logo-Datei steht sofort.
   Die 960er-Maske ist bei 480 px und 2× Pixeldichte genau 1:1; erst bei ≥ 2,5× (1440 px) die 1440er. */
.logo { display: block; position: relative; width: var(--logo-b); aspect-ratio: 4495 / 3601; --maske: url(/media/logo/haupt-960.7d0230f3.webp); }
@media (min-resolution: 2.5dppx) { .logo { --maske: url(/media/logo/haupt-1440.293841d6.webp); } }
.logo span { position: absolute; inset: 0; background: var(--knochen);
  -webkit-mask-image: var(--maske); mask-image: var(--maske);
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.logo .logo__kratz { display: none; }
.logo .logo__voll { opacity: 1; }

.recht { hyphenate-limit-chars: 8 4 4; flex: 1; max-width: 64ch; margin-left: var(--kante);
  padding: calc(var(--zeile) * 8) 0 calc(var(--zeile) * 12); }
.recht .seite { font-size: clamp(3rem, 7vw, 6rem); }
.recht .h3 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-top: calc(var(--zeile) * 6); }
.recht .h3 + p { margin-top: calc(var(--zeile) * 2); }
.recht p { margin: calc(var(--zeile) * 2) 0 0; }
.recht p:first-child { margin-top: 0; }
.recht a { hyphens: none; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.recht a:hover, .recht a:focus-visible, .fuss a:hover, .fuss a:focus-visible { text-decoration-thickness: 2px; }

/* Fuß wie auf der Startseite: Source Serif klein, an derselben Kante. */
.fuss { display: flex; flex-wrap: wrap; gap: 0 calc(var(--zeile) * 3); font-size: .875rem; line-height: 1.5rem;
  padding: 0 0 calc(var(--zeile) * 3) var(--kante); }
.fuss a { color: var(--knochen); padding-block: calc(var(--zeile) / 2); text-underline-offset: .22em; }

/* Silbentrennung (Fixrunde 1): Anschrift, Vorstand und § 18 (Impressum) nie trennen; im Fließtext
   Eigennamen und Abkürzungen (.nt) weder trennen noch umbrechen. */
.recht--adr { hyphens: manual; }
.nt { hyphens: manual; white-space: nowrap; }
/* Versalien-Überschriften: AGC hat ein enges Leerzeichen, Wortabstand angehoben (Sperrung unverändert). */
.recht .head { word-spacing: .16em; }
/* Zäsur zwischen Seitentitel und erstem Abschnitt: 12 × 8 px (steht am Ende, gewinnt gegen .h3). */
.recht .seite + * { margin-top: calc(var(--zeile) * 12); }
/* Impressum: die Anschrift rückt normal an den Titel, die große Zäsur steht erst vor der ersten Zwischenüberschrift. */
.recht--adr .seite + p { margin-top: calc(var(--zeile) * 2); }
.recht--adr .h3:first-of-type { margin-top: calc(var(--zeile) * 12); }

/* Drift-Schutz: Logo-, Fuß- und --kante-Regeln sind aus start.css nachgebaut (nicht zusammengelegt).
   Änderungen dort (Logobreite, Maske, Kante 0,0611, Fußabstände) hier nachziehen. */
