.cemetery-plan { margin-top: 26px; padding: 30px 0 36px; border-top: 1px solid var(--line); }
.cemetery-plan > h2 { margin: 0 0 8px; font-size: 28px; font-weight: 600; letter-spacing: -.4px; }
.map-intro { margin: 0 0 24px; color: var(--muted); line-height: 1.65; }
.map-frame { background: #fff; }
.cemetery-map-svg { display: block; width: 100%; max-width: 700px; height: auto; margin: 0 auto; font-family: var(--font, 'Segoe UI', Arial, sans-serif); }
.cemetery-map-svg, .cemetery-map-svg * { caret-color: transparent; -webkit-user-select: none; user-select: none; cursor: default; }
.map-area { fill: #f0f0f3; stroke: #9999a2; stroke-width: 2; stroke-linejoin: miter; transition: fill .15s; }
.map-area.is-selected { fill: #d2d2db; stroke: #555560; stroke-width: 4; }
.cemetery-map-svg .cemetery-sector[role="button"], .cemetery-map-svg .cemetery-sector[role="button"] * { cursor: pointer; }
.cemetery-sector[role="button"]:focus { outline: none; }
.cemetery-sector[role="button"]:focus-visible .map-area { fill: #d2d2dc; stroke: #22222a; stroke-width: 6; }
@media (hover:hover) { .cemetery-sector[role="button"]:hover .map-area { fill: #dcdce4; stroke: #62626d; stroke-width: 4; } }
.map-sector-letter { fill: #38383d; font-size: 52px; font-weight: 600; }
.map-field-label circle { fill: #fff; stroke: #b0b0b8; stroke-width: 1.5; }
.map-grave-symbols { fill: #fff; stroke: #b6b6be; stroke-width: 1; pointer-events: none; }
.map-grave-symbols .map-internal-path { fill: none; stroke: #fff; stroke-width: 15; }
.map-fence { fill: none; stroke: #777780; stroke-width: 4; stroke-linejoin: miter; }
.map-boundary-estimated { fill: none; stroke: #9999a2; stroke-width: 3; stroke-dasharray: 10 9; }
.map-lawn { fill: #fafafa; stroke: none; }
.map-lawn-edge { fill: none; stroke: #d6d6db; stroke-width: 2; }
.map-footpath-border { fill: none; stroke: #d4d4da; stroke-width: 21; stroke-linecap: round; stroke-linejoin: round; }
.map-footpath { fill: none; stroke: #f0f0f2; stroke-width: 17; stroke-linecap: round; stroke-linejoin: round; }
.map-tree path { fill: #f7f7f8; stroke: #b2b2bb; stroke-width: 1.5; }
.map-tree circle { fill: #c5c5cc; }
.map-woodland { fill: #f2f2f4; stroke: #d3d3da; stroke-width: 1.5; }
.map-road { fill: none; stroke: #f1f1f4; stroke-width: 54; }
.map-road-edge { fill: none; stroke: #b8b8c0; stroke-width: 2; }
.map-entry-arrow { fill: none; stroke: #55555e; stroke-width: 3; }
.map-context-label { fill: #66666f; font-size: 31px; font-weight: 500; }
.map-lawn-label { fill: #777780; font-size: 35px; font-weight: 500; }
.map-entry-label { font-size: 29px; }
.map-street-label { fill: #66666e; font-size: 31px; font-weight: 600; }
.map-legend text { fill: #73737d; font-size: 27px; }
.person-plan { margin: 20px 0 26px; }
.person-plan .map-frame { margin-top: 0; }
.person-plan .cemetery-map-svg { max-width: 480px; }
.map-caption { margin: 16px 0 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
@media (max-width:600px) { .cemetery-plan { margin-top:16px; padding-top:24px; } .cemetery-plan > h2 { font-size:clamp(20px,5vw,26px); } .map-intro { font-size:14px; } }
@media (prefers-reduced-motion:reduce) { .map-area { transition:none; } }
