:root{
  --gruen:#1b6a2c; --gruen-dunkel:#10401b; --gelb:#f2d21a; --gelb-hell:#fbf3c4;
  --grund:#f5f7f2; --text:#1d2a1f; --text-leise:#56645a; --linie:#d3dccf; --fehler:#a12222;
  --schrift:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --schrift-titel:Georgia,"Iowan Old Style","Palatino Linotype",serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--grund);color:var(--text);font:1.0625rem/1.6 var(--schrift)}
a{color:var(--gruen)} a:hover{color:var(--gruen-dunkel)}
:focus-visible{outline:3px solid var(--gelb);outline-offset:2px;box-shadow:0 0 0 5px var(--gruen-dunkel)}
.skip{position:absolute;left:-999px;top:0;background:var(--gelb);color:#000;padding:.5rem 1rem;z-index:10}
.skip:focus{left:0}
.kopf{background:var(--gruen-dunkel);color:#fff;border-bottom:6px solid var(--gelb)}
.kopf-innen{max-width:68rem;margin:0 auto;padding:.75rem 1rem;display:flex;flex-wrap:wrap;gap:.75rem 2rem;align-items:center;justify-content:space-between}
.marke{display:flex;align-items:center;gap:.9rem;color:#fff;text-decoration:none;font:700 1.35rem/1.15 var(--schrift-titel)}
.marke img{height:64px;width:auto}
.kopf nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem}
.kopf nav a{display:block;padding:.55rem .85rem;color:#fff;text-decoration:none;border-radius:4px;font-weight:600}
.kopf nav a:hover{background:rgba(255,255,255,.14);color:#fff}
.kopf nav a[aria-current=page]{background:var(--gelb);color:var(--gruen-dunkel)}
main{max-width:68rem;margin:0 auto;padding:2rem 1rem 3rem}
h1{font:700 clamp(1.7rem,4vw,2.4rem)/1.2 var(--schrift-titel);color:var(--gruen-dunkel);margin:0 0 .4rem}
h2{font:700 1.3rem/1.3 var(--schrift-titel);color:var(--gruen-dunkel);margin:2rem 0 .5rem}
.einleitung{color:var(--text-leise);margin:0 0 2rem;max-width:42rem}
.text{max-width:46rem}
.termine{list-style:none;margin:0;padding:0;border-top:2px solid var(--gruen-dunkel)}
.termin{display:grid;grid-template-columns:9rem 1fr;gap:.25rem 1.25rem;padding:1rem .75rem;border-bottom:1px solid var(--linie)}
.termin time{font-weight:700;color:var(--gruen-dunkel);font-variant-numeric:tabular-nums}
.termin .uhr{display:block;font-weight:400;color:var(--text-leise);font-size:.95rem}
.termin .titel{font-weight:600}
.termin ul{margin:.35rem 0 0;padding-left:1.1rem;font-weight:400;color:var(--text-leise)}
.termin.vorbei{color:var(--text-leise)}
.termin.vorbei time,.termin.vorbei .titel{color:var(--text-leise);font-weight:500}
.termin.naechster{background:var(--gelb-hell);border-left:8px solid var(--gelb);border-bottom-color:var(--gelb);padding-left:.9rem}
.termin .marke-naechster{display:inline-block;margin-bottom:.25rem;padding:.05rem .55rem;background:var(--gruen-dunkel);color:#fff;font-size:.85rem;font-weight:600;border-radius:99px}
@media(max-width:34rem){.termin{grid-template-columns:1fr}}
.vorstand{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:0;padding:0;list-style:none}
.vorstand li{background:#fff;border:1px solid var(--linie);border-left:6px solid var(--gruen);padding:1rem 1.1rem;border-radius:4px}
.vorstand strong{display:block;font-family:var(--schrift-titel);font-size:1.1rem}
.vorstand span{color:var(--text-leise)}
form{max-width:36rem}
label{display:block;font-weight:600;margin:1rem 0 .25rem}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],textarea{width:100%;padding:.7rem .8rem;font:inherit;border:2px solid #9fb09f;border-radius:4px;background:#fff;color:var(--text)}
textarea{min-height:7rem}
.haken{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;margin-top:1.25rem}
.haken input{margin-top:.4rem;width:1.15rem;height:1.15rem}
.knopf{margin-top:1.5rem;padding:.8rem 1.6rem;font:700 1rem var(--schrift);background:var(--gruen);color:#fff;border:0;border-radius:4px;cursor:pointer}
.knopf:hover{background:var(--gruen-dunkel);color:#fff}
.knopf.leise{background:transparent;color:var(--gruen);border:2px solid var(--gruen);margin:0}
.meldung{padding:.9rem 1.1rem;border-radius:4px;margin:0 0 1.5rem;max-width:36rem}
.meldung.ok{background:#e1f2dd;border:1px solid #8fc283}
.meldung.fehler{background:#fbe5e5;border:1px solid #d99;color:var(--fehler)}
.hp{position:absolute;left:-9999px}
.kameras{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.25rem;margin:0;padding:0;list-style:none}
.kameras figure{margin:0;background:#fff;border:1px solid var(--linie);border-radius:4px;overflow:hidden}
.kameras img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#cfd8cc}
.kameras figcaption{padding:.6rem .9rem;font-weight:600}
.kameras figcaption small{display:block;font-weight:400;color:var(--text-leise)}
.leiste{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center;margin-bottom:1.25rem}
.platzhalter{background:#fff;border:2px dashed #9fb09f;padding:1.2rem;border-radius:4px;max-width:46rem;color:var(--text-leise)}
.fuss{background:var(--gruen-dunkel);color:#dfe8dc;font-size:.95rem}
.fuss-innen{max-width:68rem;margin:0 auto;padding:1.25rem 1rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}
.fuss p{margin:0}.fuss a{color:#fff;margin-left:1rem}.fuss a:first-child{margin-left:0}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* Satzung und Vereinsordnung */
.recht{max-width:46rem}
.recht h2{margin:2.2rem 0 .6rem;padding-top:.4rem;border-top:2px solid var(--linie);font-size:1.25rem}
.recht h2.teil{border-top:4px solid var(--gruen);font-size:1.45rem}
.recht h3{font:700 1.05rem var(--schrift-titel);color:var(--gruen-dunkel);margin:1.4rem 0 .4rem}
.recht p{margin:.6rem 0}
.recht .abs{padding-left:2rem;text-indent:-2rem}
.recht .sub{padding-left:3.4rem;text-indent:-1.4rem}
.recht ul{margin:.4rem 0 .6rem 2.2rem;padding:0}
.recht li{margin:.25rem 0}
.recht .stand{color:var(--text-leise);margin-top:2.5rem}
.inhalt{background:#fff;border:1px solid var(--linie);border-left:6px solid var(--gruen);border-radius:4px;padding:1rem 1.25rem;margin:0 0 2rem;max-width:46rem}
.inhalt strong{font-family:var(--schrift-titel)}
.inhalt ol{margin:.5rem 0 0;padding:0;list-style:none;columns:2 15rem;column-gap:2rem}
.inhalt li{padding:.15rem 0;break-inside:avoid}
.dl{display:inline-block;text-decoration:none;margin:0 0 1.5rem}
/* Vorstand: Kontaktzeilen */
.vorstand a{display:block;margin-top:.35rem;word-break:break-word}
.vorstand span{display:block}
/* Verwaltung */
form.breit{max-width:46rem}
.admin-termin{border:1px solid var(--linie);border-left:6px solid var(--gruen);border-radius:4px;background:#fff;padding:.5rem 1rem 1rem;margin:1rem 0}
.a-gitter{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.a-gitter .breit{grid-column:1/-1}
.nur-lesen{position:absolute;left:-9999px}
.admin-termin .knopf{margin-top:.75rem}
.hinweis{color:var(--text-leise);font-size:.95rem}
input[type=file]{display:block;max-width:100%}
@media(max-width:34rem){.a-gitter{grid-template-columns:1fr}}
.admin-termin .aktionen{display:flex;flex-wrap:wrap;gap:.5rem}
.admin-termin .aktionen .knopf{margin-top:.75rem}
