.contact-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.contact-form-box {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: clamp(1.75rem, 4vw, 2.75rem);
  box-shadow: var(--shadow-md);
}
.contact-form-box h2 { font-size: 1.5rem; margin-bottom: .4rem; }
.contact-form-box > p { color: var(--color-text-soft); margin-bottom: 2rem; font-size: .9375rem; }
.contact-form-box .btn { margin-top: 1.5rem; width: 100%; }

.contact-info { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-info-card {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  display: flex; gap: 1rem; align-items: flex-start;
}
.contact-info-card__icon {
  width: 48px; height: 48px; flex-shrink: 0;
  background: var(--color-accent-soft);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-primary);
}
.contact-info-card__icon svg { width: 22px; height: 22px; }
.contact-info-card h3 { font-size: 1rem; margin-bottom: .25rem; }
.contact-info-card p, .contact-info-card a { font-size: .9375rem; color: var(--color-text-soft); }
.contact-info-card a:hover { color: var(--color-accent); }

.map-embed { margin-top: 1.25rem; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); }
.map-embed iframe { width: 100%; height: 240px; border: none; display: block; }

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