/* Background films are decorative and must never expose native media UI. */
video.ambient-video {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-touch-callout: none !important;
}

video.ambient-video::-webkit-media-controls,
video.ambient-video::-webkit-media-controls-enclosure,
video.ambient-video::-webkit-media-controls-panel,
video.ambient-video::-webkit-media-controls-play-button,
video.ambient-video::-webkit-media-controls-start-playback-button,
video.ambient-video::-webkit-media-controls-overlay-play-button {
  display: none !important;
  -webkit-appearance: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

video.ambient-video::-webkit-media-controls-overlay-enclosure {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.contact-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

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

.contact-social {
  min-width: 0;
}

.contact-location {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(18, 19, 19, 0.18);
}

.contact-location-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.contact-location-actions .map-button {
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid rgba(18, 19, 19, 0.42);
  border-radius: 999px;
  gap: 10px;
  text-decoration: none;
}

.map-marker {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1.5px solid currentColor;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

.map-marker::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  top: 4.5px;
  left: 4.5px;
  border-radius: 50%;
  background: currentColor;
}

@media (max-width: 700px) {
  .contact-location {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
    padding-top: 16px;
  }

  .contact-location-actions {
    align-items: flex-start;
    justify-content: flex-start;
  }

  .contact-location-actions .map-button {
    width: 100%;
    justify-content: space-between;
  }
}

/* Keep the complete contact composition inside Safari's shorter phone viewport. */
@media (max-width: 700px) and (max-height: 850px) {
  .contact {
    padding: 9.5vh 18px 1.5vh;
  }

  .contact h2 {
    margin-top: 16px;
    font-size: clamp(3.55rem, 16.5vw, 4.8rem);
  }

  .contact-phone {
    margin-top: 2.2vh;
    padding: 13px 0;
  }

  .contact-phone i {
    width: 44px;
    height: 44px;
  }

  .contact-details {
    margin-top: 2.2vh;
    gap: 12px 18px;
    row-gap: 12px;
  }

  .contact-details p {
    margin: 6px 0 4px;
  }

  .contact-location {
    gap: 8px;
    padding-top: 11px;
  }

  .contact-location-actions {
    gap: 6px 12px;
  }

  .contact-location-actions .map-button {
    min-height: 38px;
    padding: 6px 12px;
  }

  .contact-footer {
    padding-top: 8px;
  }
}

/* Fixed-size geometric arrow: consistent and fully joined in every browser. */
.arrow-up-right {
  position: relative;
  display: inline-block;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  vertical-align: -2px;
}

.arrow-up-right::before {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  top: 1px;
  right: 1px;
  border-top: 1.75px solid currentColor;
  border-right: 1.75px solid currentColor;
}

.arrow-up-right::after {
  content: "";
  position: absolute;
  width: 11.5px;
  height: 1.75px;
  top: 0.125px;
  right: 1px;
  bottom: auto;
  left: auto;
  background: currentColor;
  transform-origin: 100% 50%;
  transform: rotate(-45deg);
}

.contact-phone i .arrow-up-right {
  display: block;
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  margin: 0;
  vertical-align: middle;
  transform: scale(1.08);
}
