.fm-emm-map{ width:100%; height:480px; border-radius:8px; overflow:hidden; }
.fm-emm-geolocate{ background:#fff; border:1px solid rgba(0,0,0,.2); padding:8px 10px; margin:10px; border-radius:4px; cursor:pointer; }
.fm-emm-infowindow{ max-width:240px; }
.fm-emm-infowindow .fm-emm-directions{ text-decoration:none; }

.fm-emm-modal{ position:fixed; inset:0; background:var(--fm-emm-modal-overlay, rgba(0,0,0,.55)); display:none; align-items:center; justify-content:center; z-index:99999; padding:20px; }
.fm-emm-modal.is-open{ display:flex; }
.fm-emm-modal-content{ background:var(--fm-emm-modal-bg, #fff); max-width:720px; width:100%; border-radius:12px; padding:20px; position:relative; }
.fm-emm-modal-close{ position:absolute; top:8px; right:10px; background:transparent; border:0; font-size:28px; line-height:1; cursor:pointer; }

/* Full width (full-bleed) */
.fm-emm-fullbleed{ width:100vw !important; margin-left:50%; transform:translateX(-50%); }

/* Aspect-ratio responsive */
.fm-emm-ar{ position:relative; }
.fm-emm-ar .fm-emm-map{ height:100% !important; }
.fm-emm-wrap.fm-emm-ar{ aspect-ratio: 16 / 9; }

.fm-emm-wrap, .fm-emm-map{ width:100%; }
body .fm-emm-fullbleed{ overflow:hidden; }


/* --- Mobile fixes for Google Maps tiles --- */
.fm-emm-map img { max-width: none !important; }            /* avoid theme rules breaking tiles */
.fm-emm-map .gm-style img { max-width: none !important; }  /* double safety */
.fm-emm-map { min-height: 240px; }                         /* ensure visible on small screens */

/* In AR fallback mode (set inline by JS), map is absolutely positioned */
.fm-emm-ar[data-ar-fallback="1"] { position: relative; }
.fm-emm-ar[data-ar-fallback="1"] .fm-emm-map { position:absolute; inset:0; height:auto !important; }



/* Safety: make sure touch/click events reach the map on mobile */
.fm-emm-map, .fm-emm-map * { pointer-events: auto; }

