.contact-map__request {
  position: relative;
  min-height: 390px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(22px, 4vw, 34px);
  text-align: center;
  background:
    radial-gradient(circle at 20% 15%, rgba(34,197,155,.16), transparent 36%),
    radial-gradient(circle at 84% 76%, rgba(24,168,216,.14), transparent 38%),
    linear-gradient(150deg, #0b131a, #0b1016);
}

.contact-map__request-card {
  position: relative;
  z-index: 1;
  width: min(100%, 430px);
  padding: 16px;
  display: grid;
  justify-items: center;
  gap: 12px;
}

.contact-map__request-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(111,232,201,.24);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(34,197,155,.18), rgba(24,168,216,.1));
  color: #8ff1d6;
}

.contact-map__request-icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contact-map__request-kicker {
  color: #7de8cc;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.contact-map__request-title {
  color: #f7fbff;
  font-size: 23px;
  font-weight: 900;
  line-height: 1.18;
  letter-spacing: -.025em;
}

.contact-map__request-copy {
  max-width: 390px;
  color: rgba(230,238,246,.7);
  font-size: 13px;
  line-height: 1.7;
}

.contact-map__request-address {
  color: #edf8f5;
  font-size: 13px;
  font-weight: 780;
  line-height: 1.55;
}

.contact-map__load-btn {
  min-height: 48px;
  margin-top: 4px;
  padding: 12px 20px;
  border: 1px solid rgba(88,229,193,.3);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(34,197,155,.95), rgba(24,168,216,.88));
  color: #04110d;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.contact-map__load-btn:hover,
.contact-map__load-btn:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow: 0 16px 36px rgba(34,197,155,.24);
  outline: none;
}

.contact-map__load-btn:disabled {
  cursor: wait;
  opacity: .72;
  transform: none;
  box-shadow: none;
}

.contact-map__privacy {
  color: rgba(218,229,239,.5);
  font-size: 11px;
  line-height: 1.55;
}

@media (max-width: 620px) {
  .contact-map__request {
    min-height: 400px;
    padding: 18px;
  }

  .contact-map__request-card {
    padding: 10px 4px;
  }

  .contact-map__request-title {
    font-size: 21px;
  }
}
