/* Estilos do formulário de contato (#contact).
   Escrito à mão — o style.css é um export do Tailwind e não deve ser editado.
   Paleta do tema: primary #00040f, dimWhite #ffffffb3, acento ciano #33bbcf. */

/* Container do formulário */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 420px;
}

/* Grupo campo + label */
.contact-form__group {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.contact-form label {
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  color: #ffffffb3;
}

.contact-form label .required {
  color: #33bbcf;
}

/* Inputs e textarea */
.contact-form input,
.contact-form textarea {
  font-family: "Poppins", sans-serif;
  font-size: 15px;
  color: #ffffff;
  background-color: #11101d;
  border: 1px solid #3f3e45;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  width: 100%;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #ffffff59;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: #33bbcf;
  box-shadow: 0 0 0 2px rgba(51, 187, 207, 0.25);
}

.contact-form textarea {
  min-height: 120px;
  resize: vertical;
}

/* Estado de erro por campo (aplicado via JS) */
.contact-form input.has-error,
.contact-form textarea.has-error {
  border-color: #ff6b6b;
}

.contact-form .field-error {
  font-family: "Poppins", sans-serif;
  font-size: 12px;
  color: #ff6b6b;
  min-height: 14px;
}

/* Honeypot anti-spam: escondido de humanos, visível para bots */
.contact-form__hp {
  position: absolute;
  left: -5000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Botão de envio (reaproveita .bg-blue-gradient no HTML) */
.contact-form button[type="submit"] {
  cursor: pointer;
  border: none;
}

.contact-form button[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Mensagem de status (sucesso / erro) */
.form-status {
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  margin-top: 0.25rem;
  display: none;
}

.form-status.is-success {
  display: block;
  color: #4ade80;
}

.form-status.is-error {
  display: block;
  color: #ff6b6b;
}

/* Responsivo: em telas pequenas o formulário ocupa a largura toda */
@media (max-width: 768px) {
  .contact-form {
    max-width: 100%;
  }
}
