/* =========================================
   FORMULÁRIO DE CONTATO
   ========================================= */
.contact-form-section{
  padding:0 0 110px;
  background:var(--cream);
}
.form-card{
  max-width:760px;
  margin:0 auto;
  background:var(--white);
  border-radius:18px;
  padding:48px;
  box-shadow:0 10px 40px rgba(20,40,25,.08);
}

.form-group{
  margin-bottom:20px;
  position:relative;
}
.form-group label{
  display:block;
  font-size:14px;
  color:var(--forest-800);
  margin-bottom:8px;
  font-weight:600;
}
.form-group .required{color:var(--color-error);}

.form-group input,
.form-group textarea{
  width:100%;
  padding:13px 16px;
  border:1px solid #d8ddd3;
  border-radius:var(--raio-borda);
  font-family:var(--fonte-corpo);
  font-size:14px;
  color:var(--text-dark);
  background:var(--white);
  transition:border-color var(--duracao-rapida) var(--ease-base), box-shadow var(--duracao-rapida) var(--ease-base);
}
.form-group textarea{resize:vertical;min-height:110px;}

/* --- estado: focus --- */
.form-group input:focus,
.form-group textarea:focus{
  outline:none;
  border-color:var(--green-accent);
  box-shadow:0 0 0 3px rgba(168,236,124,.35);
}

/* --- estado: error --- */
.form-group.has-error input,
.form-group.has-error textarea{
  border-color:var(--color-error);
  background:var(--color-error-bg);
}
.form-group .field-error{
  display:none;
  color:var(--color-error);
  font-size:12.5px;
  margin-top:6px;
}
.form-group.has-error .field-error{display:block;}

/* --- estado: success (campo validado) --- */
.form-group.is-valid input,
.form-group.is-valid textarea{
  border-color:var(--green-accent-dark);
}

/* --- estado: loading (botão enviando) --- */
.btn-submit{
  position:relative;
  min-width:160px;
}
.btn-submit .spinner{
  display:none;
  width:16px;height:16px;
  border:2px solid rgba(18,42,28,.35);
  border-top-color:var(--forest-900);
  border-radius:50%;
  animation:spz-spin .7s linear infinite;
}
.btn-submit.is-loading .spinner{display:inline-block;}
.btn-submit.is-loading .btn-label{opacity:.6;}

/* --- estado: enviado (mensagem de sucesso do formulário) --- */
.form-feedback{
  display:none;
  align-items:center;
  gap:10px;
  padding:16px 18px;
  border-radius:var(--raio-borda);
  font-size:14px;
  margin-top:20px;
}
.form-feedback svg{width:20px;height:20px;flex-shrink:0;}
.form-feedback.is-visible{display:flex;}
.form-feedback.success{
  background:var(--color-success-bg);
  color:var(--color-success);
}
.form-feedback.error{
  background:var(--color-error-bg);
  color:var(--color-error);
}

.form-card.is-sent form{display:none;}
