/* City/area/university map pop-up card and Google Maps InfoWindow overrides (loaded by city/map.html). */
.city-map-info-window {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 240px;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid #e9eaeb;
  background: #fff;
  box-shadow: 0 24px 80px rgba(15, 23, 42, 0.12);
  text-align: left;
  text-decoration: none;
  color: inherit;
  transition:
    box-shadow 0.15s ease,
    border-color 0.15s ease;
}

.city-map-info-window:hover {
  border-color: #d5d7da;
  box-shadow: 0 28px 90px rgba(15, 23, 42, 0.14);
}

.city-map-info-window__media {
  line-height: 0;
  background: #f5f5f6;
}

.city-map-info-window__img {
  display: block;
  width: 100%;
  height: 112px;
  object-fit: cover;
  border-radius: 11px 11px 0 0;
}

.city-map-info-window__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px 12px;
}

.city-map-info-window__title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: #181d27;
}

.city-map-info-window__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-primary);
}

.city-map-info-window__cta-icon {
  font-size: 10px;
}

#map-container .gm-style-iw-ch {
  position: relative !important;
  padding: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
}

#map-container .gm-style-iw-chr {
  position: absolute !important;
  top: 6px !important;
  right: 6px !important;
  left: auto !important;
  z-index: 10 !important;
  height: auto !important;
  width: auto !important;
  margin: 0 !important;
  pointer-events: auto !important;
}

#map-container .gm-style-iw-chr button,
#map-container .gm-style-iw-chr .gm-ui-hover-effect {
  opacity: 1 !important;
  background: #fff !important;
  border-radius: 9999px !important;
  border: 1px solid #e9eaeb !important;
  box-shadow: 0 1px 2px rgba(10, 13, 18, 0.08) !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#map-container .gm-style-iw-chr .gm-ui-hover-effect > span {
  margin: 0 !important;
}

#map-container .gm-style-iw-chr button:hover,
#map-container .gm-style-iw-chr .gm-ui-hover-effect:hover {
  background: #fafafa !important;
  border-color: #d5d7da !important;
}

#map-container .gm-style-iw-d {
  overflow: hidden !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

#map-container .gm-style .gm-style-iw-c {
  padding: 0 !important;
  border-radius: 14px;
  overflow: hidden;
}

#map-container .gm-style-iw-tc {
  padding: 0 !important;
}

