/* ─── VALIDAÇÃO E FEEDBACK — AD Fama Friburgo ───────────────────────── */

/* Campos com erro */
.cf-group input.cf-error,
.cf-group textarea.cf-error {
  border-color: rgba(253,52,45,.7) !important;
  background: rgba(253,52,45,.06) !important;
  box-shadow: 0 0 0 3px rgba(253,52,45,.12);
  animation: cf-shake .35s ease;
}

/* Campos válidos */
.cf-group input.cf-ok,
.cf-group textarea.cf-ok {
  border-color: rgba(34,197,94,.55) !important;
  background: rgba(34,197,94,.04) !important;
}

/* Mensagem de erro inline */
.cf-error-msg {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 7px;
  font-size: 12px;
  font-weight: 500;
  color: #ff6b6b;
}

/* ── Feedback global ── */
.cf-feedback {
  display: none;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 22px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 24px;
  line-height: 1.6;
  animation: cf-slidein .35s ease;
}

.cf-feedback-icon {
  font-size: 22px;
  flex-shrink: 0;
  margin-top: 1px;
}

/* Sucesso */
.cf-feedback-ok {
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.35);
  color: #4ade80;
}
.cf-feedback-ok .cf-feedback-title { color: #4ade80; font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.cf-feedback-ok .cf-feedback-sub   { color: rgba(74,222,128,.75); font-size: 13px; }

/* Erro */
.cf-feedback-err {
  background: rgba(253,52,45,.10);
  border: 1px solid rgba(253,52,45,.30);
  color: #ff7070;
}
.cf-feedback-err .cf-feedback-title { color: #ff7070; font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.cf-feedback-err .cf-feedback-sub   { color: rgba(255,112,112,.75); font-size: 13px; }

/* Contador de caracteres */
.cf-char-row { display:flex; justify-content:flex-end; margin-top:6px; }
#char-counter { font-size:11px; color:var(--muted); transition:color .2s; }

/* Honeypot */
.cf-honeypot { display:none!important; position:absolute!important; left:-9999px!important; }

/* Asterisco obrigatório */
.cf-required { color:var(--fire); margin-left:3px; }

/* Transições dos inputs */
.cf-group input, .cf-group textarea {
  transition: border-color .2s, background .2s, box-shadow .2s !important;
}

/* Botão loading */
.cf-submit:disabled { cursor: not-allowed; }

/* Animações */
@keyframes cf-shake {
  0%,100% { transform: translateX(0); }
  20%      { transform: translateX(-7px); }
  40%      { transform: translateX(7px); }
  60%      { transform: translateX(-4px); }
  80%      { transform: translateX(4px); }
}
@keyframes cf-slidein {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes cf-spin {
  to { transform: rotate(360deg); }
}
.cf-spin { display:inline-block; animation: cf-spin .7s linear infinite; }
