/* ============================================================
   MIO - Página principal (réplica estática)
   Paleta: azul corporativo #005C9A · azul activo #005A87
           azul hover #2A84B1 · texto menú #C3DFED
           dorado buscador #f1cf30 · dorado rótulos #ffde00
   Tipografía base: Arial (sustituto métrico de "Arimo", ver D-05)
   ============================================================ */

/* ---------- Base ---------- */
* { box-sizing: border-box; }

body.pagina {
  margin: 0;
  background: #005C9A;
  color: #333;
  font-family: Arial, "Liberation Sans", sans-serif;
  font-size: 13px;
  line-height: 1.5;
}

a { color: #005C9A; text-decoration: none; }
a:hover { text-decoration: underline; }
img { border: 0; max-width: 100%; }

/* Contenedor central de 980px reutilizado por cabecera, menú y pie */
.cabecera__contenedor,
.menu-principal__contenedor,
.contenido__area,
.pie__contenedor {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 10px;
}
.menu-principal__contenedor { padding: 0; }

/* ============================================================
   CABECERA
   ============================================================ */
.cabecera { background: #005C9A; }

.cabecera__contenedor {
  position: relative;
  height: 79px;
  padding: 0;
  display: flex;
  align-items: center;
  background: url("../assets/img/header.jpg") no-repeat left center;
}

.cabecera__logo {
  display: block;
  width: 210px;
  height: 79px;
  flex: 0 0 210px;
}
.cabecera__logo span { position: absolute; left: -9999px; }

.cabecera__acciones {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 14px;
}

/* Redes sociales */
.redes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 6px;
}
/* Cada imagen ya incluye el icono y su rótulo (p. ej. "/metrocali_mio") */
.redes__enlace { display: block; }
.redes__icono { display: block; width: 76px; height: auto; }

/* Buscador (D-03) */
.buscador { display: flex; align-items: center; }
.buscador__etiqueta { position: absolute; left: -9999px; }
.buscador__campo {
  width: 180px;
  height: 26px;
  border: none;
  background: #f1cf30;
  color: #7a6a10;
  padding: 3px 6px;
  font-size: 13px;
}
.buscador__boton {
  height: 26px;
  margin-left: 6px;
  border: 1px solid #333;
  background: #333;
  color: #fff;
  font-weight: bold;
  padding: 2px 10px;
  cursor: pointer;
}

/* ============================================================
   MENÚ PRINCIPAL
   ============================================================ */
.menu-principal { background: #005C9A; border-top: 1px solid #2A84B1; }

.menu-principal__lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
}
.menu-principal__item { position: relative; }

.menu-principal__enlace {
  display: block;
  padding: 8px 11px;
  color: #C3DFED;
  font-size: 12px;
  font-weight: bold;
  line-height: normal;
  white-space: nowrap;
  border-left: 1px solid #2A84B1;
  border-right: 1px solid #005A87;
}
.menu-principal__enlace:hover { color: #fff; background: #2A84B1; text-decoration: none; }
.menu-principal__enlace--activo { background: #005A87; color: #fff; }

.menu-principal__icono { vertical-align: middle; margin-right: 5px; }

/* Submenús desplegables */
.menu-principal__submenu {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: -9999px;
  top: 100%;
  z-index: 99;
  width: 230px;
  background: #005A87;
  border: 1px solid #2A84B1;
}
.menu-principal__item--con-hijos:hover .menu-principal__submenu { left: 0; }
.menu-principal__submenu li { border-top: 1px solid #2A84B1; }
.menu-principal__submenu a {
  display: block;
  padding: 7px 15px;
  color: #C3DFED;
  font-weight: normal;
}
.menu-principal__submenu a:hover { background: #2A84B1; color: #fff; text-decoration: none; }

/* ============================================================
   CONTENIDO (dos columnas sobre fondo azul con marca de agua)
   ============================================================ */
.contenido {
  background: rgb(0, 92, 154) url("../assets/img/fondo.png") repeat-x bottom;
}
.contenido__area {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: #fff;
  padding: 15px 20px;
}
.contenido__cuerpo { flex: 1 1 auto; min-width: 0; }
.contenido__lateral { flex: 0 0 270px; }

/* ---------- Noticias ---------- */
.noticias__titulo {
  margin: 0 0 8px;
  padding: 0 0 8px;
  font-size: 16px;
  font-weight: bold;
  color: #333;
  text-transform: uppercase;
  border-bottom: 1px dotted #bbb;
}
/* D-01: carrusel de noticias (iframe externo en vivo a www.utryt.com.co).
   El fondo azul se mantiene como color de carga, igual que el del iframe. */
.noticias__carrusel {
  display: block;
  width: 100%;
  height: 450px;
  border: 0;
  background: rgb(0, 92, 154);
}

/* ---------- Botonera ---------- */
.botonera {
  width: 100%;
  max-width: 468px;
  margin: 15px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.botonera__boton {
  position: relative;
  display: block;
  flex: 0 1 calc((100% - 12px) / 3);
  min-width: 0;
}
.botonera__boton--ancho { flex-basis: 100%; }
.botonera__imagen { display: block; width: 100%; height: auto; }

/* Hover: la imagen amarilla se superpone y reemplaza a la azul (swap del original) */
.botonera__imagen--hover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}
.botonera__boton:hover .botonera__imagen--hover { opacity: 1; }

.botonera__rotulo {
  position: absolute;
  z-index: 2;
  top: 6px;
  left: 10px;
  max-width: 80%;
  color: #ffde00;
  font-family: Impact, "Haettenschweiler", "Arial Narrow Bold", sans-serif;
  font-size: 20px;
  line-height: 1;
  text-shadow: -1px 0 #000, 0 1px #000, 1px 0 #000, 0 -1px #000;
}
.botonera__rotulo--grande {
  top: 10px;
  left: 0;
  right: 0;
  max-width: none;
  text-align: center;
  font-size: 40px;
}

/* ============================================================
   MÓDULOS COLUMNA DERECHA
   ============================================================ */
.modulo { margin-bottom: 14px; }
.modulo__caja {
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
  padding: 10px;
  text-align: center;
}
.modulo__imagen { display: block; max-width: 100%; height: auto; margin: 0 auto; }

/* D-02: "Tu saldo" (iframe externo en vivo a www.utryt.com.co) */
.modulo__saldo {
  display: block;
  width: 100%;
  height: 650px;
  border: 0;
  background: #fff;
}

/* Listas de enlaces (información al pasajero / preguntas frecuentes) */
.lista-enlaces { list-style: none; margin: 0; padding: 0; text-align: left; }
.lista-enlaces li { padding: 4px 0; border-bottom: 1px solid #eee; }

/* Accesos rápidos */
.accesos { list-style: none; margin: 0; padding: 0; text-align: left; }
.accesos__enlace { display: flex; align-items: center; gap: 10px; padding: 6px 0; color: #005C9A; }
.accesos__enlace img { flex: 0 0 auto; }
.accesos__enlace span { font-weight: bold; }

/* Módulos plegables: ocultos en escritorio/tablet */
.modulo--plegable { display: none; }
.modulo__barra { display: none; }
.modulo__contenido-plegado { display: none; }

/* ============================================================
   PIE
   ============================================================ */
.pie { background: rgb(0, 92, 154); padding: 20px 0; text-align: center; }

.pie__logos {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
}
.pie__logos li { display: inline-block; margin: 0 8px; vertical-align: middle; }

.pie__menu { list-style: none; margin: 0; padding: 0; }
.pie__menu li { display: inline; line-height: 25px; }
.pie__menu a { color: #fff; }
.pie__separador { color: #fff; padding: 0 2px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Tablet: el contenido ocupa el ancho disponible, sigue en dos columnas.
   El menú se comprime para mantenerse en una sola fila. */
@media (max-width: 1000px) {
  .contenido__area { max-width: none; }
}
@media (max-width: 900px) and (min-width: 768px) {
  .menu-principal__enlace { font-size: 10px; padding: 8px 7px; }
}

/* Móvil: una sola columna, menú y cabecera condensados,
   módulos ocultos se muestran como barras plegadas */
@media (max-width: 767px) {
  .cabecera__contenedor {
    height: auto;
    flex-wrap: wrap;
    padding: 6px 10px;
    background-size: auto 40px;
  }
  .cabecera__logo { height: 40px; flex-basis: 120px; width: 120px; }
  .cabecera__acciones { gap: 8px; }
  .redes__icono { width: 44px; }
  .buscador__campo { width: 110px; }

  .menu-principal__lista { flex-wrap: nowrap; overflow: hidden; }
  .menu-principal__enlace { padding: 6px 4px; font-size: 9px; }
  .menu-principal__submenu { display: none; }

  .contenido__area { display: block; padding: 10px; }
  .contenido__lateral { margin-top: 15px; }

  .modulo--plegable { display: block; }
  .modulo--plegable .modulo__caja { display: none; }
  .modulo__barra {
    display: block;
    background: #005C9A;
    color: #fff;
    font-weight: bold;
    text-transform: uppercase;
    padding: 10px 12px;
    border-radius: 3px;
  }
  .modulo__barra::after { content: "\25BE"; float: right; }

  .botonera__rotulo { font-size: 14px; top: 4px; left: 6px; }
  .botonera__rotulo--grande { font-size: 30px; }
}
