/* Sticky am aeusseren Wrapper: #menu-container selbst kann nicht kleben,
   weil sein Elternelement exakt so hoch ist wie es selbst. */
.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 100;
}

/* Bis 600px scrollt die WP-Adminleiste mit weg, darueber ist sie fixiert. */
@media (min-width: 601px) {
	body.admin-bar .elementor-location-header {
		top: var(--wp-admin--admin-bar--height, 32px);
	}
}

#menu-container {
	transition: background-color .3s ease;
}

body:has(.hero-transparent-menu):not(.is-scrolled) #menu-container {
	background-color: transparent;
}

/* Schlaegt das alte Seiten-CSS auf Home, Radsport und Laufen.
   Kann weg, sobald diese drei Bloecke entfernt sind. */
body.is-scrolled #menu-container {
	background-color: var(--Black, #000);
}

/* scrollbar-gutter: Beim Oeffnen des Off-Canvas setzt Elementor overflow:hidden,
   die Scrollbar verschwindet und das Layout springt um die halbe Scrollbar-
   Breite. stable haelt den Platz dauerhaft frei. */
html {
	scroll-padding-top: var(--header-height, 80px);
	scrollbar-gutter: stable;
}

/* Der freigehaltene Scrollbar-Streifen zeigt den html-Hintergrund. Bei offenem
   Menue in der Farbe des Off-Canvas-Panels. Das Panel ist rgba(0,0,0,.94)
   (fest im Widget, nicht --Black) ueber der abgedunkelten Seite, der Streifen
   kann nur eine feste Farbe: #0e0e0e = Panel ueber hellem Inhalt. Aendert sich
   die Panel-Deckkraft in Elementor, diesen Wert nachziehen. */
html:has(body.e-off-canvas__no-scroll) {
	background: #0e0e0e;
}

/* Off-Canvas offen: Seite weichzeichnen. Fixiert am Viewport statt am Hero,
   damit es in jeder Scrollposition greift. z-index 99 liegt unter dem Header
   (100), Logo und Menue bleiben scharf. backdrop-filter statt filter, weil
   filter() an den Kanten ins Transparente ausfranst. */
@media (min-width: 768px) {
	body::after {
		content: "";
		position: fixed;
		inset: 0;
		z-index: 99;
		pointer-events: none;
		opacity: 0;
		-webkit-backdrop-filter: blur(4px) brightness(.9) saturate(.5);
		backdrop-filter: blur(4px) brightness(.9) saturate(.5);
		transition: opacity .25s ease;
	}

	body.e-off-canvas__no-scroll::after {
		opacity: 1;
	}
}
