.strup-osm-map { position:relative; width:100%; min-width:0; }
.strup-osm-map .strup-osm-canvas { width:100%; height:540px; background:#e7e7e1; color:#152028; font-family:var(--sans,sans-serif); isolation:isolate; z-index:0; }
.strup-osm-map .strup-osm-canvas[hidden] { display:none; }
.strup-osm-map .strup-osm-marker { background:transparent; border:0; }
.strup-osm-map .strup-osm-marker::before { content:''; position:absolute; inset:7px; background:#C2A171; border:2px solid #152028; border-radius:50%; }
.strup-osm-map .strup-osm-popup { font-size:16px; line-height:1.6; }
.strup-osm-map .leaflet-popup-content-wrapper,.strup-osm-map .leaflet-popup-tip { background:#152028; color:#F3F0E8; }
.strup-osm-map .leaflet-popup-content { margin:20px 28px 20px 20px; }
.strup-osm-map .strup-osm-popup a { color:#C2A171; text-decoration:none; font-weight:600; display:inline-flex; align-items:center; min-height:44px; }
.strup-osm-map .strup-osm-note,.strup-osm-map .strup-osm-fallback { font-size:16px; line-height:1.6; color:var(--ink,#F3F0E8); margin:16px 12px 0; }
.strup-osm-map .strup-osm-attr { display:block; font-size:13px; line-height:1.5; color:var(--muted,#D3D4CE); margin:8px 12px; }
.strup-osm-map[data-ready="true"] > .strup-osm-attr { display:none; }
.strup-osm-map .strup-osm-fallback a { color:#C2A171; text-decoration:none; font-weight:600; }
.strup-osm-map .strup-osm-canvas .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; font-size:24px; display:block; color:#152028; background:#fff; text-decoration:none; }
.strup-osm-map .leaflet-popup a.leaflet-popup-close-button { width:44px; height:44px; line-height:40px; color:#F3F0E8; }
.strup-osm-map a:focus-visible,.strup-osm-map .strup-osm-marker:focus-visible,.strup-osm-map .strup-osm-canvas:focus-visible { outline:3px solid #C2A171; outline-offset:3px; }
.strup-osm-map .strup-osm-canvas .leaflet-control-attribution { font-size:12px; line-height:1.5; color:#152028; padding:3px 6px; }
.strup-osm-map .leaflet-control-attribution a { color:#16466a; display:inline; min-height:0; }
@media(max-width:768px) { .strup-osm-map .strup-osm-canvas { height:400px; } }

/* The same local Leaflet, framed for cemetery and town detail pages. */
.strup-osm-local { border:1px solid var(--line,#c2a17140); background:var(--surface,#20303a); }
.strup-osm-local .strup-osm-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 24px; }
.strup-osm-local .strup-osm-heading h2 { font:400 clamp(24px,2.2vw,30px)/1.25 var(--serif,serif); margin:0; }
.strup-osm-local .strup-osm-eyebrow { font-size:13px; line-height:1.5; color:var(--gold,#c2a171); margin:0 0 4px; }
.strup-osm-local .strup-osm-heading > a { flex-shrink:0; display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; color:var(--gold,#c2a171); }
.strup-osm-local .strup-osm-canvas { height:460px; }
.strup-osm-local .strup-osm-legend { display:flex; align-items:baseline; gap:12px; margin:0; padding:16px 24px; font-size:13px; line-height:1.65; color:var(--muted,#d3d4ce); }
.strup-osm-local .strup-osm-legend::before { content:''; width:20px; height:10px; flex:none; border:2px solid #c2a171; background:#c2a17330; }
.strup-osm-local .strup-osm-reset { padding:0 14px; min-height:44px; color:#152028; background:#fff; border:1px solid #777; border-radius:2px; font:600 13px/1.4 var(--sans,sans-serif); cursor:pointer; box-shadow:0 1px 4px #0002; }
.strup-osm-local .strup-osm-reset:focus-visible { outline:3px solid #8b6328; outline-offset:2px; }
.strup-osm-local .strup-osm-popup p { font-size:14px; line-height:1.6; margin:8px 0 0; }
.strup-osm-local .leaflet-tooltip { max-width:240px; white-space:normal; padding:8px 12px; font:500 13px/1.5 var(--sans,sans-serif); }
@media(max-width:800px) {
 .strup-osm-local .strup-osm-canvas { height:340px; }
 .strup-osm-local .strup-osm-heading { padding:16px; gap:12px; }
 .strup-osm-local .strup-osm-heading h2 { font-size:24px; }
 .strup-osm-local .strup-osm-heading > a { font-size:13px; }
 .strup-osm-local .strup-osm-legend { padding:14px 16px; }
}
@media(max-width:380px) { .strup-osm-local .strup-osm-heading { flex-wrap:wrap; gap:0 12px; } }

.strup-osm-office .strup-osm-canvas{height:300px}
.strup-osm-office .strup-osm-note{font-size:14px;margin:12px 0 0}
