/* Shared styling for the legal pages (Impressum, Datenschutz, AGB).
   Tokens mirror site/index.html so the pages read as the same site. */
@import url('fonts/fonts.css');

:root{
  --bg:#fbfffd; --bg-rgb:251,255,253; --surface:#ffffff; --surface-mint:#eef7f5;
  --ink:#16241f; --ink-soft:#4c625b; --ink-faint:#5f756d;
  --line:#d7e8e3; --line-soft:#e8f2ef; --line-bright:rgba(255,255,255,.6);
  --accent:#0f6f68; --accent-strong:#0b544e; --accent-contrast:#ffffff; --accent-tint:#dff1ee;
  --lock:#a8681a;
  --radius-sm:10px; --radius-pill:999px;
  --font-display:'Bricolage Grotesque', system-ui, sans-serif;
  --font-body:'Hanken Grotesk', system-ui, sans-serif;
  color-scheme:light;
}
/* dark only when picked with the header toggle (theme.js), same as index.html */
:root[data-theme="dark"]{
  --bg:#0b1615; --bg-rgb:11,22,21; --surface:#101f1c; --surface-mint:#142621;
  --ink:#eaf5f1; --ink-soft:#a9c2bb; --ink-faint:#8fa89f;
  --line:#22403a; --line-soft:#1a332e; --line-bright:rgba(255,255,255,.08);
  --accent:#45cfbd; --accent-strong:#6adfcf; --accent-contrast:#06211d; --accent-tint:#16332d;
  --lock:#e0a340;
  color-scheme:dark;
}

*{box-sizing:border-box;}
body{background:var(--bg); color:var(--ink); font-family:var(--font-body);
     font-size:1rem; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--font-display); text-wrap:balance; margin:0; color:var(--ink);}
p{margin:0;}
a{color:inherit;}
::selection{background:var(--accent-tint); color:var(--accent-strong);}

.wrap{max-width:1120px; margin:0 auto; padding-inline:28px;}
@media (max-width:720px){ .wrap{padding-inline:18px;} }

header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(var(--bg-rgb), .74);
  backdrop-filter:blur(20px) saturate(160%); -webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:inset 0 1px 0 var(--line-bright);
}
@media (prefers-reduced-transparency: reduce){
  header.site{background:var(--bg); backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:0 1px 0 var(--line);}
}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:24px; height:68px;}
.brand{display:flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:700;
       font-size:1.1875rem; letter-spacing:-.01em; color:var(--ink); text-decoration:none;
       border-radius:var(--radius-sm); padding:4px; margin:-4px;}
.brand-mark{width:32px; height:32px; flex-shrink:0; background:var(--accent);
            -webkit-mask:url(logo.png) center/contain no-repeat; mask:url(logo.png) center/contain no-repeat;}
.back{font-size:0.875rem; font-weight:600; color:var(--ink-soft); text-decoration:none;
      border:1px solid var(--line); background:var(--surface); border-radius:var(--radius-pill);
      padding:8px 16px;}
.back:hover{color:var(--ink);}

.nav-actions{display:flex; align-items:center; gap:8px;}
.theme-toggle{width:38px; height:38px; flex-shrink:0; display:inline-flex; align-items:center;
              justify-content:center; border-radius:50%; border:1px solid var(--line);
              background:var(--surface); color:var(--ink-soft); cursor:pointer;
              transition:transform 120ms cubic-bezier(.16,1,.3,1), color 180ms ease, border-color 180ms ease;}
.theme-toggle:hover{color:var(--accent-strong); border-color:var(--accent);}
.theme-toggle:active{transform:scale(.92);}
.theme-toggle:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.theme-toggle .sun, :root[data-theme="dark"] .theme-toggle .moon{display:none;}
:root[data-theme="dark"] .theme-toggle .sun{display:block;}
.back{white-space:nowrap;}
.label-short{display:none;}
@media (max-width:420px){ .nav-row{gap:12px;} .label-long{display:none;} .label-short{display:inline;} }

main.legal{padding-block:56px 40px;}
.legal-doc{max-width:72ch;}
.legal-doc h1{font-size:clamp(1.75rem,3.6vw,2.375rem); letter-spacing:-.02em;}
.legal-doc .updated{margin-top:10px; font-size:0.8125rem; color:var(--ink-faint);}
.legal-doc h2{font-size:1.125rem; margin-top:40px; margin-bottom:10px;}
.legal-doc h3{font-size:1rem; margin-top:24px; margin-bottom:6px;}
.legal-doc p{margin-bottom:12px; color:var(--ink-soft);}
.legal-doc ul{margin:0 0 12px; padding-left:20px; color:var(--ink-soft);}
.legal-doc li{margin-bottom:6px;}
.legal-doc strong{color:var(--ink); font-weight:600;}
.legal-doc a{color:var(--accent-strong); text-decoration:underline; text-underline-offset:2px;}
.legal-doc address{font-style:normal; color:var(--ink-soft);}
.legal-doc .card{background:var(--surface-mint); border:1px solid var(--line-soft);
                 border-radius:14px; padding:18px 20px; margin-bottom:16px;}
.legal-doc .card p:last-child{margin-bottom:0;}
.legal-doc table{width:100%; border-collapse:collapse; margin-bottom:16px; font-size:0.9062rem;}
.legal-doc th, .legal-doc td{text-align:left; vertical-align:top; padding:10px 12px;
                             border-bottom:1px solid var(--line-soft); color:var(--ink-soft);}
.legal-doc th{color:var(--ink); font-weight:600; white-space:nowrap;}
.table-scroll{overflow-x:auto;}

footer.site{border-top:1px solid var(--line-soft); padding-block:36px; margin-top:56px;}
.foot-row{display:flex; align-items:center; justify-content:space-between; gap:16px;
          flex-wrap:wrap; font-size:0.8125rem; color:var(--ink-faint);}
.foot-row a{text-decoration:underline; text-underline-offset:2px;}

code{font-family:'IBM Plex Mono', ui-monospace, monospace; font-size:0.875em;
     background:var(--surface-mint); border:1px solid var(--line-soft);
     border-radius:6px; padding:1px 5px;}
