/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Blendmode */

.blendmode {
	mix-blend-mode: darken;
}
/* Smooth-Scroll */

html{
  scroll-behavior: smooth;
}

/* Automatische Silbentrennung */
.silbenbruch .elementor-heading-title{
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;

  white-space: normal;   /* Umbruch erlauben */
  word-break: normal;    /* nicht willkürlich im Wort brechen */
  overflow-wrap: normal; /* Silbentrennung statt "anywhere" */
}

/* Optionaler Notnagel: falls ein Wort sonst das Layout sprengt (URLs etc.) */
/*
.silbenbruch .elementor-heading-title{
  overflow-wrap: break-word;
}
*/

/* BEGIN: Elementor Custom CSS (migrated) */


/* Elementor Custom CSS migrated (auto) */
/* Generated: 2026-03-04T17:57:32+00:00 */

/* Post 40 (page): LP | element 41d9595 */
.blur-bg {
    backdrop-filter: blur(20px); /* Stärke des Blurs */
    -webkit-backdrop-filter: blur(10px); /* Für Safari */
}

.no-backdrop-support .blur-bg {
    background: #f4f4f4; /* Statische Farbe, wenn Blur nicht funktioniert */
}

/* Post 1867 (page): Home MASTER | element 940b8c2 */
/* =========================
   Marquee / Infinite Banner
   ========================= */

/* Sichtfenster */
.marquee{
  position: absolute;
  overflow: hidden;
  width: 100%;
}

/* Bewegte Spur */
.marquee-track{
  display: flex;
  width: max-content;
  gap: 3rem; /* Abstand zwischen Elementen */

  animation: marquee-left 40s linear infinite;
  will-change: transform;
}

/* Keyframes: von rechts nach links */
@keyframes marquee-left{
  from{
    transform: translateX(0);
  }
  to{
    transform: translateX(-50%);
  }
}

.marquee:hover .marquee-track{
  animation-play-state: paused;
}

/* Post 1871 (elementor_library): Header | NEW | element 811bc0a */
/* =========================
   Header Center Column
   ========================= */

/* Desktop Default */
.header-center-col{
  flex: 0 1 auto;
  width: 100%;
  max-width: 60%;
  transition: max-width 300ms ease;
  will-change: max-width;
}

/* Desktop Scroll */
body.header-scrolled .header-center-col{
  max-width: 40%;
}

/* Elementor Container inner */
.header-center-col > .e-con-inner{
  width: 100%;
}

/* Motion-Accessibility */
@media (prefers-reduced-motion: reduce){
  .header-center-col{ transition: none; }
}

/* =========================
   Tablet Querformat ≤ 1200px
   ========================= */
@media (max-width: 1200px){
  .header-center-col{
    max-width: 52%;
  }
  body.header-scrolled .header-center-col{
    max-width: 34%;
  }
}

/* =========================
   Tablet Hochformat ≤ 1024px
   ========================= */
@media (max-width: 1024px){
  .header-center-col{
    max-width: 46%;
  }
  body.header-scrolled .header-center-col{
    max-width: 30%;
  }
}

/* =========================
   Mobile Querformat ≤ 880px
   ========================= */
@media (max-width: 880px){
  .header-center-col{
    max-width: 90%;
  }
  body.header-scrolled .header-center-col{
    max-width: 100%;
  }
}

/* =========================
   Mobile Hochformat ≤ 767px
   ========================= */
@media (max-width: 767px){
  .header-center-col{
    max-width: 90%;
  }
  body.header-scrolled .header-center-col{
    max-width: 100%;
  }
}

/* =========================
   BG-Blur
   ========================= */
   
.header-center-col {
    backdrop-filter: blur(20px); /* Stärke des Blurs */
    -webkit-backdrop-filter: blur(10px); /* Für Safari */
}

.no-backdrop-support .blur-bg {
    background: #f4f4f4; /* Statische Farbe, wenn Blur nicht funktioniert */
}

/* Post 1871 (elementor_library): Header | NEW | element d601006 */
/* =========================
   BG-Blur
   ========================= */

.blur-bg {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);

    border-radius: 100px;   /* Radius – passend zu Elementor */
    overflow: hidden;       /* WICHTIG: schneidet Blur sauber ab */
}

/* Fallback für Browser ohne Backdrop-Support */
.no-backdrop-support .blur-bg {
    background: #f4f4f4;
    border-radius: 100px;
}

/* Post 1871 (elementor_library): Header | NEW | element e1c3264 */
/* =========================
   BG-Blur
   ========================= */

.blur-bg-cb {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);

    border-radius: 100px;   /* Radius – passend zu Elementor */
}

/* Fallback für Browser ohne Backdrop-Support */
.no-backdrop-support .blur-bg {
    background: #f4f4f4;
    border-radius: 100px;
}

/* Post 1871 (elementor_library): Header | NEW | element 3c7f060 */
/* =========================
   Bottom Slide-In Bar (slide only, no parent opacity)
   ========================= */

.bottom-slidebar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;

  transform: translate3d(0, 110%, 0); /* exakt wie vorher: slide von unten */
  pointer-events: none;
  visibility: hidden;

  transition: transform 320ms ease, visibility 0s linear 320ms;
  will-change: transform;
}

body.bottom-bar-show .bottom-slidebar{
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  visibility: visible;

  transition: transform 320ms ease, visibility 0s;
}

@media (prefers-reduced-motion: reduce){
  .bottom-slidebar{ transition: none; transform: none; visibility: visible; }
}

/* Post 1888 (elementor_library): Footer | NEW | element 5da646b */
.blur-bg-2 {
    backdrop-filter: blur(20px); /* Stärke des Blurs */
    -webkit-backdrop-filter: blur(10px); /* Für Safari */
}

.no-backdrop-support .blur-bg {
    background: #f4f4f4; /* Statische Farbe, wenn Blur nicht funktioniert */
}

/* Post 2333 (page): Home FN | element ec17b2d */
/* ───────────── Hover-Reveal-Effekt ───────────── */
@media (min-width: 768px){
  .reveal-on-hover{
    position: relative; /* Referenzpunkt für Kind-Elemente */
  }

  /* Fließtext ist zunächst unsichtbar */
  .reveal-on-hover .reveal-copy{
    opacity: 0;
    transform: translateY(6px); /* kleiner Slide-In von unten */
    pointer-events: none; /* verhindert Klicks im Verborgenen */
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Sichtbar, sobald die Kachel gehovert wird */
  .reveal-on-hover:hover .reveal-copy{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* Post 2604 (page): HOME NEW FN V2 | BROKEN | element 3c64126 */
:root{
  --gap: 3rem;
  --duration: 40s;
}

/* Sichtfenster */
.marquee{
  position: absolute;   /* wenn du es absichtlich absolut setzt */
  left: 0;
  right: 0;             /* statt nur width:100% -> garantiert volle Breite */
  width: auto;
  overflow: hidden;
}

/* Bewegte Spur */
.marquee-track{
  display: flex;
  width: max-content;
  will-change: transform;
  animation: marquee-left var(--duration) linear infinite;
}

/* Gruppen */
.marquee-group{
  display: flex;
  gap: var(--gap);
  flex-shrink: 0;
  padding-right: var(--gap);
}

@keyframes marquee-left{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.marquee:hover .marquee-track{
  animation-play-state: paused;
}

/* Post 2604 (page): HOME NEW FN V2 | BROKEN | element 22e6681 */
/* =========================
   BG-Blur
   ========================= */

.blur-bg-hover{
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);

  background: #00000059;       /* normal */
  border-radius: 20px;

  transition:
    backdrop-filter 0.4s ease,
    -webkit-backdrop-filter 0.4s ease,
    background-color 0.4s ease; /* <-- wichtig */

  will-change: backdrop-filter, background-color;
}

/* Hover */
.blur-bg-hover:hover{
  backdrop-filter: blur(35px);
  -webkit-backdrop-filter: blur(35px);

  background: #0000008C;       /* hover */
}

/* Fallback für Browser ohne Backdrop-Support */
.no-backdrop-support .blur-bg-hover{
  background: rgba(0,0,0,0.55);
  border-radius: 20px;
}

/* Post 2830 (elementor_library): Header | ALT. | element ef06fd0 */
/* =========================
   Header Center Column
   ========================= */

/* Default (oben) */
.header-center-col{
  flex: 0 1 auto;
  width: 100%;
  max-width: 60%;
  transition: max-width 300ms ease;
  will-change: max-width;

  position: relative;
  overflow: hidden;
}

/* Beim Scrollen: schmaler */
body.header-scrolled .header-center-col{
  max-width: 50%;
}

/* Elementor Container inner */
.header-center-col > .e-con-inner{
  width: 100%;
  position: relative;
  z-index: 2;
}

/* Motion-Accessibility */
@media (prefers-reduced-motion: reduce){
  .header-center-col{ transition: none; }
}

/* =========================
   Header Background + Blur
   (Scroll + Popup gesteuert)
   ========================= */

.header-bg-container{
  position: relative;
  overflow: hidden;

  /* Elementor-Hintergrund immer neutralisieren */
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Glas-/Dark-Blur-Schicht */
.header-bg-container::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;

  /* 🔥 Abdunkelung wie vorher (#00000059) */
  background: rgba(0, 0, 0, 0.35);

  /* Blur */
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);

  /* Standard: AUS */
  opacity: 0;

  /* Smooth Fade */
  transition: opacity .25s ease;
}

/* Inhalt über Blur-Schicht */
.header-bg-container > *{
  position: relative;
  z-index: 2;
}

/* Beim Scrollen -> EIN */
.header-bg-container.is-scrolled::before{
  opacity: 1;
}

/* Popup offen -> IMMER AUS */
.header-bg-container.is-popup-open::before{
  opacity: 0 !important;
}

/* Sicherheit: auch Container selbst transparent */
.header-bg-container.is-popup-open{
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Fallback ohne backdrop-filter */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .header-bg-container::before{
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(0, 0, 0, 0.6);
  }
}

/* Post 3012 (page): Kontakt | element cf5c177 */
/* Akzeptanz-Feld Textgröße */
.elementor-element-cf5c177 .elementor-field-group-field_d2f6585,
.elementor-element-cf5c177 .elementor-field-group-field_d2f6585 label,
.elementor-element-cf5c177 .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 3312 (page): Academy/Help Center | Master | element 3855ec7 */
.fade-text {
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 60%,
    rgba(0,0,0,0) 100%
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 60%,
    rgba(0,0,0,0) 100%
  );
}

/* Post 3340 (page): HOME | NEW | Konzept MM ALT | element d11738e */
/* Animierbare Blur-Property (Frontend-stabil, smooth) */
@property --blur {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}

/* === Einstellungen === */
:root{
  --rotator-duration: 7s;  /* Gesamtloop (vorher 5s) */
  --blur-amount: 8px;      /* Blur-Stärke beim Wechsel */
  --y-in: 8px;             /* Startposition (unten) */
  --y-out: -8px;           /* Endposition (oben) */
}

/* Bühne */
.headline-rotator{
  position: relative;
}

/* Drei Headlines exakt übereinander */
.headline-rotator .h-1,
.headline-rotator .h-2,
.headline-rotator .h-3{
  position: absolute;
  inset: 0;
  width: 100%;
  margin: 0;

  opacity: 0;
  transform: translateY(var(--y-in));

  /* Blur über Variable (stabil im Frontend) */
  --blur: var(--blur-amount);
  filter: blur(var(--blur)) !important;
  -webkit-filter: blur(var(--blur)) !important;

  /* EIN gemeinsames Keyframe für alle (identisch) */
  animation-name: rotator3;
  animation-duration: var(--rotator-duration);
  animation-timing-function: cubic-bezier(.4,0,.2,1);
  animation-iteration-count: infinite;
  animation-fill-mode: both;

  will-change: opacity, transform, filter;
}

/* Zeitversatz: exakt 1/3 und 2/3 des Loops */
.headline-rotator .h-1{ animation-delay: 0s; }
.headline-rotator .h-2{ animation-delay: calc(var(--rotator-duration) / -3); }
.headline-rotator .h-3{ animation-delay: calc(var(--rotator-duration) * -2 / 3); }

/*
Keine Überschneidung:
sichtbare Phase < 33.33% (1/3), daher endet Ausblenden bei 32%.
*/
@keyframes rotator3{
  0%{
    opacity: 0;
    transform: translateY(var(--y-in));
    --blur: var(--blur-amount);
  }

  8%{
    opacity: 1;
    transform: translateY(0);
    --blur: 0px;
  }

  24%{
    opacity: 1;
    transform: translateY(0);
    --blur: 0px;
  }

  32%{
    opacity: 0;
    transform: translateY(var(--y-out));
    --blur: var(--blur-amount);
  }

  33.34%{
    opacity: 0;
    transform: translateY(var(--y-in));
    --blur: var(--blur-amount);
  }

  100%{
    opacity: 0;
    transform: translateY(var(--y-in));
    --blur: var(--blur-amount);
  }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce){
  .headline-rotator .h-1,
  .headline-rotator .h-2,
  .headline-rotator .h-3{
    filter: none !important;
    -webkit-filter: none !important;
    animation-timing-function: linear;
  }
}

/* Post 3340 (page): HOME | NEW | Konzept MM ALT | element 4c430d9 */
/* Bühne */
.headline-rotator-2{
  position: relative;
}

/* Beide Headlines exakt übereinander */
.headline-rotator-2 .h-12,
.headline-rotator-2 .h-22{
  position: absolute;
  inset: 0;
  width: 100%;
  margin: 0;

  opacity: 0;
  transform: translateY(8px);

  animation-duration: 5s; /* schneller */
  animation-timing-function: cubic-bezier(.4,0,.2,1); /* weich */
  animation-iteration-count: infinite;
  will-change: opacity, transform;
}

/* Reihenfolge */
.headline-rotator-2 .h-12{ animation-name: headline12; }
.headline-rotator-2 .h-22{ animation-name: headline22; }

/* Headline 1:
   0–10%   ein
   10–40%  halten
   40–50%  aus
   50–100% aus (inkl. Gap bevor 2 kommt)
*/
@keyframes headline12{
  0%   {opacity:0; transform:translateY(8px);}
  10%  {opacity:1; transform:translateY(0);}
  40%  {opacity:1; transform:translateY(0);}
  50%  {opacity:0; transform:translateY(-8px);}
  100% {opacity:0; transform:translateY(-8px);}
}

/* Headline 2 (startet erst NACHDEM 1 weg ist):
   0–55%  aus (Gap!)
   55–65% ein
   65–90% halten
   90–100% aus
*/
@keyframes headline22{
  0%   {opacity:0; transform:translateY(8px);}
  55%  {opacity:0; transform:translateY(8px);}
  65%  {opacity:1; transform:translateY(0);}
  90%  {opacity:1; transform:translateY(0);}
  100% {opacity:0; transform:translateY(-8px);}
}

/* Post 3340 (page): HOME | NEW | Konzept MM ALT | element 519e1a6 */
:root{
  --story-step-height-first: 80vh;   /* erster Wechsel (bleibt angenehm früh) */
  --story-step-height-next: 60vh;   /* danach mehr Scroll nötig */
}

/* Outer Container */
.scroll-story{
  position: relative;
  min-height: 100vh;
  height: auto !important;
  overflow: visible !important;
}

/* Sticky Bühne */
.scroll-story .story-stage{
  position: sticky;
  top: 0;
  height: 100vh;
  display: grid;
  place-items: center;
  pointer-events: none;
}

/* Scroll-Fläche */
.scroll-story .story-steps{
  position: relative;
}

/* Scroll-Schritte */
.scroll-story .story-step{
  height: var(--story-step-height-next);
}

/* Headlines (Slides) */
.scroll-story .story-stage .story-line{
  position: absolute;
  left: 0;
  right: 0;
  width: min(900px, 100%);
  margin: 0 auto;

  opacity: 0;
  transform: translateY(18px);
  filter: blur(6px);

  transition:
    opacity 900ms cubic-bezier(.22,.61,.36,1),
    transform 900ms cubic-bezier(.22,.61,.36,1),
    filter 900ms cubic-bezier(.22,.61,.36,1);
}

/* Aktiv */
.scroll-story .story-stage .story-line.is-active{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Elegant ausblenden */
.scroll-story .story-stage .story-line.is-leaving{
  opacity: 0;
  transform: translateY(-12px);
  filter: blur(6px);
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce){
  .scroll-story .story-stage .story-line{
    transition: none;
    filter: none;
  }
}

/* Post 3340 (page): HOME | NEW | Konzept MM ALT | element 7831d0b */
:root{
  --steps-inactive-color: #B5B5B5; /* dein gewünschter Grauton */
  --steps-active-color:   #111111; /* schwarz */
  --steps-scroll-offset:  120px;   /* Sicherheits-Offset beim Scrollen */
}

/* Links: sorgt dafür, dass "Anker" nicht unter Sticky Header landet */
.step-section{
  scroll-margin-top: var(--steps-scroll-offset);
}

/* Inaktiv */
.step-titles .step-title,
.step-titles .step-title * {
  color: var(--steps-inactive-color) !important;
  transition: color 220ms ease;
}

/* Aktiv */
.step-titles .step-title.is-active,
.step-titles .step-title.is-active * {
  color: var(--steps-active-color) !important;
}

/* Hover-Feedback */
.step-titles .step-title { cursor: pointer; }
.step-titles .step-title:not(.is-active):hover,
.step-titles .step-title:not(.is-active):hover * {
  color: var(--steps-active-color) !important;
}

/* Post 3650 (page): HOME | NEW | Konzept MM V2 | element f5e290c */
:root{
  --fw-step-height-first: 80vh; /* erster Wechsel */
  --fw-step-height-next:  60vh; /* danach pro Slide */
}

/* Outer */
.scroll-story-fw{
  position: relative;
  min-height: 100vh;
  height: auto !important;
  overflow: visible !important;
}

/* Sticky Bühne */
.scroll-story-fw .fw-stage{
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  pointer-events: none;
}

/* Scroll-Fläche */
.scroll-story-fw .fw-steps{
  position: relative;
}

.scroll-story-fw .fw-step{
  height: var(--fw-step-height-next);
}

/* Slides / “Lines” (volle Breite, keine Boxed-Begrenzung) */
.scroll-story-fw .fw-stage .fw-line{
  position: absolute;
  inset: 0;                 /* volle Fläche der Bühne */
  width: 100%;
  margin: 0;

  opacity: 0;
  transform: translateY(18px);
  filter: blur(6px);

  transition:
    opacity 900ms cubic-bezier(.22,.61,.36,1),
    transform 900ms cubic-bezier(.22,.61,.36,1),
    filter 900ms cubic-bezier(.22,.61,.36,1);
}

/* Aktiv */
.scroll-story-fw .fw-stage .fw-line.is-active{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Elegant ausblenden */
.scroll-story-fw .fw-stage .fw-line.is-leaving{
  opacity: 0;
  transform: translateY(-12px);
  filter: blur(6px);
}

@media (prefers-reduced-motion: reduce){
  .scroll-story-fw .fw-stage .fw-line{
    transition: none;
    filter: none;
  }
}

/* Post 3650 (page): HOME | NEW | Konzept MM V2 | element 9341254 */
/* ───────────── Hover-Reveal-Effekt (umgekehrt) ───────────── */
@media (min-width: 768px){
  .reveal-on-hover-invert{
    position: relative; /* Referenzpunkt für Kind-Elemente */
  }

  /* Fließtext ist zunächst sichtbar */
  .reveal-on-hover-invert .reveal-copy-invert{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Unsichtbar, sobald die Kachel gehovert wird */
  .reveal-on-hover-invert:hover .reveal-copy-invert{
    opacity: 0;
    transform: translateY(6px); /* kleiner Slide-Out nach unten */
    pointer-events: none; /* verhindert Klicks im Verborgenen */
  }
}

/* Post 3860 (page): HOME | NEW | Konzept MM V2 FN | element 1021a34 */
:root{
  --fw2-segment-first: 100vh; /* Distanz bis 1->2 (dein perfekter erster Wechsel) */
  --fw2-segment-next:  100vh; /* Distanz für alle weiteren Wechsel (identisch!) */
}

.scroll-story-fw2{
  position: relative;
  min-height: 100vh;
  height: auto !important;
  overflow: visible !important;
}

.scroll-story-fw2 .fw2-stage{
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  pointer-events: none;
}

.scroll-story-fw2 .fw2-spacer{
  width: 100%;
}

/* Slides */
.scroll-story-fw2 .fw2-stage .fw2-line{
  position: absolute;
  inset: 0;
  width: 100%;
  margin: 0;

  opacity: 0;
  transform: translateY(18px);
  filter: blur(6px);

  transition:
    opacity 900ms cubic-bezier(.22,.61,.36,1),
    transform 900ms cubic-bezier(.22,.61,.36,1),
    filter 900ms cubic-bezier(.22,.61,.36,1);
}

.scroll-story-fw2 .fw2-stage .fw2-line.is-active{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.scroll-story-fw2 .fw2-stage .fw2-line.is-leaving{
  opacity: 0;
  transform: translateY(-12px);
  filter: blur(6px);
}

@media (prefers-reduced-motion: reduce){
  .scroll-story-fw2 .fw2-stage .fw2-line{
    transition: none;
    filter: none;
  }
}

/* Post 4275 (page): HOME | NEW | Konzept MM V4 FN | element 515a515 */
/* ───────────── Hover-Reveal-Effekt ───────────── */
@media (min-width: 768px){
  .reveal-on-hover{
    position: relative; /* Referenzpunkt für Kind-Elemente */
  }

  /* Fließtext ist zunächst unsichtbar */
  .reveal-on-hover .reveal-copy{
    opacity: 0;
    transform: translateY(6px); /* kleiner Slide-In von unten */
    pointer-events: none; /* verhindert Klicks im Verborgenen */
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Sichtbar, sobald die Kachel gehovert wird */
  .reveal-on-hover:hover .reveal-copy{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* Box-Shadow Transition "festnageln" – auch mit Motion Effects */
.elementor-element-515a515,
.elementor-element-515a515.elementor-motion-effects-element{
  -webkit-transition: box-shadow .4s ease !important;
  transition: box-shadow .4s ease !important;

  /* optional, hilft Performance/Glätte */
  will-change: transform, box-shadow;
}

/* Post 4275 (page): HOME | NEW | Konzept MM V4 FN | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 4306 (page): AGB | element f0d3bfe */
/* Automatische Silbentrennung */n.silbenbruch .elementor-heading-title{n  -webkit-hyphens: auto;n  -ms-hyphens: auto;n  hyphens: auto;nn  white-space: normal;   /* Umbruch erlauben */n  word-break: normal;    /* nicht willkürlich im Wort brechen */n  overflow-wrap: normal; /* Silbentrennung statt "anywhere" */n}nn/* Optionaler Notnagel: falls ein Wort sonst das Layout sprengt (URLs etc.) */n/*n.silbenbruch .elementor-heading-title{n  overflow-wrap: break-word;n}n*/

/* Post 4326 (page): Datenschutz | element 24f0853 */
.text-mit-silbentrennung {n    hyphens: auto;n    word-break: break-word;n  }

/* Post 4637 (page): HOME | NEW | Konzept MM V4 FN BACKUP | element 515a515 */
/* ───────────── Hover-Reveal-Effekt ───────────── */
@media (min-width: 768px){
  .reveal-on-hover{
    position: relative; /* Referenzpunkt für Kind-Elemente */
  }

  /* Fließtext ist zunächst unsichtbar */
  .reveal-on-hover .reveal-copy{
    opacity: 0;
    transform: translateY(6px); /* kleiner Slide-In von unten */
    pointer-events: none; /* verhindert Klicks im Verborgenen */
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Sichtbar, sobald die Kachel gehovert wird */
  .reveal-on-hover:hover .reveal-copy{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* Box-Shadow Transition "festnageln" – auch mit Motion Effects */
.elementor-element-515a515,
.elementor-element-515a515.elementor-motion-effects-element{
  -webkit-transition: box-shadow .4s ease !important;
  transition: box-shadow .4s ease !important;

  /* optional, hilft Performance/Glätte */
  will-change: transform, box-shadow;
}

/* Post 4637 (page): HOME | NEW | Konzept MM V4 FN BACKUP | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 4682 (page): HOME | NEW | Konzept MM V5 FN | element 515a515 */
/* ───────────── Hover-Reveal-Effekt ───────────── */
@media (min-width: 768px){
  .reveal-on-hover{
    position: relative; /* Referenzpunkt für Kind-Elemente */
  }

  /* Fließtext ist zunächst unsichtbar */
  .reveal-on-hover .reveal-copy{
    opacity: 0;
    transform: translateY(6px); /* kleiner Slide-In von unten */
    pointer-events: none; /* verhindert Klicks im Verborgenen */
    transition: opacity .35s ease, transform .35s ease;
  }

  /* Sichtbar, sobald die Kachel gehovert wird */
  .reveal-on-hover:hover .reveal-copy{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* Box-Shadow Transition "festnageln" – auch mit Motion Effects */
.elementor-element-515a515,
.elementor-element-515a515.elementor-motion-effects-element{
  -webkit-transition: box-shadow .4s ease !important;
  transition: box-shadow .4s ease !important;

  /* optional, hilft Performance/Glätte */
  will-change: transform, box-shadow;
}

/* Post 4682 (page): HOME | NEW | Konzept MM V5 FN | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 4924 (page): TESTINGS | element 888c63f */
/* =========================
   Marquee / Infinite Banner
   TEST: 2 Varianten parallel
   ========================= */

:root{
  --duration: 40s;
}

/* -------------------------------------------------
   VARIANTE 1 (empfohlen):
   .marquee-v1 -> .marquee-track-v1
   Inhalt im Track: Set komplett 2x hintereinander
   (A B C A B C)
   ------------------------------------------------- */

/* Sichtfenster */
.marquee-v1{
  --gap: 24px;

  position: absolute;
  left: 0;
  right: 0;
  width: auto;
  overflow: hidden;
  max-width: 100%;
}

/* Elementor sets layout via CSS variables; force stable sizing even if Elementor CSS loads late (guest/incognito). */
.marquee-v1,
.marquee-track-v1{
  height: auto !important;
  min-height: 0 !important;
  align-items: center !important;

  /* Neutralize Elementor container sizing vars (prevents stretch/grow). */
  --container-widget-height: initial !important;
  --container-widget-flex-grow: 0 !important;
  --container-widget-align-self: center !important;
  --container-widget-width: auto !important;
}

.marquee-v1{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

.marquee-track-v1{
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

/* Optional: Breitbild weniger Abstand */
@media (min-width: 2400px){
  .marquee-v1{ --gap: 24px; }
}

/* Track */
.marquee-track-v1{
  display: flex;
  flex-wrap: nowrap;
  width: max-content;

  gap: var(--gap);
  align-items: center;
  justify-content: flex-start;

  will-change: transform;
  animation: marquee-left-v1 var(--duration) linear infinite;
}

/* Items niemals umbrechen / full width */
.marquee-track-v1 > *{
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  white-space: nowrap;
}

/* Hard override: Elementor containers inside the track must not grow/stretch */
.marquee-track-v1 .blur-bg-2,
.marquee-track-v1 .e-con,
.marquee-track-v1 .elementor-element{
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  align-self: center !important;
}

/* Reduce “Rahmen”-Innenabstand + stop huge circles if Elementor vars leak through */
.marquee-track-v1 .blur-bg-2{
  gap: 12px !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;

  height: auto !important;
  min-height: 0 !important;
  width: max-content !important;
  max-width: max-content !important;

  --container-widget-height: auto !important;
  --container-widget-flex-grow: 0 !important;
  --container-widget-align-self: center !important;
  --container-widget-width: max-content !important;
}

.marquee-track-v1 .blur-bg-2 .elementor-heading-title{
  font-size: 14px;
  line-height: 1.1;
}

.marquee-track-v1 .blur-bg-2 .elementor-widget-image img{
  max-height: 22px;
  width: auto !important;
}

/* Falls Bilder */
.marquee-track-v1 img{
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Prevent oversized logo rendering when Elementor widget widths don’t apply (e.g. guest cache/CSS) */
.marquee-track-v1 .elementor-widget-image img{
  max-height: 28px;
  width: auto !important;
}

/* Animation: um eine Hälfte verschieben */
@keyframes marquee-left-v1{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Pause on hover */
@media (hover:hover){
  .marquee-v1:hover .marquee-track-v1{
    animation-play-state: paused;
  }
}

/* Mobile optional enger/schneller */
@media (max-width: 767px){
  .marquee-v1{ --gap: 24px; }
  :root{ --duration: 28s; }
}

/* Post 4924 (page): TESTINGS | element b9333c3 */
/* =========================
   Marquee / Infinite Banner
   (nahtlos + einheitliche Abstände + responsive)
   ========================= */

:root{
  --duration: 40s;
}

/* Sichtfenster */
.marquee{
  --gap: 60px;                 /* <-- dein gewünschter Abstand */

  position: absolute;
  left: 0;
  right: 0;
  width: auto;
  overflow: hidden;
  max-width: 100%;
}

/* Breitbild: optional kleinerer Abstand */
@media (min-width: 2400px){
  .marquee{
    --gap: 24px;
  }
}

/* Bewegte Spur (enthält 2 Gruppen) */
.marquee-track{
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  will-change: transform;
  animation: marquee-left var(--duration) linear infinite;

  align-items: center;
  justify-content: flex-start;

  gap: 0 !important;           /* <-- wichtig: Track-Gap AUS, sonst passt -50% nicht */
}

/* Jede Gruppe ist ein kompletter Logo-Satz */
.marquee-group{
  display: flex;
  flex-wrap: nowrap;
  flex: 0 0 auto;
  width: max-content;

  align-items: center;
  justify-content: flex-start;
  white-space: nowrap;

  gap: var(--gap) !important;               /* Abstand INNERHALB der Gruppe */
  padding-right: var(--gap) !important;     /* Abstand ZWISCHEN Group1 & Group2 = wie innen */
}

/* Kinder nicht “full width” werden lassen (Elementor-Mobile-Defaults) */
.marquee-group > *{
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0 !important;
}

/* Falls es Image-Widgets sind */
.marquee-group img{
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Animation: exakt um eine Gruppe verschieben (funktioniert sicher) */
@keyframes marquee-left{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Pause on hover (nur Geräte mit Hover) */
@media (hover:hover){
  .marquee:hover .marquee-track{
    animation-play-state: paused;
  }
}

/* Optional: Mobile etwas enger/schneller */
@media (max-width: 767px){
  .marquee{
    --gap: 24px;
  }
  :root{
    --duration: 28s;
  }
}

/* Post 4928 (elementor_library): Fullscreen Menü Mobile/Tablet | element 1411be9 */
/* =========================
   BG-Blur
   ========================= */

.blur-bg-hover-2{
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);

  background: #00000059;       /* normal */
  border-radius: 0px;

  transition:
    backdrop-filter 0.4s ease,
    -webkit-backdrop-filter 0.4s ease,
    background-color 0.4s ease; /* <-- wichtig */

  will-change: backdrop-filter, background-color;
}

/* Hover */
.blur-bg-hover-2:hover{
  backdrop-filter: blur(35px);
  -webkit-backdrop-filter: blur(35px);

  background: #0000008C;       /* hover */
}

/* Fallback für Browser ohne Backdrop-Support */
.no-backdrop-support .blur-bg-hover-2{
  background: rgba(0,0,0,0.55);
  border-radius: 0px;
}

/* Post 4950 (page): Siteware io | KI-Infrastruktur | element ac0db1b */
/* Auto-Crossfade (BGs kommen per JS als CSS-Variablen --bg1/--bg2) */
.bg-autoswap{
  position: relative;
  overflow: hidden;
  background-image: var(--bg1);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Bild 2 als Overlay */
.bg-autoswap::before{
  content: "";
  position: absolute;
  inset: 0;

  background-image: var(--bg2);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  opacity: 0;
  pointer-events: none;

  /* Schneller Fade bei Hover/Leave */
  transition: opacity 0.28s ease;

  /* Endlos-Animation (Dauer anpassbar) */
  animation: bgCrossfade var(--swap-duration, 6s) linear infinite;
}

.bg-autoswap > *{
  position: relative;
  z-index: 1;
}

/* Wenn Nutzer hovert: Animation pausieren + Bild 2 erzwingen */
.bg-autoswap.is-manual-hover::before{
  animation-play-state: paused;
  opacity: 1;
}

/* Beim Neustart: Animation kurz aus, auf Bild 1 zurück */
.bg-autoswap.is-restarting::before{
  animation: none !important;
  opacity: 0 !important;
}

/*
  Timing bei 6s:
  - ~2.4s Bild 1 Pause
  - ~0.3s Fade zu Bild 2
  - ~2.4s Bild 2 Pause
  - ~0.3s Fade zurück
  (Rest kleine Pufferzeit)
*/
@keyframes bgCrossfade{
  0%   { opacity: 0; }
  40%  { opacity: 0; }   /* Pause Bild 1 */
  45%  { opacity: 1; }   /* schneller Fade hin (~0.3s) */
  85%  { opacity: 1; }   /* Pause Bild 2 */
  90%  { opacity: 0; }   /* schneller Fade zurück (~0.3s) */
  100% { opacity: 0; }
}

/* Post 4950 (page): Siteware io | KI-Infrastruktur | element 7e507e1 */
/* ───────────── Hover-Reveal-Effekt (umgekehrt) ───────────── */
.reveal-on-hover-invert{
  position: relative; /* Referenzpunkt für Kind-Elemente */
}

/* Fließtext ist zunächst sichtbar */
.reveal-on-hover-invert .reveal-copy-invert{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition: opacity .35s ease, transform .35s ease;
}

/* Unsichtbar, sobald die Kachel gehovert wird */
.reveal-on-hover-invert:hover .reveal-copy-invert{
  opacity: 0;
  transform: translateY(6px); /* kleiner Slide-Out nach unten */
  pointer-events: none; /* verhindert Klicks im Verborgenen */
}

/* Post 4950 (page): Siteware io | KI-Infrastruktur | element baaa2cb */
/* Akzeptanz-Feld Textgröße 
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}*/

/* GLOBAL Elementor Acceptance Field (Datenschutz Checkbox) */

.elementor-form .elementor-field-type-acceptance label {
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 5124 (page): HOME | NEW | Konzept MM V6 FN BACKUP (BB:1400) | element 3feee6b */
/* =========================
   Marquee / Infinite Banner
   ========================= */

/* Default-Werte (nicht global setzen, damit Elementor Breakpoints nichts “kaputt” machen) */
:root{
  --duration: 40s;
}

/* Sichtfenster */
.marquee{
  /* Scope-Variablen nur fürs Marquee */
  --gap: 40px;                 /* Standard-Abstand (Desktop/Laptop) */

  position: absolute;          /* wie bei dir */
  left: 0;
  right: 0;
  width: auto;
  overflow: hidden;
  max-width: 100%;
}

/* Breitbild: Abstand kleiner (damit es nicht zu luftig wirkt)
   Hinweis: Wenn dein Elementor-Breitbild bei einer anderen Breite startet,
   ändere 2400px entsprechend. */
@media (min-width: 2400px){
  .marquee{
    --gap: 24px;
  }
}

/* Bewegte Spur */
.marquee-track{
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  will-change: transform;
  animation: marquee-left var(--duration) linear infinite;

  align-items: center;
  justify-content: flex-start; /* wichtig: kein space-between */
}

/* Gruppen: immer Inhaltsbreite, nie Prozent */
.marquee-group{
  display: flex;
  flex-wrap: nowrap;
  flex: 0 0 auto;
  width: max-content;

  align-items: center;
  justify-content: flex-start;
  white-space: nowrap;

  gap: var(--gap) !important;  /* innerhalb der Gruppe immer gleich */
}

/* Naht zwischen Gruppe 1 und 2 exakt wie innen */
.marquee-group + .marquee-group{
  margin-left: var(--gap) !important;
}

/* Kinder nicht “full width” werden lassen (Elementor Mobile Defaults etc.) */
.marquee-group > *{
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0 !important;
}

/* Falls es Image-Widgets sind */
.marquee-group img{
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Animation */
@keyframes marquee-left{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Pause on hover (nur Geräte mit Hover) */
@media (hover:hover){
  .marquee:hover .marquee-track{
    animation-play-state: paused;
  }
}

/* Optional: Mobile etwas enger/schneller */
@media (max-width: 767px){
  .marquee{
    --gap: 24px;
  }
  :root{
    --duration: 28s;
  }
}

/* Post 5124 (page): HOME | NEW | Konzept MM V6 FN BACKUP (BB:1400) | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 5345 (page): Loco-Soft ALT | element 004a2c0 */
/* Base (Logo) smaller + centered; hover uses cover */
.elementor-element-004a2c0{background-position:center center; background-repeat:no-repeat;}
.elementor-element-004a2c0:not(.is-manual-hover):not(:hover){background-size:clamp(72px, 18vw, 140px) auto !important;}

/* Post 5345 (page): Loco-Soft ALT | element 7567910 */
/* Base (Logo) smaller + centered; hover uses cover */
.elementor-element-7567910{background-position:center center; background-repeat:no-repeat;}
.elementor-element-7567910:not(.is-manual-hover):not(:hover){background-size:clamp(72px, 18vw, 140px) auto !important;}

/* Post 5345 (page): Loco-Soft ALT | element 40082f0 */
/* Base (Logo) smaller + centered; hover uses cover */
.elementor-element-40082f0{background-position:center center; background-repeat:no-repeat;}
.elementor-element-40082f0:not(.is-manual-hover):not(:hover){background-size:clamp(72px, 18vw, 140px) auto !important;}

/* Post 5345 (page): Loco-Soft ALT | element 3a7e2427 */
/* Akzeptanz-Feld Textgröße */
.elementor-element-3a7e2427 .elementor-field-group-field_d2f6585,
.elementor-element-3a7e2427 .elementor-field-group-field_d2f6585 label,
.elementor-element-3a7e2427 .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 5897 (page): Loco-Soft | element ac0db1b */
/* Auto-Crossfade (BGs kommen per JS als CSS-Variablen --bg1/--bg2)
   background-size/-position/-repeat werden NICHT gesetzt -> kommt aus Elementor
*/
.bg-autoswap{
  position: relative;
  overflow: hidden;

  /* Nur das Bild selbst, Rest (size/pos/repeat) macht Elementor */
  background-image: var(--bg1);
}

/* Bild 2 als Overlay (übernimmt size/pos/repeat vom Element via inherit) */
.bg-autoswap::before{
  content: "";
  position: absolute;
  inset: 0;

  /* Nur das Bild selbst */
  background-image: var(--bg2);

  /* übernimmt deine Elementor-Einstellungen */
  background-size: inherit;
  background-position: inherit;
  background-repeat: inherit;
  background-attachment: inherit;

  opacity: 0;
  pointer-events: none;

  transition: opacity 0.28s ease;
  animation: bgCrossfade var(--swap-duration, 6s) linear infinite;
}

.bg-autoswap > *{
  position: relative;
  z-index: 1;
}

/* Wenn Nutzer hovert: Animation pausieren + Bild 2 erzwingen */
.bg-autoswap.is-manual-hover::before{
  animation-play-state: paused;
  opacity: 1;
}

/* Beim Neustart: Animation kurz aus, auf Bild 1 zurück */
.bg-autoswap.is-restarting::before{
  animation: none !important;
  opacity: 0 !important;
}

@keyframes bgCrossfade{
  0%   { opacity: 0; }
  40%  { opacity: 0; }
  45%  { opacity: 1; }
  85%  { opacity: 1; }
  90%  { opacity: 0; }
  100% { opacity: 0; }
}

/* Post 5897 (page): Loco-Soft | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 6075 (page): Über Uns | element 0a51433 */
/* Nur Farblogik – Typography bleibt komplett in Elementor */
.scroll-reveal-text .reveal-unit{
  color:#A5A5A5;
  transition: color 120ms linear;
}

/* aktiv */
.scroll-reveal-text .reveal-unit.is-on{
  color:#000;
}

/* Post 6075 (page): Über Uns | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 6551 (page): Master Unterseiten | Assistenten | element f0d3bfe */
/* Automatische Silbentrennung */
.silbenbruch .elementor-heading-title{
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;

  white-space: normal;   /* Umbruch erlauben */
  word-break: normal;    /* nicht willkürlich im Wort brechen */
  overflow-wrap: normal; /* Silbentrennung statt "anywhere" */
}

/* Optionaler Notnagel: falls ein Wort sonst das Layout sprengt (URLs etc.) */
/*
.silbenbruch .elementor-heading-title{
  overflow-wrap: break-word;
}
*/

/* Post 6989 (page): Telefon-Assistent | element f470f59 */
/* =========================
   Marquee / Infinite Banner
   Variante v3 – schneller, ohne Pause
   ========================= */

:root{
  --duration: 28s; /* schneller als vorher */
}

/* -------------------------------------------------
   VARIANTE 3:
   .marquee-v3 -> .marquee-track-v3
   Inhalt im Track: Set komplett 2x hintereinander
   (A B C A B C)
   ------------------------------------------------- */

/* Sichtfenster */
.marquee-v3{
  --gap: 60px;

  position: absolute;
  left: 0;
  right: 0;
  width: auto;
  overflow: hidden;
  max-width: 100%;
}

/* Optional: Breitbild weniger Abstand */
@media (min-width: 2400px){
  .marquee-v3{ --gap: 24px; }
}

/* Track */
.marquee-track-v3{
  display: flex;
  flex-wrap: nowrap;
  width: max-content;

  gap: var(--gap);
  align-items: center;
  justify-content: flex-start;

  will-change: transform;
  animation: marquee-left-v3 var(--duration) linear infinite;
}

/* Items niemals umbrechen / full width */
.marquee-track-v3 > *{
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0 !important;
  white-space: nowrap;
}

/* Falls Bilder */
.marquee-track-v3 img{
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
}

/* Animation: um eine Hälfte verschieben */
@keyframes marquee-left-v3{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Mobile optional enger/schneller */
@media (max-width: 767px){
  .marquee-v3{ --gap: 24px; }
  :root{ --duration: 20s; } /* noch etwas schneller mobil */
}

/* Post 7125 (page): Master Unterseiten | Simple | element 6ba90a2 */
/* Akzeptanz-Feld Textgröße */
.elementor-element-6ba90a2 .elementor-field-group-field_d2f6585,
.elementor-element-6ba90a2 .elementor-field-group-field_d2f6585 label,
.elementor-element-6ba90a2 .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}

/* Post 7422 (revision): Siteware io | KI-Infrastruktur | element baaa2cb */
/* Akzeptanz-Feld Textgröße */
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 label,
.elementor-element-baaa2cb .elementor-field-group-field_d2f6585 .elementor-field-option label{
  font-size: 16px !important;
  line-height: 1.2;
}
/* END: Elementor Custom CSS (migrated) */

.elementor-page-7843 #vorteile .e-n-accordion-item-title {
  justify-content: flex-start;
  gap: 0;
}

.elementor-page-7843 #vorteile .e-n-accordion-item-title-icon {
  display: none !important;
}

/* Preise page: keep reused Elementor pricing/details blocks inside the mobile viewport. */
@media (max-width: 767px) {
  body.elementor-page-8157,
  body.elementor-page-8157 .elementor-8157 {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  body.elementor-page-8157 #pay-per-seat,
  body.elementor-page-8157 #faq,
  body.elementor-page-8157 .elementor-element-rex0024 {
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    max-width: 100vw !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
    scroll-margin-top: 90px;
  }

  body.elementor-page-8157 #pay-per-seat > .e-con-inner,
  body.elementor-page-8157 #faq > .e-con-inner,
  body.elementor-page-8157 .elementor-element-rex0024 > .e-con-inner {
    width: calc(100vw - 40px) !important;
    max-width: calc(100vw - 40px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.elementor-page-8157 #pay-per-seat .e-con,
  body.elementor-page-8157 #pay-per-seat .e-n-tabs,
  body.elementor-page-8157 #pay-per-seat .e-n-tabs-content,
  body.elementor-page-8157 #pay-per-seat .e-n-tabs-content > .e-con,
  body.elementor-page-8157 #faq .e-con,
  body.elementor-page-8157 #faq .e-n-accordion,
  body.elementor-page-8157 #faq .e-n-accordion-item,
  body.elementor-page-8157 .elementor-element-rex0024 .e-con,
  body.elementor-page-8157 .elementor-element-rex0024 .elementor-widget,
  body.elementor-page-8157 .elementor-element-rex0024 .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  body.elementor-page-8157 #pay-per-seat .e-n-tabs-heading,
  body.elementor-page-8157 #pay-per-seat .e-n-tab-title {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    white-space: normal !important;
  }

  body.elementor-page-8157 #pay-per-seat .elementor-widget,
  body.elementor-page-8157 #pay-per-seat .elementor-widget-container,
  body.elementor-page-8157 #pay-per-seat .elementor-icon-list-item,
  body.elementor-page-8157 #faq .elementor-widget,
  body.elementor-page-8157 #faq .elementor-widget-container,
  body.elementor-page-8157 #faq .e-n-accordion-item-title,
  body.elementor-page-8157 #faq .e-n-accordion-item-title-header,
  body.elementor-page-8157 #faq .e-n-accordion-item-title-text,
  body.elementor-page-8157 .elementor-element-rex0024 .elementor-widget,
  body.elementor-page-8157 .elementor-element-rex0024 .elementor-widget-container {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
  }

  body.elementor-page-8157 #faq .e-n-accordion-item-title {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  body.elementor-page-8157 #faq .e-n-accordion-item-title-header {
    flex: 1 1 auto !important;
  }

  body.elementor-page-8157 #faq .e-n-accordion-item-title-icon {
    flex: 0 0 auto !important;
  }
}

/* Global nested accordion icon fallback.
   Some Elementor accordion widgets render empty icon spans when the SVG media id is missing.
   Keep existing SVG icons, but draw a small arrow when the span is empty. */
.elementor-widget-n-accordion .e-n-accordion-item-title-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: var(--n-accordion-icon-size, 15px);
  color: var(--n-accordion-icon-normal-color, currentColor);
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon svg {
  display: block;
  width: var(--n-accordion-icon-size, 15px);
  height: var(--n-accordion-icon-size, 15px);
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon svg path,
.elementor-widget-n-accordion .e-n-accordion-item-title-icon svg .cls-1 {
  fill: currentColor;
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-opened:empty,
.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-closed:empty {
  align-items: center;
  justify-content: center;
  width: var(--n-accordion-icon-size, 15px);
  height: var(--n-accordion-icon-size, 15px);
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-opened:empty::before,
.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-closed:empty::before {
  content: "";
  display: block;
  width: calc(var(--n-accordion-icon-size, 15px) * .62);
  height: calc(var(--n-accordion-icon-size, 15px) * .62);
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-closed:empty::before {
  transform: rotate(45deg);
  margin-top: -3px;
}

.elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-opened:empty::before {
  transform: rotate(-135deg);
  margin-top: 3px;
}

.elementor-widget-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon {
  color: var(--n-accordion-icon-active-color, currentColor);
}

body.elementor-page-7843 #vorteile .e-n-accordion-item-title-icon {
  display: flex !important;
}

/* Global nested tabs display fallback.
   Elementor marks only the active tab panel with .e-active. Some optimized CSS builds
   can leave inactive tab panels as flex containers, which stacks all pricing tabs. */
.elementor-widget-n-tabs .e-n-tabs-content > [role="tabpanel"]:not(.e-active) {
  display: none !important;
}

.elementor-widget-n-tabs .e-n-tabs-content > [role="tabpanel"].e-active {
  display: flex !important;
}

/* Hide the Elementor reCAPTCHA field container. */
.elementor-g-recaptcha {
  visibility: hidden;
  width: 0px !important;
  z-index: -10 !important;
  position: absolute;
}
