:root{
  --pitch-deep:   #143820;
  --pitch:        #1F6B3B;
  --pitch-light:  #2F8B4E;
  --chalk:        #FAFAF6;
  --chalk-dim:    #F0EFE7;
  --ink:          #17201A;
  --ink-soft:     #4B564E;
  --line:         #DCE3D8;
  --gold:         #C9A13B;
  --err:          #B3261E;
  --ok:           #1F6B3B;
  --radius: 10px;
  --shadow: 0 10px 30px -12px rgba(20,56,32,0.28);
  --display: 'Oswald', sans-serif;
  --body: 'Source Sans 3', sans-serif;
  --mono: 'JetBrains Mono', monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{ margin:0; background:var(--chalk); color:var(--ink); font-family:var(--body); line-height:1.6; font-size:16px; }
h1,h2,h3,legend{ font-family:var(--display); text-transform:uppercase; letter-spacing:.03em; color:var(--pitch-deep); margin:0;}
a{color:var(--pitch);}
.wrap{max-width:880px; margin:0 auto; padding:0 24px;}

header.site{ position:sticky; top:0; z-index:40; background:var(--pitch-deep); color:var(--chalk); border-bottom:3px solid var(--gold); }
header.site .bar{max-width:880px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--display); font-weight:600; letter-spacing:.04em; text-decoration:none; color:var(--chalk);}
.crest{width:34px; height:34px; border-radius:50%; background:conic-gradient(var(--pitch-light) 0 50%, var(--chalk) 0 100%); border:2px solid var(--gold); flex:0 0 auto;}
header.site nav a{color:var(--chalk); text-decoration:none; font-size:.92rem; opacity:.9;}
header.site nav a:hover{opacity:1; text-decoration:underline;}
header.site nav{display:flex; gap:22px; flex-wrap:wrap;}
@media (max-width:600px){ header.site nav{display:none;} }

.btn{ display:inline-flex; align-items:center; gap:8px; border:none; cursor:pointer; font-family:var(--body); font-weight:600; font-size:.98rem; padding:14px 26px; border-radius:6px; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease; }
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--gold); color:var(--pitch-deep);}
.btn-primary:hover{box-shadow:0 8px 20px -6px rgba(201,161,59,.6);}
.btn-ghost{background:transparent; color:var(--pitch-deep); border:1.5px solid var(--line);}

footer.site{background:var(--pitch-deep); color:#CFE0D5; padding:38px 0; font-size:.85rem; margin-top:60px;}
footer.site .wrap{display:flex; flex-direction:column; gap:14px;}
footer.site .row{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; width:100%;}
footer.site a{color:#CFE0D5; text-decoration:none;}
footer.site a:hover{text-decoration:underline;}
footer.site nav{display:flex; gap:18px; flex-wrap:wrap;}
footer.site .disclaimer{max-width:60ch; font-size:.78rem; color:#A9C2AF;}

/* --- Rechtstext-Seiten (Impressum, Datenschutz, Widerruf, AGB) --- */
main.legal{padding:56px 0 80px;}
main.legal .eyebrow{font-family:var(--mono); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--pitch); margin-bottom:10px; display:inline-block;}
main.legal h1{font-size:clamp(1.7rem, 3.4vw, 2.4rem); margin-bottom:6px;}
main.legal .updated{color:var(--ink-soft); font-size:.85rem; margin-bottom:34px;}
main.legal .placeholder-note{
  background:#FBF3DD; border:1px solid #EBD9A0; color:#5A4A17; border-radius:8px;
  padding:14px 16px; font-size:.86rem; margin-bottom:36px;
}
main.legal .placeholder-note strong{display:block; margin-bottom:2px; color:#4A3B0F;}
main.legal section{margin-bottom:34px;}
main.legal h2{font-size:1.1rem; text-transform:none; letter-spacing:0; color:var(--pitch-deep); margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--line);}
main.legal h3{font-size:.95rem; text-transform:none; letter-spacing:0; color:var(--ink); margin:16px 0 6px;}
main.legal p{margin:0 0 12px; color:var(--ink);}
main.legal ul{margin:0 0 12px; padding-left:20px;}
main.legal li{margin-bottom:4px;}
main.legal .fill{background:#FDF6E3; padding:1px 5px; border-radius:3px; font-family:var(--mono); font-size:.9em; color:#8A6D1D;}
main.legal table{width:100%; border-collapse:collapse; margin:0 0 12px; font-size:.92rem;}
main.legal table td{padding:6px 10px 6px 0; vertical-align:top; border-bottom:1px solid var(--line);}
main.legal table td:first-child{font-weight:600; width:34%; color:var(--ink-soft);}
