.google-static-wrapper { min-height: 400px; }
.google-static-wrapper #map { position: relative; background: #e8eaed; min-height: 400px; }
.gsm-canvas { position: absolute; }
.gsm-canvas svg { display: block; width: 100%; height: 100%; }
.gsm-content { position: absolute; inset: 0 0 10% 0; overflow: hidden; touch-action: none; cursor: grab; }
.gsm-content.gsm-dragging { cursor: grabbing; }
.gsm-pin {
    position: absolute; transform: translate(-50%, -100%); padding: 0; border: 0;
    background: transparent; border-radius: 0; line-height: 0; min-width: 24px; min-height: 32px;
}
.gsm-pin:hover { background: transparent; }
.gsm-pin img { display: block; height: auto; width: auto; max-width: none; max-height: none; }
.gsm-pin:focus-visible { outline: 3px solid #1565c0; outline-offset: 2px; }
.gsm-pin[hidden], .gsm-popup[hidden] { display: none; }
.gsm-popup {
    position: absolute; z-index: 2; width: 300px; max-width: calc(100% - 8px);
    max-height: calc(100% - 8px); overflow: auto; border: 3px solid white;
    box-sizing: border-box; cursor: default; box-shadow: 0 2px 8px #0004;
}
.gsm-popup-body { padding: 10px; }
.gsm-popup-title { padding: 0; margin: 0 28px 8px 0; }
.gsm-popup-photo { max-width: 100%; max-height: 120px; object-fit: contain; float: right; margin: 0 0 8px 8px; }
.gsm-popup-description { clear: both; }
.gsm-popup-footer { display: flex; align-items: center; gap: 10px; padding: 6px 10px; }
.gsm-popup-footer a { color: inherit; }
.gsm-popup-tag { flex: 1; text-align: right; margin: 0; }
.gsm-popup-close { position: absolute; right: 3px; top: 3px; padding: 4px 8px; color: #333; background: white; }
.gsm-zoom-controls { position: absolute; right: 10px; top: calc(var(--gsm-main-bottom) - 120px); display: flex; flex-direction: column; gap: 3px; }
.gsm-zoom-controls button { padding: 7px 10px; font-size: 16px; color: #333; background: white; box-shadow: 0 1px 4px #0003; }
.gsm-zoom-controls button:disabled { color: #aaa; cursor: default; }
.gsm-status { position: absolute; top: 45%; width: 100%; text-align: center; margin: 0; padding: 10px; box-sizing: border-box; }
/* Controls and local artwork must never cover the original attribution strip. */
.google-static-wrapper .slide-icon { position: absolute; }
.google-static-wrapper .slide-out-div { position: absolute; height: 75%; max-height: calc(var(--gsm-main-bottom) - 16px); }
.google-static-wrapper .button-list { height: 100%; margin-top: 0; box-sizing: border-box; }
@media print {
    body.printing-google-static-map * { visibility: hidden; }
    body.printing-google-static-map #google-map-wrapper,
    body.printing-google-static-map #google-map-wrapper * { visibility: visible; }
    body.printing-google-static-map #google-map-wrapper {
        position: absolute !important; left: 0; top: 0; width: 600px !important; height: 600px !important; border: 0 !important;
    }
    body.printing-google-static-map #google-map-wrapper .map-interactive-control,
    body.printing-google-static-map .gsm-zoom-controls,
    body.printing-google-static-map .gsm-popup { display: none; }
}
