/* ============================================================
   Andreas Wolther · bAV — Stylesheet für die Rechtstexte
   Ergänzt /news/news.css (Tokens, Nav, Hero, Footer, Buttons).
   Nur Typografie und Layout der Langtexte auf
   /impressum/ und /datenschutz/.
   ============================================================ */

.legal{background:var(--white)}

.legal-wrap{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:clamp(32px,5vw,72px);
  align-items:start;
}
@media(max-width:900px){
  /* minmax(0,1fr) statt 1fr: sonst zwingt die Mindestbreite der
     Dienstleister-Tabelle die Spalte auf und die Seite scrollt seitlich. */
  .legal-wrap{grid-template-columns:minmax(0,1fr);gap:34px}
}

/* ---------- Inhaltsverzeichnis ---------- */
.legal-toc{
  position:sticky;
  top:96px;
  padding:22px 24px;
  background:var(--navy-50);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
@media(max-width:900px){
  .legal-toc{position:static;top:auto}
}
.legal-toc h2{
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:14px;
}
.legal-toc ol{list-style:none;counter-reset:toc;display:flex;flex-direction:column;gap:9px}
.legal-toc li{counter-increment:toc;font-size:.9rem;line-height:1.4}
.legal-toc a{
  text-decoration:none;
  color:var(--navy-600);
  display:flex;
  gap:9px;
  transition:color .25s var(--ease);
}
.legal-toc a::before{
  content:counter(toc);
  flex:0 0 auto;
  font-family:var(--font-head);
  font-weight:700;
  font-size:.78rem;
  color:var(--gold);
  min-width:1.1em;
}
.legal-toc a:hover{color:var(--gold)}

/* ---------- Textkörper ---------- */
.legal-body{max-width:76ch;min-width:0}
.legal-body section{scroll-margin-top:100px}
.legal-body section + section{
  margin-top:clamp(38px,5vw,58px);
  padding-top:clamp(30px,4vw,44px);
  border-top:1px solid var(--line);
}
.legal-body h2{
  font-size:clamp(1.28rem,2.3vw,1.6rem);
  letter-spacing:-.01em;
  margin-bottom:16px;
}
.legal-body h3{
  font-size:1.03rem;
  color:var(--navy-500);
  margin:26px 0 10px;
}
.legal-body h4{
  font-size:.95rem;
  color:var(--navy-500);
  margin:20px 0 8px;
}
.legal-body p{
  font-size:.96rem;
  line-height:1.75;
  color:var(--ink-soft);
  margin-bottom:14px;
}
.legal-body a{color:var(--navy-600);text-decoration:underline;text-decoration-color:rgba(186,163,95,.6);text-underline-offset:3px}
.legal-body a:hover{color:var(--gold)}
.legal-body strong{color:var(--navy-600);font-weight:600}

/* Aufzählungen */
.legal-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin:4px 0 18px}
.legal-list li{
  position:relative;
  padding-left:22px;
  font-size:.96rem;
  line-height:1.7;
  color:var(--ink-soft);
}
.legal-list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:.65em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--gold);
}
.legal-list.is-plain li::before{border-radius:2px;background:var(--navy-200)}

/* Definitionsartige Zeilen (Register, Kennzahlen) */
.legal-dl{list-style:none;display:flex;flex-direction:column;gap:2px;margin:6px 0 20px}
.legal-dl li{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:16px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
  font-size:.93rem;
  line-height:1.6;
  color:var(--ink-soft);
}
.legal-dl li span:first-child{
  font-family:var(--font-head);
  font-weight:600;
  font-size:.85rem;
  color:var(--navy-500);
}
@media(max-width:640px){
  .legal-dl li{grid-template-columns:1fr;gap:3px}
}

/* Hervorgehobener Adressblock */
.legal-card{
  background:var(--navy-50);
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  border-radius:14px;
  padding:20px 24px;
  margin:6px 0 22px;
}
.legal-card p{margin-bottom:12px}
.legal-card p:last-child{margin-bottom:0}

/* Tabelle der Auftragsverarbeiter */
.legal-table-wrap{overflow-x:auto;margin:8px 0 22px;border:1px solid var(--line);border-radius:14px}
.legal-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:480px}
.legal-table th,
.legal-table td{padding:13px 16px;text-align:left;vertical-align:top;line-height:1.6;border-bottom:1px solid var(--line)}
.legal-table th{
  font-family:var(--font-head);
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--navy-600);
  background:var(--navy-50);
}
.legal-table tr:last-child td{border-bottom:none}
.legal-table td{color:var(--ink-soft)}

/* Kleingedrucktes / Hinweise */
.legal-note{
  font-size:.88rem;
  color:var(--ink-mute);
  padding-left:14px;
  border-left:2px solid var(--line-2);
  margin:14px 0 18px;
}
.legal-stand{
  margin-top:clamp(38px,5vw,54px);
  padding-top:22px;
  border-top:1px solid var(--line);
  font-size:.86rem;
  color:var(--ink-mute);
}

/* Abschluss-Hinweisbox */
.legal-cta{
  margin-top:26px;
  padding:20px 24px;
  border-radius:14px;
  background:var(--navy-600);
}
.legal-cta p{margin:0;color:rgba(255,255,255,.86);font-size:.94rem}
.legal-cta a{color:var(--gold-bright);text-decoration-color:rgba(216,189,119,.5)}
.legal-cta a:hover{color:#fff}
