.elementor-kit-6{--e-global-color-primary:#171717;--e-global-color-secondary:#303030;--e-global-color-text:#171717;--e-global-color-accent:#171717;--e-global-color-9ea531f:#FFFFFF;--e-global-color-f43a7e5:#BEC1F7;--e-global-color-2c5b075:#898FF0;--e-global-color-ffd7870:#F075E8;--e-global-color-5ff32a9:#F3F798;--e-global-color-f262081:#F0FE46;--e-global-color-e2887a8:#8EFFA2;--e-global-color-9d05ce1:#32FF55;--e-global-color-9372b2b:#FF8B8B;--e-global-color-37160cd:#EDEDED;--e-global-color-524cbfd:#D9D9D9;--e-global-typography-primary-font-family:"Neue Montreal";--e-global-typography-primary-font-size:110px;--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Neue Montreal";--e-global-typography-secondary-font-size:70px;--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Neue Montreal";--e-global-typography-text-font-size:36px;--e-global-typography-text-font-weight:500;--e-global-typography-accent-font-family:"Neue Montreal";--e-global-typography-accent-font-size:24px;--e-global-typography-accent-font-weight:400;--e-global-typography-e76765d-font-family:"Neue Montreal";--e-global-typography-e76765d-font-size:110px;--e-global-typography-e76765d-font-weight:500;--e-global-typography-e76765d-line-height:0.96em;--e-global-typography-f3977f4-font-family:"Neue Montreal";--e-global-typography-f3977f4-font-size:19px;--e-global-typography-f3977f4-font-weight:400;--e-global-typography-ab6b000-font-family:"Neue Montreal";--e-global-typography-ab6b000-font-weight:500;--e-global-typography-4dadad9-font-family:"DM Mono";--e-global-typography-4dadad9-font-size:13px;--e-global-typography-4dadad9-font-weight:400;--e-global-typography-8d1a087-font-family:"DM Mono";--e-global-typography-8d1a087-font-size:12px;--e-global-typography-8d1a087-font-weight:400;background-color:#FFFFFF;font-family:"Neue Montreal", Sans-serif;font-size:16px;font-weight:400;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-37160cd );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1800px;}.e-con{--container-max-width:1800px;}.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);}@media(max-width:1600px){.elementor-kit-6{--e-global-typography-primary-font-size:88px;--e-global-typography-secondary-font-size:46px;--e-global-typography-text-font-size:32px;--e-global-typography-accent-font-size:22px;--e-global-typography-e76765d-font-size:88px;--e-global-typography-f3977f4-font-size:16px;--e-global-typography-4dadad9-font-size:13px;--e-global-typography-8d1a087-font-size:12px;}}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-primary-font-size:72px;--e-global-typography-secondary-font-size:42px;--e-global-typography-text-font-size:30px;--e-global-typography-accent-font-size:21px;--e-global-typography-e76765d-font-size:72px;--e-global-typography-e76765d-line-height:0.98em;--e-global-typography-f3977f4-font-size:16px;--e-global-typography-4dadad9-font-size:13px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-primary-font-size:46px;--e-global-typography-secondary-font-size:32px;--e-global-typography-text-font-size:26px;--e-global-typography-accent-font-size:19px;--e-global-typography-e76765d-font-size:46px;--e-global-typography-e76765d-line-height:1.02em;--e-global-typography-f3977f4-font-size:16px;--e-global-typography-ab6b000-font-size:15px;--e-global-typography-4dadad9-font-size:12px;--e-global-typography-8d1a087-font-size:11px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* SERGEJHEIN.COM – GESAMTES GLOBALES CSS
   Basis: die zwei bereitgestellten CSS-Dateien.
   Header V3: Originalmedien, Lilac-Kreis, Laptop 1600 px.
   In Elementor > Website-Einstellungen > Custom CSS komplett einfügen.
   Keine style-Tags. */

/* ===== HEADER UND MOBILES MENÜ ===== */
.sh-header-v2.e-con {
  width: 100%;
  max-width: none;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  padding-top: 0px;
  padding-right: 0px;
  padding-bottom: 0px;
  padding-left: 0px;
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  --sh-header-height: 80px;
}

.sh-header-v2 *, .sh-mobile-menu-v2 * {
  box-sizing: border-box;
}

.sh-header-v2 .e-con {
  min-width: 0px;
}

.sh-header-v2 p, .sh-mobile-menu-v2 p {
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
}

.sh-header-v2 a, .sh-mobile-menu-v2 a {
  text-decoration-line: none !important;
  text-decoration-thickness: initial !important;
  text-decoration-style: initial !important;
  text-decoration-color: initial !important;
}

.sh-header-v2 .sh-logo-v2, .sh-mobile-menu-v2 .sh-logo-v2 {
  min-width: 0px;
}

.sh-logo-v2 .elementor-heading-title {
  white-space-collapse: collapse;
  text-wrap-mode: nowrap;
}

.sh-logo-v2 .sh-logo-domain {
  font-size: 0.58em;
  letter-spacing: -0.04em;
  vertical-align: top;
  align-self: flex-start;
  line-height: 1;
}

.sh-header-v2 .sh-desktop-bar {
  min-height: var(--sh-header-height);
}

.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-nav-button > .elementor-widget-container, .sh-header-v2 .sh-nav-button .elementor-button-wrapper, .sh-header-v2 .sh-menu-toggle > .elementor-widget-container, .sh-header-v2 .sh-menu-toggle .elementor-button-wrapper {
  display: flex;
  align-items: stretch;
}

.sh-header-v2 .sh-nav-button .elementor-button, .sh-header-v2 .sh-menu-toggle .elementor-button {
  width: 100%;
  min-height: var(--sh-header-height);
  padding-block-start: 0px;
  padding-block-end: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
}

.sh-header-v2 .elementor-button-content-wrapper {
  align-items: center;
}

.sh-header-v2 .sh-contact-v2 .elementor-button-icon {
  font-size: 28px;
  transform: none;
}

.sh-header-v2 .sh-contact-v2 .elementor-button-icon svg {
  width: 1em;
  height: 1em;
}

.sh-header-v2 .sh-status-dot .elementor-icon {
  display: block;
}

.sh-header-v2 .sh-compact-bar {
  width: 100%;
  max-width: none;
}

@media (max-width: 900px) {
  .sh-header-v2 .sh-desktop-brand {
    padding-inline-start: 18px;
    padding-inline-end: 18px;
  }
}

.sh-header-v2 a:focus-visible, .sh-mobile-menu-v2 a:focus-visible {
  outline-color: rgb(10, 116, 254);
  outline-style: solid;
  outline-width: 3px;
  outline-offset: -4px;
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-widget-content {
  width: 100vw;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  margin-left: 0px;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  box-shadow: none;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgb(240, 254, 70);
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-message {
  width: 100%;
  height: 100%;
  max-height: none;
  padding-top: 0px;
  padding-right: 0px;
  padding-bottom: 0px;
  padding-left: 0px;
  overflow-x: auto;
  overflow-y: auto;
}

.sh-mobile-menu-v2.e-con {
  width: 100%;
  max-width: none;
  min-height: 100dvh;
  padding-top: ;
  padding-right: ;
  padding-bottom: ;
  padding-left: ;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: rgb(240, 254, 70);
}

.sh-mobile-menu-v2 .sh-menu-location {
  padding-inline-start: 18px;
  padding-inline-end: 18px;
}

.sh-mobile-menu-v2 .sh-menu-brand {
  padding-top: max(16px,env(safe-area-inset-top));
}

.sh-mobile-menu-v2 .sh-menu-links {
  width: 100%;
}

.sh-mobile-menu-v2 .sh-mobile-link {
  width: 100%;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: rgb(23, 23, 23);
}

.sh-mobile-menu-v2 .sh-mobile-link .elementor-button {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  border-top-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-left-width: 0px;
  border-top-style: none;
  border-right-style: none;
  border-bottom-style: none;
  border-left-style: none;
  border-top-color: currentcolor;
  border-right-color: currentcolor;
  border-bottom-color: currentcolor;
  border-left-color: currentcolor;
  border-image-source: none;
  border-image-slice: 100%;
  border-image-width: 1;
  border-image-outset: 0;
  border-image-repeat: stretch;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  text-align: left;
}

.sh-mobile-menu-v2 .sh-mobile-link .elementor-button-content-wrapper {
  justify-content: flex-start;
}

.sh-mobile-menu-v2 .sh-menu-copyright {
  padding-top: 24px;
  padding-right: 18px;
  padding-bottom: 24px;
  padding-left: 18px;
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button {
  top: max(18px,env(safe-area-inset-top));
  right: 18px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgb(23, 23, 23);
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button:focus-visible {
  outline-color: rgb(10, 116, 254);
  outline-style: solid;
  outline-width: 3px;
}

.sh-logo-v2 .elementor-heading-title a {
  display: flex;
  align-items: center;
}

.sh-header-v2 .sh-nav-button > .elementor-widget-container, .sh-header-v2 .sh-nav-button .elementor-button-wrapper, .sh-header-v2 .sh-menu-toggle > .elementor-widget-container, .sh-header-v2 .sh-menu-toggle .elementor-button-wrapper {
  width: 100%;
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0%;
}

.sh-header-v2 .sh-menu-toggle {
  display: flex;
  align-items: stretch;
}

.sh-original-logo .elementor-widget-container {
  line-height: 0;
}

.sh-original-logo img {
  display: block;
  max-width: 100%;
  height: 48px;
  object-fit: contain;
  object-position: left center;
  width: auto !important;
}

.sh-original-logo.sh-logo-compact img {
  height: 34px;
}

@media (max-width: 767px) {
  .sh-original-logo.sh-logo-compact img {
    height: 32px;
  }
}

.sh-pixel-arrow .elementor-button-icon {
  display: flex;
  align-items: center;
  font-size: 28px;
  transform: none !important;
}

.sh-pixel-arrow .elementor-button-icon svg, .sh-pixel-arrow .elementor-button-icon img {
  display: block;
  width: 28px;
  height: 28px;
}

.sh-pixel-arrow .elementor-button-content-wrapper {
  align-items: center;
  row-gap: 12px;
  column-gap: 12px;
}

@media (max-width: 1600px) {
  .sh-header-v2.e-con {
    --sh-header-height: 64px;
  }

  .sh-header-v2 .sh-nav-button .elementor-button {
    padding-inline-start: 8px;
    padding-inline-end: 8px;
  }

  .sh-header-v2 .sh-nav-button .elementor-button-content-wrapper {
    row-gap: 8px;
    column-gap: 8px;
  }

  .sh-header-v2 .sh-contact-v2 .elementor-button-icon {
    font-size: 24px;
  }

  .sh-header-v2 .sh-desktop-brand .sh-original-logo img {
    height: 36px;
  }

  .sh-header-v2 .sh-pixel-arrow .elementor-button-icon svg, .sh-header-v2 .sh-pixel-arrow .elementor-button-icon img {
    width: 24px;
    height: 24px;
  }
}

:is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button {
  position: relative;
  overflow-x: hidden;
  overflow-y: hidden;
  isolation: isolate;
}

:is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button::before {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  pointer-events: none;
  z-index: 0;
  background-image: initial;
  background-position-x: initial;
  background-position-y: initial;
  background-size: initial;
  background-repeat: initial;
  background-attachment: initial;
  background-origin: initial;
  background-clip: initial;
  background-color: #F075E8;
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  clip-path: circle(0% at 0% 100%);
  transition-behavior: normal;
  transition-duration: 650ms;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: 0s;
  transition-property: clip-path;
}

:is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button-content-wrapper {
  position: relative;
  z-index: 1;
}

@media (hover: hover) {
  :is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button:hover::before {
    clip-path: circle(150% at 0% 100%);
  }
}

:is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button:focus-visible::before {
  clip-path: circle(150% at 0% 100%);
}

@media (prefers-reduced-motion: reduce) {
  .sh-header-v2 .sh-nav-button .elementor-button::before {
    transition-behavior: normal;
    transition-duration: 0s;
    transition-timing-function: ease;
    transition-delay: 0s;
    transition-property: none;
  }

  .elementor-popup-modal:has(.sh-mobile-menu-v2), .elementor-popup-modal:has(.sh-mobile-menu-v2) * {
    animation-duration: auto !important;
    animation-timing-function: ease !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    animation-direction: normal !important;
    animation-fill-mode: none !important;
    animation-play-state: running !important;
    animation-name: none !important;
    animation-timeline: auto !important;
    animation-range-start: normal !important;
    animation-range-end: normal !important;
    scroll-behavior: auto !important;
  }

  :is(.sh-header-v2 .sh-nav-button, .sh-header-v2 .sh-menu-toggle, .sh-mobile-menu-v2 .sh-mobile-link) .elementor-button::before {
    transition-behavior: normal;
    transition-duration: 0s;
    transition-timing-function: ease;
    transition-delay: 0s;
    transition-property: none;
  }
}

/* ===== BESTEHENDE SEITENELEMENTE – UNVERÄNDERT ===== */
/* Ergänzung für die exakten Seitengrenzen aus der Markdown-Grundlage.
   Global einfügen; kein JavaScript und keine zusätzlichen Widgets nötig. */
.elementor .e-con.sh-hero {
  width: 100%;
  max-width: 2560px;
  box-sizing: border-box;
  margin-inline: auto;
  padding-inline: 28px;
}
.elementor .sh-hero .sh-meta p,
.elementor .sh-hero .sh-intro p { margin-block: 0; }
.elementor .sh-hero .sh-card { position: relative; }
.elementor .sh-hero .sh-media { line-height: 0; }
@media (max-width: 900px) {
  .elementor .e-con.sh-hero { padding-inline: 18px; }
}
@media (max-width: 767px) {
  .elementor .sh-hero .sh-intro br { display: none; }
}


/* Bild füllt die Karte ohne Verzerrung */
.sh-hero .sh-card .sh-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.sh-hero .sh-media .elementor-widget-container {
  height: 100%;
}

.sh-hero .sh-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}





/* 03 Logo Marquee – globales Website-CSS */
.sh-logo-marquee { max-width:2560px; margin-inline:auto; box-sizing:border-box; --sh-marquee-duration:40s; }
.sh-logo-marquee .sh-logo-window { overflow:hidden; width:100%; min-width:0; }
.sh-logo-marquee .sh-logo-track { width:100%; min-width:0; flex-shrink:0; gap:0; }
.sh-logo-marquee .sh-logo-group { width:100%; flex:0 0 100%; min-width:0; gap:0; }
.sh-logo-marquee .sh-logo { flex:0 0 12.5%; min-width:0; margin:0; box-sizing:border-box; }
.sh-logo-marquee .sh-logo img { max-width:100%; vertical-align:middle; }
.sh-logo-marquee.sh-marquee-ready .sh-logo-track { width:200%; min-width:2560px; animation:sh-logo-flow var(--sh-marquee-duration) linear infinite; }
.sh-logo-marquee.sh-marquee-ready .sh-logo-group { width:50%; flex:0 0 50%; }
.sh-logo-marquee .sh-logo-window:hover .sh-logo-track,
.sh-logo-marquee .sh-logo-window:focus-within .sh-logo-track { animation-play-state:paused; }
.sh-logo-marquee .sh-logo-window:focus-visible { outline:2px solid var(--e-global-color-primary,#171717); outline-offset:4px; }
@keyframes sh-logo-flow { to { transform:translateX(-50%); } }
@media(max-width:900px) { .sh-logo-marquee { padding-left:18px; padding-right:18px; } }
.sh-logo-marquee:not(.sh-marquee-ready) .sh-logo-group { flex-wrap:wrap; row-gap:24px; }
@media(max-width:1024px) { .sh-logo-marquee:not(.sh-marquee-ready) .sh-logo { flex-basis:25%; } }
@media(max-width:767px) { .sh-logo-marquee:not(.sh-marquee-ready) .sh-logo { flex-basis:50%; } }
@media(prefers-reduced-motion:reduce) {
 .sh-logo-marquee.sh-marquee-ready .sh-logo-track { animation:none; transform:none; width:100%; min-width:0; }
 .sh-logo-marquee.sh-marquee-ready .sh-logo-group { width:100%; flex:0 0 100%; flex-wrap:wrap; row-gap:24px; }
 .sh-logo-marquee [data-sh-clone] { display:none!important; }
}
@media(prefers-reduced-motion:reduce) and (max-width:1024px) { .sh-logo-marquee .sh-logo { flex-basis:25%; } }
@media(prefers-reduced-motion:reduce) and (max-width:767px) { .sh-logo-marquee .sh-logo { flex-basis:50%; } }
.sh-logo-marquee.sh-marquee-ready .sh-logo-track { max-width:none; }
/* ABOUT-SEKTION – ergänzendes CSS
   Einfügen: Elementor > Website-Einstellungen > Custom CSS.
   Ohne <style>-Tags einfügen.

   Texte, Farben, Schriftgrößen und Bildformate werden überwiegend
   direkt in den nativen Elementor-Widgets und Containern eingestellt.
   Diese Datei ergänzt den äußeren Rahmen und den bewegten Bildstreifen.

   WICHTIG: Für den Endloslauf wird zusätzlich 06-about.js benötigt.
   Das Skript erzeugt die Wiederholungen und startet die Animation.
*/

/* 1. Äußerer Rahmen gemäß Master-Prompt.
   Die globale Elementor Content Width wird dadurch nicht geändert. */
.sh-about {
    width: 100%;
    max-width: 2560px !important;
    box-sizing: border-box;
    margin-inline: auto;
}

/* Inhalte dürfen innerhalb der Flex-Container schmaler werden. */
.sh-about .e-con,
.sh-about .elementor-widget {
    min-width: 0;
}

.sh-about p:last-child {
    margin-bottom: 0;
}

/* 2. Sichtbarer Ausschnitt des Bildstreifens.
   Überstehende Bilder bleiben innerhalb der Sektion verborgen. */
.sh-about .sh-about-viewport {
    overflow: hidden;
}

/* Das Laufband enthält die Originalfolge und ihre Wiederholung.
   Zwischen beiden Folgen darf kein zusätzlicher Track-Gap entstehen. */
.sh-about .sh-about-track {
    width: max-content;
    max-width: none;
    gap: 0;
}

/* Abstand innerhalb der Bildfolge: nativ im Elementor-Container.
   padding-right ist der Abstand am Übergang zur nächsten Folge.
   Bei Änderung des nativen 16-px-Gaps diesen Wert ebenfalls anpassen. */
.sh-about .sh-about-sequence {
    width: max-content;
    max-width: none;
    flex-shrink: 0;
    padding-right: 16px;
}

/* 3. Einzelne Bildplätze.
   Breite und Mindesthöhe direkt am Mediencontainer in Elementor ändern.
   Der Container trägt das Layout; nur das Bild füllt ihn absolut aus. */
.sh-about .sh-about-media {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

/* Beschriftung hinter dem Bild für die zunächst leeren Bildplätze. */
.sh-about .sh-about-media::before {
    content: 'Bildplatzhalter';
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font: 12px 'DM Mono', monospace;
    color: var(--e-global-color-secondary, #303030);
    pointer-events: none;
}

.sh-about .sh-about-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.sh-about .sh-about-image .elementor-widget-container {
    height: 100%;
}

/* cover füllt den Bildplatz mit Zuschnitt, ohne das Bild zu verzerren. */
.sh-about .sh-about-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 4. Gleichmäßiger Lauf nach rechts.
   JavaScript setzt die Klasse sh-about-running und berechnet die Dauer
   aus der Bildfolgenbreite (20 Pixel pro Sekunde).
   90s ist nur der Ersatzwert, falls keine Dauer gesetzt wurde. */
.sh-about .sh-about-running {
    animation: sh-about-right var(--sh-about-duration, 90s) linear infinite;
    will-change: transform;
}

/* Bei Mausberührung oder Tastaturfokus pausieren. */
.sh-about .sh-about-viewport:hover .sh-about-track,
.sh-about .sh-about-viewport:focus-within .sh-about-track {
    animation-play-state: paused;
}

/* Zwei gleich breite Folgen: -50% entspricht genau einer Folge.
   Der Weg von -50% nach 0 bewegt die Bilder nach rechts. */
@keyframes sh-about-right {
    from {
        transform: translateX(-50%);
    }
    to {
        transform: translateX(0);
    }
}

/* 5. Seitenabstand bis 900 px gemäß Master-Prompt.
   Das ist unabhängig von euren Elementor Tablet-/Mobile-Breakpoints. */
@media (max-width: 900px) {
    .sh-about {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
}

/* 6. Bei aktivierter Systemeinstellung 'Bewegung reduzieren':
   keine Animation, keine Kopien; Originale manuell scrollbar. */
@media (prefers-reduced-motion: reduce) {
    .sh-about .sh-about-running {
        animation: none;
        transform: none;
    }

    .sh-about .sh-about-viewport {
        overflow-x: auto;
    }

    .sh-about [data-sh-about-clone] {
        display: none !important;
    }
}

/* 7. Im Elementor-Editor steht die Bildfolge zum Bearbeiten still. */
body.elementor-editor-active .sh-about-track {
    animation: none !important;
    transform: none !important;
}

body.elementor-editor-active .sh-about-viewport {
    overflow-x: auto;
}

.karo-hintergrund {
  background-image:
    linear-gradient(to right, #D9D9D9 1px, transparent 1px),
    linear-gradient(to bottom, #D9D9D9 1px, transparent 1px);
  background-size: 31px 31px;
  background-position: top left;
}

.sh-contact-grid {
  background-color: #BEC1F7;
  background-image: radial-gradient(
    circle,
    rgba(100, 100, 100, 0.35) 2px,
    transparent 2.5px
  );
  background-size: 19px 19px;
  background-position: 0 0;
  background-repeat: repeat;
}

/* Seiteninhalt verdeckt den Footer */
.sh-reveal-content {
  position: relative;
  z-index: 2;
  background-color: #FFFFFF;
}

/* Footer bleibt hinter dem Inhalt stehen */
.sh-reveal-footer {
  position: sticky;
  bottom: 0;
  z-index: 1;
}

/* Auf kleineren Geräten normal mitscrollen */
@media (max-width: 900px) {
  .sh-reveal-footer {
    position: relative;
    bottom: auto;
  }
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button,
.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button:hover,
.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button i {
  color: #FFFFFF !important;
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button svg,
.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button svg path {
  fill: #FFFFFF !important;
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button {
  font-size: 24px !important;
}

.elementor-popup-modal:has(.sh-mobile-menu-v2) .dialog-close-button svg {
  width: 24px !important;
  height: 24px !important;
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Neue Montreal';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Bold.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Medium.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Book.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: normal;
	font-weight: 100;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Thin.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: italic;
	font-weight: 400;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Italic.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: italic;
	font-weight: 600;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-SemiBolditalic.woff2') format('woff2');
}
@font-face {
	font-family: 'Neue Montreal';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('https://sergejhein-digit-k0flotnz7r.live-website.com/wp-content/uploads/2026/05/PPNeueMontreal-Bold.woff2') format('woff2');
}
/* End Custom Fonts CSS */