/* =====================================================================
   ZOLLCON DESIGN SYSTEM v2.0.2  ·  Styleguide 09/2026
   Prinzip: Tokens + Komponentenklassen, keine seitenindividuellen Hacks.
   Elementor-Elemente erhalten nur CSS-Klassen (zc-*), Styling lebt hier.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. TOKENS
   Cyan-Wert stammt aus der bestehenden Brand-Konfiguration (Theme-Option
   "main-color" der Live-Site). Kein Logo-SVG im System vorhanden.
   --zc-cyan-text: Kontrastvariante für Text auf hellen Flächen
   (#00CED1 auf Weiß = 1,9:1 → nicht WCAG-konform für Text).
   ------------------------------------------------------------------- */
:root {
  --zc-cyan: #00CED1;
  --zc-cyan-text: #0F8481;
  --zc-cyan-soft: #E4F8F8;
  --zc-ink: #111820;
  --zc-graphite: #222B31;
  --zc-body: #46535C;
  --zc-muted: #6E7A83;
  --zc-border: #DDE3E6;
  --zc-border-strong: #BFC8CD;
  --zc-surface: #F5F7F7;
  --zc-surface-2: #EEF2F3;
  --zc-white: #FFFFFF;
  --zc-black: #0B1014;

  --zc-dark-text: rgba(255, 255, 255, 0.76);
  --zc-dark-border: rgba(255, 255, 255, 0.12);

  --zc-font: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --zc-container: 1240px;
  --zc-gutter: 32px;
  --zc-reading: 720px;
  --zc-hero-text: 640px;

  --zc-radius: 4px;
  --zc-radius-btn: 3px;

  --zc-section: 104px;
  --zc-section-lg: 120px;
  --zc-section-sm: 80px;

  --zc-shadow: 0 8px 30px rgba(17, 24, 32, 0.06);
  --zc-transition: 180ms ease;
}
@media (max-width: 1024px) {
  :root { --zc-gutter: 24px; --zc-section: 80px; --zc-section-lg: 88px; --zc-section-sm: 64px; }
}
@media (max-width: 767px) {
  :root { --zc-gutter: 20px; --zc-section: 64px; --zc-section-lg: 72px; --zc-section-sm: 56px; }
}

/* ---------------------------------------------------------------------
   2. BASIS-TYPOGRAFIE
   ------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--zc-font);
  font-size: 17px;
  line-height: 1.65;
  color: var(--zc-body);
  background: var(--zc-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body, .elementor-widget-text-editor, .elementor-widget-heading .elementor-heading-title,
.elementor-button, .elementor-nav-menu, input, textarea, select, button {
  font-family: var(--zc-font);
}

h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title {
  color: var(--zc-ink);
  font-weight: 700;
  margin: 0;
}
h1, h1.elementor-heading-title {
  font-size: clamp(38px, 4vw, 60px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 700;
}
h2, h2.elementor-heading-title {
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  font-weight: 700;
}
h3, h3.elementor-heading-title {
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  font-weight: 650;
}
h4, h4.elementor-heading-title {
  font-size: 21px;
  line-height: 1.3;
  font-weight: 600;
}
h5, h5.elementor-heading-title { font-size: 18px; line-height: 1.35; font-weight: 600; }
h6, h6.elementor-heading-title { font-size: 16px; line-height: 1.4; font-weight: 600; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor { color: var(--zc-body); font-size: 17px; line-height: 1.65; }
.elementor-widget-text-editor strong { color: var(--zc-ink); font-weight: 600; }
.elementor-widget-text-editor ul { padding-left: 1.2em; margin: 0 0 1em; }

a { color: var(--zc-ink); transition: color var(--zc-transition); }
a:hover { color: var(--zc-cyan-text); }
.elementor-widget-text-editor a {
  color: var(--zc-cyan-text);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.elementor-widget-text-editor a:hover { color: var(--zc-ink); }

/* Typografische Rollen (Klassen auf Heading-/Text-Widgets) */
.zc-eyebrow .elementor-heading-title, .zc-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--zc-cyan-text);
  line-height: 1.4;
}
.zc-lead, .zc-lead .elementor-widget-container, .zc-lead p {
  font-size: 19px;
  line-height: 1.6;
  color: var(--zc-body);
}
.zc-lead strong { color: var(--zc-ink); font-weight: 600; }
.zc-small, .zc-small p { font-size: 15px; line-height: 1.55; }
.zc-muted, .zc-muted p { color: var(--zc-muted); }
.zc-reading { max-width: var(--zc-reading); }
.zc-hero-text { max-width: var(--zc-hero-text); }
.zc-center { text-align: center; margin-left: auto; margin-right: auto; }
.zc-heading-lg .elementor-heading-title { font-size: clamp(34px, 3.4vw, 50px); }
.zc-heading-md .elementor-heading-title { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.2; letter-spacing: -0.01em; font-weight: 650; }
.zc-heading-sm .elementor-heading-title { font-size: 19px; line-height: 1.35; font-weight: 600; }
.zc-heading-xs .elementor-heading-title { font-size: 16px; line-height: 1.4; font-weight: 600; }
.zc-display-num .elementor-heading-title {
  font-size: 40px; line-height: 1; font-weight: 700; letter-spacing: -0.02em;
  color: var(--zc-cyan-text); font-variant-numeric: tabular-nums;
}
.zc-kpi-num .elementor-heading-title {
  font-size: clamp(40px, 4vw, 56px); line-height: 1; font-weight: 700; letter-spacing: -0.03em;
  color: var(--zc-ink); font-variant-numeric: tabular-nums;
}
.zc-kpi-label { font-size: 14px; color: var(--zc-muted); line-height: 1.5; }

/* ---------------------------------------------------------------------
   3. SECTIONS / CONTAINER
   Elementor-Container: Padding über CSS-Variablen der Container-API.
   ------------------------------------------------------------------- */
.e-con.zc-section {
  --padding-top: var(--zc-section);
  --padding-bottom: var(--zc-section);
  --padding-left: var(--zc-gutter);
  --padding-right: var(--zc-gutter);
  --container-max-width: var(--zc-container);
  background: var(--zc-white);
}
.e-con.zc-section--lg { --padding-top: var(--zc-section-lg); --padding-bottom: var(--zc-section-lg); }
.e-con.zc-section--sm { --padding-top: var(--zc-section-sm); --padding-bottom: var(--zc-section-sm); }
.e-con.zc-section--surface { background: var(--zc-surface); }
.e-con.zc-section--surface-2 { background: var(--zc-surface-2); }
.e-con.zc-section--dark { background: var(--zc-ink); }
.e-con.zc-section--graphite { background: var(--zc-graphite); }
.e-con.zc-section--bordered { border-top: 1px solid var(--zc-border); }
.e-con.zc-section--flush-top { --padding-top: 0px; }

/* Inhalte im Dark-Bereich */
.zc-section--dark, .zc-section--graphite { color: var(--zc-dark-text); }
.zc-section--dark .elementor-heading-title,
.zc-section--graphite .elementor-heading-title { color: var(--zc-white); }
.zc-section--dark .elementor-widget-text-editor,
.zc-section--graphite .elementor-widget-text-editor,
.zc-section--dark .zc-lead, .zc-section--graphite .zc-lead { color: var(--zc-dark-text); }
.zc-section--dark .elementor-widget-text-editor strong,
.zc-section--dark .zc-lead strong { color: var(--zc-white); }
.zc-section--dark .zc-eyebrow .elementor-heading-title,
.zc-section--graphite .zc-eyebrow .elementor-heading-title { color: var(--zc-cyan); }
.zc-section--dark .elementor-widget-text-editor a { color: var(--zc-cyan); }
.zc-section--dark .elementor-widget-text-editor a:hover { color: var(--zc-white); }
.zc-section--dark .zc-display-num .elementor-heading-title { color: var(--zc-cyan); }

/* Section-Header (Eyebrow + H2 + Intro) */
.e-con.zc-section-head { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; max-width: 820px; gap: 16px; }
.e-con.zc-section-head--center { margin-left: auto; margin-right: auto; text-align: center; align-items: center; }
.e-con.zc-section-head--wide { max-width: 980px; }

/* Widget-Abstände: Elementor-Default (20px) auf Design-System-Rhythmus */
.zc-section .elementor-widget:not(:last-child) { margin-bottom: 0; }
.e-con { --container-widget-flex-grow: 0; }

/* ---------------------------------------------------------------------
   4. BUTTONS
   .zc-btn--primary  Ink / weiße Schrift  (auf Dark: Weiß / Ink)
   .zc-btn--secondary Outline
   .zc-btn--link      Textlink mit Pfeil (Cyan-Text)
   ------------------------------------------------------------------- */
.zc-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 26px;
  font-family: var(--zc-font);
  font-size: 14px;
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: none;
  border-radius: var(--zc-radius-btn);
  border: 1px solid transparent;
  box-shadow: none;
  transition: background-color var(--zc-transition), color var(--zc-transition), border-color var(--zc-transition);
}
.zc-btn .elementor-button:hover { transform: none; box-shadow: none; }
.zc-btn .elementor-button .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.zc-btn .elementor-button .elementor-button-icon svg { width: 14px; height: 14px; }
.zc-btn .elementor-button-icon { line-height: 1; }

.zc-btn--primary .elementor-button {
  background: var(--zc-ink); color: var(--zc-white); fill: var(--zc-white); border-color: var(--zc-ink);
}
.zc-btn--primary .elementor-button:hover,
.zc-btn--primary .elementor-button:focus-visible {
  background: var(--zc-cyan); color: var(--zc-ink); fill: var(--zc-ink); border-color: var(--zc-cyan);
}
.zc-btn--secondary .elementor-button {
  background: transparent; color: var(--zc-ink); fill: var(--zc-ink); border-color: var(--zc-border-strong);
}
.zc-btn--secondary .elementor-button:hover,
.zc-btn--secondary .elementor-button:focus-visible {
  background: var(--zc-white); color: var(--zc-ink); border-color: var(--zc-ink);
}
.zc-btn--link .elementor-button {
  min-height: 0; padding: 0; background: transparent; border: 0;
  color: var(--zc-cyan-text); fill: var(--zc-cyan-text); font-size: 14px; font-weight: 650;
}
.zc-btn--link .elementor-button:hover,
.zc-btn--link .elementor-button:focus-visible { background: transparent; color: var(--zc-ink); fill: var(--zc-ink); }
.zc-btn--link .elementor-button .elementor-button-icon { transition: transform var(--zc-transition); }
.zc-btn--link .elementor-button:hover .elementor-button-icon { transform: translateX(3px); }

/* Buttons auf Dark */
.zc-section--dark .zc-btn--primary .elementor-button,
.zc-section--graphite .zc-btn--primary .elementor-button,
.zc-dark .zc-btn--primary .elementor-button {
  background: var(--zc-white); color: var(--zc-ink); fill: var(--zc-ink); border-color: var(--zc-white);
}
.zc-section--dark .zc-btn--primary .elementor-button:hover,
.zc-section--graphite .zc-btn--primary .elementor-button:hover,
.zc-dark .zc-btn--primary .elementor-button:hover { background: var(--zc-cyan); border-color: var(--zc-cyan); }
.zc-section--dark .zc-btn--secondary .elementor-button,
.zc-section--graphite .zc-btn--secondary .elementor-button {
  color: var(--zc-white); fill: var(--zc-white); border-color: rgba(255,255,255,0.35);
}
.zc-section--dark .zc-btn--secondary .elementor-button:hover,
.zc-section--graphite .zc-btn--secondary .elementor-button:hover { background: rgba(255,255,255,0.08); border-color: var(--zc-white); }
.zc-section--dark .zc-btn--link .elementor-button { color: var(--zc-cyan); fill: var(--zc-cyan); }
.zc-section--dark .zc-btn--link .elementor-button:hover { color: var(--zc-white); fill: var(--zc-white); }

/* Button-Gruppe */
.e-con.zc-btn-group { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; flex-direction: row; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 8px; }
@media (max-width: 767px) {
  .zc-btn-group .zc-btn { width: 100%; }
  .zc-btn-group .zc-btn .elementor-button:not(.zc-btn--link .elementor-button) { width: 100%; }
}

/* Fokus */
.zc-btn .elementor-button:focus-visible,
.zc-nav a:focus-visible, .zc-footer a:focus-visible,
.zc-accordion .e-n-accordion-item-title:focus-visible {
  outline: 2px solid var(--zc-cyan); outline-offset: 3px;
}

/* ---------------------------------------------------------------------
   5. LISTEN
   ------------------------------------------------------------------- */
.zc-list .elementor-icon-list-items { display: flex; flex-direction: column; gap: 11px; }
.zc-list .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; line-height: 1.55; color: var(--zc-ink); }
.zc-list .elementor-icon-list-icon { flex: 0 0 auto; margin-top: 4px; }
.zc-list .elementor-icon-list-icon svg { width: 14px; height: 14px; fill: var(--zc-cyan-text); }
.zc-list .elementor-icon-list-text { color: inherit; }
.zc-list.zc-list--muted .elementor-icon-list-item { color: var(--zc-body); }
.zc-list.zc-list--small .elementor-icon-list-item { font-size: 15px; gap: 10px; }
.zc-section--dark .zc-list .elementor-icon-list-item { color: var(--zc-white); }
.zc-section--dark .zc-list .elementor-icon-list-icon svg { fill: var(--zc-cyan); }

/* ---------------------------------------------------------------------
   6. CARDS / GRIDS
   ------------------------------------------------------------------- */
.e-con.zc-card {
  --padding-top: 32px; --padding-bottom: 32px; --padding-left: 32px; --padding-right: 32px;
  background: var(--zc-white);
  border: 1px solid var(--zc-border);
  border-radius: var(--zc-radius);
  gap: 14px;
  transition: border-color var(--zc-transition);
}
.e-con.zc-card:hover { border-color: var(--zc-border-strong); }
.e-con.zc-card--surface { background: var(--zc-surface); }
.e-con.zc-card--flat { border: 0; background: transparent; --padding-left: 0px; --padding-right: 0px; }
.zc-card .zc-btn--link { margin-top: auto; padding-top: 6px; }
.zc-card .elementor-widget-text-editor { font-size: 16px; line-height: 1.6; }

/* Icon-Widget: 24px Outline-Optik, keine Kreise */
.zc-icon .elementor-icon { display: inline-flex; width: auto; height: auto; padding: 0; background: transparent; border-radius: 0; }
.zc-icon .elementor-icon svg { width: 26px; height: 26px; fill: var(--zc-cyan-text); }
.zc-section--dark .zc-icon .elementor-icon svg { fill: var(--zc-cyan); }
.zc-icon--ink .elementor-icon svg { fill: var(--zc-ink); }

/* Generische Grids (Container mit content_width "full") */
.e-con.zc-grid { display: grid; gap: 24px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; align-items: stretch; }
.e-con.zc-grid > .e-con { --width: 100%; min-width: 0; }
.e-con.zc-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.e-con.zc-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.zc-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.zc-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.e-con.zc-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.e-con.zc-grid--gap-lg { gap: 40px 48px; }
.e-con.zc-grid--gap-sm { gap: 16px; }
@media (max-width: 1024px) {
  .e-con.zc-grid-3, .e-con.zc-grid-4, .e-con.zc-grid-5, .e-con.zc-grid-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .e-con.zc-grid-6.zc-grid--tablet-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .e-con.zc-grid-2, .e-con.zc-grid-3, .e-con.zc-grid-4, .e-con.zc-grid-5, .e-con.zc-grid-6,
  .e-con.zc-grid-6.zc-grid--tablet-3 { grid-template-columns: minmax(0, 1fr); }
  .e-con.zc-grid--mobile-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Service-Grid: 3 oben, 2 unten */
.e-con.zc-services { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-services > .e-con { --width: 100%; min-width: 0; grid-column: span 2; }
.e-con.zc-services > .e-con:nth-child(n+4) { grid-column: span 3; }
@media (max-width: 1024px) {
  .e-con.zc-services > .e-con, .e-con.zc-services > .e-con:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 767px) {
  .e-con.zc-services > .e-con, .e-con.zc-services > .e-con:nth-child(n+4) { grid-column: span 6; }
}

/* Editorial Split (Text | Bild) */
.e-con.zc-split { display: grid; grid-template-columns: 5fr 7fr; gap: 48px 64px; align-items: center; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-split--6-6 { grid-template-columns: 1fr 1fr; }
.e-con.zc-split--7-5 { grid-template-columns: 7fr 5fr; }
.e-con.zc-split--55-45 { grid-template-columns: 55fr 45fr; }
.e-con.zc-split--top { align-items: start; }
.e-con.zc-split > .e-con { --width: 100%; min-width: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; gap: 18px; }
@media (max-width: 1024px) {
  .e-con.zc-split, .e-con.zc-split--6-6, .e-con.zc-split--7-5, .e-con.zc-split--55-45 { grid-template-columns: 1fr; gap: 40px; }
  .e-con.zc-split--img-first-mobile > .e-con:last-child { order: -1; }
}

/* Bilder */
.zc-img img { display: block; width: 100%; height: auto; border-radius: var(--zc-radius); }
.zc-img--cover img { aspect-ratio: 4 / 3; object-fit: cover; }
.zc-img--wide img { aspect-ratio: 16 / 10; object-fit: cover; }
.zc-img--tall img { aspect-ratio: 4 / 5; object-fit: cover; }
.zc-img--teaser img { aspect-ratio: 3 / 2; object-fit: cover; }
.zc-img--muted img { filter: saturate(0.85) contrast(1.02); }

/* ---------------------------------------------------------------------
   7. TRUST BAR
   ------------------------------------------------------------------- */
.e-con.zc-trustbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-trustbar > .e-con { --width: 100%; min-width: 0; --padding-top: 8px; --padding-bottom: 8px; --padding-left: 32px; --padding-right: 32px; gap: 10px; }
.e-con.zc-trustbar > .e-con:first-child { --padding-left: 0px; }
.e-con.zc-trustbar > .e-con + .e-con { border-left: 1px solid var(--zc-border); }
.zc-trustbar .zc-heading-sm .elementor-heading-title { font-size: 17px; }
.zc-trustbar .elementor-widget-text-editor { font-size: 15px; line-height: 1.55; color: var(--zc-muted); }
.zc-trustbar .zc-icon .elementor-icon svg { width: 22px; height: 22px; }
@media (max-width: 1024px) {
  .e-con.zc-trustbar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
  .e-con.zc-trustbar > .e-con:nth-child(odd) { --padding-left: 0px; border-left: 0; }
  .e-con.zc-trustbar > .e-con:nth-child(even) { --padding-right: 0px; }
}
@media (max-width: 767px) {
  .e-con.zc-trustbar { grid-template-columns: 1fr; gap: 0; }
  .e-con.zc-trustbar > .e-con { --padding-left: 0px !important; --padding-right: 0px !important; --padding-top: 18px; --padding-bottom: 18px; border-left: 0 !important; border-top: 1px solid var(--zc-border); }
  .e-con.zc-trustbar > .e-con:first-child { border-top: 0; --padding-top: 0px; }
}

/* Proof-Row (Zahl/Label-Paare, z. B. "Seit 1999") – gleiches Raster, ohne Icon */
.zc-proof .zc-heading-sm .elementor-heading-title { font-size: 20px; letter-spacing: -0.01em; }

/* ---------------------------------------------------------------------
   8. TIMELINE (Prozess, 01–04)
   ------------------------------------------------------------------- */
.e-con.zc-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-timeline--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.e-con.zc-timeline > .e-con { --width: 100%; min-width: 0; --padding-top: 28px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; gap: 12px; position: relative; }
.e-con.zc-timeline > .e-con::before {
  content: ''; position: absolute; left: 0; right: -32px; top: 0; height: 1px; background: var(--zc-border);
}
.e-con.zc-timeline > .e-con:last-child::before { right: 0; }
.e-con.zc-timeline > .e-con::after {
  content: ''; position: absolute; left: 0; top: -1px; width: 48px; height: 3px; background: var(--zc-cyan);
}
.zc-timeline .zc-display-num .elementor-heading-title { font-size: 32px; }
.zc-timeline .zc-heading-sm .elementor-heading-title { font-size: 19px; }
.zc-timeline .elementor-widget-text-editor { font-size: 16px; line-height: 1.6; }
@media (max-width: 1024px) {
  .e-con.zc-timeline, .e-con.zc-timeline--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .e-con.zc-timeline > .e-con:nth-child(even)::before { right: 0; }
}
@media (max-width: 767px) {
  .e-con.zc-timeline, .e-con.zc-timeline--3 { grid-template-columns: 1fr; gap: 0; }
  .e-con.zc-timeline > .e-con { --padding-left: 32px; --padding-top: 0px; --padding-bottom: 32px; }
  .e-con.zc-timeline > .e-con::before { left: 8px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
  .e-con.zc-timeline > .e-con::after { left: 0; top: 6px; width: 17px; height: 17px; border-radius: 50%; background: var(--zc-white); border: 3px solid var(--zc-cyan); box-sizing: border-box; }
  .e-con.zc-timeline > .e-con:last-child::before { display: none; }
}
.zc-section--dark .e-con.zc-timeline > .e-con::before { background: var(--zc-dark-border); }

/* Editorial-Columns "01 · 02 · 03" */
.e-con.zc-columns-num { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-columns-num > .e-con { --width: 100%; min-width: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 40px; --padding-right: 40px; gap: 14px; }
.e-con.zc-columns-num > .e-con:first-child { --padding-left: 0px; }
.e-con.zc-columns-num > .e-con + .e-con { border-left: 1px solid var(--zc-border); }
.zc-columns-num .zc-display-num .elementor-heading-title { font-size: 44px; color: var(--zc-cyan-text); }
@media (max-width: 1024px) {
  .e-con.zc-columns-num { grid-template-columns: 1fr; gap: 40px; }
  .e-con.zc-columns-num > .e-con { --padding-left: 0px; --padding-right: 0px; --padding-top: 32px; border-left: 0; border-top: 1px solid var(--zc-border); }
  .e-con.zc-columns-num > .e-con:first-child { border-top: 0; --padding-top: 0px; }
}

/* ---------------------------------------------------------------------
   9. ACCORDION (Nested Accordion) & FAQ
   ------------------------------------------------------------------- */
.zc-accordion .e-n-accordion { display: flex; flex-direction: column; gap: 0; }
.zc-accordion .e-n-accordion-item { border: 0; border-bottom: 1px solid var(--zc-border); border-radius: 0; background: transparent; }
.zc-accordion .e-n-accordion-item:first-child { border-top: 1px solid var(--zc-border); }
.zc-accordion .e-n-accordion-item-title {
  padding: 22px 0; min-height: 60px; background: transparent; border: 0; border-radius: 0;
  font-size: 18px; font-weight: 600; color: var(--zc-ink); line-height: 1.35;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; cursor: pointer;
}
.zc-accordion .e-n-accordion-item-title-header { flex: 1 1 auto; }
.zc-accordion .e-n-accordion-item-title-text { font-size: inherit; font-weight: inherit; color: inherit; }
.zc-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--zc-cyan-text); }
.zc-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text { color: var(--zc-ink); }
.zc-accordion .e-n-accordion-item-title-icon { flex: 0 0 auto; color: var(--zc-cyan-text); fill: var(--zc-cyan-text); font-size: 14px; }
.zc-accordion .e-n-accordion-item-title-icon svg { width: 14px; height: 14px; fill: var(--zc-cyan-text); }
.zc-accordion .e-n-accordion-item > .e-con { --padding-top: 4px; --padding-bottom: 26px; --padding-left: 0px; --padding-right: 0px; max-width: 780px; border: 0; }
.zc-accordion .e-n-accordion-item > .e-con .elementor-widget-text-editor { font-size: 16px; line-height: 1.65; }
.zc-accordion .e-n-accordion-item > .e-con .zc-list .elementor-icon-list-item { font-size: 16px; }
.zc-section--dark .zc-accordion .e-n-accordion-item { border-color: var(--zc-dark-border); }
.zc-section--dark .zc-accordion .e-n-accordion-item-title { color: var(--zc-white); }

/* Sub-Headings innerhalb einer Accordion-Antwort (Leistungsgruppen) */
.zc-accordion .zc-heading-xs .elementor-heading-title { margin-top: 6px; }

/* ---------------------------------------------------------------------
   10. HEADER
   ------------------------------------------------------------------- */
.e-con.zc-header { --padding-top: 0px; --padding-bottom: 0px; --padding-left: var(--zc-gutter); --padding-right: var(--zc-gutter); --container-max-width: var(--zc-container); background: var(--zc-white); border-bottom: 1px solid var(--zc-border); min-height: 80px; z-index: 900; }
.e-con.zc-header.elementor-sticky--active { border-bottom-color: var(--zc-border); box-shadow: none; }
.e-con.zc-header > .e-con-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 80px; flex-wrap: nowrap; }
.zc-header .elementor-widget { margin: 0; }
.zc-logo { flex: 0 0 auto; }
.zc-logo img { display: block; width: 150px; height: auto; }
.zc-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: flex-end; }
.zc-nav .elementor-nav-menu--main { display: flex; }
.zc-nav .elementor-nav-menu--main .elementor-nav-menu { display: flex; align-items: center; gap: 4px; flex-wrap: nowrap; }
.zc-nav .elementor-nav-menu--main .elementor-item {
  font-size: 14px; font-weight: 600; color: var(--zc-ink); padding: 10px 14px; line-height: 1.2; letter-spacing: 0; text-transform: none; white-space: nowrap; position: relative;
}
.zc-nav .elementor-nav-menu--main .elementor-item::after {
  content: ''; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--zc-cyan); transform: scaleX(0); transform-origin: left; transition: transform var(--zc-transition);
}
.zc-nav .elementor-nav-menu--main .elementor-item:hover,
.zc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.zc-nav .elementor-nav-menu--main .elementor-item.highlighted { color: var(--zc-ink); }
.zc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after,
.zc-nav .elementor-nav-menu--main .elementor-item:hover::after { transform: scaleX(1); }
.zc-nav .elementor-nav-menu--main .sub-arrow { padding-left: 4px; }
.zc-nav .elementor-nav-menu--main .sub-arrow svg { width: 0.65em; height: 0.65em; }

/* Dropdown (Desktop) */
.zc-nav .elementor-nav-menu--dropdown { background: var(--zc-white); border: 1px solid var(--zc-border); border-radius: var(--zc-radius); box-shadow: var(--zc-shadow); padding: 8px 0; min-width: 260px; }
.zc-nav .elementor-nav-menu--dropdown .elementor-item,
.zc-nav .elementor-nav-menu--dropdown .elementor-sub-item { font-size: 14px; font-weight: 500; color: var(--zc-ink); padding: 11px 18px; text-transform: none; }
.zc-nav .elementor-nav-menu--dropdown .elementor-item:hover,
.zc-nav .elementor-nav-menu--dropdown .elementor-sub-item:hover,
.zc-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active { background: var(--zc-surface); color: var(--zc-cyan-text); }
.zc-nav .elementor-nav-menu--dropdown .elementor-nav-menu--dropdown { border-top: 1px solid var(--zc-border); }
.zc-header-cta { flex: 0 0 auto; }
.zc-header-cta .elementor-button { min-height: 44px; padding: 0 20px; font-size: 13px; }

/* Burger + Mobile-Menü */
.zc-nav .elementor-menu-toggle { width: 44px; height: 44px; border-radius: var(--zc-radius); background: transparent; color: var(--zc-ink); border: 1px solid var(--zc-border); }
.zc-nav .elementor-menu-toggle:hover, .zc-nav .elementor-menu-toggle.elementor-active { color: var(--zc-ink); background: var(--zc-surface); }
.zc-nav .elementor-menu-toggle svg { width: 20px; height: 20px; fill: currentColor; }
@media (max-width: 1024px) {
  .e-con.zc-header, .e-con.zc-header > .e-con-inner { min-height: 72px; }
  .zc-logo img { width: 130px; }
  .zc-header-cta { display: none; }
  .zc-nav { flex: 0 0 auto; }
  .zc-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: absolute; left: 0; right: 0; top: 100%; width: 100%; max-width: 100%; margin: 0; border: 0; border-top: 1px solid var(--zc-border); border-radius: 0; box-shadow: 0 16px 30px rgba(17,24,32,0.08); padding: 8px 0 16px;
  }
  .zc-nav .elementor-nav-menu--dropdown .elementor-item,
  .zc-nav .elementor-nav-menu--dropdown .elementor-sub-item { min-height: 48px; display: flex; align-items: center; padding: 12px var(--zc-gutter); font-size: 16px; }
  .zc-nav .elementor-nav-menu--dropdown .elementor-sub-item { padding-left: calc(var(--zc-gutter) + 16px); font-size: 15px; color: var(--zc-body); }
  .zc-nav .elementor-nav-menu--dropdown .elementor-nav-menu--dropdown { border-top: 0; }
}

/* Breadcrumbs */
.zc-breadcrumbs p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--zc-muted); }
.zc-breadcrumbs a { color: var(--zc-muted); text-decoration: none; }
.zc-breadcrumbs a:hover { color: var(--zc-cyan-text); }
.zc-breadcrumbs .separator { margin: 0 8px; color: var(--zc-border-strong); }
.zc-breadcrumbs .breadcrumb_last { color: var(--zc-ink); font-weight: 500; }
.zc-section--dark .zc-breadcrumbs a, .zc-section--dark .zc-breadcrumbs p { color: rgba(255,255,255,0.6); }
.zc-section--dark .zc-breadcrumbs .breadcrumb_last { color: var(--zc-white); }

/* ---------------------------------------------------------------------
   11. HERO
   ------------------------------------------------------------------- */
.e-con.zc-hero { --padding-top: 88px; --padding-bottom: 96px; }
.e-con.zc-hero > .e-con-inner { gap: 24px; }
.zc-hero .zc-breadcrumbs { margin-bottom: 20px; }
.zc-hero .zc-eyebrow { margin-bottom: 4px; }
.zc-hero h1.elementor-heading-title { max-width: 14ch; }
.zc-hero--wide h1.elementor-heading-title { max-width: 20ch; }
.zc-hero .zc-lead { max-width: var(--zc-hero-text); }
.zc-hero .zc-btn-group { margin-top: 16px; }
@media (max-width: 1024px) { .e-con.zc-hero { --padding-top: 64px; --padding-bottom: 72px; } }
@media (max-width: 767px) { .e-con.zc-hero { --padding-top: 48px; --padding-bottom: 56px; } .zc-hero h1.elementor-heading-title, .zc-hero--wide h1.elementor-heading-title { max-width: none; font-size: clamp(34px, 9vw, 42px); } }

/* ---------------------------------------------------------------------
   12. FINAL CTA & FOOTER
   ------------------------------------------------------------------- */
.e-con.zc-final-cta { --padding-top: 88px; --padding-bottom: 88px; background: var(--zc-ink); border-top: 3px solid var(--zc-cyan); }
.e-con.zc-final-cta > .e-con-inner { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: center; }
.e-con.zc-final-cta > .e-con-inner > .e-con { --width: 100%; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; gap: 16px; }
.zc-final-cta .zc-heading-lg .elementor-heading-title { color: var(--zc-white); font-size: clamp(28px, 2.8vw, 40px); }
.zc-final-cta .elementor-widget-text-editor { color: var(--zc-dark-text); font-size: 17px; }
.zc-final-cta .zc-cta-side { align-items: flex-start; }
.zc-final-cta .zc-contact-line, .zc-final-cta .zc-contact-line p { font-size: 15px; color: var(--zc-dark-text); }
.zc-final-cta .zc-contact-line a { color: var(--zc-white); text-decoration: none; font-weight: 600; }
.zc-final-cta .zc-contact-line a:hover { color: var(--zc-cyan); }
@media (max-width: 1024px) {
  .e-con.zc-final-cta { --padding-top: 64px; --padding-bottom: 64px; }
  .e-con.zc-final-cta > .e-con-inner { grid-template-columns: 1fr; gap: 28px; }
}

.e-con.zc-footer { --padding-top: 72px; --padding-bottom: 32px; background: var(--zc-graphite); color: var(--zc-dark-text); border-top: 1px solid var(--zc-dark-border); }
.e-con.zc-footer > .e-con-inner { gap: 48px; }
.e-con.zc-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr; gap: 40px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-footer-grid > .e-con { --width: 100%; min-width: 0; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; gap: 14px; }
.zc-footer .zc-footer-logo img { width: 140px; height: auto; display: block; }
.zc-footer .elementor-widget-text-editor { font-size: 14px; line-height: 1.7; color: var(--zc-dark-text); }
.zc-footer .elementor-widget-text-editor a { color: var(--zc-dark-text); text-decoration: none; }
.zc-footer .elementor-widget-text-editor a:hover { color: var(--zc-cyan); }
.zc-footer .zc-footer-head .elementor-heading-title { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--zc-white); margin-bottom: 6px; }
.zc-footer .zc-footer-links .elementor-icon-list-items { display: flex; flex-direction: column; gap: 9px; }
.zc-footer .zc-footer-links .elementor-icon-list-item, .zc-footer .zc-footer-links .elementor-icon-list-item a { font-size: 14px; line-height: 1.5; color: var(--zc-dark-text); }
.zc-footer .zc-footer-links .elementor-icon-list-item a:hover, .zc-footer .zc-footer-links .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--zc-cyan); }
.zc-footer .zc-footer-links .elementor-icon-list-icon { display: none; }
.zc-footer .zc-footer-claim .elementor-heading-title { font-size: 17px; line-height: 1.45; font-weight: 500; color: var(--zc-white); letter-spacing: -0.005em; }
.zc-footer .zc-footer-social .elementor-icon-list-item a { color: var(--zc-dark-text); font-size: 14px; }
.zc-footer .zc-footer-social .elementor-icon-list-icon svg { width: 16px; height: 16px; fill: var(--zc-dark-text); }
.zc-footer .zc-footer-social a:hover, .zc-footer .zc-footer-social a:hover svg { color: var(--zc-cyan); fill: var(--zc-cyan); }
.e-con.zc-footer-bottom { --padding-top: 24px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; border-top: 1px solid var(--zc-dark-border); display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: 16px 32px; flex-wrap: wrap; }
.zc-footer-bottom .elementor-widget-text-editor, .zc-footer-bottom .elementor-widget-text-editor p { font-size: 13px; color: rgba(255,255,255,0.55); }
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-items { display: flex; flex-direction: row; gap: 24px; }
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-icon { display: none; }
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-item a { font-size: 13px; color: rgba(255,255,255,0.55); }
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-item a:hover { color: var(--zc-cyan); }
.zc-footer-bottom .elementor-widget { width: auto; }
/* WPML-Sprachumschalter (Shortcode) */
.zc-footer-lang .wpml-ls { padding: 0; border: 0; }
.zc-footer-lang .wpml-ls-legacy-list-horizontal a, .zc-footer-lang .wpml-ls a { padding: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.06em; color: rgba(255,255,255,0.55); text-transform: uppercase; }
.zc-footer-lang .wpml-ls li + li { margin-left: 14px; }
.zc-footer-lang .wpml-ls-current-language a { color: var(--zc-white); }
.zc-footer-lang .wpml-ls a:hover { color: var(--zc-cyan); }
@media (max-width: 1024px) {
  .e-con.zc-footer-grid { grid-template-columns: 1fr 1fr; gap: 36px 32px; }
  .e-con.zc-footer-grid > .e-con:first-child { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .e-con.zc-footer { --padding-top: 56px; }
  .e-con.zc-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .e-con.zc-footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------------------------------------------------------------------
   13. FORMS (Elementor Pro Form / CF7)
   ------------------------------------------------------------------- */
.zc-form input[type="text"], .zc-form input[type="email"], .zc-form input[type="tel"], .zc-form input[type="url"],
.zc-form select, .zc-form textarea,
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea, .wpcf7 select {
  width: 100%; min-height: 52px; padding: 12px 16px; font-family: var(--zc-font); font-size: 16px; color: var(--zc-ink);
  background: var(--zc-white); border: 1px solid #CBD3D7; border-radius: var(--zc-radius-btn); box-shadow: none; transition: border-color var(--zc-transition);
}
.zc-form textarea, .wpcf7 textarea { min-height: 140px; }
.zc-form input:focus, .zc-form textarea:focus, .zc-form select:focus, .wpcf7 input:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--zc-cyan); box-shadow: 0 0 0 3px rgba(0,206,209,0.15); }
.zc-form label, .wpcf7 label { display: block; font-size: 14px; font-weight: 600; color: var(--zc-ink); margin-bottom: 6px; }
.wpcf7 input[type="submit"] { display: inline-flex; align-items: center; min-height: 50px; padding: 0 26px; background: var(--zc-ink); color: var(--zc-white); border: 1px solid var(--zc-ink); border-radius: var(--zc-radius-btn); font-size: 14px; font-weight: 650; cursor: pointer; transition: background-color var(--zc-transition), color var(--zc-transition); }
.wpcf7 input[type="submit"]:hover { background: var(--zc-cyan); color: var(--zc-ink); border-color: var(--zc-cyan); }

/* ---------------------------------------------------------------------
   14. ANIMATION / MOTION
   ------------------------------------------------------------------- */
.elementor-invisible { visibility: hidden; }
.animated.fadeInUp { animation-duration: 350ms; }
@media (prefers-reduced-motion: reduce) {
  .animated, .elementor-invisible { animation: none !important; visibility: visible !important; opacity: 1 !important; transform: none !important; }
  * { transition-duration: 0.01ms !important; }
}

/* ---------------------------------------------------------------------
   15. UTILITIES
   ------------------------------------------------------------------- */
.zc-divider { height: 1px; background: var(--zc-border); width: 100%; }
.zc-section--dark .zc-divider { background: var(--zc-dark-border); }
.zc-accent-line { position: relative; padding-top: 20px; }
.zc-accent-line::before { content: ''; position: absolute; left: 0; top: 0; width: 48px; height: 3px; background: var(--zc-cyan); }
.zc-quote .elementor-heading-title { font-size: clamp(22px, 2vw, 28px); font-weight: 500; line-height: 1.35; letter-spacing: -0.01em; color: var(--zc-ink); }
.zc-hide { display: none !important; }
.zc-for-label, .zc-for-label p { font-size: 14px; color: var(--zc-muted); }
.zc-for-label strong { color: var(--zc-ink); font-weight: 600; }
/* Modul-/Feature-Zeilen (Software) */
.e-con.zc-feature-list > .e-con { --padding-top: 20px; --padding-bottom: 20px; --padding-left: 0px; --padding-right: 0px; border-top: 1px solid var(--zc-border); gap: 6px; }
.e-con.zc-feature-list > .e-con:last-child { border-bottom: 1px solid var(--zc-border); }
.zc-feature-list .zc-heading-xs .elementor-heading-title { font-size: 16px; }
.zc-feature-list .elementor-widget-text-editor { font-size: 15px; line-height: 1.55; }
/* Comparison / Package-Matrix (Software) */
.e-con.zc-package { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; border: 1px solid var(--zc-border); border-radius: var(--zc-radius); gap: 12px; background: var(--zc-white); }
.zc-package .zc-heading-sm .elementor-heading-title { font-size: 20px; }
.zc-package .zc-btn { margin-top: auto; }
/* Rechtsbereichs-Grid mit Dividern */
.e-con.zc-grid--divided { gap: 0; }
.e-con.zc-grid--divided > .e-con { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; border-top: 1px solid var(--zc-border); border-left: 1px solid var(--zc-border); gap: 12px; }
.e-con.zc-grid-3.zc-grid--divided > .e-con:nth-child(3n+1) { border-left: 0; --padding-left: 0px; }
.e-con.zc-grid-3.zc-grid--divided > .e-con:nth-child(-n+3) { border-top: 0; }
.e-con.zc-grid-2.zc-grid--divided > .e-con:nth-child(2n+1) { border-left: 0; --padding-left: 0px; }
.e-con.zc-grid-2.zc-grid--divided > .e-con:nth-child(-n+2) { border-top: 0; }
@media (max-width: 1024px) {
  .e-con.zc-grid-3.zc-grid--divided > .e-con { border-left: 0; --padding-left: 0px; border-top: 1px solid var(--zc-border); }
  .e-con.zc-grid-3.zc-grid--divided > .e-con:nth-child(-n+2) { border-top: 0; }
  .e-con.zc-grid-3.zc-grid--divided > .e-con:nth-child(2n) { border-left: 1px solid var(--zc-border); --padding-left: 28px; }
}
@media (max-width: 767px) {
  .e-con.zc-grid--divided > .e-con { border-left: 0 !important; --padding-left: 0px !important; --padding-right: 0px !important; border-top: 1px solid var(--zc-border) !important; }
  .e-con.zc-grid--divided > .e-con:first-child { border-top: 0 !important; }
}
/* Kompakte Icon-Blocks (Kompetenzen, Alles aus einer Hand) */
.e-con.zc-block { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; gap: 12px; align-items: center; text-align: center; border: 1px solid var(--zc-border); border-radius: var(--zc-radius); background: var(--zc-white); }
.zc-block .zc-heading-xs .elementor-heading-title { font-size: 15px; }
.e-con.zc-block--plain { border: 0; background: transparent; --padding-left: 0px; --padding-right: 0px; align-items: flex-start; text-align: left; }
.e-con.zc-block--divided + .e-con.zc-block--divided { border-left: 1px solid var(--zc-border); }

/* ===== ZC HOTFIX 2.0.2 (09.09.2026) ===== */
/* 0. Ein Cyan. Ueberall. (Entscheidung Hans 09.09.) */
:root { --zc-cyan-text: #00CED1; }
/* 1. Grid-/Trustbar-Kinder oben ausrichten, nicht mittig */
.e-con.zc-grid > .e-con, .e-con.zc-trustbar > .e-con, .e-con.zc-split > .e-con,
.e-con.zc-timeline > .e-con, .e-con.zc-columns-num > .e-con, .e-con.zc-services > .e-con,
.e-con.zc-footer-grid > .e-con { --justify-content: flex-start; justify-content: flex-start; --align-items: stretch; }
.e-con.zc-split { align-items: center; }
.e-con.zc-split--top { align-items: start; }
/* 2. Icon-List-Text: Elementor setzt Farbe auf .elementor-icon-list-text (Secondary) */
.zc-list .elementor-icon-list-text { color: var(--zc-ink); }
.zc-list--muted .elementor-icon-list-text { color: var(--zc-body); }
.zc-section--dark .zc-list .elementor-icon-list-text, .zc-section--graphite .zc-list .elementor-icon-list-text { color: var(--zc-white); }
.zc-footer .zc-footer-links .elementor-icon-list-text, .zc-footer .zc-footer-social .elementor-icon-list-text,
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-text { color: var(--zc-dark-text); }
.zc-footer .zc-footer-links a:hover .elementor-icon-list-text, .zc-footer .zc-footer-social a:hover .elementor-icon-list-text,
.zc-footer-bottom .zc-footer-legal a:hover .elementor-icon-list-text { color: var(--zc-cyan); }
.zc-footer-bottom .zc-footer-legal .elementor-icon-list-text { color: rgba(255,255,255,0.55); }
/* 3. Hero: Section full-width, Text-Spalte auf Container-Kante, Bild bis zum rechten Rand */
.e-con.zc-hero--bleed { --padding-top: 0px; --padding-bottom: 0px; --padding-right: 0px;
  --padding-left: max(var(--zc-gutter), calc((100% - var(--zc-container)) / 2 + var(--zc-gutter))); }
.e-con.zc-hero-split { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 0 64px; width: 100%; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.zc-hero-split > .e-con:first-child { --width: 55%; width: 55%; flex: 0 0 55%; min-width: 0; --padding-top: 80px; --padding-bottom: 88px; --padding-left: 0px; --padding-right: 0px; gap: 22px; }
.e-con.zc-hero-split > .e-con:last-child { --width: auto; width: auto; flex: 1 1 0; min-width: 0; align-self: stretch; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.zc-img--hero, .zc-img--hero .elementor-widget-container { height: 100%; width: 100%; }
.zc-img--hero img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; border-radius: 0; display: block; }
.zc-hero h1.elementor-heading-title { font-size: clamp(40px, 4.4vw, 64px); max-width: 12ch; }
.zc-hero .zc-lead, .zc-hero .zc-lead p { font-size: 18px; line-height: 1.6; }
.zc-hero .zc-lead p + p { margin-top: 0.6em; }
.zc-hero .zc-btn-group { margin-top: 10px; }
@media (max-width: 1024px) {
  .e-con.zc-hero-split { flex-direction: column; align-items: stretch; gap: 0; }
  .e-con.zc-hero-split > .e-con:first-child { width: 100%; flex: 0 0 auto; --padding-top: 56px; --padding-bottom: 48px; --padding-right: var(--zc-gutter); }
  .e-con.zc-hero-split > .e-con:last-child { width: 100%; flex: 0 0 auto; }
  .zc-img--hero img { min-height: 0; height: auto; aspect-ratio: 16 / 9; }
}
/* 4. Kompakte Blocks: Divider-Variante (Alles aus einer Hand), Icon-Größe */
.e-con.zc-block { gap: 10px; --padding-top: 28px; --padding-bottom: 28px; }
.e-con.zc-block--plain { border: 0; background: transparent; align-items: flex-start; text-align: left; --padding-left: 24px; --padding-right: 24px; }
.e-con.zc-grid > .e-con.zc-block--divided { border-left: 1px solid var(--zc-border); }
.e-con.zc-grid > .e-con.zc-block--divided:first-child { border-left: 0; --padding-left: 0px; }
.zc-block .zc-icon .elementor-icon svg { width: 28px; height: 28px; }
.zc-block .zc-heading-xs .elementor-heading-title { font-size: 15px; line-height: 1.35; }
.zc-block .zc-icon { margin-bottom: 4px; }
@media (max-width: 767px) { .e-con.zc-grid > .e-con.zc-block--divided { border-left: 0; --padding-left: 0px; } }
/* 5. Trustbar-Icons und Cards etwas kompakter */
.zc-trustbar .zc-icon { margin-bottom: 2px; }
.zc-trustbar .zc-icon .elementor-icon svg { width: 24px; height: 24px; }
.e-con.zc-card { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px; gap: 12px; }
.zc-card .zc-icon { margin-bottom: 6px; }
.zc-card .zc-eyebrow .elementor-heading-title { font-size: 11px; }
/* 6. Section-Rhythmus etwas enger, Heads näher am Inhalt */
:root { --zc-section: 96px; --zc-section-lg: 112px; }
.e-con.zc-section-head { gap: 14px; }
.e-con.zc-section-head .zc-lead { margin-top: 4px; }
/* 7. WPML-Switcher als Liste (statt Select) */
.zc-footer-lang .wpml-ls-legacy-list-horizontal, .zc-footer-lang .wpml-ls-legacy-list-horizontal ul { padding: 0; margin: 0; border: 0; display: flex; gap: 14px; }
.zc-footer-lang .wpml-ls-legacy-list-horizontal li { padding: 0; }
.zc-footer-lang .wpml-ls-legacy-dropdown { display: none; }
/* 8. Final-CTA: rechte Spalte rechtsbündig, Kontaktzeile darunter */
.zc-final-cta .zc-cta-side { align-items: flex-start; gap: 14px; }
@media (min-width: 1025px) { .zc-final-cta .zc-cta-side { align-items: flex-end; text-align: right; } }
