.contact-page .visit-card.map-card { display: block; padding: 0; overflow: hidden; border: 1px solid var(--line); }
.map-intro { padding: 28px 30px 24px; }
.contact-page .map-card h2 { font-size: clamp(25px, 2.6vw, 34px); }
.contact-page .map-card .map-intro > p:last-child { margin: 14px 0 0; font-size: 15px; }
.map-viewport { height: 330px; background: #e8eef4; border-block: 1px solid var(--line); }
.map-viewport iframe { display: block; width: 100%; height: 100%; border: 0; }
.map-placeholder { display: flex; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 24px; text-align: center; }
.map-placeholder[hidden], [data-map-load][hidden], [data-map-close][hidden] { display: none; }
.map-pin { width: 30px; height: 36px; color: var(--blue); }
.map-address { margin: 0; color: var(--navy); font-size: 15px; line-height: 1.6; }
.contact-page .map-card .map-placeholder .map-privacy { max-width: 42ch; margin: 0; color: #526071; font-size: 12px; line-height: 1.65; }
.map-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.map-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; padding: 18px 30px; }
.map-actions a, .map-actions button { min-height: 44px; display: inline-flex; align-items: center; }
.map-close { border: 0; padding: 8px 0; background: transparent; color: #526071; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.map-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media(max-width:620px) {
  .map-intro { padding: 24px 20px; }
  .map-viewport { height: 330px; }
  .map-placeholder { padding: 20px; }
  .map-actions { padding: 12px 20px; }
}
