/*
 * Selettore lingue di Approdo Kit (markup con .approdo-lang--x, solo con le funzioni Pro).
 * In fila o a tendina, separatamente sopra e sotto i 1025 px (classi --d-* e --m-*).
 * Variabili: --als-flag (larghezza della bandiera), --als-bg, --als-color, --als-border (tendina).
 * Il markup storico (.approdo-lang senza --x) non usa questo file.
 */
.approdo-lang.approdo-lang--x { position: relative; display: inline-block; vertical-align: middle; max-width: 100%; }
.approdo-lang--x .approdo-lang__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.approdo-lang.approdo-lang--x .approdo-lang__list { list-style: none; display: flex; flex-wrap: wrap; gap: 2px; margin: 0; padding: 0; }
.approdo-lang.approdo-lang--x .approdo-lang__item { margin: 0; padding: 0; }
.approdo-lang.approdo-lang--x a, .approdo-lang--x .approdo-lang__toggle { display: inline-flex; align-items: center; gap: .45em; white-space: nowrap; }
.approdo-lang--x .approdo-lang__flag { display: block; flex: none; width: var(--als-flag, 20px); height: auto; max-width: none; margin: 0; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.approdo-lang--x .approdo-lang__label { display: inline-flex; align-items: center; gap: .45em; }
.approdo-lang--x .approdo-lang__text { display: inline-block; }
/* Lingua attuale in fila: sottolineata (sul testo, perché la voce è flessibile) o, con la sola bandiera, con un filetto. */
.approdo-lang.approdo-lang--x a[aria-current="true"] .approdo-lang__text { text-decoration: underline; text-underline-offset: 4px; }
/* Con le bandiere: niente sottolineatura, la bandiera della lingua attuale è più grande e le altre un po' più tenui. */
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] .approdo-lang__list { align-items: center; }
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] a, .approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] a[aria-current="true"],
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] a[aria-current="true"] .approdo-lang__text { text-decoration: none; }
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] .approdo-lang__item a:not([aria-current="true"]) .approdo-lang__flag { opacity: .7; transition: opacity .2s ease; }
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] .approdo-lang__item a:hover .approdo-lang__flag, .approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] .approdo-lang__item a:focus-visible .approdo-lang__flag { opacity: 1; }
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] a[aria-current="true"] .approdo-lang__flag { width: calc(var(--als-flag, 20px) * 1.35); box-shadow: 0 0 0 1px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .18); }
.approdo-lang.approdo-lang--x[class*="approdo-lang--show-flag"] a[aria-current="true"] .approdo-lang__text { font-weight: 600; }

/* Pulsante della tendina (a.approdo-lang__toggle): colori, carattere e spaziature sono quelli che tema e template
 * danno a ".approdo-lang a"; qui solo valori di base a bassa priorità (:where) e quello che serve alla tendina. */
:where(.approdo-lang--x) .approdo-lang__toggle { padding: 6px 8px; font-size: 13px; letter-spacing: .8px; line-height: 1; color: inherit; text-decoration: none; }
.approdo-lang.approdo-lang--x .approdo-lang__toggle { display: none; opacity: 1; cursor: pointer; text-decoration: none; }
.approdo-lang.approdo-lang--x .approdo-lang__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.approdo-lang--x .approdo-lang__caret { display: inline-block; flex: none; width: .42em; height: .42em; margin: 0 .15em 0 .1em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-25%) rotate(45deg); transition: transform .2s ease; }
.approdo-lang--x.is-open .approdo-lang__caret { transform: translateY(15%) rotate(-135deg); }

/* ---------- Tendina su computer (da 1025 px) ---------- */
@media (min-width: 1025px) {
	.approdo-lang.approdo-lang--d-dropdown .approdo-lang__toggle { display: inline-flex; }
	.approdo-lang.approdo-lang--d-dropdown .approdo-lang__list { display: none; position: absolute; top: calc(100% + 6px); right: 0; left: auto; z-index: 1000; flex-direction: column; flex-wrap: nowrap; gap: 0; min-width: max(100%, 6.5rem); max-width: calc(100vw - 32px); padding: 6px; background: var(--als-bg, var(--ap-menu-bg, #fff)); border: 1px solid var(--als-border, var(--ap-border, rgba(0, 0, 0, .12))); border-radius: 10px; box-shadow: 0 16px 40px -20px rgba(0, 0, 0, .4); text-align: start; }
	.approdo-lang.approdo-lang--d-dropdown.approdo-lang--start .approdo-lang__list { right: auto; left: 0; }
	.approdo-lang.approdo-lang--d-dropdown.is-open .approdo-lang__list, .approdo-lang.approdo-lang--d-dropdown:not(.is-ready):focus-within .approdo-lang__list { display: flex; animation: approdo-lang-in .16s ease-out; }
	.approdo-lang.approdo-lang--d-dropdown .approdo-lang__item.is-current { display: none; }
	.approdo-lang.approdo-lang--d-dropdown .approdo-lang__list a { display: flex; width: 100%; min-height: 40px; padding: 8px 12px; border-radius: 6px; color: var(--als-color, var(--ap-text, #1f1f1f)) !important; opacity: 1; text-decoration: none; font-size: 14px; letter-spacing: .3px; }
	.approdo-lang.approdo-lang--d-dropdown .approdo-lang__list a:hover, .approdo-lang.approdo-lang--d-dropdown .approdo-lang__list a:focus-visible { background: rgba(127, 127, 127, .14); text-decoration: none; }
}

/* ---------- Tablet e smartphone (fino a 1024 px) ---------- */
@media (max-width: 1024px) {
	nav.approdo-lang.approdo-lang--m-dropdown { overflow: visible; }
	.approdo-lang.approdo-lang--m-dropdown .approdo-lang__toggle { display: inline-flex; min-height: 44px; }
	.approdo-lang.approdo-lang--m-dropdown .approdo-lang__list { display: none; position: absolute; top: calc(100% + 6px); right: 0; left: auto; z-index: 1000; flex-direction: column; flex-wrap: nowrap; gap: 0; min-width: max(100%, 6.5rem); max-width: calc(100vw - 32px); padding: 6px; background: var(--als-bg, var(--ap-menu-bg, #fff)); border: 1px solid var(--als-border, var(--ap-border, rgba(0, 0, 0, .12))); border-radius: 10px; box-shadow: 0 16px 40px -20px rgba(0, 0, 0, .4); text-align: start; }
	.approdo-lang.approdo-lang--m-dropdown.approdo-lang--start .approdo-lang__list { right: auto; left: 0; }
	.approdo-lang.approdo-lang--m-dropdown.is-open .approdo-lang__list, .approdo-lang.approdo-lang--m-dropdown:not(.is-ready):focus-within .approdo-lang__list { display: flex; animation: approdo-lang-in .16s ease-out; }
	.approdo-lang.approdo-lang--m-dropdown .approdo-lang__item.is-current { display: none; }
	.approdo-lang.approdo-lang--m-dropdown .approdo-lang__list a { display: flex; width: 100%; min-width: 0; min-height: 44px; padding: 8px 12px; border-radius: 6px; justify-content: flex-start; color: var(--als-color, var(--ap-text, #1f1f1f)) !important; opacity: 1; text-decoration: none; font-size: 15px; letter-spacing: .3px; }
	.approdo-lang.approdo-lang--m-dropdown .approdo-lang__list a:hover, .approdo-lang.approdo-lang--m-dropdown .approdo-lang__list a:focus-visible { background: rgba(127, 127, 127, .14); text-decoration: none; }
	/* In fila: le voci vanno a capo invece di uscire dallo schermo. */
	.approdo-lang.approdo-lang--m-inline .approdo-lang__list { flex-wrap: wrap; }
}

/* Nel pannello del menu mobile del tema c'è spazio: lingue sempre in fila. */
.ap-offcanvas__lang .approdo-lang.approdo-lang--x .approdo-lang__toggle { display: none; }
.ap-offcanvas__lang .approdo-lang.approdo-lang--x .approdo-lang__list { display: flex; position: static; flex-direction: row; flex-wrap: wrap; min-width: 0; max-width: none; padding: 0; background: none; border: 0; box-shadow: none; animation: none; }
.ap-offcanvas__lang .approdo-lang.approdo-lang--x .approdo-lang__item.is-current { display: block; }
.ap-offcanvas__lang .approdo-lang.approdo-lang--x .approdo-lang__list a { width: auto; color: inherit !important; font-size: 13px; }

@keyframes approdo-lang-in { from { opacity: 0; transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) {
	.approdo-lang--x .approdo-lang__caret { transition: none; }
	.approdo-lang.approdo-lang--x .approdo-lang__list { animation: none !important; }
}
