.contact {
  overflow-x: hidden;
}

.contact-content {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

.contact-map {
  flex: 1;
  min-width: 280px;
  min-height: 450px;
}

.contact-map iframe {
  border-radius: 10px;
  width: 100%;
  height: 100%;
  box-shadow: 0 5px 15px rgba(0, 0, 0, .1);
}

.contact-info {
  flex: 0 0 420px;
  padding: 20px 16px;
  border-radius: 10px;
  box-shadow: rgba(0, 0, 0, .02) 0 1px 3px 0, rgba(27, 31, 35, .15) 0 0 0 1px;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 22px;
}

.contact-item > span {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 50%;
  background: rgba(194, 160, 95, .12);
  display: grid;
  place-items: center;
  margin-right: 16px;
  transition: background-color .25s;
}

.contact-item:hover > span {
  background: rgba(194, 160, 95, .24);
}

.contact-item .contact-icon {
  color: var(--gold, #c2a05f);
  width: 1.25rem;
  height: 1.25rem;
}

.contact-item h3 {
  margin-bottom: 4px;
  font-size: 0.95rem;
  color: var(--ink, #23242a);
  font-weight: 700;
}

.contact-item p {
  font-size: 15px;
  line-height: 1.8;
  color: var(--muted, #6b6760);
  margin: 0;
}

.contact-item a {
  color: var(--muted, #6b6760);
  text-decoration: none;
  transition: color .3s;
}

.contact-item a:hover {
  color: var(--gold, #c2a05f);
}

.social-links {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  background-color: rgba(194, 160, 95, .1);
  transition: color .25s, background-color .25s, transform .2s, box-shadow .2s;
}

/* higher specificity (0,2,0) beats footer.css's .contact a (0,1,1) */
.contact-info .social-link {
  color: var(--gold, #c2a05f);
}

.contact-info .social-link svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  stroke: none;
}

.contact-info .social-link:hover {
  color: #fff;
  background-color: var(--gold, #c2a05f);
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(194, 160, 95, .4);
}

@media (max-width: 900px) {
  .contact-content {
    flex-direction: column;
  }

  .contact-info {
    flex: none;
    width: 100%;
  }
}

@media (max-width: 560px) {
  .contact-map { min-height: 280px; }
  .contact-info { padding: 16px 12px; }
  .contact-item { margin-bottom: 16px; }
  .social-links { gap: 6px; }
  .social-link { width: 44px; height: 44px; }
  .contact-info .social-link svg { width: 18px; height: 18px; }
}
