/* Local enhancement of the original Elementor layout; no third-party runtime. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.elementor-location-header {
  position: relative;
  z-index: 1000;
}

#willkommen {
  scroll-margin-top: calc(var(--site-header-height, 140px) + 16px);
}

/* Preserve the original home page's space before its introduction. */
.elementor-11 .elementor-element-890ee6f {
  min-height: 140px;
}

#site-navigation {
  display: block !important;
  overflow: visible;
}

#site-navigation > .elementor-nav-menu > li {
  position: relative;
}

#site-navigation .submenu-toggle {
  position: relative;
  display: flex;
  align-items: center;
  flex-grow: 1;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  line-height: 20px;
  text-align: inherit;
  white-space: nowrap;
  cursor: pointer;
}

#site-navigation > .elementor-nav-menu > li:not(:first-child) > .submenu-toggle {
  margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin);
}

#site-navigation > .elementor-nav-menu > li:not(:last-child) > .submenu-toggle {
  margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin);
}

#site-navigation .sub-menu {
  display: none !important;
  width: max-content;
  min-width: 12em;
  max-width: calc(100vw - 16px);
  max-height: var(--submenu-max-height, calc(100dvh - var(--site-header-height, 140px) - 24px));
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(var(--submenu-shift, 0px)) !important;
  z-index: 1010;
}

#site-navigation .sub-menu a {
  white-space: normal;
}

#site-navigation.is-enhanced li.is-open > .sub-menu,
#site-navigation:not(.is-enhanced) li:hover > .sub-menu,
#site-navigation:not(.is-enhanced) li:focus-within > .sub-menu {
  display: block !important;
}

#site-navigation a:focus-visible,
#site-navigation .submenu-toggle:focus-visible,
.site-menu-toggle:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: -3px;
}

.site-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 46px;
  min-height: 44px;
  padding: 8px;
  border: 0;
  border-radius: 3px;
  background: #fff;
  color: var(--e-global-color-primary, #669900);
  cursor: pointer;
}

.site-menu-toggle:hover,
.site-menu-toggle:focus,
.site-menu-toggle:active {
  background: #fff;
  color: var(--e-global-color-primary, #669900);
  box-shadow: none;
}

.site-menu-toggle span,
.site-menu-toggle span::before,
.site-menu-toggle span::after {
  position: relative;
  display: block;
  width: 30px;
  height: 3px;
  border-radius: 1px;
  background: currentColor;
}

.site-menu-toggle span::before,
.site-menu-toggle span::after {
  position: absolute;
  left: 0;
  content: "";
}

.site-menu-toggle span::before { top: -9px; }
.site-menu-toggle span::after { top: 9px; }
.site-menu-toggle[aria-expanded="true"] span { background: transparent; }
.site-menu-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }

@media (min-width: 1025px) {
  .elementor-location-header {
    position: sticky;
    top: 0;
  }
}

@media (max-width: 767px) {
  .elementor-location-header .elementor-element-f2b068e {
    position: relative !important;
  }

  .elementor-location-header .elementor-element-1ac8484,
  .elementor-location-header .elementor-element-6c2c4ef,
  .elementor-location-header .elementor-element-6c2c4ef > .elementor-widget-container {
    position: static !important;
  }

  .site-menu-toggle.is-enhanced {
    display: flex;
    width: 45px;
    min-height: 45px;
    padding: 7.5px;
    margin: 0 auto;
  }

  .elementor-16.elementor-location-header .elementor-element.elementor-element-6c2c4ef > .elementor-widget-container {
    padding-bottom: 25px;
  }

  #site-navigation.is-enhanced {
    position: static;
    width: 100%;
    margin-top: 15px;
    margin-bottom: -15px;
    max-height: var(--site-navigation-available-height, 70dvh);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--e-global-color-primary, #669900);
    z-index: 1010;
  }

  #site-navigation.is-enhanced:not(.is-open) {
    display: none !important;
  }

  #site-navigation > .elementor-nav-menu,
  #site-navigation > .elementor-nav-menu > li {
    display: block;
    width: 100%;
  }

  #site-navigation > .elementor-nav-menu > li::after {
    content: none;
  }

  #site-navigation .elementor-item {
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin: 0 !important;
    padding: 13px 20px !important;
    color: #fff !important;
    font-size: 20px !important;
    line-height: 20px;
    text-align: center;
    white-space: normal;
  }

  #site-navigation .elementor-item:hover,
  #site-navigation .elementor-item:focus-visible,
  #site-navigation .submenu-toggle[aria-expanded="true"] {
    background-color: var(--e-global-color-00b5876, #476d00);
  }

  #site-navigation .sub-menu {
    position: static !important;
    inset: auto !important;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: none;
    margin: 0 !important;
    overflow: visible;
    transform: none !important;
  }

  #site-navigation .sub-menu a {
    justify-content: center;
    min-height: 44px;
    text-align: center;
  }

  /* A script-free page keeps every navigation destination available. */
  #site-navigation:not(.is-enhanced) {
    background: var(--e-global-color-primary, #669900);
  }

  #site-navigation:not(.is-enhanced) .sub-menu {
    display: block !important;
  }

  #willkommen { scroll-margin-top: 16px; }
}

[data-entrance] { visibility: visible !important; }
[data-entrance="fadeInLeft"] { --site-entrance-x: -100%; }
[data-entrance="fadeInRight"] { --site-entrance-x: 100%; }
[data-entrance="fadeInUp"] { --site-entrance-y: 100%; }
[data-entrance].site-entrance-pending { opacity: 0; }
[data-entrance].site-entrance-entered { animation: siteEntrance 1s both; }

@keyframes siteEntrance {
  from { opacity: 0; transform: translate3d(var(--site-entrance-x, 0), var(--site-entrance-y, 0), 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  [data-entrance].site-entrance-pending { opacity: 1; }
  [data-entrance].site-entrance-entered { animation: none; }
}
