.elementor-1635 .elementor-element.elementor-element-d3a3b55{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:0px 0px 0px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#808080;--border-color:#808080;--border-radius:0px 0px 0px 0px;box-shadow:0px 5px 7px 0px rgba(0, 0, 0, 0.2) inset;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:4%;--padding-bottom:4%;--padding-left:4%;--padding-right:4%;}.elementor-1635 .elementor-element.elementor-element-d3a3b55:not(.elementor-motion-effects-element-type-background), .elementor-1635 .elementor-element.elementor-element-d3a3b55 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-1635 .elementor-element.elementor-element-c569395{--display:flex;}.elementor-widget-theme-site-logo .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-1635 .elementor-element.elementor-element-c6fe386.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1635 .elementor-element.elementor-element-c6fe386{text-align:center;}.elementor-1635 .elementor-element.elementor-element-c6fe386 img{width:100%;box-shadow:0px 0px 0px 0px rgba(0,0,0,0.5);}.elementor-1635 .elementor-element.elementor-element-d59abbb{--display:flex;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );text-transform:var( --e-global-typography-primary-text-transform );color:var( --e-global-color-primary );}.elementor-1635 .elementor-element.elementor-element-53b3139 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:22px;font-weight:400;color:var( --e-global-color-text );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-1635 .elementor-element.elementor-element-3f87722{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );}.elementor-1635 .elementor-element.elementor-element-0d32259{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1635 .elementor-element.elementor-element-a002897 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:22px;font-weight:400;text-transform:none;color:#1C244B;}.elementor-1635 .elementor-element.elementor-element-c987da1{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-decoration:var( --e-global-typography-accent-text-decoration );}.elementor-1635 .elementor-element.elementor-element-e461990{--display:flex;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-9d99311.elementor-social-icon{background-color:var( --e-global-color-07f8f7c );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-9d99311.elementor-social-icon i{color:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-9d99311.elementor-social-icon svg{fill:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-54b3e9e.elementor-social-icon{background-color:var( --e-global-color-07f8f7c );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-54b3e9e.elementor-social-icon i{color:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-54b3e9e.elementor-social-icon svg{fill:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-3f1b7ac.elementor-social-icon{background-color:var( --e-global-color-07f8f7c );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-3f1b7ac.elementor-social-icon i{color:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-3f1b7ac.elementor-social-icon svg{fill:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-5c0ce3c.elementor-social-icon{background-color:var( --e-global-color-07f8f7c );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-5c0ce3c.elementor-social-icon i{color:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-repeater-item-5c0ce3c.elementor-social-icon svg{fill:#000000;}.elementor-1635 .elementor-element.elementor-element-89f7e8e{--grid-template-columns:repeat(0, auto);text-align:center;width:auto;max-width:auto;--icon-size:37px;--grid-column-gap:20px;--grid-row-gap:0px;}.elementor-1635 .elementor-element.elementor-element-89f7e8e.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon{background-color:var( --e-global-color-07f8f7c );--icon-padding:0em;}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon i{color:var( --e-global-color-text );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon svg{fill:var( --e-global-color-text );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon:hover{background-color:var( --e-global-color-07f8f7c );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon:hover i{color:var( --e-global-color-primary );}.elementor-1635 .elementor-element.elementor-element-89f7e8e .elementor-social-icon:hover svg{fill:var( --e-global-color-primary );}.elementor-1635 .elementor-element.elementor-element-fd4617e{--display:flex;--min-height:80px;--flex-direction:row-reverse;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap-reverse;--align-items:flex-start;--padding-top:2px;--padding-bottom:2px;--padding-left:2px;--padding-right:2px;}.elementor-1635 .elementor-element.elementor-element-fd4617e:not(.elementor-motion-effects-element-type-background), .elementor-1635 .elementor-element.elementor-element-fd4617e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F5F5;}.elementor-1635 .elementor-element.elementor-element-b73a544{--display:flex;--justify-content:center;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1635 .elementor-element.elementor-element-71ced4c{margin:20px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;text-align:center;font-family:"Roboto", Sans-serif;font-size:13px;font-weight:400;text-transform:uppercase;}.elementor-1635 .elementor-element.elementor-element-71ced4c.elementor-element{--align-self:center;}.elementor-1635 .elementor-element.elementor-element-71ced4c p{margin-block-end:0px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:1171px){.elementor-1635 .elementor-element.elementor-element-d3a3b55{--content-width:1790px;}.elementor-1635 .elementor-element.elementor-element-b73a544{--width:100%;}}@media(max-width:1200px) and (min-width:1171px){.elementor-1635 .elementor-element.elementor-element-d59abbb{--width:32%;}.elementor-1635 .elementor-element.elementor-element-0d32259{--width:32%;}.elementor-1635 .elementor-element.elementor-element-e461990{--width:32%;}}@media(max-width:1200px){.elementor-1635 .elementor-element.elementor-element-d3a3b55{--flex-wrap:wrap;--padding-top:8%;--padding-bottom:8%;--padding-left:4%;--padding-right:4%;}.elementor-widget-theme-site-logo .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-d59abbb{--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-3f87722{font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-0d32259{--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-1635 .elementor-element.elementor-element-c987da1{font-size:var( --e-global-typography-accent-font-size );}.elementor-1635 .elementor-element.elementor-element-e461990{--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-1635 .elementor-element.elementor-element-89f7e8e{text-align:left;--icon-size:37px;}}@media(max-width:1170px){.elementor-1635 .elementor-element.elementor-element-d3a3b55{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:20%;--padding-bottom:20%;--padding-left:6%;--padding-right:6%;}.elementor-widget-theme-site-logo .widget-image-caption{font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-d59abbb{--width:100%;--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-1635 .elementor-element.elementor-element-53b3139{text-align:center;}.elementor-1635 .elementor-element.elementor-element-53b3139 .elementor-heading-title{font-size:22px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-aaaa0c0{text-align:center;}.elementor-1635 .elementor-element.elementor-element-3f87722{text-align:center;font-size:var( --e-global-typography-text-font-size );}.elementor-1635 .elementor-element.elementor-element-0d32259{--width:100%;--margin-top:10%;--margin-bottom:10%;--margin-left:0%;--margin-right:0%;--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-1635 .elementor-element.elementor-element-a002897{text-align:center;}.elementor-1635 .elementor-element.elementor-element-a002897 .elementor-heading-title{font-size:22px;}.elementor-1635 .elementor-element.elementor-element-c987da1{text-align:center;font-size:var( --e-global-typography-accent-font-size );}.elementor-1635 .elementor-element.elementor-element-e461990{--width:100%;--padding-top:0%;--padding-bottom:0%;--padding-left:4%;--padding-right:0%;}.elementor-1635 .elementor-element.elementor-element-89f7e8e{text-align:center;width:100%;max-width:100%;--icon-size:37px;}.elementor-1635 .elementor-element.elementor-element-fd4617e{--width:100%;}.elementor-1635 .elementor-element.elementor-element-71ced4c{font-size:19px;}}/* Start custom CSS *//* =====================================================================
   KMA 4-Step-Slider
   ---------------------------------------------------------------------
   Greift automatisch bei jedem Container mit diesem Elementor-Aufbau:
     1. Container (Raster) mit den Beschriftungen
     2. Container mit den zwei Divider-Linien (wird ausgeblendet)
     3. Verschachtelte Tabs mit den Nummern (3 bis 6 Schritte)
     4. optional weitere Elemente darunter (z. B. CTA-Button)
   Desktop: Beschriftung mittig über den Kreisen, dunkle Linie wächst
   vom linken Rand bis zum aktiven Schritt.
   Mobil (bis 1170 px): Schritte untereinander, verbunden mit einer Linie.
   Greift auch im Elementor-Editor. Dort zählen nur echte Elemente
   (Editor-Rahmen und Griffe bleiben außen vor) und Beschriftungen
   bleiben direkt anklickbar.
   Ablage: Custom CSS des Footer-Templates (#1635), damit es auf allen
   Seiten greift und nicht von fehlerhaftem Seiten-CSS verschluckt wird.

   Optionale Stellschrauben (auf der Seite oder einem Eltern-Container):
     --kma-steps-fill   Füllfarbe erreichter Schritte
     --kma-steps-line   Farbe der Fortschrittslinie
     --kma-steps-track  Farbe der hellen Linie
   ===================================================================== */

:is(.e-con, .e-con-inner):has(> .elementor-widget-n-tabs):has(> .e-grid):not(#kma) {
  /* :not(#kma) hebt nur die Spezifität an, damit die Widget-Styles von Elementor nicht gewinnen */
  --kma-size: 64px;
  --kma-line-width: 3px;
  --kma-duration: .8s;
  --kma-ease: cubic-bezier(.65, 0, .35, 1);
  --kma-fill: var(--kma-steps-fill, var(--e-global-color-secondary, #082F61));
  --kma-line: var(--kma-steps-line, var(--e-global-color-primary, #0D5497));
  --kma-track: var(--kma-steps-track, color-mix(in srgb, var(--e-global-color-secondary, #082F61) 18%, transparent));
  --kma-count: 4;
  --kma-active: 0;
  --kma-progress: max(0, (var(--kma-active) - .5) / var(--kma-count));

  /* Hilfs-Abstände aus dem provisorischen Aufbau neutralisieren */
  --min-height: 0px;
  --padding-top: 0px;
  --padding-bottom: 0px;

  display: grid;
  grid-template-columns: repeat(var(--kma-count), minmax(0, 1fr));
  grid-template-rows: auto auto auto;
  gap: 0;
  align-items: center;
  container-type: inline-size;

  /* Anzahl Schritte und aktiven Schritt erkennen */
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(3):last-child) { --kma-count: 3; --kma-rows: 6; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(4):last-child) { --kma-count: 4; --kma-rows: 8; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(5):last-child) { --kma-count: 5; --kma-rows: 10; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(6):last-child) { --kma-count: 6; --kma-rows: 12; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(1)[aria-selected="true"]) { --kma-active: 1; --kma-row-end: 4;  --kma-flow: kma-flow-1; --kma-sheen: kma-sheen-1; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(2)[aria-selected="true"]) { --kma-active: 2; --kma-row-end: 6;  --kma-flow: kma-flow-2; --kma-sheen: kma-sheen-2; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(3)[aria-selected="true"]) { --kma-active: 3; --kma-row-end: 8;  --kma-flow: kma-flow-3; --kma-sheen: kma-sheen-3; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(4)[aria-selected="true"]) { --kma-active: 4; --kma-row-end: 10; --kma-flow: kma-flow-4; --kma-sheen: kma-sheen-4; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(5)[aria-selected="true"]) { --kma-active: 5; --kma-row-end: 12; --kma-flow: kma-flow-5; --kma-sheen: kma-sheen-5; }
  &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(6)[aria-selected="true"]) { --kma-active: 6; --kma-row-end: 14; --kma-flow: kma-flow-6; --kma-sheen: kma-sheen-6; }

  /* Hilfs-Container auflösen, damit Beschriftung, Kreise und Inhalte in einem Raster liegen */
  & > .e-grid,
  & > .elementor-widget-n-tabs,
  & > .elementor-widget-n-tabs > .e-n-tabs,
  & > .elementor-widget-n-tabs > .e-n-tabs > :is(.e-n-tabs-heading, .e-n-tabs-content) {
    display: contents;
  }

  /* Die alten Divider-Linien übernimmt jetzt das CSS */
  & > .e-con:has(> .elementor-widget-divider) {
    display: none;
  }

  /* Alles Weitere (z. B. CTA-Button) über die volle Breite darunter,
     mit dem Abstand, den vorher Tab-Widget-Padding + Container-Gap ergaben */
  & > .elementor-element:not(.e-grid, .elementor-widget-n-tabs) {
    grid-column: 1 / -1;
    margin-top: 30px;
  }

  /* Position je Schritt: Spalte (Desktop) und Zeile (Mobil).
     "of .elementor-element", weil der Editor eigene Hilfs-Divs in den Container hängt */
  & > .e-grid > :nth-child(1 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(1) { --kma-col: 1; --kma-row: 1; }
  & > .e-grid > :nth-child(2 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(2) { --kma-col: 2; --kma-row: 3; }
  & > .e-grid > :nth-child(3 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(3) { --kma-col: 3; --kma-row: 5; }
  & > .e-grid > :nth-child(4 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(4) { --kma-col: 4; --kma-row: 7; }
  & > .e-grid > :nth-child(5 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(5) { --kma-col: 5; --kma-row: 9; }
  & > .e-grid > :nth-child(6 of .elementor-element), & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :nth-child(6) { --kma-col: 6; --kma-row: 11; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(1) { --kma-row: 2; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(2) { --kma-row: 4; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(3) { --kma-row: 6; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(4) { --kma-row: 8; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(5) { --kma-row: 10; }
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > :nth-child(6) { --kma-row: 12; }

  /* ---------- Beschriftung ---------- */
  & > .e-grid > .elementor-element {
    grid-row: 1;
    grid-column: var(--kma-col);
    align-self: end;
    width: auto;
    max-width: none;
    margin: 0 0 18px;
    padding: 0 10px;
    text-align: center;
  }

  & > .e-grid > .elementor-element p:last-child {
    margin-bottom: 0;
  }

  /* der Texteditor setzt die Ausrichtung inline, deshalb !important */
  & > .e-grid > .elementor-element * {
    text-align: inherit !important;
  }

  /* ---------- Kreise ---------- */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title {
    grid-row: 2;
    grid-column: var(--kma-col);
    justify-self: center;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: var(--kma-size);
    height: var(--kma-size);
    min-width: 0;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    transition: background-color .35s ease, border-color .35s ease, color .35s ease, scale .25s ease;
    transition-delay: var(--kma-fill-delay, 0s), var(--kma-fill-delay, 0s), var(--kma-fill-delay, 0s), 0s;
  }

  /* Erreichte Schritte: gefüllt, sobald die Linie vorbeikommt */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title:has(~ [aria-selected="true"]) {
    --kma-fill-delay: calc(var(--kma-duration) * .3);
    --n-tabs-title-color: var(--n-tabs-title-color-active, #fff);
    --n-tabs-title-color-hover: var(--n-tabs-title-color-active, #fff);
    background: var(--kma-fill);
  }

  /* Gefüllte Kreise: Rand transparent, damit sie einfarbig erscheinen und der
     Umriss bis zum Füllen sichtbar bleibt (sonst blitzt der Theme-Rand #c36 auf) */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :is(.e-n-tab-title:has(~ [aria-selected="true"]), .e-n-tab-title[aria-selected="true"]) {
    border-style: solid;
    border-width: 2px;
    border-color: transparent;
  }

  /* Aktiver Schritt: füllt sich, wenn die Linie ankommt, kurzer Puls */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"] {
    --kma-fill-delay: calc(var(--kma-duration) * .5);
    animation: kma-pop .6s cubic-bezier(.34, 1.56, .64, 1) calc(var(--kma-duration) * .5);
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="false"]:hover {
    scale: 1.06;
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title:focus-visible {
    outline: 2px solid var(--kma-line);
    outline-offset: 4px;
  }

  /* Puls-Ring */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title::after {
    content: "";
    position: absolute;
    inset: -2px;
    border: 2px solid var(--kma-line);
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[aria-selected="true"]::after {
    animation: kma-ring 1.4s ease-out calc(var(--kma-duration) * .6) 2;
  }

  /* Klickfläche bis über die Beschriftung erweitern */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: calc(100cqw / var(--kma-count));
    height: calc(100% + 3rem);
    translate: -50% 0;
  }

  /* ---------- Linien ---------- */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::before,
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after,
  & > .elementor-widget-n-tabs > .e-n-tabs::after {
    content: "";
    position: static;
    z-index: auto;
    grid-row: 2;
    grid-column: 1 / -1;
    align-self: center;
    height: var(--kma-line-width);
    pointer-events: none;
  }

  /* helle Linie bis zum Endpunkt */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::before {
    background: var(--kma-track);
  }

  /* dunkle Linie: wächst immer vom Startpunkt bis zum aktiven Schritt */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after,
  & > .elementor-widget-n-tabs > .e-n-tabs::after {
    transform-origin: left center;
    transform: scaleX(var(--kma-progress));
    transition: transform var(--kma-duration) var(--kma-ease);
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after {
    background: var(--kma-line);
  }

  /* Lichtreflex, der bei jedem Schrittwechsel über die Linie wandert */
  & > .elementor-widget-n-tabs > .e-n-tabs::after {
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / .85), transparent) no-repeat -50% 0 / 30% 100%;
    animation: var(--kma-sheen, none) 1.1s ease-in-out calc(var(--kma-duration) * .35) both;
  }

  /* ---------- Inhalte ----------
     Alle Inhalte liegen im selben Rasterfeld übereinander, inaktive unsichtbar.
     So bleibt die Höhe beim Umschalten stabil: Elementor blendet den alten Inhalt
     per jQuery mit display:none (inline) aus und den neuen erst einen Takt später
     ein, ohne das !important würde der Bereich kurz zusammenfallen und flackern. */
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con {
    grid-row: 3;
    grid-column: 1 / -1;
    align-self: stretch;
    transition: opacity .15s ease, translate .15s ease, visibility 0s linear .15s;
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con:not(.e-active) {
    display: var(--display, flex) !important;
    visibility: hidden;
    opacity: 0;
    translate: 0 12px;
    pointer-events: none;
  }

  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con.e-active {
    transition: opacity .4s ease .05s, translate .45s cubic-bezier(.2, .7, .2, 1) .05s, visibility 0s;
  }

  /* Linie zeichnet sich beim Hereinscrollen (nur Browser mit Scroll-Animationen) */
  @supports (animation-timeline: view()) {
    @media (min-width: 1171px) {
      & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after {
        animation: kma-draw linear both;
        animation-timeline: view();
        animation-range: entry 0% cover 25%;
      }
    }
  }

  /* ---------- Mobil: vertikaler Stepper ---------- */
  @media (max-width: 1170px) {
    --kma-size: 32px;
    --kma-gap: 20px;

    grid-template-columns: var(--kma-size) minmax(0, 1fr);
    grid-template-rows: repeat(var(--kma-rows, 8), auto);
    column-gap: 16px;
    align-items: start;

    & > .e-grid > .elementor-element {
      grid-column: 2;
      grid-row: var(--kma-row);
      align-self: start;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: var(--kma-size);
      margin: 0;
      padding: 0;
    }

    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title {
      --n-tabs-title-font-size: 16px;
      grid-column: 1;
      grid-row: var(--kma-row);
    }

    & > .e-grid > .elementor-element:not(:nth-child(1 of .elementor-element)),
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title:not(:first-child) {
      margin-top: var(--kma-gap);
    }

    /* ganze Zeile inkl. Beschriftung antippbar */
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title::before {
      left: 0;
      bottom: -8px;
      width: 100cqw;
      height: calc(100% + 16px);
      translate: none;
    }

    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con {
      grid-column: 2;
      grid-row: var(--kma-row);
      min-height: 0;
      margin: 12px 0 0;
      padding-inline: 16px;
    }

    /* Textbreiten aus der Desktop-Ansicht (z. B. 46 %) wären in der schmalen Spalte zu eng */
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con > .elementor-widget,
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con > .e-con-inner > .elementor-widget {
      --container-widget-width: 100%;
      max-width: 100%;
    }

    /* inaktive Inhalte halten ihre Zeile (Höhe 0), damit nachfolgende Elemente sauber darunter landen */
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con:not(.e-active) {
      height: 0;
      margin: 0;
      padding: 0;
      border: 0;
      overflow: hidden;
    }

    /* Auf- und Zuklappen weich animieren (Chrome, Edge, Android) */
    @supports (interpolate-size: allow-keywords) {
      & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con {
        interpolate-size: allow-keywords;
        overflow: hidden;
        transition: height .45s var(--kma-ease), margin .45s var(--kma-ease), padding .45s var(--kma-ease), opacity .2s ease, translate .2s ease, visibility 0s linear .45s;
      }

      & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con.e-active {
        transition: height .45s var(--kma-ease), margin .45s var(--kma-ease), padding .45s var(--kma-ease), opacity .4s ease .1s, translate .45s ease .1s, visibility 0s;
      }
    }

    /* Ohne weiche Animation: alten Inhalt erst zuklappen, wenn der neue da ist */
    @supports not (interpolate-size: allow-keywords) {
      & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-content > .e-con:not(.e-active) {
        transition: height 0s linear .1s, margin 0s linear .1s, padding 0s linear .1s, opacity .1s ease, visibility 0s linear .1s;
        transition-behavior: allow-discrete;
      }
    }

    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::before,
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after {
      grid-column: 1;
      justify-self: center;
      align-self: stretch;
      width: var(--kma-line-width);
      height: auto;
      margin-block: calc(var(--kma-size) / 2);
    }

    /* helle Linie vom ersten bis zum letzten Kreis */
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::before {
      grid-row: 1 / -2;
    }

    /* dunkle Linie: fließt bei jedem Wechsel von oben bis zum nächsten Schritt */
    & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after {
      grid-row: 1 / var(--kma-row-end, 2);
      transform: none;
      transform-origin: center top;
      transition: none;
      animation: var(--kma-flow, none) var(--kma-duration) var(--kma-ease) both;
    }

    &:has(> .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > :last-child[aria-selected="true"]) > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading::after {
      grid-row-end: -1;
      margin-bottom: 0;
    }

    & > .elementor-widget-n-tabs > .e-n-tabs::after {
      display: none;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    & *,
    & *::before,
    & *::after {
      animation: none !important;
      transition: none !important;
    }
  }
}

/* Grundfarbe für Kreisränder ohne eigene Randfarbe. :where() hält die Spezifität
   niedrig: Randfarben aus Elementor gewinnen, nur der Theme-Rand #c36 nicht
   (der würde sonst beim Füllen kurz aufblitzen) */
:where(:is(.e-con, .e-con-inner):has(> .elementor-widget-n-tabs):has(> .e-grid)) > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title {
  border-color: var(--kma-fill, #082F61);
}

/* Nur im Elementor-Editor: Hilfsflächen des aufgelösten Beschriftungs-Containers
   (grauer "auf Mobil ausgeblendet"-Schleier, Auswahlrahmen) würden sonst den ganzen
   Slider überdecken. Klickfläche über der Beschriftung aus, damit sich die Texte
   direkt anklicken lassen. */
.elementor-editor-active :is(.e-con, .e-con-inner):has(> .elementor-widget-n-tabs):has(> .e-grid):not(#kma) {
  & > .e-grid::before,
  & > .e-grid::after,
  & > .e-grid > .elementor-element-overlay,
  & > .elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title::before {
    display: none;
  }
}

@keyframes kma-pop { 40% { scale: 1.12; } }
@keyframes kma-ring { from { scale: 1; opacity: .5; } to { scale: 1.7; opacity: 0; } }
@keyframes kma-draw { from { scale: 0 1; } }

/* je Schritt ein eigener Name, damit die Animation bei jedem Wechsel neu startet */
@keyframes kma-flow-1 { from { transform: scaleY(0); } }
@keyframes kma-flow-2 { from { transform: scaleY(0); } }
@keyframes kma-flow-3 { from { transform: scaleY(0); } }
@keyframes kma-flow-4 { from { transform: scaleY(0); } }
@keyframes kma-flow-5 { from { transform: scaleY(0); } }
@keyframes kma-flow-6 { from { transform: scaleY(0); } }
@keyframes kma-sheen-1 { to { background-position: 150% 0; } }
@keyframes kma-sheen-2 { to { background-position: 150% 0; } }
@keyframes kma-sheen-3 { to { background-position: 150% 0; } }
@keyframes kma-sheen-4 { to { background-position: 150% 0; } }
@keyframes kma-sheen-5 { to { background-position: 150% 0; } }
@keyframes kma-sheen-6 { to { background-position: 150% 0; } }

/* =====================================================================
   Schwebende Button-Leiste (Kontakt / nach oben) klickbar machen
   ---------------------------------------------------------------------
   Die fixierte Leiste liegt als Kopie auf fast jeder Seite. Ihre Breite
   von 80 px ist nur für Desktop gesetzt, mobil spannt sie über die ganze
   Bildschirmbreite (ca. 134 px hoch) und blockiert Klicks auf alles,
   was darunter liegt.
   Lösung: Der Container lässt Klicks durch, nur Links und Buttons darin
   bleiben klickbar. Die Optik bleibt unverändert.
   Ablage: Custom CSS des Footer-Templates (#1635).
   ===================================================================== */

body:not(.elementor-editor-active) .e-con[data-settings*='"position":"fixed"'] {
  pointer-events: none;
}

body:not(.elementor-editor-active) .e-con[data-settings*='"position":"fixed"'] :is(a, button, input, select, textarea, label, [role="button"]) {
  pointer-events: auto;
}/* End custom CSS */