/* ============================================================
   wir pflegen Schleswig-Holstein e.V. – zentrales Stylesheet
   Statische Website ohne CMS
   ============================================================ */

:root {
  --rot: #d40f2c;
  --gruen: #47756a;
  --gruen-dunkel: #33574f;
  --creme: #fdf5e8;
  --text: #3c4a48;
  --grau: #6b7a78;
  --hell: #ffffff;
  --rand: #e5e2da;
  --fuss: #26697a; /* NRW-Ton abgedunkelt (38,105,122), Kontrast zu Weiß 6,2:1 */
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--text);
  line-height: 1.65;
  background: var(--hell);
  font-size: 1.05rem;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--gruen-dunkel); }
a:hover { color: var(--rot); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--rot);
  outline-offset: 2px;
}

/* Skip-Link für Tastaturnutzung */
.skip-link {
  position: absolute;
  left: -9999px;
  background: var(--rot);
  color: #fff;
  padding: .6rem 1rem;
  z-index: 100;
}
.skip-link:focus { left: 1rem; top: 1rem; color: #fff; }

/* ---------- Kopfbereich ---------- */
header {
  background: var(--hell);
  border-bottom: 1px solid var(--rand);
  position: sticky;
  top: 0;
  z-index: 50;
}

.kopf {
  max-width: 1200px;
  margin: 0 auto;
  padding: .1rem 1.2rem .55rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.logo { position: relative; display: block; }
.logo img { height: 58px; width: auto; }

/* Rotes Kreis-Signet mit SH-Wappen, ragt wie beim NRW-Vorbild in die Bühne hinein */
.logo .signet {
  position: absolute;
  height: 48px;
  width: 48px;
  right: -60px;
  bottom: -34px;
  z-index: 60;
}

/* Navigation */
nav ul {
  list-style: none;
  display: flex;
  gap: 1.1rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

nav a {
  text-decoration: none;
  color: var(--text);
  font-weight: 500;
  font-size: .98rem;
  padding: .4rem 0;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
}

nav a:hover, nav a[aria-current="page"] {
  color: var(--rot);
  border-bottom-color: var(--rot);
}

/* Topleiste mit Kontakt, Barrierefreiheit und Social Media */
.topleiste {
  max-width: 1200px;
  margin: 0 auto;
  padding: .45rem 1.2rem 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .9rem;
}
.topleiste .textlink { white-space: nowrap; }
.topleiste .textlink {
  text-decoration: none;
  color: var(--text);
  font-weight: 500;
  margin-right: .5rem;
}
.topleiste .textlink:hover,
.topleiste .textlink[aria-current="page"] { color: var(--rot); }

.kreis {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
}
.kreis-voll {
  background: var(--gruen);
  color: #fff;
  border: none;
}
.kreis-voll:hover { background: var(--gruen-dunkel); color: #fff; }
.kreis-rand {
  border: 1.5px solid #c9c5bc;
  color: var(--text);
  background: #fff;
}
.kreis-rand:hover { border-color: var(--rot); color: var(--rot); }

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Barrierefreiheits-Leiste */
.a11y-panel {
  background: var(--gruen-dunkel);
  color: #fff;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
  padding: .6rem 1.2rem;
}
.a11y-panel[hidden] { display: none; }
.a11y-titel { font-weight: 600; }
.a11y-panel button {
  font: inherit;
  padding: .4rem 1rem;
  border-radius: 6px;
  border: 1.5px solid rgba(255,255,255,.7);
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.a11y-panel button:hover { background: rgba(255,255,255,.15); }

/* Barrierefreiheit: größere Schrift */
html.schrift-gross { font-size: 122%; }

/* Barrierefreiheit: hoher Kontrast */
html.hoher-kontrast body { background: #fff; color: #000; }
html.hoher-kontrast h1, html.hoher-kontrast h2, html.hoher-kontrast h3 { color: #000; }
html.hoher-kontrast p.unterzeile, html.hoher-kontrast .einleitung { color: #000; }
html.hoher-kontrast a { color: #0000c8; }
html.hoher-kontrast nav a, html.hoher-kontrast .topleiste .textlink { color: #000; }
html.hoher-kontrast nav a:hover, html.hoher-kontrast nav a[aria-current="page"] { color: #0000c8; border-bottom-color: #0000c8; }
html.hoher-kontrast .buehne, html.hoher-kontrast .zahl-kasten, html.hoher-kontrast .hinweis,
html.hoher-kontrast .creme { background: #fff; }
html.hoher-kontrast .zahl-kasten, html.hoher-kontrast .hinweis, html.hoher-kontrast .kachel { border: 2px solid #000; }
html.hoher-kontrast .zahl-kasten .zahl { color: #000; }
html.hoher-kontrast .knopf { background: #000; color: #fff; }
html.hoher-kontrast footer { background: #000; }
html.hoher-kontrast .kreis-voll { background: #000; }
html.hoher-kontrast .a11y-panel { background: #000; }

/* Mobiles Menü */
.menu-toggle { display: none; }
.menu-label {
  display: none;
  cursor: pointer;
  font-size: 1.9rem;
  line-height: 1;
  padding: .3rem .6rem;
  border: 1px solid var(--rand);
  border-radius: 6px;
}

@media (max-width: 900px) {
  .kopf { flex-wrap: wrap; }
  .menu-label { display: block; margin-left: auto; }
  nav { width: 100%; display: none; }
  .menu-toggle:checked ~ nav { display: block; }
  nav ul { flex-direction: column; gap: 0; padding: .5rem 0; }
  nav li { border-top: 1px solid var(--rand); }
  nav a { display: block; padding: .8rem .4rem; border-bottom: none; }
  .logo img { height: 48px; }
  .logo .signet { height: 36px; width: 36px; right: -44px; bottom: -26px; }
  .topleiste { gap: .55rem; }
  .topleiste .textlink { font-size: .92rem; margin-right: 0; }
  .kreis { width: 32px; height: 32px; }
}

/* ---------- Bühne (Hero) mit schrägem Bildübergang ---------- */
.buehne {
  background: var(--creme);
  overflow: hidden;
}
.buehne-inhalt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: stretch;
  gap: 0;
}
.buehne-text {
  max-width: 600px;
  margin-left: auto;
  padding: 4rem 1.2rem;
  align-self: center;
}
.buehne-text h1 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--gruen-dunkel);
  line-height: 1.2;
  margin-bottom: 1rem;
}
.buehne-text h1 .akzent { color: var(--rot); }
.buehne-text p.unterzeile {
  font-size: 1.25rem;
  color: var(--grau);
}
.buehne-bild {
  /* Schräge Kante: oben weiter rechts, unten weiter links */
  clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
  margin-left: -70px;
}
.buehne-bild img {
  width: 100%;
  height: 100%;
  min-height: 400px;
  object-fit: cover;
}

@media (max-width: 800px) {
  .buehne-inhalt { grid-template-columns: 1fr; }
  .buehne-bild {
    order: -1;
    margin: 0;
    clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  }
  .buehne-bild img { min-height: 260px; max-height: 45vh; }
  .buehne-text { padding: 2.5rem 1.2rem; margin: 0; }
}

/* ---------- Zahlenkästen ---------- */
.zahlen {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.5rem 1.2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.5rem;
}
.zahl-kasten {
  background: var(--creme);
  padding: 1.6rem;
  border-radius: 4px;
}
.zahl-kasten .zahl {
  font-size: 2.6rem;
  color: var(--gruen);
  font-weight: 600;
  line-height: 1.1;
}

/* ---------- Inhaltsbereiche ---------- */
main { display: block; }

.abschnitt {
  max-width: 900px;
  margin: 0 auto;
  padding: 2.5rem 1.2rem;
}

.abschnitt-breit {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.5rem 1.2rem;
}

h1, h2, h3 { color: var(--gruen-dunkel); font-weight: 500; line-height: 1.25; }
h1 { font-size: 2.2rem; margin-bottom: 1.2rem; }
h2 { font-size: 1.6rem; margin: 2rem 0 .8rem; }
h3 { font-size: 1.25rem; margin: 1.5rem 0 .6rem; }
p { margin-bottom: 1rem; }
ul, ol { margin: 0 0 1rem 1.4rem; }
li { margin-bottom: .4rem; }
hr { border: none; border-top: 1px solid var(--rand); margin: 2rem 0; }

.einleitung { font-size: 1.2rem; color: var(--grau); }

/* Kacheln auf der Startseite */
.kacheln {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.kachel {
  border: 1px solid var(--rand);
  border-radius: 4px;
  padding: 1.6rem;
  background: var(--hell);
}
.kachel h3 { margin-top: 0; }

/* Buttons */
.knopf {
  display: inline-block;
  background: var(--rot);
  color: #fff;
  text-decoration: none;
  padding: .7rem 1.5rem;
  border-radius: 4px;
  font-weight: 600;
  border: none;
  font-size: 1rem;
  cursor: pointer;
}
.knopf:hover { background: #a80b22; color: #fff; }
.knopf-gruen { background: var(--gruen); }
.knopf-gruen:hover { background: var(--gruen-dunkel); }

/* Projektbereich auf der Startseite */
.projekte { max-width: 1200px; margin: 0 auto; padding: 1rem 1.2rem 2.5rem; }
.projekt-reihe {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 800px) { .projekt-reihe { grid-template-columns: 1fr; } }
.projekt {
  background: var(--creme);
  border-radius: 4px;
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .4rem;
}
.projekt h3 { margin: 0 0 .3rem; font-size: 1.35rem; }
.projekt > img {
  border-radius: 4px;
  margin-bottom: .8rem;
  width: 100%;
  height: auto; /* volle Bildhöhe, kein Beschnitt */
}
.projekt p { margin-bottom: .8rem; }
.projekt .knopf { margin-top: auto; }
.projekt-banner {
  background: var(--fuss);
  color: #fff;
  border-radius: 4px;
  padding: 2.2rem 2rem;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 2rem;
  align-items: center;
}
@media (max-width: 800px) { .projekt-banner { grid-template-columns: 1fr; padding: 1.6rem; } }
.projekt-banner h2 { color: #fff; margin: 0 0 .6rem; font-size: 1.7rem; }
.projekt-banner .datum { font-size: 1.15rem; font-weight: 600; }
.projekt-banner img { background: #fff; border-radius: 4px; padding: 1rem; width: 100%; }
.projekt-banner .knopf { background: #fff; color: var(--fuss); margin-top: 1rem; }
.projekt-banner .knopf:hover { background: var(--creme); }
html.hoher-kontrast .projekt, html.hoher-kontrast .projekt-banner {
  background: #fff; border: 2px solid #000; color: #000;
}
html.hoher-kontrast .projekt-banner h2, html.hoher-kontrast .projekt-banner p { color: #000; }
html.hoher-kontrast .projekt-banner .knopf { background: #000; color: #fff; }

/* Meldungen auf der Aktuelles-Seite */
.meldung {
  border-bottom: 1px solid var(--rand);
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
}
.meldung:last-of-type { border-bottom: none; }
.meldung h2 { margin-top: .1rem; }
.meldung-datum {
  color: var(--grau);
  font-size: .95rem;
  margin-bottom: .2rem;
}

/* Blättern in der Beitragsliste */
.blaettern {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

/* Hinweiskasten */
.hinweis {
  background: var(--creme);
  border-left: 5px solid var(--rot);
  padding: 1.2rem 1.4rem;
  margin: 1.5rem 0;
  border-radius: 0 4px 4px 0;
}

/* ---------- Formular ---------- */
form .feld { margin-bottom: 1.2rem; }
label { display: block; font-weight: 600; margin-bottom: .3rem; }
input[type="text"], input[type="email"], textarea {
  width: 100%;
  padding: .7rem;
  border: 1px solid var(--grau);
  border-radius: 4px;
  font: inherit;
  background: #fff;
}
textarea { min-height: 180px; resize: vertical; }
.pflicht { color: var(--rot); }
.honigtopf { position: absolute; left: -9999px; height: 0; overflow: hidden; }

.meldung-ok, .meldung-fehler {
  padding: 1rem 1.2rem;
  border-radius: 4px;
  margin-bottom: 1.5rem;
}
.meldung-ok { background: #e7f2ec; border: 1px solid var(--gruen); }
.meldung-fehler { background: #fbe9ec; border: 1px solid var(--rot); }

/* ---------- Fußbereich ---------- */
footer {
  background: var(--fuss);
  color: #fff;
  margin-top: 3rem;
}
.fuss {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.5rem 1.2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem;
}
footer h2 { color: #fff; font-size: 1.15rem; margin: 0 0 .8rem; }
footer a { color: #fff; }
footer a:hover { color: var(--creme); }
footer ul { list-style: none; margin: 0; }
.fuss .knopf-gruen {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.75);
}
.fuss .knopf-gruen:hover { background: rgba(255,255,255,.15); }

.fuss-leiste {
  border-top: 1px solid rgba(255,255,255,.25);
  text-align: center;
  padding: 1rem;
  font-size: .95rem;
}

/* Druckansicht */
@media print {
  header, footer, .buehne-bild { display: none; }
  body { font-size: 11pt; }
}
