/* Inhaltsseiten: Rechtliches, Quellen, Open Data. Nutzt die Token aus wahlabend.css, keine eigene Bildsprache. */

/* ── Kopf der Seite ───────────────────────────────────── */
.lesekopf { max-width: 72ch; }
.lesekopf .lage { max-width: 64ch; }
.entwurf { margin-top: 18px; }
.entwurf strong { font-weight: 700; }
@media print { .entwurf { display: none !important; } }

/* ── Raster: Inhaltsverzeichnis + Text ────────────────── */
.lesen { margin-top: 28px; }
@media (min-width: 1000px) {
  .lesen--toc { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 56px; align-items: start; }
  .lesen--toc .toc { position: sticky; top: calc(var(--pfad-h) + 20px); max-height: calc(100vh - var(--pfad-h) - 40px); overflow: auto; margin: 0; }
}

.toc { margin: 0 0 8px; padding: 12px 0 14px 16px; border-left: 2px solid var(--linie); font-size: 15px; }
.toc__titel { font-size: 15px; font-weight: 500; color: var(--gedaempft); }
.toc ol { list-style: none; margin: 6px 0 0; padding: 0; }
.toc a { display: inline-flex; align-items: center; min-height: 32px; padding: 2px 0; line-height: 1.3; text-decoration: none; }
.toc a:hover { text-decoration: underline; }
@media (pointer: coarse) { .toc a { min-height: 40px; } }

/* ── Fließtext ────────────────────────────────────────── */
.prosa { max-width: 70ch; }
.prosa__abschnitt { margin-top: 40px; }
.prosa__abschnitt:first-child { margin-top: 0; }
.prosa h2 {
  font-size: 20px; padding-bottom: 8px; border-bottom: 2px solid var(--tinte);
}
.prosa h2:focus { outline: none; }
.prosa h3 { font-size: 16px; margin-top: 24px; }
.prosa p, .prosa ul, .prosa ol, .prosa dl, .prosa address, .prosa .tabelle-wrap, .prosa .code { margin-top: 12px; }
.prosa h2 + p, .prosa h2 + ul, .prosa h2 + dl { margin-top: 14px; }
.prosa p, .prosa li, .prosa dd { line-height: 1.6; }
.prosa ul, .prosa ol { padding-left: 22px; }
.prosa li + li { margin-top: 6px; }
.prosa address { font-style: normal; }
.prosa .erklaer { max-width: none; }
.prosa .hinweis { max-width: none; }
.prosa code {
  font: .9em/1.4 ui-monospace, "Cascadia Mono", Consolas, "Ubuntu Mono", monospace;
  background: var(--flaeche); padding: 1px 4px; border-radius: 3px; overflow-wrap: anywhere;
}
.prosa blockquote { margin: 12px 0 0; padding: 2px 0 2px 14px; border-left: 3px solid var(--linie); color: var(--tinte); }

/* Angaben (Impressum, Kontakt): Bezeichnung über Wert */
.angaben { margin: 14px 0 0; }
.angaben > div { padding: 10px 0; border-bottom: 1px solid var(--linie); }
.angaben dt { font-size: 14px; color: var(--gedaempft); }
.angaben dd { margin: 2px 0 0; min-width: 0; overflow-wrap: anywhere; }
@media (min-width: 620px) {
  .angaben > div { display: grid; grid-template-columns: 13em minmax(0, 1fr); gap: 16px; }
  .angaben dd { margin: 0; }
}

/* Quellen: je Quelle ein Eintrag */
.quellen, .prosa .quellen { list-style: none; margin: 14px 0 0; padding: 0; }
.quellen > li { padding: 16px 0; border-bottom: 1px solid var(--linie); }
.quellen > li + li { margin-top: 0; }
.quellen h3 { margin: 0; font-size: 17px; }
.quellen .angaben { margin-top: 8px; }
.quellen .angaben > div { padding: 6px 0; border-bottom: 0; }

.prosa .tabelle td, .prosa .tabelle th { line-height: 1.45; vertical-align: top; }
.prosa .tabelle code { white-space: nowrap; }
@media (max-width: 719px) { .prosa .tabelle code { white-space: normal; } }

/* Platzhalter für Betreiberangaben: sichtbar, auch im Druck */
.platzhalter {
  background: var(--warn-flaeche); color: #5C3D00; box-shadow: inset 0 -2px var(--warn-rand);
  padding: 0 3px; border-radius: 2px; font-weight: 500;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}

/* ── Code-Beispiele ───────────────────────────────────── */
.code { position: relative; }
.code pre {
  margin: 0; padding: 12px 14px; overflow-x: auto; background: var(--flaeche); border-radius: 4px;
  font: 13.5px/1.55 ui-monospace, "Cascadia Mono", Consolas, "Ubuntu Mono", monospace; tab-size: 2;
}
.code pre code { background: none; padding: 0; font: inherit; overflow-wrap: normal; }
.code--mit-knopf pre { padding-top: 40px; }
@media (min-width: 620px) { .code--mit-knopf pre { padding-top: 12px; padding-right: 104px; } }
.code__kopieren {
  position: absolute; top: 6px; right: 6px; min-height: 30px; padding: 0 10px;
  border: 1px solid #CFC8D8; border-radius: 6px; background: #fff; color: var(--lila);
  font-size: 13px; font-weight: 500; cursor: pointer;
}
.code__kopieren:hover { border-color: var(--lila); }
@media (pointer: coarse) { .code__kopieren { min-height: 36px; } }
.code__ausgabe { margin-top: 6px; font-size: 14px; color: var(--gedaempft); }
.code--ausgabe pre { background: #fff; border: 1px dashed #CFC8D8; color: var(--tinte); }
.prosa .code + .code__ausgabe { margin-top: 10px; }
.prosa .code__ausgabe + .code { margin-top: 4px; }

/* ── Fuß: Links zu Rechtlichem und Open Data ──────────── */
.fuss__nav { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--linie); }
.fuss__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 20px; }
.fuss .fuss__nav a { display: inline-flex; align-items: center; min-height: 36px; margin-right: 0; font-size: 15px; }
.fuss .fuss__nav li:first-child a { font-weight: 500; }
@media (pointer: coarse) { .fuss .fuss__nav a { min-height: 44px; } }

@media print {
  .kopf, .pfad, .toc, .fuss, .code__kopieren, .skip { display: none !important; }
  .lesen--toc { display: block; }
  .prosa, .lesekopf { max-width: none; }
  .prosa h2 { break-after: avoid; }
  .prosa a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 12px; color: var(--gedaempft); overflow-wrap: anywhere; }
}
