/* Complete-frame photos for the services, FAQ and contact pages. */
.service-visual.service-visual--complete .visual-badge {
  position: static;
  align-self: flex-start;
  max-width: calc(100% - 36px);
  margin: 16px 18px;
  box-shadow: none;
  background: #eef2ff;
}
.service-visual--complete .service-visual__photo {
  aspect-ratio: auto;
  flex: 0 0 auto;
  line-height: 0;
  overflow: hidden;
}
.service-visual--complete .service-visual__photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Embedded map stays within its column at every viewport width. */
.map-shell.contact-map {
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
  text-align: left;
}
.contact-map h3 {
  margin: 0;
  padding: 22px 24px;
}
.contact-map__frame {
  min-width: 0;
  width: 100%;
  overflow: hidden;
  border-top: 1px solid var(--line);
}
.contact-map__frame iframe {
  display: block;
  width: 100%;
  height: clamp(320px, 38vw, 500px);
  border: 0;
}
@media (max-width: 720px) {
  .service-visual.service-visual--complete .visual-badge {
    max-width: calc(100% - 28px);
    margin: 14px;
  }
  .contact-map h3 { padding: 18px 20px; }
}
