.contact-section{ padding: 20px 0 140px; }
.contact-grid{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 60px;
}
.contact-info-card{
  background: var(--bg-elevated);
  border: 1px solid var(--hairline);
  border-radius: 4px;
  padding: 44px;
  height: fit-content;
}
.contact-info-card h3{ margin-bottom: 14px; }
.contact-info-card > p{ font-size: 0.94rem; margin-bottom: 34px; }

.contact-detail{
  display:flex;
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--hairline);
}
.contact-detail:first-of-type{ border-top: none; padding-top:0; }
.contact-detail-icon{
  width: 42px; height:42px;
  border-radius: 50%;
  border: 1px solid var(--hairline-strong);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  color: var(--gold-bright);
  font-size: 1rem;
}
.contact-detail-label{ font-size: 0.76rem; color: var(--ink-faint); letter-spacing:0.06em; margin-bottom: 4px; }
.contact-detail-value{ font-size: 0.98rem; color: var(--ink); }
.contact-detail-value a:hover{ color: var(--gold-bright); }

.contact-socials{ display:flex; gap:12px; margin-top: 30px; }

.contact-form-wrap h3{ margin-bottom: 8px; }
.contact-form-wrap > p{ margin-bottom: 34px; }
.contact-form{ display:grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.form-group{ display:flex; flex-direction:column; gap: 8px; }
.form-group.full{ grid-column: 1 / -1; }
.form-group label{ font-size: 0.8rem; color: var(--ink-faint); letter-spacing: 0.02em; }
.form-group input, .form-group textarea, .form-group select{
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--hairline-strong);
  padding: 10px 2px;
  font-family: var(--font-body);
  font-size: 0.98rem;
  color: var(--ink);
  outline: none;
  transition: border-color 0.3s;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus{ border-color: var(--gold); }
.form-group textarea{ resize: vertical; min-height: 100px; }
.form-submit{ grid-column: 1/-1; margin-top: 6px; }
.form-note{ font-size: 0.8rem; color: var(--ink-faint); margin-top: 16px; }

.map-section{ padding: 0 0 140px; }
.map-frame{
  border: 1px solid var(--hairline);
  border-radius: 4px;
  overflow:hidden;
  aspect-ratio: 21/8;
  filter: var(--map-filter, none);
}
[data-theme="dark"] .map-frame{ filter: invert(0.92) hue-rotate(180deg) contrast(0.9) brightness(0.95); }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }

@media (max-width: 900px){
  .contact-grid{ grid-template-columns: 1fr; }
  .contact-form{ grid-template-columns: 1fr; }
  .map-frame{ aspect-ratio: 4/5; }
}
