.form-card select.form-input {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%230b1720' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem 1rem;
}

@media (forced-colors: active) {
  .form-card select.form-input {
    -webkit-appearance: auto;
    appearance: auto;
    background-image: none;
  }
}

.contact-card--office {
  display: grid;
  grid-template-columns: 2.8rem minmax(0, 1fr);
  align-items: start;
}

.contact-card__office-details,
.contact-card__map {
  min-width: 0;
}

.contact-card__map {
  grid-column: 1 / -1;
  overflow: hidden;
  border: 1px solid #dbe2e5;
  border-radius: 3px;
  background: #eef1ec;
}

.contact-card__map iframe {
  display: block;
  width: 100%;
  height: 280px;
  border: 0;
}

.fp-contact-location {
  background: #fbfaf7;
}

.fp-contact-location__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
  align-items: center;
}

.fp-contact-location__details h2 {
  margin-top: 1.25rem;
  font-size: clamp(2.15rem, 3.2vw, 2.85rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.04em;
  color: #0b1720;
}

.fp-contact-location__intro {
  max-width: 35ch;
  margin-top: 1.5rem;
  color: #52606b;
  line-height: 1.8;
}

.fp-contact-location__address {
  display: grid;
  gap: 0.3rem;
  margin-top: 1.75rem;
  font-style: normal;
  color: #0b1720;
}

.fp-contact-location__address strong {
  font-size: 1.2rem;
  font-weight: 600;
}

.fp-contact-location__hours {
  margin-top: 0.75rem;
  color: #52606b;
  font-size: 0.875rem;
}

.fp-contact-location__details .button {
  margin-top: 1.75rem;
}

.fp-contact-location__figure {
  min-width: 0;
  margin: 0;
}

.fp-contact-location__scene {
  position: relative;
  overflow: hidden;
  border: 1px solid #dbe2e5;
  border-radius: 6px;
  background: #e7e9e2;
}

.fp-contact-location__image {
  display: block;
  width: 100%;
  height: auto;
}

.fp-contact-location__marker {
  /* Exact point on the roof of the second unit from the foreground (umbrella garden). */
  position: absolute;
  left: 71.9%;
  top: 46.1%;
  --marker-stem: 25px;
}

.fp-contact-location__bubble {
  position: absolute;
  bottom: var(--marker-stem);
  left: 0;
  display: grid;
  justify-items: center;
  gap: 0.6rem;
  width: clamp(108px, 16vw, 166px);
  padding: 14px 18px 11px;
  transform: translateX(-50%);
  border: 1px solid rgb(228 191 95 / 65%);
  border-radius: 7px;
  background: #14232b;
  box-shadow: 0 8px 25px rgb(11 23 32 / 20%);
}

.fp-contact-location__bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 10px;
  height: 10px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 1px solid rgb(228 191 95 / 65%);
  border-bottom: 1px solid rgb(228 191 95 / 65%);
  background: #14232b;
}

.fp-contact-location__bubble img {
  display: block;
  width: 100%;
  height: auto;
}

.fp-contact-location__bubble > span {
  color: #e4bf5f;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.fp-contact-location__stem {
  position: absolute;
  bottom: 0;
  left: -1px;
  height: calc(var(--marker-stem) - 6px);
  width: 2px;
  background: #e4bf5f;
}

.fp-contact-location__point {
  position: absolute;
  width: 10px;
  height: 10px;
  transform: translate(-50%, -50%);
  border: 2px solid #14232b;
  border-radius: 50%;
  background: #e4bf5f;
  box-shadow: 0 0 0 4px rgb(228 191 95 / 25%);
}

@media (min-width: 1024px) {
  .fp-contact-location__layout {
    grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
  }
}

@media (max-width: 639px) {
  .fp-contact-location__marker {
    --marker-stem: 17px;
  }

  .fp-contact-location__bubble {
    gap: 7px;
    padding: 10px 12px 9px;
  }

  .fp-contact-location__bubble > span {
    font-size: 8px;
    letter-spacing: 0.1em;
  }
}
