/*
 * Menu mobile a schermo intero (popup Pro .cfl-menu-popup, tools/popup_menu.py).
 * Solo ciò che i controlli di Elementor non coprono: altezza reale dello schermo e scroll interno,
 * sottomenu a fisarmonica (pulsanti creati da cfl-popup-menu.js), focus visibile.
 */

/* Sotto gli altri popup: la ricerca aperta da "Cerca" compare sopra il menu */
.elementor-popup-modal.cfl-menu-popup {
	z-index: 9990;
}

/* Altezza dello schermo visibile (barre del browser mobile) e scroll interno in orizzontale */
.cfl-menu-popup .dialog-message {
	height: 100vh;
	height: 100dvh;
	max-height: 100dvh;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.cfl-menu-popup .dialog-message > .elementor {
	width: 100%;
}

/* ---------- Voci con sottomenu ---------- */
.cfl-menu-popup .cfl-menu-nav .elementor-nav-menu li.menu-item-has-children {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.cfl-menu-popup .cfl-menu-nav .elementor-nav-menu .sub-menu {
	position: static !important;
	flex-basis: 100%;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 0 8px !important;
	padding: 0;
	border-left: 2px solid var(--e-global-color-secondary);
	box-shadow: none;
}

.cfl-menu-popup .cfl-menu-nav .elementor-nav-menu .sub-menu:not([hidden]) {
	display: block;
}

.cfl-menu-popup .cfl-menu-nav .elementor-nav-menu .sub-menu[hidden] {
	display: none !important;
}

/* Pulsanti dei sottomenu (selettori doppi: il reset dei <button> di Hello ha bordi, colori e raggi) */
.cfl-menu-popup .cfl-menu-nav button.cfl-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0 10px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--e-global-color-text);
	font: inherit;
	line-height: inherit;
	cursor: pointer;
}

/* Voce senza pagina (Iniziative): il pulsante ha lo stile delle voci (classe elementor-item) */
.cfl-menu-popup .cfl-menu-nav button.cfl-submenu-toggle.cfl-submenu-toggle--title {
	justify-content: flex-start;
	padding-left: 0;
	padding-right: 0;
	font-family: var(--e-global-typography-cflfaq-font-family), sans-serif;
	font-size: var(--e-global-typography-cflfaq-font-size);
	font-weight: var(--e-global-typography-cflfaq-font-weight);
	line-height: var(--e-global-typography-cflfaq-line-height);
	text-align: left;
}

.cfl-menu-popup .cfl-menu-nav button.cfl-submenu-toggle:hover,
.cfl-menu-popup .cfl-menu-nav button.cfl-submenu-toggle:focus {
	background: transparent;
	color: var(--e-global-color-accent);
}

.cfl-menu-popup .cfl-menu-nav .cfl-submenu-toggle .sub-arrow {
	display: inline-flex;
	padding: 0;
	margin: 0;
}

.cfl-menu-popup .cfl-menu-nav .cfl-submenu-toggle .sub-arrow svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
	transition: transform .2s ease;
}

.cfl-menu-popup .cfl-menu-nav .cfl-submenu-toggle[aria-expanded="true"] .sub-arrow svg {
	transform: rotate(180deg);
}

/* ---------- Focus visibile su tutti i comandi del menu ---------- */
.cfl-menu-popup a:focus-visible,
.cfl-menu-popup button:focus-visible,
.cfl-menu-toggle .elementor-button:focus-visible {
	outline: 2px solid var(--e-global-color-primary);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.cfl-menu-popup .cfl-menu-nav .cfl-submenu-toggle .sub-arrow svg {
		transition: none;
	}
}

/* "Cerca" e "Accedi" in maiuscolo: con il font globale del Kit il controllo "Maiuscole" del widget non si applica */
.cfl-menu-popup .cfl-menu-search .elementor-button,
.cfl-menu-popup .cfl-menu-login .elementor-button {
	text-transform: uppercase;
}
