/* Legal pages (Impressum, Datenschutz); markup from tools/build_legal.py */

.lg-main { background:#fff; }

.lg-hero { padding:72px 32px 0; background:#fff; }
.lg-hero-inner { max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.lg-eyebrow { font:700 12px/1 'Public Sans', sans-serif; letter-spacing:.14em; text-transform:uppercase; color:#2c5bd4; }
.lg-hero h1 { margin:0; font:800 48px/1.05 'Archivo', sans-serif; letter-spacing:-0.025em; color:#18263d; }

.lg-layout { max-width:1080px; margin:0 auto; padding:40px 32px 112px; box-sizing:content-box; }
.lg-layout--toc { display:grid; grid-template-columns:260px minmax(0,1fr); gap:64px; align-items:start; }

/* Table of contents */
.lg-toc { position:sticky; top:96px; max-height:calc(100vh - 120px); overflow:auto; padding-right:8px;
  font:500 14px/1.4 'Public Sans', sans-serif; }
.lg-toc-title { margin:0 0 12px; font:700 12px/1 'Public Sans', sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#7A8796; }
.lg-toc ol { list-style:none; margin:0; padding:0; }
.lg-toc > ol > li + li { margin-top:20px; }
.lg-toc ol ol { margin-top:6px; border-left:2px solid #EEF1F6; }
.lg-toc a { display:block; text-decoration:none; color:#5B6B7B; }
.lg-toc a:hover { color:#2c5bd4; }
.lg-toc .lg-toc-part { font-weight:700; color:#18263d; }
.lg-toc ol ol a { display:flex; gap:8px; padding:5px 0 5px 14px; margin-left:-2px; border-left:2px solid transparent; }
.lg-toc ol ol a:hover { border-left-color:#2c5bd4; }
.lg-toc ol ol a span { flex:none; min-width:20px; color:#A3AEBB; }

/* Content */
.lg-content { max-width:720px; font:400 16px/1.7 'Public Sans', sans-serif; color:#33475B; overflow-wrap:anywhere; }
.lg-content > :first-child { margin-top:0; }
.lg-content p { margin:0 0 16px; }
.lg-content a { color:#2c5bd4; font-weight:600; text-decoration:none; }
.lg-content a:hover { text-decoration:underline; color:#2654c7; }
.lg-content strong, .lg-strong { color:#18263d; font-weight:700; }
.lg-label { margin:28px 0 6px !important; font-weight:700; color:#18263d; }

.lg-num { display:inline-block; min-width:1.6em; color:#2c5bd4; }

.lg-part { margin:64px 0 24px; padding-top:32px; border-top:1px solid #E6E9F0;
  font:800 30px/1.15 'Archivo', sans-serif; letter-spacing:-0.02em; color:#18263d; scroll-margin-top:96px; }
.lg-content > .lg-part:first-of-type { margin-top:40px; }
.lg-part .lg-num { min-width:1.4em; }

.lg-section { margin:40px 0 0; scroll-margin-top:96px; }
.lg-section h3 { margin:0 0 14px; font:700 20px/1.3 'Archivo', sans-serif; letter-spacing:-0.01em; color:#18263d; }
.lg-sub { margin:24px 0 8px; font:700 16px/1.4 'Public Sans', sans-serif; color:#18263d; }

/* Processing-activity fact sheets (Zweck, Rechtsgrundlage, ...) */
.lg-facts { margin:18px 0 0; display:grid; grid-template-columns:minmax(0,200px) minmax(0,1fr);
  border:1px solid #E6E9F0; border-radius:16px; overflow:hidden; background:#fff;
  box-shadow:0 12px 32px -20px rgba(31,60,87,.18); }
.lg-facts dt, .lg-facts dd { margin:0; padding:14px 18px; border-top:1px solid #EEF1F6; }
.lg-facts dt:first-of-type, .lg-facts dt:first-of-type + dd { border-top:0; }
.lg-facts dt { background:#F7F8FB; font:700 13px/1.45 'Public Sans', sans-serif; color:#18263d; }
.lg-facts dd { font-size:15px; line-height:1.6; }
.lg-facts dd p:last-child { margin-bottom:0; }

/* Impressum: plain text, no card */
.lg-layout:not(.lg-layout--toc) .lg-content { max-width:640px; font-size:17px; }
.lg-layout:not(.lg-layout--toc) .lg-content > p:first-child::first-line { font-weight:700; color:#18263d; }
.lg-layout:not(.lg-layout--toc) .lg-content .lg-label { margin-top:28px !important; padding-top:24px; border-top:1px solid #EEF1F6;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#7A8796; }

@media (max-width:1000px) {
  .lg-layout--toc { display:block; }
  .lg-toc { display:none; }
}
@media (max-width:640px) {
  .lg-hero { padding:44px 20px 0; }
  .lg-hero h1 { font-size:clamp(26px, 8.4vw, 36px); hyphens:auto; }
  .lg-layout { padding:28px 20px 72px; }
  .lg-part { font-size:24px; }
  .lg-facts { grid-template-columns:minmax(0,1fr); }
  .lg-facts dt { border-top:1px solid #EEF1F6; padding-bottom:6px; }
  .lg-facts dd { border-top:0; padding-top:6px; }
  .lg-facts dt:first-of-type { border-top:0; }
  .lg-layout:not(.lg-layout--toc) .lg-content { font-size:16px; }
}
