/*
Theme Name:   Astra Child (Direktkandidat Mueller)
Template:     astra
Version:      1.1.4
Description:  DKM Design System — konsistentes Design-Portfolio.
Author:       Claude + Frank
*/

/* =============================================================
   1. DESIGN TOKENS
   ============================================================= */
:root {
  /* --- Brand Blue (AfD CI) --- */
  --dkm-blau-900: #00406D;
  --dkm-blau-800: #00569B;
  --dkm-blau-700: #087CBB;
  --dkm-blau-500: #2E95D0;
  --dkm-blau-300: #87C1E3;
  --dkm-blau-100: #E8F3FB;
  --dkm-blau-50:  #F4FAFD;

  /* --- Accent Red (CI Action) --- */
  --dkm-rot-700: #8C0F19;
  --dkm-rot-600: #BE1522;
  --dkm-rot-500: #DC2838;
  --dkm-rot-100: #FAE6E8;

  /* --- Neutrals --- */
  --dkm-grau-900: #0D1520;
  --dkm-grau-800: #1C2433;
  --dkm-grau-700: #3B4554;
  --dkm-grau-600: #5B6675;
  --dkm-grau-500: #7F8A99;
  --dkm-grau-400: #A7B0BC;
  --dkm-grau-300: #D1D6DE;
  --dkm-grau-200: #E4E8EE;
  --dkm-grau-100: #F1F3F7;
  --dkm-grau-50:  #F7F9FB;
  --dkm-weiss:    #FFFFFF;

  /* --- Semantic Mappings --- */
  --color-bg:          var(--dkm-weiss);
  --color-bg-subtle:   var(--dkm-grau-50);
  --color-bg-muted:    var(--dkm-grau-100);
  --color-bg-dark:     var(--dkm-blau-800);
  --color-bg-darker:   var(--dkm-grau-900);
  --color-brand:       var(--dkm-blau-700);
  --color-brand-dark:  var(--dkm-blau-800);
  --color-accent:      var(--dkm-rot-600);
  --color-accent-dark: var(--dkm-rot-700);
  --color-text:        var(--dkm-grau-900);
  --color-text-2:      var(--dkm-grau-700);
  --color-text-muted:  var(--dkm-grau-500);
  --color-on-dark:     var(--dkm-weiss);
  --color-on-dark-2:   rgba(255, 255, 255, .82);
  --color-on-dark-3:   rgba(255, 255, 255, .65);
  --color-border:      var(--dkm-grau-200);
  --color-border-2:    var(--dkm-grau-300);

  /* --- Radii (weicher) --- */
  --r-xs: 8px;
  --r-sm: 12px;
  --r: 18px;
  --r-lg: 28px;
  --r-xl: 40px;
  --r-full: 9999px;

  /* --- Shadows (weicher, atmosphaerischer) --- */
  --s-1: 0 1px 2px rgba(15,23,42,.04);
  --s-2: 0 6px 18px rgba(15,23,42,.05);
  --s-3: 0 14px 32px rgba(15,23,42,.07);
  --s-4: 0 24px 64px rgba(15,23,42,.10);
  --s-5: 0 40px 100px rgba(15,23,42,.14);
  --s-red: 0 14px 32px rgba(190,21,34,.22);
  --s-blue: 0 14px 32px rgba(8,124,187,.20);

  /* --- Motion --- */
  --ease: cubic-bezier(.4, 0, .2, 1);
  --ease-out: cubic-bezier(.2, .9, .2, 1);
  --t-fast: 160ms;
  --t: 320ms;
  --t-slow: 640ms;

  /* --- Typography --- */
  --font-sans: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* --- Layout --- */
  --content-max: 1440px;
  --content-pad: clamp(1rem, 3vw, 2.5rem);
  --section-py:    clamp(3rem, 6vw, 6rem);
  --section-py-sm: clamp(2rem, 4vw, 4rem);
  --prose-max: 720px;
  --hero-max:  920px;
  --media-max: 1100px;
}

/* =============================================================
   2. BASE RESET + Typography
   ============================================================= */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}
body {
  font-family: var(--font-sans) !important;
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background: var(--color-bg);
}
*, *::before, *::after { box-sizing: border-box; }

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: var(--r-xs);
}

/* Astra-Elemente auf neue Font zwingen */
.entry-title, h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.hfe-infocard-title,
.site-title, .site-description,
button, input, textarea, select,
.elementor-widget-container,
.ast-article-post *,
.site-footer *,
.menu-item a {
  font-family: var(--font-sans) !important;
}

/* --- Typografische Scale --- */
h1, .dkm-h1, .elementor-heading-title.elementor-size-xxl {
  font-size: clamp(2rem, 4.5vw, 3.25rem) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: var(--color-text);
}
h2, .dkm-h2 {
  font-size: clamp(1.625rem, 3.2vw, 2.375rem) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--color-text);
}
h3, .dkm-h3 {
  font-size: clamp(1.25rem, 2vw, 1.625rem) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  color: var(--color-text);
}
h4, .dkm-h4 {
  font-size: clamp(1.075rem, 1.4vw, 1.25rem) !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  color: var(--color-text);
}
p, li, .elementor-widget-text-editor {
  line-height: 1.7;
  color: var(--color-text-2);
}

/* =============================================================
   3. FIX: HEADER — Doppel-Menu entfernen + Scroll State
   ============================================================= */
.ast-builder-menu-2,
#ast-hf-menu-2,
.ast-builder-menu-mobile-2 { display: none !important; }

.site-header,
.ast-desktop .main-header-bar {
  transition: background-color var(--t) var(--ease),
              box-shadow var(--t) var(--ease),
              backdrop-filter var(--t) var(--ease);
}
body.is-scrolled .site-header,
body.is-scrolled .main-header-bar {
  background: rgba(255,255,255,.94) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: var(--s-2);
}
body.is-scrolled .site-header a:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--color-text) !important;
}

/* =============================================================
   4. DKM DARK SURFACE — weisse Schrift auf dunklem BG
   Wird per JS gesetzt auf Sections mit low-luminance BG
   ============================================================= */
.dkm-dark,
.dkm-dark h1, .dkm-dark h2, .dkm-dark h3, .dkm-dark h4, .dkm-dark h5, .dkm-dark h6,
.dkm-dark p, .dkm-dark span:not(.elementor-button-text):not(.elementor-button-icon),
.dkm-dark li, .dkm-dark div:not(.elementor-button):not([class*="button"]),
.dkm-dark .elementor-heading-title,
.dkm-dark .hfe-infocard-title,
.dkm-dark .hfe-infocard-text,
.dkm-dark .elementor-image-box-title,
.dkm-dark .elementor-image-box-description,
.dkm-dark .elementor-widget-text-editor {
  color: var(--color-on-dark) !important;
}
.dkm-dark p,
.dkm-dark .hfe-infocard-text,
.dkm-dark .elementor-image-box-description,
.dkm-dark .elementor-widget-text-editor p {
  color: var(--color-on-dark-2) !important;
}
.dkm-dark a:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--color-on-dark) !important;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.5);
  text-underline-offset: 3px;
  transition: text-decoration-color var(--t-fast);
}
.dkm-dark a:not(.elementor-button):not(.hfe-menu-btn):hover {
  text-decoration-color: var(--color-on-dark);
}

/* Card-in-dark: Card-Inhalt bleibt hell-lesbar */
.dkm-dark .ast-article-post,
.dkm-dark .hfe-infocard,
.dkm-dark .dkm-card {
  background: var(--color-bg) !important;
}
.dkm-dark .ast-article-post h1,
.dkm-dark .ast-article-post h2,
.dkm-dark .ast-article-post h3,
.dkm-dark .ast-article-post h4,
.dkm-dark .ast-article-post h2.entry-title,
.dkm-dark .ast-article-post h2.entry-title a,
.dkm-dark .ast-article-post h2.entry-title a:link,
.dkm-dark .ast-article-post h2.entry-title a:visited {
  color: var(--color-text) !important;
}
.dkm-dark .ast-article-post p,
.dkm-dark .ast-article-post .entry-content,
.dkm-dark .ast-article-post .ast-excerpt-container,
.dkm-dark .ast-article-post .ast-excerpt-container p {
  color: var(--color-text-2) !important;
}
.dkm-dark .ast-article-post .entry-meta,
.dkm-dark .ast-article-post .entry-meta * {
  color: var(--color-text-muted) !important;
}
.dkm-dark .ast-article-post .posted-on .published {
  color: var(--color-accent) !important;
}
.dkm-dark .ast-article-post .read-more a {
  color: var(--color-accent) !important;
}
.dkm-dark .hfe-infocard h1,
.dkm-dark .hfe-infocard h2,
.dkm-dark .hfe-infocard h3,
.dkm-dark .hfe-infocard h4,
.dkm-dark .hfe-infocard-title {
  color: var(--color-brand-dark) !important;
}
.dkm-dark .hfe-infocard p,
.dkm-dark .hfe-infocard-text,
.dkm-dark .hfe-infocard-text p {
  color: var(--color-text-2) !important;
}

/* =============================================================
   5. BUTTONS — Design System
   ============================================================= */
.elementor-widget-button .elementor-button,
.elementor-button-wrapper > a.elementor-button,
.srfm-btn-frontend.srfm-submit-button,
button.srfm-button,
.hfe-nav-menu .hfe-menu-btn,
.site-header .elementor-button,
.dkm-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--color-accent) !important;
  color: var(--color-on-dark) !important;
  border: 2px solid var(--color-accent) !important;
  padding: 0.9rem 1.85rem !important;
  border-radius: var(--r-full) !important;
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.01em !important;
  text-decoration: none !important;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform var(--t-fast) var(--ease),
              background-color var(--t) var(--ease),
              border-color var(--t) var(--ease),
              box-shadow var(--t) var(--ease);
  box-shadow: var(--s-red);
  min-height: 44px;
}
.elementor-widget-button .elementor-button:hover,
.elementor-button-wrapper > a.elementor-button:hover,
.srfm-btn-frontend.srfm-submit-button:hover,
button.srfm-button:hover,
.hfe-nav-menu .hfe-menu-btn:hover,
.site-header .elementor-button:hover,
.dkm-btn:hover {
  background: var(--color-accent-dark) !important;
  border-color: var(--color-accent-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(190,21,34,.4);
}
.elementor-widget-button .elementor-button:active,
.elementor-button-wrapper > a.elementor-button:active { transform: translateY(0); }

/* Sheen */
.elementor-widget-button .elementor-button::before,
.elementor-button-wrapper > a.elementor-button::before {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  transition: left 600ms var(--ease-out);
  pointer-events: none;
}
.elementor-widget-button .elementor-button:hover::before,
.elementor-button-wrapper > a.elementor-button:hover::before { left: 100%; }

/* Secondary Button (ghost on dark) */
.dkm-dark .elementor-button[class*="secondary"],
.dkm-btn--ghost {
  background: transparent !important;
  color: var(--color-on-dark) !important;
  border: 2px solid var(--color-on-dark) !important;
  box-shadow: none;
}
.dkm-dark .elementor-button[class*="secondary"]:hover,
.dkm-btn--ghost:hover {
  background: var(--color-on-dark) !important;
  color: var(--color-brand-dark) !important;
  border-color: var(--color-on-dark) !important;
}

/* =============================================================
   6. CARD SYSTEM — einheitliches Design fuer alle Kacheln
   ============================================================= */

/* --- News-Card Base-Style --- */
.ast-article-post {
  background: var(--color-bg) !important;
  border-radius: var(--r) !important;
  overflow: hidden !important;
  border: 1px solid var(--color-border) !important;
  box-shadow: var(--s-1) !important;
  transition: transform var(--t) var(--ease),
              box-shadow var(--t) var(--ease),
              border-color var(--t) var(--ease) !important;
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
}

/* --- Themen-Container (Bild + Infocard): Card-Style --- */
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) {
  background: var(--color-bg) !important;
  border-radius: var(--r) !important;
  overflow: hidden !important;
  border: 1px solid var(--color-border) !important;
  box-shadow: var(--s-1) !important;
  transition: transform var(--t) var(--ease),
              box-shadow var(--t) var(--ease),
              border-color var(--t) var(--ease);
  height: 100%;
}

/* --- A) Themen-Kachel (Start): Container mit Image + Infocard --- */
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) {
  padding: 0 !important;
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard):hover {
  transform: translateY(-6px);
  box-shadow: var(--s-4) !important;
  border-color: var(--dkm-blau-300) !important;
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) > .elementor-widget-image {
  overflow: hidden;
  margin: 0 !important;
  order: 0;
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) > .elementor-widget-image img {
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover !important;
  object-position: center !important;
  display: block;
  transition: transform 700ms var(--ease-out);
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard):hover > .elementor-widget-image img {
  transform: scale(1.05);
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) > .elementor-widget-hfe-infocard {
  padding: 1.5rem 1.75rem 1.75rem !important;
  flex: 1;
}

/* --- B) Werte-Card (About): nur Text --- */
body.page-id-1861 .elementor-widget-hfe-infocard {
  height: 100%;
}
body.page-id-1861 .hfe-infocard {
  background: var(--color-bg) !important;
  border-radius: var(--r) !important;
  padding: 1.75rem !important;
  border: 1px solid var(--color-border) !important;
  box-shadow: var(--s-1) !important;
  position: relative;
  transition: transform var(--t) var(--ease),
              box-shadow var(--t) var(--ease),
              border-color var(--t) var(--ease);
  height: 100%;
  overflow: hidden;
}
body.page-id-1861 .hfe-infocard::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: linear-gradient(180deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
  transition: width var(--t) var(--ease), background var(--t) var(--ease);
}
body.page-id-1861 .hfe-infocard:hover {
  transform: translateY(-4px);
  box-shadow: var(--s-3) !important;
  border-color: var(--dkm-blau-300) !important;
}
body.page-id-1861 .hfe-infocard:hover::before {
  width: 6px;
  background: linear-gradient(180deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
}

/* --- Infocard-Inhalt (gilt fuer beide) --- */
.hfe-infocard-title {
  font-family: var(--font-sans) !important;
  font-size: clamp(1.05rem, 1.3vw, 1.25rem) !important;
  font-weight: 800 !important;
  color: var(--color-brand-dark) !important;
  margin: 0 0 0.75rem 0 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  white-space: normal !important;
  padding-left: 0 !important;
}
.hfe-infocard-text,
.hfe-infocard-text p {
  color: var(--color-text-2) !important;
  font-size: 0.95rem !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

/* Roter Akzent-Strich nur bei Themen-Kacheln (mit Bild) */
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) .hfe-infocard-title {
  padding-bottom: 0.75rem !important;
  margin-bottom: 0.85rem !important;
  position: relative;
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) .hfe-infocard-title::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0;
  width: 36px; height: 3px;
  background: var(--color-accent);
  border-radius: 2px;
  transition: width var(--t) var(--ease);
}
.e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard):hover .hfe-infocard-title::after {
  width: 64px;
}

/* =============================================================
   HFE Basic Posts (Startseite-AKTUELLES Widget)
   ============================================================= */
.hfe-posts-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1.25rem, 2vw, 2rem) !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
}
.hfe-post-card {
  position: relative;
  background: var(--color-bg) !important;
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  border: none !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.06), 0 4px 20px rgba(15,23,42,.04) !important;
  transition: transform 500ms var(--ease-out),
              box-shadow 500ms var(--ease-out) !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
  isolation: isolate;
  margin: 0 !important;
}
.hfe-post-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--r-lg);
  padding: 2px;
  background: linear-gradient(135deg, var(--dkm-blau-700), var(--dkm-rot-600));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity 500ms var(--ease);
  pointer-events: none;
  z-index: 3;
}
.hfe-post-card:hover::after { opacity: 1; }
.hfe-post-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(15,23,42,.14), 0 8px 20px rgba(8,124,187,.08) !important;
}

.hfe-post-card .hfe-post-image {
  aspect-ratio: 3 / 2 !important;
  overflow: hidden;
  display: block;
  position: relative;
  margin: 0 !important;
  order: -10;
}
.hfe-post-card .hfe-post-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(13,21,32,.35) 100%);
  z-index: 2;
  pointer-events: none;
  opacity: .6;
  transition: opacity 500ms var(--ease);
}
.hfe-post-card:hover .hfe-post-image::before { opacity: .25; }
.hfe-post-card .hfe-post-image a,
.hfe-post-card .hfe-post-image img {
  width: 100% !important;
  height: 100% !important;
  display: block;
}
.hfe-post-card .hfe-post-image img {
  object-fit: cover !important;
  transition: transform 1s var(--ease-out);
}
.hfe-post-card:hover .hfe-post-image img { transform: scale(1.08); }

.hfe-post-card .hfe-post-content {
  padding: 1.75rem 1.75rem 1.5rem !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1;
  gap: 0.85rem;
  background: var(--color-bg) !important;
  position: relative;
  z-index: 2;
}
.hfe-post-card .hfe-post-meta {
  order: -5 !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: var(--color-accent) !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center;
  gap: 0.5rem;
}
.hfe-post-card .hfe-post-meta::before {
  content: "";
  width: 24px;
  height: 2px;
  background: var(--color-accent);
  border-radius: 2px;
  flex-shrink: 0;
}
.hfe-post-card .hfe-post-meta .hfe-post-author,
.hfe-post-card .hfe-post-meta .hfe-meta-separator { display: none !important; }
.hfe-post-card .hfe-post-date { color: var(--color-accent) !important; }

.hfe-post-card .hfe-post-title {
  font-family: var(--font-sans) !important;
  font-size: clamp(1.1rem, 1.35vw, 1.3rem) !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  color: var(--color-text) !important;
  margin: 0 !important;
  letter-spacing: -0.018em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  order: -4;
  transition: color var(--t) var(--ease);
}
.hfe-post-card .hfe-post-title a,
.hfe-post-card .hfe-post-title a:link,
.hfe-post-card .hfe-post-title a:visited {
  color: var(--color-text) !important;
  text-decoration: none !important;
  background: none !important;
  transition: color var(--t) var(--ease);
}
.hfe-post-card:hover .hfe-post-title a { color: var(--color-accent) !important; }

.hfe-post-card .hfe-post-excerpt {
  color: var(--color-text-2) !important;
  font-size: 0.925rem !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 !important;
  order: -3;
}
.hfe-post-card .hfe-read-more {
  margin-top: auto !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--color-border);
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-text) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  font-size: 0.85rem !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: none !important;
  border-bottom: none !important;
  transition: color var(--t-fast) var(--ease);
}
.hfe-post-card:hover .hfe-read-more { color: var(--color-accent) !important; }

/* Dark-Context Override fuer HFE-Cards (Section ist dunkel, Cards bleiben hell) */
.dkm-dark .hfe-post-card { background: var(--color-bg) !important; }
.dkm-dark .hfe-post-card .hfe-post-title,
.dkm-dark .hfe-post-card .hfe-post-title a,
.dkm-dark .hfe-post-card .hfe-post-title a:link,
.dkm-dark .hfe-post-card .hfe-post-title a:visited,
.dkm-dark .hfe-post-card .hfe-read-more {
  color: var(--color-text) !important;
}
.dkm-dark .hfe-post-card .hfe-post-excerpt { color: var(--color-text-2) !important; }
.dkm-dark .hfe-post-card .hfe-post-meta,
.dkm-dark .hfe-post-card .hfe-post-date { color: var(--color-accent) !important; }

/* =============================================================
   C) AKTUELLES — Editorial Redesign (Cards only, Grid bleibt Astra)
   ============================================================= */

/* Page-BG: sanfteres Hellgrau */
body.blog,
body.archive,
body.ast-archive {
  background: var(--color-bg-subtle) !important;
}
body.blog .site-content,
body.archive .site-content,
body.ast-archive .site-content {
  background: var(--color-bg-subtle) !important;
}

/* Separate container padding (mehr Atem) */
body.blog .site-content .ast-container,
body.archive .site-content .ast-container {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
  padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}

/* Card-Abstand grosszuegig */
body.blog .ast-grid-common-col,
body.archive .ast-grid-common-col,
body.blog [class*="ast-col-"],
body.archive [class*="ast-col-"] {
  margin-bottom: clamp(1.5rem, 2.5vw, 2.5rem) !important;
}

/* Card: modern editorial */
.ast-article-post {
  position: relative;
  background: var(--color-bg) !important;
  border-radius: var(--r-lg) !important;
  overflow: hidden !important;
  border: none !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.06), 0 4px 20px rgba(15,23,42,.04) !important;
  transition: transform 500ms var(--ease-out),
              box-shadow 500ms var(--ease-out) !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
  isolation: isolate;
  padding: 0 !important;
  margin: 0 !important;
}
.ast-article-post:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(15,23,42,.14), 0 8px 20px rgba(8,124,187,.08) !important;
}

/* Gradient Border on Hover (via pseudo) */
.ast-article-post::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--r-lg);
  padding: 2px;
  background: linear-gradient(135deg, var(--dkm-blau-700), var(--dkm-rot-600));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: 0;
  transition: opacity 500ms var(--ease);
  pointer-events: none;
  z-index: 3;
}
.ast-article-post:hover::after { opacity: 1; }

/* Bild-Container */
.ast-article-post .ast-blog-featured-section,
.ast-article-post .post-thumb {
  margin: 0 !important;
  order: -10;
}
.ast-article-post .post-thumb-img-content {
  aspect-ratio: 3 / 2 !important;
  overflow: hidden;
  display: block;
  position: relative;
  margin: 0 !important;
}
/* Diagonal-Gradient oben (subtiler Color-Touch) */
.ast-article-post .post-thumb-img-content::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(13,21,32,.35) 100%);
  z-index: 2;
  pointer-events: none;
  opacity: .7;
  transition: opacity 500ms var(--ease);
}
.ast-article-post:hover .post-thumb-img-content::before { opacity: .3; }
.ast-article-post .post-thumb-img-content img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 1s var(--ease-out);
}
.ast-article-post:hover .post-thumb-img-content img { transform: scale(1.08); }

/* Post-Content */
.ast-article-post .post-content {
  padding: 1.75rem 1.75rem 1.5rem !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1;
  gap: 0.85rem;
  position: relative;
  z-index: 2;
  background: var(--color-bg) !important;
}

/* Datum: Eyebrow-Style mit rotem Strich davor */
.ast-article-post .entry-meta .posted-by { display: none !important; }
.ast-article-post .entry-header,
.ast-article-post .entry-meta {
  order: -5 !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: var(--color-accent) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  gap: 0.6rem;
  background: none !important;
  border: none !important;
}
.ast-article-post .entry-meta::before,
.ast-article-post .entry-header::before {
  content: "";
  width: 24px;
  height: 2px;
  background: var(--color-accent);
  border-radius: 2px;
  flex-shrink: 0;
}
.ast-article-post .posted-on,
.ast-article-post .posted-on * {
  color: var(--color-accent) !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
}

/* Title */
.ast-article-post h2.entry-title {
  font-family: var(--font-sans) !important;
  font-size: clamp(1.15rem, 1.4vw, 1.375rem) !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  color: var(--color-text) !important;
  margin: 0 !important;
  letter-spacing: -0.018em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  order: -4;
  transition: color var(--t) var(--ease);
}
.ast-article-post h2.entry-title a,
.ast-article-post h2.entry-title a:link,
.ast-article-post h2.entry-title a:visited {
  color: var(--color-text) !important;
  text-decoration: none !important;
  background: none !important;
  transition: color var(--t) var(--ease);
}
.ast-article-post:hover h2.entry-title a { color: var(--color-accent) !important; }

/* Excerpt */
.ast-article-post .ast-excerpt-container,
.ast-article-post .entry-content {
  color: var(--color-text-2) !important;
  font-size: 0.925rem !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0 !important;
  order: -3;
}
.ast-article-post .ast-excerpt-container p,
.ast-article-post .entry-content p { margin: 0 !important; }

/* Weiterlesen — prominenter */
.ast-article-post .read-more {
  margin-top: auto !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--color-border);
}
.ast-article-post .read-more a,
.ast-article-post .read-more a:link,
.ast-article-post .read-more a:visited {
  display: inline-flex !important;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-text) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  font-size: 0.85rem !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0 !important;
  background: none !important;
  border: none !important;
  transition: color var(--t-fast) var(--ease), gap var(--t-fast);
}
.ast-article-post .read-more a::after {
  content: "→";
  display: inline-block;
  transition: transform var(--t) var(--ease);
  color: var(--color-accent);
  font-size: 1.1em;
  font-weight: 500;
}
.ast-article-post:hover .read-more a {
  color: var(--color-accent) !important;
  gap: 0.75rem;
}
.ast-article-post:hover .read-more a::after { transform: translateX(6px); }

/* =============================================================
   C.2) AKTUELLES — Page Hero (Archive Title)
   ============================================================= */
.blog .entry-title,
.archive .ast-archive-description h1,
.ast-archive .ast-archive-description .ast-archive-title {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem) !important;
  line-height: 1.08 !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: var(--color-text) !important;
  margin: 0 0 1rem 0 !important;
}

/* =============================================================
   C.3) AKTUELLES — Pagination
   ============================================================= */
.ast-pagination,
.pagination,
.nav-links,
.ast-archive .nav-links,
.page-numbers-wrapper {
  max-width: var(--content-max);
  margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
  padding: 2rem var(--content-pad) !important;
  border-top: 1px solid var(--color-border);
  display: flex !important;
  justify-content: center;
  gap: 0.5rem;
  align-items: center;
}
.ast-pagination a,
.ast-pagination span,
.pagination a,
.pagination span,
.nav-links a,
.nav-links span,
.page-numbers {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 1rem !important;
  border-radius: var(--r-sm);
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all var(--t-fast) var(--ease);
  border: 1.5px solid var(--color-border-2) !important;
  background: var(--color-bg) !important;
  color: var(--color-text) !important;
}
.ast-pagination a:hover,
.pagination a:hover,
.nav-links a:hover,
.page-numbers:not(.current):not(.dots):hover {
  border-color: var(--color-brand) !important;
  color: var(--color-brand) !important;
  background: var(--color-bg-subtle) !important;
}
.ast-pagination .current,
.page-numbers.current,
.pagination .current {
  background: var(--color-accent) !important;
  color: var(--color-on-dark) !important;
  border-color: var(--color-accent) !important;
  box-shadow: var(--s-red);
}
.ast-pagination .dots,
.page-numbers.dots {
  border: none !important;
  background: none !important;
}
.nav-previous a,
.nav-next a,
.ast-pagination .prev,
.ast-pagination .next {
  font-weight: 700 !important;
  padding: 0 1.25rem !important;
}

/* =============================================================
   7. IMAGE-BOX — (Section-Header-Variante mit Titel + Beschreibung)
   z.B. "WAS WIRKLICH WICHTIG IST", "HEIMAT IM SINN"
   ============================================================= */
.elementor-widget-image-box .elementor-image-box-wrapper {
  border-radius: var(--r);
  overflow: hidden;
  transition: transform var(--t), box-shadow var(--t);
}
/* Nur wenn die Image-Box ein Bild hat: als Card */
.elementor-widget-image-box:has(.elementor-image-box-img img) .elementor-image-box-wrapper {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  box-shadow: var(--s-1);
}
.elementor-widget-image-box .elementor-image-box-img { overflow: hidden; }
.elementor-widget-image-box .elementor-image-box-img img {
  width: 100% !important;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 700ms var(--ease-out);
}
.elementor-widget-image-box:hover .elementor-image-box-img img { transform: scale(1.05); }

/* --- Image-Box-Title als Section-Headline (keine Kachel) --- */
.elementor-image-box-title {
  font-family: var(--font-sans) !important;
  font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: var(--color-text);
  margin: 0 0 0.75rem 0 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}
.elementor-image-box-description {
  font-size: 1rem !important;
  line-height: 1.65 !important;
  color: var(--color-text-2) !important;
  margin: 0 !important;
}

/* =============================================================
   8. FORMS — einheitlich
   ============================================================= */
.srfm-input-common,
input[type=text], input[type=email], input[type=tel],
input[type=number], input[type=url], input[type=password], textarea, select {
  font-family: var(--font-sans) !important;
  border-radius: var(--r-sm) !important;
  border: 1.5px solid var(--color-border-2) !important;
  padding: 0.85rem 1rem !important;
  font-size: 1rem !important;
  color: var(--color-text) !important;
  background: var(--color-bg) !important;
  transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease) !important;
  box-shadow: none !important;
  min-height: 48px;
}
.srfm-input-common:focus,
input[type=text]:focus, input[type=email]:focus, textarea:focus, select:focus {
  border-color: var(--color-brand) !important;
  box-shadow: 0 0 0 3px rgba(8,124,187,.15) !important;
  outline: none !important;
}
label { color: var(--color-text) !important; font-weight: 600 !important; font-size: 0.875rem !important; }

/* =============================================================
   9. MOTION — Scroll-Reveal
   ============================================================= */
[data-dkm-reveal]:not(.is-revealed) {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
  will-change: opacity, transform;
}
[data-dkm-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  [data-dkm-reveal] { opacity: 1 !important; transform: none !important; }
}

/* =============================================================
   10. FOOTER — Dark-Theme
   ============================================================= */
.site-footer, footer#colophon {
  background: var(--color-bg-darker) !important;
  color: var(--color-on-dark-3) !important;
  padding: clamp(1.5rem, 3vw, 2.5rem) 0 !important;
  border-top: 3px solid var(--color-accent);
}
.site-footer *, footer#colophon * {
  color: var(--color-on-dark-3) !important;
  font-size: 0.9rem;
}
.site-footer a:hover, footer#colophon a:hover {
  color: var(--color-accent) !important;
}

/* =============================================================
   11. PAGE-SPECIFIC: Impressum + Datenschutz
   ============================================================= */
body.page-id-2173 h2.elementor-heading-title.elementor-size-default,
body.page-id-2168 h2.elementor-heading-title.elementor-size-default {
  background: linear-gradient(135deg, var(--color-brand-dark) 0%, var(--color-brand) 100%);
  color: var(--color-on-dark) !important;
  padding: clamp(2rem, 5vw, 3.5rem) 1.5rem !important;
  border-radius: var(--r-lg);
  margin: 0 0 2.5rem 0 !important;
  text-align: center;
  font-size: clamp(1.75rem, 3.5vw, 2.75rem) !important;
  box-shadow: var(--s-2);
}
body.page-id-2173 .entry-content,
body.page-id-2168 .entry-content,
body.page-id-2173 main .elementor-section > .elementor-container,
body.page-id-2168 main .elementor-section > .elementor-container {
  max-width: 880px !important;
  margin-inline: auto !important;
}
body.page-id-2173 main h2:not(.elementor-heading-title),
body.page-id-2168 main h2:not(.elementor-heading-title) {
  margin-top: 2.5rem !important;
  padding-top: 1.25rem !important;
  border-top: 2px solid var(--color-border) !important;
  color: var(--color-text) !important;
  font-size: clamp(1.25rem, 2vw, 1.5rem) !important;
}
body.page-id-2173 main p,
body.page-id-2168 main p {
  line-height: 1.8;
  color: var(--color-text-2);
}

/* =============================================================
   12. PAGE-SPECIFIC: Kontakt
   ============================================================= */
html body.page-id-1864 #page,
html body.page-id-1864 #content,
html body.page-id-1864 #primary,
html body.page-id-1864 main#main,
html body.page-id-1864 .ast-container,
html body.page-id-1864 .site-content,
html body.page-id-1864 .entry-content {
  min-height: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* =============================================================
   13. PAGE-SPECIFIC: Jetzt-spenden (Hero gedeckelt)
   ============================================================= */
body.page-id-2068 .elementor-top-section:first-of-type,
body.page-id-2068 .elementor-section:first-of-type {
  min-height: min(100vh, 720px) !important;
  max-height: 900px !important;
}

/* =============================================================
   14. PAGE-SPECIFIC: Wahlanalyse — Site-Header Integration
   ============================================================= */
body.page-id-2380 .site-header,
body.page-id-2380 .main-header-bar {
  position: relative !important;
  z-index: 1000;
  background: var(--color-brand-dark) !important;
  box-shadow: var(--s-2) !important;
}
body.page-id-2380 .site-header a:not(.elementor-button),
body.page-id-2380 .site-header .site-title a,
body.page-id-2380 .site-header .site-description,
body.page-id-2380 .site-header .menu-item a {
  color: var(--color-on-dark) !important;
}
body.page-id-2380 main .elementor-section:first-of-type {
  padding-top: var(--section-py-sm) !important;
}

/* =============================================================
   15. SECTION-PADDING & CONTAINER — konsistent
   ============================================================= */
@media (min-width: 768px) {
  body:not(.page-id-2380):not(.page-id-2068) .elementor-section.elementor-top-section {
    padding-block: var(--section-py) !important;
  }
}

/* Hero-Section (erste Section) immer volle Hoehe */
body:not(.page-id-2068):not(.page-id-2380) main > .elementor > .elementor-section:first-of-type,
body:not(.page-id-2068):not(.page-id-2380) main > .elementor > .elementor-top-section:first-of-type {
  min-height: min(72vh, 720px);
  position: relative;
}

/* =============================================================
   16. UTILITIES + FIXES
   ============================================================= */
/* Mobile Touch-Targets */
@media (max-width: 767px) {
  .elementor-button,
  .srfm-button,
  .menu-item > a,
  .ast-menu-toggle { min-height: 44px; display: inline-flex !important; align-items: center; }
  .ast-article-post .post-content { padding: 1rem 1.25rem 1.25rem !important; }
  body.page-id-1861 .hfe-infocard { padding: 1.5rem 1.25rem !important; }
  .e-con.e-child:has(> .elementor-widget-image):has(> .elementor-widget-hfe-infocard) > .elementor-widget-hfe-infocard {
    padding: 1.25rem !important;
  }
}

/* Bilder baseline */
.elementor-widget-image img,
.wp-post-image {
  max-width: 100%;
  height: auto;
}

/* About Werte-Grid equal-height (ohne Column-Breite zu zerstoeren) */
body.page-id-1861 .elementor-container,
body.page-id-1861 .elementor-row,
body.page-id-1861 .e-con-inner { align-items: stretch !important; }
body.page-id-1861 .elementor-column .elementor-widget-wrap,
body.page-id-1861 .elementor-column .elementor-column-wrap,
body.page-id-1861 .e-con.e-child .elementor-widget-hfe-infocard {
  height: 100%;
  align-content: stretch;
}
body.page-id-1861 .elementor-widget-hfe-infocard > .elementor-widget-container {
  height: 100%;
}

/* Links generell */
a { color: var(--color-brand-dark); transition: color var(--t-fast); }
a:hover { color: var(--color-accent); }

/* Smooth scrollbar (Webkit) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--color-bg-muted); }
::-webkit-scrollbar-thumb { background: var(--color-border-2); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-text-muted); }

/* =============================================================
   SINGLE POST — Editorial Layout (modern, kein 90s-Style)
   ============================================================= */
body.single-post {
  background: var(--color-bg-subtle) !important;
}
body.single-post .site-content,
body.single-post #content,
body.single-post .ast-container {
  background: transparent !important;
}
/* Astra-Default-Container aufloesen */
body.single-post .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.single-post #primary,
body.single-post .ast-single-post .ast-article-inner,
body.single-post .ast-single-post article {
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;
  margin: 0 !important;
  max-width: 100% !important;
}

/* Hero-Header (Titel + Datum) */
body.single-post .entry-header.ast-header-without-markup,
body.single-post .entry-header {
  max-width: var(--hero-max);
  margin: 0 auto !important;
  padding: clamp(3rem, 6vw, 5rem) var(--content-pad) 2rem !important;
  text-align: center !important;
  background: none !important;
  border: none !important;
}
body.single-post .entry-header h1.entry-title {
  font-family: var(--font-sans) !important;
  font-size: clamp(2rem, 4.5vw, 3.25rem) !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: var(--color-text) !important;
  margin: 0.5rem 0 1.25rem 0 !important;
}
body.single-post .entry-header .entry-meta {
  color: var(--color-accent) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
  gap: 0.6rem;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}
body.single-post .entry-header .entry-meta::before {
  content: "";
  width: 32px;
  height: 2px;
  background: var(--color-accent);
  border-radius: 2px;
}
body.single-post .entry-header .posted-on,
body.single-post .entry-header .posted-on * {
  color: var(--color-accent) !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
}

/* Featured Image als Hero-Image */
body.single-post .entry-header .post-thumb-img-content,
body.single-post .post-thumb-img-content.post-thumb {
  max-width: var(--media-max);
  margin: 1.5rem auto 0 !important;
  padding: 0 var(--content-pad);
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}
body.single-post .entry-header .post-thumb-img-content img,
body.single-post .wp-post-image {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  border-radius: var(--r-lg) !important;
  display: block;
  box-shadow: var(--s-3);
  aspect-ratio: auto !important;
  object-fit: cover;
  max-height: 600px;
}

/* Content-Container: Lesbare Breite */
body.single-post .entry-content,
body.single-post .entry-content.clear {
  max-width: var(--prose-max) !important;
  margin: 3rem auto 0 !important;
  padding: clamp(2rem, 4vw, 3.5rem) var(--content-pad) clamp(3rem, 5vw, 4rem) !important;
  background: var(--color-bg) !important;
  border-radius: var(--r-lg);
  box-shadow: var(--s-2);
  font-size: 1.075rem !important;
  line-height: 1.8 !important;
  color: var(--color-text-2) !important;
}
body.single-post .entry-content p {
  margin: 0 0 1.5rem 0 !important;
  line-height: 1.8 !important;
  color: var(--color-text-2) !important;
}
body.single-post .entry-content > p:first-child,
body.single-post .entry-content > p:first-of-type {
  font-size: 1.2rem !important;
  line-height: 1.65 !important;
  color: var(--color-text) !important;
  font-weight: 500;
  margin-bottom: 2rem !important;
}
body.single-post .entry-content h2,
body.single-post .entry-content h3,
body.single-post .entry-content h4 {
  margin: 2.5rem 0 1rem 0 !important;
  color: var(--color-text) !important;
  letter-spacing: -0.015em;
}
body.single-post .entry-content h2 { font-size: 1.75rem !important; }
body.single-post .entry-content h3 { font-size: 1.375rem !important; }
body.single-post .entry-content ul,
body.single-post .entry-content ol {
  padding-left: 1.5rem;
  margin: 0 0 1.5rem 0 !important;
}
body.single-post .entry-content li {
  line-height: 1.7;
  margin-bottom: 0.5rem;
  color: var(--color-text-2);
}
body.single-post .entry-content a,
body.single-post .entry-content a:link,
body.single-post .entry-content a:visited {
  color: var(--color-brand) !important;
  text-decoration: underline;
  text-decoration-color: rgba(8,124,187,.3);
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}
body.single-post .entry-content a:hover {
  color: var(--color-accent) !important;
  text-decoration-color: var(--color-accent);
}
body.single-post .entry-content blockquote {
  border-left: 4px solid var(--color-accent);
  padding: 0.75rem 0 0.75rem 2rem !important;
  margin: 2.5rem 0 !important;
  font-style: italic;
  color: var(--color-text) !important;
  font-size: 1.2rem !important;
  line-height: 1.6 !important;
  background: var(--color-bg-subtle);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
body.single-post .entry-content img {
  border-radius: var(--r);
  margin: 2rem 0 !important;
  max-width: 100%;
  height: auto;
  box-shadow: var(--s-2);
}
body.single-post .entry-content strong { color: var(--color-text); }

/* Post-Navigation / Footer-Bereich des Artikels */
body.single-post .post-navigation,
body.single-post .nav-links,
body.single-post .ast-single-related-posts {
  max-width: var(--hero-max);
  margin: 3rem auto !important;
  padding: 0 var(--content-pad) 4rem;
}

/* "Zurueck" Link unten (wird via JS injiziert) */
.dkm-back-link {
  max-width: var(--hero-max);
  margin: 2rem auto 4rem;
  padding: 0 var(--content-pad);
}
.dkm-back-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.85rem;
  color: var(--color-text-2);
  text-decoration: none !important;
  padding: 0.75rem 1.25rem;
  border: 1.5px solid var(--color-border-2);
  border-radius: var(--r-sm);
  transition: all var(--t-fast) var(--ease);
  background: var(--color-bg);
}
.dkm-back-link a:hover {
  color: var(--color-accent);
  border-color: var(--color-accent);
}
.dkm-back-link a::before { content: "←"; transition: transform var(--t-fast); }
.dkm-back-link a:hover::before { transform: translateX(-4px); }

/* Astra 2-column layout aufloesen: single-post als single-column */
body.single-post.ast-two-container #primary,
body.single-post.ast-two-container .site-content {
  display: block !important;
  width: 100% !important;
}
body.single-post .ast-single-post-header { display: none !important; }

/* =============================================================
   AKTUELLES — Container breiter (Bildschirm ausnutzen)
   ============================================================= */
body.blog .ast-container,
body.archive .ast-container,
body.ast-archive .ast-container,
body.post-type-archive .ast-container {
  max-width: min(1400px, 92vw) !important;
}

/* =============================================================

/* =============================================================
   17. BLOG — Aktuelles (Listing) + Archiv  [v2 — nutzt Astra-Grid]
   ============================================================= */

/* Sidebar ausblenden auf Blog-Listing/Archiv */
body.blog #secondary,
body.archive #secondary,
body.search #secondary {
  display: none !important;
}

/* #primary auf volle Breite (Astra-Layout nutzt ast-two-container) */
body.blog #primary,
body.archive #primary,
body.search #primary {
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  float: none !important;
}

body.blog .ast-container,
body.archive .ast-container {
  max-width: 1320px !important;
}

/* Header der Archiv-Seite */
body.blog .ast-archive-description,
body.archive .ast-archive-description {
  max-width: 1280px;
  margin: 2rem auto 1.5rem;
  padding: 0 1rem;
  background: transparent !important;
}
body.blog .ast-archive-description h1,
body.archive .ast-archive-description h1 {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  color: var(--dkm-blau-900);
  letter-spacing: -0.01em;
  margin: 0 0 0.4em;
}

/* Astra's built-in .ast-row ist schon flex mit 3 Spalten bei ast-grid-3 */
body.blog .site-main .ast-row,
body.archive .site-main .ast-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 1.75rem;
  margin: 0 !important;
  padding: 0 1rem;
}

/* Jede Astra-Column — wir überschreiben die kaputten Astra-widths */
body.blog .ast-article-post,
body.archive .ast-article-post,
body.blog article.ast-article-post.ast-full-width,
body.archive article.ast-article-post.ast-full-width {
  flex: 1 1 calc(33.333% - 1.2rem) !important;
  max-width: calc(33.333% - 1.2rem) !important;
  width: auto !important;
  min-width: 260px;
  background: var(--dkm-weiss);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 30, 60, 0.1);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex !important;
  flex-direction: column;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--dkm-grau-200);
}
@media (max-width: 900px) {
  body.blog article.ast-article-post,
  body.archive article.ast-article-post,
  body.blog article.ast-article-post.ast-full-width,
  body.archive article.ast-article-post.ast-full-width {
    flex: 1 1 calc(50% - 1rem) !important;
    max-width: calc(50% - 1rem) !important;
  }
}
@media (max-width: 600px) {
  body.blog article.ast-article-post,
  body.archive article.ast-article-post,
  body.blog article.ast-article-post.ast-full-width,
  body.archive article.ast-article-post.ast-full-width {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
}

body.blog article.ast-article-post:hover,
body.archive article.ast-article-post:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 30, 60, 0.18);
}

/* Inner wrapper neutralisieren (kein Padding, kein BG) */
body.blog article.ast-article-post .ast-article-inner,
body.archive article.ast-article-post .ast-article-inner,
body.blog article.ast-article-post .post-content,
body.archive article.ast-article-post .post-content {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Featured-Image in Karte: 16:9, voll sichtbar */
body.blog article.ast-article-post .ast-blog-featured-section,
body.archive article.ast-article-post .ast-blog-featured-section,
body.blog article.ast-article-post .post-thumb-img-content,
body.archive article.ast-article-post .post-thumb-img-content {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  display: block !important;
  overflow: hidden;
}
body.blog article.ast-article-post .post-thumb-img-content a,
body.archive article.ast-article-post .post-thumb-img-content a {
  display: block;
  width: 100%;
}
body.blog article.ast-article-post img.wp-post-image,
body.archive article.ast-article-post img.wp-post-image,
body.blog article.ast-article-post .post-thumb img,
body.archive article.ast-article-post .post-thumb img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: cover !important;
  display: block !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  transition: transform 0.35s ease;
}
body.blog article.ast-article-post:hover img.wp-post-image,
body.archive article.ast-article-post:hover img.wp-post-image {
  transform: scale(1.04);
}

/* Titel */
body.blog article.ast-article-post .entry-title,
body.archive article.ast-article-post .entry-title,
body.blog article.ast-article-post h2.entry-title,
body.archive article.ast-article-post h2.entry-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.2rem !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  margin: 0 1.25rem 0.5em !important;
  padding: 1.1rem 0 0 !important;
  color: var(--dkm-blau-900) !important;
  letter-spacing: -0.005em !important;
}
body.blog article.ast-article-post .entry-title a,
body.archive article.ast-article-post .entry-title a {
  color: var(--dkm-blau-900) !important;
  text-decoration: none !important;
  background: none !important;
}
body.blog article.ast-article-post .entry-title a:hover,
body.archive article.ast-article-post .entry-title a:hover {
  color: var(--dkm-rot-600) !important;
}

/* Meta (Datum) — linear nebeneinander statt gestapelt */
body.blog article.ast-article-post .entry-meta,
body.archive article.ast-article-post .entry-meta {
  margin: 0 1.25rem 0.35rem !important;
  padding: 0 !important;
  display: block !important;
  text-align: left !important;
  background: none !important;
}
body.blog article.ast-article-post .entry-meta .ast-date-meta,
body.archive article.ast-article-post .entry-meta .ast-date-meta {
  display: inline !important;
  margin: 0 !important;
}
body.blog article.ast-article-post .entry-meta .ast-date-meta .posted-on,
body.archive article.ast-article-post .entry-meta .ast-date-meta .posted-on,
body.blog article.ast-article-post .entry-meta time,
body.archive article.ast-article-post .entry-meta time {
  display: inline !important;
  background: transparent !important;
  color: var(--dkm-grau-600) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0 !important;
  border-radius: 0 !important;
  text-align: left !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  flex-direction: row !important;
}
body.blog article.ast-article-post .entry-meta .ast-date-meta *,
body.archive article.ast-article-post .entry-meta .ast-date-meta * {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font-size: inherit !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
}
body.blog article.ast-article-post .entry-meta .date-month,
body.blog article.ast-article-post .entry-meta .date-day,
body.blog article.ast-article-post .entry-meta .date-year,
body.archive article.ast-article-post .entry-meta .date-month,
body.archive article.ast-article-post .entry-meta .date-day,
body.archive article.ast-article-post .entry-meta .date-year {
  margin-right: 0.25em !important;
}
body.blog article.ast-article-post .entry-meta a,
body.archive article.ast-article-post .entry-meta a {
  color: var(--dkm-grau-600) !important;
  text-decoration: none !important;
}

/* Excerpt */
body.blog article.ast-article-post .ast-excerpt-container,
body.archive article.ast-article-post .ast-excerpt-container,
body.blog article.ast-article-post .entry-content,
body.archive article.ast-article-post .entry-content {
  flex: 1;
  margin: 0 1.25rem 0.75rem !important;
  padding: 0 !important;
  background: transparent !important;
}
body.blog article.ast-article-post .ast-excerpt-container p,
body.archive article.ast-article-post .ast-excerpt-container p,
body.blog article.ast-article-post .entry-content p,
body.archive article.ast-article-post .entry-content p {
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  color: var(--dkm-grau-800) !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 4 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
}

/* Read-More Button */
body.blog article.ast-article-post .read-more,
body.archive article.ast-article-post .read-more {
  padding: 0 1.25rem 1.25rem !important;
  margin: 0 !important;
}
body.blog article.ast-article-post .read-more a,
body.archive article.ast-article-post .read-more a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: var(--dkm-blau-800) !important;
  color: var(--dkm-weiss) !important;
  padding: 0.55em 1.1em !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease;
  border: none !important;
}
body.blog article.ast-article-post .read-more a::after,
body.archive article.ast-article-post .read-more a::after {
  content: "→";
  font-size: 1.1em;
  transition: transform 0.2s ease;
}
body.blog article.ast-article-post .read-more a:hover,
body.archive article.ast-article-post .read-more a:hover {
  background: var(--dkm-rot-600) !important;
  transform: translateX(2px);
}
body.blog article.ast-article-post .read-more a:hover::after,
body.archive article.ast-article-post .read-more a:hover::after {
  transform: translateX(3px);
}

/* Pagination */
body.blog .site-main .ast-pagination,
body.blog .site-main .pagination,
body.archive .site-main .pagination,
body.archive .site-main .ast-pagination {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  margin: 2rem 0 3rem !important;
  padding: 0 1rem;
  flex-basis: 100%;
}
.pagination .page-numbers,
.ast-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.75rem;
  border-radius: 8px;
  background: var(--dkm-weiss);
  color: var(--dkm-blau-800);
  font-weight: 600;
  border: 1px solid var(--dkm-grau-200);
  text-decoration: none;
  transition: all 0.2s ease;
}
.pagination .page-numbers:hover,
.pagination .page-numbers.current,
.ast-pagination .page-numbers:hover,
.ast-pagination .page-numbers.current {
  background: var(--dkm-blau-800);
  color: var(--dkm-weiss);
  border-color: var(--dkm-blau-800);
}

/* =============================================================
   18. BLOG — Single Post
   ============================================================= */

body.single-post #secondary {
  display: none !important;
}
body.single-post #primary {
  width: 100% !important;
  max-width: 960px !important;
  margin: 0 auto !important;
  float: none !important;
}

body.single-post .ast-container {
  max-width: 1100px !important;
}

/* Article-Wrapper */
body.single-post article.ast-article-single {
  background: var(--dkm-weiss) !important;
  border-radius: 18px;
  box-shadow: 0 4px 20px rgba(0, 30, 60, 0.08);
  padding: 0 !important;
  overflow: hidden;
  margin: 1.5rem 0 2rem;
}

/* Featured-Image als Hero */
body.single-post .ast-single-post-featured-section {
  padding: 0 !important;
  margin: 0 0 1.5rem 0 !important;
}
body.single-post .ast-single-post-featured-section img {
  width: 100% !important;
  max-height: 460px;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

/* Header */
body.single-post .entry-header {
  padding: 0 clamp(1.25rem, 4vw, 2.5rem) !important;
  margin: 0 0 1.25rem !important;
  text-align: left !important;
  border: none !important;
  background: transparent !important;
}
body.single-post .entry-header .entry-title,
body.single-post h1.entry-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: clamp(1.65rem, 3.2vw, 2.3rem) !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: var(--dkm-blau-900) !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 0.5em !important;
}
body.single-post .entry-header .entry-meta,
body.single-post .entry-header .entry-meta * {
  font-size: 0.85rem !important;
  color: var(--dkm-grau-600) !important;
  letter-spacing: 0.05em;
}
body.single-post .entry-header .entry-meta a {
  color: var(--dkm-blau-700) !important;
  text-decoration: none !important;
}

/* Content-Typografie */
body.single-post .entry-content {
  padding: 0 clamp(1.25rem, 4vw, 2.5rem) clamp(1.5rem, 4vw, 2.5rem) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.1rem !important;
  line-height: 1.75 !important;
  color: var(--dkm-grau-800) !important;
  max-width: 720px;
  margin: 0 auto !important;
  background: transparent !important;
}
body.single-post .entry-content p {
  margin: 0 0 1.1em !important;
  color: var(--dkm-grau-800) !important;
}
body.single-post .entry-content > p:first-of-type:not(:empty) {
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--dkm-blau-900);
  font-weight: 500;
}
body.single-post .entry-content h2 {
  font-size: 1.55rem !important;
  font-weight: 700 !important;
  margin: 1.6em 0 0.4em !important;
  color: var(--dkm-blau-900) !important;
  line-height: 1.25 !important;
}
body.single-post .entry-content h3 {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  margin: 1.4em 0 0.4em !important;
  color: var(--dkm-blau-800) !important;
}
body.single-post .entry-content ul,
body.single-post .entry-content ol {
  margin: 0 0 1.2em 1.25em !important;
  padding: 0 !important;
}
body.single-post .entry-content li {
  margin-bottom: 0.4em !important;
  line-height: 1.6 !important;
}
body.single-post .entry-content blockquote {
  border-left: 4px solid var(--dkm-blau-800);
  background: var(--dkm-blau-50);
  padding: 1rem 1.25rem;
  margin: 1.5em 0;
  border-radius: 0 12px 12px 0;
  font-style: italic;
  color: var(--dkm-grau-800);
}
body.single-post .entry-content a {
  color: var(--dkm-blau-700) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.single-post .entry-content a:hover {
  color: var(--dkm-rot-600) !important;
}
body.single-post .entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 1em 0;
}
/* Emoji-IMGs (FB-CDN / s.w.org) klein inline */
body.single-post .entry-content img[src*="fbcdn.net/images/emoji"],
body.single-post .entry-content img[src*="s.w.org/images/core/emoji"] {
  display: inline !important;
  width: 1.1em !important;
  height: 1.1em !important;
  margin: 0 0.1em !important;
  vertical-align: text-bottom !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  aspect-ratio: unset !important;
}

/* Weiss-auf-Weiss Fix */
body.single-post .entry-content .wp-block-uagb-container,
body.single-post .entry-content .uagb-container-inner-blocks-wrap {
  background: transparent !important;
  padding: 0 !important;
  color: var(--dkm-grau-800) !important;
}
body.single-post .entry-content .wp-block-uagb-container p,
body.single-post .entry-content .wp-block-uagb-container li {
  color: var(--dkm-grau-800) !important;
}
body.single-post .entry-content .wp-block-uagb-container h1,
body.single-post .entry-content .wp-block-uagb-container h2,
body.single-post .entry-content .wp-block-uagb-container h3,
body.single-post .entry-content .wp-block-uagb-container h4 {
  color: var(--dkm-blau-900) !important;
}
body.single-post .entry-content .wp-block-group:not(.has-background):not(.has-text-color),
body.single-post .entry-content .wp-block-cover:not(.has-background):not(.has-text-color) {
  color: var(--dkm-grau-800) !important;
}

/* Related Posts */
.ast-single-related-posts-container {
  background: transparent !important;
  padding: 2rem 0 !important;
  margin-top: 1.5rem !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ast-related-posts-title-section .ast-related-posts-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.65rem !important;
  font-weight: 800 !important;
  color: var(--dkm-blau-900) !important;
  margin-bottom: 1.25rem !important;
}
.ast-related-posts-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.25rem !important;
}
@media (max-width: 900px) {
  .ast-related-posts-wrapper { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .ast-related-posts-wrapper { grid-template-columns: 1fr !important; }
}
.ast-related-post {
  background: var(--dkm-weiss) !important;
  border-radius: 14px !important;
  overflow: hidden;
  box-shadow: 0 3px 12px rgba(0, 30, 60, 0.08) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  border: 1px solid var(--dkm-grau-200);
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
}
.ast-related-post:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(0, 30, 60, 0.15) !important;
}
.ast-related-post-featured-section img {
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  width: 100% !important;
  max-height: none !important;
  border-radius: 0 !important;
}
.ast-related-post-content {
  padding: 1rem 1.15rem 1.15rem !important;
}
.ast-related-post-title,
.ast-related-post-title a {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  margin: 0 0 0.4em !important;
}
.ast-related-post-title a:hover { color: var(--dkm-rot-600) !important; }
.ast-related-post-content .entry-meta,
.ast-related-post-content .entry-meta * {
  color: var(--dkm-grau-600) !important;
  font-size: 0.75rem !important;
  background: transparent !important;
}
.ast-related-post-excerpt {
  font-size: 0.88rem !important;
  color: var(--dkm-grau-700) !important;
  line-height: 1.5 !important;
}
.ast-related-post-cta.read-more .ast-related-post-link {
  display: inline-flex;
  margin-top: 0.7rem;
  background: var(--dkm-blau-800) !important;
  color: var(--dkm-weiss) !important;
  padding: 0.45em 0.95em !important;
  border-radius: 999px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.ast-related-post-cta.read-more .ast-related-post-link:hover {
  background: var(--dkm-rot-600) !important;
}

/* Post-Navigation (Prev/Next) */
body.single-post .post-navigation {
  max-width: 960px !important;
  margin: 1.5rem auto 3rem !important;
  padding: 0 1rem;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
body.single-post .post-navigation .nav-previous,
body.single-post .post-navigation .nav-next {
  background: var(--dkm-weiss);
  padding: 1.25rem 1.5rem;
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0, 30, 60, 0.08);
  border: 1px solid var(--dkm-grau-200);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body.single-post .post-navigation .nav-next { text-align: right; }
body.single-post .post-navigation a {
  text-decoration: none !important;
  color: var(--dkm-blau-900);
  display: block;
}
body.single-post .post-navigation .nav-previous:hover,
body.single-post .post-navigation .nav-next:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 30, 60, 0.12);
}
body.single-post .post-navigation .nav-subtitle {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--dkm-grau-500);
  margin-bottom: 0.35em;
  font-weight: 600;
}
body.single-post .post-navigation .nav-title {
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--dkm-blau-900);
  line-height: 1.3;
}
@media (max-width: 600px) {
  body.single-post .post-navigation { grid-template-columns: 1fr; }
  body.single-post .post-navigation .nav-next { text-align: left; }
}

/* =============================================================
   19. BLOG — Kategorie-Chip
   ============================================================= */
body.blog article.ast-article-post .cat-links,
body.archive article.ast-article-post .cat-links,
body.single-post .entry-header .cat-links {
  margin: 1.1rem 1.25rem 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
body.blog article.ast-article-post .cat-links a,
body.archive article.ast-article-post .cat-links a,
body.single-post .entry-header .cat-links a {
  display: inline-block !important;
  background: var(--dkm-blau-100) !important;
  color: var(--dkm-blau-800) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25em 0.7em !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  margin-right: 0.3em;
  border: none !important;
}
body.blog article.ast-article-post .cat-links a:hover,
body.archive article.ast-article-post .cat-links a:hover,
body.single-post .entry-header .cat-links a:hover {
  background: var(--dkm-blau-800) !important;
  color: var(--dkm-weiss) !important;
}

/* =============================================================
   20. BLOG — RELATED POSTS v2 (feste Spezifität)
   ============================================================= */

/* 3-Col-Grid hart erzwingen */
.ast-single-related-posts-container .ast-related-posts-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
}
@media (max-width: 900px) {
  .ast-single-related-posts-container .ast-related-posts-wrapper {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 640px) {
  .ast-single-related-posts-container .ast-related-posts-wrapper {
    grid-template-columns: 1fr !important;
  }
}

/* Karten auf 100% (overrideastra-default width) */
.ast-single-related-posts-container .ast-related-post,
.ast-single-related-posts-container .ast-related-posts-wrapper .ast-related-post {
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--dkm-weiss) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 14px rgba(0, 30, 60, 0.08) !important;
  border: 1px solid var(--dkm-grau-200) !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* Featured-Image — 16:9 durchsetzen */
.ast-single-related-posts-container .ast-related-post-featured-section {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  display: block !important;
  overflow: hidden;
  aspect-ratio: 16 / 9 !important;
}
.ast-single-related-posts-container .ast-related-post-featured-section img,
.ast-single-related-posts-container .post-thumb-img-content img,
.ast-related-post .wp-post-image {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  display: block !important;
  max-height: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ast-single-related-posts-container .ast-related-post-featured-section a {
  display: block;
  width: 100%;
  height: 100%;
}

/* Inhalts-Wrapper */
.ast-single-related-posts-container .ast-related-post-content {
  padding: 1rem 1.1rem 1.1rem !important;
  background: transparent !important;
}
.ast-single-related-posts-container .ast-related-post-title,
.ast-single-related-posts-container .ast-related-post-title a,
.ast-single-related-posts-container .entry-header .ast-related-post-title,
.ast-single-related-posts-container .entry-header .ast-related-post-title a {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  margin: 0 0 0.4em !important;
  text-decoration: none !important;
}
.ast-single-related-posts-container .ast-related-post-title a:hover {
  color: var(--dkm-rot-600) !important;
}

/* Meta — komplett inline, keine vertikale Stapelung */
.ast-single-related-posts-container .ast-related-post .entry-meta,
.ast-single-related-posts-container .ast-related-post .entry-meta * {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  color: var(--dkm-grau-600) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.4 !important;
  border-radius: 0 !important;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  flex-direction: row !important;
  position: static !important;
  float: none !important;
  flex-basis: auto !important;
}
.ast-single-related-posts-container .ast-related-post .entry-meta {
  margin: 0 0 0.5em !important;
  display: block !important;
}
.ast-single-related-posts-container .ast-related-post .entry-meta .date-month::after,
.ast-single-related-posts-container .ast-related-post .entry-meta .date-day::after {
  content: " ";
}

/* Category-Chip — nicht mehr vertikal! */
.ast-single-related-posts-container .ast-related-post .cat-links,
.ast-single-related-posts-container .ast-related-post .cat-links * {
  display: inline !important;
  writing-mode: horizontal-tb !important;
  flex-direction: row !important;
  width: auto !important;
  min-width: 0 !important;
  line-height: 1.4 !important;
}
.ast-single-related-posts-container .ast-related-post .cat-links {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}
.ast-single-related-posts-container .ast-related-post .cat-links a {
  display: inline-block !important;
  background: var(--dkm-blau-100) !important;
  color: var(--dkm-blau-800) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2em 0.6em !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  margin-left: 0.4em;
  border: none !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

/* Excerpt */
.ast-single-related-posts-container .ast-related-post-excerpt {
  font-size: 0.88rem !important;
  color: var(--dkm-grau-700) !important;
  line-height: 1.5 !important;
  margin: 0 0 0.7em !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Read-More Button */
.ast-single-related-posts-container .ast-related-post-cta.read-more .ast-related-post-link {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4em;
  margin-top: 0 !important;
  background: var(--dkm-blau-800) !important;
  color: var(--dkm-weiss) !important;
  padding: 0.45em 0.95em !important;
  border-radius: 999px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border: none !important;
}
.ast-single-related-posts-container .ast-related-post-cta.read-more .ast-related-post-link::after {
  content: "→";
  transition: transform 0.2s ease;
}
.ast-single-related-posts-container .ast-related-post-cta.read-more .ast-related-post-link:hover {
  background: var(--dkm-rot-600) !important;
}
.ast-single-related-posts-container .ast-related-post-cta.read-more .ast-related-post-link:hover::after {
  transform: translateX(3px);
}

/* Hover-Lift */
.ast-single-related-posts-container .ast-related-post:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(0, 30, 60, 0.15) !important;
}

/* =============================================================
   21. Text-Selektion — DKM-Farbschema statt System-Blau
   ============================================================= */
::selection {
  background: var(--dkm-blau-100) !important;
  color: var(--dkm-blau-900) !important;
}
::-moz-selection {
  background: var(--dkm-blau-100) !important;
  color: var(--dkm-blau-900) !important;
}

/* =============================================================
   22. HEIMAT IM SINN — Text-Spalten als Karten + Überschrift
   ============================================================= */
/* Text-Column soll sich wie eine weiße Karte anfühlen neben dem Bild */
body.home .elementor-element-6c84982,
body.home .elementor-element-cd58ab0 {
  background: rgba(255, 255, 255, 0.6);
  border-radius: 20px;
  padding: 2rem 2rem !important;
  backdrop-filter: blur(6px);
}

/* Infocard-Title prominenter */
body.home .elementor-element-661afa5 .hfe-infocard-title,
body.home .elementor-element-46cbb83 .hfe-infocard-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  letter-spacing: -0.01em !important;
  color: var(--dkm-blau-900) !important;
  margin-bottom: 0.5em !important;
}

/* Infocard-Description: Lesbarer Ton */
body.home .elementor-element-661afa5 .hfe-infocard-text,
body.home .elementor-element-46cbb83 .hfe-infocard-text,
body.home .elementor-element-661afa5 .hfe-infocard-text p,
body.home .elementor-element-46cbb83 .hfe-infocard-text p {
  color: var(--dkm-grau-800) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
}

/* =============================================================
   23. GLOBAL WIDGET HARMONIZATION
   ============================================================= */

/* --- Counter --- */
.elementor-counter {
  text-align: center;
}
.elementor-counter .elementor-counter-number-wrapper,
.elementor-counter .elementor-counter-number-prefix,
.elementor-counter .elementor-counter-number,
.elementor-counter .elementor-counter-number-suffix {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(2.5rem, 5vw, 3.75rem) !important;
  line-height: 1.1 !important;
  color: var(--dkm-blau-800) !important;
  letter-spacing: -0.02em !important;
}
.elementor-counter .elementor-counter-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--dkm-grau-700) !important;
  margin-top: 0.5em;
}

/* --- Progress-Bar (Spendenziel) --- */
.elementor-progress-wrapper {
  background: var(--dkm-grau-100) !important;
  border-radius: 999px !important;
  overflow: hidden;
  height: 20px !important;
  box-shadow: inset 0 2px 4px rgba(0, 30, 60, 0.08);
}
.elementor-progress-bar {
  background: linear-gradient(90deg, var(--dkm-blau-800), var(--dkm-rot-600)) !important;
  border-radius: 999px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center;
  padding: 0 0.75rem !important;
}
.elementor-progress-bar .elementor-progress-text,
.elementor-progress-bar .elementor-progress-percentage {
  color: var(--dkm-weiss) !important;
  font-weight: 700 !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.03em;
}
.elementor-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  margin-bottom: 0.5em !important;
}

/* --- Testimonial (Elementor-Default) --- */
.elementor-testimonial,
.elementor-testimonial-wrapper {
  background: var(--dkm-weiss);
  border-radius: 18px;
  padding: 1.75rem !important;
  box-shadow: 0 4px 18px rgba(0, 30, 60, 0.1);
  border: 1px solid var(--dkm-grau-200);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  position: relative;
}
.elementor-testimonial-wrapper::before {
  content: "\201C";  /* " opening quote */
  position: absolute;
  top: 0.5rem;
  left: 1rem;
  font-size: 4rem;
  line-height: 1;
  color: var(--dkm-blau-100);
  font-family: Georgia, serif;
  z-index: 0;
  pointer-events: none;
}
.elementor-testimonial:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 30, 60, 0.15);
}
.elementor-testimonial-content {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-style: italic !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  color: var(--dkm-grau-800) !important;
  margin-bottom: 1rem !important;
  position: relative;
  z-index: 1;
}
.elementor-testimonial-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-top: 1px solid var(--dkm-grau-200);
  padding-top: 0.85rem;
}
.elementor-testimonial-image img {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  object-fit: cover;
}
.elementor-testimonial-name {
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  font-size: 0.95rem !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
}
.elementor-testimonial-job {
  color: var(--dkm-grau-600) !important;
  font-size: 0.82rem !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
}

/* --- Nested Accordion (Elementor neu) --- */
.e-n-accordion,
.elementor-widget-nested-accordion .e-n-accordion {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.e-n-accordion details,
.e-n-accordion .e-n-accordion-item {
  background: var(--dkm-weiss) !important;
  border-radius: 14px !important;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 30, 60, 0.06) !important;
  border: 1px solid var(--dkm-grau-200) !important;
  padding: 0 !important;
}
.e-n-accordion details[open],
.e-n-accordion .e-n-accordion-item[open] {
  box-shadow: 0 6px 20px rgba(0, 30, 60, 0.12) !important;
  border-color: var(--dkm-blau-300) !important;
}
.e-n-accordion summary,
.e-n-accordion .e-n-accordion-item-title {
  background: transparent !important;
  padding: 1rem 1.25rem !important;
  cursor: pointer;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  color: var(--dkm-blau-900) !important;
  display: flex !important;
  align-items: center;
  gap: 0.75rem;
  list-style: none;
  transition: background 0.2s ease;
}
.e-n-accordion summary:hover,
.e-n-accordion .e-n-accordion-item-title:hover {
  background: var(--dkm-blau-50) !important;
}
.e-n-accordion summary::marker,
.e-n-accordion summary::-webkit-details-marker {
  display: none !important;
}
.e-n-accordion .e-n-accordion-item-title-icon,
.e-n-accordion .e-n-accordion-item-title-icon * {
  color: var(--dkm-blau-700) !important;
  fill: var(--dkm-blau-700) !important;
  width: 1em;
  height: 1em;
}
.e-n-accordion-item-content,
.e-n-accordion details > *:not(summary) {
  padding: 0 1.25rem 1.25rem !important;
  color: var(--dkm-grau-800) !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
  border-top: 1px solid var(--dkm-grau-200);
  padding-top: 0.85rem !important;
}

/* --- Divider (Elementor) - dezent rot als Akzent --- */
.elementor-divider .elementor-divider-separator {
  border-top-color: var(--dkm-rot-600) !important;
  border-top-width: 3px !important;
  width: 60px;
  border-radius: 2px;
}
.elementor-divider {
  text-align: center;
}

/* --- SureForms --- */
.srfm-form .srfm-input-common,
.srfm-form input[type="text"],
.srfm-form input[type="email"],
.srfm-form input[type="tel"],
.srfm-form input[type="url"],
.srfm-form textarea,
.srfm-form select {
  border-radius: 10px !important;
  border: 1px solid var(--dkm-grau-300) !important;
  padding: 0.75rem 1rem !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1rem !important;
  color: var(--dkm-grau-800) !important;
  background: var(--dkm-weiss) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
}
.srfm-form .srfm-input-common:focus,
.srfm-form input:focus,
.srfm-form textarea:focus,
.srfm-form select:focus {
  border-color: var(--dkm-blau-700) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(8, 124, 187, 0.15) !important;
}
.srfm-form textarea {
  min-height: 140px;
  resize: vertical;
}
.srfm-form label,
.srfm-form .srfm-label {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 600 !important;
  color: var(--dkm-blau-900) !important;
  margin-bottom: 0.4rem !important;
  font-size: 0.9rem !important;
}
.srfm-form .srfm-button,
.srfm-form button[type="submit"],
.srfm-form input[type="submit"] {
  background: var(--dkm-rot-600) !important;
  color: var(--dkm-weiss) !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.85rem 1.8rem !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  box-shadow: 0 4px 14px rgba(190, 21, 34, 0.25);
}
.srfm-form .srfm-button:hover,
.srfm-form button[type="submit"]:hover,
.srfm-form input[type="submit"]:hover {
  background: var(--dkm-rot-700) !important;
  transform: translateY(-1px);
}

/* --- Elementor Icon-List --- */
.elementor-icon-list-items .elementor-icon-list-item {
  padding: 0.35rem 0 !important;
}
.elementor-icon-list-items .elementor-icon-list-text {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  color: var(--dkm-grau-800) !important;
  font-size: 1rem !important;
}
.elementor-icon-list-items .elementor-icon-list-icon,
.elementor-icon-list-items .elementor-icon-list-icon svg {
  color: var(--dkm-blau-700) !important;
  fill: var(--dkm-blau-700) !important;
}

/* =============================================================
   24. JETZT SPENDEN — Icon-Box Kacheln Konsistenz
   ============================================================= */
body.page-id-2068 .elementor-widget-icon-box .elementor-icon-box-wrapper {
  background: var(--dkm-weiss);
  border-radius: 18px;
  padding: 1.75rem 1.5rem !important;
  box-shadow: 0 4px 16px rgba(0, 30, 60, 0.08);
  border: 1px solid var(--dkm-grau-200);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  height: 100%;
}
body.page-id-2068 .elementor-widget-icon-box:hover .elementor-icon-box-wrapper {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 30, 60, 0.16);
}
body.page-id-2068 .elementor-widget-icon-box .elementor-icon-box-icon {
  margin-bottom: 1rem !important;
}
body.page-id-2068 .elementor-widget-icon-box .elementor-icon {
  color: var(--dkm-rot-600) !important;
  fill: var(--dkm-rot-600) !important;
  background: var(--dkm-rot-100);
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  font-size: 1.75rem;
}
body.page-id-2068 .elementor-widget-icon-box .elementor-icon-box-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  font-size: 1.15rem !important;
  margin-bottom: 0.5em !important;
}
body.page-id-2068 .elementor-widget-icon-box .elementor-icon-box-description {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  color: var(--dkm-grau-800) !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
}

/* Counter-Wrapper auf Jetzt-spenden als Karten */
body.page-id-2068 .elementor-widget-counter {
  background: linear-gradient(135deg, var(--dkm-blau-800), var(--dkm-blau-700));
  border-radius: 18px;
  padding: 1.5rem 1rem;
  box-shadow: 0 6px 20px rgba(0, 30, 60, 0.2);
}
body.page-id-2068 .elementor-widget-counter .elementor-counter-number-wrapper,
body.page-id-2068 .elementor-widget-counter .elementor-counter-number {
  color: var(--dkm-weiss) !important;
}
body.page-id-2068 .elementor-widget-counter .elementor-counter-title {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* =============================================================
   25. START — Counter-Dreiergruppe "Wahlkreis in Zahlen"
   ============================================================= */
body.home .elementor-element-2235e3e3,
body.home .elementor-element-3580fb40,
body.home .elementor-element-771942cd {
  background: var(--dkm-weiss);
  border-radius: 18px;
  padding: 1.5rem 1rem !important;
  box-shadow: 0 4px 16px rgba(0, 30, 60, 0.08);
  border: 1px solid var(--dkm-grau-200);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.home .elementor-element-2235e3e3:hover,
body.home .elementor-element-3580fb40:hover,
body.home .elementor-element-771942cd:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 30, 60, 0.15);
}

/* =============================================================
   26. KONTAKT — infocards + Adresse
   ============================================================= */
body.page-id-1864 .elementor-widget-hfe-infocard {
  background: var(--dkm-weiss);
  border-radius: 16px;
  padding: 1.25rem !important;
  box-shadow: 0 3px 14px rgba(0, 30, 60, 0.08);
  border: 1px solid var(--dkm-grau-200);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.page-id-1864 .elementor-widget-hfe-infocard:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0, 30, 60, 0.14);
}
body.page-id-1864 .elementor-widget-hfe-infocard .hfe-infocard-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  color: var(--dkm-blau-900) !important;
  font-size: 1.1rem !important;
}

/* =============================================================
   27. AfD-CI REFRESH — korrigierte Tokens (überschreibt alte)
   ============================================================= */
:root {
  /* Brand Blue (AfD CI) — präzise Werte */
  --dkm-blau-900: #003F6E;
  --dkm-blau-800: #0058A0;
  --dkm-blau-700: #009EE0;   /* AfD Haupt-CI-Blau */
  --dkm-blau-500: #38B5E8;
  --dkm-blau-300: #A7DBEE;
  --dkm-blau-100: #E0F4FB;
  --dkm-blau-50:  #F2FAFD;

  /* Accent Red — AfD-Pfeil-Rot */
  --dkm-rot-700: #B30510;
  --dkm-rot-600: #E30613;    /* AfD Haupt-Rot */
  --dkm-rot-500: #EC3544;
  --dkm-rot-100: #FCE1E3;
}

/* =============================================================
   28. VERBINDENDE DESIGN-ELEMENTE — CI-Takt über alle Sektionen
   ============================================================= */

/* Wiederkehrender Akzent: dünner roter Strich mit schrägem Versatz
   — erscheint am Anfang jeder großen Sektion */
.elementor-top-section + .elementor-top-section::before,
body main .elementor-top-section::before {
  content: "";
  display: block;
  width: 72px;
  height: 4px;
  background: linear-gradient(90deg, var(--dkm-rot-600) 0%, var(--dkm-rot-500) 100%);
  margin: 0 auto -4px auto;
  border-radius: 2px;
  position: relative;
  z-index: 2;
  transform: skewX(-18deg);
  opacity: 0.9;
}

/* Diagonal-Cut unten bei Haupt-Sektionen (durchgängige Optik) */
body.home section.elementor-section[data-id]:not(:first-child):not(:last-child)::after,
body.page-id-1861 section.elementor-section[data-id]:not(:first-child):not(:last-child)::after {
  content: none; /* optional, nur on-demand aktivieren */
}

/* Sanfter Wechsel zwischen hell und leicht-blauem Hintergrund:
   abwechselnde Sektionen bekommen subtilen Tint */
body.home .elementor-element-735d843,   /* WAS WIRKLICH WICHTIG IST */
body.home .elementor-element-58707b0 {   /* AKTUELLES */
  background: linear-gradient(180deg, var(--dkm-weiss) 0%, var(--dkm-blau-50) 100%) !important;
}

/* =============================================================
   29. AfD-PFEIL-ORNAMENT (dezenter Akzent)
   ============================================================= */
/* Wiederkehrendes Pfeil-Motiv als dekorativer Punkt bei Section-Titeln */
body.home h2.elementor-heading-title::after,
body .elementor-image-box-title::after,
.ast-related-posts-title-section .ast-related-posts-title::after {
  /* zu aggressiv als global after — deaktiviert, nur manuell */
  content: none;
}

/* H2-Sektions-Titel bekommen einen dezenten Pfeil-Marker davor */
body.home .elementor-widget-heading > .elementor-widget-container > h2.elementor-heading-title::before {
  content: "▸";
  display: inline-block;
  color: var(--dkm-rot-600);
  margin-right: 0.4em;
  transform: skewX(-10deg);
  font-weight: 900;
  font-size: 0.9em;
}

/* =============================================================
   30. HERO — CI-konformer (helleres Blau-Overlay)
   ============================================================= */
/* Überlege: der Hero hatte ein overlay_color "globals/colors?id=secondary"
   Das wird durch das Elementor-Kit auf den Astra secondary color gemappt.
   Wir setzen es explicit hier: */
.elementor-1860 .elementor-element.elementor-element-429593c::before {
  background-color: var(--dkm-blau-800) !important;
}

/* =============================================================
   31. SEKTIONEN verbinden mit durchgehendem linken Farbstreifen
   ============================================================= */
body.home > .hfeed > .site-content,
body.home .site-content > .ast-container,
body.home main#main {
  position: relative;
}
/* Dünner vertikaler CI-Streifen links — subtil, nur auf Desktop */
@media (min-width: 1100px) {
  body.home main#main::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(
      180deg,
      var(--dkm-blau-700) 0%,
      var(--dkm-blau-700) 40%,
      var(--dkm-rot-600) 40%,
      var(--dkm-rot-600) 50%,
      var(--dkm-blau-700) 50%,
      var(--dkm-blau-700) 100%
    );
    opacity: 0.7;
    pointer-events: none;
    z-index: 1;
  }
}

/* =============================================================
   32. BUTTONS — globaler DKM-Pill-Style ALS DEFAULT
   ============================================================= */
/* Alle Elementor-Buttons bekommen standardmäßig den Pill-Look
   mit AfD-Blau Primary und AfD-Rot als Action-CTA (sichtbar) */
.elementor-button,
.elementor-widget-button .elementor-button {
  border-radius: 999px !important;
  padding: 0.8em 1.8em !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  transition: all 0.25s ease !important;
  text-transform: none !important;
  box-shadow: 0 4px 14px rgba(0, 63, 110, 0.18);
}
.elementor-button:hover,
.elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 63, 110, 0.25);
}

/* =============================================================
   33. FOOTER — professioneller 4-Spalter
   ============================================================= */
/* Astra-Default-Footer bleibt unten als Copyright, wir fügen via PHP-Hook
   eine eigene Footer-Top-Area ein. Diese bekommt Styling: */
.dkm-footer-pro {
  background: linear-gradient(180deg, var(--dkm-blau-900) 0%, #002a4d 100%);
  color: rgba(255, 255, 255, 0.85);
  padding: 4rem 1.5rem 2rem;
  position: relative;
  overflow: hidden;
}
.dkm-footer-pro::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--dkm-blau-700) 0%, var(--dkm-blau-700) 85%, var(--dkm-rot-600) 85%, var(--dkm-rot-600) 100%);
}
.dkm-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 3rem;
}
@media (max-width: 900px) {
  .dkm-footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 600px) {
  .dkm-footer-inner { grid-template-columns: 1fr; gap: 1.75rem; }
}
.dkm-footer-col h3 {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--dkm-weiss);
  margin: 0 0 1.2rem;
  padding-bottom: 0.6rem;
  border-bottom: 2px solid rgba(255, 255, 255, 0.15);
  position: relative;
}
.dkm-footer-col h3::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 36px;
  height: 2px;
  background: var(--dkm-rot-600);
}
.dkm-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.dkm-footer-col li {
  margin: 0 0 0.6em;
}
.dkm-footer-col a {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.2s ease, padding-left 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
}
.dkm-footer-col a:hover {
  color: var(--dkm-weiss);
  padding-left: 0.35em;
}
.dkm-footer-col a::before {
  content: "›";
  color: var(--dkm-blau-500);
  font-weight: 700;
  transition: color 0.2s;
}
.dkm-footer-col a:hover::before {
  color: var(--dkm-rot-500);
}
.dkm-footer-brand-line {
  font-size: 0.95rem;
  line-height: 1.55;
  margin-top: 0.5rem;
}
.dkm-footer-logo {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
  font-size: 1.3rem;
  color: var(--dkm-weiss);
  margin: 0 0 0.6em;
  letter-spacing: -0.01em;
}
.dkm-footer-logo-sub {
  font-size: 0.82rem;
  color: var(--dkm-blau-300);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 600;
}
.dkm-footer-contact p {
  margin: 0 0 0.5em;
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.82);
}
.dkm-footer-social {
  display: flex;
  gap: 0.65rem;
  margin-top: 0.5rem;
}
.dkm-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  color: var(--dkm-weiss);
  transition: background 0.2s ease, transform 0.2s ease;
  padding: 0 !important;
}
.dkm-footer-social a::before { content: none !important; }
.dkm-footer-social a:hover {
  background: var(--dkm-rot-600);
  transform: translateY(-2px);
  padding-left: 0 !important;
}
.dkm-footer-social svg,
.dkm-footer-social i {
  width: 18px;
  height: 18px;
  fill: currentColor;
  font-size: 16px;
}

/* Astra-Default-Footer (Copyright) jetzt als "below" stripe */
.site-footer .site-below-footer-wrap {
  background: #001a33 !important;
  padding: 1rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.ast-footer-copyright,
.ast-footer-copyright p {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 0.82rem !important;
  text-align: center !important;
  margin: 0 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
}

/* =============================================================
   34. BLOG-LISTING — Excerpt + Read-More sichtbar machen
   ============================================================= */
/* Die Excerpt/Read-More-Regeln zuvor hatten weiße Farbe über VAR — hier neu setzen */
body.blog article.ast-article-post .ast-excerpt-container,
body.archive article.ast-article-post .ast-excerpt-container,
body.blog article.ast-article-post .ast-excerpt-container p,
body.archive article.ast-article-post .ast-excerpt-container p,
body.blog article.ast-article-post .entry-content p,
body.archive article.ast-article-post .entry-content p {
  color: var(--dkm-grau-800) !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  background: none !important;
}
body.blog article.ast-article-post .read-more,
body.archive article.ast-article-post .read-more {
  margin-top: auto !important;
  padding: 0 1.25rem 1.25rem !important;
  border-top: none !important;
  display: block !important;
}
body.blog article.ast-article-post .read-more a,
body.archive article.ast-article-post .read-more a {
  color: var(--dkm-weiss) !important;
  background: var(--dkm-blau-700) !important;
}
body.blog article.ast-article-post .read-more a:hover,
body.archive article.ast-article-post .read-more a:hover {
  background: var(--dkm-rot-600) !important;
  color: var(--dkm-weiss) !important;
}

/* =============================================================
   35. KORREKTUREN v1.1.1 — Kontrast + Sichtbarkeit
   ============================================================= */

/* --- Header-Tagline "Kandidat für die Landtagwahl 2026" --- */
/* Im Astra-Header-Builder ist das .site-description */
.ast-hfb-header .site-description,
.main-header-bar .site-description,
.ast-site-identity .site-description,
.site-header-primary-section-left .site-description {
  color: var(--dkm-weiss) !important;
  opacity: 0.85 !important;
  font-weight: 500 !important;
  font-size: 0.88rem !important;
  letter-spacing: 0.02em;
}
.ast-hfb-header .site-title,
.main-header-bar .site-title,
.site-header-primary-section-left .site-title,
.site-header-primary-section-left .site-title a {
  color: var(--dkm-weiss) !important;
  font-weight: 700 !important;
}
/* Header auf Hero durchsichtig halten — transparent ok, aber Kontrast prüfen */

/* --- Hero-Widget d31b343 (Frank Müller Titel+Subtitle) --- */
.elementor-1860 .elementor-element-d31b343 .elementor-image-box-title,
.elementor-1860 .elementor-element-d31b343 h1,
.elementor-1860 .elementor-element-d31b343 h2,
.elementor-1860 .elementor-element-d31b343 h3 {
  color: var(--dkm-weiss) !important;
  text-shadow: 0 2px 12px rgba(0, 20, 40, 0.55);
}
.elementor-1860 .elementor-element-d31b343 .elementor-image-box-description,
.elementor-1860 .elementor-element-d31b343 p {
  color: var(--dkm-weiss) !important;
  opacity: 0.95;
  text-shadow: 0 2px 10px rgba(0, 20, 40, 0.55);
}

/* --- "WAS WIRKLICH WICHTIG IST" Section-Titel --- */
/* Widget e81376a hat im JSON title_color #ebf5ff (fast weiß) — das ist auf hellem BG unlesbar */
.elementor-1860 .elementor-element-e81376a .elementor-image-box-title,
.elementor-1860 .elementor-element-e81376a h1,
.elementor-1860 .elementor-element-e81376a h2,
.elementor-1860 .elementor-element-e81376a h3,
.elementor-1860 .elementor-element-e81376a h4 {
  color: var(--dkm-blau-900) !important;
  text-shadow: none !important;
}
.elementor-1860 .elementor-element-e81376a .elementor-image-box-description,
.elementor-1860 .elementor-element-e81376a p {
  color: var(--dkm-grau-800) !important;
  text-shadow: none !important;
}

/* --- Section-Titel "Mein Wahlkreis in Zahlen" + "Wahlkreis 20 – Mecklenburgische Seenplatte III" --- */
.elementor-1860 .elementor-element-69fc65b2 .elementor-heading-title,
.elementor-1860 .elementor-element-697f8351 .elementor-heading-title {
  color: var(--dkm-weiss) !important;
  text-shadow: 0 2px 10px rgba(0, 20, 40, 0.5);
}

/* --- AKTUELLES / hfe-basic-posts (Blog-Teaser auf Start) --- */
.elementor-1860 .hfe-post-card,
.elementor-1860 .hfe-post-card * {
  color: var(--dkm-grau-800);
}
.elementor-1860 .hfe-post-card h1,
.elementor-1860 .hfe-post-card h2,
.elementor-1860 .hfe-post-card h3,
.elementor-1860 .hfe-post-card .hfe-post-card-title,
.elementor-1860 .hfe-post-card .hfe-post-card-title a {
  color: var(--dkm-blau-900) !important;
}
.elementor-1860 .hfe-post-card p,
.elementor-1860 .hfe-post-card .hfe-post-card-excerpt {
  color: var(--dkm-grau-800) !important;
}
.elementor-1860 .hfe-post-card .hfe-post-date,
.elementor-1860 .hfe-post-card .hfe-post-meta * {
  color: var(--dkm-grau-600) !important;
}

/* --- Counter-Kacheln NICHT mehr als weiße Boxen (zurück zu natürlich) --- */
body.home .elementor-element-2235e3e3,
body.home .elementor-element-3580fb40,
body.home .elementor-element-771942cd {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
body.home .elementor-element-2235e3e3:hover,
body.home .elementor-element-3580fb40:hover,
body.home .elementor-element-771942cd:hover {
  transform: none !important;
  box-shadow: none !important;
}
/* Counter-Zahl + Label gut sichtbar auf dem Bild-Hintergrund: weiß mit Shadow */
body.home .elementor-element-2235e3e3 .elementor-counter-number-wrapper,
body.home .elementor-element-3580fb40 .elementor-counter-number-wrapper,
body.home .elementor-element-771942cd .elementor-counter-number-wrapper,
body.home .elementor-element-2235e3e3 .elementor-counter-number,
body.home .elementor-element-3580fb40 .elementor-counter-number,
body.home .elementor-element-771942cd .elementor-counter-number,
body.home .elementor-element-2235e3e3 .elementor-counter-number-prefix,
body.home .elementor-element-2235e3e3 .elementor-counter-number-suffix {
  color: var(--dkm-weiss) !important;
  text-shadow: 0 3px 16px rgba(0, 20, 40, 0.7);
  font-size: clamp(2.75rem, 5.5vw, 4rem) !important;
  font-weight: 800 !important;
}
body.home .elementor-element-2235e3e3 .elementor-counter-title,
body.home .elementor-element-3580fb40 .elementor-counter-title,
body.home .elementor-element-771942cd .elementor-counter-title {
  color: var(--dkm-weiss) !important;
  text-shadow: 0 2px 10px rgba(0, 20, 40, 0.7);
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em;
}

/* --- Progress-Bar: Mindestbreite, damit er auch bei 0% sichtbar ist --- */
.elementor-progress-wrapper {
  min-height: 20px;
}
.elementor-progress-bar {
  min-width: 60px !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  padding: 0 0.85rem !important;
}

/* --- Pfeil-Ornament vor h2 war zu aggressiv — deaktivieren --- */
body.home .elementor-widget-heading > .elementor-widget-container > h2.elementor-heading-title::before {
  content: none !important;
}

/* --- Vertikaler CI-Streifen links war zu prominent, subtiler --- */
@media (min-width: 1100px) {
  body.home main#main::before {
    opacity: 0.3 !important;
    width: 3px !important;
  }
}

/* --- HEIMAT IM SINN Text-Spalten wieder transparent (halbtransparentes weiß zu subtil) --- */
body.home .elementor-element-6c84982,
body.home .elementor-element-cd58ab0 {
  background: transparent !important;
  backdrop-filter: none !important;
  padding: 1rem !important;
}

/* =============================================================
   36. AKTUELLES auf Start — Custom Recent-Posts Cards
   ============================================================= */
.dkm-recent-posts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 1rem;
}
@media (max-width: 900px) {
  .dkm-recent-posts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .dkm-recent-posts { grid-template-columns: 1fr; gap: 1.25rem; }
}

.dkm-rp-card {
  background: var(--dkm-weiss);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 30, 60, 0.1);
  border: 1px solid var(--dkm-grau-200);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.dkm-rp-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 30, 60, 0.18);
}

.dkm-rp-img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.dkm-rp-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  transition: transform 0.35s ease;
  border-radius: 0 !important;
}
.dkm-rp-card:hover .dkm-rp-img img {
  transform: scale(1.04);
}

.dkm-rp-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  flex: 1;
}
.dkm-rp-cat {
  display: inline-block;
  background: var(--dkm-blau-100);
  color: var(--dkm-blau-800) !important;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25em 0.7em;
  border-radius: 999px;
  text-decoration: none !important;
  align-self: flex-start;
  line-height: 1.4;
}
.dkm-rp-cat:hover {
  background: var(--dkm-blau-800);
  color: var(--dkm-weiss) !important;
}
.dkm-rp-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-size: 1.2rem !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  margin: 0 !important;
  color: var(--dkm-blau-900) !important;
}
.dkm-rp-title a {
  color: var(--dkm-blau-900) !important;
  text-decoration: none !important;
}
.dkm-rp-title a:hover {
  color: var(--dkm-rot-600) !important;
}
.dkm-rp-meta {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--dkm-grau-600);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.dkm-rp-excerpt {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--dkm-grau-800);
  margin: 0;
  flex: 1;
}
.dkm-rp-more {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4em;
  align-self: flex-start;
  margin-top: auto;
  padding: 0.55em 1.1em !important;
  background: var(--dkm-blau-700) !important;
  color: var(--dkm-weiss) !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
}
.dkm-rp-more:hover {
  background: var(--dkm-rot-600) !important;
  color: var(--dkm-weiss) !important;
}

/* =============================================================
   37. HOTFIX v1.1.3 — dkm-dark darf Recent-Posts-Karten NICHT weiß machen
   ============================================================= */

/* Meine Recent-Posts-Karten sind WEIß (Card-BG) und haben dunklen Text —
   sie sind selbst immer "hell", egal in welchem Parent sie sitzen. */
.dkm-dark .dkm-rp-card,
.dkm-dark .dkm-rp-card h3,
.dkm-dark .dkm-rp-card p,
.dkm-dark .dkm-rp-card div,
.dkm-dark .dkm-rp-card span,
.dkm-dark .dkm-rp-card a:not(.dkm-rp-more) {
  color: inherit;
}

.dkm-dark .dkm-rp-title,
.dkm-dark .dkm-rp-title a,
.dkm-rp-card .dkm-rp-title,
.dkm-rp-card .dkm-rp-title a {
  color: var(--dkm-blau-900) !important;
}
.dkm-dark .dkm-rp-title a:hover,
.dkm-rp-card .dkm-rp-title a:hover {
  color: var(--dkm-rot-600) !important;
}

.dkm-dark .dkm-rp-meta,
.dkm-rp-card .dkm-rp-meta {
  color: var(--dkm-grau-600) !important;
}

.dkm-dark .dkm-rp-excerpt,
.dkm-rp-card .dkm-rp-excerpt {
  color: var(--dkm-grau-800) !important;
}

.dkm-dark .dkm-rp-cat,
.dkm-rp-card .dkm-rp-cat {
  color: var(--dkm-blau-800) !important;
  background: var(--dkm-blau-100) !important;
}
.dkm-dark .dkm-rp-cat:hover,
.dkm-rp-card .dkm-rp-cat:hover {
  color: var(--dkm-weiss) !important;
  background: var(--dkm-blau-800) !important;
}

.dkm-dark .dkm-rp-more,
.dkm-rp-card .dkm-rp-more {
  color: var(--dkm-weiss) !important;
}

/* Gleicher Override für Blog-Listing-Karten auf /aktuelles/ — sie sind auch
   weiße Karten und dürfen nicht durch dkm-dark weiß-auf-weiß werden */
.dkm-dark body.blog article.ast-article-post .entry-title,
.dkm-dark body.blog article.ast-article-post .entry-title a,
.dkm-dark body.archive article.ast-article-post .entry-title,
.dkm-dark body.archive article.ast-article-post .entry-title a {
  color: var(--dkm-blau-900) !important;
}
.dkm-dark body.blog article.ast-article-post .ast-excerpt-container p,
.dkm-dark body.archive article.ast-article-post .ast-excerpt-container p {
  color: var(--dkm-grau-800) !important;
}

/* =============================================================
   38. HOTFIX v1.1.4 — harte Spezifität für Recent-Posts Text
   ============================================================= */

/* Die .dkm-dark a:not()-Regel hat Specificity 0,3,0,1 — wir kontern
   mit html body + :not()-Ketten für höhere Specificity. */
html body .dkm-recent-posts .dkm-rp-card .dkm-rp-title,
html body .dkm-dark .dkm-rp-card .dkm-rp-title {
  color: var(--dkm-blau-900) !important;
}
html body .dkm-recent-posts .dkm-rp-card .dkm-rp-title a:not(.elementor-button):not(.hfe-menu-btn),
html body .dkm-dark .dkm-rp-card .dkm-rp-title a:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--dkm-blau-900) !important;
  text-decoration: none !important;
}
html body .dkm-recent-posts .dkm-rp-card .dkm-rp-title a:hover,
html body .dkm-dark .dkm-rp-card .dkm-rp-title a:hover {
  color: var(--dkm-rot-600) !important;
}

html body .dkm-recent-posts .dkm-rp-card .dkm-rp-meta,
html body .dkm-dark .dkm-rp-card .dkm-rp-meta {
  color: var(--dkm-grau-600) !important;
}

html body .dkm-recent-posts .dkm-rp-card .dkm-rp-excerpt,
html body .dkm-dark .dkm-rp-card .dkm-rp-excerpt {
  color: var(--dkm-grau-800) !important;
}

html body .dkm-recent-posts .dkm-rp-card .dkm-rp-cat:not(.elementor-button):not(.hfe-menu-btn),
html body .dkm-dark .dkm-rp-card .dkm-rp-cat:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--dkm-blau-800) !important;
  background: var(--dkm-blau-100) !important;
  text-decoration: none !important;
}
html body .dkm-recent-posts .dkm-rp-card .dkm-rp-cat:hover {
  color: var(--dkm-weiss) !important;
  background: var(--dkm-blau-800) !important;
}

html body .dkm-recent-posts .dkm-rp-card .dkm-rp-more:not(.elementor-button):not(.hfe-menu-btn),
html body .dkm-dark .dkm-rp-card .dkm-rp-more:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--dkm-weiss) !important;
  background: var(--dkm-blau-700) !important;
  text-decoration: none !important;
}

/* Gleiches Spiel für Blog-Listing-Karten */
html body.blog article.ast-article-post .entry-title,
html body.archive article.ast-article-post .entry-title,
html body.dkm-dark article.ast-article-post .entry-title {
  color: var(--dkm-blau-900) !important;
}
html body.blog article.ast-article-post .entry-title a:not(.elementor-button):not(.hfe-menu-btn),
html body.archive article.ast-article-post .entry-title a:not(.elementor-button):not(.hfe-menu-btn) {
  color: var(--dkm-blau-900) !important;
  text-decoration: none !important;
}
html body.blog article.ast-article-post .ast-excerpt-container p,
html body.archive article.ast-article-post .ast-excerpt-container p {
  color: var(--dkm-grau-800) !important;
}

/* =============================================================
   39. BUGFIX 2026-04-23 — Frank-Feedback
   HEIMAT-Sektion: weiße Container müssen transparent bleiben
   Testimonial: Text-Farbe auf dunkel (war weiß = unsichtbar)
   ============================================================= */

/* --- Bug 1: HEIMAT IM SINN — weiße Container transparent (Boote/Hafen-BG durchschimmern lassen) --- */
/* Bürgernähe (rechts) + EHRLICHKEIT UND INTEGRITÄT (links) sowie alle Container/Widgets in der Sektion d2b4540 */
body.home .elementor-element-d2b4540,
body.home .elementor-element-d2b4540 .e-con,
body.home .elementor-element-d2b4540 .elementor-widget-wrap,
body.home .elementor-element-d2b4540 .elementor-widget-container,
body.home .elementor-element-d2b4540 .hfe-infocard,
body.home .elementor-element-d2b4540 .hfe-infocard-title-wrap,
body.home .elementor-element-d2b4540 .hfe-infocard-text-wrap,
body.home .elementor-element-6c84982,
body.home .elementor-element-6c84982 .elementor-widget-container,
body.home .elementor-element-6c84982 .hfe-infocard,
body.home .elementor-element-cd58ab0,
body.home .elementor-element-cd58ab0 .elementor-widget-container,
body.home .elementor-element-cd58ab0 .hfe-infocard,
body.home .elementor-element-661afa5,
body.home .elementor-element-661afa5 > .elementor-widget-container,
body.home .elementor-element-661afa5 .hfe-infocard,
body.home .elementor-element-46cbb83,
body.home .elementor-element-46cbb83 > .elementor-widget-container,
body.home .elementor-element-46cbb83 .hfe-infocard {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Elementor-Card-Regel in §14 neutralisieren für die HEIMAT-Sektion
   (die Regel .e-con.e-child:has(>widget-image):has(>widget-hfe-infocard) aus Zeile 365
   darf die Boote-Sektion nicht weiß einfärben) */
body.home .elementor-element-d2b4540 .e-con.e-child,
body.home .elementor-element-3f09503,
body.home .elementor-element-7d95bb6,
body.home .elementor-element-1722c6c {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Text-Kontrast in HEIMAT-Sektion: auf dem Hafen-Bild dunkle Schrift absichern
   (Hintergrund ist dunkel-blau-grau, aber Titel & Text sollen klar lesbar sein;
   Elementor-Inline setzt hier e-global-color-secondary / astglobalcolor3 — belassen) */
/* keine Farbänderung, nur Transparenz */


/* --- Bug 2: Testimonial (Widget ad8c984 auf Home) — Text-Farbe dunkel --- */
/* Elementor-Inline setzt content+name auf #FFFFFF. Auf weißer Box (aus §27 Child-CSS)
   ist das unsichtbar. Child-Regel wird hier mit höherer Spezifität überschrieben. */
body.home .elementor-element-ad8c984 .elementor-testimonial-content,
body.home .elementor-element-ad8c984 .elementor-testimonial-content p,
html body.home .elementor-element.elementor-element-ad8c984 .elementor-testimonial-content {
  color: var(--dkm-grau-900) !important;
}
body.home .elementor-element-ad8c984 .elementor-testimonial-name,
html body.home .elementor-element.elementor-element-ad8c984 .elementor-testimonial-name {
  color: var(--dkm-blau-900) !important;
}
body.home .elementor-element-ad8c984 .elementor-testimonial-job,
body.home .elementor-element-ad8c984 .elementor-testimonial-title,
html body.home .elementor-element.elementor-element-ad8c984 .elementor-testimonial-job {
  color: var(--dkm-grau-600) !important;
}


/* =========================================================================
   §40 Lösungswege-MV — 2026-04-23
   Styles nur für die Seite "loesungswege-mv" (Page-ID 2507)
   Alle Farben via bestehende --dkm-* Vars aus §1 dieser Datei
   ========================================================================= */

/* --- Section scaffolding -------------------------------------------------- */
.lwmv-section { position: relative; }
.lwmv-section-white { background-color: #FFFFFF; }
.lwmv-section-soft { background-color: var(--dkm-blau-50); }

/* Reset Heading-Decor von bestehenden Regeln (Frank mag keine AI-Linien) */
.elementor-element.elementor-widget.elementor-widget-heading .elementor-heading-title { border: 0 !important; }
.lwmv-section .elementor-widget-heading .elementor-heading-title::after,
.lwmv-hero .elementor-widget-heading .elementor-heading-title::after,
.lwmv-cta-final .elementor-widget-heading .elementor-heading-title::after,
.lwmv-pillar .elementor-widget-heading .elementor-heading-title::after { content: none !important; display: none !important; }

/* --- Hero ----------------------------------------------------------------- */
.lwmv-hero { color: #fff; }
.lwmv-hero .elementor-button { box-shadow: 0 10px 24px rgba(190,21,34,0.28); }
.lwmv-hero .elementor-button:hover { box-shadow: 0 14px 32px rgba(190,21,34,0.36); }

/* --- Pillar banner -------------------------------------------------------- */
.lwmv-pillar { background: var(--dkm-blau-800); }
.lwmv-pillar .elementor-heading-title { letter-spacing: 0.2px; }

/* --- Problem/Solution-Karten (Section 2) --------------------------------- */
.lwmv-card {
  background: #fff;
  border-radius: 16px;
  padding: 32px 28px;
  border: 1px solid var(--dkm-grau-200);
  box-shadow: 0 4px 16px rgba(0,64,109,0.06);
  height: 100%;
  box-sizing: border-box;
}
.lwmv-card__title {
  margin: 0 0 12px 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--dkm-blau-900);
}
.lwmv-card--problem { border-top: 4px solid var(--dkm-rot-600); }
.lwmv-card--problem .lwmv-card__title { color: var(--dkm-rot-700); }
.lwmv-card--solution { border-top: 4px solid var(--dkm-blau-700); }
.lwmv-card p { margin: 0; color: var(--dkm-grau-800); font-size: 16px; line-height: 1.6; }

/* --- Compare-Rows (Section 3) -------------------------------------------- */
.lwmv-compare {
  display: grid;
  grid-template-columns: 180px 1fr 1fr;
  gap: 20px;
  background: #fff;
  border: 1px solid var(--dkm-grau-200);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: 0 2px 10px rgba(0,64,109,0.05);
}
.lwmv-compare__cat {
  font-weight: 700;
  color: var(--dkm-blau-900);
  font-size: 17px;
  align-self: center;
}
.lwmv-compare__ideo, .lwmv-compare__real { font-size: 15px; line-height: 1.55; }
.lwmv-compare__ideo { color: var(--dkm-grau-700); }
.lwmv-compare__real { color: var(--dkm-grau-900); }
.lwmv-compare__ideo p, .lwmv-compare__real p { margin: 4px 0 0 0; }
.lwmv-compare__label {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  padding: 3px 10px;
  border-radius: 99px;
}
.lwmv-compare__ideo .lwmv-compare__label { background: var(--dkm-grau-100); color: var(--dkm-grau-700); }
.lwmv-compare__real .lwmv-compare__label { background: var(--dkm-blau-100); color: var(--dkm-blau-800); }

@media (max-width: 768px) {
  .lwmv-compare { grid-template-columns: 1fr; gap: 12px; }
  .lwmv-compare__cat { font-size: 19px; padding-bottom: 6px; border-bottom: 2px solid var(--dkm-blau-100); }
}

/* --- Stufen-Grafik (Section 5 Corona) ------------------------------------ */
.lwmv-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}
.lwmv-step {
  background: #fff;
  border: 1px solid var(--dkm-grau-200);
  border-top: 4px solid var(--dkm-blau-700);
  border-radius: 14px;
  padding: 22px 20px;
  position: relative;
}
.lwmv-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--dkm-blau-700);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 10px;
}
.lwmv-step__head { font-weight: 700; color: var(--dkm-blau-900); font-size: 16px; margin-bottom: 6px; }
.lwmv-step__text { color: var(--dkm-grau-800); font-size: 14px; line-height: 1.5; }

@media (max-width: 900px) {
  .lwmv-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .lwmv-steps { grid-template-columns: 1fr; }
}

/* --- Solution-Block (Section 5 rot-akzentuiert) -------------------------- */
.lwmv-solution-block {
  background: var(--dkm-rot-100);
  border-left: 5px solid var(--dkm-rot-600);
  border-radius: 12px;
  padding: 24px 28px;
  margin-top: 8px;
}
.lwmv-solution-block h3 {
  margin: 0 0 12px 0;
  color: var(--dkm-rot-700);
  font-size: 20px;
  font-weight: 700;
}
.lwmv-solution-block ul { margin: 0; padding-left: 22px; }
.lwmv-solution-block li { color: var(--dkm-grau-900); font-size: 16px; line-height: 1.7; }

/* --- Waage / Scale (Section 7 Energie) ----------------------------------- */
.lwmv-scale {
  background: #fff;
  border: 1px solid var(--dkm-grau-200);
  border-radius: 14px;
  padding: 26px 24px;
  height: 100%;
  box-sizing: border-box;
}
.lwmv-scale h3 {
  margin: 0 0 14px 0;
  font-size: 20px;
  font-weight: 700;
}
.lwmv-scale--con { border-top: 4px solid var(--dkm-grau-500); }
.lwmv-scale--con h3 { color: var(--dkm-grau-700); }
.lwmv-scale--pro { border-top: 4px solid var(--dkm-blau-700); }
.lwmv-scale--pro h3 { color: var(--dkm-blau-900); }
.lwmv-scale ul { margin: 0; padding-left: 20px; }
.lwmv-scale li { color: var(--dkm-grau-800); font-size: 16px; line-height: 1.65; margin-bottom: 6px; }

/* --- MV-Einschub ---------------------------------------------------------- */
.lwmv-mv-insert {
  margin-top: 24px;
  background: var(--dkm-blau-100);
  border-radius: 12px;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.lwmv-mv-insert__badge {
  display: inline-block;
  background: var(--dkm-blau-800);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 99px;
  flex-shrink: 0;
}
.lwmv-mv-insert p { margin: 0; color: var(--dkm-grau-900); font-size: 16px; line-height: 1.6; flex: 1; min-width: 280px; }

/* --- Drei-Ebenen (Section 10 Migration) ---------------------------------- */
.lwmv-rings {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.lwmv-ring {
  background: #fff;
  border-radius: 14px;
  padding: 28px 26px;
  border: 1px solid var(--dkm-grau-200);
  position: relative;
}
.lwmv-ring__label {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #fff;
  padding: 4px 10px;
  border-radius: 99px;
  margin-bottom: 12px;
}
.lwmv-ring--1 .lwmv-ring__label { background: var(--dkm-blau-500); }
.lwmv-ring--2 .lwmv-ring__label { background: var(--dkm-blau-700); }
.lwmv-ring--3 .lwmv-ring__label { background: var(--dkm-blau-900); }
.lwmv-ring h3 { margin: 0 0 10px 0; color: var(--dkm-blau-900); font-size: 19px; font-weight: 700; }
.lwmv-ring p { margin: 0; color: var(--dkm-grau-800); font-size: 15.5px; line-height: 1.6; }

@media (max-width: 900px) { .lwmv-rings { grid-template-columns: 1fr; } }

/* --- Treppen-Grafik (Section 13 Bildung) --------------------------------- */
.lwmv-stairs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: stretch;
}
.lwmv-stair {
  background: #fff;
  border: 1px solid var(--dkm-grau-200);
  border-radius: 14px;
  padding: 28px 26px;
  position: relative;
}
.lwmv-stair__num {
  font-size: 42px;
  font-weight: 800;
  color: var(--dkm-blau-300);
  line-height: 1;
  margin-bottom: 10px;
}
.lwmv-stair--1 { transform: translateY(0); border-top: 4px solid var(--dkm-blau-500); }
.lwmv-stair--2 { transform: translateY(-16px); border-top: 4px solid var(--dkm-blau-700); }
.lwmv-stair--3 { transform: translateY(-32px); border-top: 4px solid var(--dkm-blau-900); }
.lwmv-stair h3 { margin: 0 0 10px 0; color: var(--dkm-blau-900); font-size: 19px; font-weight: 700; }
.lwmv-stair p { margin: 0; color: var(--dkm-grau-800); font-size: 15.5px; line-height: 1.6; }

@media (max-width: 900px) {
  .lwmv-stairs { grid-template-columns: 1fr; }
  .lwmv-stair--1, .lwmv-stair--2, .lwmv-stair--3 { transform: none; }
}

/* --- Ledger (Section 14 Kassensturz) ------------------------------------- */
.lwmv-ledger {
  background: #fff;
  border-radius: 14px;
  padding: 28px 26px;
  border: 1px solid var(--dkm-grau-200);
  height: 100%;
  box-sizing: border-box;
}
.lwmv-ledger h3 {
  margin: 0 0 14px 0;
  font-size: 20px;
  font-weight: 700;
}
.lwmv-ledger--cut { border-top: 4px solid var(--dkm-rot-600); }
.lwmv-ledger--cut h3 { color: var(--dkm-rot-700); }
.lwmv-ledger--invest { border-top: 4px solid var(--dkm-blau-700); }
.lwmv-ledger--invest h3 { color: var(--dkm-blau-900); }
.lwmv-ledger ul { margin: 0; padding-left: 20px; }
.lwmv-ledger li { color: var(--dkm-grau-800); font-size: 16px; line-height: 1.7; }
.lwmv-footnote {
  margin-top: 20px;
  text-align: center;
  color: var(--dkm-rot-700);
  font-size: 15px;
  font-weight: 600;
  padding: 14px 20px;
  background: var(--dkm-rot-100);
  border-radius: 10px;
}

/* --- Abschluss-CTA Buttons ------------------------------------------------ */
.lwmv-cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.lwmv-btn {
  display: inline-block;
  padding: 16px 32px;
  font-weight: 700;
  font-size: 16px;
  border-radius: 10px;
  text-decoration: none;
  letter-spacing: 0.4px;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.lwmv-btn--primary {
  background: var(--dkm-rot-600);
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(190,21,34,0.25);
}
.lwmv-btn--primary:hover {
  background: var(--dkm-rot-700);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(190,21,34,0.35);
  color: #fff !important;
}

/* --- Hide page title (redundant to Elementor setting, aber sicher) ------- */
.page-id-2507 .entry-header,
.page-id-2507 .ast-container .site-main > article > .entry-header { display: none; }

/* --- Icon-Boxes: Hover-Feedback ------------------------------------------ */
.lwmv-section .elementor-widget-icon-box .elementor-icon-box-wrapper { transition: transform 0.2s ease; }
.lwmv-section .elementor-widget-icon-box:hover .elementor-icon-box-wrapper { transform: translateY(-2px); }

/* =========================================================================
   §41 CI-FIX 2026-04-23 — MV-CI-Farben + Schriften + Lesbarkeit
   - Überschreibt §27 (Bundes-AfD-Blau #009EE0 → MV-CI-Blau #087cbb)
   - Bindet Barlow Condensed (Headings) + Lato (Body) ein
   - Behebt weiße Schrift auf hellen Lösungswege-Sektionen
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800&family=Lato:wght@300;400;700;900&display=swap');

:root {
  /* MV-CI Farbraum (aus AfD-MV CI-Guidelines):
     Hauptfarbe #087cbb, Verlauf #00569b → #20a6df */
  --dkm-blau-900: #00569B !important;
  --dkm-blau-800: #0065A8 !important;
  --dkm-blau-700: #087CBB !important;   /* HAUPTFARBE MV-CI */
  --dkm-blau-600: #076EAE !important;
  --dkm-blau-500: #0B87C5 !important;
  --dkm-blau-300: #20A6DF !important;
  --dkm-blau-100: #CEE9F5 !important;
  --dkm-blau-50:  #EBF5FB !important;
  --dkm-primary:  #087CBB !important;
}

/* --- Typografie global ---------------------------------------------------- */
body,
p,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-heading,
.entry-content,
.ast-container {
  font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title,
.entry-title,
.site-title {
  font-family: 'Barlow Condensed', 'Lato', sans-serif !important;
  font-weight: 700;
  letter-spacing: 0.2px;
}

/* --- Lösungswege-MV: Schriftfarben in hellen Sektionen erzwingen --------- */
/* Elementor setzt in globalen Kits oft weiß als Default. Auf hellen
   Sektionen muss die Schrift dunkel sein. Hoch-spezifische Selektoren: */
.page-id-2507 .lwmv-section-white,
.page-id-2507 .lwmv-section-soft,
.page-id-2507 .lwmv-section-white *,
.page-id-2507 .lwmv-section-soft * {
  color: var(--dkm-grau-900) !important;
}

/* Überschriften auf hellen Sektionen: CI-Blau */
.page-id-2507 .lwmv-section-white .elementor-heading-title,
.page-id-2507 .lwmv-section-soft .elementor-heading-title,
.page-id-2507 .lwmv-section-white h1,
.page-id-2507 .lwmv-section-white h2,
.page-id-2507 .lwmv-section-white h3,
.page-id-2507 .lwmv-section-white h4,
.page-id-2507 .lwmv-section-soft h1,
.page-id-2507 .lwmv-section-soft h2,
.page-id-2507 .lwmv-section-soft h3,
.page-id-2507 .lwmv-section-soft h4 {
  color: var(--dkm-blau-900) !important;
}

/* Icon-Box Icons auf hellen Sektionen: CI-Blau */
.page-id-2507 .lwmv-section-white .elementor-icon,
.page-id-2507 .lwmv-section-soft .elementor-icon,
.page-id-2507 .lwmv-section-white .elementor-icon svg,
.page-id-2507 .lwmv-section-soft .elementor-icon svg {
  color: var(--dkm-blau-700) !important;
  fill: var(--dkm-blau-700) !important;
}

/* Fließtext auf hellen Sektionen: dunkelgrau */
.page-id-2507 .lwmv-section-white p,
.page-id-2507 .lwmv-section-soft p,
.page-id-2507 .lwmv-section-white li,
.page-id-2507 .lwmv-section-soft li,
.page-id-2507 .lwmv-section-white .elementor-widget-text-editor,
.page-id-2507 .lwmv-section-soft .elementor-widget-text-editor {
  color: var(--dkm-grau-800) !important;
}

/* --- Hero + Pillar + CTA-final: weiße Schrift AUF blauen Sektionen ------- */
/* Hier MUSS die Schrift weiß sein (Kontrast auf blauem BG) */
.page-id-2507 .lwmv-hero,
.page-id-2507 .lwmv-hero *,
.page-id-2507 .lwmv-pillar,
.page-id-2507 .lwmv-pillar *,
.page-id-2507 .lwmv-cta-final,
.page-id-2507 .lwmv-cta-final * {
  color: #FFFFFF !important;
}

.page-id-2507 .lwmv-hero .elementor-heading-title,
.page-id-2507 .lwmv-pillar .elementor-heading-title,
.page-id-2507 .lwmv-cta-final .elementor-heading-title {
  color: #FFFFFF !important;
}

/* Hero/Pillar/CTA-final: CI-Blau als Hintergrund (mittlerer Ton, nicht zu dunkel) */
.page-id-2507 .lwmv-hero,
.page-id-2507 .lwmv-pillar,
.page-id-2507 .lwmv-cta-final {
  background: var(--dkm-blau-700) !important;   /* #087CBB MV-CI */
}

/* Buttons in Hero/CTA: roter AfD-Akzent, Text IMMER weiß */
.page-id-2507 .lwmv-hero .elementor-button,
.page-id-2507 .lwmv-cta-final .elementor-button,
.page-id-2507 .lwmv-btn--primary {
  background: var(--dkm-rot-600) !important;
  color: #FFFFFF !important;
}

/* --- Korrektur: Compare-Rows Labels, Step-Nummern etc. ------------------- */
.page-id-2507 .lwmv-step__num,
.page-id-2507 .lwmv-mv-insert__badge,
.page-id-2507 .lwmv-ring__label,
.page-id-2507 .lwmv-compare__real .lwmv-compare__label {
  color: #FFFFFF !important;   /* auf farbigem Badge-BG */
}
.page-id-2507 .lwmv-compare__ideo .lwmv-compare__label {
  color: var(--dkm-grau-700) !important;   /* auf grauem Badge-BG */
}

/* --- Karten-Titel: CI-Blau oder Rot (nicht vom globalen Override kassiert) */
.page-id-2507 .lwmv-card__title,
.page-id-2507 .lwmv-compare__cat,
.page-id-2507 .lwmv-step__head,
.page-id-2507 .lwmv-ring h3,
.page-id-2507 .lwmv-stair h3,
.page-id-2507 .lwmv-scale--pro h3,
.page-id-2507 .lwmv-ledger--invest h3 {
  color: var(--dkm-blau-900) !important;
}
.page-id-2507 .lwmv-card--problem .lwmv-card__title,
.page-id-2507 .lwmv-solution-block h3,
.page-id-2507 .lwmv-ledger--cut h3,
.page-id-2507 .lwmv-footnote {
  color: var(--dkm-rot-700) !important;
}
.page-id-2507 .lwmv-scale--con h3 { color: var(--dkm-grau-700) !important; }

/* --- §41 Ende ------------------------------------------------------------- */

/* =========================================================================
   §42 LOESUNGSWEGE LAYOUT+KONTRAST FIX 2026-04-23b
   - Container-Breite: volle Seitenbreite nutzen (bis 1360px)
   - Alle Row-Container: Desktop immer nebeneinander, nicht mehr Stacking
   - Kontrast: dunklere Fließtexte, klarere Überschriften
   ========================================================================= */

/* --- Breitere Content-Container auf Lösungswege-Seite -------------------- */
.page-id-2507 .elementor,
.page-id-2507 .elementor .e-con.e-con-boxed,
.page-id-2507 .elementor .e-con {
  --container-max-width: 1360px;
}

.page-id-2507 .e-con.e-con-boxed,
.page-id-2507 .e-con.e-con-boxed > .e-con-inner {
  max-width: 1360px !important;
}

.page-id-2507 .lwmv-section.e-con-boxed > .e-con-inner {
  max-width: 1360px !important;
  width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/* --- Row-Container: nebeneinander auf Desktop erzwingen ------------------ */
/* Betrifft alle Inner-Row-Container in den Lösungswege-Sektionen */
.page-id-2507 .lwmv-section .e-con.e-flex[data-direction="row"],
.page-id-2507 .lwmv-pillar .e-con.e-flex[data-direction="row"],
.page-id-2507 .lwmv-cta-final .e-con.e-flex[data-direction="row"],
.page-id-2507 .lwmv-hero .e-con.e-flex[data-direction="row"],
/* Fallback-Selector (ältere Elementor-Versionen ohne data-direction): */
.page-id-2507 .lwmv-section > .e-con-inner > .e-con.e-flex,
.page-id-2507 .lwmv-section .e-con > .e-con-inner > .e-con.e-flex {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
}

/* Jedes direkte Kind einer Row nimmt gleichmäßig Platz ein */
.page-id-2507 .lwmv-section .e-con.e-flex[data-direction="row"] > .e-con,
.page-id-2507 .lwmv-section > .e-con-inner > .e-con.e-flex > .e-con {
  flex: 1 1 0 !important;
  min-width: 260px !important;
  width: auto !important;
  max-width: none !important;
}

/* Nur unter 720px wirklich stacken (Mobile) */
@media (max-width: 720px) {
  .page-id-2507 .lwmv-section .e-con.e-flex[data-direction="row"] {
    flex-direction: column !important;
  }
  .page-id-2507 .lwmv-section .e-con.e-flex[data-direction="row"] > .e-con {
    min-width: 100% !important;
  }
}

/* --- Overall: nie mehr Single-Column wenn 2-4 Kinder existieren --------- */
/* Für den Fall dass Elementor eine column-Hierarchie erzeugt:
   zwinge die direct-children von row-Inner auf display:flex row */
.page-id-2507 .lwmv-section .elementor-element.e-con[data-direction="row"] {
  flex-direction: row !important;
  flex-wrap: wrap !important;
}

/* --- Kontrast-Verstärkung: Fließtext deutlich dunkler -------------------- */
.page-id-2507 .lwmv-section-white p,
.page-id-2507 .lwmv-section-soft p,
.page-id-2507 .lwmv-section-white li,
.page-id-2507 .lwmv-section-soft li,
.page-id-2507 .lwmv-section-white .elementor-widget-text-editor,
.page-id-2507 .lwmv-section-white .elementor-widget-text-editor *,
.page-id-2507 .lwmv-section-soft .elementor-widget-text-editor,
.page-id-2507 .lwmv-section-soft .elementor-widget-text-editor *,
.page-id-2507 .lwmv-card p,
.page-id-2507 .lwmv-compare__ideo,
.page-id-2507 .lwmv-compare__ideo *,
.page-id-2507 .lwmv-compare__real,
.page-id-2507 .lwmv-compare__real *,
.page-id-2507 .lwmv-step__text,
.page-id-2507 .lwmv-scale li,
.page-id-2507 .lwmv-ring p,
.page-id-2507 .lwmv-stair p,
.page-id-2507 .lwmv-ledger li,
.page-id-2507 .lwmv-mv-insert p,
.page-id-2507 .lwmv-solution-block li,
.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-description {
  color: #0D1520 !important;   /* --dkm-grau-900 hart kodiert, max Kontrast */
  font-size: 16.5px !important;
  line-height: 1.65 !important;
}

/* Überschriften auf hellen Sektionen: dunkles CI-Blau, groß genug */
.page-id-2507 .lwmv-section-white .elementor-heading-title,
.page-id-2507 .lwmv-section-soft .elementor-heading-title {
  color: #00406D !important;
  font-weight: 700;
  font-size: clamp(26px, 3.2vw, 40px) !important;
  line-height: 1.2 !important;
}

/* Icon-Box-Titel: kräftiges CI-Blau */
.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-title,
.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-title a {
  color: #00406D !important;
  font-weight: 700 !important;
  font-size: 19px !important;
  margin-bottom: 8px !important;
}

/* Icon-Box Icons: CI-Blau, kräftig sichtbar */
.page-id-2507 .elementor-widget-icon-box .elementor-icon {
  color: #087CBB !important;
  font-size: 44px !important;
}
.page-id-2507 .elementor-widget-icon-box .elementor-icon svg {
  fill: #087CBB !important;
  width: 44px !important;
  height: 44px !important;
}

/* --- Compare-Row: Ideologie-Seite klarer kennzeichnen ------------------- */
.page-id-2507 .lwmv-compare__ideo {
  position: relative;
  padding-left: 16px;
}
.page-id-2507 .lwmv-compare__ideo::before {
  content: "✕";
  position: absolute;
  left: 0;
  top: 24px;
  color: #BE1522;
  font-weight: 900;
  font-size: 14px;
}
.page-id-2507 .lwmv-compare__real {
  position: relative;
  padding-left: 16px;
}
.page-id-2507 .lwmv-compare__real::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 24px;
  color: #087CBB;
  font-weight: 900;
  font-size: 16px;
}

/* --- Problem/Lösung-Karten: höhere Differenzierung ---------------------- */
.page-id-2507 .lwmv-card { padding: 36px 32px !important; }
.page-id-2507 .lwmv-card__title {
  font-size: 24px !important;
  margin-bottom: 16px !important;
}
.page-id-2507 .lwmv-card p {
  font-size: 16.5px !important;
  line-height: 1.65 !important;
}

/* --- MV-Einschub: mehr Kontrast ----------------------------------------- */
.page-id-2507 .lwmv-mv-insert {
  background: #CEE9F5 !important;   /* kräftigeres Blau-100 */
  border-left: 5px solid #087CBB !important;
}
.page-id-2507 .lwmv-mv-insert__badge {
  background: #00406D !important;
  color: #fff !important;
}
.page-id-2507 .lwmv-mv-insert p { color: #0D1520 !important; }

/* --- Stair-Grafik: "-" Versatz auf Mobile weg, klarer lesbar ------------ */
.page-id-2507 .lwmv-stair h3 { color: #00406D !important; font-size: 20px !important; }
.page-id-2507 .lwmv-stair__num { color: #087CBB !important; }

/* --- Footnote: auffälliger ---------------------------------------------- */
.page-id-2507 .lwmv-footnote {
  background: #FCE1E3 !important;
  color: #8C0F19 !important;
  font-size: 16px !important;
  padding: 18px 24px !important;
}

/* --- Hero/Pillar/CTA: sicherstellen dass Schrift WEISS bleibt ----------- */
.page-id-2507 .lwmv-hero,
.page-id-2507 .lwmv-hero *,
.page-id-2507 .lwmv-hero .elementor-heading-title,
.page-id-2507 .lwmv-hero p,
.page-id-2507 .lwmv-pillar,
.page-id-2507 .lwmv-pillar *,
.page-id-2507 .lwmv-pillar .elementor-heading-title,
.page-id-2507 .lwmv-cta-final,
.page-id-2507 .lwmv-cta-final *,
.page-id-2507 .lwmv-cta-final .elementor-heading-title,
.page-id-2507 .lwmv-cta-final p {
  color: #FFFFFF !important;
}

/* Blauer Hintergrund Hero/Pillar/CTA: CI-Hauptfarbe */
.page-id-2507 .lwmv-hero,
.page-id-2507 .lwmv-pillar,
.page-id-2507 .lwmv-cta-final {
  background: #087CBB !important;   /* MV-CI-Hauptton */
}

/* --- §42 Ende ------------------------------------------------------------ */

/* =========================================================================
   §43 LOESUNGSWEGE FULL-WIDTH+KONTRAST FIX 2026-04-23c
   - Container-Max-Width via CSS-Var erhöhen (greift mit Spezifität :body)
   - Inner-Row-Container: Kinder gleichmäßig verteilen, kein Stacking
   - Schriftgrößen und Kontrast erhöht
   ========================================================================= */

/* --- 1) Container-Width via CSS-Variable auf Body-Level überschreiben ---- */
html body.page-id-2507,
body.page-id-2507.elementor-page,
body.page-id-2507 .elementor,
body.page-id-2507 .elementor-2507 {
  --container-max-width: 1400px !important;
  --container-widescreen-max-width: 1600px !important;
}

/* Astra wraps content in .ast-container (max-width:1240px default).
   Auf dieser Seite: volle Breite zulassen */
body.page-id-2507 .ast-container,
body.page-id-2507.single-page .ast-container,
body.page-id-2507 .site-content .ast-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.page-id-2507 #primary,
body.page-id-2507 .site-content,
body.page-id-2507 article.page {
  max-width: 100% !important;
  width: 100% !important;
}

/* --- 2) Inner-Row-Container: Kinder gleichmäßig nebeneinander ------------ */
/* .e-con.e-parent ist jede Elementor-Section; ihre direkten .e-con-Kinder
   sind die Columns. Wir zwingen: gleiche Flex-Verteilung, Mindestbreite. */
body.page-id-2507 .e-con.e-parent > .e-con.e-child {
  flex: 1 1 0 !important;
  min-width: 260px !important;
}

/* Wrapping erst auf wirklichem Mobile */
@media (max-width: 720px) {
  body.page-id-2507 .e-con.e-parent > .e-con.e-child {
    flex: 1 1 100% !important;
    min-width: 100% !important;
  }
}

/* Auf mittleren Breiten (721-980px): 2-spaltig wenn mehr als 2 Kinder */
@media (min-width: 721px) and (max-width: 980px) {
  body.page-id-2507 .e-con.e-parent > .e-con.e-child {
    flex: 1 1 calc(50% - 12px) !important;
    min-width: calc(50% - 12px) !important;
  }
}

/* --- 3) Sektion-Innenabstand und Breite -------------------------------- */
body.page-id-2507 .lwmv-section > .e-con-inner,
body.page-id-2507 .lwmv-pillar > .e-con-inner,
body.page-id-2507 .lwmv-hero > .e-con-inner,
body.page-id-2507 .lwmv-cta-final > .e-con-inner {
  max-width: 1400px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
}

@media (max-width: 720px) {
  body.page-id-2507 .lwmv-section > .e-con-inner,
  body.page-id-2507 .lwmv-pillar > .e-con-inner,
  body.page-id-2507 .lwmv-hero > .e-con-inner,
  body.page-id-2507 .lwmv-cta-final > .e-con-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* --- 4) Schriften größer und dunkler für Lesbarkeit -------------------- */
body.page-id-2507 .lwmv-card p,
body.page-id-2507 .lwmv-ring p,
body.page-id-2507 .lwmv-stair p,
body.page-id-2507 .lwmv-scale li,
body.page-id-2507 .lwmv-ledger li,
body.page-id-2507 .lwmv-step__text,
body.page-id-2507 .lwmv-compare__ideo,
body.page-id-2507 .lwmv-compare__real,
body.page-id-2507 .lwmv-solution-block li,
body.page-id-2507 .lwmv-mv-insert p,
body.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-description {
  color: #0D1520 !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}

body.page-id-2507 .lwmv-section-white p,
body.page-id-2507 .lwmv-section-soft p,
body.page-id-2507 .lwmv-section-white .elementor-widget-text-editor,
body.page-id-2507 .lwmv-section-soft .elementor-widget-text-editor {
  color: #0D1520 !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}

/* Karten/Sektions-Überschriften groß und CI-blau */
body.page-id-2507 .lwmv-section-white .elementor-heading-title,
body.page-id-2507 .lwmv-section-soft .elementor-heading-title {
  color: #00406D !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(30px, 3.2vw, 44px) !important;
  line-height: 1.15 !important;
  margin-bottom: 24px !important;
}

body.page-id-2507 .lwmv-card__title,
body.page-id-2507 .lwmv-ring h3,
body.page-id-2507 .lwmv-stair h3,
body.page-id-2507 .lwmv-scale h3,
body.page-id-2507 .lwmv-ledger h3,
body.page-id-2507 .lwmv-solution-block h3 {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin-bottom: 14px !important;
}

/* Hero/Pillar/CTA — große Überschriften, weiß */
body.page-id-2507 .lwmv-hero .elementor-heading-title {
  color: #FFFFFF !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: clamp(36px, 4.5vw, 64px) !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
}
body.page-id-2507 .lwmv-hero p,
body.page-id-2507 .lwmv-hero .elementor-widget-text-editor,
body.page-id-2507 .lwmv-hero .elementor-widget-text-editor * {
  color: #FFFFFF !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
}

body.page-id-2507 .lwmv-pillar .elementor-heading-title {
  color: #FFFFFF !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: clamp(32px, 4vw, 52px) !important;
  font-weight: 700 !important;
}
body.page-id-2507 .lwmv-pillar p,
body.page-id-2507 .lwmv-pillar .elementor-widget-text-editor * {
  color: #FFFFFF !important;
  font-size: 19px !important;
}

body.page-id-2507 .lwmv-cta-final .elementor-heading-title {
  color: #FFFFFF !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: clamp(34px, 4vw, 56px) !important;
  font-weight: 700 !important;
}
body.page-id-2507 .lwmv-cta-final p,
body.page-id-2507 .lwmv-cta-final .elementor-widget-text-editor * {
  color: #FFFFFF !important;
  font-size: 20px !important;
}

/* Icon-Box: Titel groß und dunkelblau, Description dunkelgrau */
body.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-title,
body.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-title * {
  color: #00406D !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
  line-height: 1.2 !important;
}
body.page-id-2507 .elementor-widget-icon-box .elementor-icon-box-description {
  color: #1C2433 !important;
  font-size: 16.5px !important;
  line-height: 1.6 !important;
}
body.page-id-2507 .elementor-widget-icon-box .elementor-icon,
body.page-id-2507 .elementor-widget-icon-box .elementor-icon i,
body.page-id-2507 .elementor-widget-icon-box .elementor-icon svg {
  color: #087CBB !important;
  fill: #087CBB !important;
  font-size: 48px !important;
  width: 48px !important;
  height: 48px !important;
}

/* --- 5) Buttons: besser sichtbar ---------------------------------------- */
body.page-id-2507 .lwmv-hero .elementor-button,
body.page-id-2507 .lwmv-cta-final .elementor-button,
body.page-id-2507 .lwmv-btn--primary {
  background: #BE1522 !important;
  color: #FFFFFF !important;
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  padding: 18px 40px !important;
  border-radius: 8px !important;
  text-transform: uppercase !important;
}
body.page-id-2507 .lwmv-hero .elementor-button:hover,
body.page-id-2507 .lwmv-cta-final .elementor-button:hover,
body.page-id-2507 .lwmv-btn--primary:hover {
  background: #8C0F19 !important;
  transform: translateY(-2px);
}

/* --- 6) Compare-Rows: breiter und farbiger ----------------------------- */
body.page-id-2507 .lwmv-compare {
  grid-template-columns: 220px 1fr 1fr !important;
  gap: 28px !important;
  padding: 24px 32px !important;
}
body.page-id-2507 .lwmv-compare__cat {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 22px !important;
  color: #00406D !important;
}
body.page-id-2507 .lwmv-compare__label {
  font-size: 13px !important;
  padding: 4px 12px !important;
  margin-bottom: 6px !important;
}
body.page-id-2507 .lwmv-compare__ideo .lwmv-compare__label {
  background: #F1F3F7 !important;
  color: #8C0F19 !important;
  border: 1px solid #E4E8EE !important;
}
body.page-id-2507 .lwmv-compare__real .lwmv-compare__label {
  background: #087CBB !important;
  color: #FFFFFF !important;
}

@media (max-width: 880px) {
  body.page-id-2507 .lwmv-compare {
    grid-template-columns: 1fr !important;
  }
}

/* --- 7) Sektion-vertikale Paddings konsistent ---------------------------- */
body.page-id-2507 .lwmv-section,
body.page-id-2507 .lwmv-pillar,
body.page-id-2507 .lwmv-hero,
body.page-id-2507 .lwmv-cta-final {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

/* --- §43 Ende ------------------------------------------------------------ */

/* =========================================================================
   §44 Force Full-Width on Lösungswege 2026-04-23d
   Astra-Container-Wrapper muss auf 100% Breite — höchste Spezifität
   ========================================================================= */

/* Astra-Container + ALLE Wrapper: volle Breite */
html body.page-id-2507 .site-content,
html body.page-id-2507 .site-content .ast-container,
html body.page-id-2507 #primary,
html body.page-id-2507 #primary.content-area,
html body.page-id-2507 article.page,
html body.page-id-2507 .entry-content,
html body.page-id-2507 .entry-content .elementor,
html body.page-id-2507 .elementor.elementor-2507 {
  max-width: 100vw !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Astra setzt auf .ast-container hohe Spezifität — überschreiben mit HTML-Tag */
html body.page-id-2507 div.ast-container {
  max-width: none !important;
  width: 100% !important;
}

/* Default-Template fügt .ast-plain-container Wrapper mit Padding hinzu */
html body.page-id-2507.ast-plain-container .site-content,
html body.page-id-2507.ast-separate-container .site-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Der :root --container-max-width ist die entscheidende CSS-Var für Elementor Boxed */
html body.page-id-2507,
:root body.page-id-2507 {
  --container-max-width: 1400px !important;
}

/* Alle .e-con-boxed Container explizit */
html body.page-id-2507 .elementor-element.e-con.e-con-boxed,
html body.page-id-2507 .e-con-boxed.lwmv-section {
  max-width: 100% !important;
  width: 100% !important;
}
html body.page-id-2507 .elementor-element.e-con.e-con-boxed > .e-con-inner,
html body.page-id-2507 .e-con-boxed.lwmv-section > .e-con-inner {
  max-width: 1400px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 48px !important;
  padding-right: 48px !important;
}

/* §44 Ende */

/* =========================================================================
   §45 Hero-Sektion höher — Abstand zum Menü vergrößern 2026-04-23
   User-Feedback: Hero zu flach, Titel zu dicht am Header
   ========================================================================= */
body.page-id-2507 .lwmv-hero {
  padding-top: 140px !important;
  padding-bottom: 120px !important;
}

@media (max-width: 720px) {
  body.page-id-2507 .lwmv-hero {
    padding-top: 90px !important;
    padding-bottom: 80px !important;
  }
}
/* §45 Ende */

/* =========================================================================
   §46 Über-mich-Seite — Kontrast + Struktur 2026-04-23
   Page-ID 1861. User-Feedback: zu hell/weiß, Farbtrennung Portrait↔Accordion falsch.
   Lösung:
   - Portrait-Sektion (Section 3, #91d5e9c): weiß bleibt, aber Cards mit Schatten
     + blauem Akzent-Streifen links am Textblock → echter Kontrast
   - Mandate-Überschrift (Section 4, #e196347) + Accordion (Section 5, #9ca333b)
     bekommen gemeinsamen hellblauen Hintergrund → bilden einen Block
   - Accordion-Items mit Rahmen/Schatten statt flacher Pillen
   ========================================================================= */

/* --- A) Portrait-Sektion: Bild als Card mit Rahmen + Schatten ----------- */
body.page-id-1861 .elementor-element-91d5e9c .elementor-widget-image img {
  border-radius: 12px !important;
  box-shadow: 0 14px 32px rgba(8, 60, 120, 0.18),
              0 4px 10px rgba(8, 60, 120, 0.08) !important;
  border: 1px solid rgba(8, 124, 187, 0.12) !important;
}

/* --- B) Portrait-Text als Card mit blauem Akzent links ------------------ */
body.page-id-1861 .elementor-element-91d5e9c .hfe-infocard,
body.page-id-1861 .elementor-element-91d5e9c .hfe-infocard-container {
  background: #FFFFFF !important;
  border: 1px solid rgba(8, 124, 187, 0.15) !important;
  border-left: 5px solid #087CBB !important;
  border-radius: 10px !important;
  box-shadow: 0 10px 28px rgba(8, 60, 120, 0.10),
              0 2px 6px rgba(8, 60, 120, 0.06) !important;
  padding: 32px 36px !important;
}

body.page-id-1861 .elementor-element-91d5e9c .hfe-infocard p,
body.page-id-1861 .elementor-element-91d5e9c .hfe-infocard * {
  color: #1a2433 !important;
}

/* dezenter Hintergrund der gesamten Portrait-Sektion: sehr heller Ton */
body.page-id-1861 .elementor-element-91d5e9c {
  background: linear-gradient(180deg, #FFFFFF 0%, #F4F8FC 100%) !important;
  padding-top: 64px !important;
  padding-bottom: 80px !important;
}

/* --- C) Mandate-Block: Überschrift + Accordion optisch zusammenfassen --- */
body.page-id-1861 .elementor-element-e196347,
body.page-id-1861 .elementor-element-9ca333b {
  background: #E8F1F9 !important;
}

body.page-id-1861 .elementor-element-e196347 {
  padding-top: 72px !important;
  padding-bottom: 24px !important;
  margin-top: 0 !important;
}

body.page-id-1861 .elementor-element-9ca333b {
  padding-top: 8px !important;
  padding-bottom: 72px !important;
  margin-top: 0 !important;
}

/* Überschrift Politische Mandate und Ämter kräftiger */
body.page-id-1861 .elementor-element-e196347 .elementor-heading-title {
  color: #0a2540 !important;
  font-weight: 800 !important;
}

/* --- D) Accordion-Items: klarer Kontrast + Schatten --------------------- */
body.page-id-1861 .elementor-element-9ca333b .e-n-accordion-item,
body.page-id-1861 .elementor-element-9ca333b details {
  background: #FFFFFF !important;
  border: 1px solid rgba(8, 124, 187, 0.18) !important;
  border-radius: 10px !important;
  box-shadow: 0 6px 18px rgba(8, 60, 120, 0.08) !important;
  margin-bottom: 14px !important;
  overflow: hidden;
}

body.page-id-1861 .elementor-element-9ca333b .e-n-accordion-item-title,
body.page-id-1861 .elementor-element-9ca333b summary {
  background: #FFFFFF !important;
  color: #0a2540 !important;
  font-weight: 700 !important;
  padding: 18px 24px !important;
}

body.page-id-1861 .elementor-element-9ca333b .e-n-accordion-item[open] .e-n-accordion-item-title,
body.page-id-1861 .elementor-element-9ca333b details[open] summary {
  background: #087CBB !important;
  color: #FFFFFF !important;
  border-bottom: 1px solid rgba(255,255,255,0.15) !important;
}

body.page-id-1861 .elementor-element-9ca333b .e-n-accordion-item[open] .e-n-accordion-item-title *,
body.page-id-1861 .elementor-element-9ca333b details[open] summary * {
  color: #FFFFFF !important;
}

body.page-id-1861 .elementor-element-9ca333b .e-n-accordion-item > *:not(.e-n-accordion-item-title),
body.page-id-1861 .elementor-element-9ca333b details > *:not(summary) {
  padding: 20px 26px !important;
  background: #FFFFFF !important;
  color: #1a2433 !important;
}

/* §46 Ende */

/* =========================================================================
   §47 Spenden-Seite (Page 2068) — MINIMAL-Fix 2026-04-23
   Nur die zwei ursprünglich gemeldeten Textfarben-Probleme beheben.
   Keine Hintergründe, keine Layouts, keine Schriftgrößen anfassen.
   ========================================================================= */

/* Bankdaten-Text dunkel */
body.page-id-2068 .elementor-element-ffe2d3a,
body.page-id-2068 .elementor-element-ffe2d3a p,
body.page-id-2068 .elementor-element-ffe2d3a strong,
body.page-id-2068 .elementor-element-ffe2d3a span,
body.page-id-2068 .elementor-element-ffe2d3a br {
  color: #1a2433 !important;
}

/* 6 Icon-Boxes (Sachspende/Werbefläche/Autowerbung + 3 leere) dunkel */
body.page-id-2068 .elementor-element-be15571 .elementor-icon-box-title,
body.page-id-2068 .elementor-element-be15571 .elementor-icon-box-title *,
body.page-id-2068 .elementor-element-be15571 .elementor-icon-box-description,
body.page-id-2068 .elementor-element-095f8ba .elementor-icon-box-title,
body.page-id-2068 .elementor-element-095f8ba .elementor-icon-box-title *,
body.page-id-2068 .elementor-element-095f8ba .elementor-icon-box-description,
body.page-id-2068 .elementor-element-d9d032f .elementor-icon-box-title,
body.page-id-2068 .elementor-element-d9d032f .elementor-icon-box-title *,
body.page-id-2068 .elementor-element-d9d032f .elementor-icon-box-description,
body.page-id-2068 .elementor-element-acc2a31 .elementor-icon-box-title,
body.page-id-2068 .elementor-element-acc2a31 .elementor-icon-box-description,
body.page-id-2068 .elementor-element-21021ee .elementor-icon-box-title,
body.page-id-2068 .elementor-element-21021ee .elementor-icon-box-description,
body.page-id-2068 .elementor-element-d65f5d6 .elementor-icon-box-title,
body.page-id-2068 .elementor-element-d65f5d6 .elementor-icon-box-description {
  color: #1a2433 !important;
}

/* §47 Ende */


/* =========================================================================
   §48 Spenden-Seite Hero — Icon-Box Holzhammer 2026-04-23
   Alles im icon-box-Widget transparent, Pseudo-Elemente killen.
   Einzige Ausnahme: .elementor-icon (das blaue Quadrat) bleibt.
   ========================================================================= */

body.page-id-2068 .elementor-element-9f27443,
body.page-id-2068 .elementor-element-9f27443 > .elementor-widget-container,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-wrapper,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-icon,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-content,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-title {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: none !important;
}

body.page-id-2068 .elementor-element-9f27443::before,
body.page-id-2068 .elementor-element-9f27443::after,
body.page-id-2068 .elementor-element-9f27443 > .elementor-widget-container::before,
body.page-id-2068 .elementor-element-9f27443 > .elementor-widget-container::after,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-wrapper::before,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-wrapper::after,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-content::before,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-content::after {
  content: none !important;
  background: transparent !important;
  display: none !important;
}

body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-title,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-title a,
body.page-id-2068 .elementor-element-9f27443 .elementor-icon-box-title * {
  color: #FFFFFF !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.45) !important;
  font-weight: 700 !important;
}

/* §48 Ende */

/* =========================================================================
   §49 Global-Text-Rettung + Spendenbalken 2026-04-23
   Probleme Post-Deploy:
   - Impressum (2173) + Datenschutz (2168): Texte unsichtbar (weiss auf weiss)
   - Startseite Familien-Kachel (02bd857): Description weiss
   - Spendenbalken (2068): Title weiss, Balken zu duenn, soll 10.000 Euro zeigen
   ========================================================================= */

/* --- A) Impressum + Datenschutz: komplette Textstarke dunkel -------------- */
body.page-id-2173 .entry-content,
body.page-id-2173 .entry-content *,
body.page-id-2173 .elementor-widget-text-editor,
body.page-id-2173 .elementor-widget-text-editor *,
body.page-id-2173 .elementor-widget-heading .elementor-heading-title,
body.page-id-2168 .entry-content,
body.page-id-2168 .entry-content *,
body.page-id-2168 .elementor-widget-text-editor,
body.page-id-2168 .elementor-widget-text-editor *,
body.page-id-2168 .elementor-widget-heading .elementor-heading-title {
  color: #1a2433 !important;
}

/* Links im Content dieser Seiten: CI-Blau (NICHT in Nav/Footer) */
body.page-id-2173 .entry-content a,
body.page-id-2173 .elementor-widget-text-editor a,
body.page-id-2168 .entry-content a,
body.page-id-2168 .elementor-widget-text-editor a {
  color: #087CBB !important;
  text-decoration: underline !important;
}

/* Headlines etwas kraeftiger dunkel */
body.page-id-2173 h1, body.page-id-2173 h2, body.page-id-2173 h3,
body.page-id-2168 h1, body.page-id-2168 h2, body.page-id-2168 h3 {
  color: #0a2540 !important;
}

/* --- B) Startseite Familien-Kachel: Description dunkel -------------------- */
body.page-id-1860 .elementor-element-02bd857 .hfe-infocard-text,
body.page-id-1860 .elementor-element-02bd857 .hfe-infocard-text p,
body.page-id-1860 .elementor-element-02bd857 .hfe-infocard-text *,
body.page-id-1860 .elementor-element-1c5bf71 .hfe-infocard-text,
body.page-id-1860 .elementor-element-1c5bf71 .hfe-infocard-text p,
body.page-id-1860 .elementor-element-1c5bf71 .hfe-infocard-text *,
body.page-id-1860 .elementor-element-8a1bc96 .hfe-infocard-text,
body.page-id-1860 .elementor-element-8a1bc96 .hfe-infocard-text p,
body.page-id-1860 .elementor-element-8a1bc96 .hfe-infocard-text * {
  color: #1a2433 !important;
}

/* Kachel-Titel CI-Dunkelblau + kraeftig */
body.page-id-1860 .elementor-element-02bd857 .hfe-infocard-title,
body.page-id-1860 .elementor-element-1c5bf71 .hfe-infocard-title,
body.page-id-1860 .elementor-element-8a1bc96 .hfe-infocard-title {
  color: #0a2540 !important;
}

/* --- C) Spendenbalken: Title dunkel, Balken dicker + lesbar --------------- */
body.page-id-2068 .elementor-element-190eed9 .elementor-title {
  color: #0a2540 !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  margin-bottom: 16px !important;
  display: block !important;
}

body.page-id-2068 .elementor-element-190eed9 .elementor-progress-wrapper {
  border-radius: 14px !important;
  background: #e3ecf3 !important;
  border: 2px solid rgba(8,124,187,0.18) !important;
  overflow: hidden !important;
}

body.page-id-2068 .elementor-element-190eed9 .elementor-progress-bar {
  height: 72px !important;
  line-height: 72px !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.2) !important;
  background: linear-gradient(90deg, #087CBB 0%, #BE1522 100%) !important;
}

/* Percentage-Text innerhalb Balken weiss bleibt auch bei Hover */
body.page-id-2068 .elementor-element-190eed9 .elementor-progress-text,
body.page-id-2068 .elementor-element-190eed9 .elementor-progress-bar-inner {
  color: #FFFFFF !important;
}

/* §49 Ende */


/* =========================================================================
   §50 Impressum + Datenschutz Layout - Full-width Hero 2026-04-23
   Probleme: Hero (blauer Streifen) nicht full-width, Spacer als breite Box,
   Heading in komischem Kasten. Nav-Menu-Unterstreichung (aus §49) wird hier
   zusaetzlich kaltgestellt fuer Sicherheit.
   ========================================================================= */

/* Nav/Footer/Header-Links NIE unterstreichen auf diesen Seiten */
body.page-id-2173 header a,
body.page-id-2173 footer a,
body.page-id-2173 .main-header-menu a,
body.page-id-2173 .main-navigation a,
body.page-id-2173 nav a,
body.page-id-2173 .dkm-footer a,
body.page-id-2168 header a,
body.page-id-2168 footer a,
body.page-id-2168 .main-header-menu a,
body.page-id-2168 .main-navigation a,
body.page-id-2168 nav a,
body.page-id-2168 .dkm-footer a {
  text-decoration: none !important;
}

/* Full-width Wrapper */
html body.page-id-2173 .site-content,
html body.page-id-2173 .site-content .ast-container,
html body.page-id-2173 #primary,
html body.page-id-2173 article.page,
html body.page-id-2173 .entry-content,
html body.page-id-2168 .site-content,
html body.page-id-2168 .site-content .ast-container,
html body.page-id-2168 #primary,
html body.page-id-2168 article.page,
html body.page-id-2168 .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Hero-Section (ea007db) als full-width Banner */
body.page-id-2173 .elementor-element-ea007db,
body.page-id-2168 .elementor-element-ea007db {
  max-width: 100% !important;
  width: 100% !important;
  background: linear-gradient(135deg, #087CBB 0%, #0a2540 100%) !important;
  min-height: 280px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 40px !important;
}

body.page-id-2173 .elementor-element-ea007db > .e-con-inner,
body.page-id-2168 .elementor-element-ea007db > .e-con-inner {
  max-width: 1200px !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 auto !important;
}

/* Spacer ausblenden - wir machen das Spacing ueber den Hero-Container */
body.page-id-2173 .elementor-element-f0452d2,
body.page-id-2168 .elementor-element-f0452d2 {
  display: none !important;
}

/* Heading Impressum/Datenschutz: gross, weiss, zentriert */
body.page-id-2173 .elementor-element-d8fb4a9 .elementor-heading-title,
body.page-id-2173 .elementor-element-ea007db .elementor-heading-title,
body.page-id-2168 .elementor-element-ea007db .elementor-heading-title {
  color: #FFFFFF !important;
  font-size: 64px !important;
  font-weight: 800 !important;
  text-align: center !important;
  margin: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}

@media (max-width: 768px) {
  body.page-id-2173 .elementor-element-ea007db .elementor-heading-title,
  body.page-id-2168 .elementor-element-ea007db .elementor-heading-title {
    font-size: 40px !important;
  }
  body.page-id-2173 .elementor-element-ea007db,
  body.page-id-2168 .elementor-element-ea007db {
    min-height: 200px !important;
    padding: 24px !important;
  }
}

/* Content-Section (148fb02): zentriert mit Max-Breite */
body.page-id-2173 .elementor-element-148fb02,
body.page-id-2168 .elementor-element-148fb02 {
  max-width: 100% !important;
  width: 100% !important;
}

body.page-id-2173 .elementor-element-148fb02 > .e-con-inner,
body.page-id-2168 .elementor-element-148fb02 > .e-con-inner {
  max-width: 1000px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 60px 40px !important;
}

@media (max-width: 768px) {
  body.page-id-2173 .elementor-element-148fb02 > .e-con-inner,
  body.page-id-2168 .elementor-element-148fb02 > .e-con-inner {
    padding: 40px 24px !important;
  }
}

/* Text-Editor Inhalt vernuenftige Typographie */
body.page-id-2173 .elementor-widget-text-editor,
body.page-id-2168 .elementor-widget-text-editor {
  font-size: 16px !important;
  line-height: 1.7 !important;
}

body.page-id-2173 .elementor-widget-text-editor p,
body.page-id-2168 .elementor-widget-text-editor p {
  margin: 0 0 1em !important;
}

body.page-id-2173 .elementor-widget-text-editor strong,
body.page-id-2168 .elementor-widget-text-editor strong {
  color: #0a2540 !important;
  font-weight: 700 !important;
}

/* §50 Ende */

/* =========================================================================
   §51 Datenschutz-Seite Hero-Fix 2026-04-23
   Datenschutz (2168) hat andere Element-IDs als Impressum:
   - Section 0 (3b33deb): nur Spacer (afb3b34) - ergibt blauen Leerbalken
   - Section 1 (8f28758): Heading (eddaae3) - ergibt die abgerundete Box
   - Section 2 (63b0c94): Content
   Loesung: Section 0 ausblenden, Section 1 als Hero gestalten.
   ========================================================================= */

/* Leeren Spacer-Block oben ausblenden */
body.page-id-2168 .elementor-element-3b33deb {
  display: none !important;
}

/* Heading-Section als Full-width Hero gestalten */
body.page-id-2168 .elementor-element-8f28758 {
  max-width: 100% !important;
  width: 100% !important;
  background: linear-gradient(135deg, #087CBB 0%, #0a2540 100%) !important;
  min-height: 280px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 40px !important;
  border-radius: 0 !important;
}

body.page-id-2168 .elementor-element-8f28758 > .e-con-inner {
  max-width: 1200px !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 auto !important;
}

/* Heading "Datenschutzerklaerung" gross weiss zentriert */
body.page-id-2168 .elementor-element-eddaae3 .elementor-heading-title {
  color: #FFFFFF !important;
  font-size: 64px !important;
  font-weight: 800 !important;
  text-align: center !important;
  margin: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}

@media (max-width: 768px) {
  body.page-id-2168 .elementor-element-eddaae3 .elementor-heading-title {
    font-size: 40px !important;
  }
  body.page-id-2168 .elementor-element-8f28758 {
    min-height: 200px !important;
    padding: 24px !important;
  }
}

/* Content-Section (63b0c94): zentriert mit Max-Breite */
body.page-id-2168 .elementor-element-63b0c94 {
  max-width: 100% !important;
  width: 100% !important;
}

body.page-id-2168 .elementor-element-63b0c94 > .e-con-inner {
  max-width: 1000px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 60px 40px !important;
}

@media (max-width: 768px) {
  body.page-id-2168 .elementor-element-63b0c94 > .e-con-inner {
    padding: 40px 24px !important;
  }
}

/* --- Typographie-Fixes fuer Impressum (2173) + Datenschutz (2168) -------- */

/* h1 auf sinnvolle Groesse einnorden (war 3rem inline) */
body.page-id-2173 .elementor-widget-text-editor h1,
body.page-id-2168 .elementor-widget-text-editor h1 {
  font-size: 32px !important;
  font-weight: 800 !important;
  color: #0a2540 !important;
  margin: 40px 0 16px !important;
  line-height: 1.2 !important;
}
body.page-id-2173 .elementor-widget-text-editor h1 span,
body.page-id-2168 .elementor-widget-text-editor h1 span {
  font-size: inherit !important;
}

body.page-id-2173 .elementor-widget-text-editor h2,
body.page-id-2168 .elementor-widget-text-editor h2 {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #087CBB !important;
  margin: 36px 0 14px !important;
  line-height: 1.25 !important;
}

body.page-id-2173 .elementor-widget-text-editor h3,
body.page-id-2168 .elementor-widget-text-editor h3 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #0a2540 !important;
  margin: 28px 0 10px !important;
}

/* Paragraph-Abstaende konsistent (weg vom wilden br-Padding) */
body.page-id-2173 .elementor-widget-text-editor p,
body.page-id-2168 .elementor-widget-text-editor p {
  margin: 0 0 1em !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

/* Freistehende <br> zwischen Absaetzen einschraenken */
body.page-id-2173 .elementor-widget-text-editor p + br,
body.page-id-2168 .elementor-widget-text-editor p + br,
body.page-id-2173 .elementor-widget-text-editor br + br,
body.page-id-2168 .elementor-widget-text-editor br + br {
  display: none !important;
}

/* <hr> dezent gestalten */
body.page-id-2173 .elementor-widget-text-editor hr,
body.page-id-2168 .elementor-widget-text-editor hr {
  border: none !important;
  border-top: 1px solid #e3ecf3 !important;
  margin: 32px 0 !important;
}

/* Bing-Maps-Overlay-Span entfernt störendes Design: neutralisieren */
body.page-id-2173 .elementor-widget-text-editor .bm_details_overlay,
body.page-id-2168 .elementor-widget-text-editor .bm_details_overlay {
  display: inline !important;
  background: none !important;
  padding: 0 !important;
}

body.page-id-2173 .elementor-widget-text-editor .bm_details_overlay a,
body.page-id-2168 .elementor-widget-text-editor .bm_details_overlay a {
  color: #087CBB !important;
  text-decoration: underline !important;
}

/* Listen vernuenftig einruecken */
body.page-id-2173 .elementor-widget-text-editor ul,
body.page-id-2168 .elementor-widget-text-editor ul,
body.page-id-2173 .elementor-widget-text-editor ol,
body.page-id-2168 .elementor-widget-text-editor ol {
  margin: 12px 0 20px 24px !important;
  padding: 0 !important;
}

body.page-id-2173 .elementor-widget-text-editor li,
body.page-id-2168 .elementor-widget-text-editor li {
  margin: 6px 0 !important;
}

/* §51 Ende */
