/*
 * AIGUPP Mobile Menu Height Fix
 * Version 1.0.0
 *
 * Obiettivo:
 * - eliminare height/max-height che troncano il pannello mobile;
 * - evitare overflow:hidden sui wrapper antenati del menu;
 * - consentire lo scorrimento verticale del menu quando supera il viewport;
 * - mantenere il menu sopra al contenuto della pagina.
 */

@media (max-width: 1024px) {
	/* Wrapper che il JS individua come antenati del pannello aperto. */
	.aigupp-menu-ancestor-open {
		overflow: visible !important;
		overflow-x: visible !important;
		overflow-y: visible !important;
		max-height: none !important;
	}

	/* Pannello mobile individuato dal JS. */
	.aigupp-mobile-menu-expanded {
		height: auto !important;
		min-height: 0 !important;
		max-height: calc(100dvh - var(--aigupp-menu-top, 0px)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		visibility: visible !important;
		opacity: 1 !important;
		z-index: 999999 !important;
	}

	/*
	 * Copertura preventiva per i principali pattern WordPress/theme.
	 * Le regole diventano importanti soprattutto quando il menu è "open/toggled".
	 */
	.main-navigation.toggled,
	.main-navigation.toggled .menu,
	.main-navigation.toggled .nav-menu,
	.site-navigation.toggled,
	.site-navigation.toggled .menu,
	.site-navigation.toggled .nav-menu,
	.mobile-navigation.is-open,
	.mobile-navigation.open,
	.mobile-menu.is-open,
	.mobile-menu.open,
	.navbar-collapse.show,
	.navbar-collapse.in,
	.wp-block-navigation__responsive-container.is-menu-open {
		height: auto !important;
		min-height: 0 !important;
		max-height: calc(100dvh - var(--aigupp-menu-top, 0px)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		z-index: 999999 !important;
	}

	/* Gutenberg Navigation block: quando aperto deve usare realmente il viewport. */
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		width: 100vw !important;
		max-width: 100vw !important;
		max-height: 100dvh !important;
	}

	/* Evita clipping dovuto ai wrapper più comuni dell'header. */
	body.aigupp-mobile-menu-open .site-header,
	body.aigupp-mobile-menu-open .header,
	body.aigupp-mobile-menu-open .header-wrapper,
	body.aigupp-mobile-menu-open .header-inner,
	body.aigupp-mobile-menu-open .header-navigation,
	body.aigupp-mobile-menu-open .navigation-wrapper,
	body.aigupp-mobile-menu-open .site-navigation,
	body.aigupp-mobile-menu-open .main-navigation {
		overflow: visible !important;
		max-height: none !important;
	}

	/* I sottomenu aperti non devono ereditare limiti verticali. */
	body.aigupp-mobile-menu-open .sub-menu,
	body.aigupp-mobile-menu-open .children,
	body.aigupp-mobile-menu-open [aria-expanded="true"] + ul,
	body.aigupp-mobile-menu-open [aria-expanded="true"] ~ ul {
		max-height: none !important;
		overflow: visible !important;
	}
}
