/* Tone filters affect the whole iframe; Google controls and attribution remain
   visible and interactive. No overlays or cropping cover the map. */
.contact-map{--contact-map-filter:none;min-width:0;margin-top:24px}
.contact-map-frame{border:1px solid var(--line);background:var(--paper)}
.contact-map[data-map-frame="plain"] .contact-map-frame{border:0}
.contact-map-frame iframe{display:block;width:100%;max-width:100%;height:var(--contact-map-height,360px);min-height:240px;border:0;filter:var(--contact-map-filter);background:var(--paper)}
.contact-map[data-map-tone="monochrome"]{--contact-map-filter:grayscale(1)}
.contact-map[data-map-tone="warm"]{--contact-map-filter:grayscale(.78) sepia(.15) saturate(.8)}
.contact-map[data-map-tone="soft"]{--contact-map-filter:saturate(.48)}
.contact-map .contact-map-actions{display:flex;justify-content:flex-end;margin:10px 0 0;line-height:1.6}
.contact-map .contact-map-actions a{font-size:13px;color:var(--green);border-bottom:1px solid var(--line);padding-bottom:3px;overflow-wrap:anywhere}
.contact-map .contact-map-actions a:hover{border-color:var(--green)}
.contact-map .contact-map-actions a:focus-visible{outline:3px solid var(--green);outline-offset:4px}
@media(max-width:600px){.contact-map{margin-top:20px}.contact-map-frame iframe{height:min(var(--contact-map-height,360px),320px)}}
@media(forced-colors:active){.contact-map-frame iframe{filter:none}.contact-map-frame{border-color:CanvasText}}
