:root{color-scheme:light;--red:#d61f26;--black:#111;--muted:#4b5563;--gold:#c9a227;--line:#e5e7eb;font-family:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0}
.map-root{position:relative;width:100%;height:100%;min-height:400px;overflow:hidden;background:#eef1f4}
#map{width:100%;height:100%;min-height:400px;background:#eef1f4;font-family:inherit}
.map-overlay{position:absolute;z-index:500;top:12px;left:12px;max-width:min(300px,calc(100% - 56px));padding:10px 12px;background:rgba(255,255,255,.95);border:1px solid #11111114;box-shadow:0 8px 22px #1111111a;pointer-events:none}
.map-overlay h1{font-size:.98rem;line-height:1.25;font-weight:700;margin:0;color:var(--black)}
.subtitle{font-size:.74rem;line-height:1.35;color:#6b7280;margin:3px 0 0}
.summary{font-size:.82rem;line-height:1.35;font-weight:600;margin:6px 0 0;color:var(--black)}
.map-hint{position:absolute;z-index:500;bottom:12px;left:12px;max-width:calc(100% - 60px);margin:0;padding:4px 8px;border-radius:2px;background:#ffffffeb;color:var(--muted);font-size:11px;line-height:1.3;pointer-events:none}
.map-status{position:absolute;z-index:600;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 32px);padding:16px 20px;border:1px solid var(--line);background:white;color:var(--muted);font-size:14px;line-height:1.5;text-align:center;box-shadow:0 8px 22px #11111114}
.map-status[hidden]{display:none}
.map-status.is-notice{top:auto;bottom:58px;transform:translateX(-50%);padding:10px 14px;max-width:360px}
.marker,.cluster-wrap{background:transparent;border:0}
.marker-pin{display:block;width:21px;height:21px;margin:4px auto 0;background:var(--red);border:2px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 10px #d61f2657}
.cluster{display:grid;place-items:center;width:46px;height:46px;border:3px solid white;border-radius:50%;background:var(--red);color:white;box-shadow:0 6px 16px #d61f2652;font-size:.95rem;font-weight:700}
.leaflet-control-zoom{border:0!important;box-shadow:0 4px 14px #11111124}
.leaflet-control-zoom a{width:30px!important;height:30px!important;line-height:30px!important;color:var(--black)!important}
.leaflet-control-attribution{font-size:10px;background:#fffffff0!important}
.leaflet-control-container .leaflet-bottom.leaflet-right{bottom:0}
.leaflet-popup-content-wrapper{border-radius:2px;padding:0;box-shadow:0 10px 24px #11111124}
.leaflet-popup-content{width:min(290px,calc(100vw - 48px))!important;margin:0}
.leaflet-popup-tip{box-shadow:none}
.review-popup{padding:16px 18px 12px}
.review-popup p,.review-popup blockquote{margin:0}
.review-popup .stars{color:var(--gold);letter-spacing:.06em;font-size:.9rem;line-height:1}
.review-popup blockquote{color:var(--black);margin-top:8px;font-size:.88rem;font-weight:500;line-height:1.45}
.review-popup .byline{font-size:.82rem;font-weight:600;margin-top:8px}
.review-popup .place{font-size:.8rem;color:var(--muted);margin-top:4px}
.review-popup .date{font-size:.72rem;color:var(--muted);margin-top:4px}
.review-popup .note{border-top:1px solid var(--line);margin-top:8px;padding-top:6px;font-size:.68rem;color:var(--muted);line-height:1.35}
.leaflet-container:focus-visible,.leaflet-interactive:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media(max-width:600px){.map-overlay{top:8px;left:8px;padding:8px 10px;max-width:calc(100% - 48px)}.map-overlay h1{font-size:.9rem}.summary{font-size:.78rem}.map-hint{left:8px;bottom:26px;font-size:10px;max-width:calc(100% - 64px)}}
@media(prefers-reduced-motion:reduce){.leaflet-zoom-animated,.leaflet-marker-icon{transition:none!important}}
