/**
 * Logicoo Multilingual — stile del selettore di lingua.
 *
 * Tre punti di uscita, stesso markup interno:
 *  - shortcode / funzione cm_language_switcher()  => <ul class="cm-lang-switcher">
 *  - voce trascinata in Aspetto > Menu             => <li><ul class="cm-lang-switcher--menu">
 *  - aggiunta automatica al menu                   => <li class="cm-lang-switcher-item"> (una per lingua)
 * In tutti i casi il contenuto del link è <span class="cm-lang-inner"> con
 * bandiera (img.cm-lang-flag) ed etichetta (span.cm-lang-label).
 *
 * PERSONALIZZAZIONE (variabili CSS, impostabili anche da Impostazioni):
 *   --cm-lang-gap          spazio tra le lingue nel selettore autonomo (default 10px)
 *   --cm-lang-menu-gap     spazio tra le lingue dentro un menu (default: quello del tema)
 *   --cm-lang-flag-width   larghezza delle bandiere (default 20px); l'altezza segue le proporzioni
 *
 * PERCHÉ ALCUNE REGOLE HANNO !important
 * Temi e builder (Salient/WPBakery inclusi) stilano liste, link e immagini
 * dei widget/footer con selettori molto specifici (id, ".widget li",
 * "#footer-outer img"...). Senza !important, quei selettori vincono sulle
 * nostre regole e producono: padding-top sul secondo elemento (es.
 * ".widget li:not(:first-child)"), bandiere a dimensione naturale, link
 * "a blocco" con l'etichetta sotto la bandiera. Il !important è limitato alle
 * sole proprietà di layout del selettore (mai colori o font del tema).
 */

/* ---------- Selettore autonomo (shortcode, footer, widget, segnaposto nel menu) ---------- */

/*
 * "body ul" + classe doppia: Salient sotto i 1000px forza
 * ".col.centered-text ul { display: block !important }" (specificità 0,2,1),
 * che annullerebbe il flex e quindi il gap tra le lingue.
 */
.cm-lang-switcher,
body ul.cm-lang-switcher.cm-lang-switcher {
	display: inline-flex !important;
}

.cm-lang-switcher {
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--cm-lang-gap, 10px);
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1;
}

.cm-lang-switcher > .cm-lang-item {
	display: inline-flex !important;
	align-items: center;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	list-style: none !important;
	line-height: 1;
}

/* Separatori/puntini che alcuni temi aggiungono a ogni voce di lista. */
.cm-lang-switcher > .cm-lang-item::before,
.cm-lang-switcher > .cm-lang-item::after {
	content: none !important;
	display: none !important;
}

.cm-lang-switcher > .cm-lang-item > a {
	display: inline-flex !important;
	align-items: center;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	text-decoration: none;
	opacity: 0.75;
	transition: opacity 0.2s ease;
}

.cm-lang-switcher > .cm-lang-item > a:hover,
.cm-lang-switcher > .cm-lang-item--current > a {
	opacity: 1;
}

/* Difesa da <br>/<p> inseriti da filtri sul contenuto (wpautop) dentro il selettore. */
.cm-lang-switcher br,
.cm-lang-switcher p:empty {
	display: none !important;
}

/* Nel menu: la spaziatura tra le lingue è regolabile, non fissa. */
.cm-lang-switcher--menu {
	gap: var(--cm-lang-menu-gap, var(--cm-lang-gap, 10px));
}

/* ---------- Voci di menu virtuali (una per lingua) ---------- */

li.cm-lang-switcher-item {
	list-style: none;
}

li.cm-lang-switcher-item > a {
	opacity: 0.75;
	transition: opacity 0.2s ease;
}

li.cm-lang-switcher-item > a:hover,
li.cm-lang-switcher-item.cm-lang-item--current > a {
	opacity: 1;
}

/* ---------- Contenuto del link: bandiera + etichetta, in riga ---------- */

.cm-lang-inner {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 6px;
	vertical-align: middle;
	line-height: 1;
	white-space: nowrap;
}

.cm-lang-inner .cm-lang-flag,
.cm-lang-switcher img.cm-lang-flag,
li.cm-lang-switcher-item img.cm-lang-flag {
	display: block !important;
	flex: 0 0 auto;
	width: var(--cm-lang-flag-width, 20px) !important;
	height: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 2px;
	vertical-align: middle;
}

.cm-lang-inner .cm-lang-label {
	display: inline-block;
	font-size: 13px;
	line-height: 1;
	text-transform: uppercase;
}

/* ---------- Schermi touch e piccoli: aree di tocco di ~44px ---------- */

/*
 * Su desktop il selettore resta compatto. Al tocco ogni lingua diventa
 * un'area alta almeno 44px (min-height e padding laterale sul link), con bandiera ed etichetta più
 * grandi: la distanza visiva tra le lingue nasce dal padding, quindi il
 * gap tra le voci si riduce per restare su una riga a 375px (colonna centrata di Salient: 259px).
 */
@media (pointer: coarse), (max-width: 767px) {
	.cm-lang-switcher {
		gap: 0 var(--cm-lang-touch-gap, 6px);
	}

	.cm-lang-switcher > .cm-lang-item > a {
		box-sizing: border-box;
		min-height: 44px;
		padding: 0 4px !important;
	}

	.cm-lang-switcher .cm-lang-inner {
		gap: 8px;
	}

	.cm-lang-switcher img.cm-lang-flag {
		width: var(--cm-lang-touch-flag-width, 24px) !important;
	}

	.cm-lang-switcher .cm-lang-inner .cm-lang-label {
		font-size: 15px;
	}
}
