/* Form controls and feedback states. */
.contact-card {
  padding: 26px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.contact-card + .contact-card {
  margin-top: 14px;
}

.form-card {
  padding: 30px;
  background: #0a1726;
  border: 1px solid rgba(108, 190, 255, 0.18);
  border-radius: 28px;
  box-shadow: var(--shadow);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.field {
  display: grid;
  gap: 8px;
}

.field.full {
  grid-column: 1 / -1;
}

label {
  color: #a9bed2;
  font-size: 0.82rem;
  font-weight: 700;
}

input,
textarea,
select {
  width: 100%;
  padding: 13px 14px;
  color: #fff;
  background: #07131f;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 13px;
  outline: none;
  transition: 0.2s ease;
}

input:focus,
textarea:focus,
select:focus {
  border-color: rgba(84, 229, 255, 0.55);
  box-shadow: 0 0 0 3px rgba(84, 229, 255, 0.08);
}

textarea {
  min-height: 150px;
  resize: vertical;
}

.hp {
  position: absolute !important;
  left: -9999px !important;
}

.form-note {
  margin-top: 12px;
  color: #7f98b1;
  font-size: 0.8rem;
}

.status-message {
  display: none;
  margin-bottom: 16px;
  padding: 12px 14px;
  font-size: 0.9rem;
  border-radius: 12px;
}

.status-message.success {
  display: block;
  color: #a8f3ce;
  background: rgba(98, 230, 170, 0.1);
  border: 1px solid rgba(98, 230, 170, 0.2);
}

.status-message.error {
  display: block;
  color: #ffc0c9;
  background: rgba(255, 126, 141, 0.08);
  border: 1px solid rgba(255, 126, 141, 0.2);
}
