/* Rechtsseiten: Impressum, AGB, Widerruf, Datenschutz, Schutzvereinbarung.
   Gleiche Farb- und Schriftwelt wie stil.css, aber auf Lesbarkeit langer
   Fliesstexte ausgelegt. Ersetzt das nie ausgelieferte /website/legal.css. */

:root {
  --tief:        #0B1220;
  --weich:       #0E1628;
  --karte:       #11192E;
  --linie:       #1B2740;
  --linie-stark: #2A3A5C;
  --text:        #F5F7FA;
  --text-2:      #B9C2D1;
  --text-3:      #98A2B4;
  --text-4:      #7C879B;
  --akzent:      #FFFFFF;
  --akzent-haar: rgba(255,255,255,0.20);
  --warnton:     #C8A24A;

  --serif: 'Source Serif 4', 'Iowan Old Style', Charter, Georgia, serif;
  --sans:  'Instrument Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --rand: 780px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--tief);
  color: var(--text-2);
  font: 400 16px/1.72 var(--sans);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--text); text-decoration: none; border-bottom: 1px solid var(--akzent-haar); }
a:hover { border-bottom-color: var(--akzent); }

/* ---------- Kopfleiste ---------- */

.legal-topbar {
  background: rgba(11,18,32,0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--linie);
  position: sticky; top: 0; z-index: 20;
}
.legal-topbar-inner {
  max-width: var(--rand); margin: 0 auto; padding: 0 28px;
  height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.legal-brand {
  font: 500 16px/1 var(--sans);
  color: var(--text); border: 0;
}
.legal-back {
  font: 400 14px/1 var(--sans);
  color: var(--text-3); border: 0;
}
.legal-back:hover { color: var(--text); }

/* ---------- Inhalt ---------- */

.legal-main { max-width: var(--rand); margin: 0 auto; padding: 56px 28px 88px; }

.legal-kicker {
  font: 500 12px/1 var(--sans);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-4);
  margin-bottom: 14px;
}

h1 {
  font: 400 40px/1.14 var(--serif);
  color: var(--text);
  letter-spacing: -0.018em;
  margin: 0 0 12px;
}
h2 {
  font: 400 24px/1.3 var(--serif);
  color: var(--text);
  letter-spacing: -0.01em;
  margin: 44px 0 12px;
  padding-top: 22px;
  border-top: 1px solid var(--linie);
}
h2:first-of-type { border-top: 0; padding-top: 0; }

p { margin: 0 0 14px; }
strong { color: var(--text); font-weight: 500; }

.legal-lead {
  font: 400 18px/1.6 var(--serif);
  color: var(--text);
  margin: 0 0 30px;
}

.legal-meta {
  font-size: 14px;
  color: var(--text-4);
  margin: 0 0 34px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--linie);
}

/* ---------- Bausteine ---------- */

.legal-card {
  background: var(--karte);
  border: 1px solid var(--linie-stark);
  border-radius: 5px;
  padding: 22px 24px;
  margin: 0 0 26px;
}
.legal-card p:last-child { margin-bottom: 0; }

.legal-warning {
  background: rgba(200,162,74,0.07);
  border: 1px solid rgba(200,162,74,0.34);
  border-left: 3px solid var(--warnton);
  border-radius: 4px;
  padding: 18px 20px;
  margin: 0 0 26px;
  color: var(--text-2);
  font-size: 15px;
}
.legal-warning strong { color: var(--warnton); }

.legal-list { margin: 0 0 16px; padding-left: 22px; }
.legal-list li { margin-bottom: 8px; }
ul, ol { padding-left: 22px; }
li { margin-bottom: 8px; }

/* ---------- Tabellen ---------- */

.legal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 28px;
  font-size: 14.5px;
}
.legal-table th,
.legal-table td {
  text-align: left;
  vertical-align: top;
  padding: 12px 14px;
  border: 1px solid var(--linie);
}
.legal-table th {
  background: var(--weich);
  color: var(--text);
  font: 500 13px/1.4 var(--sans);
  letter-spacing: 0.02em;
}
.legal-table td { color: var(--text-3); }
.legal-table tr:nth-child(even) td { background: rgba(255,255,255,0.012); }

/* ---------- Schaltflaechen ---------- */

.legal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 34px 0 0; }
.legal-button {
  display: inline-flex; align-items: center; justify-content: center;
  font: 500 14px/1 var(--sans);
  padding: 13px 22px;
  border-radius: 4px;
  background: var(--akzent); color: var(--tief);
  border: 1px solid var(--akzent);
  transition: background .16s, border-color .16s, color .16s;
}
.legal-button:hover { background: #E4E8EF; border-color: #E4E8EF; }
.legal-button.secondary { background: transparent; color: var(--text); border-color: var(--akzent-haar); }
.legal-button.secondary:hover { background: transparent; border-color: var(--akzent); }

/* ---------- Fuss ---------- */

.legal-footer { background: var(--weich); border-top: 1px solid var(--linie); }
.legal-footer-inner { max-width: var(--rand); margin: 0 auto; padding: 30px 28px 42px; }
.legal-footer-links { display: flex; flex-wrap: wrap; gap: 20px; }
.legal-footer-links a { font-size: 14.5px; color: var(--text-3); border: 0; }
.legal-footer-links a:hover { color: var(--text); }

/* ---------- Schmale Schirme ---------- */

@media (max-width: 640px) {
  .legal-topbar-inner, .legal-main, .legal-footer-inner { padding-left: 20px; padding-right: 20px; }
  .legal-main { padding-top: 40px; padding-bottom: 64px; }
  h1 { font-size: 31px; }
  h2 { font-size: 21px; margin-top: 34px; }
  .legal-lead { font-size: 17px; }

  /* Breite Tabellen ohne waagerechtes Wegrutschen der Seite */
  .legal-table { display: block; overflow-x: auto; white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
