/*
 Theme Name:   Avada Child Kongress
 Theme URI:    https://kongress.zuke-green.de
 Description:  Child Theme für ZUKE Green Health Kongress – Ticketshop & Event-Seite (Redesign v3, brand-aligned mit Hauptseite)
 Author:       Jan Schumann
 Author URI:   https://zuke-green.de
 Template:     Avada
 Version:      1.31.1
 Text Domain:  avada-child-kongress
*/

/* ==========================================================================
   ZUKE Green Kongress – Design System v3
   Brand-Refresh 2026-04-26: Inter (Body, UI) + Playfair Display (Headings,
   Display, Quotes), aligned mit Hauptseiten-Redesign. Dunkle Hero mit Glow,
   glassmorph Stats, Cards mit Gradient-Top-Border.
   ========================================================================== */

:root {
  /* Primärgrüns */
  --zk-primary-900: #0f2b0f;
  --zk-primary-800: #1a4d1a;
  --zk-primary:     #1a4d1a;
  --zk-primary-700: #236b23;
  --zk-primary-600: #2d8a2d;
  --zk-primary-500: #4CAF50;
  --zk-primary-400: #66BB6A;
  --zk-primary-300: #81C784;
  --zk-primary-200: #A5D6A7;
  --zk-primary-100: #C8E6C9;
  --zk-primary-50:  #E8F5E9;

  /* Lime-Akzent */
  --zk-lime:       #8BC34A;
  --zk-lime-light: #94C13A;
  --zk-lime-dark:  #689F38;

  /* Legacy Accent-Tokens → Lime (Kompatibilität) */
  --zk-accent:       var(--zk-lime);
  --zk-accent-hover: var(--zk-lime-dark);
  --zk-accent-light: #F1F8E9;

  /* Button-Palette v1.25.0 — Primär Grün, Sekundär Navy-Blau (User-Korrektur 2026-06-21).
     Primär = Grün gefüllt + weiße Schrift; Sekundär = Navy-Blau gefüllt + weiße Schrift;
     Outline (nur als Begleiter eines Solid-Buttons) = blauer Rahmen → Hover solid blau.
     Auf dunklen Sections greift Primär-Grün (kontrastiert). Block am Dateiende. */
  --zk-btn:         #95C23C;  /* Primär: Grün */
  --zk-btn-hover:   #85AE34;  /* Primär: dunkleres Grün (Hover) */
  --zk-btn-2:       #18294A;  /* Sekundär: Navy-Blau */
  --zk-btn-2-hover: #283D6B;  /* Sekundär: helleres Navy (Hover) */
  --zk-btn-text:    #ffffff;

  /* Text */
  --zk-text:           #1a2e1a;
  --zk-text-secondary: #4b5563;
  --zk-text-muted:     #6b7280;

  /* Hintergründe */
  --zk-bg:      #fafcf8;
  --zk-bg-card: #ffffff;
  --zk-bg-alt:  #f8faf5;

  /* Neutrals */
  --zk-gray-50:  #f9fafb;
  --zk-gray-100: #f3f4f6;
  --zk-gray-200: #e5e7eb;
  --zk-gray-300: #d1d5db;
  --zk-gray-400: #9ca3af;
  --zk-gray-500: #6b7280;
  --zk-gray-600: #4b5563;
  --zk-gray-700: #374151;

  /* Borders */
  --zk-border:       var(--zk-gray-200);
  --zk-border-light: var(--zk-gray-100);

  /* Status */
  --zk-success: var(--zk-primary-600);
  --zk-error:   #DC3545;
  --zk-warning: #F0AD4E;
  --zk-info:    var(--zk-primary-500);
  --zk-sale:    #E53935;

  /* Radius */
  --zk-radius-sm:   8px;
  --zk-radius:      12px;
  --zk-radius-lg:   20px;
  --zk-radius-xl:   28px;
  --zk-radius-pill: 999px;

  /* Shadows */
  --zk-shadow-sm:   0 1px 2px rgba(15, 43, 15, 0.05);
  --zk-shadow:      0 4px 6px -1px rgba(15, 43, 15, 0.07), 0 2px 4px -2px rgba(15, 43, 15, 0.05);
  --zk-shadow-lg:   0 10px 15px -3px rgba(15, 43, 15, 0.08), 0 4px 6px -4px rgba(15, 43, 15, 0.04);
  --zk-shadow-xl:   0 20px 25px -5px rgba(15, 43, 15, 0.08), 0 8px 10px -6px rgba(15, 43, 15, 0.04);
  --zk-shadow-glow: 0 8px 24px rgba(29, 35, 39, 0.22); /* v1.24.0: neutral statt Lime-Glow */

  /* Motion */
  --zk-transition:      0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --zk-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);

  /* Typography (v4: bewusste Differenzierung von der Hauptseite — Event-Charakter) */
  --zk-font-body:    'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --zk-font-heading: 'Oswald', 'Roboto Condensed', 'Arial Narrow', Impact, sans-serif;
  --zk-font-display: 'Oswald', 'Roboto Condensed', 'Arial Narrow', Impact, sans-serif;

  /* Erweiterte Palette für die Kongress-Identität (additiv, eigene Brand-Sprache) */
  --zk-sand:        #f5ecd9; /* warme Sand-Tone für Earth-Feel-Sections */
  --zk-sand-dark:   #e8d9b8;
  --zk-deep:        #0a2010; /* tiefes Forest für Premium-Sections */
  --zk-coral:       #ef6c4a; /* warmer Akzent für Pulsing-Dots, Sale, Live */
  --zk-neon:        #C6FF00; /* v1.29.0: greller Akzent (Kundenfeedback 07/2026) — Kasten-Rand + Datum-Highlight */
}

/* Pulsing-Status-Dot (Save-the-Date-Hero, Live-Markers).
   Hier im Theme-CSS, NICHT inline im Page-Content — Avada filtert <style>-Tags
   in [fusion_text] gelegentlich raus oder rendert sie als sichtbaren Text. */
@keyframes zk-pulse {
  0%   { transform: scale(1);   opacity: 0.7; }
  70%  { transform: scale(2.4); opacity: 0; }
  100% { transform: scale(2.4); opacity: 0; }
}
.zk-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #ffffff;
  border: 1px solid var(--zk-primary-100, #C8E6C9);
  padding: 8px 18px 8px 14px;
  border-radius: 999px;
  margin-bottom: 32px;
  box-shadow: 0 1px 3px rgba(15, 43, 15, 0.04);
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--zk-primary-800, #1a4d1a);
}
.zk-status-pill__dot {
  position: relative;
  display: inline-block;
  width: 10px;
  height: 10px;
  flex-shrink: 0;
}
.zk-status-pill__dot::before,
.zk-status-pill__dot::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--zk-coral, #ef6c4a);
  border-radius: 50%;
}
.zk-status-pill__dot::before {
  animation: zk-pulse 2s ease-out infinite;
}
.zk-status-pill__dot::after {
  inset: 2px;
}

/* Hero-Editorial-Headline: Spans erzwingen Linebreaks, damit der Italic-Akzent
   („Kreislauffähig.") nicht in die nächste Zeile überläuft, und verhindern
   dass der Text die Save-the-Date-Card auf der Nachbarspalte überlappt.
   v1.7.4: Spans dichter zusammen — line-height 0.95, kein extra-Spacing. */
/* v1.8.0: Vereinfachter Hero — eine klare H1-Zeile statt Multi-Span-Drama. */
h1.zk-hero-headline.zk-hero-headline {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(2rem, 4.4vw, 3.4rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.005em !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 18px 0 22px !important;
  text-transform: none !important;
  max-width: 100% !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.zk-hero-lead {
  font-family: 'Roboto', sans-serif !important;
  color: var(--zk-gray-700, #374151) !important;
  font-size: 1.08rem !important;
  line-height: 1.65 !important;
  max-width: 540px !important;
  margin: 0 0 32px !important;
}

/* WICHTIG: WordPress's KSES-Filter strippt `display:grid|flex` aus inline
   style-Attributen in [fusion_text]. Daher müssen ALLE komplexen Layouts
   über CSS-Klassen kommen — inline geht nur für Farben, Padding, Margins. */

/* v1.8.0: Save-the-Date-Card vereinfacht — keine 2026-Big-Number mehr
   (steht in H1), keine Glow-Blob, klare strukturierte Liste.
   v1.29.0 (Kundenfeedback 07/2026, Designbeispiel "Klinikmitarbeitende"-Karte):
   Farbverlauf statt Flächenfarbe + greller Neon-Rand links. */
.zk-hero-card {
  background: var(--zk-deep, #0a2010); /* Fallback ohne Gradient-Support */
  background: linear-gradient(165deg, var(--zk-primary-800, #1a4d1a) 0%, #0b2411 100%);
  color: #ffffff;
  border-radius: 4px;
  padding: 32px 36px;
  border-left: 4px solid var(--zk-neon, #C6FF00);
  font-family: 'Roboto', sans-serif;
  display: block;
}
.zk-hero-card__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.zk-hero-card__label {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime, #8BC34A);
}
.zk-hero-card__num {
  font-family: 'Oswald', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.04em;
}
/* v1.29.0: Datum "mit grellem Grün hervorheben" (Kundenfeedback) —
   Neon-Ton wie der Kasten-Rand, größer + fetter, Ticketverkauf im Fokus. */
.zk-hero-card__status {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.35rem, 1.1vw + 1rem, 1.6rem);
  font-weight: 600;
  color: var(--zk-neon, #C6FF00);
  margin: 0 0 22px;
  letter-spacing: 0.02em;
}
.zk-hero-card__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 0.9rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.78);
}
.zk-hero-card__facts li {
  padding-left: 20px;
  position: relative;
}
.zk-hero-card__facts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 8px;
  background: var(--zk-lime, #8BC34A);
  border-radius: 50%;
}
.zk-hero-card__facts strong {
  color: #ffffff;
  font-weight: 600;
}

/* Trust-Bar
   Bug vor v1.14.x: <span> war display:inline → bei flex-wrap zerriss
   der Inhalt eines Items über zwei Zeilen (z. B. "500+" auf Zeile 1,
   "· Teilnehmende beim letzten Kongress" auf Zeile 2). Fix: jedes Item
   ist inline-flex (zusammenhängend, niemals mid-item-wrap), und mobile
   stacken wir sauber vertikal. */
.zk-trust-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 32px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
  letter-spacing: 0.02em;
}
.zk-trust-bar > span {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  white-space: normal;
}
.zk-trust-bar strong {
  color: var(--zk-lime-light, #94C13A);
  font-weight: 700;
  font-family: 'Oswald', sans-serif;
  font-size: 1rem;
}

@media (max-width: 700px) {
  .zk-trust-bar {
    flex-direction: column;
    gap: 6px;
    align-items: center;
  }
  .zk-trust-bar > span {
    justify-content: center;
    text-align: center;
    flex-wrap: wrap;
  }
}

/* Numbers-Grid (2x2) */
.zk-numbers-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 640px) {
  .zk-numbers-grid { grid-template-columns: 1fr; }
}
.zk-num-card {
  padding: 32px 28px;
  background: #ffffff;
  border-radius: 4px;
  border-top: 3px solid var(--zk-lime, #8BC34A);
}
.zk-num-card--invert {
  background: var(--zk-deep, #0a2010);
  color: #ffffff;
  border-top-color: var(--zk-lime-light, #94C13A);
}
.zk-num-card__big {
  font-family: 'Oswald', sans-serif;
  font-weight: 900;
  font-size: 3.8rem;
  line-height: 1;
  color: var(--zk-primary-800, #1a4d1a);
  letter-spacing: -0.03em;
}
.zk-num-card--invert .zk-num-card__big {
  color: var(--zk-lime-light, #94C13A);
}
.zk-num-card__big > span {
  font-family: 'Oswald', sans-serif;
  font-size: 1.5rem;
  color: var(--zk-lime-dark, #689F38);
  font-weight: 700;
}
.zk-num-card__caption {
  font-family: 'Roboto', sans-serif;
  color: #4b5563;
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 14px 0 0;
}
.zk-num-card--invert .zk-num-card__caption {
  color: rgba(255, 255, 255, 0.78);
}

/* Mission-2-col-Body */
.zk-mission-body {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  text-align: left;
}
@media (max-width: 768px) {
  .zk-mission-body { grid-template-columns: 1fr; gap: 24px; }
}

/* Tracks-Grid */
.zk-tracks-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 64px;
  flex-wrap: wrap;
  gap: 24px;
}
.zk-tracks-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 1100px) {
  .zk-tracks-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .zk-tracks-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .zk-tracks-grid { grid-template-columns: 1fr; }
}
.zk-track-card {
  padding: 32px 26px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  transition: transform 0.3s, box-shadow 0.3s;
}
.zk-track-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(15, 43, 15, 0.08);
}
.zk-track-card__code {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--zk-lime, #8BC34A);
  letter-spacing: 0.12em;
  margin-bottom: 18px;
}
.zk-track-card h3 {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 12px;
  letter-spacing: 0.005em;
  line-height: 1.15;
}
.zk-track-card p {
  font-family: 'Roboto', sans-serif;
  color: #6b7280;
  font-size: 0.88rem;
  line-height: 1.6;
  margin: 0;
}

/* Zielgruppen-Sub-Cards */
.zk-zg-list {
  display: grid;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 16px;
  height: 100%;
}
.zk-zg-list-item {
  background: #f8faf5;
  border-radius: 4px;
  padding: 24px 28px;
  border-left: 4px solid var(--zk-lime, #8BC34A);
  display: flex;
  align-items: center;
  gap: 18px;
}
.zk-zg-list-item__num {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--zk-primary-700, #236b23);
  flex-shrink: 0;
}

/* History-Strip */
.zk-history-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px 28px;
}
.zk-history-strip a,
.zk-history-strip > span {
  text-decoration: none;
  color: inherit;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
  padding: 8px 0;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
}
.zk-history-strip__label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--zk-lime, #8BC34A);
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  margin-bottom: 4px;
}
.zk-history-strip__year {
  font-size: 1.5rem;
  color: #ffffff;
}
.zk-history-strip__next {
  padding: 10px 18px !important;
  background: rgba(148, 193, 58, 0.12);
  border: 1px solid rgba(148, 193, 58, 0.3);
  border-radius: 4px;
}
.zk-history-strip__next .zk-history-strip__label,
.zk-history-strip a[href*="jubilaeum"] .zk-history-strip__label {
  color: var(--zk-lime-light, #94C13A);
}
.zk-history-strip__next .zk-history-strip__year {
  color: var(--zk-lime-light, #94C13A);
}

/* Newsletter-Form (Final-CTA) */
.zk-news-form {
  display: flex;
  gap: 0;
  max-width: 480px;
  margin: 0 auto 16px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  padding: 6px;
}
.zk-news-form input {
  flex: 1;
  background: transparent;
  border: none;
  color: #ffffff;
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  padding: 14px 18px;
  outline: none;
}
.zk-news-form input::placeholder { color: rgba(255, 255, 255, 0.45); }
.zk-news-form button {
  background: var(--zk-btn, #95C23C);
  color: var(--zk-btn-text, #ffffff);
  border: none;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.zk-news-form button:hover { background: var(--zk-btn-hover, #85AE34); color: #ffffff; }

/* Final-CTA — Bleib dran (dunkler Section-Block).
   Glow-Blob bewusst hinter den Inhalt via z-index, damit der Body-Text
   lesbar bleibt (vorher Bug: Blur überdeckte den Text). */
.zk-final-cta {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  isolation: isolate;
}
.zk-final-cta__glow {
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 480px;
  height: 480px;
  border-radius: 50%;
  background: var(--zk-lime, #8BC34A);
  opacity: 0.05;
  filter: blur(120px);
  pointer-events: none;
  z-index: -1;
}
.zk-final-cta__inner {
  position: relative;
  z-index: 1;
}
.zk-final-cta__overline {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zk-lime-light, #94C13A);
  display: block;
  margin-bottom: 24px;
}
.zk-final-cta__title {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.05;
  color: #ffffff;
  margin: 0 0 24px;
}
.zk-final-cta__lead {
  font-family: 'Roboto', sans-serif;
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.08rem;
  line-height: 1.75;
  margin: 0 auto 36px;
  max-width: 580px;
}
/* v1.11.1 — Avadas `.fusion-text p { margin: 0 0 1em 0 }` (Specificity 0,1,1)
   schlägt unser `.zk-final-cta__lead { margin: 0 auto }` (0,1,0). Lead-Box
   rutscht dann an den linken Rand des Inner-Containers, max-width 580
   verläuft von links → Text-Mittelpunkt liegt links der Headline. Höhere
   Specificity + !important überschreibt Avadas Reset. */
.post-content .fusion-text .zk-final-cta__lead {
  margin: 0 auto 36px !important;
}
.zk-final-cta__primary {
  display: inline-block;
  background: var(--zk-btn, #95C23C);
  color: var(--zk-btn-text, #ffffff) !important;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 18px 36px;
  border-radius: 4px;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.2s;
}
.zk-final-cta__primary:hover {
  background: var(--zk-btn-hover, #85AE34);
  color: #ffffff !important;
  transform: translateY(-2px);
}
.zk-final-cta__fineprint {
  font-family: 'Roboto', sans-serif;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.78rem;
  margin: 16px 0 36px;
}
.zk-final-cta__fineprint a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: underline;
}
.zk-final-cta__secondary {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: #ffffff !important;
  text-decoration: none !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 2px solid rgba(255, 255, 255, 0.3);
  padding-bottom: 4px;
  transition: border-color 0.2s, color 0.2s;
}
.zk-final-cta__secondary:hover {
  color: #ffffff !important;
  border-bottom-color: #ffffff;
}

/* ==========================================================================
   v1.12.1 — Avada Main Menu (.avada-main-menu) Font + Active/Hover Fix

   Avada setzt am <nav class="avada-main-menu"> inline:
     --awb-fusion-font-family-submenu-typography: "Azeret Mono"
     --awb-fusion-font-family-typography: var(--awb-typography3-font-family)
     --awb-active-color: hsla(... color1 ...)   // color1 ≈ weiß
     --awb-active-border-color: hsla(... color1 ...)

   Folge: Submenu-Items ("Rückblick 2024/2023") rendern in Azeret Mono
   (Schreibmaschinenoptik). Top-Level fällt auf Avada-Typography-Preset
   zurück, das nicht zur ZUKE-Brand (Roboto/Oswald) passt. Active-Link auf
   weißem Hintergrund: weiß auf weiß = unsichtbar.

   Fix: Custom-Properties am <nav> per `!important` aus Stylesheet
   überschreiben. `!important` ist nötig, weil Avadas Werte als inline-
   style am Element sitzen — ohne `!important` würde inline gewinnen.
   ========================================================================== */
.avada-main-menu {
  /* Fonts auf Brand-Stack (Roboto = Body-Font des Projekts) */
  --awb-fusion-font-family-typography: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  --awb-fusion-font-family-submenu-typography: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  --awb-fusion-font-family-mobile-typography: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
  --awb-fusion-font-weight-typography: 500 !important;
  --awb-fusion-font-weight-submenu-typography: 400 !important;
  --awb-fusion-font-weight-mobile-typography: 500 !important;
  --awb-fusion-font-style-submenu-typography: normal !important;

  /* Active-Top-Level: Brand-Dark statt fast-weiß; Underline in Brand-Lime */
  --awb-active-color: #0a2010 !important;
  --awb-active-border-color: #8BC34A !important;

  /* Submenu-Active: weißer Text auf Brand-Dark-Background (lesbar) */
  --awb-submenu-active-bg: #0a2010 !important;
  --awb-submenu-active-color: #ffffff !important;
}

/* Belt-and-suspenders: direkt auf den Menu-Links die Font-Family forcieren,
   falls Avada an anderer Stelle (z. B. :hover-State) die Variable umgeht. */
.avada-main-menu a,
.avada-main-menu a:hover,
.avada-main-menu a:focus,
.avada-main-menu .awb-menu__sub-ul a,
.avada-main-menu .awb-menu__sub-ul a:hover,
.avada-main-menu .awb-menu__sub-ul a:focus {
  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif !important;
}

/* Hover auf Top-Level: dezenter Brand-Lime-Akzent statt Avada-Default */
.avada-main-menu .awb-menu__main-li > a:hover,
.avada-main-menu .awb-menu__main-li > a:focus {
  color: #0a2010 !important;
}

/* ==========================================================================
   v1.6.3 — Mobile Typography & Layout Fixes
   Avada `fusion-responsive-typography-calculated` schreibt inline-styles mit
   data-fontsize=64 (oder ähnlich) auf h1-Elemente — overrided meine clamp().
   Avada respektiert auch `type_small="1_1"` nicht zuverlässig: Spalten
   bleiben auf 375px side-by-side gequetscht (auf 162px statt 375px).
   ========================================================================== */

/* (1) Spalten auf Mobile zwingen, Vollbreite zu nehmen.
       Avada-spezifische Selektoren mit !important. */
@media (max-width: 800px) {
  .post-content .fusion-builder-row .fusion-layout-column {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 16px !important;
    padding-left: 16px !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
  /* Avada honoriert padding_right_small="0" auf der column-wrapper Inner-Element
     nicht zuverlässig — explizit zurücksetzen. */
  .post-content .fusion-layout-column .fusion-column-wrapper {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .post-content .fusion-builder-row {
    flex-wrap: wrap !important;
  }
}

/* (2) Hero-Headlines auf Mobile: überschreibe Avadas inline --fontSize
       und verhindere character-level word-break. */
@media (max-width: 768px) {
  .zk-hero-headline {
    font-size: clamp(2rem, 8vw, 2.8rem) !important;
    line-height: 1.1 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: none !important;
    max-width: 100% !important;
  }
  .zk-hero-headline > span {
    display: block;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  .zk-page-hero__title {
    font-size: clamp(1.8rem, 7.5vw, 2.6rem) !important;
    line-height: 1.1 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }
  .zk-final-cta__title {
    font-size: clamp(2rem, 8vw, 2.8rem) !important;
    line-height: 1.1 !important;
    word-break: normal !important;
  }
  .zk-section-head__title {
    font-size: clamp(1.7rem, 7vw, 2.4rem) !important;
    line-height: 1.1 !important;
    word-break: normal !important;
  }
  .zk-track-deep__title,
  .zk-check-section__title,
  .zk-story-block__body h3 {
    font-size: clamp(1.5rem, 6.5vw, 2rem) !important;
    line-height: 1.15 !important;
    word-break: normal !important;
  }
  .zk-recap-num__big {
    font-size: clamp(2rem, 9vw, 2.8rem) !important;
    line-height: 1 !important;
  }
  .zk-num-card__big {
    font-size: clamp(2rem, 9vw, 2.6rem) !important;
    line-height: 1 !important;
  }
  .zk-hero-card__date {
    font-size: clamp(2.6rem, 12vw, 3.6rem) !important;
    line-height: 1 !important;
  }
  .zk-mission-body p,
  .zk-page-hero__lead {
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }
}

/* (4) Avada inline-style mit data-fontsize override.
       Höhere Spezifität via doppelter Klassen-Selektor erzwingen,
       damit Avadas .fusion-responsive-typography-calculated nicht gewinnt. */
@media (max-width: 768px) {
  h1.zk-hero-headline.zk-hero-headline {
    font-size: clamp(2rem, 8vw, 2.8rem) !important;
  }
  h1.zk-page-hero__title.zk-page-hero__title,
  .zk-page-hero__title.zk-page-hero__title {
    font-size: clamp(1.8rem, 7.5vw, 2.6rem) !important;
  }
  h2.zk-final-cta__title.zk-final-cta__title {
    font-size: clamp(2rem, 8vw, 2.8rem) !important;
  }
  h2.zk-section-head__title.zk-section-head__title {
    font-size: clamp(1.7rem, 7vw, 2.4rem) !important;
  }
  h3.zk-track-deep__title.zk-track-deep__title,
  h3.zk-check-section__title.zk-check-section__title,
  .post-content .zk-story-block__body h3 {
    font-size: clamp(1.5rem, 6.5vw, 2rem) !important;
  }
}

/* (3) Sehr-Mobile (480px): noch tighter */
@media (max-width: 480px) {
  .zk-hero-headline {
    font-size: clamp(1.7rem, 9vw, 2.3rem) !important;
  }
  .zk-page-hero__title {
    font-size: clamp(1.5rem, 8vw, 2rem) !important;
  }
  .zk-final-cta__title {
    font-size: clamp(1.7rem, 9vw, 2.3rem) !important;
  }
  .zk-hero-card__date {
    font-size: clamp(2.2rem, 13vw, 3rem) !important;
  }
  .zk-status-pill {
    font-size: 0.7rem !important;
    padding: 6px 14px !important;
  }
  .zk-recap-num,
  .zk-num-card {
    padding: 22px 18px !important;
  }
}

/* ==========================================================================
   v1.7.0 — Native Avada-Elemente (counter_box, content_box, testimonial,
   title, separator) statt fusion_text-Dumps. Jedes Element rendert seine
   eigene HTML-Struktur — wir hängen unsere `.zk-*`-Klassen über den
   `class="..."`-Parameter an und überschreiben die Avada-Default-Styles
   selektiv darüber.
   ========================================================================== */

/* ----- Reusable Overlines + Lead Helpers ------------------------------- */
.zk-overline {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime-dark, #689F38);
  margin-bottom: 16px;
}
.zk-overline--lime {
  color: var(--zk-lime, #8BC34A);
  letter-spacing: 0.22em;
  margin-bottom: 0;
}
.zk-section-h2 {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(2rem, 4vw, 3.2rem) !important;
  line-height: 1.05 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 0 !important;
}
.zk-section-h2--with-overline::before {
  content: attr(data-before);
  display: block;
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime-dark, #689F38);
  margin-bottom: 16px;
}
.zk-section-lead {
  font-family: 'Roboto', sans-serif;
  color: var(--zk-gray-700, #374151);
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0 0 24px;
}
.zk-text-link {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--zk-primary-800, #1a4d1a);
  text-decoration: none;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--zk-lime, #8BC34A);
  padding-bottom: 4px;
  display: inline-block;
}

/* ===== Avada [fusion_title] Override ===== */
/* Avada wraps title in <div class="fusion-title"><h2 class="title-heading-...">...</h2></div>
   Mit class="zk-section-h2" hängt sich diese Klasse an den Wrapper. Wir greifen
   den inneren <h2> via descendant-Selector und stylen ihn über. */
.fusion-title.zk-section-h2 h2,
.fusion-title.zk-section-h2 .title-heading-left,
.fusion-title.zk-section-h2 .title-heading-center {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(2rem, 4vw, 3.2rem) !important;
  line-height: 1.05 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 0 !important;
}
.fusion-title.zk-mission-h2 h2 {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 500 !important;
  font-size: clamp(2rem, 4.4vw, 3.2rem) !important;
  line-height: 1.2 !important;
  color: #ffffff !important;
  margin: 0 !important;
  letter-spacing: -0.005em !important;
  max-width: 1080px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.fusion-title.zk-mission-h2 em {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 500 !important;
  font-style: italic !important;
  color: var(--zk-lime-light, #94C13A) !important;
}

/* ===== Avada [fusion_counter_box] Override ===== */
/* Tatsächlich gerenderte Struktur (Avada 7.x):
   <div class="fusion-counters-box zk-counters-grid">
     <div class="fusion-counter-box ... col-lg-6 col-md-6 col-sm-6 zk-counter">
       <div class="counter-box-container">
         <div class="content-box-percentage content-box-counter">
           <span class="display-counter">5.2</span>
           <span class="unit">%</span>
         </div>
         <div class="counter-box-content">caption</div>
       </div>
     </div>
   </div>
*/
/* Avada's .row Bootstrap-Klasse hat ::before und ::after mit display:table —
   die werden als CSS-Grid-Items behandelt und belegen 2 Slots in jedem Grid.
   Resultat: erstes echtes Item rutscht in col 2, letztes Item wraps. Killen. */
.fusion-counters-box.zk-counters-grid::before,
.fusion-counters-box.zk-counters-grid::after,
.fusion-content-boxes.zk-tracks-grid::before,
.fusion-content-boxes.zk-tracks-grid::after,
.fusion-content-boxes.zk-calls-grid::before,
.fusion-content-boxes.zk-calls-grid::after {
  display: none !important;
}

.fusion-counters-box.zk-counters-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  margin: 0 !important;
}
/* Override Avada Bootstrap-Grid (col-lg-6) auf direkte Children */
.fusion-counters-box.zk-counters-grid > .fusion-counter-box {
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
  margin: 0 !important;
  padding: 32px 28px !important;
  background: #ffffff !important;
  border-radius: 4px !important;
  border: none !important;
  border-top: 3px solid var(--zk-lime, #8BC34A) !important;
  text-align: left !important;
  float: none !important;
}
.fusion-counters-box.zk-counters-grid > .fusion-counter-box.zk-counter--invert {
  background: var(--zk-deep, #0a2010) !important;
  border-top-color: var(--zk-lime-light, #94C13A) !important;
}
.fusion-counters-box.zk-counters-grid .counter-box-container {
  text-align: left !important;
  padding: 0 !important;
  border: none !important;
}
.fusion-counters-box.zk-counters-grid .content-box-percentage {
  display: flex !important;
  align-items: baseline;
  gap: 6px;
  margin: 0 0 16px !important;
  padding: 0 !important;
}
.fusion-counters-box.zk-counters-grid .display-counter {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(2.6rem, 5vw, 4.4rem) !important;
  line-height: 1 !important;
  color: var(--zk-primary-700, #236b23) !important;
  letter-spacing: 0 !important;
}
.fusion-counters-box.zk-counters-grid .zk-counter--invert .display-counter {
  color: var(--zk-lime-light, #94C13A) !important;
}
.fusion-counters-box.zk-counters-grid .unit {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 400 !important;
  font-size: 1.4rem !important;
  color: var(--zk-text-muted, #6b7280) !important;
  margin-left: 4px !important;
}
.fusion-counters-box.zk-counters-grid .zk-counter--invert .unit {
  color: rgba(148, 193, 58, 0.65) !important;
}
.fusion-counters-box.zk-counters-grid .counter-box-content {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 400 !important;
  font-size: 0.95rem !important;
  line-height: 1.55 !important;
  color: var(--zk-gray-700, #374151) !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-align: left !important;
}
.fusion-counters-box.zk-counters-grid .zk-counter--invert .counter-box-content {
  color: rgba(255, 255, 255, 0.85) !important;
}
/* "~" prefix für die Krankenhäuser-Card (Avada hat keinen prefix-Param) */
.fusion-counters-box.zk-counters-grid .zk-counter--clinics .display-counter::before {
  content: "~";
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  color: inherit;
  margin-right: 0.05em;
}

/* ===== Avada [fusion_content_box] Override ===== */
/* Avada rendered struct (layout=icon-with-title):
   <div class="fusion-content-boxes ... zk-tracks-grid">
     <div class="fusion-column-wrapper">
       <div class="content-box-column ... zk-track-card">
         <div class="content-wrapper ...">
           <div class="heading">
             <h2 class="content-box-heading">Strategie</h2>
           </div>
           <div class="content-container">
             <span class="zk-track-card__code">T01</span>
             <p>description</p>
           </div>
         </div>
       </div>
     </div>
   </div>
*/

/* === 5 Tracks Grid ===
   Avada rendert Items als direkte Children (.content-box-column) im
   .fusion-content-boxes-Wrapper. Avada nutzt Bootstrap col-lg-2 (16.66%)
   für columns="5", was in Spalten 4+1 endet wegen Margins. CSS-Override
   forciert echtes 5-spaltiges CSS-Grid. */
.fusion-content-boxes.zk-tracks-grid {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 18px !important;
  margin: 0 !important;
}
/* `.fusion-clearfix` ist Avada's letzter „child" — verstecken */
.fusion-content-boxes.zk-tracks-grid > .fusion-clearfix {
  display: none !important;
}
.fusion-content-boxes.zk-tracks-grid > .content-box-column.zk-track-card {
  background: #ffffff !important;
  border: 1px solid var(--zk-border, #e5e7eb) !important;
  border-radius: 4px !important;
  padding: 28px 22px 24px !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
  text-align: left !important;
  position: relative;
  float: none !important;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.fusion-content-boxes.zk-tracks-grid .content-box-column.zk-track-card:hover {
  border-color: var(--zk-lime, #8BC34A) !important;
  transform: translateY(-2px);
  box-shadow: var(--zk-shadow);
}
.fusion-content-boxes.zk-tracks-grid .zk-track-card .content-wrapper {
  text-align: left !important;
  padding: 0 !important;
}
.fusion-content-boxes.zk-tracks-grid .zk-track-card .content-box-heading {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.18rem !important;
  line-height: 1.15 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 12px 0 6px !important;
  text-align: left !important;
}
.fusion-content-boxes.zk-tracks-grid .zk-track-card .content-box-heading a {
  color: inherit !important;
  text-decoration: none !important;
}
.fusion-content-boxes.zk-tracks-grid .zk-track-card .content-container {
  font-family: 'Roboto', sans-serif !important;
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
  color: var(--zk-gray-600, #4b5563) !important;
}
.fusion-content-boxes.zk-tracks-grid .zk-track-card .zk-track-card__code {
  display: inline-block;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1.85rem;
  line-height: 1;
  color: var(--zk-lime, #8BC34A);
  letter-spacing: -0.01em;
}
/* Avada injiziert <h2 class="content-box-heading"> als 2. Element. Wir
   wollen unseren zk-track-card__code OBEN, dann die heading. Das geht über
   order in Flex oder einfach über padding-Manipulation. Avada rendert
   strukturell heading vor content. Wir geben dem __code via display:block
   in der content-container darunter eine Pseudo-Plattform — funktioniert,
   weil Avada den content nach heading rendert. */

.zk-tracks-head {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 32px;
  margin-bottom: 56px;
}
.zk-tracks-head__title { flex: 1; min-width: 280px; }
.zk-tracks-head__sub {
  font-family: 'Roboto', sans-serif;
  color: var(--zk-text-muted, #6b7280);
  font-size: 1rem;
  line-height: 1.7;
  max-width: 380px;
  margin: 0;
}
.zk-tracks-cta {
  text-align: center;
  margin-top: 48px;
}
.zk-text-link--lime {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--zk-primary-800, #1a4d1a) !important;
  text-decoration: none !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--zk-lime, #8BC34A);
  padding-bottom: 4px;
}

/* === Kongress-Seite: Feature-Grid (4 Cards 2x2) ===
   Wie zk-tracks-grid aber 2-spaltig + lockerer. */
.fusion-content-boxes.zk-feature-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 20px !important;
  margin: 0 !important;
}
.fusion-content-boxes.zk-feature-grid::before,
.fusion-content-boxes.zk-feature-grid::after {
  display: none !important;
}
.fusion-content-boxes.zk-feature-grid > .fusion-clearfix {
  display: none !important;
}
.fusion-content-boxes.zk-feature-grid > .content-box-column.zk-feature-card {
  background: #ffffff !important;
  border: 1px solid var(--zk-border, #e5e7eb) !important;
  border-radius: 4px !important;
  padding: 32px 28px !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
  text-align: left !important;
  float: none !important;
  border-top: 3px solid var(--zk-lime, #8BC34A) !important;
}
.fusion-content-boxes.zk-feature-grid .zk-feature-card .content-box-heading {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.3rem !important;
  line-height: 1.2 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 0 0 12px !important;
  text-align: left !important;
}
.fusion-content-boxes.zk-feature-grid .zk-feature-card .content-container {
  font-family: 'Roboto', sans-serif !important;
  font-size: 0.98rem !important;
  line-height: 1.65 !important;
  color: var(--zk-gray-600, #4b5563) !important;
}

/* === Kongress-Seite: 4 Bereiche-Cards (Programm/Speaker/Themen/Location) === */
.fusion-content-boxes.zk-bereiche-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  margin: 0 !important;
}
.fusion-content-boxes.zk-bereiche-grid::before,
.fusion-content-boxes.zk-bereiche-grid::after {
  display: none !important;
}
.fusion-content-boxes.zk-bereiche-grid > .fusion-clearfix {
  display: none !important;
}
.fusion-content-boxes.zk-bereiche-grid > .content-box-column.zk-bereich-card {
  background: #ffffff !important;
  border: 1px solid var(--zk-border, #e5e7eb) !important;
  border-radius: 4px !important;
  padding: 32px 26px !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
  text-align: left !important;
  float: none !important;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.fusion-content-boxes.zk-bereiche-grid > .content-box-column.zk-bereich-card:hover {
  border-color: var(--zk-lime, #8BC34A) !important;
  transform: translateY(-2px);
  box-shadow: var(--zk-shadow);
}
.fusion-content-boxes.zk-bereiche-grid .zk-bereich-card .content-box-heading {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.25rem !important;
  line-height: 1.15 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 0 0 8px !important;
  text-align: left !important;
}
.fusion-content-boxes.zk-bereiche-grid .zk-bereich-card .content-box-heading a {
  color: inherit !important;
  text-decoration: none !important;
}
.fusion-content-boxes.zk-bereiche-grid .zk-bereich-card .content-container {
  font-family: 'Roboto', sans-serif !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  color: var(--zk-gray-600, #4b5563) !important;
  margin-bottom: 16px !important;
}
.fusion-content-boxes.zk-bereiche-grid .zk-bereich-card .fusion-read-more,
.fusion-content-boxes.zk-bereiche-grid .zk-bereich-card .content-box-readmore-link {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.82rem !important;
  color: var(--zk-primary-700, #236b23) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border-bottom: 2px solid var(--zk-lime, #8BC34A) !important;
  padding-bottom: 3px !important;
  display: inline-block !important;
}

@media (max-width: 1100px) {
  .fusion-content-boxes.zk-bereiche-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 800px) {
  .fusion-content-boxes.zk-feature-grid {
    grid-template-columns: 1fr !important;
  }
  .fusion-content-boxes.zk-bereiche-grid {
    grid-template-columns: 1fr !important;
  }
}

/* === Speaker / Partner Calls (2 Cards) === */
.fusion-content-boxes.zk-calls-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 28px !important;
  margin: 0 !important;
}
.fusion-content-boxes.zk-calls-grid > .fusion-clearfix {
  display: none !important;
}
.fusion-content-boxes.zk-calls-grid > .content-box-column.zk-call-card {
  background: #ffffff !important;
  border: 1px solid var(--zk-border, #e5e7eb) !important;
  border-radius: 4px !important;
  padding: 40px 36px !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
  text-align: left !important;
  float: none !important;
  display: flex !important;
  flex-direction: column;
}
.fusion-content-boxes.zk-calls-grid .zk-call-card .content-wrapper {
  text-align: left !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.fusion-content-boxes.zk-calls-grid .zk-call-card .content-box-heading {
  font-family: 'Oswald', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.7rem !important;
  line-height: 1.15 !important;
  color: var(--zk-deep, #0a2010) !important;
  margin: 16px 0 16px !important;
  text-align: left !important;
}
.fusion-content-boxes.zk-calls-grid .zk-call-card .content-box-heading a {
  color: inherit !important;
  text-decoration: none !important;
}
.fusion-content-boxes.zk-calls-grid .zk-call-card .content-container {
  font-family: 'Roboto', sans-serif !important;
  color: var(--zk-gray-700, #374151) !important;
  font-size: 1rem !important;
  line-height: 1.75 !important;
  flex-grow: 1;
  margin-bottom: 24px !important;
}
.fusion-content-boxes.zk-calls-grid .zk-call-card .fusion-read-more,
.fusion-content-boxes.zk-calls-grid .zk-call-card .content-box-readmore-link {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  color: var(--zk-primary-800, #1a4d1a) !important;
  text-decoration: none !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid var(--zk-lime, #8BC34A) !important;
  padding-bottom: 4px !important;
  align-self: flex-start;
  display: inline-block !important;
  margin-top: auto;
}
.zk-call-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0;
  width: 100%;
}
.zk-call-card__num {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 2.4rem;
  color: var(--zk-lime, #8BC34A);
  line-height: 1;
}
.zk-call-card__pill {
  background: var(--zk-primary-50, #E8F5E9);
  color: var(--zk-primary-700, #236b23);
  padding: 5px 12px;
  border-radius: 999px;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* === Speaker-Vorstellung Grid (v1.12.0) ===
   Card-Grid für Speaker-Profile: Bild (oder Initials-Fallback), Name,
   Position, Unternehmen. 3 Spalten Desktop, 2 Tablet, 1 Mobile.
   Eingesetzt auf /kongress/speaker/ unter den Call-Cards.
   ---------------------------------------------------------------- */
.zk-speaker-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin: 56px 0 0;
}
@media (max-width: 900px) {
  .zk-speaker-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (max-width: 560px) {
  .zk-speaker-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.zk-speaker-card {
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.zk-speaker-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(10, 32, 16, 0.08);
  border-color: var(--zk-lime, #8BC34A);
}

.zk-speaker-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--zk-avatar-bg, #1a4d1a);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Initials-Fallback, wenn kein Bild gesetzt ist (data-initials) */
.zk-speaker-card__media::after {
  content: attr(data-initials);
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 3.4rem;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.92);
  text-transform: uppercase;
}
/* Wenn ein <img> drin ist, Initials ausblenden */
.zk-speaker-card__media:has(img)::after {
  display: none;
}
.zk-speaker-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.zk-speaker-card__body {
  padding: 20px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.zk-speaker-card__name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.2;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 4px;
}
.zk-speaker-card__position {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--zk-primary-800, #1a4d1a);
  margin: 0;
}
.zk-speaker-card__company {
  font-family: 'Roboto', sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--zk-gray-700, #374151);
  margin: 2px 0 0;
}
/* Avada `.fusion-text p { margin: 0 0 1em 0 }` Override (Specificity-Bypass) */
.post-content .fusion-text .zk-speaker-card__position,
.post-content .fusion-text .zk-speaker-card__company {
  margin: 0 !important;
}
.post-content .fusion-text .zk-speaker-card__company {
  margin-top: 2px !important;
}

/* === Editorial Quote (Testimonial) ===
   Tatsächliche Avada-Struktur:
   <div class="fusion-testimonials zk-quote-editorial">
     <div class="reviews">
       <div class="review active-testimonial avatar-above no-avatar">
         <blockquote class="testimonials-shortcode-blockquote">
           <div class="awb-quote">
             <div class="awb-quote-content">Quote-Text</div>
           </div>
         </blockquote>
         <div class="author">
           <span class="company-name">
             <strong>Klinikmitarbeiterin</strong>, <span>Teilnehmerin Kongress 2024</span>
           </span>
         </div>
       </div>
     </div>
   </div>
*/
.fusion-testimonials.zk-quote-editorial,
.fusion-testimonials.zk-quote-editorial .reviews,
.fusion-testimonials.zk-quote-editorial .review {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.fusion-testimonials.zk-quote-editorial blockquote.testimonials-shortcode-blockquote {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 18px !important;
}
.fusion-testimonials.zk-quote-editorial .awb-quote {
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}
.fusion-testimonials.zk-quote-editorial .awb-quote-content {
  font-family: 'Roboto', sans-serif !important;
  font-weight: 400 !important;
  font-style: italic !important;
  font-size: clamp(1.3rem, 2.2vw, 1.7rem) !important;
  line-height: 1.55 !important;
  color: var(--zk-deep, #0a2010) !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
.fusion-testimonials.zk-quote-editorial blockquote::before,
.fusion-testimonials.zk-quote-editorial blockquote::after,
.fusion-testimonials.zk-quote-editorial .awb-quote::before {
  display: none !important;
}
.fusion-testimonials.zk-quote-editorial .author {
  border-top: 1px solid var(--zk-primary-100, #C8E6C9) !important;
  padding: 18px 0 0 !important;
  margin: 0 !important;
  font-style: normal !important;
  background: none !important;
  text-align: left !important;
}
.fusion-testimonials.zk-quote-editorial .author .company-name {
  display: block;
  font-family: 'Roboto', sans-serif !important;
}
.fusion-testimonials.zk-quote-editorial .author .company-name strong {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: var(--zk-deep, #0a2010) !important;
  margin-right: 6px;
}
.fusion-testimonials.zk-quote-editorial .author .company-name > span {
  font-family: 'Roboto', sans-serif !important;
  font-size: 0.85rem !important;
  color: var(--zk-text-muted, #6b7280) !important;
  font-weight: 400 !important;
}
.zk-quote-mark {
  width: 100%;
  aspect-ratio: 1/1;
  max-width: 180px;
  margin-left: auto;
  background: linear-gradient(135deg, #1a4d1a, var(--zk-deep, #0a2010));
  border-radius: 50%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-weight: 800;
  font-size: 3.5rem;
  color: var(--zk-lime-light, #94C13A);
  line-height: 1;
}

/* === fusion_separator brand override === */
.fusion-separator {
  margin: 0 auto !important;
}
.fusion-separator .icon-wrapper i {
  color: var(--zk-lime, #8BC34A) !important;
}

/* === Mission-Body Text-Color (auf dunkelgrünem BG) ===
   Avada's fusion-text setzt Default-Color für <p> auf body-color (dunkel).
   Auf dem dunkelgrünen Mission-Container müssen wir das mit höherer
   Spezifität und !important überschreiben. */
.post-content .fusion-text .zk-mission-body p,
.post-content .zk-mission-body p {
  font-family: 'Roboto', sans-serif !important;
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 1.02rem !important;
  line-height: 1.85 !important;
  margin: 0 0 16px !important;
}
.zk-mission-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  max-width: 1080px;
  margin: 0 auto;
  text-align: left;
}
@media (max-width: 800px) {
  .zk-mission-body {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* ----- Responsive Adjustments für Avada-Elemente -------------------------
   WICHTIG: Selektoren auf den tatsächlich gerenderten Wrapper. */
@media (max-width: 1100px) {
  .fusion-content-boxes.zk-tracks-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 800px) {
  .fusion-counters-box.zk-counters-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
  .fusion-content-boxes.zk-tracks-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }
  .fusion-content-boxes.zk-calls-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .zk-quote-mark {
    margin: 0 auto 24px !important;
    max-width: 120px !important;
    font-size: 2.6rem !important;
  }
}
@media (max-width: 480px) {
  .fusion-counters-box.zk-counters-grid {
    grid-template-columns: 1fr !important;
  }
  .fusion-content-boxes.zk-tracks-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   v1.5.0 — Subpages: Rückblick, Partner, Themen, Speakers Corner
   Eigene Patterns für inhaltliche Tiefenseiten. Strikt Class-basiert, weil
   WordPress KSES `display:grid|flex` aus inline styles strippt.
   ========================================================================== */

/* ----- Page-Hero (kompakter als Startseiten-Hero) ------------------------- */
.zk-page-hero {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 880px;
}
.zk-page-hero__overline {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--zk-lime-dark, #689F38);
}
.zk-page-hero--dark .zk-page-hero__overline {
  color: var(--zk-lime-light, #94C13A);
}
.zk-page-hero__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(2.4rem, 5.4vw, 4.4rem);
  line-height: 1.04;
  color: var(--zk-deep, #0a2010);
  margin: 0;
  letter-spacing: -0.005em;
}
.zk-page-hero__title em {
  font-family: 'Roboto', sans-serif;
  font-style: italic;
  font-weight: 500;
  color: var(--zk-primary-700, #236b23);
}
.zk-page-hero--dark .zk-page-hero__title {
  color: #ffffff;
}
.zk-page-hero--dark .zk-page-hero__title em {
  color: var(--zk-lime-light, #94C13A);
}
.zk-page-hero__lead {
  font-family: 'Roboto', sans-serif;
  font-size: 1.18rem;
  line-height: 1.7;
  color: var(--zk-gray-700, #374151);
  max-width: 640px;
  margin: 0;
}
.zk-page-hero--dark .zk-page-hero__lead {
  color: rgba(255, 255, 255, 0.8);
}
.zk-page-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: var(--zk-text-muted, #6b7280);
}
.zk-page-hero--dark .zk-page-hero__meta {
  color: rgba(255, 255, 255, 0.6);
}
.zk-page-hero__meta strong {
  color: var(--zk-deep, #0a2010);
  font-weight: 700;
}
.zk-page-hero--dark .zk-page-hero__meta strong {
  color: var(--zk-lime-light, #94C13A);
}

/* ----- Section-Head (overline + h2 + sub) reusable ------------------------ */
.zk-section-head {
  margin-bottom: 56px;
}
.zk-section-head--center { text-align: center; }
.zk-section-head__overline {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime-dark, #689F38);
  display: block;
  margin-bottom: 16px;
}
.zk-section-head--dark .zk-section-head__overline {
  color: var(--zk-lime-light, #94C13A);
}
.zk-section-head__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.05;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 18px;
}
.zk-section-head--dark .zk-section-head__title { color: #ffffff; }
.zk-section-head__sub {
  font-family: 'Roboto', sans-serif;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--zk-gray-600, #4b5563);
  margin: 0;
  max-width: 640px;
}
.zk-section-head--center .zk-section-head__sub { margin: 0 auto; }
.zk-section-head--dark .zk-section-head__sub { color: rgba(255, 255, 255, 0.75); }

/* ----- Editorial Pull-Quote ----------------------------------------------- */
.zk-pull-quote {
  position: relative;
  padding: 48px 56px 48px 88px;
  background: var(--zk-bg-alt, #f8faf5);
  border-left: 4px solid var(--zk-lime, #8BC34A);
  border-radius: 4px;
}
.zk-pull-quote::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 36px;
  width: 36px;
  height: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%238BC34A'%3E%3Cpath d='M9.4 6.4c-2.4 1.8-4 4.4-4 7.6v3.6h5v-7.4h-2.4c.4-1.4 1.4-2.4 2.6-3.2L9.4 6.4zm9 0c-2.4 1.8-4 4.4-4 7.6v3.6h5v-7.4h-2.4c.4-1.4 1.4-2.4 2.6-3.2L18.4 6.4z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}
.zk-pull-quote p {
  font-family: 'Roboto', sans-serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.2rem, 2.1vw, 1.6rem);
  line-height: 1.55;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 20px;
}
.zk-pull-quote cite {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-style: normal;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--zk-primary-700, #236b23);
  text-transform: uppercase;
}

/* ----- Rückblick: Big-Numbers (vier-spaltig) ------------------------------ */
.zk-recap-numbers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.zk-recap-num {
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 4px;
  padding: 36px 28px;
  border-top: 4px solid var(--zk-lime, #8BC34A);
}
.zk-recap-num--invert {
  background: var(--zk-deep, #0a2010);
  border-color: transparent;
  border-top-color: var(--zk-lime-light, #94C13A);
}
.zk-recap-num__big {
  font-family: 'Oswald', sans-serif;
  font-weight: 800;
  font-size: clamp(2.6rem, 5vw, 3.8rem);
  line-height: 1;
  color: var(--zk-primary-700, #236b23);
  margin-bottom: 14px;
  letter-spacing: -0.02em;
}
.zk-recap-num--invert .zk-recap-num__big { color: var(--zk-lime-light, #94C13A); }
.zk-recap-num__big > span {
  font-family: 'Oswald', sans-serif;
  font-weight: 500;
  font-size: 0.45em;
  color: var(--zk-text-muted, #6b7280);
  margin-left: 4px;
  letter-spacing: 0;
}
.zk-recap-num--invert .zk-recap-num__big > span { color: rgba(148, 193, 58,0.65); }
.zk-recap-num__label {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--zk-gray-700, #374151);
  margin: 0;
}
.zk-recap-num--invert .zk-recap-num__label { color: rgba(255, 255, 255, 0.85); }

/* ----- Rückblick-Hub: Year-Timeline (Editorial-Magazin-Stil) -------------- */
.zk-timeline {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.zk-timeline-edition {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 28px 32px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 6px;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  text-decoration: none !important;
  color: inherit;
  position: relative;
}
.zk-timeline-edition__link {
  position: absolute;
  inset: 0;
  z-index: 2;
  text-decoration: none;
  text-indent: -9999px;
  overflow: hidden;
}
/* Hide wpautop-injected empty <p> tags that mess with grid layout */
.zk-timeline > p,
.zk-timeline-edition > p {
  display: none;
}
.zk-timeline-edition > p:has(.zk-timeline-edition__cta),
.zk-timeline-edition > p:has(.zk-timeline-edition__year) {
  display: contents;
}
.zk-timeline-edition:hover {
  border-color: var(--zk-lime, #8BC34A);
  transform: translateX(4px);
  box-shadow: var(--zk-shadow);
}
.zk-timeline-edition--unavailable {
  opacity: 0.6;
  cursor: default;
}
.zk-timeline-edition--unavailable:hover {
  transform: none;
  border-color: var(--zk-border, #e5e7eb);
  box-shadow: none;
}
.zk-timeline-edition--featured {
  background: linear-gradient(135deg, var(--zk-deep, #0a2010), #1a4d1a);
  border-color: transparent;
  color: #ffffff;
}
.zk-timeline-edition--featured:hover {
  background: linear-gradient(135deg, #122d12, #226822);
  color: #ffffff;
}
.zk-timeline-edition__year {
  font-family: 'Oswald', sans-serif;
  font-weight: 800;
  font-size: 4rem;
  line-height: 1;
  color: var(--zk-primary-700, #236b23);
  letter-spacing: -0.02em;
}
.zk-timeline-edition--featured .zk-timeline-edition__year {
  color: var(--zk-lime-light, #94C13A);
}
.zk-timeline-edition__year small {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-text-muted, #6b7280);
  margin-top: 6px;
}
.zk-timeline-edition--featured .zk-timeline-edition__year small {
  color: rgba(255, 255, 255, 0.55);
}
.zk-timeline-edition__body { min-width: 0; }
.zk-timeline-edition__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.45rem;
  line-height: 1.2;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 8px;
}
.zk-timeline-edition--featured .zk-timeline-edition__title { color: #ffffff; }
.zk-timeline-edition__desc {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--zk-gray-600, #4b5563);
  margin: 0;
}
.zk-timeline-edition--featured .zk-timeline-edition__desc { color: rgba(255, 255, 255, 0.8); }
.zk-timeline-edition__cta {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--zk-primary-700, #236b23);
  white-space: nowrap;
}
.zk-timeline-edition--featured .zk-timeline-edition__cta { color: var(--zk-lime-light, #94C13A); }
.zk-timeline-edition__cta--muted {
  color: var(--zk-text-muted, #6b7280);
}

/* ----- Story-Block für Rückblick-Detailseiten ---------------------------- */
.zk-story-block {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 56px;
  align-items: start;
  padding: 64px 0;
  border-top: 1px solid var(--zk-border-light, #f3f4f6);
}
.zk-story-block:first-of-type { border-top: none; padding-top: 32px; }
.zk-story-block__label {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime-dark, #689F38);
  position: sticky;
  top: 100px;
}
.zk-story-block__label::before {
  content: "";
  display: block;
  width: 40px;
  height: 3px;
  background: var(--zk-lime, #8BC34A);
  margin-bottom: 16px;
}
.zk-story-block__body h3 {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  line-height: 1.15;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 20px;
}
.zk-story-block__body p {
  font-family: 'Roboto', sans-serif;
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--zk-gray-700, #374151);
  margin: 0 0 18px;
}
.zk-story-block__body ul {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--zk-gray-700, #374151);
  padding-left: 20px;
  margin: 18px 0;
}
.zk-story-block__body li { margin-bottom: 8px; }
.zk-story-block__body strong { color: var(--zk-deep, #0a2010); font-weight: 600; }

/* ----- Partner: Diamant Featured Card ------------------------------------ */
.zk-partner-featured {
  background: linear-gradient(135deg, var(--zk-deep, #0a2010), #1a4d1a);
  border-radius: 6px;
  padding: 64px 56px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.zk-partner-featured::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--zk-lime, #8BC34A) 0%, transparent 70%);
  opacity: 0.15;
  pointer-events: none;
}
.zk-partner-featured__head {
  position: relative;
}
.zk-partner-featured__tier {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--zk-lime-light, #94C13A);
  color: var(--zk-deep, #0a2010);
  padding: 8px 16px;
  border-radius: 999px;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.zk-partner-featured__tier::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--zk-deep, #0a2010);
  transform: rotate(45deg);
}
.zk-partner-featured__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.1;
  color: #ffffff;
  margin: 0 0 18px;
}
.zk-partner-featured__desc {
  font-family: 'Roboto', sans-serif;
  font-size: 1.02rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 24px;
}
.zk-partner-featured__list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.zk-partner-featured__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 28px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(148, 193, 58, 0.2);
  border-radius: 4px;
  text-decoration: none !important;
  color: #ffffff !important;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.zk-partner-featured__item:hover {
  background: rgba(148, 193, 58, 0.1);
  border-color: var(--zk-lime-light, #94C13A);
  transform: translateX(4px);
}
.zk-partner-featured__item-name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.01em;
}
.zk-partner-featured__item-go {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--zk-lime-light, #94C13A);
}

/* ----- Partner: Tier-Section (Gold/Silber/Bronze) ----------------------- */
.zk-tier-section { margin-top: 80px; }
.zk-tier-section__head {
  display: flex;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 28px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--zk-border, #e5e7eb);
}
.zk-tier-section__name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  color: var(--zk-deep, #0a2010);
  margin: 0;
}
.zk-tier-section__count {
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--zk-text-muted, #6b7280);
}
.zk-tier-section__line {
  flex: 1;
  height: 1px;
  background: var(--zk-border, #e5e7eb);
}
.zk-tier-section__chip {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.zk-tier-section__chip--diamant { background: linear-gradient(135deg, #94C13A, #ffffff); border: 1px solid #8BC34A; }
.zk-tier-section__chip--gold   { background: linear-gradient(135deg, #d4a13d, #f5d38a); }
.zk-tier-section__chip--silber { background: linear-gradient(135deg, #b6bcc4, #e3e7eb); }
.zk-tier-section__chip--bronze { background: linear-gradient(135deg, #a36a3a, #d99a64); }
.zk-tier-section__chip--medien { background: linear-gradient(135deg, #4f6c8c, #93b1d1); }
.zk-tier-section__chip--netz   { background: linear-gradient(135deg, #4caf50, #8BC34A); }

.zk-tier-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.zk-tier-grid--small {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.zk-partner-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 4px;
  padding: 24px 20px;
  text-decoration: none !important;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.1rem;
  text-align: center;
  letter-spacing: 0.01em;
  color: var(--zk-deep, #0a2010) !important;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  position: relative;
}
.zk-partner-card:hover {
  border-color: var(--zk-lime, #8BC34A);
  transform: translateY(-2px);
  box-shadow: var(--zk-shadow);
}
.zk-partner-card--small {
  min-height: 72px;
  font-size: 0.95rem;
  padding: 16px 14px;
  font-family: 'Roboto', sans-serif;
  font-weight: 600;
}
.zk-partner-card--text {
  cursor: default;
}
.zk-partner-card--text:hover {
  border-color: var(--zk-border, #e5e7eb);
  transform: none;
  box-shadow: none;
}

/* =========================================================================
   Partner-Liste v1.13.x — Shortcode-getrieben ([zk_partners tier="..."])
   Pro Tier eine .zk-partners-section. Cards rendern Logo (oder Initials-
   Fallback), Name, optional Description (Diamant) und URL.
   ========================================================================= */
.zk-partners-section { margin-top: 80px; }
.zk-partners-section:first-child { margin-top: 0; }

.zk-partners-section__head {
  display: flex;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 28px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--zk-border, #e5e7eb);
}
.zk-partners-section__chip {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  align-self: center;
}
.zk-partners-section__chip--diamant { background: linear-gradient(135deg, #94C13A, #ffffff); border: 1px solid #8BC34A; }
.zk-partners-section__chip--gold    { background: linear-gradient(135deg, #d4a13d, #f5d38a); }
.zk-partners-section__chip--silber  { background: linear-gradient(135deg, #b6bcc4, #e3e7eb); }
.zk-partners-section__chip--bronze  { background: linear-gradient(135deg, #a36a3a, #d99a64); }
.zk-partners-section__chip--medien  { background: linear-gradient(135deg, #4f6c8c, #93b1d1); }
.zk-partners-section__chip--netz    { background: linear-gradient(135deg, #4caf50, #8BC34A); }

.zk-partners-section__name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  color: var(--zk-deep, #0a2010);
  margin: 0;
}
.zk-partners-section__count {
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--zk-text-muted, #6b7280);
}
.zk-partners-section__line {
  flex: 1;
  height: 1px;
  background: var(--zk-border, #e5e7eb);
}

/* ----- Grids: per tier-spezifische Spaltenzahl ---------------------------- */
.zk-partners-grid {
  display: grid;
  gap: 20px;
}
.zk-partners-grid--diamant {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.zk-partners-grid--gold,
.zk-partners-grid--silber,
.zk-partners-grid--bronze {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.zk-partners-grid--medien {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.zk-partners-grid--netz {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
@media (max-width: 560px) {
  .zk-partners-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px;
  }
}

/* ----- Item / Card -------------------------------------------------------- */
.zk-partner-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 24px 20px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 6px;
  text-decoration: none !important;
  color: var(--zk-deep, #0a2010) !important;
  transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
  position: relative;
}
a.zk-partner-item:hover {
  border-color: var(--zk-lime, #8BC34A);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(10, 32, 16, 0.08);
}

.zk-partner-item__logo {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--zk-avatar-bg, #1a4d1a);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zk-partner-item__logo::after {
  content: attr(data-initials);
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.8rem;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.92);
  text-transform: uppercase;
}
.zk-partner-item__logo:has(img)::after { display: none; }
.zk-partner-item__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #ffffff;
  display: block;
  padding: 8px;
}

.zk-partner-item__name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.15rem;
  line-height: 1.2;
  color: var(--zk-deep, #0a2010);
  letter-spacing: 0.01em;
}
.zk-partner-item__desc {
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--zk-gray-700, #374151);
  margin: 0;
}
.zk-partner-item__url {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--zk-primary-800, #1a4d1a);
  margin-top: auto;
}
/* Avada `.fusion-text p`-Override-Pattern (siehe v1.11.1) */
.post-content .fusion-text .zk-partner-item__name,
.post-content .fusion-text .zk-partner-item__desc,
.post-content .fusion-text .zk-partner-item__url {
  margin: 0 !important;
}
.post-content .fusion-text .zk-partner-item__url {
  margin-top: auto !important;
}

/* ----- Tier-spezifische Card-Variations ---------------------------------- */
/* Diamant: größere Logo-Fläche, Description sichtbar */
.zk-partners-grid--diamant .zk-partner-item {
  padding: 32px 28px;
  gap: 16px;
}
.zk-partners-grid--diamant .zk-partner-item__logo {
  aspect-ratio: 16 / 7;
}
.zk-partners-grid--diamant .zk-partner-item__logo::after {
  font-size: 2.4rem;
}
.zk-partners-grid--diamant .zk-partner-item__name {
  font-size: 1.5rem;
}

/* Medien: kompaktere Cards */
.zk-partners-grid--medien .zk-partner-item {
  padding: 16px 14px;
  gap: 8px;
}
.zk-partners-grid--medien .zk-partner-item__logo::after {
  font-size: 1.2rem;
}
.zk-partners-grid--medien .zk-partner-item__name {
  font-size: 0.92rem;
}
.zk-partners-grid--medien .zk-partner-item__url {
  display: none;
}

/* Netzwerk: Chip-Style ohne Logo, ohne Hover */
.zk-partners-grid--netz .zk-partner-item {
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: 14px 16px;
  cursor: default;
}
.zk-partners-grid--netz .zk-partner-item:hover {
  border-color: var(--zk-border, #e5e7eb);
  transform: none;
  box-shadow: none;
}
.zk-partners-grid--netz .zk-partner-item__name {
  font-family: 'Roboto', sans-serif;
  font-weight: 600;
  font-size: 0.92rem;
  text-align: center;
}

/* ----- Partner werden: 4 Tier Pricing Cards ----------------------------- */
.zk-pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.zk-pricing-card {
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 6px;
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  position: relative;
  border-top: 4px solid;
}
.zk-pricing-card--diamant {
  border-top-color: var(--zk-lime-light, #94C13A);
  background: linear-gradient(180deg, var(--zk-deep, #0a2010) 0%, #122d12 100%);
  color: #ffffff;
}
.zk-pricing-card--gold   { border-top-color: #d4a13d; }
.zk-pricing-card--silber { border-top-color: #b6bcc4; }
.zk-pricing-card--bronze { border-top-color: #a36a3a; }
.zk-pricing-card__name {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 6px;
}
.zk-pricing-card--diamant .zk-pricing-card__name { color: var(--zk-lime-light, #94C13A); }
.zk-pricing-card__pos {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--zk-text-muted, #6b7280);
  margin-bottom: 24px;
  display: block;
}
.zk-pricing-card--diamant .zk-pricing-card__pos { color: rgba(148, 193, 58, 0.7); }
.zk-pricing-card__lead {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--zk-gray-700, #374151);
  margin: 0 0 24px;
  flex-grow: 0;
}
.zk-pricing-card--diamant .zk-pricing-card__lead { color: rgba(255, 255, 255, 0.85); }
.zk-pricing-card__list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--zk-gray-700, #374151);
  flex-grow: 1;
}
.zk-pricing-card--diamant .zk-pricing-card__list { color: rgba(255, 255, 255, 0.85); }
.zk-pricing-card__list li {
  padding: 8px 0 8px 28px;
  position: relative;
  border-bottom: 1px solid var(--zk-border-light, #f3f4f6);
}
.zk-pricing-card--diamant .zk-pricing-card__list li {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
.zk-pricing-card__list li:last-child { border-bottom: none; }
.zk-pricing-card__list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 14px;
  width: 14px;
  height: 8px;
  border-left: 2px solid var(--zk-lime, #8BC34A);
  border-bottom: 2px solid var(--zk-lime, #8BC34A);
  transform: rotate(-45deg);
}
.zk-pricing-card--diamant .zk-pricing-card__list li::before {
  border-color: var(--zk-lime-light, #94C13A);
}

/* ----- Themen / Tracks Deep-Layout -------------------------------------- */
.zk-track-deep {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 56px;
  padding: 80px 0;
  border-top: 1px solid var(--zk-border, #e5e7eb);
}
.zk-track-deep:first-of-type {
  border-top: 4px solid var(--zk-lime, #8BC34A);
  padding-top: 80px;
}
.zk-track-deep__code {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 4rem;
  line-height: 1;
  color: var(--zk-lime, #8BC34A);
  letter-spacing: -0.02em;
}
.zk-track-deep__code small {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-text-muted, #6b7280);
  margin-top: 12px;
}
.zk-track-deep__body { min-width: 0; }
.zk-track-deep__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.1;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 18px;
}
.zk-track-deep__lead {
  font-family: 'Roboto', sans-serif;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--zk-gray-700, #374151);
  margin: 0 0 28px;
  max-width: 680px;
}
.zk-track-deep__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 32px;
}
.zk-track-deep__list li {
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--zk-gray-700, #374151);
  padding: 12px 0 12px 28px;
  position: relative;
  border-bottom: 1px solid var(--zk-border-light, #f3f4f6);
}
.zk-track-deep__list li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  color: var(--zk-lime, #8BC34A);
}

/* ----- Speakers Corner Numbered Checklist ------------------------------- */
.zk-checklist {
  display: flex;
  flex-direction: column;
  gap: 64px;
}
.zk-check-section {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 48px;
  padding-top: 48px;
  border-top: 1px solid var(--zk-border, #e5e7eb);
}
.zk-check-section:first-child {
  border-top: none;
  padding-top: 0;
}
.zk-check-section__num {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 4.5rem;
  line-height: 1;
  color: var(--zk-lime, #8BC34A);
  letter-spacing: -0.02em;
}
.zk-check-section__num small {
  display: block;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-text-muted, #6b7280);
  margin-top: 10px;
}
.zk-check-section__body { min-width: 0; }
.zk-check-section__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.1;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 16px;
}
.zk-check-section__lead {
  font-family: 'Roboto', sans-serif;
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--zk-gray-700, #374151);
  margin: 0 0 24px;
}
.zk-check-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.zk-check-list li {
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--zk-gray-700, #374151);
  padding: 16px 20px 16px 56px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 4px;
  position: relative;
}
.zk-check-list li::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  margin-top: -7px;
  width: 18px;
  height: 11px;
  border-left: 2px solid var(--zk-lime, #8BC34A);
  border-bottom: 2px solid var(--zk-lime, #8BC34A);
  transform: rotate(-45deg);
}
.zk-check-list li strong { color: var(--zk-deep, #0a2010); font-weight: 600; }

/* Info-Card für Probedurchlauf-Termine */
.zk-info-card {
  background: var(--zk-sand, #f5ecd9);
  border-left: 4px solid var(--zk-lime-dark, #689F38);
  border-radius: 4px;
  padding: 28px 32px;
  margin-top: 24px;
  font-family: 'Roboto', sans-serif;
}
.zk-info-card__label {
  display: block;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--zk-primary-700, #236b23);
  margin-bottom: 12px;
}
.zk-info-card__termine {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin: 16px 0;
  list-style: none;
  padding: 0;
}
.zk-info-card__termine li {
  background: #ffffff;
  padding: 12px 16px;
  border-radius: 4px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--zk-deep, #0a2010);
  text-align: center;
  border: 1px solid var(--zk-border-light, #f3f4f6);
}
.zk-info-card__zoom {
  display: inline-block;
  margin-top: 10px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--zk-primary-700, #236b23);
  border-bottom: 1px solid var(--zk-primary-700, #236b23);
  text-decoration: none;
  word-break: break-all;
}

/* Speaker-Hashtag-Highlight */
.zk-hashtag {
  display: inline-block;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  background: var(--zk-deep, #0a2010);
  color: var(--zk-lime-light, #94C13A);
  padding: 4px 12px;
  border-radius: 4px;
  letter-spacing: 0.05em;
  font-size: 0.92rem;
}

/* ----- Generic content blocks (used by Themen/Speakers) ----------------- */
.zk-text-block {
  font-family: 'Roboto', sans-serif;
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--zk-gray-700, #374151);
  max-width: 760px;
}
.zk-text-block p { margin: 0 0 18px; }
.zk-text-block strong { color: var(--zk-deep, #0a2010); font-weight: 600; }
.zk-text-block a {
  color: var(--zk-primary-700, #236b23);
  border-bottom: 1px solid var(--zk-lime, #8BC34A);
  text-decoration: none !important;
}

/* Inline-Speaker-CTA Block */
.zk-call-block {
  background: var(--zk-bg-alt, #f8faf5);
  border-left: 4px solid var(--zk-lime, #8BC34A);
  border-radius: 4px;
  padding: 36px 40px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
}
.zk-call-block__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.15;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 8px;
}
.zk-call-block__sub {
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  color: var(--zk-gray-600, #4b5563);
  margin: 0;
}
.zk-call-block__btn {
  display: inline-block;
  background: var(--zk-deep, #0a2010);
  color: #ffffff !important;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px 28px;
  border-radius: 4px;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background 0.2s, transform 0.2s;
}
.zk-call-block__btn:hover {
  background: var(--zk-primary-700, #236b23);
  transform: translateY(-2px);
}

/* ==========================================================================
   Rückblick 2024 — eigene Komponenten
   Bauen das Original-Design der 2024-Edition (Wassertropfen-Stats, Highlights-
   Karten, Region-Balken, Pictogramm) im ZUKE Brand-Look (Lime + Forest-Green)
   nach. Werden ausschließlich auf der Page /rueckblick/jubilaeum-2024/ benutzt.
   ========================================================================== */

/* ---- 2024 · Drop-Stats (Wassertropfen-Form mit Zahl + Label) ----------- */
.zk-drops-section {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 760px;
  margin: 0 auto;
}
.zk-drop-row {
  display: flex;
  align-items: center;
  gap: 32px;
}
.zk-drop-row--offset {
  padding-left: 96px;
}
.zk-drop {
  position: relative;
  width: 130px;
  height: 130px;
  flex-shrink: 0;
  background: var(--zk-lime, #8BC34A);
  border-radius: 50% 0 50% 50%;
  transform: rotate(45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 22px rgba(139, 195, 74, 0.32);
}
.zk-drop__num {
  transform: rotate(-45deg);
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1.85rem;
  color: #ffffff;
  letter-spacing: -0.01em;
  line-height: 1;
}
.zk-drop--sm { width: 100px; height: 100px; }
.zk-drop--sm .zk-drop__num { font-size: 1.4rem; }
.zk-drop-row__label {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--zk-deep, #0a2010);
  position: relative;
  padding-left: 36px;
  letter-spacing: 0.005em;
}
.zk-drop-row__label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 28px;
  height: 2px;
  background: var(--zk-lime, #8BC34A);
}
.zk-drop-row--invert .zk-drop-row__label {
  color: #ffffff;
}
.zk-drop-row--invert .zk-drop-row__label::before {
  background: var(--zk-lime-light, #94C13A);
}
.zk-drop-row--invert .zk-drop {
  background: var(--zk-lime-light, #94C13A);
  box-shadow: 0 8px 22px rgba(148, 193, 58, 0.25);
}
.zk-drop-row--invert .zk-drop__num {
  color: var(--zk-deep, #0a2010);
}

/* ---- 2024 · Highlights-Karten (alternierend, Dark-Forest BG) ----------- */
.zk-highlights-2024 {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 860px;
  margin: 0 auto;
}
.zk-highlight-card {
  background: linear-gradient(135deg, var(--zk-deep, #0a2010), #14361b);
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: stretch;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}
.zk-highlight-card--reverse {
  grid-template-columns: 1fr 220px;
}
.zk-highlight-card__media {
  position: relative;
  min-height: 180px;
}
.zk-highlight-card--reverse .zk-highlight-card__media {
  order: 2;
}
.zk-highlight-card__media--reach {
  background:
    linear-gradient(180deg, rgba(10,32,16,0.15) 0%, rgba(10,32,16,0.55) 100%),
    linear-gradient(180deg, #5b7894 0%, #34526f 55%, #1f3954 100%);
}
.zk-highlight-card__media--reach::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 50%;
  background:
    linear-gradient(135deg, transparent 35%, rgba(255,255,255,0.18) 36%, transparent 60%),
    linear-gradient(155deg, transparent 50%, rgba(255,255,255,0.1) 51%, transparent 75%);
  clip-path: polygon(0 100%, 18% 35%, 32% 55%, 50% 18%, 68% 48%, 82% 30%, 100% 60%, 100% 100%);
  background-color: #243d52;
}
.zk-highlight-card__media--practice {
  background:
    radial-gradient(circle at 28% 32%, var(--zk-primary-300, #81C784) 0%, transparent 35%),
    radial-gradient(circle at 72% 68%, var(--zk-primary-200, #A5D6A7) 0%, transparent 30%),
    radial-gradient(circle at 50% 50%, var(--zk-primary-600, #2d8a2d) 0%, var(--zk-primary-800, #1a4d1a) 80%);
}
.zk-highlight-card__media--trends {
  background:
    linear-gradient(135deg, #ece4d4 0%, #d8c9aa 100%);
}
.zk-highlight-card__media--trends::after {
  content: "";
  position: absolute;
  inset: 18% 16% 22% 14%;
  background:
    linear-gradient(160deg, transparent 48%, rgba(60,40,20,0.55) 49%, transparent 51%),
    linear-gradient(110deg, transparent 60%, rgba(60,40,20,0.4) 61%, transparent 63%);
}
.zk-highlight-card__body {
  padding: 32px 38px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.zk-highlight-card__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 1.55rem;
  line-height: 1.15;
  color: var(--zk-lime, #8BC34A);
  margin: 0 0 14px;
  letter-spacing: 0.005em;
}
.zk-highlight-card__body p {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
  margin: 0;
}

/* ---- 2024 · Herkunft (horizontale Balken pro Region) ------------------- */
.zk-region-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 680px;
  margin: 0 auto;
}
.zk-region-row {
  display: grid;
  grid-template-columns: 180px 1fr 64px;
  align-items: center;
  gap: 18px;
}
.zk-region-row__label {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--zk-gray-700, #374151);
  text-align: right;
}
.zk-region-row__track {
  position: relative;
  height: 24px;
  background: var(--zk-gray-100, #f3f4f6);
  border-radius: 2px;
  overflow: hidden;
}
.zk-region-row__fill {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--zk-primary-500, #4CAF50);
  border-radius: 2px;
}
.zk-region-row__fill--west  { background: #c5454f; }
.zk-region-row__fill--sued  { background: var(--zk-lime, #8BC34A); }
.zk-region-row__fill--ost   { background: var(--zk-deep, #0a2010); }
.zk-region-row__fill--nord  { background: #4a6b3a; }
.zk-region-row__fill--at    { background: #6ba6c4; }
.zk-region-row__fill--ch    { background: #7aaedc; }
.zk-region-row__fill--other { background: #b0c8d8; }
.zk-region-row__pct {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  color: var(--zk-deep, #0a2010);
  text-align: left;
}
.zk-region-axis {
  display: grid;
  grid-template-columns: 180px 1fr 64px;
  gap: 18px;
  margin-bottom: 6px;
}
.zk-region-axis__scale {
  display: flex;
  justify-content: space-between;
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  color: var(--zk-text-muted, #6b7280);
  letter-spacing: 0.04em;
}
.zk-region-axis__unit {
  font-family: 'Roboto', sans-serif;
  font-size: 0.78rem;
  color: var(--zk-text-muted, #6b7280);
}

/* ---- 2024 · Teilnahme-Pictogram (wie oft schon dabei) ------------------ */
.zk-attendance {
  display: flex;
  flex-direction: column;
  gap: 22px;
  max-width: 480px;
  margin: 0 auto;
}
.zk-attendance__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.zk-attendance__label {
  font-family: 'Roboto', sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
}
.zk-attendance__people {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.zk-attendance__person {
  display: inline-block;
  width: 26px;
  height: 32px;
  position: relative;
  color: var(--zk-lime, #8BC34A);
}
.zk-attendance__person::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 11px;
  height: 11px;
  background: currentColor;
  border-radius: 50%;
}
.zk-attendance__person::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 19px;
  background: currentColor;
  border-radius: 8px 8px 3px 3px;
}
.zk-attendance__row--first  .zk-attendance__person { color: var(--zk-lime, #8BC34A); }
.zk-attendance__row--second .zk-attendance__person { color: var(--zk-deep, #0a2010); }
.zk-attendance__row--third  .zk-attendance__person { color: var(--zk-primary-300, #81C784); }
.zk-attendance__row--fourth .zk-attendance__person { color: #c4b89e; }

/* Hide wpautop-injected empty <p> / line-break artefakte in 2024-Sektionen */
.zk-drops-section > p:empty,
.zk-highlights-2024 > p:empty,
.zk-region-bars > p:empty,
.zk-attendance > p:empty {
  display: none;
}

/* ==========================================================================
   Globaler Footer (Layout-Element "kongress footer")
   ========================================================================== */
.zk-footer {
  background: #0a2010;
  color: rgba(255, 255, 255, 0.78);
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  line-height: 1.7;
}
.zk-footer a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  transition: color 0.2s;
}
.zk-footer a:hover {
  color: var(--zk-lime-light, #94C13A);
}
.zk-footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.5fr;
  gap: 56px;
  padding: 80px 0 64px;
  border-bottom: 1px solid rgba(148, 193, 58, 0.08);
}
.zk-footer__brand-overline {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime, #8BC34A);
  margin-bottom: 14px;
  display: block;
}
.zk-footer__brand-title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.55rem;
  line-height: 1.15;
  color: #ffffff;
  margin: 0 0 14px;
  letter-spacing: 0.005em;
}
.zk-footer__brand-tagline {
  margin: 0 0 24px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.95rem;
  max-width: 320px;
}
.zk-footer__social {
  display: flex;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.zk-footer__social-link {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(148, 193, 58, 0.18);
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.zk-footer__social-link:hover {
  background: var(--zk-lime, #8BC34A);
  border-color: var(--zk-lime, #8BC34A);
  color: var(--zk-deep, #0a2010) !important;
}
.zk-footer__col-title {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--zk-lime, #8BC34A);
  margin: 0 0 18px;
}
.zk-footer__nav {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.zk-footer__nav a {
  font-size: 0.95rem;
  border-bottom: 1px solid transparent;
}
.zk-footer__nav a:hover {
  color: var(--zk-lime-light, #94C13A);
  border-bottom-color: rgba(148, 193, 58, 0.4);
}
.zk-footer__newsletter-title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  line-height: 1.2;
  color: #ffffff;
  margin: 0 0 12px;
}
.zk-footer__newsletter-text {
  margin: 0 0 20px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.92rem;
  line-height: 1.6;
}
.zk-footer__newsletter-form {
  display: flex;
  gap: 0;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(148, 193, 58, 0.18);
  border-radius: 4px;
  padding: 5px;
  margin: 0 0 14px;
}
.zk-footer__newsletter-form input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  color: #ffffff;
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
  padding: 12px 14px;
  outline: none;
  min-width: 0;
}
.zk-footer__newsletter-form input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.4);
}
.zk-footer__newsletter-form button {
  background: var(--zk-btn, #95C23C);
  color: var(--zk-btn-text, #ffffff);
  border: none;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 22px;
  border-radius: 3px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.zk-footer__newsletter-form button:hover {
  background: var(--zk-btn-hover, #85AE34);
  color: #ffffff;
}
.zk-footer__newsletter-fineprint {
  margin: 0;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.55;
}
.zk-footer__newsletter-fineprint a {
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(148, 193, 58, 0.25);
}
.zk-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 26px 0 32px;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.zk-footer__copyright {
  margin: 0;
}
.zk-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.zk-footer__legal a {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.82rem;
}

/* Hide wpautop-injected empty <p> in footer markup */
.zk-footer p:empty,
.zk-footer__top > p:empty,
.zk-footer__bottom > p:empty {
  display: none;
}

@media (max-width: 1024px) {
  .zk-footer__top {
    grid-template-columns: 1fr 1fr;
    gap: 48px 40px;
    padding: 64px 0 56px;
  }
  .zk-footer__newsletter {
    grid-column: 1 / -1;
  }
}
@media (max-width: 600px) {
  .zk-footer__top {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 56px 0 48px;
  }
  .zk-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 22px 0 28px;
  }
  .zk-footer__newsletter-form button {
    padding: 12px 16px;
  }
}

/* ----- Responsive --------------------------------------------------------- */
@media (max-width: 1100px) {
  .zk-recap-numbers { grid-template-columns: repeat(2, 1fr); }
  .zk-pricing-grid  { grid-template-columns: repeat(2, 1fr); }
  .zk-partner-featured { grid-template-columns: 1fr; gap: 32px; padding: 48px 36px; }
  .zk-track-deep   { grid-template-columns: 140px 1fr; gap: 36px; }
  .zk-track-deep__code { font-size: 3rem; }
  .zk-story-block  { grid-template-columns: 160px 1fr; gap: 32px; }
  .zk-check-section { grid-template-columns: 80px 1fr; gap: 32px; }
  .zk-check-section__num { font-size: 3.4rem; }
}
@media (max-width: 768px) {
  .zk-recap-numbers { grid-template-columns: 1fr 1fr; gap: 14px; }
  .zk-recap-num { padding: 24px 20px; }
  .zk-timeline-edition {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 24px 22px;
  }
  .zk-timeline-edition__year { font-size: 3rem; }
  .zk-timeline-edition__cta { display: none; }
  .zk-story-block, .zk-track-deep, .zk-check-section {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 40px 0;
  }
  .zk-story-block__label, .zk-track-deep__code, .zk-check-section__num {
    position: static;
  }
  .zk-track-deep__code { font-size: 2.4rem; }
  .zk-check-section__num { font-size: 2.6rem; }
  .zk-track-deep__list { grid-template-columns: 1fr; gap: 0; }
  .zk-pricing-grid { grid-template-columns: 1fr; gap: 14px; }
  .zk-call-block { grid-template-columns: 1fr; text-align: left; }
  .zk-pull-quote { padding: 36px 28px 36px 56px; }
  .zk-pull-quote::before { left: 18px; top: 24px; width: 28px; height: 28px; }
  .zk-page-hero__title { font-size: clamp(2rem, 7vw, 3rem); }
  .zk-drop-row { gap: 18px; }
  .zk-drop-row--offset { padding-left: 24px; }
  .zk-drop { width: 96px; height: 96px; }
  .zk-drop--sm { width: 76px; height: 76px; }
  .zk-drop__num { font-size: 1.3rem; }
  .zk-drop--sm .zk-drop__num { font-size: 1.05rem; }
  .zk-drop-row__label { font-size: 1rem; padding-left: 22px; }
  .zk-drop-row__label::before { width: 16px; }
  .zk-highlight-card,
  .zk-highlight-card--reverse { grid-template-columns: 1fr; }
  .zk-highlight-card__media,
  .zk-highlight-card--reverse .zk-highlight-card__media {
    min-height: 140px;
    order: 0;
  }
  .zk-highlight-card__body { padding: 24px 24px; }
  .zk-region-row,
  .zk-region-axis { grid-template-columns: 110px 1fr 48px; gap: 12px; }
  .zk-region-row__label { font-size: 0.85rem; }
  .zk-attendance__person { width: 22px; height: 26px; }
  .zk-attendance__person::before { width: 9px; height: 9px; }
  .zk-attendance__person::after { width: 18px; height: 16px; }
}
@media (max-width: 480px) {
  .zk-recap-numbers { grid-template-columns: 1fr; }
  .zk-tier-section__head { flex-wrap: wrap; }
}

/* ==========================================================================
   Globale Grundlagen
   ========================================================================== */

body,
body.woocommerce,
body.woocommerce-page {
  font-family: var(--zk-font-body) !important;
  color: var(--zk-text);
  background-color: var(--zk-bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* Editorial-Überschriften */
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce div.product .product_title,
.woocommerce-cart h1,
.woocommerce-cart h2,
.woocommerce-checkout h1,
.woocommerce-checkout h2,
.woocommerce-account h1,
.woocommerce-account h2,
.woocommerce-account h3 {
  font-family: var(--zk-font-heading) !important;
  line-height: 1.2;
  color: var(--zk-primary-900);
}

/* ==========================================================================
   Buttons – Pill-basiert (Primär Grün #95C23C, Sekundär Navy #18294A — v1.25.0)
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--zk-btn-2) !important;
  color: var(--zk-btn-text) !important;
  border: none !important;
  border-radius: var(--zk-radius-pill) !important;
  padding: 14px 32px !important;
  font-family: var(--zk-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.02em;
  transition: var(--zk-transition) !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1.4 !important;
  text-transform: none !important;
  box-shadow: var(--zk-shadow-sm) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: var(--zk-btn-2-hover) !important;
  transform: translateY(-2px);
  box-shadow: var(--zk-shadow) !important;
}

/* Haupt-CTAs: Grün gefüllt, weiße Schrift, Hover dunkleres Grün (v1.25.0, vormals Lime) */
.woocommerce .single_add_to_cart_button,
.woocommerce a.button.add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce a.button.alt {
  background: var(--zk-btn) !important;
  color: var(--zk-btn-text) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 16px 36px !important;
  box-shadow: var(--zk-shadow-glow) !important;
}

.woocommerce .single_add_to_cart_button:hover,
.woocommerce a.button.add_to_cart_button:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce a.button.alt:hover {
  background: var(--zk-btn-hover) !important;
  color: var(--zk-btn-text) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(24, 41, 74, 0.28) !important;
}

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* ==========================================================================
   Formulare
   ========================================================================== */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .quantity input.qty,
.woocommerce .variations select {
  border: 1.5px solid var(--zk-border) !important;
  border-radius: var(--zk-radius) !important;
  padding: 14px 18px !important;
  font-family: var(--zk-font-body) !important;
  font-size: 0.95rem !important;
  color: var(--zk-text) !important;
  background: var(--zk-bg-card) !important;
  transition: var(--zk-transition-fast) !important;
  width: 100%;
  -webkit-appearance: none;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce .quantity input.qty:focus,
.woocommerce .variations select:focus {
  border-color: var(--zk-primary-500) !important;
  box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.15) !important;
  outline: none !important;
}

.woocommerce form .form-row label {
  font-family: var(--zk-font-body);
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--zk-text);
  margin-bottom: 8px;
  display: block;
}

.woocommerce form .form-row .required { color: var(--zk-error); }

/* ==========================================================================
   Shop-Loop (Ticket-Übersicht)
   ========================================================================== */

.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce ul.products li.product {
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  padding: 28px;
  transition: var(--zk-transition);
  box-shadow: var(--zk-shadow-sm);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
}

.woocommerce ul.products li.product:hover {
  box-shadow: var(--zk-shadow-xl);
  transform: translateY(-6px);
  border-color: var(--zk-primary-100);
}

/* Avada rendert den Shop-Loop im "classic" Product-Box-Design mit EIGENEN
   Klassen (.fusion-product-wrapper, .featured-image, .product-title,
   .product-buttons-container, .show_details_button). Die ursprünglichen
   Loop-Regeln zielten auf Standard-WooCommerce-Klassen
   (.woocommerce-loop-product__title) und griffen daher nicht – Titel, Bild
   und Buttons fielen auf Avada-Defaults zurück (Button: float + max-width:49%
   + Pill-Radius → "Ticket wählen" als runder Blob). Ab v1.22.0 koppeln wir
   den Loop an Avadas tatsächliche Klassen und ziehen ihn ins ZUKE-Card-Layout:
   Bild → Titel → Preis → Full-Width-Lime-CTA + Outline-"Details". */

/* Card-Innenstruktur: vertikaler Stack, Button-Block sinkt an den Card-Boden */
.woocommerce ul.products li.product .fusion-product-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.woocommerce ul.products li.product .fusion-product-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-details-container {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}

/* Produktbild: feste Ratio, neutraler Hintergrund, gerundet – der
   WooCommerce-Platzhalter (Tickets haben noch keine Bilder) wirkt dadurch
   gewollt statt zerschossen. */
.woocommerce ul.products li.product .product-images {
  display: block;
  width: 100%;
  margin: 0 0 20px 0;
}

.woocommerce ul.products li.product .featured-image {
  aspect-ratio: 4 / 3;
  background: var(--zk-bg-alt);
  border-radius: var(--zk-radius);
  overflow: hidden;
  position: relative;
}

.woocommerce ul.products li.product .featured-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  margin: 0 !important;
  border-radius: 0 !important;
}

.woocommerce ul.products li.product .featured-image img.woocommerce-placeholder {
  object-fit: contain;
  padding: 32px;
  opacity: 0.45;
}

/* Titel an Avada-Klasse .product-title koppeln (statt WC-Default) */
.woocommerce ul.products li.product .product-title {
  font-family: var(--zk-font-heading) !important;
  color: var(--zk-primary-900) !important;
  font-weight: 600 !important;
  font-size: clamp(1.15rem, 1.5vw, 1.4rem) !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.005em;
}

.woocommerce ul.products li.product .product-title a { color: inherit !important; }

.woocommerce ul.products li.product .fusion-price-rating { margin: 0 0 4px 0 !important; }

.woocommerce ul.products li.product .fusion-price-rating .price,
.woocommerce ul.products li.product .price {
  font-family: var(--zk-font-display) !important;
  color: var(--zk-primary-700) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  margin: 0 !important;
}

.woocommerce ul.products li.product .price del {
  color: var(--zk-text-muted);
  font-size: 0.75em;
  font-weight: 400;
  opacity: 0.7;
}

.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  color: var(--zk-sale);
  font-weight: 800;
}

/* Avada-Doppellinien-Separator im Loop raus – die Card braucht keine Trennlinie */
.woocommerce ul.products li.product .product-buttons .fusion-content-sep {
  display: none !important;
}

/* Button-Bereich an den Card-Boden, vertikaler Full-Width-Stack statt Avada-Float */
.woocommerce ul.products li.product .product-buttons {
  margin-top: auto;
  padding-top: 16px;
}

.woocommerce ul.products li.product .product-buttons-container {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  overflow: visible !important;
}

.woocommerce ul.products li.product .product-buttons-container::before,
.woocommerce ul.products li.product .product-buttons-container::after {
  content: none !important;
  display: none !important;
}

/* Steuerhinweis "inkl. MwSt." dezent über den Buttons */
.woocommerce ul.products li.product .product-buttons-container .wc-gzd-additional-info {
  order: -1;
  margin: 0 0 2px 0 !important;
  font-size: 0.8rem;
  color: var(--zk-text-muted);
}

/* Primär-CTA "Ticket wählen": Full-Width Grün-Pill (v1.25.0; überschreibt Avadas
   float + max-width:49%, sonst bricht der Text in einen runden Blob um) */
.woocommerce ul.products li.product .product-buttons-container a.button.add_to_cart_button,
.woocommerce ul.products li.product .product-buttons-container a.button.added_to_cart {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  white-space: nowrap;
  text-align: center;
  justify-content: center;
}

/* Avadas absolut positioniertes awb-icons Warenkorb-Glyph entfernen –
   lag beim Full-Width-Button mittig über dem Text */
.woocommerce ul.products li.product .product-buttons .add_to_cart_button::before {
  content: none !important;
  display: none !important;
}

/* Sekundär "Details ansehen": Full-Width Outline-Button statt nacktem Text-Link */
.woocommerce ul.products li.product .show_details_button {
  display: block !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 13px 24px !important;
  text-align: center !important;
  border: 1.5px solid var(--zk-btn-2, #18294A) !important;
  border-radius: var(--zk-radius-pill) !important;
  background: transparent !important;
  color: var(--zk-btn-2, #18294A) !important;
  font-family: var(--zk-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
  transition: var(--zk-transition-fast) !important;
}

.woocommerce ul.products li.product .show_details_button:hover {
  background: var(--zk-btn-2, #18294A) !important;
  border-color: var(--zk-btn-2, #18294A) !important;
  color: #fff !important;
}

/* Sale-Badge als Pill */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
  background: var(--zk-sale) !important;
  color: #fff !important;
  border-radius: var(--zk-radius-pill) !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  padding: 6px 14px !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.4 !important;
  top: 20px !important;
  left: 20px !important;
  right: auto !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.woocommerce .star-rating { color: var(--zk-lime-dark); }

/* ==========================================================================
   Produktdetail – Ticket-Hero mit Editorial-Typografie
   ========================================================================== */

.woocommerce div.product {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 40px 24px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}

.woocommerce div.product > .images,
.woocommerce div.product > div.summary,
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells,
.woocommerce div.product > .cross-sells {
  margin: 0 !important;
  width: auto !important;
  float: none !important;
}

.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells,
.woocommerce div.product > .cross-sells {
  grid-column: 1 / -1;
}

/* Produktbild als Hero-Card */
.woocommerce div.product div.images {
  border-radius: var(--zk-radius-xl);
  overflow: hidden;
  box-shadow: var(--zk-shadow-lg);
  background: var(--zk-bg-alt);
  position: relative;
}

.woocommerce div.product div.images img {
  border-radius: var(--zk-radius-xl);
  display: block;
  width: 100%;
  height: auto;
}

.woocommerce div.product span.onsale {
  top: 20px !important;
  left: 20px !important;
  z-index: 2;
}

/* Summary / Info-Spalte */
.woocommerce div.product div.summary {
  padding: 8px 0 0 0;
}

/* Overline "🎟 TICKET" */
.woocommerce div.product div.summary::before {
  content: "🎟  TICKET";
  display: inline-block;
  font-family: var(--zk-font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--zk-lime-dark);
  margin-bottom: 14px;
}

/* Produkt-Titel – Oswald strong für Event-Charakter */
.woocommerce div.product .product_title {
  font-family: var(--zk-font-heading) !important;
  font-size: clamp(2.2rem, 4vw, 3.2rem) !important;
  font-weight: 700 !important;
  color: var(--zk-primary-900) !important;
  margin: 0 0 16px 0 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.005em;
  text-transform: none;
}

/* Kurzbeschreibung */
.woocommerce div.product .woocommerce-product-details__short-description {
  font-family: var(--zk-font-body) !important;
  font-size: 1.08rem !important;
  line-height: 1.75;
  color: var(--zk-gray-600);
  margin: 0 0 28px 0;
  padding: 0 0 28px 0;
  border-bottom: 1px solid var(--zk-border-light);
}

.woocommerce div.product .woocommerce-product-details__short-description p:last-child {
  margin-bottom: 0;
}

/* Preis – Display-Font (Fraunces) für Key-Fact-Charakter */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--zk-font-display) !important;
  font-size: 2.6rem !important;
  font-weight: 700 !important;
  color: var(--zk-primary-700) !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 14px;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
  color: var(--zk-text-muted) !important;
  font-size: 0.55em !important;
  font-weight: 500 !important;
  text-decoration: line-through;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
  text-decoration: none;
  color: var(--zk-primary-700) !important;
  background: none;
}

/* MwSt-Hinweis */
.woocommerce div.product .price .wc-gzd-additional-info,
.woocommerce div.product .price .includes_tax,
.woocommerce .tax-info,
.wc-gzd-additional-info {
  font-family: var(--zk-font-body) !important;
  font-size: 0.85rem !important;
  color: var(--zk-text-muted) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  display: block !important;
  margin-top: 4px !important;
}

/* Varianten-Block */
.woocommerce div.product form.cart {
  margin: 28px 0 0 0;
  padding: 0;
  border: none;
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.woocommerce div.product form.cart .variations {
  margin: 0;
  border: none;
  background: transparent;
  width: 100%;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
  border: none !important;
  padding: 0 0 10px 0 !important;
  display: block;
  vertical-align: top;
  background: transparent !important;
  width: 100%;
}

.woocommerce div.product form.cart .variations tr {
  display: block;
  margin-bottom: 16px;
}

.woocommerce div.product form.cart .variations label {
  font-family: var(--zk-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.88rem !important;
  color: var(--zk-text) !important;
  text-transform: none !important;
  margin: 0 0 8px 0 !important;
  display: block;
  letter-spacing: 0;
}

.woocommerce div.product form.cart .variations select {
  padding: 14px 42px 14px 18px !important;
  font-family: var(--zk-font-body) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  border: 1.5px solid var(--zk-border) !important;
  border-radius: var(--zk-radius) !important;
  background-color: var(--zk-bg-card) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a4d1a' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 18px center !important;
  background-size: 12px !important;
  cursor: pointer;
}

.woocommerce div.product form.cart .variations select:focus {
  border-color: var(--zk-primary-500) !important;
}

.woocommerce div.product form.cart .variations .reset_variations {
  color: var(--zk-text-muted) !important;
  font-size: 0.85rem !important;
  margin-top: 8px;
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Varianten-Beschreibung */
.woocommerce div.product form.cart .woocommerce-variation-description,
.woocommerce div.product form.cart .woocommerce-variation-description p {
  background: var(--zk-primary-50);
  border: none;
  border-left: 3px solid var(--zk-lime);
  padding: 16px 20px;
  border-radius: 0 var(--zk-radius) var(--zk-radius) 0;
  color: var(--zk-text-secondary);
  font-family: var(--zk-font-body);
  font-size: 0.95rem;
  line-height: 1.7;
  margin: 0 0 16px 0;
}

/* Varianten-Preis */
.woocommerce div.product form.cart .woocommerce-variation-price {
  margin: 0 0 8px 0;
}

.woocommerce div.product form.cart .woocommerce-variation-price .price {
  font-family: var(--zk-font-display) !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--zk-primary-700) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.015em;
  display: inline;
}

/* Add-to-Cart-Zeile */
.woocommerce div.product .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart .variations_button,
.woocommerce div.product form.cart:not(.variations_form) > :is(.quantity, .single_add_to_cart_button) {
  display: inline-flex;
}

.woocommerce div.product .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart .variations_button {
  display: flex !important;
  align-items: stretch;
  gap: 12px;
  margin-top: 8px;
  padding-top: 20px;
  border-top: 1px solid var(--zk-border-light);
}

.woocommerce div.product form.cart .quantity {
  margin: 0;
}

.woocommerce div.product form.cart .quantity input.qty {
  width: 80px !important;
  text-align: center;
  font-family: var(--zk-font-body) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  border: 1.5px solid var(--zk-border) !important;
  border-radius: var(--zk-radius) !important;
  padding: 14px 8px !important;
  height: auto;
}

.woocommerce div.product .single_add_to_cart_button {
  flex: 1;
  width: auto !important;
}

/* Deaktivierte Variante */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart-disabled {
  opacity: 0.5;
}

/* Produkt-Meta */
.woocommerce div.product .product_meta {
  font-family: var(--zk-font-body);
  font-size: 0.82rem;
  color: var(--zk-text-muted);
  border-top: 1px solid var(--zk-border-light);
  padding-top: 20px;
  margin-top: 24px;
}

.woocommerce div.product .product_meta > span {
  display: block;
  margin-bottom: 6px;
}

.woocommerce div.product .product_meta a {
  color: var(--zk-primary-700);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Produkt-Tabs ────────────────────────────────────────────────────── */

.woocommerce div.product .woocommerce-tabs {
  margin-top: 80px !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0 !important;
  margin: 0 0 32px 0 !important;
  border-bottom: 1px solid var(--zk-border) !important;
  display: flex;
  gap: 4px;
  background: transparent !important;
  list-style: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: none !important;
  background: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 16px 24px !important;
  font-family: var(--zk-font-body) !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  color: var(--zk-text-muted) !important;
  border-bottom: 3px solid transparent !important;
  transition: var(--zk-transition-fast) !important;
  display: block;
  margin-bottom: -1px;
  text-shadow: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--zk-primary-700) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--zk-primary-900) !important;
  border-bottom-color: var(--zk-lime) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
  font-family: var(--zk-font-body);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--zk-text-secondary);
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: var(--zk-font-heading);
  font-size: 1.6rem;
  color: var(--zk-primary-900);
  margin-bottom: 16px;
}

/* Related / Cross-Sells */
.woocommerce .cross-sells h2,
.woocommerce .related.products h2,
.woocommerce .up-sells h2 {
  font-family: var(--zk-font-heading) !important;
  font-size: 1.8rem !important;
  font-weight: 700 !important;
  color: var(--zk-primary-900) !important;
  margin: 0 0 28px 0 !important;
}

/* ==========================================================================
   Warenkorb – Basis-Update (tiefer Redesign folgt in Phase 2)
   ========================================================================== */

.woocommerce-cart .woocommerce {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
}

.woocommerce table.shop_table {
  border: 1px solid var(--zk-border-light) !important;
  border-radius: var(--zk-radius-lg) !important;
  overflow: hidden;
  box-shadow: var(--zk-shadow-sm);
  border-collapse: separate !important;
  border-spacing: 0;
  background: var(--zk-bg-card);
}

.woocommerce table.shop_table th {
  background: var(--zk-primary-50) !important;
  color: var(--zk-primary-900) !important;
  font-family: var(--zk-font-body) !important;
  font-weight: 700 !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 18px 20px !important;
  border: none !important;
}

.woocommerce table.shop_table td {
  padding: 20px !important;
  vertical-align: middle !important;
  border-bottom: 1px solid var(--zk-border-light) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  font-family: var(--zk-font-body);
  font-size: 0.95rem;
  color: var(--zk-text);
}

.woocommerce table.shop_table tr:last-child td {
  border-bottom: none !important;
}

.woocommerce table.shop_table .product-name a {
  font-family: var(--zk-font-heading);
  color: var(--zk-primary-900);
  font-weight: 700;
  font-size: 1.05rem;
}

.woocommerce table.shop_table .product-name .variation {
  font-size: 0.85rem;
  color: var(--zk-text-muted);
  margin-top: 4px;
}

/* Warenkorb-Totals */
.cart-collaterals .cart_totals {
  padding: 32px;
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  box-shadow: var(--zk-shadow);
}

.cart-collaterals .cart_totals h2 {
  font-family: var(--zk-font-heading);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--zk-primary-900);
  margin: 0 0 20px 0;
}

.cart-collaterals .cart_totals .order-total td {
  font-family: var(--zk-font-display);
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--zk-primary-700);
}

/* Coupon */
.woocommerce .coupon {
  display: flex;
  gap: 8px;
  align-items: center;
}

.woocommerce .coupon .input-text {
  max-width: 240px;
  border: 1.5px solid var(--zk-border) !important;
  border-radius: var(--zk-radius) !important;
  padding: 12px 16px !important;
  font-size: 0.9rem !important;
}

/* Leerer Warenkorb */
.woocommerce-cart .cart-empty {
  text-align: center;
  padding: 80px 20px;
  font-family: var(--zk-font-body);
  font-size: 1.1rem;
  color: var(--zk-text-secondary);
}

.woocommerce-cart .cart-empty::before {
  content: "🎟";
  display: block;
  font-size: 3.5rem;
  margin-bottom: 20px;
}

.woocommerce-cart .return-to-shop {
  text-align: center;
  margin-top: 28px;
}

/* Entfernen */
.woocommerce a.remove {
  color: var(--zk-text-muted) !important;
  font-size: 1.4rem !important;
  width: 32px !important;
  height: 32px !important;
  line-height: 30px !important;
  border-radius: 50% !important;
  transition: var(--zk-transition-fast);
}

.woocommerce a.remove:hover {
  background: var(--zk-error) !important;
  color: #fff !important;
}

/* ==========================================================================
   Checkout – Basis-Update (tiefer Redesign folgt in Phase 3)
   ========================================================================== */

.woocommerce-checkout .woocommerce {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
}

.woocommerce-checkout .woocommerce-checkout {
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 32px;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  width: 100% !important;
  float: none !important;
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  padding: 28px;
  box-shadow: var(--zk-shadow-sm);
}

.woocommerce-checkout h3 {
  font-family: var(--zk-font-heading);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--zk-primary-900);
  margin: 0 0 20px 0;
  padding: 0;
  border: none;
}

.woocommerce-checkout .form-row {
  margin-bottom: 16px;
}

.woocommerce-checkout #order_review {
  padding: 32px;
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  box-shadow: var(--zk-shadow);
  margin-top: 32px;
}

.woocommerce-checkout #order_review_heading {
  font-family: var(--zk-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--zk-primary-900);
  margin: 0 0 20px 0;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
  margin-bottom: 24px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
  font-family: var(--zk-font-display);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--zk-primary-700);
}

/* Zahlungsmethoden */
.woocommerce-checkout #payment {
  background: transparent !important;
  border-radius: var(--zk-radius-lg);
}

.woocommerce-checkout #payment ul.payment_methods {
  padding: 0 !important;
  border: none !important;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 24px 0 !important;
  list-style: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
  background: var(--zk-bg-card);
  border: 1.5px solid var(--zk-border) !important;
  border-radius: var(--zk-radius) !important;
  padding: 18px 22px !important;
  margin: 0 !important;
  transition: var(--zk-transition-fast);
  list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li:hover {
  border-color: var(--zk-primary-400) !important;
  background: var(--zk-primary-50);
}

.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method input[type="radio"] {
  accent-color: var(--zk-primary-700);
  margin-right: 12px;
}

.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: var(--zk-font-body);
  font-weight: 600;
  font-size: 0.98rem;
  cursor: pointer;
  color: var(--zk-text);
}

.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 28px;
  margin-left: 10px;
  vertical-align: middle;
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--zk-bg-alt) !important;
  border-radius: var(--zk-radius) !important;
  padding: 18px !important;
  margin-top: 12px;
  color: var(--zk-text-secondary);
  font-family: var(--zk-font-body);
  font-size: 0.92rem;
  line-height: 1.7;
}

.woocommerce-checkout #payment div.payment_box::before {
  display: none !important;
}

/* Germanized Rechtsboxen */
.wc-gzd-checkbox-placeholder,
.woocommerce-checkout .wc-gzd-legal-checkbox-wrapper {
  background: var(--zk-bg-alt);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius);
  padding: 16px 20px;
  margin-bottom: 10px;
  font-family: var(--zk-font-body);
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--zk-text-secondary);
}

.wc-gzd-checkbox-placeholder input[type="checkbox"],
.wc-gzd-legal-checkbox-wrapper input[type="checkbox"] {
  accent-color: var(--zk-primary-700);
  width: 18px;
  height: 18px;
  margin-right: 10px;
  vertical-align: middle;
}

.wc-gzd-checkbox-placeholder a,
.wc-gzd-legal-checkbox-wrapper a {
  color: var(--zk-primary-700);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.wc-gzd-place-order {
  margin-top: 24px;
}

.woocommerce-checkout #place_order {
  width: 100%;
  font-size: 1.1rem !important;
  padding: 20px 36px !important;
  margin-top: 16px;
  text-transform: none !important;
}

/* ==========================================================================
   Mein Konto
   ========================================================================== */

.woocommerce-account .woocommerce {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 32px;
  align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  padding: 16px;
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  box-shadow: var(--zk-shadow-sm);
  overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 4px 0; }

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  padding: 12px 16px;
  display: block;
  color: var(--zk-text-secondary);
  font-family: var(--zk-font-body);
  font-weight: 500;
  font-size: 0.95rem;
  border-radius: var(--zk-radius);
  transition: var(--zk-transition-fast);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--zk-primary-50);
  color: var(--zk-primary-900);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--zk-primary);
  color: #fff;
  font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content {
  padding: 32px;
  background: var(--zk-bg-card);
  border: 1px solid var(--zk-border-light);
  border-radius: var(--zk-radius-lg);
  box-shadow: var(--zk-shadow-sm);
}

/* ==========================================================================
   Hinweisboxen
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  border-radius: var(--zk-radius) !important;
  padding: 16px 20px !important;
  font-family: var(--zk-font-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  border: none !important;
  box-shadow: var(--zk-shadow-sm);
}

.woocommerce-message {
  background: var(--zk-primary-50) !important;
  border-left: 4px solid var(--zk-success) !important;
  color: var(--zk-primary-900) !important;
}

.woocommerce-info {
  background: var(--zk-primary-50) !important;
  border-left: 4px solid var(--zk-info) !important;
  color: var(--zk-text) !important;
}

.woocommerce-error {
  background: #FEF2F2 !important;
  border-left: 4px solid var(--zk-error) !important;
  color: var(--zk-error) !important;
}

/* ==========================================================================
   Bestätigungsseite
   ========================================================================== */

.woocommerce-order-received .woocommerce-thankyou-order-received {
  background: linear-gradient(135deg, var(--zk-primary-50), var(--zk-accent-light));
  border: none;
  padding: 40px;
  border-radius: var(--zk-radius-xl);
  font-family: var(--zk-font-display);
  font-size: 1.4rem;
  line-height: 1.55;
  text-align: center;
  color: var(--zk-primary-900);
  font-weight: 600;
  margin-bottom: 32px;
  box-shadow: var(--zk-shadow);
}

.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
  background: var(--zk-bg-card);
  border-radius: var(--zk-radius-lg);
  padding: 32px;
  box-shadow: var(--zk-shadow-sm);
  border: 1px solid var(--zk-border-light);
  margin-bottom: 24px;
}

/* ==========================================================================
   Mini-Cart
   ========================================================================== */

.woocommerce .widget_shopping_cart .cart_list li {
  padding: 14px 0;
  border-bottom: 1px solid var(--zk-border-light);
}

.woocommerce .widget_shopping_cart .total {
  font-family: var(--zk-font-display);
  font-weight: 700;
  color: var(--zk-primary-900);
  font-size: 1.2rem;
  letter-spacing: -0.01em;
  padding: 16px 0;
  border-top: 2px solid var(--zk-border);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 992px) {
  .woocommerce div.product {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding: 32px 20px !important;
  }

  .woocommerce-checkout .col2-set {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    overflow-x: auto;
    gap: 4px;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    white-space: nowrap;
  }
}

@media (max-width: 768px) {
  .woocommerce div.product {
    padding: 24px 16px !important;
  }

  .woocommerce div.product .product_title {
    font-size: 1.9rem !important;
  }

  .woocommerce div.product p.price,
  .woocommerce div.product span.price {
    font-size: 1.8rem !important;
  }

  .woocommerce div.product .woocommerce-variation-add-to-cart,
  .woocommerce div.product form.cart .variations_button {
    flex-direction: column;
    align-items: stretch;
  }

  .woocommerce div.product form.cart .quantity input.qty {
    width: 100% !important;
  }

  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 480px) {
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-checkout .col2-set .col-2 {
    padding: 20px;
  }

  .woocommerce-checkout #order_review {
    padding: 20px;
  }

  .woocommerce .coupon {
    flex-direction: column;
  }

  .woocommerce .coupon .input-text {
    max-width: 100%;
  }
}

/* ==========================================================================
   v1.14.1: Mobile-Header-Fix
   ----------------------------------------------------------------------
   Problem (rueckblick/-Page mobile, 430px-Viewport):
   - Header rendert mit blauer Default-BG (Avada-2017-Material-Blau)
   - Logo-Image broken (Pfad oder fusion_options.logo nicht gesetzt)
   - Hamburger-Button als blanke weiße Box auf blauem BG
   Cause: Avada hat separate fusion_options-Keys für Mobile-Header
   (mobile_header_bg_color, mobile_menu_bg_color, mobile_logo …) — die
   wurden vom mu-plugin nie gesetzt. CSS hier zwingt's brand-konsistent.
   ========================================================================== */
@media (max-width: 800px) {
  .fusion-header-wrapper,
  .fusion-header,
  .fusion-secondary-header,
  .fusion-mobile-menu-search,
  .fusion-mobile-nav-holder,
  .fusion-mobile-nav-item,
  body .fusion-is-sticky .fusion-header,
  .fusion-header-v1 .fusion-secondary-header,
  .fusion-header-v2 .fusion-secondary-header,
  .fusion-header-v3 .fusion-secondary-header,
  .fusion-header-v4 .fusion-secondary-header,
  .fusion-header-v5 .fusion-secondary-header,
  .fusion-header-v6 .fusion-secondary-header,
  .fusion-header-v7 .fusion-secondary-header {
    background: #ffffff !important;
    border-bottom-color: #e5e7eb !important;
  }
  .fusion-mobile-menu-icons a,
  .fusion-mobile-menu-icons a::before,
  .fusion-toggle-nav span,
  .fusion-icon-bars,
  .awb-menu__main-li > a {
    color: var(--zk-deep, #0a2010) !important;
  }
  .fusion-toggle-nav .fusion-icon-bars,
  .fusion-toggle-nav .fusion-icon-bars::before,
  .fusion-toggle-nav .fusion-icon-bars::after {
    background-color: var(--zk-deep, #0a2010) !important;
  }
  /* Mobile Menu (Drawer) — weiße BG, dunkler Text, Lime-Akzent */
  .fusion-mobile-nav-holder,
  .fusion-mobile-menu-design-classic .fusion-mobile-nav-holder,
  .fusion-mobile-menu-design-modern .fusion-mobile-nav-holder,
  .fusion-mobile-menu-design-flyout .fusion-flyout-menu {
    background: #ffffff !important;
  }
  .fusion-mobile-nav-holder a,
  .fusion-mobile-nav-holder li > a {
    color: var(--zk-deep, #0a2010) !important;
    border-bottom-color: #e5e7eb !important;
  }
  .fusion-mobile-nav-holder .current-menu-item > a,
  .fusion-mobile-nav-holder a:hover {
    color: var(--zk-primary-700, #236b23) !important;
    background: var(--zk-primary-50, #E8F5E9) !important;
  }
  /* Falls fusion_options.mobile_logo leer ist: Site-Title-Fallback brand-styled */
  .fusion-logo a img {
    max-height: 44px;
    width: auto;
  }
  .fusion-logo .fusion-standard-logo,
  .fusion-logo a {
    color: var(--zk-primary-900, #0f2b0f) !important;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    text-decoration: none;
  }
}

/* ==========================================================================
   Partner-Seite v1.16.0 — Avada-Builder-pflegbare Sections
   Hauptpartner-Card + Tier-Logo-Carousels + Netzwerk-Chip-Grid +
   Fallback-Namensliste bis Logos in Media Library liegen.
   ========================================================================== */

/* Hauptpartner-Section: zentrierter Header (kein flex-line),
   große Logo-Box links, Beschreibung rechts. */
.zk-tier-section__head--diamant {
  justify-content: flex-start;
}
.zk-tier-section__head--diamant .zk-tier-section__name {
  font-family: 'Oswald', sans-serif;
  font-size: 2rem;
  letter-spacing: 0.02em;
}

.zk-hauptpartner__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 32px 24px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(10, 32, 16, 0.04);
}
.zk-hauptpartner__logo img {
  max-width: 100%;
  max-height: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
}
/* Empty-State: keine image_id → Hint-Box mit gestricheltem Rand. */
.zk-hauptpartner__logo:empty::before,
.zk-hauptpartner__logo .fusion-imageframe:empty::before {
  content: "Hauptpartner-Logo · im Avada Builder einfügen";
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: var(--zk-text-muted, #6b7280);
  text-align: center;
  padding: 24px;
  border: 2px dashed #d4a13d;
  border-radius: 6px;
  width: 100%;
}

.zk-hauptpartner__body {
  padding: 8px 0 8px 16px;
}
.zk-hauptpartner__name {
  font-family: 'Oswald', sans-serif;
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 12px;
}
.zk-hauptpartner__desc {
  font-family: 'Roboto', sans-serif;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--zk-text, #1a2e1a);
  margin: 0 0 16px;
}
.zk-hauptpartner__link {
  display: inline-block;
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--zk-primary-700, #236b23);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  transition: color 0.2s;
}
.zk-hauptpartner__link:hover {
  color: var(--zk-primary, #1a4d1a);
}

/* Tier-Logo-Carousel-Container (.zk-tier-logos auf fusion_image_carousel).
   Avada rendert eigenes Markup im Inneren — wir stylen nur den Wrapper
   und ein paar gemeinsame inner-Selektoren best effort. */
.zk-tier-logos {
  margin: 8px 0 16px;
}
.zk-tier-logos .fusion-carousel-item-wrapper,
.zk-tier-logos .fusion-image-element {
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 6px;
  padding: 24px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.zk-tier-logos .fusion-carousel-item-wrapper:hover,
.zk-tier-logos .fusion-image-element:hover {
  border-color: var(--zk-lime, #8BC34A);
  box-shadow: 0 2px 6px rgba(10, 32, 16, 0.06);
}
.zk-tier-logos img {
  max-width: 100%;
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(20%);
  transition: filter 0.2s;
}
.zk-tier-logos img:hover {
  filter: grayscale(0%);
}

/* Fallback-Text "Aktuelle Gold-Partner: …" solange Carousel leer ist. */
.zk-tier-section__names {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  color: var(--zk-text-muted, #6b7280);
  margin: 16px 0 0;
  padding: 14px 18px;
  background: #f5f7f3;
  border-left: 3px solid var(--zk-lime, #8BC34A);
  border-radius: 0 4px 4px 0;
}
.zk-tier-section__names strong {
  color: var(--zk-deep, #0a2010);
  font-weight: 600;
}

/* Netzwerk-Partner: schlichte Chip-Liste, kein Logo. */
.zk-network-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}
.zk-network-chip {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 999px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--zk-deep, #0a2010);
  transition: border-color 0.2s, transform 0.2s;
}
.zk-network-chip:hover {
  border-color: var(--zk-primary-500, #4CAF50);
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  .zk-hauptpartner__body {
    padding: 24px 0 0;
    text-align: center;
  }
  .zk-hauptpartner__logo {
    min-height: 140px;
  }
  .zk-tier-section__head--diamant .zk-tier-section__name {
    font-size: 1.5rem;
  }
}

/* ==========================================================================
   v1.20.5 — Globaler Footer (Avada Layout Section "Kongress Footer", Post 827)
   Footer besteht aus 2 Containern: Brand+Navigation (4 Spalten) +
   Bottom Bar (2 Spalten). Save-the-Date-Band-Section (User-Wunsch in v1.20.5
   entfernt) und alle .zk-footer-cta__*-Regeln existieren nicht mehr.
   Pattern: jeder Block in eigener fusion_builder_column mit admin_label,
   responsive via type_medium/type_small. Headings (h3.zk-footer-col__title)
   müssen mit !important + Tag-Selektor überschrieben werden, weil Avada
   inline-CSS-Vars für h1-h6 injiziert.
   ========================================================================== */

/* Avada hängt um den Footer ein `.fusion-tb-footer.fusion-footer`-Wrapper.
   Default-Padding + neutrale Hintergrundfarbe killen, damit unsere
   Sections randlos und vollflächig wirken. */
.fusion-tb-footer.fusion-footer {
  padding: 0 !important;
  background: var(--zk-deep, #0a2010);
}
.fusion-tb-footer.fusion-footer .fusion-footer-widget-area {
  padding: 0;
}

/* Section 1 (Save-the-Date-Band) wurde in v1.20.5 komplett entfernt.
   Die zugehörigen .zk-footer-cta__*-Regeln sind raus, der Footer besteht
   jetzt nur noch aus Brand+Navigation + Bottom Bar. */

/* ----- 2) Brand-Spalte --------------------------------------------------- */
/* Logo läuft seit v1.20.0 als [fusion_imageframe] direkt im Builder —
   Wordmark- und Mark-Klassen sind raus. Das Kongress-WebP hat einen weißen
   Hintergrund — vor dunklem Footer-BG mit Inversion negieren. */
.fusion-tb-footer .fusion-imageframe img {
  filter: brightness(0) invert(1);
  transition: filter 0.2s, transform 0.2s;
}
.fusion-tb-footer .fusion-imageframe a:hover img {
  filter: brightness(0) invert(1);
  transform: scale(1.02);
}
.zk-footer-brand__claim {
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.75);
  margin: 0 0 22px;
  max-width: 320px;
}
.zk-footer-brand__contact {
  font-family: 'Roboto', sans-serif;
  font-size: 0.9rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.6);
  font-style: normal;
}
.zk-footer-brand__contact strong {
  display: block;
  color: #ffffff;
  font-weight: 600;
  margin-bottom: 6px;
}
.zk-footer-brand__contact a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  transition: color 0.2s, border-color 0.2s;
}
.zk-footer-brand__contact a:hover {
  color: var(--zk-lime-light, #94C13A);
  border-color: var(--zk-lime-light, #94C13A);
}

/* ----- 3) Nav-Spalten ---------------------------------------------------- */
/* Avada injiziert auf Headings inline `--awb-typography*`-CSS-Vars (siehe
   v1.7.0 / v1.12.1-Saga im Changelog). Wir matchen daher `.fusion-tb-footer h3`
   und überschreiben mit !important, sonst rendern die Spalten-Titel
   schwarz/gigantisch und brechen den Footer auseinander. */
.fusion-tb-footer h3.zk-footer-col__title {
  font-family: 'Roboto', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--zk-lime-light, #94C13A) !important;
  margin: 0 0 22px !important;
  line-height: 1.3 !important;
}
.zk-footer-col__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.zk-footer-col__list li { margin: 0; }
.zk-footer-col__list a {
  display: inline-block;
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  transition: color 0.2s, transform 0.2s;
}
.zk-footer-col__list a:hover,
.zk-footer-col__list a:focus {
  color: var(--zk-lime-light, #94C13A);
  transform: translateX(3px);
}

/* ----- 4) Bottom-Bar — Elemente ----------------------------------------- */
.zk-footer-bar__copy {
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}
.zk-footer-bar__copy strong {
  color: rgba(255, 255, 255, 0.8);
  font-weight: 600;
}
.zk-footer-bar__links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.zk-footer-bar__links a {
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  transition: color 0.2s;
}
.zk-footer-bar__links a:hover { color: var(--zk-lime-light, #94C13A); }

/* Avadas `.fusion-text p { margin: 0 0 1em 0 }` würde unsere kompakten
   Footer-Paragraphen zerstören — letztes <p> jeder fusion_text-Box flushen. */
.fusion-tb-footer .fusion-text p:last-child { margin-bottom: 0; }

/* Optischer Trenner zwischen Brand+Nav-Grid und Bottom-Bar */
.fusion-tb-footer .fusion-fullwidth.zk-footer-bar {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* ----- Mobile-Politur (≤ 640px) ----------------------------------------- */
@media (max-width: 640px) {
  /* Logo: zentrieren, max-Breite kleiner */
  .fusion-tb-footer .fusion-imageframe { max-width: 140px; }
  .fusion-tb-footer .zk-footer-brand__claim {
    max-width: none;
    font-size: 0.92rem;
  }
  .fusion-tb-footer h3.zk-footer-col__title { margin-bottom: 14px !important; }
  .fusion-tb-footer .zk-footer-col__list { gap: 8px; }
  .fusion-tb-footer .zk-footer-bar__copy {
    font-size: 0.8rem;
    text-align: center;
  }
  .fusion-tb-footer .zk-footer-bar__links {
    justify-content: center;
    gap: 4px 18px;
  }
}

/* ----- Tablet-Politur (641-1023px) -------------------------------------- */
@media (min-width: 641px) and (max-width: 1023px) {
  .fusion-tb-footer .zk-footer-brand__claim { max-width: 560px; }
}

/* =====================================================================
   v1.19.0 — Zentrales Partner-System (CPT auf Hauptseite, Cross-Site)
   ===================================================================== */

/* Lokale Token-Defaults für Cross-Theme-Verwendbarkeit. Scope:
   die komplette .zk-partner-collection. Greift nur dort, kein
   globaler :root-Touch. */
.zk-partner-collection {
  --zk-pc-line: #e5e7eb;
  --zk-pc-soft: #6b7280;
  --zk-pc-paper: #fafcf8;
  --zk-pc-ink: #0a2010;
  --zk-pc-muted: #4b5563;
  --zk-pc-text: var(--zk-text, #1a2e1a);
  --zk-pc-green-300: #81C784;
  --zk-pc-green-700: #236b23;
  --zk-pc-green-800: #1a4d1a;
  --zk-pc-font-display: var(--zk-font-display, 'Oswald', sans-serif);
  --zk-pc-font-body:    var(--zk-font-body, 'Roboto', sans-serif);
  --zk-pc-accent:       var(--zk-lime, #8BC34A);
  --zk-pc-accent-hover: var(--zk-lime-dark, #689F38);
  position: relative;
}

/* Tier-Section Header */
.zk-tier-section {
  margin-bottom: 56px;
}
.zk-tier-section:last-child {
  margin-bottom: 0;
}
.zk-tier-section__head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.zk-tier-section__chip {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.04);
}
.zk-tier-section__name {
  font-family: var(--zk-pc-font-display);
  font-weight: 700;
  font-size: 1.5rem;
  margin: 0;
  color: var(--zk-pc-ink);
  letter-spacing: 0.02em;
}
.zk-tier-section__count {
  font-family: var(--zk-pc-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--zk-pc-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.zk-tier-section__line {
  flex: 1;
  height: 1px;
  background: var(--zk-pc-line);
}

/* Tier-Grid mit data-cols-getriebenen Spalten */
.zk-tier-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
}
.zk-tier-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.zk-tier-grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
.zk-tier-grid[data-cols="5"] { grid-template-columns: repeat(5, 1fr); }
.zk-tier-grid[data-cols="6"] { grid-template-columns: repeat(6, 1fr); }
.zk-tier-grid[data-cols="8"] { grid-template-columns: repeat(8, 1fr); }

@media (max-width: 1180px) {
  .zk-tier-grid[data-cols="8"] { grid-template-columns: repeat(6, 1fr); }
  .zk-tier-grid[data-cols="6"] { grid-template-columns: repeat(5, 1fr); }
  .zk-tier-grid[data-cols="5"] { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 900px) {
  .zk-tier-grid[data-cols="8"] { grid-template-columns: repeat(4, 1fr); }
  .zk-tier-grid[data-cols="6"] { grid-template-columns: repeat(4, 1fr); }
  .zk-tier-grid[data-cols="5"] { grid-template-columns: repeat(3, 1fr); }
  .zk-tier-grid[data-cols="4"] { grid-template-columns: repeat(3, 1fr); }
  .zk-tier-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
  .zk-tier-grid[data-cols] { grid-template-columns: repeat(2, 1fr); }
  .zk-tier-section__head { flex-wrap: wrap; }
  .zk-tier-section__line { flex-basis: 100%; }
}

/* Partner Card (geteilt zwischen Tier-Grid + Hauptseite-Grid) */
.zk-partner-card {
  margin: 0;
  list-style: none;
}

/* v1.20.3 — Card-Border komplett entfernt (User-Feedback: doppelter Rahmen).
   Cards sind jetzt rahmenlose, helle Tiles — Trennung kommt nur durch
   Background-Tint + Hover-Shadow. */
.zk-partner-card__trigger {
  appearance: none;
  background: #ffffff;
  border: none;
  border-radius: 4px;
  padding: 16px 12px 14px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  text-align: center;
  transition: box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
}
.zk-partner-card__trigger:hover {
  box-shadow: 0 8px 24px rgba(15,43,15,0.10);
  transform: translateY(-1px);
}
.zk-partner-card__trigger:focus-visible {
  outline: 2px solid var(--zk-pc-accent);
  outline-offset: 2px;
}

.zk-partner-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 110px;
}
/* v1.20.4 — width statt max-width: zwingt kleine Quelldateien aktiv auf
   Card-Breite zu skalieren (max-width nutzt nur natürliche Bildgröße als
   Obergrenze, was bei vielen Logo-PNGs zu kleinen Renderings führt). */
.zk-partner-card__logo-img {
  width: 90%;
  height: auto;
  max-height: 130px;
  object-fit: contain;
  display: block;
}
.zk-partner-card__logo-fallback {
  font-family: var(--zk-pc-font-display);
  font-weight: 600;
  font-size: 1rem;
  color: var(--zk-pc-soft);
  letter-spacing: 0.04em;
}

/* v1.20.4 — Logos via width-Force pro Tier vergrößert.
   Diamant 3-col: 95% Card-Breite (riesig), 8-col Tiers eher schmal. */
.zk-tier-grid[data-cols="3"] .zk-partner-card__trigger { padding: 20px 16px 14px; gap: 14px; }
.zk-tier-grid[data-cols="3"] .zk-partner-card__logo     { min-height: 240px; }
.zk-tier-grid[data-cols="3"] .zk-partner-card__logo-img { width: 95%; max-height: 260px; }

.zk-tier-grid[data-cols="4"] .zk-partner-card__trigger { padding: 18px 14px 12px; gap: 12px; }
.zk-tier-grid[data-cols="4"] .zk-partner-card__logo     { min-height: 180px; }
.zk-tier-grid[data-cols="4"] .zk-partner-card__logo-img { width: 92%; max-height: 200px; }

.zk-tier-grid[data-cols="5"] .zk-partner-card__trigger { padding: 16px 12px 10px; gap: 10px; }
.zk-tier-grid[data-cols="5"] .zk-partner-card__logo     { min-height: 150px; }
.zk-tier-grid[data-cols="5"] .zk-partner-card__logo-img { width: 92%; max-height: 170px; }

.zk-tier-grid[data-cols="6"] .zk-partner-card__trigger { padding: 14px 10px 10px; gap: 10px; }
.zk-tier-grid[data-cols="6"] .zk-partner-card__logo     { min-height: 130px; }
.zk-tier-grid[data-cols="6"] .zk-partner-card__logo-img { width: 92%; max-height: 140px; }

.zk-tier-grid[data-cols="8"] .zk-partner-card__trigger { padding: 12px 8px 8px; gap: 8px; }
.zk-tier-grid[data-cols="8"] .zk-partner-card__logo     { min-height: 110px; }
.zk-tier-grid[data-cols="8"] .zk-partner-card__logo-img { width: 92%; max-height: 120px; }

@media (max-width: 900px) {
  /* Tablet — Diamant + Gold etwas kompakter, Logos bleiben prominent */
  .zk-tier-grid[data-cols="3"] .zk-partner-card__logo     { min-height: 200px; }
  .zk-tier-grid[data-cols="3"] .zk-partner-card__logo-img { max-height: 220px; }
}

@media (max-width: 600px) {
  /* Mobile: alle Tiers fallen via Container-Breakpoint auf 2-col → die
     Cards sind dann fast page-breit. Logos werden riesig: 95% Card-Breite,
     max-height 260px (typisches Landscape-Logo füllt damit fast die ganze
     Card-Fläche aus). Padding minimal, gap winzig. */
  .zk-tier-grid[data-cols] .zk-partner-card__trigger {
    padding: 16px 12px 10px;
    gap: 10px;
  }
  .zk-tier-grid[data-cols] .zk-partner-card__logo {
    min-height: 220px;
  }
  .zk-tier-grid[data-cols] .zk-partner-card__logo-img {
    width: 95%;
    max-height: 260px;
  }
}

/* Defensive — falls Avada irgendwo eine Standard-Border oder ein zweites
   Wrapper-Outline einfügt, hier explizit killen. */
.zk-partner-card,
.zk-partner-card .zk-partner-card__logo,
.zk-partner-card .zk-partner-card__logo-img,
.zk-partner-card__trigger > * {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}
.zk-partner-card__trigger:focus-visible {
  outline: 2px solid var(--zk-pc-accent) !important;
  outline-offset: 2px;
}
.zk-partner-card__trigger:hover {
  box-shadow: 0 8px 24px rgba(15,43,15,0.10) !important;
}

/* v1.20.4 — "Mehr erfahren" deutlich kleiner (User: "kann kleiner"),
   damit es auf Mobile in einer Zeile bleibt und das Logo dominiert. */
.zk-partner-card__more {
  font-family: var(--zk-pc-font-body);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--zk-pc-green-700);
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  white-space: nowrap;
  transition: color 0.18s ease;
}
.zk-partner-card__trigger:hover .zk-partner-card__more,
.zk-partner-card__trigger:focus-visible .zk-partner-card__more {
  color: var(--zk-pc-green-800);
}
@media (max-width: 600px) {
  .zk-partner-card__more {
    font-size: 0.56rem;
    letter-spacing: 0.04em;
  }
}

/* Modal */
.zk-partner-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.zk-partner-modal.is-open {
  display: flex;
}
.zk-partner-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 32, 16, 0.78);
  backdrop-filter: blur(4px);
  animation: zk-partner-fade 0.22s ease both;
}
.zk-partner-modal__dialog {
  position: relative;
  background: #ffffff;
  border-radius: 6px;
  width: 100%;
  max-width: 640px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 56px 48px 48px;
  box-shadow: 0 28px 80px rgba(0,0,0,0.32);
  animation: zk-partner-pop 0.24s cubic-bezier(0.16, 1, 0.3, 1) both;
  outline: none;
}
.zk-partner-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid var(--zk-pc-line);
  color: var(--zk-pc-text);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.zk-partner-modal__close:hover,
.zk-partner-modal__close:focus-visible {
  background: var(--zk-pc-paper);
  border-color: var(--zk-pc-green-300);
  color: var(--zk-pc-green-700);
  outline: none;
}

.zk-partner-modal__content {
  display: flex;
  flex-direction: column;
}
.zk-partner-modal__logo {
  margin: 0 0 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 90px;
}
.zk-partner-modal__logo-img {
  max-height: 120px;
  max-width: 280px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.zk-partner-modal__logo-fallback {
  font-family: var(--zk-pc-font-display);
  font-weight: 700;
  font-size: 1.8rem;
  color: var(--zk-pc-green-700);
  letter-spacing: 0.03em;
  text-align: center;
}
.zk-partner-modal__title {
  font-family: var(--zk-pc-font-display);
  font-weight: 600;
  font-size: 1.6rem;
  color: var(--zk-pc-ink) !important;
  margin: 0 0 18px;
  text-align: center;
  letter-spacing: 0.01em;
}
.zk-partner-modal__body {
  font-family: var(--zk-pc-font-body);
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--zk-pc-text);
  margin-bottom: 28px;
}
.zk-partner-modal__body p { margin: 0 0 12px; }
.zk-partner-modal__body p:last-child { margin-bottom: 0; }
.zk-partner-modal__body a {
  color: var(--zk-pc-green-700);
  text-decoration: underline;
}
.zk-partner-modal__body ul,
.zk-partner-modal__body ol { margin: 0 0 12px 20px; padding: 0; }

.zk-partner-modal__cta {
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--zk-pc-accent);
  color: var(--zk-pc-ink) !important;
  font-family: var(--zk-pc-font-body);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  padding: 14px 28px;
  border-radius: 4px;
  letter-spacing: 0.02em;
  transition: background 0.18s ease, transform 0.18s ease, color 0.18s ease;
}
.zk-partner-modal__cta:hover,
.zk-partner-modal__cta:focus-visible {
  background: var(--zk-pc-accent-hover);
  color: #ffffff !important;
  outline: none;
  transform: translateY(-1px);
}

body.zk-partner-modal-open {
  overflow: hidden;
}

.zk-partner-empty {
  font-family: var(--zk-pc-font-body);
  color: var(--zk-pc-muted);
  text-align: center;
  padding: 40px 0;
  margin: 32px 0 0;
}

/* SR-only Fallback */
.zk-partner-collection .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 600px) {
  .zk-partner-modal {
    padding: 12px;
  }
  .zk-partner-modal__dialog {
    padding: 48px 22px 32px;
    max-height: calc(100vh - 24px);
  }
  .zk-partner-modal__title { font-size: 1.3rem; }
  .zk-partner-modal__logo-img { max-height: 90px; }
}

@keyframes zk-partner-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes zk-partner-pop {
  from { opacity: 0; transform: translateY(12px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .zk-partner-modal__backdrop,
  .zk-partner-modal__dialog {
    animation: none;
  }
  .zk-partner-card__trigger:hover {
    transform: none;
  }
}

/* ==========================================================================
   Tickets-Seite — natives Avada Pricing-Table (v1.24.0)
   Die 6 Ticket-Tiers sind als [fusion_pricing_table] aufgebaut (im Live
   Builder editierbar). Hier nur Brand-Feinschliff: Oswald-Headings, runde
   Karten, Lime-CTA über die ganze Breite, hervorgehobene Early-Bird-Spalte.
   ========================================================================== */
.zk-ticket-pricing .fusion-panel {
  border-radius: 16px;
  overflow: hidden;
}
.zk-ticket-pricing .panel-heading h3 {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  letter-spacing: 0.01em;
}
/* Header-Band in ZUKE-Grün statt Avada-Default-Grün, weiße Schrift */
.zk-ticket-pricing .panel-heading {
  background-color: var(--zk-primary-800, #1a4d1a) !important;
}
.zk-ticket-pricing .panel-heading h3 {
  color: #ffffff !important;
}
.zk-ticket-pricing .panel-body .price,
.zk-ticket-pricing .panel-body .price .integer-part,
.zk-ticket-pricing .panel-body .price .currency {
  font-family: 'Oswald', sans-serif;
}
.zk-ticket-pricing .panel-body .price .time {
  display: block;
  margin-top: 4px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--zk-text-muted, #6b7280);
}
.zk-ticket-pricing ul.list-group li.list-group-item {
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
}
/* Hervorgehobene Spalte (Early Bird) */
.zk-ticket-pricing .panel-wrapper.standout .fusion-panel {
  border: 2px solid var(--zk-lime, #8BC34A);
  box-shadow: 0 14px 38px rgba(15, 43, 15, 0.16);
}
/* CTA-Button füllt die Spaltenbreite */
.zk-ticket-pricing .panel-footer .fusion-button {
  display: block;
  width: 100%;
  text-align: center;
}
/* 6 Tiers als sauberes 3×2-Raster statt 6 enger Spalten. Avada legt die
   Spalten als Floats aus — darum width + clear pro Reihe, sonst verhaken sich
   ungleich hohe Karten. */
.zk-ticket-pricing .panel-wrapper { width: 33.3333% !important; }
.zk-ticket-pricing .panel-wrapper:nth-child(3n+1) { clear: left; }
@media (max-width: 980px) {
  .zk-ticket-pricing .panel-wrapper { width: 50% !important; }
  .zk-ticket-pricing .panel-wrapper:nth-child(3n+1) { clear: none; }
  .zk-ticket-pricing .panel-wrapper:nth-child(2n+1) { clear: left; }
}
@media (max-width: 600px) {
  .zk-ticket-pricing .panel-wrapper { width: 100% !important; }
  .zk-ticket-pricing .panel-wrapper:nth-child(2n+1) { clear: none; }
}

/* ==========================================================================
   v1.23.2 — rapidmail-Newsletter-Popup über die Sticky-Navigation heben

   Problem: rapidmail rendert sein Popup als #rmOrganism .rmPopup__container
   (position:fixed; inset:0) mit z-index:1000. Die Avada-Sticky-Navigation
   liegt darüber, sodass das mittig zentrierte Dialog-Feld – und damit der
   Schließen-Button (.rmPopup__close, top:2px/right:2px) – von der Navbar
   verdeckt wird und nicht klickbar ist.

   Fix: Den gesamten Popup-Overlay (Backdrop + Dialog + Close) auf z-index
   100001 heben – knapp über unser Partner-Modal (100000) und damit über
   Header und WP-Adminbar. Wie ein normales Modal überdeckt das Popup im
   geöffneten Zustand die Navigation, der Close-Button wird erreichbar.

   !important nötig: rapidmail injiziert seine Styles zur Laufzeit via
   popup.js (gleiche Selektor-Spezifität, aber spätere Quell-Reihenfolge),
   sonst gewinnt rapidmails z-index:1000.
   ========================================================================== */
#rmOrganism .rmPopup__container {
  z-index: 100001 !important;
}

/* ==========================================================================
   v1.25.0 — Button-Redesign: Avada Fusion-Buttons (Primär Grün, Sekundär Blau)
   --------------------------------------------------------------------------
   User-Korrektur (2026-06-21): Primär = GRÜN gefüllt + weiße Schrift;
   Sekundär = NAVY-BLAU gefüllt + weiße Schrift; Outline (Rahmen + Text, on
   hover solid) NUR als Begleiter direkt neben/über einem Solid-Button.

   Avada rendert Fusion-Buttons FARBLOS über INLINE Custom-Properties am <a>
   (--button_gradient_top_color, --button_accent_color, --button_border_color
   + *_hover-Varianten). Die Avada-Parent-CSS liest diese Vars:
     background:var(--button_gradient_top_color); color:var(--button_accent_color)
   Es gibt KEINE pro-Instanz-Farbregeln (.fusion-button-N) — alle Farben kommen
   aus den Inline-Vars. → Wir überschreiben NUR diese Vars mit !important
   (schlägt die Inline-Vars ohne !important). Kein DB-Eingriff nötig
   (Page-Content bleibt Source of Truth).

   Zuordnung über den BESTEHENDEN Füll-Wert via [style*=…] (Avada gibt den Wert
   lowercase, ohne Spaces aus):
     • #8bc34a bzw. var(--awb-custom_color_1)  → vormals Lime = PRIMÄR → Grün gefüllt
     • rgba(255,255,255,0)                     → transparent (Begleiter) = OUTLINE → Blau
     • #ffffff                                 → weiße Füllung (Mini-Cart) = Blau-Outline
   ⚠️ Selektoren matchen Avadas exakte Inline-Schreibweise (lowercase Hex, keine
      Spaces) — bei Avada-Update-Formatänderung prüfen.
   ========================================================================== */

/* — PRIMÄR: vormals Lime-gefüllt → Grün gefüllt, weiße Schrift, Hover dunkleres Grün — */
.fusion-button[style*="--button_gradient_top_color:#8bc34a"],
.fusion-button[style*="--button_gradient_top_color:var(--awb-custom_color_1)"] {
  --button_gradient_top_color: var(--zk-btn, #95C23C) !important;
  --button_gradient_bottom_color: var(--zk-btn, #95C23C) !important;
  --button_gradient_top_color_hover: var(--zk-btn-hover, #85AE34) !important;
  --button_gradient_bottom_color_hover: var(--zk-btn-hover, #85AE34) !important;
  --button_accent_color: #ffffff !important;
  --button_accent_hover_color: #ffffff !important;
  --button_border_color: var(--zk-btn, #95C23C) !important;
  --button_border_hover_color: var(--zk-btn-hover, #85AE34) !important;
}

/* — OUTLINE-Begleiter: vormals transparent → blauer Rahmen + blaue Schrift,
     Hover → solid Blau + weiße Schrift — */
.fusion-button[style*="--button_gradient_top_color:rgba(255,255,255,0)"] {
  --button_gradient_top_color: rgba(255,255,255,0) !important;
  --button_gradient_bottom_color: rgba(255,255,255,0) !important;
  --button_gradient_top_color_hover: var(--zk-btn-2, #18294A) !important;
  --button_gradient_bottom_color_hover: var(--zk-btn-2, #18294A) !important;
  --button_accent_color: var(--zk-btn-2, #18294A) !important;
  --button_accent_hover_color: #ffffff !important;
  --button_border_color: var(--zk-btn-2, #18294A) !important;
  --button_border_hover_color: var(--zk-btn-2, #18294A) !important;
}

/* — Heller Utility-Button (Mini-Cart, weiße Füllung): blauer Rahmen + blaues Icon,
     Hover → solid Blau + weiße Schrift — */
.fusion-button[style*="--button_gradient_top_color:#ffffff"] {
  --button_gradient_top_color_hover: var(--zk-btn-2, #18294A) !important;
  --button_gradient_bottom_color_hover: var(--zk-btn-2, #18294A) !important;
  --button_accent_color: var(--zk-btn-2, #18294A) !important;
  --button_accent_hover_color: #ffffff !important;
  --button_border_color: var(--zk-btn-2, #18294A) !important;
  --button_border_hover_color: var(--zk-btn-2, #18294A) !important;
}

/* — Dunkle Sections (TB-Footer): Primär-Grün kontrastiert gut auf Dunkel →
     grün gefüllt, weiße Schrift, Hover dunkleres Grün. Defensiv: aktuell keine
     Fusion-Buttons im Footer, greift aber automatisch bei künftigen. — */
.fusion-tb-footer .fusion-button,
.zk-footer .fusion-button {
  --button_gradient_top_color: var(--zk-btn, #95C23C) !important;
  --button_gradient_bottom_color: var(--zk-btn, #95C23C) !important;
  --button_gradient_top_color_hover: var(--zk-btn-hover, #85AE34) !important;
  --button_gradient_bottom_color_hover: var(--zk-btn-hover, #85AE34) !important;
  --button_accent_color: #ffffff !important;
  --button_accent_hover_color: #ffffff !important;
  --button_border_color: var(--zk-btn, #95C23C) !important;
  --button_border_hover_color: var(--zk-btn-hover, #85AE34) !important;
}

/* ==========================================================================
   v1.26.0 — Ticket-CTA-Buttons: größere, besser lesbare Button-Schrift
   --------------------------------------------------------------------------
   Die "Ticket buchen"-CTAs in der Pricing-Table sind als Avada-medium-Buttons
   angelegt (~14px) und über .panel-footer .fusion-button vollbreit gestreckt.
   Auf der ganzen Spaltenbreite wirkt die Schrift zu klein gegenüber den großen
   Preis-Zahlen und den ~0.92rem-Feature-Zeilen. Schrift + Icon dezent hochziehen
   und das vertikale Padding leicht mitziehen, damit die Pille proportional bleibt.
   Greift für ALLE Ticket-Tiers gleich (eine Regel, kein DB-/Builder-Eingriff —
   Page-Content bleibt Source of Truth).
   ========================================================================== */
.zk-ticket-pricing .panel-footer .fusion-button,
.zk-ticket-pricing .panel-footer .fusion-button .fusion-button-text {
  font-size: 1.0625rem !important; /* ~17px statt ~14px */
  font-weight: 600 !important;
  letter-spacing: 0.01em;
}
.zk-ticket-pricing .panel-footer .fusion-button {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}
.zk-ticket-pricing .panel-footer .fusion-button .fusion-button-icon {
  font-size: 0.95em !important;
}

/* =====================================================================
   Kontaktformular (Kongress /kontakt/ · v1.27.0)
   mu-plugin: zuke-kongress-content.php · Shortcode [zuke_kongress_contact_form]
   Self-contained (nur Button-Tokens --zk-btn* mit Fallback).
   ===================================================================== */
.zk-contact-form {
  max-width: 720px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #e4ebdd;
  border-radius: 10px;
  padding: 36px 32px;
  box-shadow: 0 12px 40px rgba(10, 32, 16, 0.06);
}
.zk-contact-form__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  color: #0a2010;
  margin: 0 0 12px;
}
.zk-contact-form__note {
  font-family: 'Roboto', sans-serif;
  font-size: 0.95rem;
  color: #5c6b57;
  line-height: 1.7;
  margin: 0 0 8px;
}
.zk-contact-form__note a { color: #4e7d1e; font-weight: 600; text-decoration: none; }
.zk-contact-form__note a:hover { text-decoration: underline; }

.zk-contact-form__form { margin-top: 22px; }
.zk-contact-form__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.zk-contact-form__field--wide,
.zk-contact-form__consent { grid-column: 1 / -1; }
.zk-contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.zk-contact-form__label {
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: #0a2010;
  letter-spacing: 0.01em;
}
.zk-contact-form__label em { color: #4e7d1e; font-style: normal; }
.zk-contact-form__field input,
.zk-contact-form__field textarea {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  color: #0a2010;
  background: #ffffff;
  border: 1.5px solid #cdd6c4;
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color 0.15s ease;
  width: 100%;
  box-sizing: border-box;
}
.zk-contact-form__field input:focus,
.zk-contact-form__field textarea:focus {
  outline: none;
  border-color: #95C23C;
}
.zk-contact-form__field textarea { resize: vertical; min-height: 120px; }
.zk-contact-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 4px;
  font-family: 'Roboto', sans-serif;
  font-size: 0.9rem;
  color: #5c6b57;
  line-height: 1.55;
  cursor: pointer;
}
.zk-contact-form__consent input { margin-top: 3px; accent-color: #95C23C; }
.zk-contact-form__consent a { color: #4e7d1e; text-decoration: underline; }
.zk-contact-form__consent em { color: #4e7d1e; font-style: normal; }

.zk-contact-form__honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.zk-contact-form__submit {
  margin-top: 22px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 30px;
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--zk-btn-text, #ffffff);
  background: var(--zk-btn, #95C23C);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}
.zk-contact-form__submit:hover {
  transform: translateY(-2px);
  background: var(--zk-btn-hover, #85AE34);
}
.zk-contact-form__submit:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.zk-contact-form__submit-arrow { font-weight: 700; transition: transform 0.15s ease; }
.zk-contact-form__submit:hover .zk-contact-form__submit-arrow { transform: translateX(3px); }
.zk-contact-form__status {
  margin: 14px 0 0;
  font-family: 'Roboto', sans-serif;
  font-size: 0.92rem;
  color: #5c6b57;
  min-height: 1.4em;
}

.zk-contact-form__success { text-align: center; padding: 18px 8px 8px; }
.zk-contact-form__success-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  font-weight: 700;
  color: #ffffff;
  background: #95C23C;
  border-radius: 50%;
}
.zk-contact-form__success-title {
  font-family: 'Oswald', sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #0a2010;
  margin: 0 0 10px;
}
.zk-contact-form__success-text {
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  color: #5c6b57;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 600px) {
  .zk-contact-form { padding: 28px 22px; }
  .zk-contact-form__fields { grid-template-columns: 1fr; }
}

/* =========================================================================
   v1.28.0 — Early-Bird-Spruchband (Startseite, ersetzt die Trust-Bar)
   Mobil (≤700px): durchlaufendes Band (Marquee, nahtloser Loop über 4
   identische Items → translateX(-50%)). Desktop (>700px): statisch,
   zentriert, Duplikate ausgeblendet. prefers-reduced-motion: statisch.
   Die .zk-trust-bar-Regeln oben bleiben erhalten (Klasse wird auf den
   Rückblick-Seiten weiter genutzt).
   ========================================================================= */
.zk-ticker {
  overflow: hidden;
  margin: 0;
}
.zk-ticker__link {
  display: block;
  text-decoration: none;
  border-bottom: none;
}
.zk-ticker__link:focus-visible {
  outline: 2px solid var(--zk-lime-light, #94C13A);
  outline-offset: 2px;
}
.zk-ticker__track {
  display: flex;
  align-items: center;
  width: max-content;
}
.zk-ticker__item {
  font-family: 'Roboto', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.02em;
  white-space: nowrap;
  padding-right: 64px;
}
.zk-ticker__item strong {
  font-family: 'Oswald', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--zk-lime-light, #94C13A);
}
/* Desktop: statisch + zentriert, nur das erste Exemplar sichtbar */
@media (min-width: 701px) {
  .zk-ticker__track { width: 100%; justify-content: center; }
  .zk-ticker__item { padding-right: 0; }
  .zk-ticker__item[aria-hidden="true"] { display: none; }
}
/* Mobile: durchlaufendes Spruchband */
@media (max-width: 700px) {
  .zk-ticker__track { animation: zk-ticker-scroll 22s linear infinite; }
}
@keyframes zk-ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* Barrierefreiheit: keine Bewegung, wenn das System es nicht will */
@media (prefers-reduced-motion: reduce) {
  .zk-ticker__track {
    animation: none;
    width: 100%;
    justify-content: center;
  }
  .zk-ticker__item {
    white-space: normal;
    text-align: center;
    padding-right: 0;
  }
  .zk-ticker__item[aria-hidden="true"] { display: none; }
}

/* "~"-Prefix für die Nachrichten-Kachel der Motto-Sektion
   (analog zu .zk-counter--clinics — Avada hat keinen Prefix-Param) */
.fusion-counters-box.zk-counters-grid .zk-counter--approx .display-counter::before {
  content: "~";
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  color: inherit;
  margin-right: 0.05em;
}

/* ==========================================================================
   Lösungspartner-Reichweite + Partner-Abfrage (Kundenfeedback 07/2026)
   ========================================================================== */

/* /partner/loesungspartner/ — Section "Reichweite + Zahlen".
   Big-Number-Kacheln nutzen die bestehenden .zk-recap-num-Styles (Rückblick);
   .zk-reach-numbers steuert nur den Abstand unter dem Section-Head. */
.zk-reach-numbers { margin: 40px 0 0; }

.zk-reach-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.zk-reach-group {
  background: #ffffff;
  border: 1px solid var(--zk-border, #e5e7eb);
  border-radius: 4px;
  border-top: 3px solid var(--zk-lime, #8BC34A);
  padding: 28px 26px;
}
.zk-reach-group__title {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 12px;
}
.zk-reach-group__list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: 'Roboto', sans-serif;
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--zk-gray-700, #374151);
}
.zk-reach-group__list li {
  padding: 7px 0;
  border-bottom: 1px dashed var(--zk-border, #e5e7eb);
}
.zk-reach-group__list li:last-child { border-bottom: 0; }
.zk-reach-group__list strong {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 1.1em;
  color: var(--zk-primary-700, #236b23);
}
.zk-reach-group__note {
  margin: 10px 0 0;
  font-family: 'Roboto', sans-serif;
  font-size: 0.85rem;
  color: var(--zk-text-muted, #6b7280);
}
@media (max-width: 760px) {
  .zk-reach-groups { grid-template-columns: 1fr; }
}

/* /partner/ — Interessens-Abfrage zwischen Hero und Partner-Grid.
   Das HubSpot-Formular (Shortcode) bringt seine Card-Styles selbst mit;
   hier nur Breite/Typografie der Abfrage. */
.zk-partner-inquiry { max-width: 760px; }
.zk-partner-inquiry__question {
  font-family: 'Roboto', sans-serif;
  font-size: 1.15rem;
  line-height: 1.6;
  color: var(--zk-deep, #0a2010);
  margin: 0 0 14px;
}
.zk-partner-inquiry__cta {
  font-family: 'Roboto', sans-serif;
  font-size: 1rem;
  color: var(--zk-gray-700, #374151);
  margin: 0 0 24px;
}
.zk-partner-inquiry .zk-hubspot-form { max-width: 760px; }

/* =========================================================================
   v1.31.0 — Editorial-Quote-Porträt + Ticker-Feinschliff (13.07.2026)
   (1) Porträt der Zitatgeberin: rundes Foto mit Lime-Ring links neben dem
       Zitat, das „-Zeichen als Gradient-Badge am Fotorand (ersetzt den
       früheren zk-quote-mark-Kreis; dessen Regeln bleiben als Fallback).
   (2) Ticker: „EARLY BIRD" in Neon #C6FF00 (explizite User-Vorgabe
       13.07.2026 — bewusste Ausnahme vom Farbspektrum) + Desktop-Polish.
   ========================================================================= */
.zk-quote-portrait {
  position: relative;
  width: 100%;
  max-width: 200px;
  margin-left: auto;
}
.zk-quote-portrait img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
  border: 4px solid var(--zk-lime, #8BC34A);
  box-shadow: 0 16px 40px rgba(15, 43, 15, 0.18);
}
.zk-quote-portrait__mark {
  position: absolute;
  right: -6px;
  bottom: -10px;
  width: 62px;
  height: 62px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 5px;
  background: linear-gradient(135deg, #1a4d1a, var(--zk-deep, #0a2010));
  border-radius: 50%;
  border: 3px solid #f8faf5; /* Section-Hintergrund → wirkt freigestellt */
  color: var(--zk-lime-light, #94C13A);
  font-family: 'Fraunces', serif;
  font-size: 2.1rem;
  line-height: 1;
  box-shadow: 0 8px 20px rgba(15, 43, 15, 0.25);
}
@media (max-width: 1024px) {
  .zk-quote-portrait { margin: 0 auto 28px; max-width: 150px; }
  .zk-quote-portrait__mark { width: 50px; height: 50px; font-size: 1.7rem; padding-top: 4px; }
}

/* Ticker: Neon-Label + Desktop-Feinschliff */
.zk-ticker__item strong {
  color: var(--zk-neon, #C6FF00);
}
@media (min-width: 701px) {
  .zk-ticker__item {
    font-size: 0.95rem;
    letter-spacing: 0.035em;
  }
  .zk-ticker__item strong {
    font-size: 1.08rem;
    margin-right: 4px;
    text-shadow: 0 0 14px rgba(198, 255, 0, 0.4);
  }
  .zk-ticker__link {
    transition: filter 0.2s ease;
  }
  .zk-ticker__link:hover {
    filter: brightness(1.12);
  }
}
