/* Ergänzungen für den statischen Nachbau (ersetzt, was vorher Elementor-JavaScript erledigt hat) */

html { scroll-behavior: smooth; }

/* Desktop-Menü: Untermenüs bei Hover/Tastatur */
.elementor-nav-menu--main .elementor-nav-menu li:hover > ul,
.elementor-nav-menu--main .elementor-nav-menu li:focus-within > ul { display: block; }
.elementor-nav-menu--main .elementor-nav-menu > li > ul { top: 100%; left: 0; z-index: 9999; }
.elementor-nav-menu--main .elementor-nav-menu li { position: relative; }
/* Untermenü so breit wie der längste Eintrag (setzte vorher SmartMenus per Skript) */
.elementor-nav-menu--main .elementor-nav-menu ul { width: auto; min-width: 12em; }
.elementor-nav-menu--main .elementor-nav-menu ul a { white-space: nowrap; }

/* Mobil-Dropdown über volle Breite (Elementor „Stretch“) */
.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  left: calc(50% - 50vw); width: 100vw;
}

/* Hintergrundvideo: Iframe zentriert und randlos */
.elementor-background-video-container iframe.elementor-background-video-embed {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 0; max-width: none;
}

/* Galerie im Blocksatz (statt e-gallery-Skript) */
.elementor-gallery__container {
  display: flex; flex-wrap: wrap; gap: var(--zh-gap, 10px);
}
.elementor-gallery__container::after { content: ""; flex-grow: 999; }
.elementor-gallery__container .e-gallery-item {
  flex: var(--ratio, 1.5) 1 calc(var(--ratio, 1.5) * var(--zh-row, 200px));
  height: var(--zh-row, 200px);
}
.elementor-gallery__container .e-gallery-image {
  width: 100%; height: 100%; background-size: cover; background-position: center;
}
.elementor-gallery__container .e-gallery-item:hover .e-gallery-image { transform: scale(1.0); }

/* Lightbox */
.zh-lightbox { position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.87); display: none;
  align-items: center; justify-content: center; }
.zh-lightbox.open { display: flex; }
.zh-lightbox figure { margin: 0; max-width: 90vw; max-height: 90vh; text-align: center; }
.zh-lightbox img { max-width: 90vw; max-height: 80vh; object-fit: contain; display: block; margin: 0 auto; }
.zh-lightbox figcaption { color: #fff; font-size: 14px; padding-top: 10px; line-height: 1.4; }
.zh-lightbox .zh-lb-title { font-weight: 700; }
.zh-lightbox button { position: absolute; background: none; border: 0; color: rgba(255,255,255,.8);
  font-size: 48px; line-height: 1; cursor: pointer; padding: 10px 16px; }
.zh-lightbox button:hover { color: #fff; }
.zh-lb-close { top: 10px; right: 10px; font-size: 40px !important; }
.zh-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.zh-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }
.zh-lightbox.single .zh-lb-prev, .zh-lightbox.single .zh-lb-next { display: none; }
.zh-lb-count { position: absolute; top: 20px; left: 20px; color: rgba(255,255,255,.8); font-size: 14px; }

/* Google-Maps-Platzhalter (lädt erst nach Klick) */
.elementor-widget-google_maps .elementor-custom-embed { position: relative; }
.zh-map-consent { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; padding: 20px;
  background: #e5e3df; color: #333; font-family: "Roboto", sans-serif; font-size: 14px; line-height: 1.5; }
.zh-map-consent p { margin: 0 0 10px; }
.zh-map-load { background: #fff; color: #333; border: 1px solid #999; border-radius: 3px;
  padding: 8px 18px; cursor: pointer; font: inherit; }
.zh-map-hint { font-size: 12px; color: #555; margin-top: 10px !important; }

/* Fehlermeldung Kurs-Login */
.zk-fehler { width: 100%; margin: 0 0 10px; padding: 8px 12px; background: #fff; color: #b00020;
  border-left: 4px solid #b00020; font-size: 14px; }
