/* css/contact.css
   Visual states for the contact form: loading, success, error.
   Designed to match the existing Indiquad palette/tokens. */

.form-submit[disabled] {
  cursor: not-allowed;
  opacity: 0.85;
}

.form-submit.is-loading {
  position: relative;
  color: transparent !important;
}
.form-submit.is-loading::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 16px; height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: contactSpin .7s linear infinite;
}
@keyframes contactSpin {
  to { transform: rotate(360deg); }
}

.form-submit.is-success {
  background: #15803d !important;
}

.form-submit.is-error {
  background: #B91C1C !important;
}

.form-status {
  margin-top: 12px;
  font-size: 13.5px;
  line-height: 1.5;
  border-radius: 7px;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .25s ease, opacity .2s ease, padding .25s ease, margin .25s ease;
}
.form-status.visible {
  max-height: 200px;
  opacity: 1;
  padding: 12px 14px;
  margin-top: 12px;
}
.form-status.success {
  background: rgba(21,128,61,.08);
  color: #15803d;
  border: 1px solid rgba(21,128,61,.25);
}
.form-status.error {
  background: rgba(185,28,28,.08);
  color: #B91C1C;
  border: 1px solid rgba(185,28,28,.25);
}

.form-input.invalid,
.form-select.invalid,
.form-textarea.invalid {
  border-color: #B91C1C !important;
}

/* Honeypot field — hidden from real users, visible to most bots that
   ignore CSS/visibility cues */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}
