/* Legal pages (Impressum, Datenschutz, AVV): one reading column on paper.
   Header, footer and dark mode come from site.css and theme.css. */

.legal { max-width: 760px; margin: 0 auto; padding: calc(72px + 12vh) var(--pad) 14vh; box-sizing: content-box; }
.legal-head .mono { color: var(--deep); }
.legal h1 { margin: 14px 0 48px; font-weight: 500; font-size: clamp(36px, 5vw, 64px); line-height: 1.02; letter-spacing: -0.04em; overflow-wrap: break-word; hyphens: manual; }
.legal h2 { margin: 56px 0 16px; padding-top: 24px; border-top: 1px solid var(--rule); font-weight: 500; font-size: 22px; letter-spacing: -0.015em; line-height: 1.25; }
.legal h3 { margin: 28px 0 8px; font-weight: 500; font-size: 17px; }
.legal p, .legal ul { margin: 0 0 14px; color: var(--ink-2); font-size: 16px; line-height: 1.65; }
.legal ul { padding-left: 22px; }
.legal li { margin-bottom: 6px; }
.legal strong { color: var(--ink); font-weight: 500; }
.legal a { color: var(--deep); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

.address-block { margin: 0 0 28px; padding: 22px 26px; border: 1px solid var(--rule); border-left: 2px solid var(--accent); border-radius: 8px;
  background: var(--card, transparent); font-family: var(--mono); font-size: 14px; line-height: 1.7; color: var(--ink-2); }
.address-block strong { display: block; margin-bottom: 4px; font-family: var(--sans); font-size: 17px; letter-spacing: -0.01em; }

.table-wrap { margin: 0 0 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.legal table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
.legal th, .legal td { padding: 10px 14px; border: 1px solid var(--rule); text-align: left; vertical-align: top; color: var(--ink-2); }
.legal th, .legal tr.subhead td { font-family: var(--mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; background: var(--card, transparent); }
.legal tr.subhead td { color: var(--deep); }

.stand { margin-top: 56px; padding-top: 18px; border-top: 1px solid var(--rule); font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--ink-2); }

@media (max-width: 600px) {
  .legal h2 { margin-top: 44px; font-size: 20px; }
  .address-block { padding: 18px 20px; }
}
