/**
 * Traductor Web Indgenio Branding - Estilos del selector de idiomas.
 *
 * Paleta Indgenio:
 *   --indgenio-primary: #6C4BF4 (violeta corporativo)
 *   --indgenio-accent:  #FFB020 (ámbar)
 *   --indgenio-ink:     #14142B (tinta)
 */

:root {
	--indgenio-primary: #6c4bf4;
	--indgenio-primary-dark: #5536d8;
	--indgenio-accent: #ffb020;
	--indgenio-ink: #14142b;
	--indgenio-muted: #6b7280;
	--indgenio-surface: #ffffff;
	--indgenio-border: #e6e6f0;
	--indgenio-shadow-sm: 0 1px 2px rgba(20, 20, 43, .08);
	--indgenio-shadow-md: 0 8px 24px rgba(20, 20, 43, .14);
	--indgenio-shadow-lg: 0 18px 48px rgba(108, 75, 244, .22);
	--indgenio-radius: 14px;
	--indgenio-radius-sm: 8px;
	--indgenio-transition: .18s cubic-bezier(.4, 0, .2, 1);

	/* Personalización avanzada (V4). */
	--indgenio-active-text: #ffffff;
	--indgenio-gap: 8px;
	--indgenio-font-size: 14px;
	--indgenio-font-weight: 600;
	--indgenio-font-family: inherit;
	--indgenio-border-width: 1px;
	--indgenio-shadow-pick: 0 8px 24px rgba(20, 20, 43, .16);
	--indgenio-flag-w: 26px;
	--indgenio-flag-h: 18px;
	--indgenio-edge-inset: 24px;
}

/* ==========================================================================
   1. Banderas SVG
   ========================================================================== */

.indgenio-flag {
	display: inline-block;
	width: var(--indgenio-flag-w, 26px);
	height: var(--indgenio-flag-h, 18px);
	border-radius: 3px;
	overflow: hidden;
	flex: 0 0 auto;
	box-shadow: 0 0 0 1px rgba(20, 20, 43, .12);
	vertical-align: middle;
	background: #fff;
}

/* ==========================================================================
   2. Selector flotante (esquina inferior derecha)
   ========================================================================== */

.indgenio-lang-switcher {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 99999;
	font-family: inherit;
}

.indgenio-lang-switcher__box {
	position: relative;
	margin: 0;
}

/* Botón circular principal */
.indgenio-lang-switcher__box > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px 10px 12px;
	background: linear-gradient(135deg, var(--indgenio-primary) 0%, var(--indgenio-primary-dark) 100%);
	color: #fff;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .25);
	box-shadow: var(--indgenio-shadow-md);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	transition: transform var(--indgenio-transition), box-shadow var(--indgenio-transition);
	user-select: none;
}

.indgenio-lang-switcher__box > summary::-webkit-details-marker {
	display: none;
}

.indgenio-lang-switcher__box > summary:hover {
	transform: translateY(-2px);
	box-shadow: var(--indgenio-shadow-lg);
}

.indgenio-lang-switcher__box > summary:focus-visible {
	outline: 3px solid var(--indgenio-accent);
	outline-offset: 3px;
}

.indgenio-lang-switcher__box[open] > summary {
	border-radius: var(--indgenio-radius, 999px) var(--indgenio-radius, 999px) 6px 6px;
	background: var(--indgenio-primary-dark);
}

.indgenio-lang-switcher__globe {
	display: inline-flex;
	width: 18px;
	height: 18px;
	opacity: .9;
}

.indgenio-lang-switcher__globe svg {
	width: 18px;
	height: 18px;
}

.indgenio-lang-switcher__current {
	display: inline-flex;
	line-height: 0;
}

.indgenio-lang-switcher__current .indgenio-flag {
	width: 22px;
	height: 15px;
	box-shadow: 0 0 0 1.5px rgba(255, 255, 255, .75);
}

.indgenio-lang-switcher__code {
	font-variant: small-caps;
}

/* Panel desplegable */
.indgenio-lang-switcher__panel {
	position: absolute;
	right: 0;
	bottom: calc(100% + 14px);
	width: 232px;
	background: var(--indgenio-surface);
	border: 1px solid var(--indgenio-border);
	border-radius: var(--indgenio-radius);
	box-shadow: var(--indgenio-shadow-md);
	padding: 10px;
	animation: indgenio-pop .16s ease-out both;
	transform-origin: bottom right;
}

@keyframes indgenio-pop {
	from {
		opacity: 0;
		transform: translateY(8px) scale(.96);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/* V6: cierre suave. El script añade `.is-indgenio-closing` al <details> y
 * sólo retira el atributo `open` cuando termina la animación, de modo que
 * el panel se desvanece (opacidad + desplazamiento) en lugar de saltar. */
@keyframes indgenio-pop-out {
	from {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
	to {
		opacity: 0;
		transform: translateY(8px) scale(.96);
	}
}

.indgenio-lang-switcher__box.is-indgenio-closing > .indgenio-lang-switcher__panel,
.indgenio-lang-shortcode__box.is-indgenio-closing > .indgenio-lang-shortcode__panel {
	animation: indgenio-pop-out .18s ease-in both;
	pointer-events: none;
}

/* V6: "puente" invisible entre el botón y el panel flotante (hay 14px de
 * separación). Cubre ese hueco para que el ratón no pierda el hover al
 * cruzarlo y el desplegable no se cierre accidentalmente. */
.indgenio-lang-switcher__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -14px;
	height: 14px;
}

.indgenio-lang-switcher__title {
	margin: 4px 8px 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--indgenio-muted);
}

.indgenio-lang-switcher__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.indgenio-lang-switcher__item + .indgenio-lang-switcher__item {
	margin-top: 2px;
}

.indgenio-lang-switcher__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border-radius: var(--indgenio-radius-sm);
	color: var(--indgenio-ink);
	text-decoration: none;
	font-size: 14px;
	line-height: 1.2;
	transition: background var(--indgenio-transition), color var(--indgenio-transition);
}

.indgenio-lang-switcher__link:hover,
.indgenio-lang-switcher__link:focus-visible {
	background: rgba(108, 75, 244, .09);
	color: var(--indgenio-primary-dark);
	text-decoration: none;
}

.indgenio-lang-switcher__link:focus-visible {
	outline: 2px solid var(--indgenio-primary);
	outline-offset: -2px;
}

.indgenio-lang-switcher__label {
	flex: 1;
}

.indgenio-lang-switcher__check {
	display: none;
	width: 16px;
	height: 16px;
	color: var(--indgenio-primary);
}

.indgenio-lang-switcher__check svg {
	width: 16px;
	height: 16px;
}

.indgenio-lang-switcher__link.is-current {
	background: var(--indgenio-primary);
	color: #fff;
	font-weight: 600;
}

.indgenio-lang-switcher__link.is-current:hover,
.indgenio-lang-switcher__link.is-current:focus-visible {
	background: var(--indgenio-primary-dark);
	color: #fff;
}

.indgenio-lang-switcher__link.is-current .indgenio-lang-switcher__check {
	display: inline-flex;
}

.indgenio-lang-switcher__branding {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 8px 0 2px;
	padding-top: 8px;
	border-top: 1px dashed var(--indgenio-border);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--indgenio-muted);
}

.indgenio-lang-switcher__branding span {
	color: var(--indgenio-accent);
}

/* ==========================================================================
   3. Elemento de menú del tema
   ========================================================================== */

li.indgenio-menu-lang {
	position: relative;
}

li.indgenio-menu-lang > .indgenio-menu-lang__toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: transparent;
	border: 0;
	padding: 8px 6px;
	margin: 0;
	color: inherit;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	cursor: pointer;
	border-radius: var(--indgenio-radius-sm);
	transition: background var(--indgenio-transition);
}

li.indgenio-menu-lang > .indgenio-menu-lang__toggle:hover,
li.indgenio-menu-lang > .indgenio-menu-lang__toggle:focus-visible {
	background: rgba(108, 75, 244, .1);
	color: var(--indgenio-primary-dark);
	outline: none;
}

li.indgenio-menu-lang > .indgenio-menu-lang__toggle:focus-visible {
	box-shadow: 0 0 0 2px var(--indgenio-primary);
}

.indgenio-menu-lang__list {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	min-width: 180px;
	margin: 6px 0 0;
	padding: 8px;
	list-style: none;
	background: var(--indgenio-surface);
	border: 1px solid var(--indgenio-border);
	border-radius: var(--indgenio-radius);
	box-shadow: var(--indgenio-shadow-md);
	z-index: 10000;
}

li.indgenio-menu-lang:hover > .indgenio-menu-lang__list,
li.indgenio-menu-lang:focus-within > .indgenio-menu-lang__list,
li.indgenio-menu-lang.is-open > .indgenio-menu-lang__list {
	display: block;
	animation: indgenio-pop .16s ease-out both;
	transform-origin: top right;
}

.indgenio-menu-lang__item + .indgenio-menu-lang__item {
	margin-top: 2px;
}

.indgenio-menu-lang__item > a {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 8px 10px;
	border-radius: var(--indgenio-radius-sm);
	color: var(--indgenio-ink);
	text-decoration: none;
	font-size: 14px;
	white-space: nowrap;
	transition: background var(--indgenio-transition), color var(--indgenio-transition);
}

.indgenio-menu-lang__item > a:hover,
.indgenio-menu-lang__item > a:focus-visible {
	background: rgba(108, 75, 244, .09);
	color: var(--indgenio-primary-dark);
	outline: none;
}

.indgenio-menu-lang__item.is-current > a {
	background: var(--indgenio-primary);
	color: #fff;
	font-weight: 600;
}

/* ==========================================================================
   4. Shortcode [indgenio_lang_switcher]
   ========================================================================== */

.indgenio-lang-shortcode {
	position: relative;
	display: inline-block;
	font-family: inherit;
}

/* --- Variante desplegable (dropdown) --- */
.indgenio-lang-shortcode__box {
	position: relative;
	margin: 0;
}

.indgenio-lang-shortcode__box > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	background: var(--indgenio-surface);
	color: var(--indgenio-ink);
	border: 1px solid var(--indgenio-border);
	border-radius: 999px;
	box-shadow: var(--indgenio-shadow-sm);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	transition: border-color var(--indgenio-transition), box-shadow var(--indgenio-transition);
	user-select: none;
}

.indgenio-lang-shortcode__box > summary::-webkit-details-marker {
	display: none;
}

.indgenio-lang-shortcode__box > summary:hover {
	border-color: var(--indgenio-primary);
	box-shadow: var(--indgenio-shadow-md);
}

.indgenio-lang-shortcode__box > summary:focus-visible {
	outline: 3px solid var(--indgenio-accent);
	outline-offset: 2px;
}

.indgenio-lang-shortcode__flag {
	display: inline-flex;
	line-height: 0;
}

.indgenio-lang-shortcode__flag .indgenio-flag {
	width: 22px;
	height: 15px;
}

.indgenio-lang-shortcode__code {
	font-variant: small-caps;
}

.indgenio-lang-shortcode__caret {
	font-size: 10px;
	color: var(--indgenio-muted);
	transition: transform var(--indgenio-transition);
}

.indgenio-lang-shortcode__box[open] > summary .indgenio-lang-shortcode__caret {
	transform: rotate(180deg);
}

.indgenio-lang-shortcode__title {
	margin: 0;
	padding: 14px 16px 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--indgenio-muted);
}

/* --- Panel flotante del shortcode (V6) ---
 * La lista, el título y el branding viven dentro de un contenedor __panel
 * que se posiciona de forma absoluta: el desplegable flota por encima del
 * contenido y no desplaza ni modifica la estructura de la página. */
.indgenio-lang-shortcode__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: 232px;
	z-index: 10000;
	background: var(--indgenio-surface);
	border: 1px solid var(--indgenio-border);
	border-radius: var(--indgenio-radius);
	box-shadow: var(--indgenio-shadow-md);
	animation: indgenio-pop .16s ease-out both;
	transform-origin: top right;
}

/* Puente invisible: cubre el hueco de 10px entre botón y panel para que
 * el hover no se interrumpa al cruzarlo (evita cierres accidentales). */
.indgenio-lang-shortcode__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -10px;
	height: 10px;
}

.indgenio-lang-shortcode__panel > .indgenio-lang-shortcode__title {
	border-bottom: 1px dashed var(--indgenio-border);
	padding: 12px 16px 8px;
}

.indgenio-lang-shortcode__box:not([open]) > .indgenio-lang-shortcode__title,
.indgenio-lang-shortcode__box:not([open]) > .indgenio-lang-shortcode__list {
	display: none;
}

/* --- Listas (dropdown abierto e inline) --- */
.indgenio-lang-shortcode__list {
	list-style: none;
	margin: 0;
	padding: 8px;
	background: var(--indgenio-surface);
	border: 1px solid var(--indgenio-border);
	border-radius: var(--indgenio-radius);
	box-shadow: var(--indgenio-shadow-md);
	animation: indgenio-pop .16s ease-out both;
	transform-origin: top right;
}

/* Dentro del panel flotante la lista no necesita borde ni fondo propios. */
.indgenio-lang-shortcode__panel > .indgenio-lang-shortcode__list {
	border: 0;
	box-shadow: none;
	border-radius: 0;
	background: transparent;
	padding: 6px 8px 8px;
	animation: none;
}

.indgenio-lang-shortcode__item + .indgenio-lang-shortcode__item {
	margin-top: 2px;
}

.indgenio-lang-shortcode__link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 10px;
	border-radius: var(--indgenio-radius-sm);
	color: var(--indgenio-ink);
	text-decoration: none;
	font-size: 14px;
	line-height: 1.2;
	transition: background var(--indgenio-transition), color var(--indgenio-transition);
}

.indgenio-lang-shortcode__link:hover,
.indgenio-lang-shortcode__link:focus-visible {
	background: rgba(108, 75, 244, .09);
	color: var(--indgenio-primary-dark);
	text-decoration: none;
}

.indgenio-lang-shortcode__link:focus-visible {
	outline: 2px solid var(--indgenio-primary);
	outline-offset: -2px;
}

.indgenio-lang-shortcode__label {
	flex: 1;
}

.indgenio-lang-shortcode__check {
	display: none;
	width: 16px;
	height: 16px;
	color: var(--indgenio-primary);
}

.indgenio-lang-shortcode__check svg {
	width: 16px;
	height: 16px;
}

.indgenio-lang-shortcode__link.is-current,
.indgenio-lang-shortcode__item.is-current > .indgenio-lang-shortcode__link {
	background: var(--indgenio-primary);
	color: #fff;
	font-weight: 600;
}

.indgenio-lang-shortcode__link.is-current:hover,
.indgenio-lang-shortcode__link.is-current:focus-visible {
	background: var(--indgenio-primary-dark);
	color: #fff;
}

.indgenio-lang-shortcode__link.is-current .indgenio-lang-shortcode__check {
	display: inline-flex;
}

/* El branding vive dentro del panel flotante: fluye al final, sin
 * posicionamiento absoluto propio. */
.indgenio-lang-shortcode__branding {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 8px 16px 12px;
	border-top: 1px dashed var(--indgenio-border);
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--indgenio-muted);
}

.indgenio-lang-shortcode__box:not([open]) > .indgenio-lang-shortcode__branding {
	display: none;
}

.indgenio-lang-shortcode__branding span {
	color: var(--indgenio-accent);
}

/* --- Variante en línea (para bloques de Elementor) --- */
.indgenio-lang-shortcode--inline {
	display: block;
	width: 100%;
}

.indgenio-lang-shortcode--inline .indgenio-lang-shortcode__nav {
	display: block;
}

.indgenio-lang-shortcode--inline .indgenio-lang-shortcode__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	padding: 6px;
	box-shadow: var(--indgenio-shadow-sm);
	animation: none;
}

.indgenio-lang-shortcode--inline .indgenio-lang-shortcode__item + .indgenio-lang-shortcode__item {
	margin-top: 0;
}

.indgenio-lang-shortcode--inline .indgenio-lang-shortcode__link {
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
}

/* ==========================================================================
   5. Adaptaciones
   ========================================================================== */

@media (max-width: 782px) {
	.indgenio-lang-switcher {
		right: 14px;
		bottom: 14px;
	}

	.indgenio-lang-switcher__panel {
		width: min(78vw, 232px);
	}

	.indgenio-lang-shortcode__panel {
		width: min(78vw, 232px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.indgenio-lang-switcher__box > summary,
	.indgenio-lang-switcher__panel,
	.indgenio-lang-shortcode__panel,
	.indgenio-lang-shortcode__box.is-indgenio-closing > .indgenio-lang-shortcode__panel,
	.indgenio-lang-switcher__box.is-indgenio-closing > .indgenio-lang-switcher__panel,
	.indgenio-menu-lang__list {
		transition: none;
		animation: none;
	}
}

/* ==========================================================================
   6. Personalización avanzada (V4)
   Las opciones del panel se inyectan como variables CSS en el propio
   contenedor (`style="--indgenio-...: valor"`), de modo que estas reglas
   genéricas se adaptan a cada configuración sin tocar el código.
   ========================================================================== */

/* --- Tipografía común --- */
.indgenio-lang-switcher,
.indgenio-lang-shortcode,
.indgenio-menu-lang {
	font-family: var(--indgenio-font-family, inherit);
	font-size: var(--indgenio-font-size, 14px);
}

.indgenio-lang-switcher__box > summary,
.indgenio-lang-shortcode__box > summary,
.indgenio-lang-switcher__link,
.indgenio-lang-shortcode__link,
.indgenio-menu-lang__toggle,
.indgenio-menu-lang__item > a {
	font-size: var(--indgenio-font-size, 14px);
	font-weight: var(--indgenio-font-weight, 600);
}

/* --- Tamaños: sólo cambian el tamaño de bandera --- */
.indgenio-size-small { --indgenio-flag-w: 20px; --indgenio-flag-h: 14px; }
.indgenio-size-medium { --indgenio-flag-w: 26px; --indgenio-flag-h: 18px; }
.indgenio-size-large { --indgenio-flag-w: 36px; --indgenio-flag-h: 25px; }

/* --- Formas --- */
.indgenio-shape-rect .indgenio-flag { border-radius: 0; }
.indgenio-shape-rounded .indgenio-flag { border-radius: 5px; }
.indgenio-shape-circle .indgenio-flag { border-radius: 50%; }
.indgenio-shape-pill .indgenio-flag { border-radius: 4px; }

.indgenio-lang-switcher__box > summary,
.indgenio-lang-shortcode__box > summary {
	border-radius: var(--indgenio-radius, 999px);
}

.indgenio-lang-switcher__link,
.indgenio-lang-shortcode__link {
	border-radius: var(--indgenio-radius-sm, 8px);
}

.indgenio-shape-circle .indgenio-lang-switcher__box > summary,
.indgenio-shape-circle .indgenio-lang-shortcode__box > summary {
	border-radius: 50%;
	padding: 10px;
}

/* --- Controles de visibilidad --- */
.indgenio-no-flags .indgenio-flag { display: none !important; }

.indgenio-no-names .indgenio-lang-switcher__label,
.indgenio-no-names .indgenio-lang-shortcode__label,
.indgenio-no-names .indgenio-lang-switcher__current-name,
.indgenio-no-names .indgenio-lang-shortcode__current-name,
.indgenio-no-names .indgenio-menu-lang__label { display: none; }

.indgenio-no-codes .indgenio-lang-switcher__code,
.indgenio-no-codes .indgenio-lang-switcher__mini-code,
.indgenio-no-codes .indgenio-lang-shortcode__code,
.indgenio-no-codes .indgenio-lang-shortcode__mini-code,
.indgenio-no-codes .indgenio-menu-lang__code,
.indgenio-no-codes .indgenio-menu-lang__mini-code { display: none; }

.indgenio-no-arrows .indgenio-lang-switcher__caret,
.indgenio-no-arrows .indgenio-lang-shortcode__caret,
.indgenio-no-arrows .indgenio-menu-lang__caret { display: none; }

.indgenio-no-border .indgenio-lang-switcher__box > summary,
.indgenio-no-border .indgenio-lang-shortcode__box > summary,
.indgenio-no-border .indgenio-lang-switcher__panel,
.indgenio-no-border .indgenio-lang-shortcode__panel,
.indgenio-no-border .indgenio-menu-lang__list { border-color: transparent; }

/* --- Bordes y sombras configurables --- */
.indgenio-lang-switcher__box > summary,
.indgenio-lang-shortcode__box > summary,
.indgenio-lang-switcher__panel,
.indgenio-lang-shortcode__panel,
.indgenio-menu-lang__list,
.indgenio-lang-switcher__list {
	border-width: var(--indgenio-border-width, 1px);
}

.indgenio-lang-switcher__box > summary,
.indgenio-lang-shortcode__box > summary,
.indgenio-lang-switcher__panel,
.indgenio-lang-shortcode__panel,
.indgenio-menu-lang__list {
	box-shadow: var(--indgenio-shadow-pick, 0 8px 24px rgba(20, 20, 43, .16));
}

.indgenio-lang-switcher__link.is-current,
.indgenio-lang-shortcode__link.is-current,
.indgenio-lang-shortcode__item.is-current > .indgenio-lang-shortcode__link,
.indgenio-menu-lang__item.is-current > a {
	color: var(--indgenio-active-text, #fff);
}

/* --- Banderas del botón: respetan el tamaño elegido --- */
.indgenio-lang-switcher__current .indgenio-flag,
.indgenio-lang-shortcode__current .indgenio-flag,
.indgenio-lang-shortcode__flag .indgenio-flag {
	width: var(--indgenio-flag-w, 26px);
	height: var(--indgenio-flag-h, 18px);
}

/* --- Código abreviado dentro del panel --- */
.indgenio-lang-switcher__mini-code,
.indgenio-lang-shortcode__mini-code {
	margin-left: auto;
	font-variant: small-caps;
	font-size: .85em;
	opacity: .6;
}

/* --- Flecha desplegable (selector independiente) --- */
.indgenio-lang-switcher__caret,
.indgenio-lang-switcher__current-name {
	display: inline-flex;
	align-items: center;
}

.indgenio-lang-switcher__caret {
	width: 14px;
	height: 14px;
	opacity: .85;
	transition: transform var(--indgenio-transition);
}

.indgenio-lang-switcher__caret svg { width: 14px; height: 14px; }

.indgenio-lang-switcher__box[open] > summary .indgenio-lang-switcher__caret {
	transform: rotate(180deg);
}

/* --- Posicionamiento del selector independiente --- */
/* Sin inserción automática ( shortcode / ninguna ): el selector fluye en el
 * sitio donde se haya colocado (cabecera, footer, bloque, Elementor...). */
.indgenio-lang-switcher.indgenio-pos-none {
	position: static;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	transform: none;
	width: 100%;
	display: flex;
	padding: 0;
	z-index: 1;
}

.indgenio-lang-switcher.indgenio-pos-floating,
.indgenio-lang-switcher.indgenio-pos-lateral {
	position: fixed;
}

.indgenio-lang-switcher.indgenio-pos-floating.indgenio-edge-right {
	right: var(--indgenio-edge-inset, 24px);
	left: auto;
}

.indgenio-lang-switcher.indgenio-pos-floating.indgenio-edge-left {
	left: var(--indgenio-edge-inset, 24px);
	right: auto;
}

.indgenio-lang-switcher.indgenio-pos-floating { bottom: var(--indgenio-edge-inset, 24px); top: auto; }
.indgenio-lang-switcher.indgenio-pos-lateral { top: 50%; bottom: auto; transform: translateY(-50%); }
.indgenio-lang-switcher.indgenio-pos-lateral.indgenio-edge-right { right: var(--indgenio-edge-inset, 24px); left: auto; }
.indgenio-lang-switcher.indgenio-pos-lateral.indgenio-edge-left { left: var(--indgenio-edge-inset, 24px); right: auto; }

.indgenio-lang-switcher.indgenio-pos-header,
.indgenio-lang-switcher.indgenio-pos-footer {
	position: static;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	transform: none;
	width: 100%;
	display: flex;
	padding: 10px 0;
	z-index: 9999;
}

.indgenio-align-left { justify-content: flex-start; text-align: left; }
.indgenio-align-center { justify-content: center; text-align: center; }
.indgenio-align-right { justify-content: flex-end; text-align: right; }

/* Panel alineado al borde izquierdo si el selector se ancla a la izquierda. */
.indgenio-edge-left .indgenio-lang-switcher__panel {
	left: 0;
	right: auto;
	transform-origin: bottom left;
}

.indgenio-edge-left .indgenio-lang-shortcode__panel {
	left: 0;
	right: auto;
	transform-origin: top left;
}

/* --- Diseño: desplegable neutro sobre el fondo --- */
.indgenio-layout-dropdown .indgenio-lang-switcher__box > summary {
	background: var(--indgenio-surface, #fff);
	color: var(--indgenio-ink, #14142b);
	border: var(--indgenio-border-width, 1px) solid var(--indgenio-border, #e6e6f0);
	box-shadow: var(--indgenio-shadow-pick, 0 8px 24px rgba(20, 20, 43, .16));
}

.indgenio-layout-dropdown .indgenio-lang-switcher__current .indgenio-flag {
	box-shadow: 0 0 0 1px rgba(20, 20, 43, .12);
}

/* --- Diseño: compacto --- */
.indgenio-layout-compact .indgenio-lang-switcher__box > summary,
.indgenio-layout-compact .indgenio-lang-shortcode__box > summary {
	padding: 6px 9px;
	gap: 6px;
	background: var(--indgenio-surface, #fff);
	color: var(--indgenio-ink, #14142b);
	border: var(--indgenio-border-width, 1px) solid var(--indgenio-border, #e6e6f0);
}

.indgenio-layout-compact .indgenio-lang-switcher__current .indgenio-flag {
	box-shadow: 0 0 0 1px rgba(20, 20, 43, .12);
}

/* --- Diseños en línea (sin desplegable) --- */
.indgenio-is-inline { display: block; width: 100%; }

/* Anclado a una esquina: el ancho lo determina el contenido. */
.indgenio-lang-switcher.indgenio-pos-floating.indgenio-is-inline,
.indgenio-lang-switcher.indgenio-pos-lateral.indgenio-is-inline { width: auto; }

.indgenio-is-inline .indgenio-lang-switcher__nav { display: block; }

.indgenio-is-inline .indgenio-lang-switcher__list,
.indgenio-is-inline .indgenio-lang-shortcode__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--indgenio-gap, 8px);
	margin: 0;
	padding: 6px;
	list-style: none;
	background: var(--indgenio-surface, #fff);
	border: var(--indgenio-border-width, 1px) solid var(--indgenio-border, #e6e6f0);
	border-radius: var(--indgenio-radius, 14px);
	box-shadow: var(--indgenio-shadow-pick, 0 8px 24px rgba(20, 20, 43, .16));
}

.indgenio-is-inline .indgenio-lang-switcher__item,
.indgenio-is-inline .indgenio-lang-shortcode__item {
	margin: 0;
}

.indgenio-is-inline .indgenio-lang-switcher__link,
.indgenio-is-inline .indgenio-lang-shortcode__link {
	padding: 8px 12px;
	border: var(--indgenio-border-width, 1px) solid transparent;
	border-radius: var(--indgenio-radius-sm, 8px);
}

.indgenio-is-inline .indgenio-lang-switcher__link:hover,
.indgenio-is-inline .indgenio-lang-shortcode__link:hover {
	background: rgba(108, 75, 244, .09);
}

/* Lista vertical. */
.indgenio-layout-vertical .indgenio-lang-switcher__list,
.indgenio-layout-vertical .indgenio-lang-shortcode__list {
	flex-direction: column;
	align-items: stretch;
}

/* Botones individuales. */
.indgenio-layout-buttons .indgenio-lang-switcher__link,
.indgenio-layout-buttons .indgenio-lang-shortcode__link {
	border-color: var(--indgenio-border, #e6e6f0);
}

/* Cuadrícula de banderas. */
.indgenio-layout-grid .indgenio-lang-switcher__list,
.indgenio-layout-grid .indgenio-lang-shortcode__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: var(--indgenio-gap, 8px);
}

.indgenio-layout-grid .indgenio-lang-switcher__link,
.indgenio-layout-grid .indgenio-lang-shortcode__link {
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	gap: 5px;
}

.indgenio-layout-grid .indgenio-lang-switcher__label,
.indgenio-layout-grid .indgenio-lang-shortcode__label {
	flex: 0 0 auto;
	font-size: calc(var(--indgenio-font-size, 14px) - 2px);
}

/* --- Elemento de menú: nuevos indicadores --- */
.indgenio-menu-lang__code,
.indgenio-menu-lang__mini-code {
	font-variant: small-caps;
	font-size: .85em;
	opacity: .85;
}

.indgenio-menu-lang__mini-code { margin-left: auto; opacity: .6; }

.indgenio-menu-lang__caret {
	display: inline-flex;
	width: 14px;
	height: 14px;
	opacity: .8;
	transition: transform var(--indgenio-transition);
}

.indgenio-menu-lang__caret svg { width: 14px; height: 14px; }

.indgenio-menu-lang.is-open .indgenio-menu-lang__caret { transform: rotate(180deg); }

.indgenio-menu-lang__list {
	border-width: var(--indgenio-border-width, 1px);
	border-radius: var(--indgenio-radius, 14px);
}

.indgenio-menu-lang__item.is-current > a {
	color: var(--indgenio-active-text, #fff);
}

@media (max-width: 782px) {
	.indgenio-lang-switcher__panel {
		width: min(78vw, 260px);
	}
}
