.fbm-map { width:100%; max-width:100%; margin:1.25em 0; }
.fbm-map-viewport { position:relative; width:100%; overflow:hidden; outline:none; background:#111; }
.fbm-map-stage { position:relative; width:100%; line-height:0; transform-origin:50% 50%; transition:transform .22s ease; will-change:transform; }
.fbm-map-image { display:block; width:100%; height:auto; max-width:none; user-select:none; -webkit-user-drag:none; }
.fbm-map-overlays { position:absolute; inset:0; pointer-events:none; }
.fbm-map-overlay { position:absolute; transform:translate(-50%, -50%); z-index:2; line-height:1.2; }
.fbm-map-overlay-text { color:#fff; font-weight:400; font-size:clamp(12px, 1.45vw, 22px); text-shadow:0 1px 4px rgba(0,0,0,.95); white-space:pre-wrap; text-align:center; paint-order:stroke fill; }
.fbm-map-overlay-image img { display:block; width:auto; height:auto; max-width:clamp(36px, 8vw, 120px); max-height:clamp(36px, 8vw, 120px); user-select:none; -webkit-user-drag:none; }

.fbm-map-controls {
    position:absolute;
    top:12px;
    left:12px;
    z-index:20;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    line-height:1;
}
.fbm-map-zoom-group {
    display:flex;
    flex-direction:column;
    border-radius:4px;
    overflow:hidden;
    box-shadow:0 1px 5px rgba(0,0,0,.4);
}
.fbm-map-control {
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    margin:0;
    padding:0;
    border:0;
    border-radius:4px;
    background:#fff;
    color:#333;
    font:400 22px/1 Arial, sans-serif;
    cursor:pointer;
    box-shadow:0 1px 5px rgba(0,0,0,.4);
    appearance:none;
    -webkit-appearance:none;
}
.fbm-map-zoom-group .fbm-map-control {
    border-radius:0;
    box-shadow:none;
}
.fbm-map-zoom-group .fbm-map-control + .fbm-map-control {
    border-top:1px solid #ddd;
}
.fbm-map-control:hover:not(:disabled),
.fbm-map-control:focus-visible:not(:disabled) {
    background:#f4f4f4;
    color:#111;
}
.fbm-map-control:focus-visible {
    outline:2px solid #2271b1;
    outline-offset:2px;
}
.fbm-map-control:disabled {
    color:#aaa;
    background:#f3f3f3;
    cursor:default;
}
.fbm-map-zoom-reset {
    font-size:0;
}
.fbm-map-zoom-reset svg {
    width:17px;
    height:17px;
    fill:currentColor;
}

/* v0.1.9 — arraste do mapa e fundo configurável */
.fbm-map-viewport { cursor:grab; touch-action:none; }
.fbm-map-viewport.is-dragging-map { cursor:grabbing; }
.fbm-map-viewport.is-dragging-map .fbm-map-stage { transition:none; }
.fbm-map-controls, .fbm-map-control { cursor:auto; }
.fbm-map-control:not(:disabled) { cursor:pointer; }
