.footer {
  background-color: #e0e7f3;
  margin: 0;
  padding: 0;
}

.contenedor__footer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: auto;
  margin: 2em;
  gap: 1.5em;
  justify-items: center;
  align-items: flex-start;
}

.footer__box {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  min-height: auto;
  justify-content: center;
  align-items: stretch;
  gap: 1rem;
}

.contenedor__titulo {
  font-weight: bold;
  font-size: 1.125rem;
  margin: 0;
  color: #1a1a1a;
}

.footer .contenedor__titulo {
  display: flex;
  justify-content: flex-start;
  gap: 1.5rem;
}

footer .contenedor__titulo h3 {
  margin: 0;
}

.footer__list {
  list-style: none;
  padding: 0;
}

.footer__list li {
  margin-bottom: 0.8em;
}

.footer__link {
  text-decoration: none;
  color: #111;
  font-size: 1rem;
  transition: text-decoration 0.2s, color 0.2s;
}

.footer__link:hover {
  text-decoration: underline;
  color: #0a47a6;
}

/* Logo footer */
.footer__box--logo {
  justify-content: center;
  align-items: center;
}

.logo__footer {
  width: 40%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer__copyright {
  margin-top: 2em;
  text-align: center;
  font-size: 0.95rem;
  color: #555;
  margin-bottom: clamp(0.5rem, 3dvh, 1.5rem);
}

/* Responsive: tablet y smartphone */
@media screen and (min-width: 767px) and (max-width: 1023px),
  screen and (max-width: 767px) {
  .contenedor__footer {
    justify-items: start;
    align-items: start;
  }

  .footer__box {
    justify-content: flex-start;
    align-items: flex-start;
  }

  .logo__footer {
    width: 50%;
  }
  /* Logo footer */
  .footer__box--logo {
    justify-content: center;
    align-items: center;
  }
}
