/* Legal pages (AGB, Datenschutz, Cookies, Impressum): a readable document, one ~70ch column.
   Numbered sections, tables only where the content is tabular. No table of contents, no cards. */

.legal-top{position:relative;isolation:isolate;overflow:hidden;padding:clamp(56px,8vw,104px) 0 clamp(36px,5vw,56px)}
.legal-top .blob--peach{--s:620px;--rx:-180px;--y:-260px}
.legal-top .blob--mint{--s:420px;--x:-220px;--y:40px;opacity:.55}
.legal-top h1{max-width:18ch;margin-bottom:.35em}
.legal-top h1 em{white-space:nowrap}
.legal-top .lead{margin:0}
.legal-stamp{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:1.6rem 0 0;padding:0;list-style:none;
  font:500 .92rem/1.4 var(--sans);color:var(--muted)}
.legal-stamp li{display:flex;align-items:center;gap:.5rem}
.legal-stamp li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--coral)}

.legal-grid{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,72ch);gap:clamp(32px,6vw,96px);
  align-items:start;padding-bottom:clamp(72px,9vw,128px)}
.legal-side{position:sticky;top:112px;font-size:.93rem;line-height:1.55;color:var(--muted);
  border-top:2px solid var(--ink);padding-top:1.1rem}
.legal-side p{margin:0 0 .9rem}
.legal-side strong{display:block;font:600 .78rem/1.3 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--ink);margin-bottom:.25rem}
.legal-side a{color:var(--ink)}
.legal-print{appearance:none;border:1.5px solid var(--ink);background:transparent;border-radius:999px;min-height:40px;
  padding:0 1.1rem;font:600 .9rem/1 var(--sans);cursor:pointer;color:var(--ink);transition:background .2s var(--ease),color .2s var(--ease)}
.legal-print:hover{background:var(--ink);color:var(--paper)}
html.no-js .legal-print{display:none}

.legal-doc{color:var(--ink-2);font-size:1.03rem;line-height:1.72}
.legal-doc > .legal-intro{font-size:1.1rem;color:var(--ink);margin-bottom:2rem}
.legal-sec{padding-top:2.1rem;margin-top:2.1rem;border-top:1px solid var(--line)}
.legal-sec:first-of-type{margin-top:0}
.legal-sec h2{font-size:clamp(1.45rem,2vw,1.75rem);line-height:1.2;margin:0 0 .8rem;display:flex;gap:.6rem;align-items:baseline}
.legal-n{flex:none;font-family:var(--display);font-style:italic;font-weight:400;color:var(--coral-ink);min-width:2.4rem}
.legal-sec h3{font-size:1.12rem;margin:1.6rem 0 .45rem;color:var(--ink)}
.legal-doc p{margin:0 0 1em}
.legal-doc a{color:var(--ink);text-decoration-color:var(--coral)}
.legal-doc a:hover{color:var(--coral-ink)}
.legal-doc strong{color:var(--ink);font-weight:600}
.legal-doc ul,.legal-doc ol{margin:0 0 1.1em;padding-left:1.3rem}
.legal-doc li{margin:0 0 .45em;padding-left:.2rem}
.legal-doc ul li::marker{color:var(--coral-ink)}
.legal-doc ol li::marker{color:var(--coral-ink);font-weight:600}

/* Facts list (Impressum, controller): label / value, no tiles */
.legal-facts{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:.55rem 1.4rem;margin:0 0 1.2em}
.legal-facts dt{font-weight:600;color:var(--ink)}
.legal-facts dd{margin:0}

/* Tables: cookies, purposes and legal bases */
.legal-table{overflow-x:auto;margin:.4rem 0 1.4em;border-top:2px solid var(--ink)}
.legal-table table{width:100%;border-collapse:collapse;font-size:.94rem;line-height:1.5}
.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:.8rem .9rem .8rem 0;border-bottom:1px solid var(--line)}
.legal-table th{font:600 .76rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.legal-table td:first-child{color:var(--ink);font-weight:600}
.legal-table code{font:500 .9em/1.4 ui-monospace,"SFMono-Regular",Menlo,monospace;color:var(--ink);background:var(--sand);padding:.1em .4em;border-radius:6px}

/* Statutory model texts (Widerrufsbelehrung, Widerrufsformular) */
.legal-model{margin:1.2rem 0 1.4rem;padding:1.4rem 1.6rem;border-left:3px solid var(--mint-ink);background:rgba(255,255,255,.6);
  border-radius:0 var(--r-sm) var(--r-sm) 0}
.legal-model > :last-child{margin-bottom:0}
.legal-model h3{margin-top:0;font-size:1.05rem}
.legal-model h4{font:600 .95rem/1.3 var(--sans);margin:1.2rem 0 .35rem;color:var(--ink)}
.legal-fill{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.2rem 1rem;margin:.9rem 0 1rem}
.legal-fill span{padding:.35rem 0}
.legal-fill i{border-bottom:1px dotted var(--muted);min-height:2rem}
.legal-note{font-size:.9rem;color:var(--muted)}

@media (max-width:900px){
  .legal-grid{grid-template-columns:1fr}
  .legal-side{position:static;order:2}
  .legal-facts,.legal-fill{grid-template-columns:1fr}
}

@media print{
  .legal-top{padding:0 0 16px}
  .legal-grid{display:block;padding:0}
  .legal-side{display:none}
  .legal-doc{font-size:11pt;color:#000}
  .legal-sec{break-inside:auto}
  .legal-sec h2{break-after:avoid}
}
