/*
 * ÄNGie Theme – Styles
 * Aufbau: 0 Schriften · 1 Tokens · 2 Basis · 3 Header · 4 Bausteine · 5 Startseite (Blöcke) · 6 Unterseiten · 7 Footer · 8 Responsive
 * Schriften liegen lokal im Theme (keine Verbindung zu Google – DSGVO).
 */

/* ============================================================
   0. SCHRIFTEN (lokal)
   ============================================================ */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/inter-latin-ext-500-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/inter-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/inter-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/inter-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-ext-600-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-ext-800-normal.woff2") format("woff2"); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/plus-jakarta-sans-latin-800-normal.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root {
  /* Basis: Marine & Schiefer */
  --navy-950: #08192A;
  --navy-900: #0B2238;
  --navy-800: #12324F;
  --ink:      #1B2A39;   /* Fließtext – 14:1 auf Weiß */
  --slate:    #4A5B6C;   /* Sekundärtext – 7:1 auf Weiß */

  /* Gesundheits-Akzente */
  /* Logo-Grün + abgeleitete, barrierefreie Töne */
  --green-brand: #B0CB1F;  /* Logo – nur Flächen/Grafik (8.8:1 mit Navy-Text) */
  --green-700: #3F5C0E;    /* Hover – 7.6:1 auf Weiß */
  --green-600: #4D6F12;    /* Text-Akzent & Links – 5.8:1 auf Weiß */
  --green-400: #B0CB1F;
  --green-200: #D6E78E;    /* auf Navy */
  --sage-50:  #F5F8EC;
  --sage-100: #E9F0D2;
  --sage-300: #CADB8A;
  --blue-50:  #EEF4FA;
  --blue-100: #DCE8F4;

  /* Flächen & Linien */
  --bg:       #FCFDFC;
  --surface:  #FFFFFF;
  --line:     rgba(11, 34, 56, 0.11);
  --line-strong: rgba(11, 34, 56, 0.18);
  --line-inv: rgba(255, 255, 255, 0.14);

  /* Typografie */
  --font-head: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Form & Bewegung */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 12px;
  --ease: cubic-bezier(.22, .61, .36, 1);
  --t: 220ms var(--ease);

  --container: 1200px;
  --gutter: clamp(16px, 4vw, 32px);
  --section: clamp(72px, 10vw, 128px);

  /* Icons als Hintergrundbild (feste Farbe) */
  --i-arzt-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F5C0E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6 6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3'/%3E%3Cpath d='M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E");
  --i-arzt-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2238' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6 6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3'/%3E%3Cpath d='M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E");
  --i-herz-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F5C0E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7Z'/%3E%3C/svg%3E");
  --i-herz-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2238' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7Z'/%3E%3C/svg%3E");
  --i-koffer-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F5C0E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
  --i-koffer-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2238' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
  --i-arrow-navy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2238' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --i-check-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F5C0E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --i-check-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D6E78E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");

  /* Icons (als CSS-Maske, Farbe = background-color) */
  --i-arzt: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6 6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3%22/%3E%3Cpath d=%22M8 15v1a6 6 0 0 0 6 6 6 6 0 0 0 6-6v-4%22/%3E%3Ccircle cx=%2220%22 cy=%2210%22 r=%222%22/%3E%3C/svg%3E");
  --i-herz: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7Z%22/%3E%3C/svg%3E");
  --i-koffer: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%227%22 width=%2220%22 height=%2214%22 rx=%222%22/%3E%3Cpath d=%22M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16%22/%3E%3C/svg%3E");
  --i-arrow: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E");
  --i-check: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 6 9 17l-5-5%22/%3E%3C/svg%3E");
  --i-phone: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z%22/%3E%3C/svg%3E");
  --i-mail: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%224%22 width=%2220%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22m22 7-10 6L2 7%22/%3E%3C/svg%3E");
  --i-download: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 4v12M6 10l6 6 6-6M5 20h14%22/%3E%3C/svg%3E");
  --i-external: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M7 17 17 7M8 7h9v9%22/%3E%3C/svg%3E");
  --i-zoom: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2211%22 cy=%2211%22 r=%227%22/%3E%3Cpath d=%22m20 20-3.5-3.5M11 8v6M8 11h6%22/%3E%3C/svg%3E");
  --i-instagram: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%222%22 width=%2220%22 height=%2220%22 rx=%225%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224.2%22/%3E%3Ccircle cx=%2217.5%22 cy=%226.5%22 r=%221%22 fill=%22%230B2238%22 stroke=%22none%22/%3E%3C/svg%3E");
  --i-facebook: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000%22%3E%3Cpath d=%22M24 12a12 12 0 1 0-13.9 11.9v-8.4H7.1V12h3V9.4c0-3 1.8-4.7 4.6-4.7 1.3 0 2.7.2 2.7.2v3h-1.5c-1.5 0-2 .9-2 1.9V12h3.4l-.5 3.5h-2.9v8.4A12 12 0 0 0 24 12Z%22/%3E%3C/svg%3E");
}

/* ============================================================
   2. BASIS
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 1.0625rem;          /* 17px */
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, h4 {
  font-family: var(--font-head);
  color: var(--navy-900);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
}
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Fokus: deutlich, aber elegant */
:focus-visible {
  outline: 3px solid var(--green-600);
  outline-offset: 3px;
  border-radius: 6px;
}

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 100;
  background: var(--navy-900); color: #fff; padding: 12px 18px;
  border-radius: var(--r-sm); font-weight: 600; text-decoration: none;
  transition: top var(--t);
}
.skip-link:focus { top: 12px; }

/* Wiederkehrende Elemente */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-head);
  font-size: .8125rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--green-600);
}
.eyebrow::before {
  content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor;
}
.section-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); font-weight: 800; margin-top: 14px; }
.lede { color: var(--slate); font-size: 1.125rem; max-width: 60ch; margin-top: 18px; }

/* Buttons */
.btn {
  --pad-y: 15px; --pad-x: 26px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: var(--pad-y) var(--pad-x);
  border-radius: var(--r-md);
  font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.2;
  text-decoration: none; cursor: pointer; border: 1.5px solid transparent;
  transition: background-color var(--t), color var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
}
.btn svg { width: 18px; height: 18px; transition: transform var(--t); }
.btn:hover svg { transform: translateX(3px); }
.btn-primary { background: var(--green-brand); color: var(--navy-900); box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 8px 20px -10px rgba(120,150,20,.7); }
.btn-primary:hover { background: #C2DA34; transform: translateY(-1px); box-shadow: 0 14px 28px -12px rgba(120,150,20,.75); }
.btn-secondary { background: transparent; color: var(--navy-900); border-color: var(--line-strong); }
.btn-secondary:hover { border-color: var(--navy-900); background: var(--surface); }
.btn-light { background: #fff; color: var(--navy-900); }
.btn-light:hover { background: var(--sage-100); transform: translateY(-1px); }

.text-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--green-600); font-weight: 600; text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1.5px; background-position: 0 100%; background-repeat: no-repeat;
  transition: background-size var(--t), color var(--t);
}
.text-link:hover { background-size: 100% 1.5px; color: var(--green-700); }
.text-link svg { width: 16px; height: 16px; transition: transform var(--t); }
.text-link:hover svg { transform: translateX(3px); }

/* ============================================================
   3. HEADER – zweizeilig: Kopfzeile scrollt weg, Menüleiste bleibt stehen
   ============================================================ */
:root { --top-h: 84px; }
.site-header {
  position: sticky; top: calc(var(--top-h) * -1); z-index: 50;   /* nur die Menüleiste klebt */
  background: rgba(252, 253, 252, .92);
  backdrop-filter: saturate(1.4) blur(12px);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.header-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--top-h); }
.header-actions { display: flex; align-items: center; gap: 6px; }
.header-link {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: var(--r-sm);
  font-size: .9375rem; font-weight: 500; color: var(--ink); text-decoration: none;
  transition: background-color var(--t), color var(--t);
}
.header-link svg { width: 17px; height: 17px; color: var(--green-600); flex: none; }
.header-link:hover { background: var(--sage-50); color: var(--green-700); }
.header-login { border: 1px solid var(--line-strong); margin: 0 6px 0 4px; }
.header-login:hover { border-color: var(--green-600); }
.header-logout { color: var(--slate); }
.header-logout:hover { color: #A4231A; background: #FDF0EE; }
.member-sub .member-sub-logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--line); }
.member-sub .member-sub-logout a { display: flex; align-items: center; gap: 8px; color: #A4231A; }
.member-sub .member-sub-logout svg { width: 16px; height: 16px; }
.header-login.is-aktiv { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.header-login.is-aktiv svg { color: var(--green-brand); }
.header-login.is-aktiv:hover { background: var(--navy-800); color: #fff; }
.header-actions .btn { --pad-y: 11px; --pad-x: 20px; font-size: .9375rem; }

.nav-row { border-top: 1px solid var(--line); }

.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark { width: 54px; height: 46px; flex: none; transition: transform var(--t); }

.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-family: var(--font-head); font-weight: 800; font-size: 1.375rem; color: var(--navy-900); letter-spacing: -0.02em; }
.brand-sub { font-size: .75rem; color: var(--slate); font-weight: 500; letter-spacing: .02em; }

.main-nav > ul { display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-inline: -12px; padding-block: 7px; }
.main-nav li { position: relative; }
.main-nav > ul > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 12px; border-radius: var(--r-sm);
  font-weight: 500; font-size: .9688rem; color: var(--ink); text-decoration: none;
  transition: background-color var(--t), color var(--t);
}
.main-nav > ul > li > a:hover,
.main-nav > ul > li:focus-within > a { background: var(--sage-50); color: var(--green-700); }
.main-nav .menu-home > a { padding: 10px; color: var(--navy-900); }
.main-nav .menu-home > a[aria-current="page"],
.main-nav > ul > li.current-menu-item > a, .main-nav > ul > li.current_page_item > a,
.main-nav > ul > li.current-menu-ancestor > a, .main-nav > ul > li.current-menu-parent > a,
.main-nav > ul > li.current-page-ancestor > a, .main-nav > ul > li.is-aktiv-bereich > a { color: var(--green-700); background: var(--sage-50); }
.main-nav .submenu li.current-menu-item > a, .main-nav .submenu li.current_page_item > a { color: var(--green-700); background: var(--sage-50); font-weight: 600; }
@media (max-width: 1100px) {
  .main-nav.is-open > ul > li.current-menu-item > a, .main-nav.is-open > ul > li.current-menu-ancestor > a,
  .main-nav.is-open > ul > li.current-page-ancestor > a, .main-nav.is-open > ul > li.is-aktiv-bereich > a { background: none; color: var(--green-700); }
}
.main-nav .menu-home svg { display: block; }
.main-nav .menu-home-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.main-nav .chev { width: 14px; height: 14px; opacity: .55; transition: transform var(--t); }
.main-nav li:hover .chev, .main-nav li:focus-within .chev { transform: rotate(180deg); }

.submenu {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 260px; width: max-content; max-width: min(400px, calc(100vw - 32px));
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: 0 24px 48px -24px rgba(11,34,56,.28);
  padding: 8px;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--t), transform var(--t), visibility var(--t);
}
.main-nav > ul > li:nth-last-child(-n+2) > .submenu { left: auto; right: 0; }   /* rechts bündig, kein Überlauf */
.submenu::before { content: ""; position: absolute; inset: -10px 0 auto 0; height: 10px; } /* Hover-Brücke */
.main-nav li:hover > .submenu,
.main-nav li:focus-within > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.submenu a {
  display: block; padding: 10px 18px 10px 14px; border-radius: var(--r-sm);
  font-size: .9375rem; color: var(--ink); text-decoration: none; line-height: 1.4;
  transition: background-color var(--t), color var(--t), padding var(--t);
}
/* Beim Hover rückt der Text 4px ein – rechts wird genauso viel weggenommen, damit nichts umbricht. */
.submenu a:hover, .submenu a:focus-visible { background: var(--sage-50); color: var(--green-700); padding-left: 18px; padding-right: 14px; }

.nav-toggle {
  display: none; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: var(--r-md);
  border: 1px solid var(--line-strong); background: var(--surface); color: var(--navy-900); cursor: pointer;
}
.nav-toggle svg { width: 22px; height: 22px; }


/* ============================================================
   4. BAUSTEINE (Icons, Block-Stile, Buttons)
   ============================================================ */
/* Icon als Maske: Farbe über background-color (= currentColor) */
.mask-icon, .wp-block-button.is-style-primary .wp-block-button__link::after,
.wp-block-button.is-style-light .wp-block-button__link::after,
.wp-block-button.is-style-link .wp-block-button__link::after {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px;
  background-color: currentColor;
  -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat;
  transition: transform var(--t);
}

/* Dachzeile & Einleitung als Absatz-Stile */
.is-style-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-head); font-size: .8125rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--green-600);
}
.is-style-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor; }
.is-style-lede { color: var(--slate); font-size: 1.125rem; max-width: 60ch; margin-top: 18px; }
.eyebrow-link { text-decoration: none; }
.eyebrow-link:hover { color: var(--green-700); }

/* Buttons (Block „Button“ mit Stilen) */
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 26px; border-radius: var(--r-md);
  font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.2;
  text-decoration: none; border: 1.5px solid transparent; box-shadow: none;
  background: var(--navy-900); color: #fff;
  transition: background-color var(--t), color var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
}
.wp-block-button .wp-block-button__link:hover svg,
.wp-block-button .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-primary .wp-block-button__link,
.btn-primary { background: var(--green-brand); color: var(--navy-900); box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 8px 20px -10px rgba(120,150,20,.7); }
.wp-block-button.is-style-primary .wp-block-button__link:hover,
.btn-primary:hover { background: #C2DA34; color: var(--navy-900); transform: translateY(-1px); box-shadow: 0 14px 28px -12px rgba(120,150,20,.75); }
.wp-block-button.is-style-secondary .wp-block-button__link,
.btn-secondary { background: transparent; color: var(--navy-900); border-color: var(--line-strong); }
.wp-block-button.is-style-secondary .wp-block-button__link:hover,
.btn-secondary:hover { border-color: var(--navy-900); background: var(--surface); }
.wp-block-button.is-style-light .wp-block-button__link,
.btn-light { background: #fff; color: var(--navy-900); }
.wp-block-button.is-style-light .wp-block-button__link:hover,
.btn-light:hover { background: var(--sage-100); transform: translateY(-1px); }
.wp-block-button.is-style-link .wp-block-button__link {
  padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
  font-family: var(--font-body); font-weight: 600; font-size: 1rem; color: var(--green-600); gap: 8px;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1.5px; background-position: 0 100%; background-repeat: no-repeat;
  transition: background-size var(--t), color var(--t);
}
.wp-block-button.is-style-link .wp-block-button__link::after { width: 16px; height: 16px; }
.wp-block-button.is-style-link .wp-block-button__link:hover { background-size: 100% 1.5px; color: var(--green-700); }
.btn-download .wp-block-button__link::after { -webkit-mask-image: var(--i-download); mask-image: var(--i-download); }
.btn-download .wp-block-button__link:hover::after { transform: translateY(2px); }

/* Listen-Stile */
.is-style-dots { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.is-style-dots li { display: inline-flex; align-items: center; gap: 10px; font-size: .9375rem; font-weight: 500; color: var(--slate); }
.is-style-dots li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--green-brand); box-shadow: 0 0 0 4px var(--sage-100); }
.is-style-check li { display: flex; gap: 18px; align-items: flex-start; }
.is-style-check li::before {
  content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; margin-top: -1px;
  background: var(--sage-100) var(--i-check-green) center / 15px no-repeat;
  -webkit-mask: none; mask: none;
}

/* Hinweis für Redakteure, wenn ein Plugin-Baustein noch fehlt */
.plugin-hint {
  margin-top: 20px; padding: 14px 16px; border: 1.5px dashed var(--line-strong); border-radius: var(--r-md);
  font-size: .875rem; color: var(--slate); background: repeating-linear-gradient(-45deg, transparent 0 8px, rgba(11,34,56,.025) 8px 16px);
}

/* Front-Content: Abstände der Blockbibliothek neutralisieren */
.front-content figure, .front-content .wp-block-image { margin: 0; }
.front-content .wp-block-image img { height: auto; }

/* ============================================================
   5. STARTSEITE
   ============================================================ */

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden;
  padding-block: clamp(56px, 8vw, 104px) clamp(110px, 12vw, 150px);
  background:
    radial-gradient(900px 500px at 85% 20%, var(--blue-50), transparent 65%),
    radial-gradient(700px 500px at 0% 100%, var(--sage-50), transparent 60%),
    var(--bg);
}
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.hero h1 {
  font-size: clamp(2.5rem, 5.6vw, 4.25rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1.04;
  margin-top: 20px;
}
.hero h1 em { font-style: normal; color: var(--green-600); position: relative; white-space: nowrap; z-index: 0; }
.hero h1 em::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .14em;
  background: var(--green-brand); opacity: .45; border-radius: 4px; z-index: -1;
}
.hero .is-style-lede { font-size: clamp(1.125rem, 1.6vw, 1.25rem); margin-top: 24px; }
.hero-actions { margin-top: 36px; }
.hero .disciplines { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--line); }

.hero-visual { position: relative; }
.hero-photo img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block;
  border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--sage-50);
  box-shadow: 0 40px 70px -40px rgba(11,34,56,.45);
}
.hero-photo figcaption, .hero-photo .wp-element-caption { display: flex; justify-content: flex-end; margin: 14px 0 0; font-size: .9375rem; text-align: right; }
.hero-photo figcaption a {
  display: inline-flex; align-items: center; gap: 8px; color: var(--green-600); font-weight: 600; text-decoration: none;
}
.hero-photo figcaption a::after {
  content: ""; width: 16px; height: 16px; background-color: currentColor; transition: transform var(--t);
  -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat;
}
.hero-photo figcaption a:hover { color: var(--green-700); }
.hero-photo figcaption a:hover::after { transform: translateX(3px); }

/* Karte „Nächster Termin“ mit Countdown */
.event-card {
  position: absolute; z-index: 3; left: -14%; bottom: -24%;
  display: block; width: min(296px, 58%);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: 0 30px 60px -30px rgba(11,34,56,.35);
  padding: 20px 22px; text-decoration: none; color: inherit;
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.event-card:hover { transform: translateY(-3px); border-color: var(--green-200); box-shadow: 0 36px 70px -30px rgba(11,34,56,.42); }
.event-label { display: inline-flex; align-items: center; gap: 8px; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green-600); }
.event-label .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green-600); box-shadow: 0 0 0 0 rgba(77,111,18,.5); animation: dot 2s infinite; }
@keyframes dot { 0% { box-shadow: 0 0 0 0 rgba(77,111,18,.45); } 70% { box-shadow: 0 0 0 8px rgba(77,111,18,0); } 100% { box-shadow: 0 0 0 0 rgba(77,111,18,0); } }
.event-body { display: flex; gap: 16px; margin-top: 12px; align-items: flex-start; }
.date-chip { flex: none; width: 58px; text-align: center; border-radius: var(--r-sm); background: var(--navy-900); color: #fff; padding: 8px 0 9px; line-height: 1; }
.date-chip .d { display: block; font-family: var(--font-head); font-weight: 800; font-size: 1.5rem; }
.date-chip .m { display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-top: 4px; color: var(--green-200); }
.event-card h3 { font-size: 1.0625rem; font-weight: 700; line-height: 1.3; }
.event-meta { font-size: .875rem; color: var(--slate); margin-top: 4px; line-height: 1.5; }
.countdown { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.cd-units { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cd-unit { display: flex; flex-direction: column; align-items: center; padding: 8px 0 7px; border-radius: var(--r-sm); background: var(--sage-50); border: 1px solid var(--line); }
.cd-unit b { font-family: var(--font-head); font-weight: 800; font-size: 1.375rem; line-height: 1; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.cd-unit small { margin-top: 4px; font-size: .6875rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
.cd-live { display: none; align-items: flex-start; gap: 10px; line-height: 1.45; font-family: var(--font-head); font-weight: 700; color: #2D6E29; }
.cd-live::before { content: ""; flex: none; width: 10px; height: 10px; margin-top: .45em; border-radius: 50%; background: #3E9B3A; animation: dot 2s infinite; }
.countdown.is-live .cd-units { display: none; }
.countdown.is-live .cd-live { display: flex; }

/* ---------- Schnelleinstieg ---------- */
.paths { border-block: 1px solid var(--line); background: var(--surface); }
.paths-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.path {
  position: relative; display: grid; grid-template-columns: 48px 1fr; column-gap: 18px; align-content: start;
  padding: 36px clamp(20px, 3vw, 36px); transition: background-color var(--t);
  background-image: linear-gradient(var(--green-brand), var(--green-brand));
  background-size: 0% 3px; background-repeat: no-repeat; background-position: 0 0;
}
.path + .path { border-left: 1px solid var(--line); }
.path::before {
  content: ""; grid-row: 1 / span 3; width: 48px; height: 48px; border-radius: var(--r-md);
  background: var(--sage-100) var(--icon) center / 24px no-repeat;
  transition: background-color var(--t);
}
.path-icon-arzt   { --icon: var(--i-arzt-green);   --icon-hover: var(--i-arzt-navy); }
.path-icon-herz   { --icon: var(--i-herz-green);   --icon-hover: var(--i-herz-navy); }
.path-icon-koffer { --icon: var(--i-koffer-green); --icon-hover: var(--i-koffer-navy); }
.path:hover { background-color: var(--sage-50); background-size: 100% 3px; transition: background-color var(--t), background-size 320ms var(--ease); }
.path:hover::before { background-color: var(--green-brand); background-image: var(--icon-hover); }
.path > * { grid-column: 2; }
.path-kicker { font-size: .8125rem; font-weight: 600; color: var(--slate); }
.path .path-title { font-size: 1.25rem; font-weight: 700; margin-top: 2px; }
.path .path-title a { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.path .path-title a::after {
  content: ""; width: 18px; height: 18px; background-color: var(--green-600); transition: transform var(--t);
  -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat;
}
.path .path-title a::before { content: ""; position: absolute; inset: 0; }          /* ganze Kachel klickbar */
.path:hover .path-title a::after { transform: translateX(4px); }
.path p:not(.path-kicker) { font-size: .9688rem; color: var(--slate); margin-top: 6px; line-height: 1.6; }

/* ---------- Leistungen ---------- */
.services { padding-block: var(--section); }
.services-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 7vw, 96px); align-items: start; }
.services-intro { position: sticky; top: 120px; }
.quote {
  margin-top: 36px; padding: 24px 0 0; border-top: 1px solid var(--line);
  font-family: var(--font-head); font-size: 1.25rem; font-weight: 600; line-height: 1.45; color: var(--navy-800);
}
.quote::before { content: "„"; display: block; font-size: 3rem; line-height: .6; color: var(--green-brand); margin-bottom: 8px; }
.service-list > .service { border-top: 1px solid var(--line); }
.service-list > .service:last-child { border-bottom: 1px solid var(--line); }
.service {
  position: relative; display: grid; grid-template-columns: 64px 1fr auto; column-gap: 24px; row-gap: 8px; align-items: start;
  padding: 32px 8px; border-radius: var(--r-md);
  transition: background-color var(--t), padding var(--t);
}
.service:hover { background: var(--sage-50); padding-inline: 20px; }
.service-num { grid-column: 1; grid-row: 1; font-family: var(--font-head); font-weight: 800; font-size: 1rem; color: var(--green-600); padding-top: 6px; letter-spacing: .04em; }
.service h3 { grid-column: 2; grid-row: 1; font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 700; }
.service h3 a { color: inherit; text-decoration: none; }
.service h3 a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.service > p:not(.service-num) { grid-column: 2; grid-row: 2; color: var(--slate); max-width: 56ch; }
.service::after {
  content: ""; grid-column: 3; grid-row: 1 / span 2; align-self: center;
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong);
  background: var(--i-arrow-navy) center / 18px no-repeat;
  transition: background-color var(--t), border-color var(--t), transform var(--t);
}
.service:hover::after { background-color: var(--green-brand); border-color: var(--green-brand); transform: rotate(-45deg); }

/* ---------- Ziele (dunkles Band) ---------- */
.why { position: relative; overflow: hidden; background: var(--navy-900); color: #D9E3EC; padding-block: var(--section); }
.why::before {
  content: ""; position: absolute; right: -200px; top: -200px; width: 600px; height: 600px; border-radius: 50%;
  background: radial-gradient(circle, rgba(176,203,31,.18), transparent 65%); pointer-events: none;
}
.why .is-style-eyebrow { color: var(--green-200); }
.why h2 { color: #fff; }
.why .is-style-lede { color: #B9C8D6; }
.why-head { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 48px; }
.why-cta { margin-top: 32px; }
.why .hero-logo { width: 100%; max-width: 440px; justify-self: end; filter: drop-shadow(0 30px 50px rgba(0,0,0,.35)); }
.goals { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; margin-top: 56px; }
.goals li { padding: 22px 0; border-top: 1px solid var(--line-inv); font-size: 1.0625rem; color: #EEF3F7; line-height: 1.55; }
.goals li:nth-last-child(-n+2) { border-bottom: 1px solid var(--line-inv); }
.goals.is-style-check li::before { background: rgba(176,203,31,.18) var(--i-check-light) center / 15px no-repeat; }

/* Animiertes Logo */
.hero-logo { width: 100%; height: auto; overflow: visible; }
.hero-logo * { transform-box: fill-box; transform-origin: center; }
.js .hero-logo:not(.is-visible), .js .hero-logo:not(.is-visible) * { animation-play-state: paused; }
.lg-float { animation: lg-float 9s ease-in-out 3.2s infinite; transform-box: view-box !important; }
.lg-land  { animation: lg-land 1s var(--ease) both; }
.lg-pop   { animation: lg-pop .7s cubic-bezier(.34,1.56,.64,1) both; animation-delay: calc(1s + var(--i) * .16s); }
.lg-ring  { fill: none; stroke: #fff; stroke-width: 70; opacity: 0; animation: lg-ring 3.8s var(--ease) infinite; animation-delay: calc(2.6s + var(--i) * .55s); }
.lg-node:first-child .lg-ring { stroke-width: 90; }
@keyframes lg-land  { from { opacity: 0; transform: scale(.94) translateY(12px); } }
@keyframes lg-pop   { from { opacity: 0; transform: scale(0); } }
@keyframes lg-ring  { 0% { opacity: .9; transform: scale(.7); } 80%, 100% { opacity: 0; transform: scale(2.3); } }
@keyframes lg-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-160px); } }

/* ---------- Aktuelles ---------- */
.news { padding-block: var(--section); }
.news-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.news-links { gap: 24px; }
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 56px; margin-top: 48px; }
.news-feature + .news-grid { margin-top: 0; }

.news-feature {
  margin-top: 48px; margin-bottom: 40px;
  display: grid; grid-template-columns: 230px 1.15fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: center;
  padding: clamp(28px, 4vw, 48px); border-radius: var(--r-lg);
  background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); border: 1px solid var(--line);
}
.flyer-thumb { transform: rotate(-3deg); transition: transform 500ms cubic-bezier(.22,1,.36,1); }
.flyer-thumb img { width: 100%; border-radius: 6px; box-shadow: 0 2px 4px rgba(11,34,56,.1), 0 30px 50px -24px rgba(11,34,56,.55); cursor: zoom-in; }
.flyer-thumb:hover { transform: rotate(0deg) scale(1.03); }
.flyer-thumb .lightbox-trigger { opacity: 1; background: rgba(255,255,255,.94); border-radius: 999px; width: 36px; height: 36px; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tag {
  display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--line); font-size: .8125rem; font-weight: 600; color: var(--green-700); line-height: 1.4;
}
.tag-free { background: var(--green-brand); border-color: transparent; color: var(--navy-900); }
.news-feature h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; margin-top: 16px; }
.feature-text > p { color: var(--slate); margin-top: 12px; max-width: 52ch; }
.facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 28px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line-strong); }
.facts p { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); line-height: 1.6; }
.facts strong { display: inline-block; margin-top: 4px; font-family: var(--font-head); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--navy-900); line-height: 1.35; }
.event-actions { margin-top: 28px; }
.event-actions .wp-block-button__link { padding: 13px 22px; }

.workshops { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px 26px; align-self: stretch; display: flex; flex-direction: column; }
.workshops h4 { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.ws-list { margin-top: 10px; }
.ws-list li { position: relative; padding: 14px 0 14px 76px; border-bottom: 1px solid var(--line); font-weight: 600; color: var(--navy-900); line-height: 1.4; }
.ws-list li:last-child { border-bottom: 0; }
.ws-list strong { position: absolute; left: 0; top: 15px; font-family: var(--font-head); font-weight: 800; color: var(--green-600); font-size: .9375rem; }
.ws-list em { display: block; font-style: normal; font-weight: 400; font-size: .875rem; color: var(--slate); margin-top: 2px; line-height: 1.45; }
.ws-note { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); font-size: .875rem; color: var(--slate); }

.news-item { display: grid; grid-template-columns: 76px 1fr; gap: 20px; padding: 28px 0; border-block: 1px solid var(--line); text-decoration: none; color: inherit; }
.news-date { font-family: var(--font-head); line-height: 1.1; color: var(--slate); }
.news-date .d { display: block; font-size: 1.75rem; font-weight: 800; color: var(--navy-900); }
.news-date .m { font-size: .8125rem; font-weight: 600; }
.news-item h3 { font-size: 1.1875rem; font-weight: 700; line-height: 1.35; transition: color var(--t); }
.news-item:hover h3 { color: var(--green-700); }
.news-item p { font-size: .9688rem; color: var(--slate); margin-top: 8px; line-height: 1.6; }
.news-item .text-link { margin-top: 12px; font-size: .9375rem; }

/* ---------- Rückruf & Geschäftsstelle ---------- */
.contact { padding-block: 0 var(--section); }
.contact-wrap { display: grid; grid-template-columns: 1.1fr .9fr; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); }
.callback { padding: clamp(28px, 5vw, 56px); }
.callback h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 800; margin-top: 14px; }
.callback .is-style-lede { font-size: 1.0625rem; }
.callers { display: flex; align-items: center; gap: 16px; margin-top: 24px; }
.callers .avatar + .avatar { margin-left: -30px; }
.callers p { font-size: .9375rem; color: var(--slate); line-height: 1.5; }
.callers strong { color: var(--navy-900); font-weight: 600; }
.avatar { flex: none; }
.avatar img { border-radius: 50%; object-fit: cover; border: 3px solid var(--surface); box-shadow: 0 6px 14px -6px rgba(11,34,56,.35); }

.office { background: var(--sage-50); border-left: 1px solid var(--line); padding: clamp(28px, 5vw, 56px); }
.office h3 { font-size: 1.25rem; font-weight: 700; }
.office-sub { font-size: .9375rem; color: var(--slate); margin-top: 6px; margin-bottom: 24px; }
.person { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); }
.person .avatar img { border-color: var(--sage-50); box-shadow: 0 8px 18px -8px rgba(11,34,56,.4); }
.person p { font-size: .8125rem; color: var(--slate); font-weight: 500; line-height: 1.55; }
.person strong { font-family: var(--font-head); font-size: 1.0625rem; font-weight: 700; color: var(--navy-900); }
.person a, .contact-row a { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; font-size: 1.0625rem; font-weight: 600; color: var(--navy-900); text-decoration: none; transition: color var(--t); }
.person a:hover, .contact-row a:hover { color: var(--green-700); }
.person a[href^="tel:"]::before, .contact-row a::before {
  content: ""; width: 15px; height: 15px; background-color: var(--green-600);
  -webkit-mask: var(--i-phone) center / contain no-repeat; mask: var(--i-phone) center / contain no-repeat;
}
.contact-row { padding: 16px 0; border-block: 1px solid var(--line); font-size: .8125rem; color: var(--slate); font-weight: 500; }
.contact-mail a::before { -webkit-mask-image: var(--i-mail); mask-image: var(--i-mail); width: 17px; height: 17px; }
.hours-title { margin-top: 28px; font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.wp-block-table.hours { margin: 10px 0 0; }
.wp-block-table.hours table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.wp-block-table.hours td { text-align: left; padding: 8px 0; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--slate); }
.wp-block-table.hours td:first-child { font-weight: 600; color: var(--navy-900); padding-right: 16px; white-space: nowrap; width: 1%; }

/* Formular-Grundstil (für das Kontaktformular-Plugin) */
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 32px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field label { font-size: .9375rem; font-weight: 600; color: var(--navy-900); }
.field label span { color: var(--green-700); }
.field input, .field textarea, .field select {
  font: inherit; font-size: 1rem; color: var(--ink); padding: 14px 16px; border-radius: var(--r-sm);
  border: 1.5px solid var(--line-strong); background: var(--bg);
  transition: border-color var(--t), background-color var(--t), box-shadow var(--t);
}
.field input::placeholder, .field textarea::placeholder { color: #7D8B98; }
.field input:hover, .field textarea:hover { border-color: rgba(11,34,56,.32); }
.field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--green-600); background: #fff; box-shadow: 0 0 0 4px rgba(176,203,31,.22); }
.consent { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; font-size: .875rem; color: var(--slate); line-height: 1.55; }
.consent input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--green-600); cursor: pointer; }
.consent a { color: var(--green-700); font-weight: 600; }
.form .btn { grid-column: 1 / -1; justify-self: start; margin-top: 6px; }

/* ---------- Broschüre, Newsletter, Social ---------- */
.stay { background: var(--sage-50); border-block: 1px solid var(--line); padding-block: clamp(64px, 8vw, 104px); overflow: hidden; }
.brochure { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 88px); align-items: center; }
.bro-mock { position: relative; aspect-ratio: 1 / .92; width: 100%; max-width: 540px; }
.bro-mock::before {
  content: ""; position: absolute; inset: 8% 6% 4% 10%; border-radius: 50%;
  background: radial-gradient(circle, rgba(176,203,31,.32), rgba(176,203,31,0) 68%);
}
.bro-mock > .wp-block-image {
  position: absolute; width: 50%; aspect-ratio: 595 / 842; border-radius: 4px; background: #fff; margin: 0;
  transition: transform 700ms cubic-bezier(.22,1,.36,1), box-shadow 700ms var(--ease); transform-origin: 50% 100%;
}
.bro-mock > .wp-block-image a { display: block; height: 100%; }
.bro-mock > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }
.bro-mock .bro-p2 { left: 41%; top: 8%; transform: rotate(9deg); box-shadow: 0 18px 40px -18px rgba(11,34,56,.35); }
.bro-mock .bro-p1 { left: 29%; top: 5%; transform: rotate(3.5deg); box-shadow: 0 22px 44px -18px rgba(11,34,56,.38); }
.bro-mock .bro-cover { left: 12%; top: 3%; transform: rotate(-4deg); box-shadow: 0 2px 4px rgba(11,34,56,.08), 0 40px 60px -22px rgba(11,34,56,.5); }
.bro-mock .bro-cover::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0,0,0,.22) 0, rgba(0,0,0,.05) 2.5%, rgba(255,255,255,.35) 3.5%, rgba(255,255,255,0) 7%),
    linear-gradient(125deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 38%);
}
.bro-mock:hover .bro-cover { transform: rotate(-7deg) translate(-4%, -3%); box-shadow: 0 2px 4px rgba(11,34,56,.08), 0 50px 70px -24px rgba(11,34,56,.55); }
.bro-mock:hover .bro-p1 { transform: rotate(6deg) translate(6%, -1%); }
.bro-mock:hover .bro-p2 { transform: rotate(14deg) translate(14%, 2%); }
.bro-badge {
  position: absolute; z-index: 2; left: 4%; bottom: 6%;
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px;
  background: var(--navy-900); color: #fff; font-size: .8125rem; font-weight: 600; letter-spacing: .01em;
  box-shadow: 0 14px 28px -14px rgba(11,34,56,.6);
}
.bro-badge::before { content: ""; width: 16px; height: 16px; background-color: var(--green-brand); -webkit-mask: var(--i-download) center / contain no-repeat; mask: var(--i-download) center / contain no-repeat; }
.bro-facts { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: 36px; margin-top: 32px; padding-block: 22px; border-block: 1px solid var(--line-strong); }
.bro-facts p { font-size: .875rem; color: var(--slate); line-height: 1.5; }
.bro-facts strong { display: inline-block; font-family: var(--font-head); font-size: 1.75rem; font-weight: 800; color: var(--navy-900); line-height: 1.1; margin-bottom: 4px; }
.bro-actions { margin-top: 30px; display: inline-flex; vertical-align: middle; }
.bro-meta { display: inline-block; margin: 30px 0 0 20px; vertical-align: middle; font-size: .875rem; color: var(--slate); }

.stay-grid { display: grid; grid-template-columns: 1.4fr 1fr; margin-top: clamp(56px, 7vw, 88px); padding-top: clamp(40px, 5vw, 56px); border-top: 1px solid var(--line-strong); }
.stay-col { padding: 8px clamp(20px, 3vw, 40px); }
.stay-col:first-child { padding-left: 0; }
.stay-col + .stay-col { border-left: 1px solid var(--line-strong); }
.stay h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); font-weight: 800; margin-top: 12px; }
.stay .section-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); }
.stay h3 { font-size: 1.125rem; font-weight: 700; }
.stay-col > p { color: var(--slate); margin-top: 10px; font-size: .9688rem; }
.stay-col .wp-block-buttons { margin-top: 22px; }
.social { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.social a {
  display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--navy-900); font-weight: 600;
  padding: 10px 14px; border-radius: var(--r-sm); border: 1px solid var(--line-strong); background: var(--surface);
  transition: border-color var(--t), color var(--t), transform var(--t);
}
.social a::before { content: ""; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: var(--i-mail) center / contain no-repeat; mask: var(--i-mail) center / contain no-repeat; }
.social a[href*="facebook"]::before { -webkit-mask-image: var(--i-facebook); mask-image: var(--i-facebook); }
.social a[href*="instagram"]::before { -webkit-mask-image: var(--i-instagram); mask-image: var(--i-instagram); }
.social a:hover { border-color: var(--green-600); color: var(--green-700); transform: translateX(3px); }

/* ---------- Partner ---------- */
.partners { padding-block: var(--section); }
.partners-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.partner-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 44px; border-top: 1px solid var(--line); }
.partner-grid li { border-bottom: 1px solid var(--line); }
.partner-grid li:not(:nth-child(4n+1)) { border-left: 1px solid var(--line); }
.partner-grid a {
  display: flex; flex-direction: column; justify-content: space-between; gap: 18px; height: 100%; min-height: 148px;
  padding: 24px; text-decoration: none; font-size: .8125rem; color: var(--slate);
  transition: background-color var(--t), color var(--t);
}
.partner-grid a br { display: none; }
.partner-grid a strong { font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.4; color: var(--navy-900); }
.partner-grid a:hover { background: var(--sage-50); color: var(--green-700); }

/* ---------- Mitgliederkarte (Rahmen; Inhalt kommt aus dem Plugin) ---------- */
.members-map { padding-block: 0 var(--section); }

/* Textlink mit Pfeil (in Templates) */
.text-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--green-600); font-weight: 600; text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1.5px; background-position: 0 100%; background-repeat: no-repeat;
  transition: background-size var(--t), color var(--t);
}
.text-link:hover, a:hover .text-link { background-size: 100% 1.5px; color: var(--green-700); }
.text-link svg { width: 16px; height: 16px; transition: transform var(--t); }
.text-link:hover svg, a:hover .text-link svg { transform: translateX(3px); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 26px; border-radius: var(--r-md);
  font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.2;
  text-decoration: none; cursor: pointer; border: 1.5px solid transparent;
  transition: background-color var(--t), color var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
}
.btn svg { width: 18px; height: 18px; transition: transform var(--t); }
.btn:hover svg { transform: translateX(3px); }
.header-actions .btn { padding: 11px 20px; font-size: .9375rem; }

/* ============================================================
   6. UNTERSEITEN (Seiten, Meldungen, Archive)
   ============================================================ */
.page-hero {
  padding-block: clamp(48px, 7vw, 88px) clamp(36px, 5vw, 56px);
  background:
    radial-gradient(800px 400px at 90% 0%, var(--blue-50), transparent 65%),
    radial-gradient(600px 400px at 0% 100%, var(--sage-50), transparent 60%),
    var(--bg);
  border-bottom: 1px solid var(--line);
}
.page-title { font-size: clamp(2.1rem, 4.4vw, 3.25rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.08; margin-top: 14px; max-width: 28ch; }
.page-hero .lede, .page-hero .is-style-lede { margin-top: 18px; }
.post-meta { margin-top: 14px; color: var(--slate); font-size: .9375rem; }
.container-narrow { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.post-thumb { margin-top: 40px; }
.post-thumb img { width: 100%; height: auto; border-radius: var(--r-lg); }

/* Fließtext im Editor-Inhalt */
.entry-content { width: 100%; max-width: var(--container); margin-inline: auto; padding: clamp(40px, 6vw, 72px) var(--gutter); }
.entry-content > * { max-width: none; margin-inline: 0; }   /* volle Theme-Breite */
.entry-content > .alignfull { max-width: none; margin-inline: calc(50% - 50vw); }
.entry-content > * + * { margin-top: 1.25em; }
.entry-content .is-style-lede, .entry-content .lede { max-width: none; }   /* Inhalte nutzen die volle Breite */
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; margin-top: 2em; }
.entry-content h3 { font-size: 1.375rem; font-weight: 700; margin-top: 1.75em; }
.entry-content h4 { font-size: 1.125rem; font-weight: 700; margin-top: 1.5em; }
.entry-content a:not(.wp-block-button__link) { color: var(--green-600); font-weight: 500; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.entry-content a:not(.wp-block-button__link):hover { color: var(--green-700); }
.entry-content ul:not([class*="is-style"]), .entry-content ol { padding-left: 1.3em; }
.entry-content ul:not([class*="is-style"]) { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li + li { margin-top: .4em; }
.entry-content li::marker { color: var(--green-600); }
.entry-content blockquote, .entry-content .wp-block-quote {
  border-left: 3px solid var(--green-brand); padding: 4px 0 4px 24px; font-family: var(--font-head); font-size: 1.25rem; color: var(--navy-800);
}
.entry-content .wp-block-quote cite { display: block; margin-top: 8px; font-family: var(--font-body); font-size: .875rem; font-style: normal; color: var(--slate); }
.entry-content figure { margin-block: 2em; }
.entry-content img { height: auto; border-radius: var(--r-md); }
.entry-content figcaption { font-size: .875rem; color: var(--slate); margin-top: 8px; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: .9688rem; }
.entry-content th, .entry-content td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.entry-content th { font-weight: 600; color: var(--navy-900); background: var(--sage-50); }
.entry-content hr, .entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--line-strong); margin-block: 2.5em; }
.entry-content .wp-block-file { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.entry-content .wp-block-file .wp-block-file__button { margin-left: auto; padding: 10px 16px; border-radius: var(--r-sm); background: var(--green-brand); color: var(--navy-900); font-weight: 700; text-decoration: none; }

/* Seitenbausteine: Info + Beitragskarte, Vorteile, Aufruf (z. B. Mitgliedschaft) */
.entry-content .m-intro { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.m-intro-text > h2 { margin-top: 12px; }
.m-intro-text > p:not(.is-style-eyebrow) { margin-top: 1em; }
.m-intro-text a { white-space: nowrap; }
.m-signature { color: var(--slate); }
.fee-card {
  position: sticky; top: 90px; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-lg);
  background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); border: 1px solid var(--line);
  box-shadow: 0 30px 60px -44px rgba(11,34,56,.45);
}
.fee-label { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); }
.fee { margin-top: 6px; font-size: 1.0625rem; color: var(--slate); }
.fee strong { font-family: var(--font-head); font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; color: var(--navy-900); letter-spacing: -0.02em; margin-right: 6px; }
.entry-content .fee-card .is-style-check { margin-top: 20px; padding: 18px 0 0; border-top: 1px solid var(--line-strong); display: grid; gap: 12px; }
.entry-content .fee-card .is-style-check li { margin: 0; font-size: .9688rem; line-height: 1.45; }
.entry-content .fee-card .is-style-check li::before { width: 24px; height: 24px; background-size: 13px; }
.fee-card .wp-block-buttons { margin-top: 24px; gap: 14px 20px; }

.entry-content .m-benefits-head { margin-top: clamp(56px, 7vw, 88px); padding-top: clamp(40px, 5vw, 56px); border-top: 1px solid var(--line); }
.m-benefits-head h2 { max-width: none; margin-top: 12px; font-size: clamp(1.6rem, 3vw, 2.25rem); }
.entry-content .benefit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 32px; counter-reset: benefit; }
.benefit {
  position: relative; padding: 28px 28px 28px 84px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface);
  transition: border-color var(--t), box-shadow var(--t);
}
.benefit:hover { border-color: var(--green-brand); box-shadow: 0 20px 40px -30px rgba(11,34,56,.35); }
.benefit::before {
  counter-increment: benefit; content: counter(benefit, decimal-leading-zero);
  position: absolute; left: 24px; top: 26px; width: 40px; height: 40px; border-radius: var(--r-md);
  display: grid; place-items: center; background: var(--sage-100); color: var(--green-700);
  font-family: var(--font-head); font-weight: 800; font-size: .9375rem;
}
.entry-content .benefit h3 { margin-top: 6px; font-size: 1.1875rem; }
.entry-content .benefit p { margin-top: .8em; color: var(--slate); font-size: .9688rem; line-height: 1.65; }

.entry-content .cta-band {
  display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap;
  margin-top: clamp(48px, 6vw, 72px); padding: clamp(28px, 4vw, 48px); border-radius: var(--r-lg);
  background: var(--navy-900); color: #D9E3EC; position: relative; overflow: hidden;
}
.cta-band::before { content: ""; position: absolute; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(176,203,31,.22), transparent 65%); pointer-events: none; }
.cta-band > * { position: relative; }
.entry-content .cta-band h2 { margin: 0; color: #fff; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.entry-content .cta-band p { margin-top: 10px; color: #B9C8D6; max-width: 56ch; }
.cta-band .is-style-secondary .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.35); }
.cta-band .is-style-secondary .wp-block-button__link:hover { background: rgba(255,255,255,.08); border-color: #fff; }

/* Unterseiten als Karten */
.subpages { padding-bottom: var(--section); }
.subpage-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.subpage-card {
  position: relative; display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 24px 64px 24px 24px;
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); text-decoration: none; color: inherit;
  transition: border-color var(--t), transform var(--t), box-shadow var(--t);
}
.subpage-card:hover { border-color: var(--green-brand); transform: translateY(-2px); box-shadow: 0 20px 40px -28px rgba(11,34,56,.35); }
.subpage-title { font-family: var(--font-head); font-weight: 700; font-size: 1.125rem; color: var(--navy-900); hyphens: auto; -webkit-hyphens: auto; }
.subpage-text { font-size: .9375rem; color: var(--slate); line-height: 1.55; }
.subpage-arrow { position: absolute; right: 20px; top: 22px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); transition: background-color var(--t), border-color var(--t); }
.subpage-arrow svg { width: 15px; height: 15px; }
.subpage-card:hover .subpage-arrow { background: var(--green-brand); border-color: var(--green-brand); }

/* Meldungen-Archiv */
.archive-list { padding-block: clamp(32px, 5vw, 56px) var(--section); }
.news-grid-archive { margin-top: 0; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.nav-links .page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 14px; border-radius: var(--r-sm); border: 1px solid var(--line-strong); text-decoration: none; font-weight: 600; color: var(--navy-900); }
.nav-links .page-numbers.current { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.nav-links a.page-numbers:hover { border-color: var(--green-600); color: var(--green-700); }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-bottom: var(--section); }
.post-nav a { display: block; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-md); text-decoration: none; font-weight: 600; color: var(--navy-900); }
.post-nav a:hover { border-color: var(--green-brand); }
.post-nav small { display: block; font-size: .8125rem; font-weight: 500; color: var(--slate); }
.post-nav-next { grid-column: 2; text-align: right; }

/* Suche */
.search-form { position: relative; display: flex; gap: 10px; max-width: 560px; margin-top: 28px; }
.search-form .icon { position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--slate); pointer-events: none; }
.search-form input {
  flex: 1; font: inherit; padding: 14px 16px 14px 44px; border-radius: var(--r-sm);
  border: 1.5px solid var(--line-strong); background: #fff; color: var(--ink);
}
.search-form input:focus { outline: none; border-color: var(--green-600); box-shadow: 0 0 0 4px rgba(176,203,31,.22); }
.page-hero-404 { padding-bottom: var(--section); }
.page-hero-404 .hero-actions { margin-top: 28px; }

/* ============================================================
   7. FOOTER
   ============================================================ */
.site-footer { background: var(--navy-950); color: #B9C8D6; font-size: .9375rem; }
.footer-cta { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; padding-block: 48px; border-bottom: 1px solid var(--line-inv); }
.footer-cta h2 { color: #fff; font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; max-width: 22ch; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-block: 56px; }
.site-footer .brand-name { color: #fff; }
.site-footer .brand-sub { color: #8FA3B6; }
.footer-about { margin-top: 18px; max-width: 38ch; line-height: 1.65; }
.site-footer .footer-mg { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; padding: 11px 18px; border-radius: var(--r-md); border: 1.5px solid rgba(214, 231, 142, .55); color: #fff; font-weight: 600; transition: background var(--t), border-color var(--t), color var(--t); }
.site-footer .footer-mg svg { width: 18px; height: 18px; color: var(--green-brand); }
.site-footer .footer-mg:hover { background: var(--green-brand); border-color: var(--green-brand); color: var(--navy-900); }
.site-footer .footer-mg:hover svg { color: var(--navy-900); }
.site-footer h3 { color: #fff; font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.footer-list { margin-top: 18px; display: grid; gap: 10px; }
.site-footer a { color: #DCE6EF; text-decoration: none; transition: color var(--t); }
.site-footer a:hover { color: var(--green-200); }
.site-footer .btn-primary, .site-footer .btn-primary:hover { color: var(--navy-900); }   /* Button behält dunkle Schrift */
.footer-list small { display: block; color: #8FA3B6; font-size: .8125rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 24px; border-top: 1px solid var(--line-inv); font-size: .875rem; color: #8FA3B6; }
.footer-bottom nav { display: flex; gap: 24px; }

/* ============================================================
   8. RESPONSIVE
   ============================================================ */
@media (max-width: 1200px) {
  .header-mail { display: none; }
}
@media (max-width: 1100px) {
  :root { --top-h: 72px; }
  .site-header { top: 0; }
  .nav-row { border-top: 0; }
  .main-nav, .header-login, .header-actions .btn { display: none; }
  .header-link span { display: none; }
  .header-link { padding: 12px; }
  .nav-toggle { display: inline-flex; }
  .main-nav.is-open {
    display: block; position: absolute; top: 100%; left: 0; right: 0;
    background: var(--surface); border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 40px -24px rgba(11,34,56,.3);
    max-height: calc(100vh - var(--top-h)); overflow-y: auto; padding: 12px var(--gutter) 24px;
  }
  .main-nav.is-open > ul { flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0; }
  .main-nav.is-open > ul > li { border-bottom: 1px solid var(--line); }
  .main-nav.is-open > ul > li > a { padding: 14px 4px; font-weight: 600; font-size: 1.0625rem; }
  .main-nav.is-open .chev { display: none; }
  .main-nav.is-open .menu-home > a { gap: 10px; padding: 14px 4px; background: none; }
  .main-nav.is-open .menu-home-text { position: static; width: auto; height: auto; clip: auto; }
  .main-nav.is-open .submenu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 12px 8px; min-width: 0; }
  .main-nav.is-open .submenu a { padding: 8px 12px; color: var(--slate); }
  .main-nav.is-open .mobile-cta { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 18px; }
}
@media (max-width: 1080px) {
  .hero { padding-bottom: clamp(64px, 9vw, 120px); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-visual { max-width: 520px; margin-inline: auto; width: 100%; }
  .event-card { position: relative; left: auto; bottom: auto; width: 100%; margin-top: 16px; }
  .services-grid { grid-template-columns: 1fr; }
  .services-intro { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-grid li:not(:nth-child(4n+1)) { border-left: 0; }
  .partner-grid li:nth-child(2n) { border-left: 1px solid var(--line); }
  .news-feature { grid-template-columns: 200px 1fr; }
  .workshops { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .entry-content .m-intro, .entry-content .benefit-grid { grid-template-columns: 1fr; }
  .fee-card { position: static; }
  .paths-grid { grid-template-columns: 1fr; }
  .path + .path { border-left: 0; border-top: 1px solid var(--line); }
  .goals { grid-template-columns: 1fr; }
  .why-head { grid-template-columns: 1fr; gap: 40px; }
  .why .hero-logo { justify-self: center; max-width: 380px; }
  .goals li:nth-last-child(2) { border-bottom: 0; }
  .news-grid { grid-template-columns: 1fr; }
  .news-item + .news-item { border-top: 0; }
  .contact-wrap { grid-template-columns: 1fr; }
  .office { border-left: 0; border-top: 1px solid var(--line); }
  .brochure { grid-template-columns: 1fr; }
  .bro-mock { max-width: 460px; margin-inline: auto; }
  .stay-grid { grid-template-columns: 1fr; gap: 32px; }
  .stay-col { padding: 0; }
  .stay-col + .stay-col { border-left: 0; border-top: 1px solid var(--line-strong); padding-top: 32px; }
  .post-nav { grid-template-columns: 1fr; }
  .post-nav-next { grid-column: 1; }
}
@media (max-width: 600px) {
  .brand-sub { display: none; }
  .benefit { padding: 76px 22px 24px; }
  .benefit::before { left: 22px; top: 22px; }
  .form { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr 1fr; }
  .news-feature { grid-template-columns: 1fr; }
  .flyer-thumb { max-width: 230px; margin-inline: auto; }
  .service { grid-template-columns: 44px 1fr; }
  .service::after { display: none; }
  .partner-grid { grid-template-columns: 1fr; }
  .partner-grid li:nth-child(2n) { border-left: 0; }
  .footer-grid { grid-template-columns: 1fr; }
  .bro-meta { display: block; margin: 12px 0 0; }
}

/* Bewegung reduzieren, wenn vom System gewünscht */
@media (prefers-reduced-motion: reduce) {
  .lg-packets { display: none; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.fee-card .m-signature { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line-strong); font-size: .9375rem; }
.fee-card .m-signature a { color: var(--green-700, #3F5C0E); font-weight: 600; }
.entry-content .m-intro + .mg-beitritt, .entry-content .m-intro + p > .mg-beitritt { margin-top: clamp(40px, 6vw, 64px); }
/* Über ÄNGie e.V. */
.entry-content .member-types { margin-top: 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; padding: 0; }
.entry-content .member-types li { margin: 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-md, 10px); background: #fff; line-height: 1.5; }
.entry-content .benefit-grid.is-odd > :last-child:nth-child(odd), .entry-content .member-types > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.facts-card .fee strong { margin-right: 8px; }
.facts-card .wp-block-buttons { margin-top: 24px; }
@media (max-width: 720px) { .entry-content .member-types { grid-template-columns: 1fr; } }
/* Satzung */
.entry-content .satzung-head { max-width: none; }
.entry-content .satzung-head .is-style-lede { margin-top: 12px; }
.entry-content .satzung { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: start; margin-top: clamp(32px, 5vw, 48px); }
.entry-content .satzung-toc { position: sticky; top: 96px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r-lg, 12px); background: linear-gradient(180deg, #fff, var(--sage-50, #F5F8EC)); }
.entry-content ul.satzung-toc-list { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 2px; }
.entry-content .satzung-toc-list li { margin: 0; }
.entry-content .satzung-toc-list a { display: block; padding: 7px 10px; margin: 0 -10px; border-radius: 8px; color: var(--navy-900); font-size: .9375rem; font-weight: 500; text-decoration: none; line-height: 1.35; transition: background .2s, color .2s; }
.entry-content .satzung-toc-list a:hover, .entry-content .satzung-toc-list a.is-active { background: rgba(176,203,31,.18); color: var(--green-700, #3F5C0E); }
.entry-content .satzung-stand { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font-size: .8125rem; color: var(--slate); }
.entry-content .satzung-text { max-width: none; }
.entry-content .satzung-par { padding: clamp(22px, 3vw, 30px) 0; border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.entry-content .satzung-par:first-child { border-top: 0; padding-top: 0; }
.entry-content .satzung-par h3 { scroll-margin-top: 96px; font-size: 1.25rem; margin: 0 0 14px; color: var(--navy-900); }
.entry-content .satzung-par p, .entry-content .satzung-par li { line-height: 1.7; color: var(--ink); }
.entry-content .satzung-par p + p, .entry-content .satzung-par p + .wp-block-list, .entry-content .satzung-par .wp-block-list + p, .entry-content .satzung-par .wp-block-list + .wp-block-list { margin-top: .75em; }
.entry-content .satzung-par li > .wp-block-list { margin-top: .4em; }
.entry-content .satzung-cont { padding-left: 1.3em; }
.entry-content .satzung-fuss { margin-top: 8px; padding: 16px 20px; border-radius: var(--r-md, 10px); background: var(--sage-50, #F5F8EC); color: var(--slate); font-size: .9375rem; }
@media (max-width: 900px) {
  .entry-content .satzung { grid-template-columns: 1fr; }
  .entry-content .satzung-toc { position: static; }
  .entry-content ul.satzung-toc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
}
@media print { .entry-content .satzung { display: block; } .entry-content .satzung-toc { display: none; } }
@media (max-width: 560px) { .entry-content ul.satzung-toc-list { grid-template-columns: 1fr; } }
.entry-content .satzung-toc-list a, .entry-content .satzung-par h3 { overflow-wrap: anywhere; hyphens: auto; }
/* Der Vorstand */
.entry-content .board-intro { align-items: center; }
.entry-content .board-photo { margin: 0; }
.entry-content .board-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg, 12px); box-shadow: 0 30px 60px -40px rgba(11,34,56,.55); }
.entry-content .board-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: clamp(48px, 7vw, 80px); }
.board-card { display: grid; grid-template-columns: minmax(130px, 38%) 1fr; background: var(--surface, #fff); border: 1px solid var(--line); border-radius: var(--r-lg, 12px); overflow: hidden; transition: border-color var(--t), box-shadow var(--t), transform var(--t); }
.board-card:hover { border-color: var(--green-brand); box-shadow: 0 24px 48px -32px rgba(11,34,56,.4); transform: translateY(-2px); }
.entry-content .board-portrait { margin: 0; height: 100%; }
.entry-content .board-portrait img { width: 100%; height: 100%; min-height: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center 20%; display: block; }
.entry-content .board-body { padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; }
.entry-content .board-body h3 { margin: 0; font-size: 1.25rem; line-height: 1.3; }
.entry-content .board-fach { margin-top: 6px; font-size: .875rem; font-weight: 600; color: var(--green-700, #3F5C0E); line-height: 1.45; }
.entry-content .board-adr { margin-top: 14px; font-size: .9375rem; color: var(--slate); line-height: 1.6; }
.entry-content .board-contact { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); font-size: .9375rem; line-height: 1.9; color: var(--slate); }
.entry-content .board-body .board-adr + .board-contact { margin-top: 16px; }
.board-contact a { display: inline-flex; align-items: center; gap: 8px; color: var(--navy-900); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; transition: color var(--t); }
.board-contact a:hover { color: var(--green-700, #3F5C0E); }
.board-contact a::before, .board-contact .c-fax::before { content: ""; flex: none; width: 15px; height: 15px; background-color: var(--green-600); -webkit-mask: var(--i-phone) center / contain no-repeat; mask: var(--i-phone) center / contain no-repeat; }
.board-contact .c-fax { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; }
.board-contact .c-fax::before { opacity: .45; }
.board-contact .c-mail::before { -webkit-mask-image: var(--i-mail); mask-image: var(--i-mail); }
.board-contact .c-web::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z%22/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z%22/%3E%3C/svg%3E"); }
.entry-content .board-grid + .cta-band { margin-top: clamp(48px, 7vw, 80px); }
@media (max-width: 1024px) { .entry-content .board-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .board-card { grid-template-columns: 1fr; } .entry-content .board-portrait img { aspect-ratio: 4 / 3; height: auto; object-position: center 25%; } }
/* Formulare (WPForms) im ÄNGie-Design */
.entry-content .form-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: clamp(32px, 5vw, 72px); align-items: start; margin-top: clamp(56px, 7vw, 88px); padding-top: clamp(40px, 5vw, 56px); border-top: 1px solid var(--line); }
.form-section-text h2 { margin-top: 12px; }
.form-section-text > p:not(.is-style-eyebrow) { margin-top: 1em; }
.aengie-form {
  background: var(--surface, #fff); border: 1px solid var(--line); border-radius: var(--r-lg, 12px);
  padding: clamp(22px, 4vw, 36px); box-shadow: 0 30px 60px -48px rgba(11,34,56,.4);
}
.aengie-form .wpforms-container, .aengie-form div.wpforms-container-full {
  margin: 0 !important; max-width: none;
  --wpforms-field-border-radius: 8px; --wpforms-field-border-color: rgba(11,34,56,.18); --wpforms-field-background-color: #FBFCFD;
  --wpforms-field-text-color: #1B2A39; --wpforms-label-color: #0B2238; --wpforms-label-sublabel-color: #4A5B6C;
  --wpforms-label-error-color: #A12828; --wpforms-button-border-radius: 10px; --wpforms-button-background-color: #B0CB1F;
  --wpforms-button-text-color: #0B2238; --wpforms-field-size-input-height: 46px; --wpforms-field-size-font-size: 16px;
  --wpforms-label-size-font-size: 15px; --wpforms-field-size-input-spacing: 6px;
}
.aengie-form .wpforms-form .wpforms-field-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
.aengie-form .wpforms-form .wpforms-field { grid-column: 1 / -1; padding: 8px 0 !important; }
.aengie-form .wpforms-form .wpforms-field.aengie-half { grid-column: auto; }
.aengie-form .wpforms-form .wpforms-field-label { font-family: inherit; font-weight: 600 !important; color: var(--navy-900) !important; }
.aengie-form .wpforms-form .wpforms-required-label { color: var(--green-700, #3F5C0E) !important; }
.aengie-form .wpforms-form input[type=text], .aengie-form .wpforms-form input[type=email], .aengie-form .wpforms-form textarea { width: 100% !important; max-width: 100% !important; font-family: inherit !important; }
.aengie-form .wpforms-form input:focus, .aengie-form .wpforms-form textarea:focus { border-color: var(--green-600) !important; box-shadow: 0 0 0 4px rgba(176,203,31,.22) !important; outline: none; }
.aengie-form .wpforms-form textarea { min-height: 150px; }
/* Auswahl als Chips */
.aengie-form .aengie-chips ul { display: flex !important; flex-wrap: wrap; gap: 8px !important; margin: 4px 0 0 !important; padding: 0 !important; list-style: none !important; }
.aengie-form .aengie-chips ul li { position: relative; margin: 0 !important; padding: 0 !important; }
.aengie-form .aengie-chips ul li input { position: absolute !important; opacity: 0; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; cursor: pointer; z-index: 1; }
.aengie-form .aengie-chips ul li input::before, .aengie-form .aengie-chips ul li input::after { display: none !important; }
.aengie-form .aengie-chips ul li label { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; padding: 9px 16px !important; border: 1px solid rgba(11,34,56,.18); border-radius: 99px; background: #FBFCFD; font-size: .9375rem !important; font-weight: 500; color: var(--ink, #1B2A39) !important; transition: background .2s, border-color .2s, color .2s; }
.aengie-form .aengie-chips ul li label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 2px solid rgba(11,34,56,.25); transition: background .2s, border-color .2s; }
.aengie-form .aengie-chips ul li:hover label { border-color: var(--green-600); }
.aengie-form .aengie-chips ul li input:checked + label, .aengie-form .aengie-chips ul li.wpforms-selected label { background: var(--sage-50, #F5F8EC); border-color: var(--green-600); color: var(--green-700, #3F5C0E) !important; font-weight: 600; }
.aengie-form .aengie-chips ul li input:checked + label::before, .aengie-form .aengie-chips ul li.wpforms-selected label::before { background: var(--green-600); border-color: var(--green-600); }
.aengie-form .aengie-chips ul li input:focus-visible + label { box-shadow: 0 0 0 4px rgba(176,203,31,.3); }
/* Zustimmung */
.aengie-form .aengie-consent ul { padding: 0 !important; margin: 0 !important; list-style: none !important; }
.aengie-form .aengie-consent label { font-size: .9375rem !important; color: var(--slate) !important; line-height: 1.55 !important; }
.aengie-form .aengie-consent a { color: var(--green-700, #3F5C0E); font-weight: 600; }
/* Senden */
.aengie-form .wpforms-submit-container { margin-top: 14px !important; padding: 0 !important; }
.aengie-form .wpforms-form button.wpforms-submit { display: inline-flex !important; align-items: center; gap: 10px; height: auto !important; padding: 14px 24px !important; border: 0 !important; border-radius: 10px !important; background: var(--green-brand, #B0CB1F) !important; color: var(--navy-900) !important; font-family: var(--font-head, inherit) !important; font-weight: 700 !important; font-size: 1rem !important; box-shadow: 0 10px 22px -10px rgba(140,165,20,.7); cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; }
.aengie-form .wpforms-form button.wpforms-submit:hover { background: #C2DA35 !important; transform: translateY(-1px); }
.aengie-form .wpforms-confirmation-container-full, .aengie-form div[submit-success] > .wpforms-confirmation-container-full { background: #EAF5DD !important; border: 1px solid rgba(62,155,58,.35) !important; color: #2D6E29 !important; border-radius: 10px; padding: 18px 20px !important; margin: 0 !important; }
.aengie-form-fallback { font-size: 1rem; }
.aengie-form-hint { margin-top: 10px; font-size: .875rem; color: var(--slate); }
@media (max-width: 900px) { .entry-content .form-section { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .aengie-form .wpforms-form .wpforms-field-container { grid-template-columns: 1fr; } .aengie-form .wpforms-form .wpforms-field.aengie-half { grid-column: 1 / -1; } }
/* Geschäftsstelle & Kontakt */
.hours-card .hours-row { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-strong); color: var(--slate); line-height: 1.55; }
.hours-card .hours-row strong { color: var(--navy-900); font-family: var(--font-head); font-size: 1.0625rem; }
.hours-card .wp-block-buttons { margin-top: 22px; }
.entry-content .info-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.info-card { padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r-lg, 12px); background: var(--surface, #fff); }
.entry-content .info-card h3 { margin: 0 0 10px; font-size: 1.0625rem; }
.entry-content .info-card p { color: var(--slate); line-height: 1.7; }
.entry-content .form-section.is-first { margin-top: 0; padding-top: 0; border-top: 0; }
.entry-content .contact-facts { margin-top: 28px; display: grid; gap: 0; border-top: 1px solid var(--line); }
.entry-content .contact-facts .fact { display: grid; grid-template-columns: 150px 1fr; gap: 12px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--ink); line-height: 1.55; }
.contact-facts .fact span { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); padding-top: 2px; }
.contact-facts .fact a { color: var(--navy-900); font-weight: 600; text-decoration: none; }
.contact-facts .fact a:hover { color: var(--green-700, #3F5C0E); }
.entry-content .contact-more { margin-top: 20px; font-size: .9375rem; color: var(--slate); }
@media (max-width: 900px) { .entry-content .info-cards { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .entry-content .contact-facts .fact { grid-template-columns: 1fr; gap: 2px; } }
/* Kooperationspartner als Logos */
.partner-logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 44px; }
.partner-logos .partner-logo { margin: 0; }
.partner-logos .partner-logo a { display: grid; place-items: center; height: 100%; aspect-ratio: 3 / 2; padding: 8px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg, 12px); transition: border-color var(--t), box-shadow var(--t), transform var(--t); }
.partner-logos .partner-logo img { width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); opacity: .78; transition: filter var(--t), opacity var(--t); }
.partner-logos .partner-logo a:hover, .partner-logos .partner-logo a:focus-visible { border-color: var(--green-brand); box-shadow: 0 20px 40px -30px rgba(11,34,56,.4); transform: translateY(-2px); }
.partner-logos .partner-logo a:hover img, .partner-logos .partner-logo a:focus-visible img { filter: none; opacity: 1; }
@media (max-width: 900px) { .partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Fehlermanagement */
.entry-content .form-block { max-width: none; margin-top: clamp(48px, 6vw, 72px); }
.entry-content .form-block > h3 { margin: 0 0 16px; font-size: 1.375rem; }
.entry-content .steps-card .is-style-check { margin-top: 18px; padding-top: 0; border-top: 0; gap: 16px; }
.entry-content .steps-card .is-style-check li { line-height: 1.5; }
.entry-content .steps-card .is-style-check strong { color: var(--navy-900); }
.aengie-form .wpforms-field-description { font-size: .875rem !important; color: var(--slate) !important; margin-top: 6px !important; }
.aengie-form .wpforms-form textarea.wpforms-field-small { min-height: 110px; }
.entry-content .steps-card .is-style-check li { display: block; position: relative; padding-left: 42px; }
.entry-content .steps-card .is-style-check li::before { position: absolute; left: 0; top: 0; }
/* Mitgliederbereich: Aufklappmenü im Kopf (nur angemeldet) */
.member-menu { position: relative; }
.member-menu .header-login .chev { width: 14px; height: 14px; color: var(--slate); opacity: .7; transition: transform var(--t); }
.member-menu:hover .header-login .chev, .member-menu:focus-within .header-login .chev { transform: rotate(180deg); }
.member-sub { left: auto; right: 0; z-index: 60; min-width: 300px; }
.member-menu:hover > .member-sub, .member-menu:focus-within > .member-sub { opacity: 1; visibility: visible; transform: translateY(0); }
.member-sub li { position: relative; }
.member-sub .submenu { top: -9px; left: auto; right: calc(100% + 6px); min-width: 280px; }
.member-sub .submenu::before { inset: 0 -10px 0 auto; width: 10px; height: auto; }
.member-sub li:hover > .submenu, .member-sub li:focus-within > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.member-sub .menu-item-has-children > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.member-sub .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .5; flex: none; }
.member-sub .current-menu-item > a, .member-sub .current-menu-ancestor > a { color: var(--green-700); background: var(--sage-50); }
.member-sub .chev { display: none; }
.member-sub a { white-space: normal; }

/* ============================================================
   MOBIL-FEINSCHLIFF (Prüfung 360–768 px)
   ============================================================ */
/* Lange deutsche Wörter in Überschriften trennen statt über den Rand laufen lassen. */
h1, h2, h3, .page-title, .entry-title { overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 10 4 4; }
/* Sicherheitsnetz: nie seitlich scrollen (clip statt hidden – „sticky“ funktioniert weiter). */
html, body { overflow-x: clip; }
/* Partnerlogos: Bild darf die Kachel nicht aufdrücken. */
.partner-logos .partner-logo a { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.partner-logos .partner-logo img { min-width: 0; min-height: 0; max-width: 100%; }
@media (max-width: 600px) {
  .page-title { font-size: clamp(1.75rem, 7.6vw, 2.1rem); }
  /* Broschüren-Fächer: schmaler, damit die gedrehten Seiten im Bild bleiben. */
  .bro-mock { max-width: 82%; margin-inline: auto 18%; }
  /* Größere Tippflächen (mind. 24 px, WCAG 2.2). */
  .footer-list { gap: 4px; }
  .footer-list a, .footer-bottom nav a { display: inline-block; padding-block: 6px; }
  .footer-bottom nav { flex-wrap: wrap; gap: 4px 24px; }
  .eyebrow { padding-block: 3px; }
  .wp-block-button.is-style-link .wp-block-button__link { padding-block: 6px; background-position: 0 calc(100% - 4px); }
  .cd-unit small, .date-chip .m { font-size: .75rem; }
}

/* Mobiles Menü: Symbol wechselt zu „X“, Hintergrund scrollt nicht mit, Mitgliedermenü für Angemeldete. */
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-open { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }
html.nav-open { overflow: hidden; }
@media (max-width: 1100px) {
  .main-nav.is-open { max-height: calc(100dvh - var(--top-h)); overscroll-behavior: contain; }
  .mobile-member { flex: 1 1 100%; margin: 4px 0 6px; padding: 14px 16px; border-radius: var(--r-lg, 12px); background: var(--sage-50); border: 1px solid var(--line); }
  .mobile-member-title { display: flex; align-items: center; gap: 10px; padding: 6px 0 10px; font-weight: 700; font-size: 1.0625rem; color: var(--navy-900); text-decoration: none; }
  .mobile-member-title .icon { width: 18px; height: 18px; color: var(--green-600); }
  .mobile-member-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
  .mobile-member-list > li { border-bottom: 1px solid var(--line); }
  .mobile-member-list a { display: block; padding: 11px 2px; color: var(--navy-900); font-weight: 600; text-decoration: none; }
  .mobile-member-list .sub-menu { list-style: none; margin: -4px 0 8px; padding: 0 0 0 12px; }
  .mobile-member-list .sub-menu a { padding: 7px 2px; font-weight: 500; color: var(--slate); font-size: .9375rem; }
  .mobile-member-list .current-menu-item > a { color: var(--green-700); }
  .mobile-member-logout { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 8px 0; color: var(--slate); font-weight: 600; text-decoration: none; }
  .mobile-member-logout .icon { width: 18px; height: 18px; }
}

/* ============================================================
   SEITENBAUSTEINE: Patienteninfo, Fortbildung, Weiterbildung,
   Projekte, Jobbörse, Impressum, Datenschutz
   ============================================================ */
.entry-content .section-head { margin-top: clamp(56px, 7vw, 88px); padding-top: clamp(40px, 5vw, 56px); border-top: 1px solid var(--line); }
.entry-content .section-head > * { max-width: none; }
.entry-content .section-head.page-intro { margin-top: 0; padding-top: 0; border-top: 0; }
.entry-content .section-head h2 { margin-top: 12px; font-size: clamp(1.6rem, 3vw, 2.25rem); }
.entry-content .section-head .is-style-lede { margin-top: 12px; }
.entry-content .section-head + * { margin-top: 28px; }
.entry-content .duty-note, .entry-content .info-card .duty-note { font-size: .875rem; color: var(--slate); }
.entry-content .info-cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.entry-content .info-card > * + * { margin-top: .75em; }
.entry-content .info-card .is-style-eyebrow + h3 { margin-top: 8px; }
.entry-content a.big-tel, .entry-content .info-card a.big-tel { font-family: var(--font-head); font-size: 1.5rem; font-weight: 800; color: var(--navy-900); text-decoration: none; }
.entry-content .big-tel:hover { color: var(--green-700); }
.entry-content .link-card-more a { font-weight: 600; }
.entry-content .benefit .is-style-dots { display: grid; gap: 8px; margin-top: .9em; }
.entry-content .benefit .is-style-dots li { display: flex; align-items: baseline; font-weight: 400; color: var(--ink); line-height: 1.5; }
.entry-content .benefit .is-style-dots li::before { flex: none; transform: translateY(-2px); }

/* Notfall-Kasten */
.emergency-card { position: sticky; top: 90px; padding: clamp(24px, 3vw, 32px); border-radius: var(--r-lg); background: #FFF4F2; border: 1px solid #F2C6BF; }
.entry-content .emergency-card > * + * { margin-top: 10px; }
.entry-content .emergency-label { font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #A3271B; }
.entry-content .emergency-number a { font-family: var(--font-head); font-size: clamp(3rem, 6vw, 4rem); font-weight: 800; line-height: 1; color: #B42318; text-decoration: none; letter-spacing: -.02em; }
.entry-content .emergency-sub { margin-top: 18px !important; padding-top: 16px; border-top: 1px solid #F2C6BF; }
.entry-content .emergency-sub a { font-weight: 700; color: var(--navy-900); }

/* Bereitschaftsdienste */
.entry-content .duty-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.duty-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.entry-content .duty-card h3 { font-size: 1.125rem; margin: 0; }
.entry-content .duty-card .duty-kurz { margin-top: 4px; font-size: .9375rem; color: var(--slate); }
.entry-content .duty-row { margin-top: 14px; font-size: .9375rem; line-height: 1.55; }
.entry-content .duty-row strong { display: block; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.entry-content .duty-tel a { font-weight: 700; color: var(--navy-900); }
.entry-content .duty-hours { margin-top: 16px; }
.entry-content .duty-hours td { padding: 6px 0; font-size: .875rem; }
.entry-content .is-closed { color: #8A97A5; }

/* Apotheken-Notdienst */
.entry-content .apo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: none; }
.entry-content .apo-tels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.entry-content a.apo-tel { display: grid; gap: 4px; padding: 20px 22px 20px 64px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface) ; text-decoration: none; color: var(--navy-900); position: relative; transition: border-color var(--t), transform var(--t); }
.entry-content a.apo-tel::before { content: ""; position: absolute; left: 20px; top: 50%; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%; background: var(--sage-100); }
.entry-content a.apo-tel::after { content: ""; position: absolute; left: 27px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: var(--green-700); -webkit-mask: var(--i-phone) center / contain no-repeat; mask: var(--i-phone) center / contain no-repeat; }
.entry-content a.apo-tel:hover { border-color: var(--green-600); transform: translateY(-2px); }
.entry-content .apo-tel-k { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
.entry-content .apo-tel strong { font-family: var(--font-head); font-size: 1.25rem; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; }
.entry-content .apo-such { padding: clamp(22px, 3vw, 32px); border-radius: var(--r-lg); background: linear-gradient(160deg, var(--sage-50), var(--blue-50)); border: 1px solid var(--line); }
.entry-content .apo-form label { display: block; font-family: var(--font-head); font-weight: 700; font-size: 1.125rem; color: var(--navy-900); }
.entry-content .apo-form-row { display: flex; gap: 10px; margin-top: 12px; max-width: 460px; }
.entry-content .apo-form input { flex: 1; min-width: 0; padding: 13px 16px; font: inherit; border: 1px solid var(--line-strong); border-radius: var(--r-md); background: #fff; color: var(--ink); }
.entry-content .apo-form input:focus { outline: 2px solid var(--green-600); outline-offset: 1px; border-color: transparent; }
.entry-content .apo-oder { margin-top: 22px; font-size: .875rem; color: var(--slate); }
.entry-content ul.apo-orte { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.entry-content ul.apo-orte li { margin: 0; padding: 0; }
.entry-content ul.apo-orte li::before { content: none; }
.entry-content .apo-orte a { display: inline-block; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line-strong); color: var(--navy-900); font-size: .9375rem; font-weight: 500; text-decoration: none; transition: background var(--t), border-color var(--t); }
.entry-content .apo-orte a:hover, .entry-content .apo-orte a:focus-visible { background: var(--sage-100); border-color: var(--green-600); }
.entry-content .apo-hinweis { font-size: .875rem; color: var(--slate); max-width: 80ch; }
.entry-content .apo-live { padding: clamp(22px, 3vw, 32px); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.entry-content .apo-live-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
.entry-content .apo-live-titel { margin: 0; font-size: 1.25rem; }
.entry-content .apo-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.entry-content .apo-tabs button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line-strong); background: #fff; color: var(--navy-900); font: 600 .9375rem/1 var(--font-body); cursor: pointer; transition: background var(--t), border-color var(--t); }
.entry-content .apo-tabs button:hover { border-color: var(--green-600); background: var(--sage-50); }
.entry-content .apo-tabs button[aria-selected="true"] { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.entry-content .apo-tabs button:focus-visible { outline: 2px solid var(--green-600); outline-offset: 2px; }
.entry-content .apo-live-dot { display: none; width: 8px; height: 8px; border-radius: 50%; background: #3C9A35; box-shadow: 0 0 0 3px rgba(60,154,53,.2); }
.entry-content .apo-tabs button.is-live .apo-live-dot { display: inline-block; }
.entry-content .apo-tabs button[aria-selected="true"].is-live .apo-live-dot { background: var(--green-brand); box-shadow: 0 0 0 3px rgba(176,203,31,.3); }
.entry-content .apo-zeit { margin-top: 18px; font-size: .9375rem; color: var(--slate); }
.entry-content .apo-jetzt { color: #2D6E29; font-weight: 600; }
.entry-content ul.apo-karten { list-style: none; padding: 0; margin: 14px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.entry-content ul.apo-karten li { margin: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-md); background: linear-gradient(180deg, #fff, var(--sage-50)); display: flex; flex-direction: column; gap: 6px; }
.entry-content ul.apo-karten li::before { content: none; }
.entry-content .apo-panel:not(.alle) .apo-mehr { display: none; }
.entry-content .apo-karte h3 { margin: 0; font-size: 1.0625rem; line-height: 1.3; }
.entry-content .apo-adr { font-size: .9375rem; color: var(--slate); line-height: 1.5; }
.entry-content .apo-dist { font-size: .8125rem; font-weight: 600; color: var(--green-700); }
.entry-content .apo-aktion { margin-top: auto; padding-top: 8px; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; }
.entry-content a.apo-anruf { font-family: var(--font-head); font-weight: 800; font-size: 1.0625rem; color: var(--navy-900); text-decoration: none; white-space: nowrap; }
.entry-content .apo-aktion .duty-route { font-size: .875rem; }
.entry-content a.apo-anruf:hover { color: var(--green-700); }
.entry-content .apo-alle { margin-top: 14px; padding: 10px 18px; border-radius: var(--r-md); border: 1px solid var(--line-strong); background: #fff; color: var(--navy-900); font: 600 .9375rem/1.2 var(--font-body); cursor: pointer; }
.entry-content .apo-alle:hover { border-color: var(--green-600); background: var(--sage-50); }
.entry-content .apo-quelle { margin-top: 16px; font-size: .8125rem; color: var(--slate); }
@media (max-width: 1080px) { .entry-content ul.apo-karten { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .entry-content ul.apo-karten { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) { .entry-content .apo-tels { grid-template-columns: 1fr; } }

/* Link-Kacheln */
.entry-content .link-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.link-card { display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(180deg, #fff, var(--sage-50)); }
.entry-content .link-card h3 { margin: 0; font-size: 1.0625rem; }
.entry-content .link-card p { margin-top: 8px; font-size: .9375rem; color: var(--slate); line-height: 1.6; }
.entry-content .link-card .link-card-more { margin-top: auto; padding-top: 12px; }

/* Zeitstrahl Weiterbildung (60 Monate) */
.entry-content .wb-timeline { display: grid; grid-template-columns: 12fr 24fr minmax(150px, 6fr) 18fr; gap: 6px; }
.wb-phase { position: relative; padding: 16px 16px 18px; border-radius: var(--r-md); background: var(--sage-100); min-width: 0; }
.wb-phase.wb-m12 { background: var(--blue-100); }
.wb-phase.wb-m6 { background: var(--sage-300); }
.wb-phase.wb-m18 { background: var(--sage-50); border: 1px dashed var(--sage-300); }
.entry-content .wb-months { font-size: .875rem; color: var(--slate); }
.entry-content .wb-months strong { font-family: var(--font-head); font-size: 1.75rem; font-weight: 800; color: var(--navy-900); margin-right: 4px; }
.entry-content .wb-text { margin-top: 6px; font-size: .875rem; line-height: 1.45; color: var(--ink); overflow-wrap: anywhere; hyphens: auto; }
.entry-content .wb-ort { color: var(--slate); font-size: .8125rem; }
.entry-content .wb-hinweis { margin-top: 18px; max-width: none; color: var(--slate); }
.entry-content .wb-hinweis + .info-cards { margin-top: clamp(40px, 6vw, 64px); }

/* Kliniken zum Aufklappen */
.entry-content .clinic-list { display: grid; gap: 12px; }
.entry-content details.clinic { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); padding: 0; margin: 0; }
.entry-content details.clinic > summary { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; padding: 18px 56px 18px 22px; cursor: pointer; list-style: none; position: relative; font-size: 1.0625rem; color: var(--navy-900); }
.entry-content details.clinic > summary::-webkit-details-marker { display: none; }
.entry-content details.clinic > summary::after { content: ""; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid var(--green-600); border-bottom: 2px solid var(--green-600); transform: rotate(45deg); transition: transform var(--t); }
.entry-content details.clinic[open] > summary::after { transform: rotate(-135deg); margin-top: -2px; }
.entry-content details.clinic > summary:hover { background: var(--sage-50); border-radius: var(--r-lg); }
.entry-content .clinic-meta { font-size: .8125rem; font-weight: 600; color: var(--green-700); background: var(--sage-100); padding: 3px 10px; border-radius: 999px; }
.entry-content details.clinic > :not(summary) { margin: 0 22px; }
.entry-content details.clinic > :not(summary) + * { margin-top: 12px; }
.entry-content details.clinic > :last-child { margin-bottom: 22px; }
.entry-content details.clinic .is-style-dots { display: grid; gap: 8px; }
.entry-content details.clinic .is-style-dots li { display: flex; align-items: baseline; font-weight: 400; color: var(--ink); }
.entry-content .clinic-adr { color: var(--slate); }
.entry-content .clinic-note { padding: 12px 16px; border-radius: var(--r-md); background: var(--sage-50); color: var(--slate); font-size: .9375rem; }
.entry-content .wb-partner { margin-top: clamp(48px, 6vw, 72px); }

/* Auszeichnung, Logo, Flyer */
.award-card, .logo-card { position: sticky; top: 90px; padding: clamp(24px, 3vw, 32px); border-radius: var(--r-lg); background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); border: 1px solid var(--line); text-align: center; }
.entry-content .award-card > * + *, .entry-content .logo-card > * + * { margin-top: 12px; }
.entry-content .award-seal img { width: 160px; height: auto; margin-inline: auto; }
.entry-content .award-title { font-family: var(--font-head); font-size: 1.25rem; color: var(--navy-900); }
.entry-content .award-card p:last-child { font-size: .9375rem; color: var(--slate); text-align: left; }
.entry-content .logo-card-img { padding: 20px; background: #fff; border-radius: var(--r-md); }
.entry-content .logo-card-img img { max-height: 140px; width: auto; margin-inline: auto; }
.entry-content .logo-card .wp-block-buttons { justify-content: center; }
.entry-content .flyer-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: none; }
.entry-content .flyer-img { margin: 0; }
.entry-content .flyer-img img { width: 100%; height: auto; border-radius: var(--r-md); border: 1px solid var(--line); box-shadow: 0 24px 50px -36px rgba(11,34,56,.5); transition: transform var(--t); }
.entry-content .flyer-img a:hover img { transform: translateY(-3px); }

/* Messe: Workshops und Programm */
.entry-content .ws-card .ws-time { font-family: var(--font-head); font-weight: 800; color: var(--green-700); }
.entry-content .ws-card h3 { margin-top: 4px !important; }
.entry-content .program-table { max-width: none; }
.entry-content .program-table table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.entry-content .program-table th { text-align: left; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); padding: 10px 12px; border-bottom: 2px solid var(--line-strong); }
.entry-content .program-table td { padding: 11px 12px; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.entry-content .program-table td:first-child { white-space: nowrap; color: var(--green-700); font-weight: 600; width: 1%; }
.entry-content .program-table tr:nth-child(even) td { background: var(--sage-50); }

/* Fortbildung: Leiter + Unterstützer nebeneinander */
.entry-content .board-grid-single { margin-top: 28px; }
.entry-content .supporter-card { display: flex; flex-direction: column; }
.entry-content .supporter-card .link-card-more { margin-top: auto; padding-top: 12px; }

/* Runder Tisch / Hospiz: Listen als Kacheln */
.entry-content .member-types.reasons li { position: relative; padding-left: 46px; }
.entry-content .member-types.reasons li::before { content: ""; position: absolute; left: 16px; top: 19px; width: 18px; height: 18px; border-radius: 50%; background: var(--sage-100) var(--i-check-green) center / 11px no-repeat; }

/* Jobbörse ohne Plugin */
.entry-content .jobs-empty { padding: 24px 28px; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); background: var(--sage-50); }
.entry-content .jobs-empty p + p { margin-top: 6px; color: var(--slate); }

/* Impressum */
.entry-content .legal-head { max-width: none; }
.entry-content .legal-head h2 { margin-top: 12px; }
.entry-content .legal-head .is-style-lede { margin-top: 10px; }
.entry-content .legal-head + .info-cards { margin-top: 32px; }
.entry-content .info-cards + .info-cards { margin-top: 16px; }
.entry-content .legal-text { max-width: none; margin-top: clamp(48px, 6vw, 72px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid var(--line); }
.entry-content .legal-text h3 { font-size: 1.125rem; margin-top: 1.8em; }
.entry-content .legal-text h3:first-child { margin-top: 0; }
.entry-content .legal-text p { margin-top: .6em; line-height: 1.7; color: var(--ink); }

@media (max-width: 1080px) {
  .entry-content .link-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-content .duty-grid { grid-template-columns: 1fr; }
  .emergency-card, .award-card, .logo-card { position: static; }
}
@media (max-width: 900px) {
  .entry-content .info-cards-2 { grid-template-columns: 1fr; }
  .entry-content .wb-timeline { grid-template-columns: 1fr; }
  .wb-phase { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: baseline; }
  .entry-content .wb-text { margin-top: 0; }
}
@media (max-width: 600px) {
  .entry-content .link-cards, .entry-content .flyer-pair { grid-template-columns: 1fr; }
  .entry-content .program-table td:first-child { white-space: normal; }
  .entry-content .program-table th:last-child, .entry-content .program-table td:last-child { display: none; }
}

.entry-content a.big-tel { text-decoration: none; }
.entry-content .m-intro-text .is-style-dots, .entry-content .info-card .is-style-dots { display: grid; gap: 8px; }
.entry-content .m-intro-text .is-style-dots li, .entry-content .info-card .is-style-dots li { display: flex; align-items: baseline; color: var(--ink); line-height: 1.5; }
.entry-content .m-intro-text .is-style-dots li::before, .entry-content .info-card .is-style-dots li::before { flex: none; transform: translateY(-2px); }
.entry-content .program-table table, .entry-content .program-table thead, .entry-content .program-table th { border: 0; }
.entry-content .program-table th { border-bottom: 2px solid var(--line-strong); }
.entry-content ul.member-types { list-style: none; padding-left: 0; }
.entry-content .fee-card > p + p, .entry-content .fee-card > p + .wp-block-table { margin-top: 12px; }
/* Punktlisten mit Fließtext (Links im Satz bleiben im Textfluss) */
.entry-content .benefit .is-style-dots li, .entry-content .m-intro-text .is-style-dots li, .entry-content .info-card .is-style-dots li, .entry-content details.clinic .is-style-dots li, .entry-content .satzung-par .is-style-dots li { display: block; position: relative; padding-left: 22px; }
.entry-content .benefit .is-style-dots li::before, .entry-content .m-intro-text .is-style-dots li::before, .entry-content .info-card .is-style-dots li::before, .entry-content details.clinic .is-style-dots li::before, .entry-content .satzung-par .is-style-dots li::before { position: absolute; left: 4px; top: .55em; transform: none; }
@media (max-width: 600px) { .entry-content .program-table td:first-child { white-space: nowrap; } }

/* ============================================================
   JOBBÖRSE (WP Job Manager) im ÄNGie-Design
   ============================================================ */
.entry-content .job_listings, .entry-content .job-manager-form, .entry-content #job-manager-job-dashboard { --aj-radius: var(--r-lg); }
.entry-content form.job_filters { margin-top: 32px; padding: clamp(18px, 2.5vw, 24px); border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); box-shadow: 0 30px 60px -48px rgba(11,34,56,.45); }
.entry-content .job_filters .search_jobs { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 0; padding: 0; background: none; border: 0; }
.entry-content .job_filters .search_jobs > div { float: none; width: auto; margin: 0; padding: 0; }
.entry-content .job_filters .search_jobs .search_keywords, .entry-content .job_filters .search_jobs .search_location, .entry-content .job_filters .search_jobs .search_categories { flex: 1 1 220px; }
.entry-content .job_filters .search_jobs .search_submit { flex: 0 0 auto; }
.entry-content .job_filters .search_jobs .search_remote_position { order: 9; flex: 1 1 100%; display: flex; align-items: center; gap: 8px; font-size: .9375rem; color: var(--ink); }
.entry-content .job_filters .search_jobs .search_remote_position label { font-weight: 500; }
.entry-content .job_filters label.screen-reader-text, .entry-content .job_filters .search_jobs > div > label[for^=search_] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.entry-content .job_filters .search_remote_position label { position: static !important; width: auto !important; height: auto !important; clip: auto !important; }
.entry-content .job_filters input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--green-600); }
.entry-content .job_filters input[type=text], .entry-content .job_filters select,
.entry-content .job-manager-form input[type=text], .entry-content .job-manager-form input[type=email], .entry-content .job-manager-form input[type=url], .entry-content .job-manager-form input[type=password], .entry-content .job-manager-form input[type=number], .entry-content .job-manager-form input[type=date], .entry-content .job-manager-form input[type=tel], .entry-content .job-manager-form select, .entry-content .job-manager-form textarea, .entry-content #job-manager-job-dashboard input[type=search] {
  width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid var(--line-strong); border-radius: var(--r-sm); background-color: #fff; font: inherit; font-size: 1rem; color: var(--ink); box-shadow: none;
}
.entry-content #job-manager-job-dashboard input[type=search] { padding-left: 40px; }
.entry-content .job_filters input:focus, .entry-content .job-manager-form input:focus, .entry-content .job-manager-form textarea:focus, .entry-content .job-manager-form select:focus, .entry-content #job-manager-job-dashboard input[type=search]:focus { outline: none; border-color: var(--green-600); box-shadow: 0 0 0 3px rgba(176,203,31,.3); }
/* Schaltflächen */
.entry-content .job_filters .search_submit input, .entry-content .job_filters .search_submit button, .entry-content .job-manager-form input[type=submit], .entry-content .job-manager-form button[type=submit], .entry-content .application_button, .entry-content .jm-ui-button:not(.jm-ui-button--icon), .entry-content .load_more_jobs {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: auto; min-height: 48px; margin: 0; padding: 12px 24px; border: 1.5px solid var(--green-brand); border-radius: var(--r-sm); background: var(--green-brand); color: var(--navy-900) !important; font-family: var(--font-head); font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none; text-shadow: none; box-shadow: 0 10px 22px -14px rgba(77,111,18,.8); cursor: pointer; transition: background var(--t), transform var(--t);
}
.entry-content .job_filters .search_submit input:hover, .entry-content .job-manager-form input[type=submit]:hover, .entry-content .application_button:hover, .entry-content .jm-ui-button:not(.jm-ui-button--icon):hover, .entry-content .load_more_jobs:hover { background: #C2DA34; border-color: #C2DA34; transform: translateY(-1px); }
.entry-content .job-manager-form input[name=save_draft], .entry-content .job-manager-form input[name=edit_job] { background: #fff; border-color: var(--line-strong); box-shadow: none; }
.entry-content .job-manager-form input[name=save_draft]:hover, .entry-content .job-manager-form input[name=edit_job]:hover { background: var(--sage-50); border-color: var(--navy-900); }
/* Stellenarten als Filter-Chips */
.entry-content ul.job_types { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 16px 0 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--line-strong); background: none; }
.entry-content ul.job_types li { margin: 0; padding: 0; border: 0; background: none; }
.entry-content ul.job_types label { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; font-size: .875rem; font-weight: 500; color: var(--ink); cursor: pointer; transition: border-color var(--t), background var(--t); }
.entry-content ul.job_types label:hover { border-color: var(--green-600); }
.entry-content ul.job_types label:has(input:checked) { border-color: var(--green-600); background: var(--sage-100); color: var(--green-700); }
.entry-content ul.job_types input { width: 15px; height: 15px; margin: 0; accent-color: var(--green-600); }
.entry-content .showing_jobs { display: flex; justify-content: space-between; gap: 12px; margin: 14px 0 0; padding: 0; border: 0; background: none; font-size: .875rem; color: var(--slate); }
.entry-content .showing_jobs a { color: var(--green-600); font-weight: 600; }
/* Liste */
.entry-content ul.job_listings { list-style: none; margin: 20px 0 0; padding: 0; border: 0; display: grid; gap: 12px; }
.entry-content ul.job_listings > li { margin: 0; padding: 0; border: 0; background: none; }
.entry-content ul.job_listings li.no_job_listings_found { padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); background: var(--sage-50); color: var(--slate); text-align: center; }
.entry-content ul.job_listings li.aj-item a { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto 24px; gap: 18px; align-items: center; padding: 18px 22px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: inherit; text-decoration: none; transition: border-color var(--t), box-shadow var(--t), transform var(--t); }
.entry-content ul.job_listings li.aj-item a:hover { border-color: var(--green-brand); box-shadow: 0 22px 44px -30px rgba(11,34,56,.4); transform: translateY(-1px); }
.entry-content ul.job_listings li.aj-item.job_position_featured a { border-color: var(--sage-300); background: linear-gradient(160deg, #fff, var(--sage-50)); }
.entry-content .aj-logo { display: grid; place-items: center; width: 56px; height: 56px; border-radius: var(--r-md); background: #fff; border: 1px solid var(--line); overflow: hidden; flex: none; }
.entry-content .aj-logo img { width: 100%; height: 100%; object-fit: contain; margin: 0; }
.entry-content .aj-logo.is-initials { background: var(--sage-100); border-color: transparent; color: var(--green-700); font-family: var(--font-head); font-weight: 800; font-size: 1.0625rem; letter-spacing: .02em; }
.entry-content .aj-main { display: grid; gap: 4px; min-width: 0; }
.entry-content .aj-title { font-family: var(--font-head); font-weight: 700; font-size: 1.125rem; color: var(--navy-900); line-height: 1.3; }
.entry-content .aj-praxis { color: var(--slate); }
.entry-content .aj-sub { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .9375rem; color: var(--slate); }
.entry-content .aj-loc { display: inline-flex; align-items: center; gap: 6px; }
.entry-content .aj-loc::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.entry-content .aj-meta { display: grid; justify-items: end; gap: 6px; text-align: right; }
.entry-content .aj-type, .entry-content .job-type { display: inline-block; padding: 4px 11px; border-radius: 999px; background: var(--sage-100) !important; color: var(--green-700) !important; font-size: .75rem; font-weight: 700; letter-spacing: .02em; }
.entry-content .aj-date { font-size: .8125rem; color: var(--slate); white-space: nowrap; }
.entry-content .aj-arrow { width: 22px; height: 22px; color: var(--green-600); transition: transform var(--t); }
.entry-content li.aj-item a:hover .aj-arrow { transform: translateX(3px); }
/* Einzelansicht */
.entry-content .aj-single .aj-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(32px, 5vw, 64px); align-items: start; }
.entry-content .aj-single .job_description { margin-top: 12px; max-width: none; font-size: 1.0625rem; line-height: 1.75; color: var(--ink); }
.entry-content .aj-single .job_description > * + * { margin-top: 1em; }
.entry-content .aj-single .job_description ul { padding-left: 1.2em; }
.entry-content .aj-side { position: sticky; top: 96px; }
.entry-content .aj-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); box-shadow: 0 30px 60px -44px rgba(11,34,56,.45); }
.entry-content .aj-company { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid var(--line-strong); }
.entry-content .aj-company-name { margin: 0; font-family: var(--font-head); font-weight: 800; font-size: 1.125rem; color: var(--navy-900); line-height: 1.3; }
.entry-content .aj-tagline { margin: 2px 0 0; font-size: .875rem; color: var(--slate); }
.entry-content .aj-facts { display: grid; gap: 0; margin: 8px 0 0; }
.entry-content .aj-facts > div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.entry-content .aj-facts dt { font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.entry-content .aj-facts dd { margin: 0; font-weight: 600; color: var(--navy-900); }
.entry-content .aj-card .job_application { margin-top: 20px; }
.entry-content .aj-card .application_button { width: 100%; }
.entry-content .aj-card .application_details { margin-top: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.entry-content .aj-card .application_details a { font-weight: 700; }
.entry-content .aj-website { margin: 14px 0 0; text-align: center; font-size: .9375rem; }
.entry-content .aj-back { margin: 16px 0 0; font-size: .9375rem; }
.entry-content .aj-back a { color: var(--green-600); font-weight: 600; text-decoration: none; }
.entry-content .job-manager-info, .entry-content .job-manager-message, .entry-content .job-manager-error { margin: 0 0 24px; padding: 14px 18px; border: 0; border-left: 4px solid var(--green-brand); border-radius: var(--r-md); background: var(--sage-50); color: var(--ink); }
.entry-content .job-manager-error { border-left-color: #D64545; background: #FFF4F2; color: #8A1C12; }
/* Formular „Stellenanzeige einreichen“ */
.entry-content form.job-manager-form { max-width: none; margin-top: 32px; padding: clamp(20px, 3vw, 36px); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: 0 30px 60px -50px rgba(11,34,56,.45); }
.entry-content .job-manager-form fieldset { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 8px 28px; margin: 0; padding: 16px 0; border: 0; }
.entry-content .job-manager-form fieldset + fieldset { border-top: 1px solid var(--line); }
.entry-content .job-manager-form fieldset::before, .entry-content .job-manager-form fieldset::after, .entry-content .job_filters .search_jobs::before, .entry-content .job_filters .search_jobs::after { content: none; display: none; }
.entry-content .job-manager-form fieldset > label { float: none !important; width: auto !important; max-width: none; margin: 0; padding: 12px 0 0; font-weight: 600; color: var(--navy-900); line-height: 1.35; }
.entry-content .job-manager-form fieldset > label small { display: block; margin-top: 2px; font-weight: 400; font-size: .8125rem; color: var(--slate); }
.entry-content .job-manager-form fieldset > div.field { float: none !important; width: auto !important; margin: 0; }
.entry-content .job-manager-form .field small.description, .entry-content .job-manager-form .description { display: block; margin-top: 6px; font-size: .8125rem; color: var(--slate); }
.entry-content .job-manager-form h2 { margin: 28px 0 0; padding: 24px 0 4px; border-top: 2px solid var(--line-strong); font-size: 1.375rem; }
.entry-content .job-manager-form .fieldset-logged_in .field, .entry-content .job-manager-form .fieldset-login_required .field { display: block !important; text-align: left !important; padding-left: 0 !important; padding-top: 12px; font-size: .9375rem; color: var(--slate); }
.entry-content .job-manager-form .fieldset-logged_in .field br { display: none; }
.entry-content .job-manager-form .fieldset-logged_in .field .button, .entry-content .job-manager-form .fieldset-logged_in .field a { display: inline; margin-left: 10px; padding: 0; border: 0; background: none; box-shadow: none; min-height: 0; color: var(--green-600) !important; font: inherit; font-weight: 600; text-decoration: underline; }
.entry-content .job-manager-form .fieldset-logged_in .field a::before { display: none; }
.entry-content .job-manager-form input[type=file] { width: 100%; padding: 10px; border: 1.5px dashed var(--line-strong); border-radius: var(--r-sm); background: var(--sage-50); font-size: .9375rem; }
.entry-content .job-manager-form input[type=file]::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 6px; background: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.entry-content .job-manager-form .wp-editor-wrap { border: 1.5px solid var(--line-strong); border-radius: var(--r-sm); overflow: hidden; }
.entry-content .job-manager-form .mce-tinymce { border: 0 !important; box-shadow: none !important; }
.entry-content .job-manager-form p:has(> input[type=submit]) { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; padding-top: 24px; border-top: 1px solid var(--line); }
.entry-content .job-manager-form .select2-container .select2-selection { min-height: 48px; border: 1.5px solid var(--line-strong); border-radius: var(--r-sm); }
/* Vorschau nach dem Absenden */
.entry-content #job_preview { margin-top: 24px; }
.entry-content #job_preview .job_listing_preview_title { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 16px 20px; margin-bottom: 24px; border-radius: var(--r-lg); background: var(--navy-900); }
.entry-content #job_preview .job_listing_preview_title h2 { margin: 0; color: #fff; font-size: 1.25rem; }
.entry-content #job_preview .job_listing_preview_title input { margin: 0 0 0 8px; }
.entry-content #job_preview .job_listing_preview { padding: 0; border: 0; }
/* Meine Stellenanzeigen */
.entry-content #job-manager-job-dashboard { margin-top: 28px; }
.entry-content #job-manager-job-dashboard .jm-dashboard-job, .entry-content #job-manager-job-dashboard .jm-dashboard-row { border-radius: var(--r-lg); }
.entry-content #job-manager-job-dashboard a { color: var(--navy-900); }
.entry-content #job-manager-job-dashboard .job_title a, .entry-content #job-manager-job-dashboard .jm-dashboard-job-column.job_title a { font-family: var(--font-head); font-weight: 700; color: var(--navy-900); }
@media (max-width: 960px) {
  .entry-content .aj-single .aj-grid { grid-template-columns: 1fr; }
  .entry-content .aj-side { position: static; order: -1; }
}
@media (max-width: 720px) {
  .entry-content ul.job_listings li.aj-item a { grid-template-columns: 48px minmax(0, 1fr); gap: 12px 14px; padding: 16px; }
  .entry-content .aj-logo { width: 48px; height: 48px; }
  .entry-content .aj-meta { grid-column: 2; justify-items: start; text-align: left; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
  .entry-content .aj-arrow { display: none; }
  .entry-content .job_filters .search_jobs .search_submit { flex: 1 1 100%; }
  .entry-content .job_filters .search_jobs .search_submit input { width: 100%; }
  .entry-content .job-manager-form fieldset { grid-template-columns: 1fr; }
  .entry-content .job-manager-form fieldset > label { padding-top: 0; }
  .entry-content .job-manager-form p:has(> input[type=submit]) input { flex: 1 1 100%; }
}
.entry-content .job-manager-form fieldset .field input[type=checkbox] { width: 20px !important; height: 20px; margin: 12px 0 0; display: block; accent-color: var(--green-600); }

/* Live-Anzeige Erreichbarkeit ([aengie_erreichbarkeit]) */
.live-status { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding: 14px 16px; border-radius: var(--r-md); border: 1px solid var(--line); background: var(--surface); font-size: .875rem; line-height: 1.5; color: var(--slate); }
.live-status strong { color: var(--navy-900); font-weight: 700; }
.live-status a { display: inline-block; margin-top: 4px; font-weight: 600; color: var(--green-600); text-decoration: none; }
.live-status a:hover { color: var(--green-700); text-decoration: underline; }
.live-status.is-open { background: var(--sage-50); border-color: var(--sage-300); }
.live-dot { flex: none; position: relative; width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: #9AA6B2; }
.is-open .live-dot { background: #3E9B3A; box-shadow: 0 0 0 0 rgba(62,155,58,.5); animation: live-pulse 2s infinite; }
@keyframes live-pulse { 70% { box-shadow: 0 0 0 8px rgba(62,155,58,0); } 100% { box-shadow: 0 0 0 0 rgba(62,155,58,0); } }
@media (prefers-reduced-motion: reduce) { .is-open .live-dot { animation: none; } }

/* Startseite: weniger Abstand, wenn direkt das Mitglieder-Laufband folgt */
.hero:has(+ .mitglieder-band) { padding-bottom: clamp(40px, 4vw, 56px); }
@media (max-width: 1080px) { .hero:has(+ .mitglieder-band) { padding-bottom: 36px; } }

/* ============================================================
   FORTBILDUNGSKALENDER (The Events Calendar)
   ============================================================ */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.entry-content .tk { margin-top: 28px; }
.entry-content .tk-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: linear-gradient(160deg, var(--blue-50), var(--sage-50)); }
.entry-content .tk-tabs { display: flex; gap: 6px; }
.entry-content .tk-tabs a { padding: 10px 18px; border-radius: 999px; font-weight: 600; font-size: .9375rem; color: var(--navy-900); text-decoration: none; }
.entry-content .tk-tabs a:hover { background: rgba(255,255,255,.7); }
.entry-content .tk-tabs a.is-active { background: var(--navy-900); color: #fff; }
.entry-content .tk-search { position: relative; flex: 1 1 280px; max-width: 420px; margin: 0; }
.entry-content .tk-search svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--slate); pointer-events: none; }
.entry-content .tk-search input { width: 100%; min-height: 46px; padding: 10px 14px 10px 42px; border: 1.5px solid var(--line-strong); border-radius: 999px; background: #fff; font: inherit; font-size: .9375rem; color: var(--ink); }
.entry-content .tk-search input:focus { outline: none; border-color: var(--green-600); box-shadow: 0 0 0 3px rgba(176,203,31,.3); }
.entry-content .tk-group { margin-top: 32px; }
.entry-content .tk-month { margin: 0 0 12px; font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green-600); display: flex; align-items: center; gap: 12px; }
.entry-content .tk-month::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.entry-content ul.tk-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.entry-content .tk-list > li { margin: 0; padding: 0; }
.entry-content .tk-list > li::before { content: none; }
.entry-content .tk-item > a { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 24px; align-items: center; gap: 18px; padding: 14px 18px 14px 14px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: inherit; text-decoration: none; transition: border-color var(--t), box-shadow var(--t), transform var(--t); }
.entry-content .tk-item > a:hover { border-color: var(--green-brand); box-shadow: 0 20px 40px -32px rgba(11,34,56,.45); transform: translateY(-1px); }
.entry-content .tk-item.is-featured > a { border-color: var(--sage-300); background: linear-gradient(90deg, var(--sage-50), #fff 55%); }
.entry-content .tk-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 64px; padding: 8px 0 7px; border-radius: var(--r-md); background: var(--navy-900); color: #fff; line-height: 1; }
.entry-content .tk-date b { font-family: var(--font-head); font-size: 1.5rem; font-weight: 800; }
.entry-content .tk-date small { margin-top: 3px; font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green-200); }
.entry-content .tk-date i { margin-top: 5px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,.18); width: 70%; text-align: center; font-style: normal; font-size: .6875rem; color: #B9C8D6; }
.entry-content .tk-main { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.entry-content .tk-title { font-family: var(--font-head); font-weight: 700; font-size: 1.0625rem; line-height: 1.35; color: var(--navy-900); }
.entry-content .tk-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: .875rem; color: var(--slate); }
.entry-content .tk-meta > span + span::before { content: "·"; margin-right: 14px; color: var(--line-strong); }
.entry-content .tk-meta .tk-chip::before { content: none !important; }
.entry-content .tk-zeit { font-weight: 600; color: var(--ink); }
.entry-content .tk-chip { padding: 2px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; background: var(--blue-100); color: var(--navy-800); }
/* Eigene ÄNGie-Fortbildungen hervorheben */
.entry-content .tk-item.is-aengie > a { border: 1.5px solid var(--green-brand); border-left-width: 6px; background: linear-gradient(90deg, var(--sage-100), #fff 60%); }
.entry-content .tk-item.is-aengie > a:hover { border-color: var(--green-600); }
.entry-content .tk-item.is-aengie .tk-date { background: var(--green-brand); color: var(--navy-900); }
.entry-content .tk-item.is-aengie .tk-date small { color: var(--navy-900); }
.entry-content .tk-item.is-aengie .tk-date i { color: var(--navy-800); border-top-color: rgba(11,34,56,.22); }
.entry-content .tk-chip.is-aengie { background: var(--green-brand); color: var(--navy-900); letter-spacing: .01em; }
.entry-content .tk-cost { justify-self: end; padding: 5px 12px; border-radius: 999px; font-size: .8125rem; font-weight: 700; white-space: nowrap; background: var(--blue-50); color: var(--navy-900); }
.entry-content .tk-cost.is-free { background: var(--sage-100); color: var(--green-700); }
.entry-content .tk-cost.is-empty { padding: 0; background: none; }
.entry-content .tk-arrow { color: var(--green-600); }
.entry-content .tk-arrow svg { width: 20px; height: 20px; transition: transform var(--t); }
.entry-content .tk-item > a:hover .tk-arrow svg { transform: translateX(3px); }
.entry-content .tk-empty { margin-top: 28px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); text-align: center; color: var(--slate); }
.entry-content .tk-abo { margin-top: 28px; font-size: .875rem; color: var(--slate); }
.entry-content .tk-next { margin-top: 24px; }
.entry-content .tk-more { margin-top: 20px; }
/* Einzeltermin */
.te-lede { max-width: none; }
.entry-content .te-date { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 58px; height: 62px; border-radius: var(--r-md); background: var(--navy-900); color: #fff; line-height: 1; }
.entry-content .te-date b { font-family: var(--font-head); font-size: 1.5rem; font-weight: 800; }
.entry-content .te-date small { margin-top: 4px; font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green-200); }
.entry-content .te-adr { font-weight: 400; color: var(--slate); font-size: .9375rem; }
.entry-content .te-map { font-size: .875rem; font-weight: 600; }
.entry-content .te-cta { margin: 20px 0 0; }
.entry-content .te-cta .btn { width: 100%; }
.entry-content .te-cta .btn svg { width: 16px; height: 16px; }
.entry-content .te-cal { margin: 14px 0 0; font-size: .875rem; color: var(--slate); text-align: center; }
.entry-content .te-cal a { font-weight: 600; }
.entry-content .te-description a { overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .entry-content .tk-bar { padding: 10px; }
  .entry-content .tk-search { max-width: none; flex-basis: 100%; }
  .entry-content .tk-item > a { grid-template-columns: 56px minmax(0, 1fr); gap: 12px 14px; padding: 12px; }
  .entry-content .tk-date { width: 56px; }
  .entry-content .tk-cost { grid-column: 2; justify-self: start; }
  .entry-content .tk-cost.is-empty, .entry-content .tk-arrow { display: none; }
}
.entry-content .tk-more .btn-secondary { border: 1.5px solid var(--line-strong); color: var(--navy-900); text-decoration: none; }
.entry-content .tk-more .btn-secondary:hover { border-color: var(--navy-900); }
.entry-content .tk-more .btn svg { width: 18px; height: 18px; }

/* Hinweisfenster vor externen Links */
.ext-hinweis { width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overscroll-behavior: contain; overflow: auto; padding: 28px 28px 24px; border: 0; border-radius: 16px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 80px -20px rgba(8,25,42,.45); font-family: var(--font-body); }
.ext-hinweis::backdrop { background: rgba(8,25,42,.42); -webkit-backdrop-filter: blur(10px) saturate(1.1); backdrop-filter: blur(10px) saturate(1.1); }
.ext-hinweis h2 { margin: 6px 0 12px; font-family: var(--font-head); font-size: 1.375rem; line-height: 1.25; color: var(--navy-900); }
.ext-hinweis p { margin: 0 0 12px; font-size: .9688rem; line-height: 1.55; }
.ext-hinweis .is-style-eyebrow { margin: 0; }
.ext-hinweis-url { padding: 8px 12px; border-radius: var(--r-sm); background: var(--blue-50); color: var(--slate); font-size: .8125rem !important; word-break: break-all; }
.ext-hinweis-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
@media (max-width: 480px) { .ext-hinweis { padding: 22px 18px 18px; } .ext-hinweis-actions .btn { flex: 1 1 100%; justify-content: center; } }

/* Patienteninfo: Live-Kachel, Status in den Karten, Route-Link, Haftungshinweis */
.duty-now { margin-top: clamp(32px, 5vw, 56px); padding: clamp(22px, 3vw, 32px); border-radius: var(--r-lg); background: var(--navy-900); color: #D9E3EC; }
.duty-now[hidden] { display: none; }
.duty-now-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.duty-now-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--green-200); }
.duty-now-eyebrow .live-dot { margin-top: 0; background: #3E9B3A; box-shadow: 0 0 0 0 rgba(62,155,58,.5); animation: live-pulse 2s infinite; }
.entry-content .duty-now h2 { flex: 1 1 100%; order: -1; margin: 0; font-size: clamp(1.375rem, 2.4vw, 1.75rem); color: #fff; }
.duty-now-time { margin: 0; font-size: .875rem; color: #AFC0CF; }
.entry-content ul.duty-now-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.entry-content ul.duty-now-list li, .entry-content ul.duty-now-list li + li { margin: 0; padding: 14px 16px 14px 36px; position: relative; border-radius: var(--r-md); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); line-height: 1.4; }
.entry-content ul.duty-now-list li::marker { content: none; }
.duty-now-list .live-dot { position: absolute; left: 16px; top: 19px; margin: 0; background: #8796A5; }
.duty-now-list li.is-open { background: rgba(176,203,31,.14); border-color: rgba(176,203,31,.45); }
.entry-content .duty-now-list a { display: block; font-weight: 700; color: #fff; text-decoration: none; }
.entry-content .duty-now-list a:hover { text-decoration: underline; }
.duty-now-list span:last-child { display: block; margin-top: 2px; font-size: .875rem; color: #C6D3DF; }
.duty-now-list li.is-open span:last-child { color: var(--green-200); }
.entry-content .duty-now-phone { margin: 16px 0 0; font-size: .9375rem; }
.duty-now-phone strong { color: #fff; }
.entry-content .duty-now-phone a, .entry-content .duty-now-note a { color: var(--green-200); font-weight: 700; }
.entry-content .duty-now-note { margin: 6px 0 0; font-size: .8125rem; color: #AFC0CF; }
.entry-content .duty-live { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; padding: 8px 12px; border-radius: var(--r-sm); background: #F1F4F7; font-size: .875rem; font-weight: 600; line-height: 1.4; color: var(--slate); }
.entry-content .duty-live.is-open { background: var(--sage-50); color: #2D6E29; }
.duty-live .live-dot { margin-top: 4px; }
.entry-content .duty-route { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-weight: 600; color: var(--green-600); text-decoration: none; }
.entry-content .duty-route:hover { color: var(--green-700); text-decoration: underline; }
.entry-content .duty-disclaimer { margin: 18px 0 0; padding: 14px 18px; border-radius: var(--r-md); background: #F7F8FA; border: 1px solid var(--line); font-size: .875rem; line-height: 1.55; color: var(--slate); }
.duty-disclaimer strong { color: var(--navy-900); }
@media (max-width: 900px) { .entry-content ul.duty-now-list { grid-template-columns: 1fr; } }
.entry-content .duty-row strong + br { display: none; }

/* Kennzeichnung: mit Admin-/Geschäftsstellen-Konto angemeldet */
.admin-flag { display: inline-flex; align-items: center; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: #C8102E; color: #fff; font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: 1.5; white-space: nowrap; }
.mobile-member-title .admin-flag { margin-left: auto; }

/* Kopfzeile: nichts umbrechen; bei knappem Platz die E-Mail nur als Symbol */
.header-link, .header-actions .btn, .brand-sub, .brand-name { white-space: nowrap; }
@media (max-width: 1320px) {
  .header-mail span, .header-logout span { display: none; }
  .header-mail { padding-left: 10px; padding-right: 10px; }
}

/* Nach-oben-Button */
.to-top { position: fixed; right: max(16px, env(safe-area-inset-right, 0px)); bottom: max(16px, env(safe-area-inset-bottom, 0px)); z-index: 40; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--navy-900); color: #fff; box-shadow: 0 10px 24px -10px rgba(11,34,56,.55); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity var(--t), transform var(--t), visibility 0s linear 220ms, background var(--t); }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity var(--t), transform var(--t), visibility 0s, background var(--t); }
.to-top:hover { background: var(--green-brand); color: var(--navy-900); }
.to-top:focus-visible { outline: 3px solid var(--green-brand); outline-offset: 3px; }
@media (min-width: 900px) { .to-top { right: 28px; bottom: 28px; width: 52px; height: 52px; } }
@media (prefers-reduced-motion: reduce) { .to-top, .to-top.is-visible { transition: none; transform: none; } }
@media print { .to-top { display: none; } }

/* Weiterbildungspraxen (Seite Weiterbildungsverbund) – im Stil der PDF-Liste */
.entry-content .wb-praxen { display: grid; gap: 16px; max-width: none; }
.entry-content .wb-praxen > * { margin: 0; max-width: none; }
.entry-content .wbp-tabelle { margin-bottom: 16px !important; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.entry-content .wbp-tabelle table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.entry-content .wbp-tabelle th { text-align: left; font: 700 .7rem/1.2 var(--font-head); letter-spacing: .08em; text-transform: uppercase; color: var(--slate); padding: 14px 14px 10px; border: 0; border-bottom: 1.5px solid var(--line-strong); white-space: nowrap; }
.entry-content .wbp-tabelle td { padding: 11px 14px; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.45; }
.entry-content .wbp-tabelle tr:last-child td { border-bottom: 0; }
.entry-content .wbp-tabelle tbody tr:nth-child(even) td { background: var(--sage-50); }
.entry-content .wbp-tabelle td strong { color: var(--navy-900); font-weight: 600; }
.entry-content .wbp-tabelle figcaption { margin: 0; padding: 10px 14px 12px; font-size: .8125rem; color: var(--slate); text-align: left; border-top: 1px solid var(--line); }
.entry-content .wbp-ja { color: var(--green-700); font-weight: 700; }
.entry-content .wbp-nein { color: var(--slate); }
.entry-content .wbp-na { color: #8A97A3; font-style: italic; font-weight: 400; }
.entry-content .wbp-card { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; }
.entry-content .wbp-head { display: flex; align-items: center; gap: 14px; padding: 14px 22px; background: var(--sage-50); border-bottom: 1px solid var(--sage-100); }
.entry-content .wbp-head > * { margin: 0 !important; }
.entry-content .wbp-nr { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--green-brand); color: var(--navy-900); font: 800 .875rem/1 var(--font-head); }
.entry-content .wbp-head h3 { font-size: 1.125rem; line-height: 1.3; }
.entry-content .wbp-body { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 28px; padding: 20px 22px 22px; }
.entry-content .wbp-side, .entry-content .wbp-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.entry-content .wbp-side > *, .entry-content .wbp-main > * { margin: 0; }
.entry-content .wbp-i { position: relative; padding-left: 28px; font-size: .9375rem; line-height: 1.5; }
.entry-content .wbp-i::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: var(--green-600); -webkit-mask: var(--wbp-i) center / contain no-repeat; mask: var(--wbp-i) center / contain no-repeat; }
.entry-content .wbp-adr { --wbp-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.entry-content .wbp-web { --wbp-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E"); overflow-wrap: anywhere; }
.entry-content .wbp-ap { --wbp-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.entry-content .wbp-ap small { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .04em; color: var(--slate); }
.entry-content .wbp-facts { display: grid; grid-template-columns: auto 1fr 1fr; gap: 8px; margin-top: 4px !important; }
.entry-content .wbp-facts p { margin: 0; padding: 8px 10px; border-radius: var(--r-sm); background: var(--blue-50); }
.entry-content .wbp-facts small { display: block; font-size: .6875rem; font-weight: 600; color: var(--slate); white-space: nowrap; }
.entry-content .wbp-facts strong { display: block; font: 800 1rem/1.3 var(--font-head); color: var(--navy-900); }
.entry-content .wbp-facts .wbp-nein { color: var(--slate); font-weight: 700; }
.entry-content .wbp-wb { padding: 14px 18px; border-radius: var(--r-md); background: var(--navy-900); color: #fff; margin-bottom: 6px !important; }
.entry-content .wbp-wb > * { margin: 0; }
.entry-content .wbp-wb-label { font: 700 .6875rem/1 var(--font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--green-200); }
.entry-content .wbp-wb-text { margin-top: 8px !important; font: 700 1.0625rem/1.4 var(--font-head); color: #fff; }
.entry-content .wbp-h { margin-top: 6px !important; font: 700 .75rem/1.2 var(--font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--green-600); }
.entry-content .wbp-t { font-size: .9375rem; line-height: 1.6; color: var(--ink); margin-top: -4px !important; }
.entry-content .wb-praxen-pdf { margin-top: 20px; padding: 16px 20px; border-radius: var(--r-lg); background: var(--blue-50); color: #12324F; font-size: .9375rem; max-width: none; }
.entry-content .wb-praxen-pdf strong { color: var(--navy-900); }
.entry-content .wb-praxen-pdf + .section-head { margin-top: clamp(56px, 7vw, 88px); }
@media (max-width: 860px) {
  .entry-content .wbp-body { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .entry-content .wbp-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 20px; }
  .entry-content .wbp-facts { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .entry-content .wbp-head { padding: 12px 16px; }
  .entry-content .wbp-body { padding: 16px; }
  .entry-content .wbp-tabelle { display: none; } /* auf dem Handy stehen alle Angaben in den Karten */
}

/* Seitennavigation Patienteninfo */
.entry-content .pi-nav { position: sticky; top: 62px; z-index: 30; max-width: none; margin: 0 0 clamp(36px, 5vw, 56px); }
.entry-content .pi-nav-innen { display: flex; align-items: center; gap: 10px 16px; padding: 8px; border: 1px solid var(--sage-300); border-radius: 14px; background: rgba(245, 248, 236, .94); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); box-shadow: 0 14px 30px -24px rgba(11,34,56,.5); }
.entry-content .pi-nav-titel { display: none; flex: none; font: 700 .75rem/1 var(--font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--green-700); }
.entry-content .pi-nav ul { flex: 1; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.entry-content .pi-nav li { margin: 0; padding: 0; flex: 1 1 auto; }
.entry-content .pi-nav li a { width: 100%; justify-content: center; }
.entry-content .pi-nav li::before { content: none; }
.entry-content .pi-nav a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 13px; border-radius: 999px; background: #fff; border: 1px solid var(--line-strong); color: var(--navy-900); font-size: .875rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background var(--t), border-color var(--t), color var(--t); }
.entry-content .pi-nav a:hover { border-color: var(--green-600); background: var(--sage-100); }
.entry-content .pi-nav a:focus-visible { outline: 2px solid var(--green-600); outline-offset: 2px; }
.entry-content .pi-nav a.is-aktiv { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.entry-content [data-pi-ziel] { scroll-margin-top: 220px; }
@media (max-width: 1100px) {
  .entry-content .pi-nav { top: 72px; margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); }
  .entry-content .pi-nav-innen { border-radius: 0; border-left: 0; border-right: 0; padding: 8px var(--gutter); }
  .entry-content .pi-nav ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-padding-inline: var(--gutter); }
  .entry-content .pi-nav ul::-webkit-scrollbar { display: none; }
  .entry-content .pi-nav li { flex: none; }
  .entry-content [data-pi-ziel] { scroll-margin-top: 180px; }
}
@media (prefers-reduced-motion: no-preference) { html:has(.pi-nav) { scroll-behavior: smooth; } }

/* Band „Mitgliederbereich“ unter der Navigation */
.mg-band { background: var(--navy-900); color: #fff; border-top: 3px solid var(--green-brand); }
.mg-band-innen { display: flex; align-items: center; justify-content: flex-start; gap: 10px; min-height: 42px; }
.mg-band-innen svg { width: 16px; height: 16px; flex: none; color: var(--green-brand); }
.mg-band-innen p { margin: 0; font-size: .9375rem; font-weight: 500; letter-spacing: .01em; color: #DCE5EE; }
.mg-band-innen p strong { color: #fff; font-weight: 700; }
.mg-band-innen .mg-band-ab { margin-left: 14px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.25); color: #C9D4DF; font-size: .875rem; text-decoration: underline; text-underline-offset: 3px; }
.mg-band-innen .mg-band-ab:hover { color: #fff; }
@media (max-width: 600px) { .mg-band-innen .mg-band-ab { display: none; } /* auf dem Handy: Abmelden-Symbol oben in der Kopfzeile */ .mg-band-lang { display: none; } }

/* Beiträge (Neuigkeiten): angenehme Lesebreite für Fließtext, Medien in voller Breite */
.single-post .entry-content > p, .single-post .entry-content > ul, .single-post .entry-content > ol,
.single-post .entry-content > h2, .single-post .entry-content > h3, .single-post .entry-content > h4,
.single-post .entry-content > .wp-block-quote, .single-post .entry-content > .wp-block-details,
.single-post .entry-content > .wp-block-group, .single-post .entry-content > .wp-block-buttons,
.single-post .entry-content > .wp-block-file { max-width: 780px; }
.single-post .entry-content > .is-style-lede { font-size: 1.25rem; line-height: 1.6; }
.single-post .entry-content > p, .single-post .entry-content li { font-size: 1.0625rem; line-height: 1.75; }
/* Hinweis- und Wichtig-Box (Stilvarianten des Blocks „Gruppe“) */
.entry-content .wp-block-group.is-style-hinweis, .entry-content .wp-block-group.is-style-wichtig { padding: 18px 22px 18px 58px; border-radius: var(--r-md); position: relative; }
.entry-content .wp-block-group.is-style-hinweis { background: var(--blue-50); border: 1px solid #D3E1EE; color: #12324F; }
.entry-content .wp-block-group.is-style-wichtig { background: #FFF8E6; border: 1px solid #F1D48A; color: #5C4108; }
.entry-content .wp-block-group.is-style-hinweis::before, .entry-content .wp-block-group.is-style-wichtig::before { content: ""; position: absolute; left: 20px; top: 20px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font: 800 .875rem/24px var(--font-head); text-align: center; }
.entry-content .wp-block-group.is-style-hinweis::before { content: "i"; background: var(--navy-900); color: #fff; }
.entry-content .wp-block-group.is-style-wichtig::before { content: "!"; background: #B7791F; color: #fff; }
.entry-content .wp-block-group.is-style-hinweis > * + *, .entry-content .wp-block-group.is-style-wichtig > * + * { margin-top: .6em; }
.entry-content .wp-block-group.is-style-hinweis strong { color: var(--navy-900); }
/* Galerie */
.entry-content .wp-block-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.entry-content .wp-block-gallery > .wp-block-image { margin: 0; }
.entry-content .wp-block-gallery img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.entry-content .wp-block-gallery > figcaption { grid-column: 1 / -1; margin-top: 0; }
/* Spalten */
.entry-content .wp-block-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(20px, 3vw, 40px); align-items: center; }
.entry-content .wp-block-column > * + * { margin-top: 1em; }
.entry-content .wp-block-column figure { margin: 0; }
/* Zitat, Aufklapper, Tabelle */
.single-post .entry-content .wp-block-quote { padding: 6px 0 6px 24px; border-left: 4px solid var(--green-brand); font-family: var(--font-head); font-size: 1.25rem; font-weight: 600; line-height: 1.5; color: var(--navy-900); }
.entry-content .wp-block-details { padding: 0; border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; }
.entry-content .wp-block-details + .wp-block-details { margin-top: 10px; }
.entry-content .wp-block-details summary { cursor: pointer; padding: 16px 20px; font-weight: 600; color: var(--navy-900); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.entry-content .wp-block-details summary::-webkit-details-marker { display: none; }
.entry-content .wp-block-details summary::after { content: "+"; font: 700 1.25rem/1 var(--font-head); color: var(--green-600); }
.entry-content .wp-block-details[open] summary::after { content: "–"; }
.entry-content .wp-block-details > :not(summary) { padding: 0 20px 18px; margin: 0; color: var(--slate); }
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content .wp-block-table tbody tr:nth-child(even) td { background: var(--sage-50); }
@media (max-width: 600px) { .entry-content .wp-block-gallery { grid-template-columns: 1fr 1fr; } }
/* Galerie und Tabelle: WordPress-Standardstile überschreiben */
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image { width: 100% !important; max-width: none; margin: 0 !important; flex: none; }
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.entry-content .wp-block-gallery.has-nested-images > figcaption { text-align: left; flex-basis: auto; }
.entry-content .wp-block-table table, .entry-content .wp-block-table th, .entry-content .wp-block-table td { border: 0; }
.entry-content .wp-block-table thead { border: 0; }
.entry-content .wp-block-table th { border-bottom: 1.5px solid var(--line-strong); }
.entry-content .wp-block-table td { border-bottom: 1px solid var(--line); }
.entry-content .wp-block-table table { border: 1px solid var(--line); border-radius: var(--r-md); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.entry-content .wp-block-table tbody tr:last-child td { border-bottom: 0; }

/* Aktuelles & Termine: Beiträge im Dreier-Raster mit Titelbild, darunter die Termine */
.archive-head { margin-bottom: clamp(24px, 3vw, 36px); }
.archive-head h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); font-weight: 800; }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.post-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden; transition: border-color var(--t), transform var(--t), box-shadow var(--t); }
.post-card:hover { border-color: var(--green-brand); transform: translateY(-3px); box-shadow: 0 18px 40px -28px rgba(11,34,56,.45); }
.post-card-bild { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--navy-900); }
.post-card-bild img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.post-card:hover .post-card-bild img { transform: scale(1.03); }
.post-card-platzhalter { display: grid; place-items: center; width: 100%; height: 100%; background: linear-gradient(135deg, var(--navy-900), var(--navy-800)); }
.post-card-platzhalter svg { width: 30%; height: auto; opacity: .9; }
.post-card-text { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 22px; flex: 1; }
.post-card-text time { font-size: .8125rem; font-weight: 600; letter-spacing: .04em; color: var(--green-600); }
.post-card-text h3 { font-size: 1.125rem; line-height: 1.35; margin: 0; }
.post-card-text h3 a { color: var(--navy-900); text-decoration: none; }
.post-card-text h3 a::after { content: ""; position: absolute; inset: 0; }   /* ganze Karte klickbar */
.post-card-text h3 a:focus-visible { outline: none; }
.post-card:focus-within { outline: 2px solid var(--green-600); outline-offset: 2px; }
.post-card-text p { margin: 0; color: var(--slate); font-size: .9375rem; line-height: 1.6; }
.post-card-text .text-link { margin-top: auto; padding-top: 6px; }
.archive-termine { padding-bottom: var(--section); }
.archive-termine .container { padding-top: clamp(40px, 6vw, 72px); border-top: 1px solid var(--line); }
@media (max-width: 1100px) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .post-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .post-card, .post-card-bild img { transition: none; } .post-card:hover { transform: none; } .post-card:hover .post-card-bild img { transform: none; } }
.archive-termine .entry-content { padding: 0; max-width: none; } /* Termin-Karten nutzen die Stile des Fortbildungskalenders */
