/* Wuhan map: scoped presentation, shared geography and attribution remain intact. */
.map-page-intro{padding-top:54px;padding-bottom:36px}.map-page-intro h1{font-size:clamp(38px,4.8vw,66px);line-height:1.18;letter-spacing:-.055em;margin:20px 0}.map-page-intro h1 em{font-style:normal;color:#28766c;display:inline-block}.map-page-intro>p{max-width:680px;color:#63716c;margin:0;font-size:16px}.map-page-intro .eyebrow{color:#65736f}.map-page-intro .eyebrow:before{background:#ee6a51}
.city-map-modern{--map-ink:#203932;--map-muted:#64746d;--map-line:#e1e8e3;--map-hankou:#c75039;--map-hanyang:#21796d;--map-wuchang:#4c62bd;--map-height:640px;padding-bottom:68px}.city-map-modern [data-map-town="汉口"]{--town:var(--map-hankou);--town-soft:#fff0e9;--town-ink:#b54833}.city-map-modern [data-map-town="汉阳"]{--town:var(--map-hanyang);--town-soft:#e9f5ef}.city-map-modern [data-map-town="武昌"]{--town:var(--map-wuchang);--town-soft:#edf0ff}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.city-map-modern .map-filters{display:flex;gap:5px;padding:5px;background:#e9eeea;border:1px solid #e0e7e1;border-radius:16px;margin:0}.city-map-modern .map-filters button{display:flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;background:transparent;color:#65746d;border:0;border-radius:11px;font-size:14px;white-space:nowrap;transition:background .18s,color .18s,box-shadow .18s}.city-map-modern .map-filters button[aria-pressed=true]{background:#fff;color:var(--map-ink);box-shadow:0 2px 7px #233c3010}.map-filter-dot,.map-key i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--town,#53665c);flex-shrink:0}.map-filter-count{font-size:11px;font-variant-numeric:tabular-nums;opacity:.7}.map-toolbar-note{font-size:12px;color:var(--map-muted);text-align:right}.map-workspace{display:grid;grid-template-columns:318px minmax(0,1fr);gap:18px;align-items:stretch}.map-list-panel{height:var(--map-height);display:flex;flex-direction:column;border:1px solid var(--map-line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 6px 24px #29423405}.map-list-heading{padding:23px 22px 17px;border-bottom:1px solid #edf0ed}.map-list-heading>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.map-list-heading h2{font-size:17px;letter-spacing:-.025em;margin:0;font-weight:650}.map-list-heading p{font-size:11px;color:var(--map-muted);margin:8px 0 0}.map-result-count{font-size:12px;color:var(--map-muted)}.map-result-count b{font-weight:600;color:var(--map-ink);font-variant-numeric:tabular-nums}.city-map-modern .map-point-list{display:block;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cdd9d0 transparent;list-style:none;padding:9px;margin:0;flex:1;min-height:0}.city-map-modern .map-point-list li{display:flex;gap:12px;padding:15px 12px;border:1px solid transparent;border-radius:14px;align-items:flex-start;transition:background .18s,border-color .18s}.city-map-modern .map-point-list li+li{margin-top:3px}.city-map-modern .map-point-list li:hover{background:#f7f9f6}.city-map-modern .map-point-list li.is-active{background:var(--town-soft);border-color:color-mix(in srgb,var(--town) 22%,transparent)}.city-map-modern .map-point-list li[hidden]{display:none}.map-point-content{min-width:0;flex:1}.city-map-modern .map-point-list a{display:flex;justify-content:space-between;gap:8px;font-size:14px;font-weight:650;line-height:1.55;letter-spacing:-.025em;color:var(--map-ink)}.map-point-arrow{color:#91a198;font-size:14px;flex-shrink:0}.city-map-modern .map-point-list p{font-size:11px;line-height:1.65;color:var(--map-muted);margin:5px 0 6px}.city-map-modern .map-point-list small{font-size:10px;line-height:1.5;color:var(--town)}.city-map-modern .map-locate{display:grid;place-items:center;min-width:34px;width:34px;height:34px;padding:0;border:0;border-radius:11px;background:var(--town-soft);color:var(--town-ink,var(--town));font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;flex-shrink:0;transition:background .18s,color .18s,transform .18s}.city-map-modern .map-locate:hover,.city-map-modern .is-active .map-locate{background:var(--town);color:white}.map-surface{position:relative;min-width:0;height:var(--map-height);border:1px solid #dce6df;border-radius:22px;background:#e8eeea;overflow:hidden;box-shadow:0 10px 36px #29423408}.city-map-modern #wuhan-map{height:100%;min-height:360px;width:100%;border:0;background:#e6efec;z-index:0;font-family:inherit}.city-map-modern .leaflet-tile-pane{filter:saturate(.42) contrast(.93) brightness(1.055)}.map-surface-label{position:absolute;left:20px;top:20px;z-index:450;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #ffffffb3;background:#ffffffed;border-radius:12px;box-shadow:0 4px 18px #284c3d0a;pointer-events:none}.map-surface-label i{width:7px;height:7px;background:#2d8c76;border-radius:50%;box-shadow:0 0 0 4px #e5f4ec}.map-surface-label strong{font-size:10px;letter-spacing:.16em;color:var(--map-ink)}.map-surface-label span{padding-left:10px;border-left:1px solid #dfe7e0;font-size:11px;color:var(--map-muted)}.map-key{position:absolute;z-index:450;bottom:32px;left:20px;display:flex;align-items:center;gap:16px;border:1px solid #ffffffb3;background:#fffffff2;border-radius:12px;padding:10px 14px;box-shadow:0 4px 18px #284c3d08;pointer-events:none}.map-key span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#50655a}.map-key [data-map-town="汉口"]{--town:var(--map-hankou)}.map-key [data-map-town="汉阳"]{--town:var(--map-hanyang)}.map-key [data-map-town="武昌"]{--town:var(--map-wuchang)}.map-reset{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:9px 12px;border:1px solid #dce5df;border-radius:12px;background:#fff;color:#4f655a;font-size:12px;cursor:pointer}.map-reset:hover{background:#eef4ee}.map-toolbar-actions{display:flex;align-items:center;gap:16px}.city-map-modern .leaflet-control-zoom{border:0;box-shadow:0 4px 18px #294b3921;border-radius:12px;overflow:hidden;margin:20px}.city-map-modern .leaflet-control-zoom a{background:#fffffff5;color:#4c6758;border-color:#e5ece7;font-size:19px;width:34px;height:34px;line-height:34px}.city-map-modern .leaflet-control-attribution{font-size:9px;background:#ffffffe6;padding:1px 7px;color:#5c7165}.city-map-modern .leaflet-control-attribution a{color:#476454}.city-map-modern .leaflet-control-scale{margin:0 15px 30px 0;font-size:10px}.city-map-modern .leaflet-control-scale-line{border-color:#6e8677;color:#4c6758;background:#ffffffd9}.city-map-modern .map-marker{background:transparent;border:0;--town:#21796d}.city-map-modern .map-marker span{width:36px;height:36px;display:grid;place-items:center;background:var(--town);border:3px solid #fff;color:white;font:700 12px/1 Arial,sans-serif;border-radius:50%;box-shadow:0 3px 12px #233f3733,0 0 0 1px #20393208;transition:transform .16s,box-shadow .16s;position:relative;z-index:1}.city-map-modern .map-marker:hover span,.city-map-modern .map-marker:focus-visible span{transform:scale(1.13);box-shadow:0 5px 16px #233f3744}.city-map-modern .map-leader{background:var(--town);opacity:.65;z-index:0}.city-map-modern .city-map-popup .leaflet-popup-content-wrapper{border-radius:18px;box-shadow:0 10px 34px #243e2f24;border:1px solid #e5ebe6;padding:1px}.city-map-modern .city-map-popup .leaflet-popup-content{margin:19px 20px;line-height:1.6;font-family:inherit}.map-popup-town{font-size:10px;letter-spacing:.1em;color:var(--map-muted);margin-bottom:6px}.city-map-modern .leaflet-popup-content strong{display:block;font-size:16px;line-height:1.6;max-width:245px;color:var(--map-ink)}.city-map-modern .leaflet-popup-content p{font-size:11px;line-height:1.7;margin:8px 0 14px;color:#64746d}.city-map-modern .leaflet-popup-content .map-popup-link{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;background:#234d40;color:white;font-size:12px;font-weight:600;border-radius:10px;min-height:40px}.city-map-modern .leaflet-popup-content .map-popup-source{display:inline-block;color:#5c7064;font-size:10px;margin-top:10px;text-decoration:underline;text-underline-offset:3px}.city-map-modern .leaflet-popup-close-button{top:8px;right:8px;color:#829389}.city-map-modern .map-point-tooltip{font-family:inherit;border:0;border-radius:8px;font-size:11px;padding:6px 10px;color:#234335;box-shadow:0 4px 16px #233f3720}.map-footer-note{display:flex;justify-content:space-between;gap:30px;padding:17px 3px 0;color:#64746d}.map-footer-note #map-status{font-size:11px;max-width:510px;margin:0;line-height:1.8}.map-location-note{font-size:10px;max-width:390px;margin:0;text-align:right;line-height:1.8}.city-map-modern button:focus-visible,.city-map-modern a:focus-visible,.city-map-modern .map-marker:focus-visible{outline:3px solid #e77a56;outline-offset:4px}
@media(min-width:1600px){.city-map-modern{--map-height:700px}.map-workspace{grid-template-columns:350px minmax(0,1fr)}}
@media(max-width:1100px){.map-workspace{grid-template-columns:280px minmax(0,1fr)}.city-map-modern .map-filters button{padding:10px 13px}.map-toolbar-note{display:none}.map-key{gap:12px;padding:8px 12px}.map-surface-label strong{letter-spacing:.1em}}
@media(max-width:900px){.map-workspace{grid-template-columns:1fr}.map-surface{grid-row:1;height:510px}.map-list-panel{height:auto;max-height:none}.city-map-modern .map-point-list{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.map-list-heading{padding:18px 21px}.city-map-modern .map-point-list li+li{margin-top:0}.map-footer-note{display:block}.map-location-note{text-align:left;max-width:none;margin-top:9px}.map-page-intro{padding-top:36px;padding-bottom:28px}.map-page-intro h1{letter-spacing:-.05em}.map-toolbar{gap:12px}.map-toolbar-actions{gap:0}}
@media(max-width:560px){.map-page-intro h1{font-size:37px;line-height:1.3}.map-page-intro>p{font-size:14px;line-height:1.9}.map-toolbar{display:block}.city-map-modern .map-filters{width:100%;justify-content:space-between;border-radius:14px;gap:2px;padding:4px}.city-map-modern .map-filters button{flex:1;padding:9px 5px;gap:4px;font-size:12px}.map-filter-count{font-size:10px}.map-filter-dot{width:6px;height:6px}.map-toolbar-actions{justify-content:flex-end;margin-top:10px}.map-reset{padding:7px 11px;min-height:34px;font-size:11px}.map-surface{height:440px;border-radius:18px}.map-surface-label{top:14px;left:14px;padding:9px 11px;border-radius:10px;gap:8px}.map-surface-label strong{font-size:9px;letter-spacing:.09em}.map-surface-label span{font-size:10px;padding-left:8px}.city-map-modern .leaflet-control-zoom{margin:14px}.city-map-modern .leaflet-control-zoom a{width:31px;height:31px;line-height:31px}.map-key{bottom:29px;left:12px;gap:12px;padding:8px 11px;border-radius:10px}.map-key span{font-size:10px}.city-map-modern .leaflet-control-scale{margin-right:9px;margin-bottom:28px}.map-list-panel{border-radius:18px}.city-map-modern .map-point-list{grid-template-columns:1fr;padding:7px}.city-map-modern .map-point-list li{padding:14px 12px}.city-map-modern .map-point-list a{font-size:14px}.map-list-heading p{font-size:11px}.city-map-modern{padding-bottom:44px}}
@media(prefers-reduced-motion:reduce){.city-map-modern *, .city-map-modern *:before{transition:none!important;scroll-behavior:auto!important}}
/* Selected screen preview. Photographs are requested only after a selection. */
.map-detail[hidden]{display:none}.map-detail{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);margin-top:22px;background:#fff;border:1px solid var(--map-line);border-radius:22px;overflow:hidden;box-shadow:0 12px 40px #29423408;scroll-margin-top:100px}.map-detail-visual{background:#edf1ed;min-width:0;padding:18px;display:flex;flex-direction:column}.map-detail-tabs{display:flex;gap:4px;align-self:flex-start;border-radius:12px;background:#dde5df;padding:4px;margin-bottom:14px}.map-detail-tabs button{font:inherit;font-size:12px;min-height:40px;padding:9px 17px;border:0;border-radius:9px;background:transparent;color:#52685d;cursor:pointer}.map-detail-tabs button[aria-selected=true]{background:#fff;color:#234d40;box-shadow:0 2px 6px #233c3010}.map-detail-visual figure{margin:0;min-width:0}.map-detail-visual img{display:block;width:100%;height:clamp(230px,27vw,360px);object-fit:contain;background:#18251f;border-radius:12px}.map-detail-visual .is-area-map{background:#f5f5ef}.map-detail-visual figcaption{font-size:11px;line-height:1.7;color:#566a5e;padding:12px 3px 0}.map-detail-copy{padding:38px;position:relative;min-width:0}.map-detail-copy .eyebrow{font-size:10px;letter-spacing:.12em;color:#557668;padding-right:24px}.map-detail-copy h2{font-size:clamp(22px,2.2vw,30px);line-height:1.45;color:var(--map-ink);letter-spacing:-.04em;margin:15px 0 8px}.map-detail-copy>p{font-size:12px;color:var(--map-muted);margin:0 0 20px}.map-detail-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:50%;background:#f0f4ee;border:0;color:#4a6457;font-size:23px;cursor:pointer}.map-detail-copy dl{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;margin:24px 0}.map-detail-copy dt{font-size:11px;color:#718277;margin-bottom:5px}.map-detail-copy dd{font-size:14px;font-weight:600;color:#294a3b;margin:0;line-height:1.6;overflow-wrap:anywhere}.map-detail-copy .map-detail-note{font-size:10px;line-height:1.8;border-top:1px solid #e7ece6;padding-top:17px;margin-bottom:18px}.map-detail-link{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 17px;border-radius:12px;background:#234d40;color:#fff;font-size:13px;font-weight:600;min-height:44px}.map-detail-link:hover{background:#163f32}.map-detail button:focus-visible,.map-detail a:focus-visible,.map-detail [tabindex]:focus-visible{outline:3px solid #437bba;outline-offset:3px}.map-detail #map-image-error{font-size:12px;color:#a23d2b;padding:12px 0;margin:0}
@media(max-width:700px){.map-detail{grid-template-columns:1fr;scroll-margin-top:80px}.map-detail-copy{padding:24px}.map-detail-visual{padding:12px}.map-detail-visual img{height:260px}.map-detail-copy h2{padding-right:20px}.map-detail-copy dl{gap:16px 10px}.map-detail-copy dd{font-size:13px}}
@media(prefers-reduced-motion:reduce){.city-map-modern *{scroll-behavior:auto}}
.map-detail-visual img.is-loading{opacity:0}.map-detail #map-image-error[hidden]{display:none}
