/* EHNES – globale Helfer & Mega-Menü-Animationen für GeWiS.
   Bewusst minimal gehalten: Layout/Spacing/Farben werden in Elementor gesteuert.
   Hier nur das, was Elementor nicht ab Werk kann (z. B. weiche Mega-Menü-Einblendung). */

:root {
	--ehnes-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Sanftes Ein-/Ausblenden von Elementor-Pro Dropdown/Mega-Menüs. */
.ehnes-megamenu .elementor-nav-menu--dropdown,
.ehnes-megamenu .elementor-menu-toggle + .elementor-nav-menu__container {
	transition: opacity 0.35s var(--ehnes-ease), transform 0.35s var(--ehnes-ease);
}

/* Lange Wörter in Überschriften umbrechen statt horizontal überlaufen
   (verhindert z. B. dass „METALLFERTIGUNG" @44px die Seite breiter macht). */
.ehnes-boxen__title,
.ehnes-werte__head-text,
.ehnes-mag__title {
	overflow-wrap: break-word;
	word-break: break-word;
}
/* Allgemeine Überschriften nur weich umbrechen (keine Wort-Trennung mitten im Wort). */
.elementor-heading-title,
.ehnes-hero__title {
	overflow-wrap: break-word;
}

/* Footer-Menü: Hover-Strich nur unter dem Text (nicht volle Spaltenbreite). */
.ehnes-fmenu .elementor-nav-menu .elementor-item {
	display: inline-block !important;
}
/* Strichstärke max. 1px. */
.ehnes-fmenu .elementor-item::before,
.ehnes-fmenu .elementor-item::after {
	height: 1px !important;
}

/* To-Top-Icon im Footer-Foto. */
.ehnes-to-top { cursor: pointer; }
.ehnes-to-top .elementor-icon { transition: transform 0.25s var(--ehnes-ease); }
.ehnes-to-top:hover .elementor-icon { transform: translateY(-3px); }

/* Eintritts-Animation für Mega-Menü-Panels, per .ehnes-reveal angestoßen (siehe ehnes.js). */
.ehnes-reveal {
	opacity: 0;
	transform: translateY(12px);
}
.ehnes-reveal.is-visible {
	opacity: 1;
	transform: none;
	transition: opacity 0.5s var(--ehnes-ease), transform 0.5s var(--ehnes-ease);
}

/* ===== Container-Slider (native Slides) ===== */
.ehnes-slider { position: relative; overflow: hidden; }
.ehnes-slider .ehnes-slide {
	position: absolute; inset: 0;
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 0.7s var(--ehnes-ease);
}
.ehnes-slider .ehnes-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
/* Im Elementor-Editor alle Slides sichtbar gestapelt zum Bearbeiten */
body.elementor-editor-active .ehnes-slider .ehnes-slide {
	position: relative !important; inset: auto !important;
	opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
}
.ehnes-slider__arrow {
	position: absolute; bottom: 24px; z-index: 6; width: 46px; height: 46px;
	border: none; border-radius: 5px; background: rgba(255,255,255,0.15);
	color: #fff; font-size: 22px; line-height: 1; cursor: pointer; transition: background 0.2s;
}
.ehnes-slider__arrow:hover { background: rgba(255,255,255,0.32); }
.ehnes-slider__arrow--prev { left: 24px; }
.ehnes-slider__arrow--next { right: 24px; }
.ehnes-slider__dots {
	position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
	z-index: 6; display: flex; gap: 8px;
}
.ehnes-slider__dot {
	width: 10px; height: 10px; border-radius: 50%; border: none; padding: 0;
	background: rgba(255,255,255,0.45); cursor: pointer; transition: all 0.2s;
}
.ehnes-slider__dot.is-active { background: #fff; width: 26px; border-radius: 5px; }

/* Slide: native Gradient-Ebene (Container) liegt über dem Bild/Video, Inhalt darüber */
.ehnes-slide__grad { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ehnes-slide__content { position: relative; z-index: 1; width: 100%; }
.ehnes-hero-graphic img { display: block; }

/* Slide-Inhalt: Text + Grafik nebeneinander (Flex robust per Klasse) */
.ehnes-slide__text { flex: 1 1 auto; max-width: 620px; min-width: 0; }
.ehnes-slide__graphic { flex: 0 1 auto !important; align-self: center; max-width: 48%; display: flex; justify-content: center; align-items: center; }
.ehnes-slide__graphic img { max-width: 100%; height: auto; }
@media (max-width: 900px) {
	.ehnes-slide__content { flex-direction: column; align-items: flex-start; }
	.ehnes-slide__text { max-width: 100%; }
	.ehnes-slide__graphic { display: none; }
}
