/*
 * Las reglas llevan .av-lang delante para ganar al <button> y al <a> del tema y del
 * kit, sin alcanzar la especificidad de los controles del panel.
 */

.av-lang {
  position: relative;
  display: inline-block;
  font-size: 14px;
  line-height: 1.4;
}

/* Tipografía heredada del contenedor, estados incluidos: el kit la cambia en :hover */
.av-lang .av-lang__boton,
.av-lang .av-lang__boton:hover,
.av-lang .av-lang__boton:focus,
.av-lang .av-lang__opcion,
.av-lang .av-lang__opcion:hover,
.av-lang .av-lang__opcion:focus {
  font: inherit;
  text-decoration: none;
}

/* BOTÓN */
.av-lang .av-lang__boton {
  display: inline-flex;
  align-items: center;
  /* Bandera y texto a la izquierda; la flecha al otro extremo con su margin auto */
  justify-content: flex-start;
  gap: 8px;
  appearance: none;
  border: none;
  background-color: #ffffff;
  color: #1a2b49;
  padding: 8px 14px;
  cursor: pointer;
  border-radius: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.av-lang .av-lang__boton:hover,
.av-lang .av-lang__boton:focus {
  background-color: #f4f4f4;
  color: #1a2b49;
}

/* Un solo idioma: es un rótulo. Sin pointer-events, :hover no casa nunca */
.av-lang--unico .av-lang__boton {
  pointer-events: none;
}

.av-lang--unico {
  cursor: default;
}

/* LISTA DESPLEGABLE */
.av-lang__lista {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 999;
  min-width: 100%;
  margin: 6px 0 0;
  /* Sin relleno vertical: dejaría una franja sobre la primera y la última opción */
  padding: 0;
  list-style: none;
  background-color: #ffffff;
  border-radius: 0;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  overflow: hidden;
}

.av-lang .av-lang__opcion {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 8px 14px;
  color: #1a2b49;
  text-align: left;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.av-lang .av-lang__opcion:hover,
.av-lang .av-lang__opcion:focus {
  background-color: #f4f4f4;
  color: #1a2b49;
}

/* BANDERA */
.av-lang__bandera {
  display: block;
  width: 18px;
  height: auto;
  flex-shrink: 0;
}

/* CHEVRON */
.av-lang__flecha {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  transition: transform 0.25s ease, opacity 0.2s ease;
  opacity: 0.7;
}

/* 1em: el control de tamaño va por font-size */
.av-lang__flecha svg {
  display: block;
  width: 1em;
  height: 1em;
}

.av-lang__boton:hover .av-lang__flecha {
  opacity: 1;
}

.av-lang__boton[aria-expanded="true"] .av-lang__flecha {
  transform: rotate(180deg);
}

/* MARCADOR DEL EDITOR: solo se ve dentro de Elementor */
.av-lang--marcador {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px dashed #c3cbd6;
  border-radius: 6px;
  color: #6b7688;
  font-size: 13px;
}

.av-lang--marcador .av-lang__icono {
  display: inline-flex;
  font-size: 18px;
  line-height: 1;
}

.av-lang--marcador .av-lang__icono svg {
  display: block;
  width: 1em;
  height: 1em;
}

/* --------------------------------------------------------------------------
   FILA DE BANDERAS
   Todas a la vista. No hay botón ni desplegable, así que la lista deja de estar
   posicionada y pasa a ser la caja visible.
   -------------------------------------------------------------------------- */

/* La caja ocupa el contenedor entero, como el widget en desplegable. El nav base es
   inline-block y se encogería al ancho de las banderas */
.av-lang--fila {
  display: block;
  width: 100%;
}

.av-lang--fila .av-lang__lista {
  position: static;
  display: flex;
  flex-direction: row;
  /* Sin envolver: el contenedor de Elementor puede ser estrecho, y con wrap las
     banderas se iban apilando en vertical, que es justo lo contrario de una fila */
  flex-wrap: nowrap;
  align-items: center;
  /* Dónde se colocan dentro de la caja lo decide el control de alineación */
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.av-lang--fila .av-lang__lista > li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Sin el relleno del desplegable: ahí la separación entre banderas la marca el
   padding y no el control de espaciado, que es lo que se está tocando */
.av-lang--fila .av-lang__opcion {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 0;
  background: none;
}

.av-lang--fila .av-lang__opcion:hover,
.av-lang--fila .av-lang__opcion:focus {
  background: none;
}

/* El idioma actual no es un enlace: sin cursor de mano */
.av-lang--fila .av-lang__opcion--actual {
  cursor: default;
}
