.elementor-142 .elementor-element.elementor-element-292e2d1{--grid-template-columns:repeat(0, auto);text-align:center;--icon-size:1rem;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-142 .elementor-element.elementor-element-292e2d1 .elementor-social-icon{background-color:#00000000;}.elementor-142 .elementor-element.elementor-element-292e2d1 .elementor-social-icon i{color:#FFFFFF;}.elementor-142 .elementor-element.elementor-element-292e2d1 .elementor-social-icon svg{fill:#FFFFFF;}.elementor-142 .elementor-element.elementor-element-9f050a8{--grid-template-columns:repeat(0, auto);text-align:center;--grid-row-gap:0px;}.elementor-142 .elementor-element.elementor-element-9f050a8 .elementor-social-icon{background-color:#00000000;}.elementor-142 .elementor-element.elementor-element-9f050a8 .elementor-social-icon i{color:#FFFFFF;}.elementor-142 .elementor-element.elementor-element-9f050a8 .elementor-social-icon svg{fill:#FFFFFF;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-142 .elementor-element.elementor-element-9f050a8{--icon-size:2.5rem;}.elementor-142 .elementor-element.elementor-element-9f050a8 .elementor-social-icon{--icon-padding:1em;}}@media(max-width:767px){.elementor-142 .elementor-element.elementor-element-9f050a8{--icon-size:1.5rem;}}/* Start custom CSS */h2.xb-header-link {
  width: max-content !important;
  max-width: max-content !important;
  flex: 0 0 auto !important;
}

h2.xb-header-link > a.e-heading-link-base {
  position: relative !important;

  display: inline-flex !important;

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

  flex: 0 0 auto !important;
  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  flex-basis: auto !important;

  align-self: flex-start !important;

  text-decoration: none !important;
}

h2.xb-header-link > a.e-heading-link-base::after {
  content: "";
  position: absolute;

  left: 0;
  bottom: -2px;

  width: 100%;
  height: 1px;

  background: currentColor;

  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.35s ease;
}

h2.xb-header-link > a.e-heading-link-base:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}




.xb-header-shell {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 9999 !important;

  transition: top 450ms cubic-bezier(.22, 1, .36, 1) !important;
}

.xb-header-shell.xb-header-hidden {
  top: -120px !important;
}



/* =========================================================
   XB VISUALS — FULLSCREEN MOBILE / TABLET MENU
   ========================================================= */

@media (max-width: 1024px) {

  .xb-header-shell:has(.xb-mobile-fullscreen-menu details[open]) {
    mix-blend-mode: normal !important;
    top: 0 !important;
  }

  .xb-mobile-brand {
    position: relative !important;
    z-index: 10002 !important;
  }

  .xb-header-shell:has(.xb-mobile-fullscreen-menu details[open])
  .xb-mobile-brand {
    color: #f2f2ee !important;
  }


  /* MENU + CLOSE always stay at exactly the same position */
  .xb-mobile-fullscreen-menu details > summary {
    position: fixed !important;
    top: 0 !important;
    right: 22px !important;

    width: auto !important;
    height: 68px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #f2f2ee !important;
    background: transparent !important;

    z-index: 10003 !important;

    list-style: none !important;
    cursor: pointer;
  }

  .xb-mobile-fullscreen-menu details > summary::-webkit-details-marker {
    display: none;
  }


  /* Fullscreen opened menu */
  .xb-mobile-fullscreen-menu details[open] {
    position: fixed !important;
    inset: 0 !important;

    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100svh !important;

    margin: 0 !important;
    padding: 100px 22px 24px !important;

    background: #050505 !important;
    color: #f2f2ee !important;

    overflow-y: auto !important;
    overscroll-behavior: contain;

    z-index: 10000 !important;

    mix-blend-mode: normal !important;
    isolation: isolate;
    box-sizing: border-box;
  }


  /* Menu item entrance animation */
  .xb-mobile-fullscreen-menu
  details[open] > :not(summary) a {
    opacity: 0;
    transform: translateY(24px);

    animation:
      xb-mobile-menu-in
      650ms
      cubic-bezier(.22, 1, .36, 1)
      forwards;

    animation-delay:
      calc(70ms + (var(--xb-menu-index, 0) * 65ms));
  }
}


/* Mobile spacing */
@media (max-width: 720px) {

  .xb-mobile-fullscreen-menu details > summary {
    right: 16px !important;
    height: 62px !important;
  }

  .xb-mobile-fullscreen-menu details[open] {
    padding: 94px 16px 24px !important;
  }
}


/* Staggered entrance */
@keyframes xb-mobile-menu-in {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Lock page behind opened menu */
html.xb-fullscreen-menu-open,
body.xb-fullscreen-menu-open {
  overflow: hidden !important;
}

@media (max-width: 1024px) {

  .xb-mobile-fullscreen-menu details > summary {
    transition: top 450ms cubic-bezier(.22, 1, .36, 1) !important;
  }

  /* Header scrollt raus → MENU scrollt ebenfalls raus */
  .xb-header-shell.xb-header-hidden
  .xb-mobile-fullscreen-menu details:not([open]) > summary {
    top: -120px !important;
  }

  /* Geöffnetes Menü → CLOSE immer oben sichtbar */
  .xb-mobile-fullscreen-menu details[open] > summary {
    top: 0 !important;
  }
}

@media (max-width: 1024px) {

  /* Elementor/Atomic darf den geöffneten Menü-Content
     nicht zusätzlich verschieben/animieren */
  .xb-mobile-fullscreen-menu details[open] > :not(summary) {
    translate: none !important;
  }

  /* Links werden ausschließlich durch unsere eigene Animation bewegt */
  .xb-mobile-fullscreen-menu details[open] a {
    transition: none !important;
  }
}

/* Smooth fade-out when CLOSE is pressed */
@media (max-width: 1024px) {
  .xb-mobile-fullscreen-menu
  details[open].xb-menu-closing {
    animation: xb-menu-fade-out 220ms ease forwards !important;
    pointer-events: none;
  }
}

@keyframes xb-menu-fade-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}/* End custom CSS */