/* Gemeinsames Stylesheet für Impressum & Datenschutzerklärung.
   Design-Tokens identisch zu index.html. */

:root{
  --teal:#0D9488;
  --teal-hover:#0B7F75;
  --teal-700:#0F766E;
  --teal-50:#F0FDFA;
  --navy:#0B1B34;
  --body:#475569;
  --muted:#64748B;
  --line:#E7ECF3;
  --line-soft:#EFF2F7;
  --bg:#F8FAFC;
  --gutter:24px;
  --r:16px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--body);
  font-family:'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg{ display:block; max-width:100%; }
a{ color:var(--teal-700); }
a:hover{ color:var(--teal); }
h1,h2,h3,h4{ margin:0; color:var(--navy); letter-spacing:-0.02em; line-height:1.25; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }

.wrap{ width:min(100% - (2 * var(--gutter)), 1320px); margin-inline:auto; }

/* ---- Header ---- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  box-shadow:0 1px 0 rgba(11,27,52,.07);
}
.header-inner{ display:flex; align-items:center; gap:24px; height:76px; }
.logo{ display:flex; align-items:center; gap:11px; text-decoration:none; flex:0 0 auto; }
.logo .mark{ width:34px; height:26px; color:var(--teal); }
.logo .word{ font-size:19px; font-weight:800; color:var(--navy); letter-spacing:.055em; line-height:1; }
.back-link{
  margin-left:auto; display:inline-flex; align-items:center; gap:8px;
  font-size:15px; font-weight:600; color:var(--navy); text-decoration:none;
}
.back-link:hover{ color:var(--teal-700); }
.back-link svg{ width:15px; height:15px; }

/* ---- Inhalt ---- */
.legal{ padding:44px 0 64px; }
.legal-inner{
  max-width:800px;
  background:#fff; border:1px solid var(--line-soft); border-radius:var(--r);
  padding:44px 48px 48px;
  box-shadow:0 1px 2px rgba(11,27,52,.04);
}
.legal h1{ font-size:clamp(26px, 3.2vw, 36px); font-weight:800; letter-spacing:-0.03em; }
.legal .updated{ margin-top:10px; font-size:14px; color:var(--muted); }
.legal h2{
  margin-top:38px; font-size:20px; font-weight:800; letter-spacing:-0.025em;
  padding-top:22px; border-top:1px solid var(--line-soft);
}
.legal h2:first-of-type{ border-top:0; padding-top:0; }
.legal h3{ margin-top:24px; font-size:16px; font-weight:700; }
.legal p{ margin-top:12px; font-size:15.5px; }
.legal ul.bullets{ margin-top:12px; }
.legal ul.bullets li{
  position:relative; padding-left:22px; margin-top:9px; font-size:15.5px;
}
.legal ul.bullets li::before{
  content:""; position:absolute; left:4px; top:11px;
  width:6px; height:6px; border-radius:50%; background:var(--teal);
}
.legal .addr{
  margin-top:14px; padding:16px 18px;
  background:var(--teal-50); border-radius:12px;
  font-size:15.5px; line-height:1.7;
}
.legal .addr strong{ color:var(--navy); }
.legal .note{
  margin-top:16px; padding:16px 18px;
  background:#F5F8FC; border-left:3px solid var(--teal); border-radius:0 10px 10px 0;
  font-size:14.5px; color:#4A576E;
}
.legal .toc{ margin-top:22px; display:flex; flex-wrap:wrap; gap:8px 10px; }
.legal .toc a{
  font-size:13.5px; font-weight:600; text-decoration:none;
  background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 14px;
  color:var(--navy);
}
.legal .toc a:hover{ border-color:var(--teal); color:var(--teal-700); }
.legal table{
  margin-top:16px; width:100%; border-collapse:collapse; font-size:14.5px;
}
.legal th, .legal td{
  text-align:left; vertical-align:top; padding:11px 12px;
  border-bottom:1px solid var(--line-soft);
}
.legal th{ color:var(--navy); font-weight:700; font-size:13px; letter-spacing:.02em; }
.legal td:first-child{ color:var(--navy); font-weight:600; white-space:nowrap; }

/* ---- Footer ---- */
.site-footer{ border-top:1px solid var(--line); background:#fff; }
.footer-grid{ display:flex; justify-content:space-between; gap:44px; flex-wrap:wrap; padding:44px 0 32px; }
.footer-brand p{ margin-top:12px; font-size:13.5px; color:var(--muted); max-width:34ch; }
.footer-cols{ display:flex; gap:56px; flex-wrap:wrap; }
.footer-col h4{
  font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:var(--muted); margin-bottom:14px;
}
.footer-col a{
  display:block; font-size:14px; color:var(--navy); text-decoration:none; margin-bottom:10px; font-weight:500;
}
.footer-col a:hover{ color:var(--teal-700); }
.footer-bottom{
  border-top:1px solid var(--line); padding:20px 0 28px;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:12.5px; color:var(--muted);
}

@media (max-width:720px){
  .legal-inner{ padding:28px 22px 32px; }
  .legal{ padding:28px 0 44px; }
  .legal h2{ font-size:18.5px; margin-top:30px; }
  .footer-cols{ gap:32px; }
}
@media (max-width:620px){
  :root{ --gutter:18px; }
  .legal td:first-child{ white-space:normal; }
}
