@charset "UTF-8";
/*
 | Ventanas modales de Términos y Política de Privacidad (login, aceptación y sucursal).
 | Todo va dentro de .modal-legal para no chocar con los estilos de cada pantalla.
 */
/*
 | Estilos del contenido de Términos y Política de Privacidad.
 | Se usan en la página pública (legal.scss) y en la ventana modal (legal-modal.scss).
 */
html.modal-legal-abierto,
html.modal-legal-abierto body {
  overflow: hidden;
}

.modal-legal {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  text-align: left;
}
.modal-legal .documento {
  color: #3f4254;
  line-height: 1.7;
}
.modal-legal .documento h1 {
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #2f3142;
  margin: 0 0 0.35rem;
}
.modal-legal .documento .meta {
  color: #6e707e;
  font-size: 0.88rem;
  margin-bottom: 1.5rem;
}
.modal-legal .documento .meta b {
  color: #f4470f;
}
.modal-legal .documento .resumen {
  background: #fff6f2;
  border-left: 4px solid #f4470f;
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  font-size: 0.95rem;
}
.modal-legal .documento h2 {
  font-size: 1.12rem;
  font-weight: 800;
  color: #2f3142;
  margin: 2rem 0 0.75rem;
  padding-top: 0.25rem;
  scroll-margin-top: 5rem;
}
.modal-legal .documento p,
.modal-legal .documento li {
  font-size: 0.95rem;
}
.modal-legal .documento p {
  margin: 0 0 0.85rem;
}
.modal-legal .documento ul {
  padding-left: 1.25rem;
  margin: 0 0 0.85rem;
}
.modal-legal .documento li {
  margin-bottom: 0.35rem;
}
.modal-legal .documento li ul {
  margin-top: 0.35rem;
}
.modal-legal .documento a {
  color: #f4470f;
}
.modal-legal .documento table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  margin: 0.75rem 0 1rem;
}
.modal-legal .documento th,
.modal-legal .documento td {
  border: 1px solid #e9ecf3;
  padding: 0.55rem 0.75rem;
  vertical-align: top;
  text-align: left;
}
.modal-legal .documento th {
  background: #fafbfd;
  font-weight: 800;
}
.modal-legal .documento .pendiente {
  background: #fff3cd;
  color: #8a6100;
  border-radius: 0.25rem;
  padding: 0 0.3rem;
  font-weight: 700;
}
@media (max-width: 640px) {
  .modal-legal .documento h1 {
    font-size: 1.5rem;
  }
  .modal-legal .documento table,
.modal-legal .documento tbody,
.modal-legal .documento tr,
.modal-legal .documento td,
.modal-legal .documento th {
    display: block;
  }
  .modal-legal .documento thead {
    display: none;
  }
  .modal-legal .documento td,
.modal-legal .documento th {
    border-top: 0;
  }
  .modal-legal .documento tr {
    border-top: 1px solid #e9ecf3;
    margin-bottom: 0.5rem;
  }
}

.modal-legal[hidden] {
  display: none;
}

.modal-legal__fondo {
  position: absolute;
  inset: 0;
  background: rgba(20, 21, 30, 0.55);
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  -webkit-animation: modal-legal-fondo 0.2s ease;
          animation: modal-legal-fondo 0.2s ease;
}

.modal-legal__caja {
  position: relative;
  width: 100%;
  max-width: 960px;
  max-height: calc(100vh - 3rem);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.25);
  overflow: hidden;
  -webkit-animation: modal-legal-caja 0.25s cubic-bezier(0.4, 0, 0.2, 1);
          animation: modal-legal-caja 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal-legal__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid #e9ecf3;
  background: linear-gradient(90deg, #fff6f2 0%, #fff 60%);
}

.modal-legal__titulo {
  font-size: 1.2rem;
  font-weight: 900;
  color: #2f3142;
}

.modal-legal__cerrar {
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 50%;
  background: #f1f2f6;
  color: #5a5c69;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.modal-legal__cerrar:hover,
.modal-legal__cerrar:focus {
  background: #f4470f;
  color: #fff;
  outline: none;
}

.modal-legal__cuerpo {
  flex: 1 1 auto;
  overflow-y: auto;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  padding: 1.5rem 2.25rem 1rem;
}

.modal-legal__cuerpo:focus {
  outline: none;
}

/* El título ya está en la cabecera de la ventana. */
.modal-legal .documento h1 {
  display: none;
}

.modal-legal__pie {
  display: flex;
  justify-content: flex-end;
  padding: 0.85rem 1.5rem;
  border-top: 1px solid #e9ecf3;
  background: #fafbfd;
}

.modal-legal__boton {
  border: 0;
  border-radius: 0.6rem;
  padding: 0.6rem 1.4rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #ff7a45 0%, #f4470f 55%, #cf3808 100%);
  box-shadow: 0 0.35rem 1rem rgba(244, 71, 15, 0.25);
  cursor: pointer;
}

@-webkit-keyframes modal-legal-fondo {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes modal-legal-fondo {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes modal-legal-caja {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes modal-legal-caja {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 640px) {
  .modal-legal {
    padding: 0.5rem;
  }

  .modal-legal__caja {
    max-height: calc(100vh - 1rem);
    border-radius: 0.75rem;
  }

  .modal-legal__cuerpo {
    padding: 1.1rem 1.1rem 0.75rem;
  }

  .modal-legal__cabecera {
    padding: 0.75rem 1rem;
  }

  .modal-legal__titulo {
    font-size: 1.05rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .modal-legal__fondo,
.modal-legal__caja {
    -webkit-animation: none;
            animation: none;
  }
}
