/* Rechtstexte (Impressum, Datenschutz – DE/EN).
   Eine gemeinsame Typografie für unseren Text (.legal, .hosting-section) und den
   Usercentrics-Policy-Generator (.uc-privacy-policy), dessen eingebettete Styles
   (.privacy-*) hier bewusst überschrieben werden.

   Skala:  Fließtext 15px/1.75 · h2 22px · h3 18px · h4 16px · Meta 13px
   Farben: nur über die Tokens unten, beide Themes WCAG 2.1 AA (≥ 4,5:1). */

:root {
  --legal-ink: #ffffff;
  --legal-text: #c5c6c7;
  --legal-muted: #9a9ca0;
  --legal-line: rgba(255, 255, 255, 0.1);
  --legal-soft: rgba(255, 255, 255, 0.04);
  --legal-link: #f7ca45;
}
html[data-theme="warm"] {
  --legal-ink: #0b0c10;
  --legal-text: #3f414a;
  --legal-muted: #5b5d66;
  --legal-line: #e8e2d0;
  --legal-soft: rgba(11, 12, 16, 0.035);
  --legal-link: #8a6a12;
}

/* ---------- Gemeinsame Basis ---------- */
.legal,
.hosting-section,
.uc-privacy-policy .privacy-wrapper {
  color: var(--legal-text);
  font-size: 0.9375rem;
  line-height: 1.75;
  font-weight: 400;
}
.legal p,
.hosting-section p,
.uc-privacy-policy .privacy-text {
  margin: 0;
  color: var(--legal-text);
  font-size: 0.9375rem;
  line-height: 1.75;
  font-weight: 400;
}
.legal p + p,
.hosting-section p + p { margin-top: 1rem; }

.legal h2,
.hosting-section h2,
.uc-privacy-policy .privacy-section-title {
  margin: 0;
  color: var(--legal-ink);
  font-size: 1.375rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.015em;
}
.legal h2,
.hosting-section h2 { margin: 2.75rem 0 1rem; }
.legal h2:first-of-type { margin-top: 0; }

.uc-privacy-policy h4.privacy-subtitle {
  margin: 0;
  color: var(--legal-ink);
  font-size: 1.0625rem;
  line-height: 1.5;
  font-weight: 600;
}

.legal strong,
.hosting-section strong,
.uc-privacy-policy .privacy-text strong,
.uc-privacy-policy .privacy-measure-title {
  color: var(--legal-ink);
  font-weight: 600;
}

/* Links: unterstrichen, damit sie nicht nur an der Farbe erkennbar sind (WCAG 1.4.1) */
.legal a,
.hosting-section a,
.uc-privacy-policy .privacy-text a,
.uc-privacy-policy .privacy-list a {
  color: var(--legal-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-thickness 0.2s ease;
}
.legal a:hover,
.hosting-section a:hover,
.uc-privacy-policy .privacy-text a:hover,
.uc-privacy-policy .privacy-list a:hover { text-decoration-thickness: 2px; }

/* ---------- Usercentrics-Struktur ---------- */
.uc-privacy-policy .privacy-wrapper { padding: 0; display: block; }
.uc-privacy-policy .privacy-content { gap: 0; }

/* Doppelte H1 ausblenden, die Seite hat bereits eine; Gültigkeitsdatum bleibt als Meta */
.uc-privacy-policy .privacy-title { display: none; }
.uc-privacy-policy .privacy-row { display: block; }
.uc-privacy-policy .privacy-meta-text,
.uc-privacy-policy .privacy-meta-group,
.uc-privacy-policy .privacy-meta-group span,
.uc-privacy-policy .privacy-meta-group strong,
.uc-privacy-policy .privacy-meta-group a {
  margin: 0;
  color: var(--legal-muted);
  font-size: 0.8125rem;
  line-height: 1.6;
  font-weight: 500;
}
.uc-privacy-policy .privacy-meta-group { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.35rem; }
.uc-privacy-policy .privacy-meta-group a { text-decoration: underline; text-underline-offset: 3px; }
.uc-privacy-policy .privacy-meta-group svg path { fill: var(--legal-muted); }

/* Abschnitte: jedes Kapitel (H2/H3) bekommt dieselbe Trennlinie und denselben Abstand,
   unabhängig davon, wie tief der Generator es verschachtelt */
.uc-privacy-policy .privacy-section { display: flex; flex-direction: column; gap: 1rem; }
.uc-privacy-policy .privacy-section.gap-small { gap: 0.5rem; }
.uc-privacy-policy .privacy-section.gap-large { gap: 0; }
.uc-privacy-policy .privacy-section .privacy-section { gap: 1rem; }
.uc-privacy-policy .privacy-section .privacy-section + .privacy-section { margin-top: 1.5rem; }
.uc-privacy-policy .privacy-section:has(> .privacy-section-title) {
  margin-top: 2.75rem;
  padding-top: 2.75rem;
  border-top: 1px solid var(--legal-line);
}

/* Listen */
.uc-privacy-policy .privacy-list {
  margin: 0;
  padding-left: 1.25rem;
  list-style: disc;
}
.uc-privacy-policy .privacy-list ::marker,
.uc-privacy-policy .privacy-list::marker { color: var(--legal-link); }
.uc-privacy-policy .privacy-list li::marker { color: var(--legal-link); }
.uc-privacy-policy .privacy-list .privacy-list-item + .privacy-list-item { margin-top: 0.5rem; }
.uc-privacy-policy .privacy-list-item .privacy-text { display: inline; }

/* Tabellen (falls der Generator welche liefert) */
.uc-privacy-policy .privacy-table-container {
  border: 1px solid var(--legal-line);
  border-radius: 14px;
  background: var(--legal-soft);
}
.uc-privacy-policy .privacy-table thead { background: var(--legal-soft); }
.uc-privacy-policy .privacy-table th,
.uc-privacy-policy .privacy-table td {
  color: var(--legal-text);
  font-size: 0.875rem;
  line-height: 1.5;
  border-color: var(--legal-line);
}
.uc-privacy-policy .privacy-table thead th { color: var(--legal-ink); border-bottom-color: var(--legal-line); }
.uc-privacy-policy .privacy-table tbody tr + tr td { border-top-color: var(--legal-line); }
.uc-privacy-policy .privacy-table a { color: var(--legal-link); text-decoration: underline; text-underline-offset: 3px; }

/* Fußzeile des Generators */
.uc-privacy-policy .privacy-footer {
  margin-top: 2.75rem;
  padding: 1.5rem 0 0;
  border: 0;
  border-top: 1px solid var(--legal-line);
  color: var(--legal-muted);
  font-size: 0.8125rem;
}
.uc-privacy-policy .privacy-footer .privacy-meta-group { color: var(--legal-muted); font-size: 0.8125rem; }

/* Hosting-Abschnitt (eigener Text) fügt sich als weiterer Hauptabschnitt an */
.hosting-section { margin-top: 2.75rem; padding-top: 2.75rem; border-top: 1px solid var(--legal-line); }
.hosting-section h2 { margin-top: 0; }

@media (max-width: 640px) {
  .legal h2,
  .hosting-section h2,
  .uc-privacy-policy h2.privacy-section-title { font-size: 1.25rem; }
  .uc-privacy-policy .privacy-section:has(> .privacy-section-title),
  .hosting-section { margin-top: 2.25rem; padding-top: 2.25rem; }
}

/* Lange deutsche Titel („Datenschutzerklärung“) dürfen auf kleinen Displays nicht überlaufen */
main h1.text-4xl { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 480px) {
  main h1.text-4xl { font-size: 1.75rem; line-height: 1.2; }
}

/* Erster eigener Block (Verantwortlicher) steht direkt unter der Seitenüberschrift */
.hosting-section--first { margin-top: 0; padding-top: 0; border-top: 0; }

/* Button „Datenschutzeinstellungen öffnen“ */
.legal-btn {
  display: inline-flex; align-items: center;
  padding: 0.7rem 1.4rem; border-radius: 999px;
  border: 1px solid var(--legal-muted); background: transparent;
  color: var(--legal-ink); font: inherit; font-size: 0.875rem; font-weight: 600; letter-spacing: 0.01em;
  cursor: pointer; transition: border-color 0.25s ease, background 0.25s ease;
}
.legal-btn:hover { border-color: var(--legal-ink); background: var(--legal-soft); }

/* Generator-Text beginnt nach dem eigenen „Verantwortlicher“-Block mit Trennlinie */
.hosting-section--first + .uc-privacy-policy {
  margin-top: 2.75rem;
  padding-top: 2.75rem;
  border-top: 1px solid var(--legal-line);
}
