/* =========================================================
   RESET Y VARIABLES GLOBALES
   ========================================================= */
:root {
  --azul: #3388f6;
  --azul-hover: #1f56c9;
  --noche: #0f1a2d;
  --texto: #3b4656;
  --gris-fondo: #f7f9fc;
  --gris-borde: #e5e9f0;
  --blanco: #ffffff;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Roboto', Arial, sans-serif;
  color: var(--texto);
  background: var(--blanco);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; transition: color 0.2s; }

/* Contenedores de la plantilla original */
.shell { max-width: 1200px; margin: 0 auto; padding: 0 15px; }
.range { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.cell-sm-4 { width: 33.333%; padding: 0 15px; margin-bottom: 30px; }

/* =========================================================
   HEADER UNIFICADO (UNA SOLA BARRA)
   ========================================================= */
.site-header {
  background: #ffffff;
  border-bottom: 1px solid var(--gris-borde);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 85px; /* Altura fija para mantener la proporción */
}

.site-logo img {
  height: 55px; /* Ajusta el tamaño de tu logo aquí */
  width: auto;
}

/* Navegación Escritorio */
.main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 25px; /* Espacio entre los enlaces */
  align-items: center;
}

.main-nav a {
  color: #333333;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.2px;
  transition: color 0.3s ease;
}

.main-nav a:hover {
  color: var(--azul);
}

/* Botón Móvil (Oculto en Escritorio) */
.menu-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 28px;
  cursor: pointer;
  color: #333333;
}

/* =========================================================
   RESPONSIVE (Móviles y Tablets)
   ========================================================= */
@media (max-width: 991px) {
  .header-inner {
    height: 70px;
    padding: 0 15px;
  }

  .site-logo img {
    height: 45px;
  }

  /* Mostrar botón hamburguesa */
  .menu-toggle {
    display: block;
  }

  /* Ocultar menú por defecto en móvil */
  .main-nav {
    display: none; 
    position: absolute;
    top: 70px; /* Justo debajo del header */
    left: 0;
    width: 100%;
    background: #ffffff;
    border-bottom: 1px solid var(--gris-borde);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
  }

  /* Clase que activa el JavaScript para mostrar el menú */
  .main-nav.active {
    display: block;
  }

  .main-nav ul {
    flex-direction: column;
    gap: 0;
  }

  .main-nav li {
    width: 100%;
    border-bottom: 1px solid #f1f3f5;
  }

  .main-nav a {
    display: block;
    padding: 15px 20px;
    font-size: 15px;
  }
  
  /* Footer responsive */
  .cell-sm-4 { width: 100%; text-align: center; }
  .page-footer .brand img { margin: 0 auto 20px; }
}

/* =========================================================
   FOOTER CORPORATIVO
   ========================================================= */
.page-footer { background: var(--noche); color: #cfd8e3; padding: 60px 0 20px; margin-top: 0; }
.page-footer h4 { color: #fff; font-size: 18px; margin-bottom: 20px; font-weight: 600; }
.page-footer p, .page-footer address, .page-footer a { color: #cfd8e3; font-size: 14px; line-height: 1.7; font-style: normal; }
.page-footer a:hover { color: var(--azul); }
.page-footer ul { list-style: none; padding: 0; margin: 0; }
.page-footer .rights { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; margin-top: 20px; text-align: center; font-size: 13px; }
.page-footer .brand img { max-width: 180px; margin-bottom: 20px; }