/* Legal pages only: impressum.html, datenschutz.html, privacy.html.
   Builds on styles/site.css (.page-head, .sec, .sec-label, .split, .prose, .note, .missing). */

/* Label/value list: mono label, text value, hairlines. A plain list, no cards. */
.legal-list { border-top: 1px solid var(--df-ui-line); max-width: 52rem; }
.legal-list > div {
  display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(0, 5fr);
  gap: 2px var(--s3); align-items: baseline;
  padding: 14px 0; border-bottom: 1px solid var(--df-ui-line);
}
.legal-list dt { font: 400 var(--fs-mono)/1.5 var(--df-font-mono); letter-spacing: .02em; color: var(--df-ui-text-dim); }
.legal-list dd { line-height: 1.55; text-wrap: pretty; overflow-wrap: anywhere; }
.prose .legal-list { margin-top: var(--s3); }
.prose .legal-list + p { margin-top: var(--s3); }

/* Text column next to the H2 starts level with the H2, also when it opens with a subhead. */
.split > .prose > :first-child { margin-top: 0; }

/* Running text after a list inside a section. */
.legal-text { max-width: 52rem; text-wrap: pretty; }
.legal-text + .legal-text { margin-top: 1em; }

/* Right-of-objection paragraph (Art. 21 GDPR): set apart as its own block. */
.legal-callout {
  margin-top: var(--s5); padding: var(--s3);
  background: var(--df-ui-bg-1); border: 1px solid var(--df-ui-line-strong);
}
.legal-callout > * + * { margin-top: .9em; }
.prose .legal-callout h3 { margin-top: 0; }
.prose .legal-callout + * { margin-top: var(--s5); }

/* "As of" line at the end of the privacy text. */
.legal-date { margin-top: var(--s5) !important; }

@media (max-width: 640px) {
  .legal-list > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .legal-callout { padding: var(--s2); }
}

/* Keep a missing-field marker on one line. */
.missing { white-space: nowrap; }
