/* Diracor — Rechtliche Seiten (Impressum, Datenschutz) */
:root { --nav-h: 68px; }
.legal-head { padding: 64px 0 40px; border-bottom: 1px solid var(--line); }
.legal-back { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.06em; color: var(--ink-3); text-decoration: none; transition: color 0.2s var(--ease), gap 0.2s var(--ease); }
.legal-back:hover { color: var(--accent-strong); gap: 12px; }
.legal-head h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 5vw, 56px); letter-spacing: -0.03em; line-height: 1.04; margin-top: 22px; text-wrap: balance; }
.legal-head .legal-sub { color: var(--ink-2); font-size: clamp(16px, 1.8vw, 18px); margin-top: 14px; max-width: 62ch; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 24px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); }

.legal-grid { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; padding-block: 56px 96px; }
@media (max-width: 900px) { .legal-grid { grid-template-columns: 1fr; gap: 32px; padding-block-start: 36px; } }

.legal-toc { position: sticky; top: calc(var(--nav-h) + 28px); }
@media (max-width: 900px) { .legal-toc { position: static; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; background: var(--surface-2); } }
.legal-toc h2 { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }
.legal-toc ol { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-direction: column; gap: 2px; counter-reset: toc; }
.legal-toc a { display: flex; gap: 10px; padding: 7px 10px; margin-left: -10px; border-radius: var(--r-sm); font-size: 14px; color: var(--ink-2); text-decoration: none; line-height: 1.35; transition: background 0.2s var(--ease), color 0.2s var(--ease); }
.legal-toc a::before { counter-increment: toc; content: counter(toc); font-family: var(--font-mono); font-size: 11.5px; color: var(--ink-3); flex: 0 0 auto; padding-top: 2px; }
.legal-toc a:hover { background: var(--accent-soft); color: var(--accent-strong); }
.legal-toc a:hover::before { color: var(--accent); }

.legal-body { max-width: 74ch; }
.legal-body section + section { margin-top: 44px; padding-top: 44px; border-top: 1px solid var(--line); }
.legal-body h2 { font-family: var(--font-display); font-weight: 650; font-size: clamp(21px, 2.4vw, 26px); letter-spacing: -0.02em; scroll-margin-top: calc(var(--nav-h) + 24px); }
.legal-body h3 { font-family: var(--font-display); font-weight: 600; font-size: 17px; letter-spacing: -0.01em; margin-top: 28px; }
.legal-body p { color: var(--ink-2); font-size: 15.5px; line-height: 1.68; margin-top: 14px; text-wrap: pretty; }
.legal-body ul { list-style: none; display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.legal-body ul li { position: relative; padding-left: 20px; color: var(--ink-2); font-size: 15px; line-height: 1.6; }
.legal-body ul li::before { content: ""; position: absolute; left: 3px; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.legal-body a { color: var(--accent-strong); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.legal-body a:hover { color: var(--accent); }
.legal-body strong { color: var(--ink); font-weight: 600; }

/* Anbieter-/Verantwortlichen-Karte */
.legal-card { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-sm); padding: clamp(22px, 2.6vw, 30px); margin-top: 20px; }
.legal-card .lc-name { font-family: var(--font-display); font-weight: 650; font-size: 19px; letter-spacing: -0.015em; }
.legal-card .lc-addr { color: var(--ink-2); font-size: 15px; line-height: 1.62; margin-top: 8px; }
.legal-dl { display: grid; grid-template-columns: 152px minmax(0, 1fr); gap: 10px 20px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
@media (max-width: 560px) { .legal-dl { grid-template-columns: 1fr; gap: 3px 0; } .legal-dl dd { margin-bottom: 12px; } }
.legal-dl dt { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); padding-top: 3px; }
.legal-dl dd { font-size: 15px; color: var(--ink); }
.legal-dl dd a { color: var(--accent-strong); text-decoration: none; }
.legal-dl dd a:hover { text-decoration: underline; text-underline-offset: 2px; }
.legal-dl dd.is-mono { font-family: var(--font-mono); font-size: 14px; letter-spacing: 0.02em; }

.legal-note { display: flex; gap: 12px; border: 1px solid var(--accent-line); background: var(--accent-soft); border-radius: var(--r-md); padding: 16px 18px; margin-top: 20px; }
.legal-note .ln-ic { flex: 0 0 auto; font-family: var(--font-mono); font-size: 12px; color: var(--accent-strong); padding-top: 2px; }
.legal-note p { margin-top: 0; font-size: 14.5px; color: var(--ink-2); }

.legal-foot { border-top: 1px solid var(--line); padding-block: 32px 56px; display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; justify-content: space-between; }
.legal-foot .lf-c { font-family: var(--font-mono); font-size: 12px; color: var(--ink-3); }
.legal-foot nav { display: flex; flex-wrap: wrap; gap: 20px; }
.legal-foot nav a { font-size: 14px; color: var(--ink-2); text-decoration: none; }
.legal-foot nav a:hover { color: var(--accent-strong); text-decoration: underline; text-underline-offset: 2px; }
