/* ===== Contact details + map (dark) ===== */
.contact-block { background: var(--color-ink-alt); padding: clamp(88px, 12vw, 160px) 0; }
.contact-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.5fr);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}
.contact-info-list { display: flex; flex-direction: column; gap: 30px; }
.contact-info-item dt {
  font: 500 11px/1.4 var(--font-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(247, 245, 242, 0.45);
}
.contact-info-item dd { margin: 8px 0 0; color: var(--color-paper); font-size: 18px; font-weight: 600; line-height: 1.5; }
.contact-info-item dd a { color: var(--color-paper); }
.contact-info-item dd a:hover { color: var(--color-accent); }
.contact-info-item.socials a { display: inline-flex; margin-top: 2px; font-size: 16px; font-weight: 500; }

.contact-map { border-radius: 26px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 0 18px 40px -28px rgba(16, 16, 18, 0.25); }
.contact-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ===== Form (light) ===== */
.form-block { background: var(--color-paper); padding: clamp(88px, 12vw, 160px) 0; }
.form-intro { max-width: 56ch; margin-bottom: clamp(40px, 5vw, 64px); }

.contact-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 22px 28px;
  max-width: 900px;
}
.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { color: var(--color-warm-gray); font-size: 13.5px; font-weight: 500; }
.form-field input,
.form-field textarea {
  background: rgba(16, 16, 18, 0.04);
  border: 1px solid rgba(16, 16, 18, 0.14);
  border-radius: 14px;
  padding: 14px 16px;
  color: var(--color-ink);
  font: inherit;
  font-size: 15.5px;
  transition: border-color .2s ease, background .2s ease;
}
.form-field input::placeholder,
.form-field textarea::placeholder { color: rgba(16, 16, 18, 0.35); }
.form-field input:focus,
.form-field textarea:focus { outline: none; border-color: var(--color-accent); background: #FFFFFF; }
.form-field textarea { min-height: 160px; resize: vertical; }

.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.field-error { color: #c0392b; font-size: 13px; display: none; }
.field-error.is-visible { display: block; }

.form-footer {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 8px;
}
.form-note { color: var(--color-warm-gray); font-size: 14px; }

.form-footer-action { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.captcha-inline { position: relative; display: flex; align-items: center; gap: 10px; }
.captcha-inline label { color: var(--color-warm-gray); font-size: 13.5px; font-weight: 500; white-space: nowrap; }
.captcha-inline input {
  width: 64px;
  background: rgba(16, 16, 18, 0.04);
  border: 1px solid rgba(16, 16, 18, 0.14);
  border-radius: 10px;
  padding: 10px 12px;
  color: var(--color-ink);
  font: inherit;
  font-size: 15px;
  text-align: center;
  transition: border-color .2s ease, background .2s ease;
}
.captcha-inline input:focus { outline: none; border-color: var(--color-accent); background: #FFFFFF; }
.captcha-inline .field-error {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 5px;
  white-space: nowrap;
}
.form-status {
  grid-column: 1 / -1;
  font-size: 15px;
  line-height: 1.5;
  padding: 14px 16px;
  border-radius: 12px;
  display: none;
}
.form-status.is-visible { display: block; }
.form-status.is-success { background: rgba(70, 180, 110, 0.10); color: #1f7a4d; border: 1px solid rgba(70, 180, 110, 0.35); }
.form-status.is-error { background: rgba(214, 60, 53, 0.08); color: #b3261e; border: 1px solid rgba(214, 60, 53, 0.3); }

.contact-form button[type="submit"] { font-size: 16px; padding: 15px 28px; }
.contact-form button[type="submit"]:disabled { opacity: 0.6; cursor: not-allowed; }
