/* Genotyp Header/Footer rendered by Elementor Pro Theme Builder. */

.sggw-elementor-theme-location,
.sggw-elementor-theme-location > .elementor,
.sggw-elementor-theme-location > .elementor > .elementor-element,
.sggw-elementor-site-header-shell,
.sggw-site-footer {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: none;
}

.sggw-elementor-theme-location--header {
	container: sggw-header-shell / inline-size;
}

/*
 * Keep the whole Header above positioned page content (e.g. shortcut tiles).
 * Native Theme Builder previews need not have the bridge's location class;
 * when the bridge wraps a preview, stack only the outer location wrapper.
 * Do not trap the open mobile overlay in this desktop stacking context.
 */
:is(.sggw-elementor-theme-location--header, .elementor-location-header):not(:where(.sggw-elementor-theme-location--header *)):where(:has(.sggw-site-header)):not(
	:where(:has(.wp-block-navigation__responsive-container.is-menu-open))
) {
	position: relative;
	z-index: 10;
}

.sggw-elementor-site-header-shell,
.sggw-site-header,
.sggw-site-footer {
	color: var(--sggw-text);
}

.sggw-site-header {
	position: relative;
}

.sggw-site-header__inner {
	box-sizing: border-box;
	container: sggw-site-header / inline-size;
	min-block-size: calc(var(--wp--preset--spacing--70) + var(--wp--preset--spacing--70));
}

.sggw-elementor-site-header__brand {
	box-sizing: border-box;
	flex: 0 1 200px;
	inline-size: 200px;
	max-inline-size: 100%;
	min-inline-size: 0;
}

.sggw-elementor-site-header__brand > .elementor-widget-theme-site-logo {
	inline-size: 180px;
}

.sggw-site-header__inner .elementor-widget-theme-site-logo {
	flex: 0 1 auto;
	max-inline-size: 100%;
	min-inline-size: 0;
}

.sggw-elementor-site-logo,
.sggw-elementor-site-logo__media,
.sggw-elementor-site-logo .elementor-widget-container,
.sggw-elementor-site-logo a,
.sggw-elementor-site-logo img,
.sggw-elementor-site-logo__media a,
.sggw-elementor-site-logo__media img {
	max-inline-size: 100%;
}

.sggw-elementor-site-logo__media,
.sggw-elementor-site-logo .elementor-widget-container,
.sggw-elementor-site-logo a,
.sggw-elementor-site-logo img,
.sggw-elementor-site-logo__media a,
.sggw-elementor-site-logo__media img {
	display: block;
}

.sggw-elementor-site-logo img,
.sggw-elementor-site-logo__media img {
	block-size: auto;
	aspect-ratio: var(--sggw-site-logo-aspect-ratio, auto);
}

.sggw-elementor-site-logo a:focus-visible,
.sggw-elementor-site-logo__media a:focus-visible {
	border-radius: var(--wp--custom--radius--small);
	outline: var(--wp--custom--line--focus-ring-width) solid var(--sggw-line-focus);
	outline-offset: var(--wp--custom--line--focus-ring-offset);
}

@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
	.sggw-elementor-site-logo__media.has-sggw-svg-site-logo {
		position: relative;
		inline-size: fit-content;
	}

	.sggw-elementor-site-logo__media.has-sggw-svg-site-logo::after {
		content: "";
		position: absolute;
		inset: 0;
		background-color: var(--sggw-text);
		-webkit-mask-image: var(--sggw-site-logo-mask-image);
		-webkit-mask-mode: alpha;
		-webkit-mask-position: center;
		-webkit-mask-repeat: no-repeat;
		-webkit-mask-size: contain;
		mask-image: var(--sggw-site-logo-mask-image);
		mask-mode: alpha;
		mask-position: center;
		mask-repeat: no-repeat;
		mask-size: contain;
		pointer-events: none;
	}

	.sggw-elementor-site-logo__media.has-sggw-svg-site-logo img {
		opacity: 0;
	}
}

.elementor .sggw-site-header__navigation-slot {
	--width: auto;
	align-self: stretch;
	flex: 1 1 auto;
	flex-wrap: nowrap;
	min-inline-size: 0;
}

.sggw-site-header__navigation-slot > .elementor-widget-sggw-primary-menu,
.sggw-site-header__navigation-slot > .elementor-widget-nav-menu.sggw-menu-recipe-sggw {
	align-self: stretch;
	flex: 1 1 auto;
	inline-size: auto;
	min-inline-size: 0;
}

.elementor-widget-sggw-primary-menu > .elementor-widget-container,
.elementor-widget-nav-menu.sggw-menu-recipe-sggw > .elementor-widget-container,
.sggw-elementor-site-navigation,
.sggw-elementor-site-navigation > .wp-block-navigation {
	inline-size: 100%;
	min-inline-size: 0;
}

.sggw-elementor-site-navigation--primary,
.sggw-elementor-site-navigation--primary > .wp-block-navigation,
.sggw-elementor-site-navigation--primary > .wp-block-navigation > .wp-block-navigation__container,
.sggw-elementor-site-navigation--primary > .wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open),
.sggw-elementor-site-navigation--primary > .wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) :where(.wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content),
.sggw-elementor-site-navigation--primary > .wp-block-navigation > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
	block-size: 100%;
}

.sggw-elementor-site-navigation--shortcuts > .wp-block-navigation {
	justify-content: flex-end;
}

/* Keep the block Header untouched; only this widget's submenu/panel links
 * gain a hover underline. The top level and column headings are excluded.
 */
@media (hover: hover) {
	.elementor .sggw-elementor-site-navigation :where(.wp-block-navigation__submenu-container) :is(.wp-block-navigation-item__content, .sggw-navigation-panel__link):where(a[href]:hover) {
		text-decoration-line: underline;
		text-decoration-thickness: var(--sggw-link-decoration-thickness, .08em);
		text-underline-offset: var(--sggw-link-underline-offset, .18em);
	}
}

/*
 * Elementor can replace the Navigation markup after the theme's module has
 * initialized. Avoid exposing Core's narrow submenu fallback during the one
 * frame in which the replacement Megamenu receives its Header geometry.
 */
.sggw-elementor-site-navigation--editor-preview
	.wp-block-navigation
	.sggw-section-menu-item--wide:not(.has-sggw-megamenu-geometry)
	> .sggw-section-menu-item__panel {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

.elementor .sggw-elementor-site-header__actions {
	--width: fit-content;
	flex: 0 0 auto;
	min-inline-size: 0;
}

.sggw-elementor-site-search {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: var(--wp--preset--spacing--70);
	min-block-size: var(--wp--preset--spacing--70);
}

.sggw-elementor-site-search__icon {
	display: inline-block;
	font-family: "Phosphor SGGW", sans-serif;
	font-size: var(--sggw-icon-size-medium, 1.5rem);
	font-style: normal;
	line-height: 1;
}

.sggw-elementor-theme-widget-placeholder {
	margin: 0;
	padding: var(--wp--preset--spacing--20);
	border: 1px dashed var(--sggw-line-functional);
	color: var(--sggw-text-muted);
}

.elementor .sggw-site-footer__main {
	box-sizing: border-box;
	padding-block: var(--padding-top) var(--padding-bottom);
}
.elementor .sggw-site-footer__main:where(.e-con-boxed) {
	/* Boxed puts the native padding on e-con-inner, not on both layers. */
	padding-block: 0;
}

.elementor .sggw-site-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	min-inline-size: 0;
}

.elementor .sggw-site-footer__grid > .e-con {
	inline-size: 100%;
	min-inline-size: 0;
}

.sggw-site-footer__brand,
.sggw-site-footer__column {
	display: grid;
	align-content: start;
	gap: var(--wp--preset--spacing--30);
	min-inline-size: 0;
}

.sggw-site-footer__brand {
	gap: var(--wp--preset--spacing--40);
}

.sggw-site-footer__brand > *,
.sggw-site-footer__column > * {
	margin-block: 0;
}

.sggw-site-footer__copy p {
	max-inline-size: 36ch;
}

.sggw-site-footer__column-heading :is(.elementor-heading-title, p),
.sggw-site-footer__copyright p,
.sggw-site-footer__copy p {
	margin: 0;
}

.elementor .sggw-site-footer__bottom {
	box-sizing: border-box;
	padding-block: var(--padding-top) var(--padding-bottom);
	border-block-start: var(--wp--custom--line--width) solid var(--sggw-line-decorative);
}
.elementor .sggw-site-footer__bottom:where(.e-con-boxed) { padding-block: 0; }

.sggw-site-footer__copyright {
	text-align: center;
}

@container sggw-header-shell (inline-size < 64em) {
	.sggw-site-header__shortcuts {
		display: none !important;
	}
}

@container sggw-site-header (inline-size < 64em) {
	.sggw-site-header__navigation-slot .elementor-widget-sggw-color-scheme-toggle {
		display: none;
	}

	.sggw-site-header .wp-block-navigation.has-sggw-overlay-breakpoint .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.sggw-site-header .wp-block-navigation.has-sggw-overlay-breakpoint .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
}

@media (width < 64rem) {
	.sggw-site-header__shortcuts {
		display: none !important;
	}

	.sggw-site-header__navigation-slot .elementor-widget-sggw-color-scheme-toggle {
		display: none;
	}

	.sggw-site-header .wp-block-navigation.has-sggw-overlay-breakpoint .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.sggw-site-header .wp-block-navigation.has-sggw-overlay-breakpoint .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
}

@media (min-width: 48rem) {
	.elementor .sggw-site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.elementor .sggw-site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 64rem) {
	.elementor .sggw-site-footer__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.elementor .sggw-site-footer__brand {
		grid-column: auto;
	}
}

@media (forced-colors: active) {
	.sggw-elementor-site-logo a:focus-visible,
	.sggw-elementor-site-logo__media a:focus-visible {
		outline-color: Highlight;
	}

	.sggw-elementor-site-logo__media.has-sggw-svg-site-logo::after {
		background-color: CanvasText;
		forced-color-adjust: none;
	}

	.sggw-elementor-site-search__icon {
		color: CanvasText;
		forced-color-adjust: none;
	}
}
