/* ============================================================
   Shared LEGAL pages (impressum, datenschutz)
   ============================================================ */
.legal-page{padding:96px 28px 60px;position:relative;z-index:2;max-width:1100px;margin:0 auto;min-height:80vh}

.legal-back{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  font-weight:600;margin-bottom:48px;padding:10px 16px 10px 12px;border:1px solid rgba(0,0,0,.15);border-radius:999px;
  transition:transform .3s var(--ease-soft), background .3s, color .3s}
.legal-back::before{content:"←";font-size:14px;display:inline-block;transition:transform .3s}
.legal-back:hover{background:var(--ink);color:var(--lime);border-color:var(--ink);transform:translateX(-4px)}
.legal-back:hover::before{transform:translateX(-4px)}

.legal-meta{display:flex;flex-wrap:wrap;gap:28px;font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  margin-bottom:24px;opacity:.65}
.legal-meta b{color:var(--green);font-weight:600;display:block;margin-bottom:4px}

.legal-title{font-family:var(--font-display);font-weight:400;font-size:clamp(48px,7vw,108px);line-height:.95;
  letter-spacing:-.03em;margin-bottom:24px;padding-bottom:.12em}
.legal-title em{font-family:var(--font-hand);font-style:normal;color:var(--green);font-size:1.2em;vertical-align:-.05em}

.legal-lead{font-size:15px;line-height:1.7;max-width:62ch;opacity:.85;
  padding:24px 28px;background:var(--paper);border-radius:14px;
  border-left:3px solid var(--green-l);margin:36px 0 60px}
.legal-lead strong{font-family:var(--font-display);font-weight:400;font-size:16px;letter-spacing:-.01em}

.legal-grid{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:start}

.legal-toc{position:sticky;top:96px;align-self:start;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;line-height:2;
  padding-top:14px;border-top:1px solid rgba(0,0,0,.12)}
.legal-toc h4{font-size:10px;letter-spacing:.32em;color:var(--green-m);font-weight:600;margin-bottom:14px}
.legal-toc ol{list-style:none;counter-reset:toc;padding:0;margin:0}
.legal-toc li{counter-increment:toc;display:flex;align-items:baseline;gap:8px;padding:2px 0}
.legal-toc li::before{content:counter(toc, decimal-leading-zero);font-family:var(--font-mono);color:var(--green-m);font-size:9px;opacity:.6}
.legal-toc a{display:inline-block;transition:color .3s, transform .3s}
.legal-toc a:hover{color:var(--green);transform:translateX(2px)}
.legal-toc a.is-active{color:var(--green);font-weight:700}

.legal-body{display:flex;flex-direction:column;gap:8px}
.legal-section{padding:32px 0;border-top:1px solid rgba(0,0,0,.12);scroll-margin-top:84px}
.legal-section:first-child{border-top:0;padding-top:0}
.legal-section h2{font-family:var(--font-display);font-weight:400;font-size:clamp(22px,2.6vw,32px);line-height:1.15;letter-spacing:-.015em;
  margin-bottom:18px;padding-bottom:.06em;display:flex;align-items:baseline;gap:14px}
.legal-section h2::before{content:counter(sec, decimal-leading-zero);font-family:var(--font-mono);font-size:11px;color:var(--green);
  letter-spacing:.2em;opacity:.85;font-weight:600;flex-shrink:0}
.legal-section{counter-increment:sec}
.legal-body{counter-reset:sec}
.legal-section p{font-size:14px;line-height:1.7;max-width:62ch;opacity:.85;margin-bottom:14px}
.legal-section p:last-child{margin-bottom:0}
.legal-section a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.legal-section a:hover{color:var(--green);text-decoration-color:var(--green)}
.legal-section ul{font-size:14px;line-height:1.85;opacity:.85;padding-left:20px;margin-bottom:14px;max-width:62ch}
.legal-section ul li{padding-left:6px}
.legal-section ul li::marker{color:var(--green)}

.legal-addr{font-family:var(--font-mono);font-size:13px;line-height:1.9;padding:18px 22px;
  background:var(--paper);border-radius:10px;outline:1px solid rgba(0,0,0,.08);display:inline-block;margin-bottom:14px}
.legal-addr .placeholder{color:var(--green);opacity:.85}

.legal-ghost{padding:60px 0 30px;text-align:center;overflow:hidden}
.legal-ghost__word{font-family:var(--font-display);font-size:clamp(48px,12vw,180px);line-height:.9;letter-spacing:-.045em;
  color:transparent;-webkit-text-stroke:1px rgba(0,57,17,.16);white-space:nowrap;padding-bottom:.12em}
.legal-ghost__word em{font-family:var(--font-hand);font-style:normal;-webkit-text-stroke:0;color:var(--green-m);opacity:.55}

.legal-foot{padding:32px 28px;display:flex;justify-content:space-between;align-items:center;
  font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.55;
  border-top:1px solid rgba(0,0,0,.1);background:var(--bg);position:relative;z-index:2}
.legal-foot a:hover{color:var(--green);opacity:1}

@media (max-width:920px){
  .legal-grid{grid-template-columns:1fr;gap:24px}
  .legal-toc{position:static;display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid rgba(0,0,0,.1);border-radius:14px;
    background:var(--paper)}
  .legal-toc ol{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
}
@media (max-width:560px){
  .legal-page{padding:84px 18px 50px}
  .legal-back{margin-bottom:28px}
  .legal-title{font-size:clamp(36px,9vw,52px)}
  .legal-section{padding:24px 0}
  .legal-section h2{font-size:clamp(20px,5vw,26px)}
  .legal-section p,.legal-section ul{font-size:13px}
  .legal-toc ol{grid-template-columns:1fr}
  .legal-foot{flex-direction:column;gap:8px;text-align:center}
}
