/* Contact-page map: keep all additions scoped to this section. */
.contact-location.section {
  padding: 80px 0 88px;
  background: #f3f0e9;
  border-top: 1px solid #e3dfd5;
}
.contact-location-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 34px;
}
.contact-location .section-kicker { margin-bottom: 18px; }
.contact-location h2 {
  margin: 0 0 16px;
  font: 400 clamp(34px, 4vw, 52px)/1.12 Georgia, serif;
  letter-spacing: -.025em;
  color: #142536;
}
.contact-location-heading > div > p:last-child {
  margin: 0;
  color: #60717d;
  font-size: 17px;
  line-height: 1.7;
}
.contact-location-actions { flex: 0 0 auto; text-align: right; }
.contact-location-actions address {
  margin: 0 0 20px;
  color: #60717d;
  font-style: normal;
  font-size: 15px;
  line-height: 1.7;
}
.contact-location-actions address strong { color: #142536; }
.contact-map {
  height: 430px;
  position: relative;
  overflow: hidden;
  border: 1px solid #d9d3c6;
  border-radius: 4px;
  background: #142536;
}
.contact-map-placeholder {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 30px 24px;
  text-align: center;
  color: #f7f3ea;
  background: radial-gradient(ellipse at top, #254557, #142536 75%);
}
.contact-map-pin {
  width: 44px;
  height: 44px;
  fill: none;
  stroke: #cdb785;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contact-map-address {
  margin: 0;
  font: 400 clamp(23px, 3vw, 30px)/1.25 Georgia, serif;
}
.contact-map-notice {
  max-width: 590px;
  margin: 0;
  color: #c6d0d8;
  font-size: 14px;
  line-height: 1.65;
}
.contact-map-privacy { color: #e0cfaa; font-size: 13px; text-underline-offset: 4px; }
.contact-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.contact-map [hidden], .contact-map-footer [hidden] { display: none !important; }
.contact-map-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 36px;
  margin-top: 12px;
}
.contact-map-status { margin: 0; color: #60717d; font-size: 13px; line-height: 1.6; }
.contact-map-reset {
  flex: 0 0 auto;
  padding: 7px 0;
  border: 0;
  background: none;
  color: #142536;
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.contact-location a:focus-visible, .contact-location button:focus-visible {
  outline: 2px solid #bda36c;
  outline-offset: 5px;
}
.contact-location .button { white-space: normal; text-align: center; }
@media (max-width: 760px) {
  .contact-location.section { padding: 62px 0 64px; }
  .contact-location-heading { display: block; margin-bottom: 28px; }
  .contact-location-actions { margin-top: 26px; text-align: left; }
  .contact-location h2 { font-size: 36px; }
  .contact-map { height: 390px; }
  .contact-map-placeholder { gap: 14px; padding: 24px 18px; }
  .contact-map-notice { font-size: 13px; }
  .contact-map-footer { align-items: flex-start; flex-direction: column; gap: 6px; }
}
@media (max-width: 380px) {
  .contact-map { height: 420px; }
  .contact-location h2 { font-size: 32px; }
}
