.list-banner {
  padding-bottom: 48px;

  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.list-banner .map {
  width: 50%;
  height: 420px;
}

.list-banner .banner-content {
  width: 50%;

  display: flex;
  flex-direction: column;
  gap: 24px;
}
.list-banner .banner-content h2 {
  color: #162636;
  font-size: 36px;
  font-style: normal;
  font-weight: 700;
  line-height: 44px;
}
.list-banner .banner-content .snippet {
  color: #212529;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 24px;
}
.list-banner .banner-content .location-btn {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  text-align: center;
  font-family: "Assistant";
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 44px;
  letter-spacing: 2px;
  text-transform: uppercase;

  border: 2px solid #fff;
  background-color: #162636;
  padding: 2px 32px;

  margin-top: auto;

  transition:
    0.3s background-color,
    0.3s border-color,
    0.3s color;
}
.list-banner .banner-content .location-btn:hover {
  background-color: #fff;
  border-color: #162636;
  color: #162636;
}

.locations-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 40px;
  row-gap: 48px;
}

.locations-list .location-card {
  width: 100%;
  border: 1px solid #016fac;

  display: flex;
  flex-direction: column;
}

.locations-list .location-card .location-image {
  width: 100%;
  height: 208px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.locations-list .location-card .location-content {
  flex: 1;

  padding: 20px;

  display: flex;
  flex-direction: column;
  gap: 15px;

  color: #162636;
  font-family: "Assistant";
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 24px;
}
.locations-list .location-card .location-content h2 {
  color: #162636;
  font-family: "Assistant";
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 32px;
}
.locations-list .location-card .location-content h2 span {
  font-weight: 400;
}
.locations-list .location-card .location-content .location-btn {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  text-align: center;
  font-family: "Assistant";
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 44px;
  letter-spacing: 2px;
  text-transform: uppercase;

  border: 2px solid #fff;
  background-color: #162636;
  padding: 2px 32px;

  margin-top: auto;

  transition:
    0.3s background-color,
    0.3s border-color,
    0.3s color;
}
.locations-list .location-card .location-content .location-btn:hover {
  background-color: #fff;
  border-color: #162636;
  color: #162636;
}
.locations-list
  .location-card
  .location-image-link:hover
  + .location-content
  .location-btn {
  background-color: #fff;
  border-color: #162636;
  color: #162636;
}

@media (max-width: 1499px) {
  .locations-list {
    column-gap: 24px;
  }
}
@media (max-width: 1199px) {
  .list-banner .banner-content h2 {
    font-size: 24px;
    line-height: 34px;
  }

  .locations-list .location-card .location-content h2 {
    font-size: 20px;
    line-height: 28px;
  }
}
@media (max-width: 991px) {
  .list-banner {
    flex-direction: column;
  }

  .list-banner .map {
    width: 100%;
    height: 350px;
  }

  .list-banner .banner-content {
    width: 100%;
  }

  .locations-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .list-banner .map {
    height: 280px;
  }

  .locations-list {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    row-gap: 24px;
  }

  .locations-list .location-card .location-content {
    font-size: 14px;
    line-height: 20px;
  }
}

/* Root popup container */
.location-popup {
  width: 131px;
  padding: 6px;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.location-popup .popup-image {
  position: relative;
  overflow: hidden;

  width: 100%;
  aspect-ratio: 119/49;

  margin-bottom: 6px;
}
.location-popup .popup-image img {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;

  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.location-popup .popup-title {
  color: #162636;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.location-popup .popup-phone {
  color: #162636;
  font-size: 9px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.location-popup .popup-btn {
  width: fit-content;
  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  text-align: center;
  font-family: "Assistant";
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 2px;
  text-transform: uppercase;

  border: 2px solid #fff;
  background-color: #162636;
  padding: 4px 10px;

  margin-top: 6px;

  transition:
    0.3s background-color,
    0.3s border-color,
    0.3s color;
}
.location-popup .popup-btn:hover {
  background-color: #fff;
  border-color: #162636;
  color: #162636;
}

/* Remove white background + padding wrapper */
.gm-style .gm-style-iw {
  padding: 0 !important;
}

/* Remove default content padding */
.gm-style .gm-style-iw-d {
  padding: 0 !important;
  overflow: hidden !important;
}

/* Remove close button spacing */
.gm-style .gm-style-iw button {
  display: none !important;
}

/* Remove bubble tail spacing */
.gm-style .gm-style-iw-t::after {
  display: none !important;
}

/* Optional: remove shadow */
.gm-style .gm-style-iw-c {
  padding: 0 !important;
  box-shadow: none !important;
}
