.location-section { padding:40px clamp(24px,5vw,80px) 100px; }
.location-explorer { display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px 48px;align-items:center; }
.location-map-wrap { min-width:0;position:relative; }
.location-map svg { width:100%;height:auto;display:block; }
.map-ground { fill:var(--bg-default); }
.map-contours { fill:none;stroke:var(--border-default);stroke-width:1;opacity:.65; }
.map-green { fill:#3b615139; }
.map-blocks { fill:#3f5b6f;opacity:.42; }
html[data-theme="light"] .map-blocks { fill:#8da1ac;opacity:.38; }
.map-roads { fill:none;stroke:#638296;stroke-width:3;opacity:.42; }
.map-roads path:first-child { stroke-width:6; }
.map-river { fill:none;stroke:#396681;stroke-width:20; }
html[data-theme="light"] .map-river { stroke:#c1dce9; }
.map-site-label { fill:var(--text-primary);font-family:var(--font-sans);font-size:14px;font-weight:400; }
.map-site-label-bg { fill:var(--bg-default);opacity:.93; }
.map-site.is-selected>circle:first-child { opacity:.4; }
.map-scale path { stroke:var(--text-tertiary);fill:none; }
.map-scale text { fill:var(--text-tertiary);font-family:var(--font-sans);font-size:12px; }
.overlay-label { fill:var(--text-primary);font-family:var(--font-sans);font-size:14px;font-weight:500;paint-order:stroke;stroke:var(--bg-default);stroke-width:2;stroke-linejoin:round; }
.location-overlay { opacity:0;transition:opacity .3s;pointer-events:none; }
.location-overlay.is-visible { opacity:1; }
.location-map-caption { display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--text-tertiary);padding:0 8%; }
.location-layer-list { display:flex;flex-direction:column; }
.location-layer-list button { display:flex;gap:13px;align-items:center;border:0;border-bottom:1px solid var(--border-default);padding:15px 0;background:none;text-align:left;color:var(--text-secondary);cursor:pointer;font:inherit; }
.location-layer-list button>i { width:7px;height:7px;border-radius:50%;background:var(--layer-color);flex:none; }
.location-layer-list button>span:not(.layer-plus) { font-size:14px;flex:1; }
.location-layer-list small { display:block;margin-top:5px;font-size:10px;color:var(--text-tertiary); }
.layer-plus { font-size:20px;font-weight:300;transition:transform .2s; }
.location-layer-list [aria-pressed="true"] .layer-plus { transform:rotate(45deg); }
.location-layer-list .is-preview { color:var(--text-primary);border-color:var(--link-color); }
.location-layer-list button:focus-visible { outline:2px solid var(--link-color);outline-offset:4px; }
.location-layer-note { min-height:65px;font-size:12px;line-height:1.7;color:var(--text-secondary);margin:20px 0 0; }
.ald-hero-visual { position:relative;align-self:center;min-width:0; }
.ald-hero-visual svg { display:block;width:100%; }
.ald-hero-visual .map-scale,.ald-hero-visual .location-overlay { display:none; }
.ald-record { margin:-50px 30px 0;padding:24px;border-top:1px solid var(--border-strong);position:relative; }
.ald-record>span { font-size:11px;color:var(--text-secondary); }
.ald-record strong { display:block;font-size:24px;font-weight:400;line-height:1.3;margin:12px 0; }
.ald-record p { font-size:12px;color:var(--text-secondary); }
@media(max-width:1000px){.location-explorer{grid-template-columns:minmax(0,1fr) 265px;gap:25px}.location-map-wrap{align-self:start;position:sticky;top:105px}.location-map-caption{font-size:9px;flex-wrap:wrap;gap:5px}.location-layer-list button{padding:12px 0}}
@media(max-width:720px){.location-explorer{grid-template-columns:1fr;gap:28px}.location-map-wrap{position:relative;top:auto;margin:0 -16px}.location-layer-list{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.location-layer-list button>span:not(.layer-plus){font-size:12px}.location-layer-list small{font-size:9px}.location-layer-note{min-height:0}.ald-record{margin:-25px 10px 0}.location-map-caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.location-overlay,.layer-plus{transition:none}}
/* Real OSM geography. Raised buildings are neutral basemap context, not asset footprints. */
.geo-green { fill:#1c1c1c;opacity:.65; }
.geo-forest { fill:#181818;opacity:.9; }
.geo-residential { fill:#202020;opacity:.55; }
.geo-industrial { fill:#101010;opacity:.65; }
.geo-reserve { fill:#1a1a1a;opacity:.7; }
.geo-water { fill:#333333; }
.geo-waterlines { fill:none;stroke:#44484a;stroke-width:1.8; }
.geo-streets { fill:none;stroke:#55595c;stroke-width:.8;opacity:.55; }
.geo-roads { fill:none;stroke:#73797c;stroke-width:1.3;opacity:.65; }
.geo-major { fill:none;stroke:#90989c;stroke-width:2.1;opacity:.8; }
.geo-rail { fill:none;stroke:#81929d;stroke-width:.8;stroke-dasharray:3 2;opacity:.6; }
.geo-buildings { fill:#42494d;opacity:.72; }
.geo-walls { fill:#262c30;stroke:#1b2226;stroke-width:.45; }
.geo-roofs { fill:#69777f;stroke:#c4cdd22e;stroke-width:.45; }
.geo-boundaries { fill:none;stroke:#c2a0dd;stroke-width:2;stroke-dasharray:7 4; }
.geo-power { fill:none;stroke:#e0b672;stroke-width:2.1; }
.map-place-labels { fill:#adc3c7;font:13px var(--font-sans);paint-order:stroke;stroke:var(--bg-default);stroke-width:2;stroke-opacity:.7; }
.location-overlay .geo-water { fill:#7dcced; }
.location-overlay .geo-waterlines { stroke:#7dcced;stroke-width:3; }
.location-overlay .geo-forest { fill:#6daf89;opacity:.8; }
.location-overlay .geo-major { stroke:#b7dbe9;stroke-width:2.5;opacity:1; }
.location-overlay .geo-rail { stroke:#bda9d9;stroke-width:1.6;opacity:1; }
html[data-theme="light"] .geo-green { fill:#fafafa;opacity:1; }
html[data-theme="light"] .geo-forest { fill:#f3f5f5;opacity:1; }
html[data-theme="light"] .geo-residential { fill:#e5e7e7;opacity:.7; }
html[data-theme="light"] .geo-industrial { fill:#dfe3e7;opacity:.7; }
html[data-theme="light"] .geo-reserve { fill:#f1f4f3; }
html[data-theme="light"] .geo-water { fill:#dcdcdc; }
html[data-theme="light"] .geo-waterlines { stroke:#bec7cc; }
html[data-theme="light"] .geo-streets { stroke:#aebbc1;opacity:.8; }
html[data-theme="light"] .geo-roads { stroke:#9ca9ae; }
html[data-theme="light"] .geo-major { stroke:#9aa5ac; }
html[data-theme="light"] .geo-buildings { fill:#aeb9c0; }
html[data-theme="light"] .geo-walls { fill:#8a9ca7;stroke:#6b818f; }
html[data-theme="light"] .geo-roofs { fill:#d0d8dc;stroke:#8597a266; }
html[data-theme="light"] .map-place-labels { fill:#60717a; }
html[data-theme="light"] .location-overlay .geo-forest { fill:#75ad83; }
html[data-theme="light"] .location-overlay .geo-water { fill:#5bacca; }
html[data-theme="light"] .location-overlay .geo-waterlines { stroke:#368caf; }
html[data-theme="light"] .location-overlay .geo-major { stroke:#386f87; }
.location-map-caption a,.map-attribution a { color:inherit;text-underline-offset:3px; }
.map-attribution { color:var(--text-tertiary);font-size:10px;line-height:1.5;text-align:right;margin:10px 5% 0; }
.ald-hero-visual .map-attribution { position:relative;margin:-15px 30px 25px; }
.location-map svg { overflow:hidden; }

/* Hero artwork is an unlabelled cartographic relief, deliberately quieter than the explorer. */
.ald-hero-visual { perspective:1100px;padding:28px 0 50px; }
.ald-hero-visual svg { transform:rotateX(30deg) rotateZ(-12deg) scale(1.12);transform-origin:50% 50%;mask-image:radial-gradient(ellipse at center,#000 40%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 72%); }
.ald-hero-visual .map-ground { fill:transparent; }
.ald-hero-visual .map-place-labels,.ald-hero-visual .map-sites text,.ald-hero-visual .map-sites rect { display:none; }
.ald-hero-visual .geo-green,.ald-hero-visual .geo-forest,.ald-hero-visual .geo-reserve { fill:#486174;opacity:.14; }
.ald-hero-visual .geo-residential,.ald-hero-visual .geo-industrial { fill:#637d8f;opacity:.16; }
.ald-hero-visual .geo-water { fill:#658497;opacity:.33; }
.ald-hero-visual .geo-waterlines { stroke:#7597ab;opacity:.45; }
.ald-hero-visual .geo-streets,.ald-hero-visual .geo-roads,.ald-hero-visual .geo-major { stroke:#819dac;opacity:.28; }
.ald-hero-visual .geo-rail { opacity:.16; }
.ald-hero-visual .geo-buildings { fill:#647f91;opacity:.42; }
.ald-hero-visual .geo-walls { fill:#1b2d3b;stroke:#162836; }
.ald-hero-visual .geo-roofs { fill:#8da4b3;stroke:#bfd2db44; }
.ald-hero-visual .map-site circle { fill:#a4c8d4; }
.ald-hero-visual .map-site circle:first-child { opacity:.13; }
.ald-hero-visual .map-attribution { margin:0;position:absolute;right:8%;bottom:20px;font-size:10px;opacity:.8; }
html[data-theme="light"] .ald-hero-visual .geo-green,html[data-theme="light"] .ald-hero-visual .geo-forest,html[data-theme="light"] .ald-hero-visual .geo-reserve { fill:#bfcbd3;opacity:.2; }
html[data-theme="light"] .ald-hero-visual .geo-industrial,html[data-theme="light"] .ald-hero-visual .geo-residential { fill:#d8e0e6;opacity:.4; }
html[data-theme="light"] .ald-hero-visual .geo-water { fill:#aebecb;opacity:.46; }
html[data-theme="light"] .ald-hero-visual .geo-waterlines { stroke:#99afbe;opacity:.45; }
html[data-theme="light"] .ald-hero-visual .geo-streets,html[data-theme="light"] .ald-hero-visual .geo-roads,html[data-theme="light"] .ald-hero-visual .geo-major { stroke:#93a4b0;opacity:.35; }
html[data-theme="light"] .ald-hero-visual .geo-buildings { fill:#b5c1cb;opacity:.5; }
html[data-theme="light"] .ald-hero-visual .geo-walls { fill:#a6b5c0;stroke:#8399a7; }
html[data-theme="light"] .ald-hero-visual .geo-roofs { fill:#f2f5f7;stroke:#b1c2cc; }
html[data-theme="light"] .ald-hero-visual .map-site circle { fill:#506f84; }
@media(max-width:720px){.ald-hero-visual{padding:0 0 20px;margin:0 -10px}.ald-hero-visual .map-attribution{bottom:0}}

/* Neutral base inspired by the app’s bridge black/white styles; overlay colours remain distinct. */
.location-map .map-ground { fill:#141414; }
html[data-theme="light"] .location-map .map-ground { fill:#ffffff; }

.basin-area { fill-opacity:.67;stroke:#f5e9cd;stroke-opacity:.6;stroke-width:1.2;stroke-linejoin:round; }
.basin-lower { fill:#74b5a0; }
.basin-higher { fill:#d8a25c; }
.raster-layer path { stroke:#f3f7f3;stroke-opacity:.2;stroke-width:.45; }
html[data-theme="light"] .basin-area { fill-opacity:.6;stroke:#6e705e;stroke-opacity:.55; }
html[data-theme="light"] .raster-layer path { stroke:#324f5a;stroke-opacity:.18; }
