
.bsgm-section { box-sizing:border-box; width:100%; max-width:1140px; margin:60px auto 70px; padding:0 20px; }
.bsgm-section .bsgm-title { margin:0 0 32px!important; padding:0!important; color:#1F1F1E!important; font:300 36px/1.18 'Plus Jakarta Sans',sans-serif!important; letter-spacing:-.03em!important; text-align:left!important; text-transform:none!important; text-wrap:balance; }
.bsgm-section .bsgm-title strong { color:#613A2E!important; font-weight:600!important; }
.bsgm-section .bsgm-title-dot { color:#E3D6CA; font-weight:700; }
.bsgm-section .bsgm-title::after { content:none!important; }
.bsgm-section .bsgm-title-tail { white-space:nowrap; }
.bsgm-map { --bsgm-height:550px; --bsgm-control-size:40px; position:relative; width:100%; height:var(--bsgm-height); min-width:0; overflow:hidden; border:1px solid #E0E0E0; border-radius:10px; background:#F5ECE3; box-sizing:border-box; isolation:isolate; }
.bsgm-map .bsgm-canvas { position:relative; width:100%; height:100%!important; background:#F5ECE3!important; border:0; border-radius:inherit; transition:none!important; }
.bsgm-map .maplibregl-canvas { outline:none!important; }
.bsgm-map .leaflet-container:focus { outline:none!important; }
.bsgm-map .leaflet-control-attribution { display:none!important; }
.bsgm-map .bsgm-shield { position:absolute; inset:0; z-index:800; background:rgba(255,255,255,.24); background-image:radial-gradient(ellipse at center,rgba(255,255,255,.82),rgba(255,255,255,.42) 35%,rgba(255,255,255,0) 70%); touch-action:pan-y pinch-zoom; cursor:default; }
.bsgm-map .bsgm-unlock-prompt { position:absolute; inset:0; z-index:1350; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:16px; box-sizing:border-box; pointer-events:none; touch-action:pan-y pinch-zoom; text-align:center; }
.bsgm-map .bsgm-unlock-prompt .bsgm-lock { width:144px; height:44px; gap:8px; padding:0 18px!important; border-color:#613A2E!important; color:#613A2E!important; box-shadow:0 3px 14px rgba(97,58,46,.09)!important; pointer-events:auto; }
.bsgm-map .bsgm-unlock-prompt p { max-width:260px; margin:0!important; padding:0!important; color:#4F4944!important; font:400 12px/1.6 'Plus Jakarta Sans',sans-serif!important; text-transform:none!important; }
.bsgm-map .bsgm-unlock-slot { display:flex; align-items:flex-start; justify-content:flex-start; width:144px; height:44px; }
.bsgm-map .bsgm-lock-slot { display:flex; align-items:flex-start; justify-content:flex-start; width:var(--bsgm-control-size); height:var(--bsgm-control-size); }
.bsgm-map .bsgm-lock-slot:empty { display:none; }
.bsgm-map [hidden] { display:none!important; }
.bsgm-map .bsgm-zoom,.bsgm-map .bsgm-actions { position:absolute; top:12px; z-index:1300; display:flex; gap:4px; }
.bsgm-map .bsgm-zoom { left:12px; flex-direction:column; z-index:1000; }
.bsgm-map .bsgm-actions { right:12px; flex-direction:column; align-items:flex-end; gap:8px; }
.bsgm-map .bsgm-control { display:inline-flex!important; align-items:center!important; justify-content:center!important; flex:none; box-sizing:border-box!important; width:40px; height:40px; min-width:0!important; min-height:0!important; margin:0!important; padding:0!important; border:1px solid #DCD7D3!important; border-radius:50%!important; background:#FFFFFF!important; color:#625E59!important; font:400 12px/1 'Plus Jakarta Sans',sans-serif!important; letter-spacing:0!important; text-transform:none!important; text-decoration:none!important; box-shadow:0 2px 6px rgba(0,0,0,.04)!important; cursor:pointer; transition:color .16s,border-color .16s,background-color .16s!important; -webkit-tap-highlight-color:transparent; }
.bsgm-map .bsgm-control svg { display:block; width:17px; height:17px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.bsgm-map .bsgm-lock { position:relative; z-index:1; width:var(--bsgm-control-size); height:var(--bsgm-control-size); gap:0; padding:0!important; border-radius:999px!important; font-size:14px!important; overflow:hidden; white-space:nowrap; }
.bsgm-map .bsgm-lock-label { display:inline-block; max-width:0; opacity:0; overflow:hidden; white-space:nowrap; }
.bsgm-map .bsgm-unlock-prompt .bsgm-lock-label { max-width:110px; opacity:1; }
.bsgm-map .bsgm-control:disabled { opacity:.42; cursor:default; }
.bsgm-map :is(button,a,[tabindex]) { outline:0!important; outline-offset:0!important; }
.bsgm-map :is(button,a,[tabindex]):is(:focus,:focus-visible,:active) { outline:0!important; outline-offset:0!important; box-shadow:none!important; }
.bsgm-map button,.bsgm-map a { -webkit-tap-highlight-color:transparent; transition:color .16s,border-color .16s,background-color .16s!important; }
.bsgm-map .bsgm-credits { position:absolute; bottom:12px; right:12px; z-index:1300; display:flex; align-items:flex-end; gap:6px; max-width:calc(100% - 24px); }
.bsgm-map .bsgm-credit-links { max-width:calc(100% - 46px); padding:10px 12px; border:1px solid #E3D6CA; border-radius:10px; color:#613A2E; background:#FFFEFC; font:400 10px/1.6 'Plus Jakarta Sans',sans-serif; overflow-wrap:anywhere; }
.bsgm-map .bsgm-credit-links a { color:#613A2E!important; text-decoration:underline!important; text-underline-offset:2px; }
.bsgm-map .bsgm-state { position:absolute; inset:70px 12px 65px; z-index:1400; display:flex; align-items:center; justify-content:center; padding:12px; pointer-events:none; text-align:center; color:#7A6256; font:400 13px/1.6 'Plus Jakarta Sans',sans-serif; }
.bsgm-map .bsgm-state p { margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; font:inherit; }
.bsgm-map .bsgm-state button { pointer-events:auto; margin-top:8px; padding:7px 10px; border:1px solid #DCD7D3; border-radius:24px; background:#FFFFFF; color:#613A2E; font:inherit; cursor:pointer; transition:color .16s,border-color .16s!important; }
.bsgm-map .bsgm-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; border:0!important; }
.bsgm-map:is(:fullscreen,:-webkit-full-screen,.beansider-ios-fs) { width:100vw!important; max-width:none!important; height:100vh!important; height:100dvh!important; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:#F5ECE3!important; }
.bsgm-map.beansider-ios-fs { position:fixed!important; inset:0!important; z-index:2147483647!important; }
.bsgm-map .leaflet-popup-close-button,.bsgm-map .leaflet-popup-tip-container { display:none!important; }
.bsgm-map .bsgm-popup-pane { z-index:1100; }
.bsgm-map .leaflet-popup-content-wrapper { padding:0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.bsgm-map .leaflet-popup-content { width:var(--bs-popup-width,320px)!important; margin:0!important; font:13px/1.5 'Plus Jakarta Sans',sans-serif; }
.bsgm-map .leaflet-popup { margin-bottom:8px; }
.bsgm-map .bsgm-card { position:relative; width:100%; max-height:var(--bs-card-height,400px); color:#1F1F1E; background:#FFFFFF; border:1px solid #E3D6CA; border-radius:12px; box-shadow:0 6px 20px rgba(31,31,30,.1); overflow:hidden; box-sizing:border-box; font-family:'Plus Jakarta Sans',sans-serif; }
.bsgm-map .bsgm-card[data-specialty] { border-color:#EADBB6; }
.bsgm-map .bsgm-card * { box-sizing:border-box; }
.bsgm-map .bsgm-card-front { display:flex; flex-direction:column; min-height:0; max-height:inherit; }
.bsgm-map .bsgm-card-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:#E3D6CA transparent; padding:14px; }
.bsgm-map .bsgm-card-front .bsgm-card-scroll { max-height:calc(var(--bs-card-height,400px) - 52px); }
.bsgm-map .bsgm-card-photo { display:block; margin:0 0 14px; }
.bsgm-map .bsgm-card-photo img { display:block!important; width:100%!important; height:144px!important; object-fit:cover!important; border-radius:7px!important; border:1px solid #F0ECE7; }
.bsgm-map .bsgm-card-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 13px; padding-right:0; }
.bsgm-map .bsgm-card:not([data-photo]) .bsgm-card-heading { padding-right:34px; }
.bsgm-map .bsgm-card-title { min-width:0; margin:0!important; padding:0!important; font:400 24px/1.12 'DM Serif Display',serif!important; letter-spacing:-.015em!important; color:#613A2E!important; text-wrap:balance; overflow-wrap:anywhere; }
.bsgm-map .bsgm-card-title a { font:inherit!important; color:inherit!important; text-decoration:none; }
.bsgm-map .bsgm-card-title a::after { content:'.'; font:700 1.1em/1 'Plus Jakarta Sans',sans-serif; color:#E3D6CA; margin-left:1px; }
.bsgm-map .bsgm-card-badges { display:flex; align-items:center; flex-wrap:wrap; gap:7px 6px; }
.bsgm-map .bsgm-badge { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:5px 8px; border:1px solid var(--badge-line); border-radius:30px; color:var(--badge-color); background:var(--badge-bg); font:500 12px/1.3 'Plus Jakarta Sans',sans-serif; letter-spacing:.1px; }
.bsgm-map .bsgm-badge span:last-child { min-width:0; overflow-wrap:anywhere; }
.bsgm-map .bsgm-badge-icon,.bsgm-map .bsgm-laptop-icon { display:block; width:14px; height:14px; flex:0 0 14px; background:currentColor; -webkit-mask:var(--badge-icon) center/contain no-repeat; mask:var(--badge-icon) center/contain no-repeat; }
.bsgm-map .bsgm-laptop { display:flex; flex:0 0 28px; width:28px; height:28px; align-items:center; justify-content:center; color:#613A2E; border:1px solid #E3D6CA; border-radius:50%; background:#FAF8F5; }
.bsgm-map .bsgm-laptop-icon { width:16px; height:16px; flex-basis:16px; }
.bsgm-map .bsgm-card button { display:inline-flex; align-items:center; justify-content:center; padding:0!important; min-width:0!important; min-height:0!important; font-family:inherit!important; text-transform:none!important; cursor:pointer; box-shadow:none!important; }
.bsgm-map .bsgm-card-close { position:absolute; top:8px; right:8px; z-index:3; width:32px; height:32px; border:1px solid #E3D6CA!important; border-radius:50%; background:#FFFFFF!important; color:#613A2E!important; }
.bsgm-map .bsgm-card-close svg { width:14px; height:14px; }
.bsgm-map .bsgm-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:9px 14px; border-top:1px solid #EEE8E2; background:#FDFCFA; flex-shrink:0; }
.bsgm-map .bsgm-card-link { display:inline-block; color:#613A2E!important; background:transparent!important; font:400 12px/1.5 'Plus Jakarta Sans',sans-serif!important; text-decoration:none!important; border:0!important; }
.bsgm-map .bsgm-card-link::after { content:none!important; }
.bsgm-map .bsgm-card-dot { color:#CDB9A9; font-weight:700; }

.bsgm-map .custom-pin { filter:drop-shadow(0 3px 3px rgba(31,31,30,.16)); }
.bsgm-map .bsgm-cluster-icon { background:transparent; border:0; }
.bsgm-map .bsgm-cluster-value { display:flex; align-items:center; justify-content:center; width:100%; height:100%; box-sizing:border-box; border-radius:50%; border:1px solid #CDB9A9; background:#FFFEFC; color:#613A2E; font-family:'Plus Jakarta Sans',sans-serif!important; font-size:16px!important; font-weight:600!important; font-variant-numeric:tabular-nums; line-height:1!important; box-shadow:0 0 0 4px rgba(250,248,245,.72),0 3px 9px rgba(97,58,46,.12); transition:background .15s,border-color .15s; }
.bsgm-map .bsgm-cluster-value[data-large] { font-size:13px!important; }
.bsgm-map .bsgm-cluster-icon:hover .bsgm-cluster-value { background:#FAF8F5; border-color:#613A2E; }

@media(max-width:1024px) { .bsgm-section { margin:48px auto 56px; } .bsgm-section .bsgm-title { font-size:32px!important; margin-bottom:28px!important; } .bsgm-map { --bsgm-height:520px; } }
@media(max-width:767px) { .bsgm-section { margin:40px auto 48px; padding:0 clamp(12px,4vw,20px); } .bsgm-section .bsgm-title { font-size:28px!important; line-height:1.22!important; margin-bottom:26px!important; } .bsgm-map { --bsgm-height:560px; } .bsgm-map .bsgm-card-photo img { height:120px!important; } }
@media(pointer:coarse),(max-width:767px) { .bsgm-map { --bsgm-control-size:44px; } .bsgm-map .bsgm-control { height:44px; width:44px; } .bsgm-map .bsgm-card-close { width:36px; height:36px; } }
@media(hover:hover) { .bsgm-map .bsgm-control:not(:disabled):hover { color:#613A2E!important; border-color:#BBAA9D!important; background:#FAF8F5!important; } .bsgm-map .bsgm-card-close:hover { background:#FAF8F5!important; border-color:#613A2E!important; } .bsgm-map .bsgm-card-link:hover { color:#1F1F1E!important; text-decoration:none!important; } }
@media(prefers-reduced-motion:reduce) { .bsgm-map * { transition:none!important; animation:none!important; } }
.bsgm-map[data-bsgm-keyboard="true"] :is(button.bsgm-control,button,a):focus { background:#613A2E!important; color:#FFFFFF!important; border-color:#613A2E!important; }
.bsgm-map[data-bsgm-keyboard="true"] .leaflet-marker-icon:focus { filter:brightness(.65); }
.bsgm-map[data-bsgm-keyboard="true"] .leaflet-marker-icon:focus .bsgm-cluster-value { background:#613A2E; color:#FFFFFF; }
    