.location-section { background:var(--white,#fff); }
.location-layout { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:clamp(32px,6vw,96px); align-items:center; }
.location-copy h2 { margin-bottom:24px; }
.location-address { font-style:normal; font-size:18px; line-height:1.7; color:var(--ink,#075e70); }
.location-address span { display:block; }
.location-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; margin-top:28px; }
.location-actions .button { gap:16px; }
.location-phone { display:inline-flex; align-items:center; gap:12px; font-weight:650; }
.location-map-panel { min-width:0; }
.location-map-frame { position:relative; height:clamp(260px,35vw,400px); }
.location-map-intro { position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:18px; padding:clamp(24px,4vw,48px); border:1px solid var(--line,#d4e8ed); background:var(--wash,#edf8fa); }
.location-map-intro > p:first-child { font-size:20px; font-weight:600; color:var(--ink,#075e70); }
.location-map-privacy,.location-map-help,.location-map-status { font-size:13px; line-height:1.65; }
.location-map { height:100%; width:100%; z-index:0; border:1px solid var(--line,#d4e8ed); background:#edf8fa; font-family:var(--sans,Arial,sans-serif); }
.location-map[hidden],.location-map-intro[hidden],.location-map-help[hidden],.location-map-panel [data-location-load][hidden] { display:none!important; }
.location-map:focus-visible { outline:3px solid #075e70; outline-offset:4px; }
.location-map-help { margin-top:14px; }
.location-map-privacy { margin-top:12px; }
.location-map-status:not(:empty) { margin-top:10px; }
.location-map .leaflet-control-attribution { padding:3px 7px; background:#fff; color:#253b42; font-size:11px; line-height:1.5; }
.location-map .leaflet-control-attribution a { color:#075e70; text-decoration:underline; }
.location-map .leaflet-control-zoom a { width:40px; height:40px; line-height:40px; color:#075e70; background:#fff; }
.location-map .leaflet-control-attribution,.location-map .leaflet-control-zoom a,.location-map .leaflet-popup-content,.location-map .leaflet-popup-close-button { font-family:var(--sans,Arial,sans-serif); }
.location-map .leaflet-control-zoom a:focus-visible,.location-map .leaflet-marker-icon:focus-visible { outline:3px solid #075e70; outline-offset:3px; }
.location-map .location-tooth-marker { border:0; background:transparent; }
.location-tooth-marker svg { overflow:visible; }
.location-popup { max-width:220px; font-family:var(--sans,Arial,sans-serif); color:#075e70; }
.location-popup strong { font-size:14px; }
.location-map .location-popup p { margin:8px 0 0; font-size:13px; line-height:1.5; color:#334e57; }
@media (max-width:800px) {
  .location-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
  .location-map-frame { height:320px; }
}
@media (max-width:380px) {
  .location-map-frame { height:280px; }
  .location-map-intro { padding:20px; gap:14px; }
  .location-actions .button { padding-inline:18px; gap:12px; }
}
