.elementor-kit-6{--e-global-color-primary:#1A1A1A;--e-global-color-secondary:#54595F;--e-global-color-text:#FFFFFF;--e-global-color-accent:#8900F4;--e-global-color-8b4252b:#FF00F0;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-size:46px;--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:32px;--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:18px;--e-global-typography-accent-font-weight:700;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-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-accent );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 );}.elementor-kit-6 h1{color:var( --e-global-color-text );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 );}.elementor-kit-6 h2{color:var( --e-global-color-text );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{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 );color:var( --e-global-color-accent );border-style:solid;border-width:2px 2px 2px 2px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1400px;}.e-con{--container-max-width:1400px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );}.elementor-kit-6 a{font-size:var( --e-global-typography-accent-font-size );}.elementor-kit-6 h1{font-size:var( --e-global-typography-primary-font-size );}.elementor-kit-6 h2{font-size:var( --e-global-typography-secondary-font-size );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{font-size:var( --e-global-typography-text-font-size );}.elementor-kit-6 a{font-size:var( --e-global-typography-accent-font-size );}.elementor-kit-6 h1{font-size:var( --e-global-typography-primary-font-size );}.elementor-kit-6 h2{font-size:var( --e-global-typography-secondary-font-size );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */.auto-hide-hidden { 
  transform: translateY(-100%);
}

.auto-hide-topbar,
.auto-shift-header {
  transition: transform 0.35s ease;
}

/* Wenn die Topbar weg ist, zieht der 2. Container nach oben */
body.topbar-hidden .auto-shift-header{
  transform: translateY(calc(-1 * var(--topbar-h, 0px)));
}
/* Linie füllt */
.timeline-section.start .timeline::after{
  animation: fillLine 18s linear forwards;
  animation-delay: 2s;
}

@keyframes fillLine{
  from { width:0%; }
  to   { width:100%; }
}

@keyframes fillPoint{
  0%{
    background-color:#ddd;
    transform:translate(-50%,-50%) scale(1);
  }
  50%{
    transform:translate(-50%,-50%) scale(1.4);
  }
  75%{
    transform:translate(-50%,-50%) scale(1.1);
  }
  100%{
    background-color:var(--e-global-color-accent);
    transform:translate(-50%,-50%) scale(1.6);
  }
}
.timeline-section{
  --lineDelay: 2s;
  --lineDur: 18s;
}

.timeline-section.start .timeline::after{
  animation: fillLine var(--lineDur) linear forwards;
  animation-delay: var(--lineDelay);
}

.timeline-section.start .step-1::before{ animation: fillPoint .3s forwards; animation-delay: calc(var(--lineDelay) + var(--lineDur) * 0.125); }
.timeline-section.start .step-2::before{ animation: fillPoint .3s forwards; animation-delay: calc(var(--lineDelay) + var(--lineDur) * 0.375); }
.timeline-section.start .step-3::before{ animation: fillPoint .3s forwards; animation-delay: calc(var(--lineDelay) + var(--lineDur) * 0.625); }
.timeline-section.start .step-4::before{ animation: fillPoint .3s forwards; animation-delay: calc(var(--lineDelay) + var(--lineDur) * 0.875); }

@media (min-width: 1024px) {
  html, body { height: 100%; }
  body { overflow-y: auto; margin: 0; }

  /* nur Fullpage-Sektionen */
  .fp {
    min-height: 100vh;
  }
}
/* Step-Buttons (Zurück / Weiter / Absenden) nebeneinander im Elementor-Form (Popup) */
.dj-popup-fix .elementor-form .e-form__buttons,
.dj-popup-fix .elementor-form .e-form__buttons__wrapper{
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  flex-wrap: nowrap !important;
}

/* Die einzelnen Button-Wrappers dürfen nicht 100% Breite ziehen */
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-previous,
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-next,
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-submit{
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: none !important;
}

/* Buttons selbst */
.dj-popup-fix .elementor-form .e-form__buttons .elementor-button,
.dj-popup-fix .elementor-form .e-form__buttons__wrapper .elementor-button{
  width: auto !important;
  margin: 0 !important;
}

/* Falls einer der Wrappers per Theme auf "display:block" o.ä. gesetzt wird */
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-previous,
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-next,
.dj-popup-fix .elementor-form
.e-form__buttons__wrapper__button-submit{
  display: flex !important;
}
/* ===== Timeline (Mobile) ===== */
@media (max-width: 767px){

  .timeline-section,
  .elementor-element-5504375{
    position: relative;
    overflow: visible !important;
    z-index: 1;
  }

  .timeline-section .tl-html,
  .elementor-element-5504375 .tl-html{
    position: relative;
    z-index: 1;
  }

  .timeline-section .tl-rail,
  .elementor-element-5504375 .tl-rail{
    position: relative;
    width: 40px;
    height: auto;
    pointer-events: none;
    z-index: 1;
    --tl-progress: 0%;
  }

  /* Grundlinie – dunkleres Grau */
  .timeline-section .tl-line,
  .elementor-element-5504375 .tl-line{
    position: absolute;
    left: 20px;
    top: 0;
    bottom: 0;
    width: 6px;
    border-radius: 99px;
    background: #cccccc;
  }

  /* Füllung – #8900F4 */
  .timeline-section .tl-line-fill,
  .elementor-element-5504375 .tl-line-fill{
    position: absolute;
    left: 20px;
    top: 0;
    width: 6px;
    height: var(--tl-progress);
    border-radius: 99px;
    background: #8900F4;
  }

  .timeline-section .tl-dots,
  .elementor-element-5504375 .tl-dots{
    position: absolute;
    inset: 0;
  }

  /* Punkte – leer (dunkleres Grau) */
  .timeline-section .tl-dot,
  .elementor-element-5504375 .tl-dot{
    position: absolute;
    left: 23px;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: #cccccc;
    border: none;
  }

  /* Punkte – gefüllt (#8900F4) */
  .timeline-section .tl-dot.is-filled,
  .elementor-element-5504375 .tl-dot.is-filled{
    background: #8900F4;
  }

  .timeline-section .tl-rail,
  .timeline-section .tl-line,
  .timeline-section .tl-line-fill,
  .elementor-element-5504375 .tl-rail,
  .elementor-element-5504375 .tl-line,
  .elementor-element-5504375 .tl-line-fill{
    z-index: 1 !important;
  }
}
@media (max-width: 767px){
  .tl-card{
    opacity: 0;
    transform: translateX(24px);
    transition: opacity 600ms ease, transform 600ms ease;
    will-change: transform, opacity;
  }
  .tl-card.is-in{
    opacity: 1;
    transform: none;
  }

  /* Optional: wenn du "Reduced Motion" respektieren willst */
  @media (prefers-reduced-motion: reduce){
    .tl-card{ transition: none; transform: none; opacity: 1; }
  }
}
/* Äußeres Popup-Fenster nur wenn dj-popup enthalten ist */
.dialog-widget-content:has(.dj-popup) {
  width: 80vw !important;
  max-width: 80vw !important;
  height: 70vh !important;
  max-height: 70vh !important;

  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible !important;
  box-sizing: border-box;
}

/* Innerer Bereich */
.dialog-widget-content:has(.dj-popup) .dialog-message {
  width: 100% !important;
  height: 100% !important;
  overflow-y: auto !important;
}

/* Dein Container */
.dj-popup {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  box-sizing: border-box;
}

/* Close Button fixen */
.dialog-widget-content:has(.dj-popup) .dialog-close-button {
  position: absolute !important;
  top: 15px !important;
  right: 15px !important;
  z-index: 9999 !important;
}/* End custom CSS */