:root {
  --azul-cbo: #234c92;
  --gris-claro: #f8f9fa;
  --gris-medio: #6c757d;
  --gris-oscuro: #323e48;
  --blanco: #fff;
}

body {
  background: var(--gris-claro);
  color: var(--gris-oscuro);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Navbar */
.navbar {
  background-color: var(--blanco);
  border-bottom: 2px solid var(--azul-cbo);
}

.navbar-brand img {
  max-height: 50px;
}

.nav-link {
  color: var(--azul-cbo);
  font-weight: 600;
  transition: color 0.3s;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--gris-medio);
}

.sitios-img {
  object-fit: contain;
  height: 60px;
  width: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

h2, h3, h4, h5 {
  color: var(--azul-cbo);
  font-weight: 700;
}
h2 { font-size: 2.1rem; }
h3 { font-size: 1.35rem; margin: 1.2em 0 0.6em 0; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1.08rem; }
.title { margin-bottom: 1rem; color: var(--azul-cbo); font-weight: 700; }

.ratio {
  margin: 0 auto 1.9em auto;
  border-radius: 14px;
}

.img-fluid { border-radius: 12px; }
hr { border-color: #234c9222; margin: 2em 0; }
.ratio { border-radius: 12px; box-shadow: 0 2px 16px rgba(35,76,146,0.05);}

/* Footer */
footer {
  background: var(--blanco);
  color: var(--gris-oscuro);
  border-top: 2.5px solid var(--azul-cbo);
  padding: 1.7rem 0 1rem 0;
  font-size: 1rem;
}
footer a {
  color: var(--azul-cbo);
  text-decoration: none;
}
footer a:hover { text-decoration: underline; color: #1d4075; }
footer address, footer p, footer ul {
  color: var(--gris-medio);
  font-size: 1.03rem;
}

@media (max-width: 720px) {
  .logito, .navbar-brand img {
    height: 46px;
    max-width: 82px;
  }

  .sitios-img {
    height: 38px;
  }

  .ratio {
    max-width: 99vw;
  }
}

.festival-img {
  max-width: 99vw;
  width: 100%;
  border-radius: 18px;
}

