.j2p-contact {
  margin: 8px 0 28px;
  color: #1f2430;
}

body:has(.j2p-contact) .entry-header {
  display: none;
}

.j2p-contact__heading {
  margin: 0 0 10px;
  text-align: center;
  color: #1f2430;
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  font-weight: 800;
  line-height: 1.15;
}

.j2p-contact__lead {
  max-width: 680px;
  margin: 0 auto 28px;
  text-align: center;
  color: #6b7280;
  font-size: 1.05rem;
  line-height: 1.5;
}

.j2p-contact__grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr);
  gap: 18px;
  align-items: stretch;
}

.j2p-contact__card {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(31, 41, 55, 0.08);
  padding: 28px;
}

.j2p-contact__card h2 {
  margin: 0 0 16px;
  color: #1f2430;
  font-size: 1.35rem;
  font-weight: 800;
}

.j2p-contact__card p {
  margin: 0 0 14px;
  color: #374151;
  font-size: 1rem;
  line-height: 1.5;
}

.j2p-contact__card p:last-child {
  margin-bottom: 0;
}

.j2p-contact__label {
  display: block;
  margin-bottom: 2px;
  color: #6b7280;
  font-size: 0.82rem;
  font-weight: 700;
}

.j2p-contact__card a {
  color: var(--j2p-contact, var(--theme-color));
  font-weight: 700;
  text-decoration: none;
}

.j2p-contact__map {
  height: 420px;
  min-height: 420px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(31, 41, 55, 0.08);
  background: #f3f5f8;
  z-index: 0;
}

.j2p-contact__map .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
}

@media (max-width: 800px) {
  .j2p-contact__grid {
    grid-template-columns: 1fr;
  }

  .j2p-contact__card {
    padding: 22px;
  }

  .j2p-contact__map {
    height: 320px;
    min-height: 320px;
  }
}
