/* Shared styles for /impressum, /datenschutz, /agb – same tokens as index.html */
:root{
  --bg:#131512;
  --bg-2:#191c18;
  --paper:#1E221E;
  --paper-2:#242822;
  --ink:#ECE8DD;
  --ink-soft:#A6A296;
  --ink-faint:#716D62;
  --accent:#7FA8C9;
  --accent-soft:#BBD9EC;
  --line: rgba(236,232,221,0.10);
  --line-strong: rgba(236,232,221,0.20);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ color:inherit; }
a:focus-visible, .btn:focus-visible{ outline:2px solid var(--accent-soft); outline-offset:3px; }

.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem, 4vw, 3rem); }

/* Header */
header{
  position:sticky; top:0; z-index:10;
  background:rgba(19,21,18,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:1rem; }
.logo{ font-family:'Fraunces', serif; font-size:1.25rem; display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.logo img{ height:30px; width:auto; }
.btn{
  font-family:'Space Mono', monospace; font-size:0.76rem; letter-spacing:0.05em; text-transform:uppercase;
  padding:0.85rem 1.5rem; border-radius:2px; display:inline-flex; align-items:center; gap:0.5rem;
  border:1px solid var(--line-strong); text-decoration:none; transition:background .2s, border-color .2s, color .2s;
}
.btn:hover{ border-color:var(--accent); color:var(--accent-soft); }
.btn-primary{ background:var(--accent); color:#12160F; border-color:var(--accent); }
.btn-primary:hover{ background:var(--accent-soft); border-color:var(--accent-soft); color:#12160F; }

/* Page head */
.legal-head{ padding-top:clamp(3rem, 8vw, 5.5rem); padding-bottom:clamp(2rem, 4vw, 3rem); border-bottom:1px solid var(--line); }
.eyebrow{
  font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--accent-soft); display:flex; align-items:center; gap:0.75rem;
}
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--accent); }
.legal-head h1{
  font-family:'Fraunces', serif; font-weight:500; letter-spacing:-0.02em; line-height:1.08;
  font-size:clamp(2.2rem, 5.5vw, 3.8rem); margin:1rem 0 0.9rem;
}
.legal-head p{ color:var(--ink-soft); max-width:62ch; }
.meta{ margin-top:1.25rem; font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-faint); }

/* Layout: TOC + text */
.legal-body{ display:grid; grid-template-columns:240px minmax(0, 1fr); gap:clamp(2rem, 5vw, 4.5rem); padding-top:clamp(2.5rem, 6vw, 4rem); padding-bottom:clamp(4rem, 8vw, 6rem); }
.legal-body.no-toc{ grid-template-columns:minmax(0, 1fr); }
.toc{ position:sticky; top:104px; align-self:start; max-height:calc(100vh - 128px); overflow:auto; }
.toc-title{ font-family:'Space Mono', monospace; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:0.9rem; }
.toc ol{ list-style:none; border-left:1px solid var(--line); }
.toc a{ display:block; padding:0.32rem 0 0.32rem 1rem; font-size:0.86rem; line-height:1.4; color:var(--ink-soft); text-decoration:none; margin-left:-1px; border-left:1px solid transparent; }
.toc a:hover{ color:var(--ink); border-left-color:var(--accent); }

.prose{ max-width:72ch; }
.prose section{ padding-top:0.5rem; }
.prose section + section{ margin-top:2.75rem; padding-top:2.75rem; border-top:1px solid var(--line); }
.prose h2{ font-family:'Fraunces', serif; font-weight:500; font-size:clamp(1.4rem, 2.6vw, 1.8rem); line-height:1.25; letter-spacing:-0.01em; margin-bottom:1rem; }
.prose h2 .num{ font-family:'Space Mono', monospace; font-size:0.8rem; color:var(--accent); letter-spacing:0.04em; display:block; margin-bottom:0.35rem; }
.prose h3{ font-size:1.02rem; font-weight:600; margin:1.75rem 0 0.6rem; }
.prose p, .prose ul, .prose ol{ color:var(--ink-soft); margin-bottom:1rem; }
.prose ul, .prose ol{ padding-left:1.25rem; }
.prose li{ margin-bottom:0.4rem; }
.prose li::marker{ color:var(--accent); }
.prose strong{ color:var(--ink); font-weight:600; }
.prose a{ color:var(--accent-soft); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(187,217,236,0.4); overflow-wrap:anywhere; }
.prose a:hover{ text-decoration-color:var(--accent-soft); }

/* Address / data blocks */
.card{ background:var(--paper); border:1px solid var(--line); border-radius:2px; padding:clamp(1.25rem, 3vw, 1.75rem); margin-bottom:1.25rem; }
.card p:last-child{ margin-bottom:0; }
.dl{ display:grid; grid-template-columns:minmax(120px, 190px) minmax(0, 1fr); gap:0.55rem 1.5rem; margin:0; }
.dl dt{ font-family:'Space Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); padding-top:0.25rem; }
.dl dd{ color:var(--ink); overflow-wrap:anywhere; }
.dl dd a{ color:var(--accent-soft); }

.box{ border-left:2px solid var(--accent); background:var(--bg-2); padding:1.1rem 1.25rem; margin:1.25rem 0; }
.box p:last-child{ margin-bottom:0; }
.box.muster{ border-left-color:var(--line-strong); }
.box h3:first-child{ margin-top:0; }
.dl .sub{ color:var(--ink-soft); }

/* Visible placeholder – same colour as .ph-badge on the homepage */
.ph{ background:rgba(217,185,138,0.16); color:#D9B98A; border:1px dashed rgba(217,185,138,0.55); border-radius:2px; padding:0 0.3em; font-style:normal; white-space:normal; }

/* Footer */
footer{ padding:2.25rem 0; border-top:1px solid var(--line-strong); }
.footer-row{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  font-family:'Space Mono', monospace; font-size:0.75rem; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink-faint);
}
.footer-row a{ text-decoration:none; }
.footer-row a:hover, .footer-row a[aria-current="page"]{ color:var(--accent-soft); }

@media (max-width: 900px){
  .legal-body{ grid-template-columns:minmax(0, 1fr); }
  .toc{ position:static; max-height:none; background:var(--paper); border:1px solid var(--line); padding:1.25rem; }
}
@media (max-width: 560px){
  .nav .btn{ padding:0.7rem 1rem; }
  .dl{ grid-template-columns:minmax(0, 1fr); gap:0.1rem; }
  .dl dd{ margin-bottom:0.7rem; }
}
@media print{
  header, .toc, footer{ display:none; }
  body{ background:#fff; color:#000; }
  .prose p, .prose li, .legal-head p, .dl dd{ color:#000; }
  .legal-body{ grid-template-columns:1fr; }
}
