.bj-map-widget { width:100%; margin:1.5rem 0; }
.bj-map-canvas { width:100%; min-height:200px; border-radius:12px; background:#eef1f4; overflow:hidden; }
.bj-map-canvas img { max-width:none; }
.bj-map-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.bj-map-filters button { appearance:none; cursor:pointer; font:inherit; line-height:1.4; border:1px solid #cbd5e1; border-radius:24px; padding:8px 16px; background:#fff; color:#1e293b; }
.bj-map-filters button[aria-pressed="true"] { background:#1e293b; color:#fff; border-color:#1e293b; }
.bj-map-filters button:focus-visible, .bj-realisation-gallery a:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.bj-map-status { margin:8px 0 0; font-size:13px; color:#475569; }
.bj-map-marker { display:block; object-fit:contain; }
.bj-map-marker-shadow { filter:drop-shadow(0 3px 5px rgba(0,0,0,.28)) drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.bj-map-card { max-width:280px; color:#1e293b; font:14px/1.5 system-ui,sans-serif; padding:2px 0 8px; }
.bj-map-card img { display:block; width:100%; height:150px; object-fit:cover; border-radius:6px; margin-bottom:12px; }
.bj-map-card h3 { color:inherit; font:600 18px/1.3 system-ui,sans-serif; margin:0 0 8px; }
.bj-map-card p { margin:0 0 10px; }
.bj-map-card-address { color:#64748b; }
.bj-map-card-link { color:#1d4ed8; font-weight:600; text-decoration:underline; }
.bj-map-error .bj-map-canvas { display:none; }
.bj-realisation-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:18px; margin:2rem 0; }
.bj-realisation-gallery figure { margin:0; min-width:0; }
.bj-realisation-gallery a { display:block; }
.bj-realisation-gallery img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:8px; }
.bj-realisation-gallery figcaption { font-size:.875em; margin-top:6px; color:#475569; }
