/* ============================================================
   SECCIÓN: FORMULARIO DE CONTACTO — estilos
   Variables (ver _base/variables-base.css):
     --blanco, --primario, --secundario, --border-radius,
     --transition-base, --z-modal
   Los selectores BEM van completos: el nesting nativo NO concatena
   `&__caja` (la regla se perdía en silencio).
   ============================================================ */

/* Lightbox: overlay a pantalla completa, oculto por defecto */
.formulario-contacto {
  position: fixed;
  inset: 0;
  display: none;
  color: var(--blanco);
  background-color: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: var(--z-modal);
  animation: form-aparecer 0.4s ease;

  /* Estado abierto (clase que pone el JS) */
  &.activo {
    display: block;
  }
}

.formulario-contacto__cerrar {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 2rem;
  line-height: 1;
  color: var(--blanco);
  background-color: transparent;
  border: none;
  cursor: pointer;
  z-index: 1;
  transition: transform var(--transition-base);

  &:hover {
    transform: scale(1.1);
  }
}

/* Caja con scroll que contiene el formulario */
.formulario-contacto__caja {
  width: 60vw;
  max-width: 640px;
  height: 80vh;
  margin: 3rem auto;
  padding: 2rem;
  overflow-y: auto;
  border-radius: var(--border-radius);
  box-shadow: 1rem 1rem 3rem #111, -1rem -1rem 3rem rgba(233, 233, 233, 0.15);

  @media (max-width: 875px) {
    width: 95%;
  }
}

/* --- El formulario en sí --- */
.formulario {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;

  & label {
    margin-top: 0.6rem;
    font-weight: 600;
  }

  & input[type="text"],
  & input[type="email"],
  & input[type="tel"],
  & textarea {
    width: 100%;
    padding: 0.5rem;
    margin: 0.25rem 0;
    border: none;
    border-radius: 4px;
    box-sizing: border-box;
    font: inherit;
  }

  & textarea {
    resize: vertical;
  }

  /* Botón de envío */
  & .enviar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 1rem;
    padding: 0.6rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--blanco);
    background-color: var(--secundario);
    border: 1px solid var(--blanco);
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: all 0.4s ease;

    &:hover {
      color: var(--secundario);
      background-color: var(--blanco);
      border-color: var(--secundario);
    }

    &:disabled {
      opacity: 0.6;
      cursor: progress;
    }
  }
}

/* Aviso de privacidad (respeta los saltos de línea del texto legal) */
.formulario__privacidad {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  white-space: pre-line;
}

/* Mensaje de respuesta (éxito/error). Lo muestra/oculta el JS. */
.formulario__respuesta {
  display: none;
  margin: 0.75rem 0;
  padding: 0.6rem;
  border-radius: 5px;

  &.ok    { display: block; color: #155724; background: #d4edda; border: 1px solid #c3e6cb; }
  &.error { display: block; color: #721c24; background: #f8d7da; border: 1px solid #f5c6cb; }
}

@keyframes form-aparecer {
  from { opacity: 0; }
  to   { opacity: 1; }
}
