.contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; }
.contact-form { display: flex; flex-direction: column; gap: 18px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.field input, .field textarea {
  font-family: var(--font-body);
  font-size: 15px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1.5px solid var(--line);
  background: var(--paper);
  color: var(--ink);
}
.field input:focus, .field textarea:focus { outline: none; border-color: var(--accent); }
.field textarea { min-height: 140px; resize: vertical; }

/* Honeypot: visually hidden but present in the DOM/tab order in a way that
   only automated fillers touch (off-screen, not display:none which some
   bots skip specifically because it's a known tell). */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-msg { font-size: 14px; padding: 4px 0; min-height: 20px; }
.form-msg.ok { color: #256029; }
.form-msg.error { color: #b3261e; }

.contact-info h3 { font-size: 15px; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 8px; }
.contact-info p { font-size: 16px; color: var(--ink); }
.contact-map { margin-top: 24px; border-radius: var(--radius); overflow: hidden; }

@media (max-width: 800px) {
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
}
