/* Wikimedia Europe map with interactive fusion-site pins */
.map-section{background:var(--color-bg)}
.map-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(21rem,1fr);gap:1.5rem;align-items:stretch}
.map-visual{min-width:0;display:flex}
.europe-map{position:relative;isolation:isolate;width:100%;aspect-ratio:1613/1417;overflow:hidden;display:block;border:1px solid var(--color-border);border-radius:1rem;background:var(--color-soft)}
.europe-map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:grayscale(1) sepia(.12) contrast(.9);opacity:.8}
.map-marker{position:absolute;left:var(--x);top:var(--y);z-index:1;display:flex;align-items:center;gap:.32rem;min-height:2.75rem;padding:.35rem .5rem;border:0;border-radius:2rem;background:transparent;color:var(--color-text-primary);font:700 .73rem/1 'Open Sans',Arial,sans-serif;transform:translate(-50%,-50%);transition:background .2s,color .2s,box-shadow .2s}
.map-dot{width:.8rem;height:.8rem;flex:0 0 auto;border:2px solid var(--color-paper);border-radius:50%;background:var(--color-accent-primary);box-shadow:0 0 0 1px var(--color-accent-primary),0 0 0 5px rgba(0,0,0,.14);transition:background .2s,transform .2s}
.marker-label{padding:.25rem .4rem;border-radius:.25rem;background:rgba(255,249,244,.9);white-space:nowrap}
.map-marker:hover,.map-marker:focus-visible,.map-marker[aria-pressed=true]{background:var(--color-accent-primary);color:var(--color-white);box-shadow:0 3px 12px rgba(0,0,0,.16)}
.map-marker:hover .map-dot,.map-marker:focus-visible .map-dot,.map-marker[aria-pressed=true] .map-dot{background:var(--color-accent-warm);transform:scale(1.15)}
.map-detail{height:100%;min-height:0;padding:clamp(1.4rem,2.5vw,2.2rem);border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg);transition:opacity .25s ease}
.map-detail.is-changing{opacity:0}.map-detail h3{margin:0 0 .4rem}.map-location{font:var(--text-small) 'Open Sans',Arial,sans-serif;color:var(--color-text-secondary)}.map-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}.map-note{font-size:.76rem;color:var(--color-text-secondary)}
@media(max-width:55.9375rem){.map-layout{grid-template-columns:1fr}.europe-map{max-width:46rem;margin:auto}.map-detail{min-height:17rem}.map-note{margin-top:1rem}}

.map-marker{z-index:2}.map-marker:hover,.map-marker:focus-visible{background:rgba(250,249,245,.95);color:var(--color-text-primary);box-shadow:0 2px 10px rgba(0,0,0,.16)}.map-marker[aria-pressed=true],.map-marker[aria-pressed=true]:hover{background:var(--color-accent-primary);color:var(--color-white);box-shadow:0 3px 14px rgba(0,0,0,.2)}.map-marker:hover .marker-label,.map-marker:focus-visible .marker-label{background:transparent}.map-marker[aria-pressed=true] .marker-label{background:transparent;color:inherit}.map-marker[aria-pressed=true] .map-dot{background:var(--color-accent-warm);box-shadow:0 0 0 2px var(--color-white),0 0 0 6px rgba(0,0,0,.28)}

.map-marker{border-radius:.5rem}.map-marker[aria-pressed=true] .map-dot{background:#fff;box-shadow:0 0 0 2px #111,0 0 0 6px rgba(0,0,0,.2)}.map-marker:hover .map-dot{background:#111}

/* Keep each site dot anchored to its geographic coordinate, with its label beside it. */
.map-marker{transform:translateY(-50%);padding-left:0}.map-marker .map-dot{position:absolute;left:0;top:50%;transform:translate(-50%,-50%)}.map-marker .marker-label{margin-left:.8rem}
.map-marker:hover .map-dot,.map-marker:focus-visible .map-dot,.map-marker[aria-pressed=true] .map-dot{transform:translate(-50%,-50%) scale(1.12)}

/* Opaque hover/selection surfaces stay crisp over the map. */
.map-marker .marker-label{background:var(--color-bg)}
.map-marker:hover,.map-marker:focus-visible{background:#f7f6f0;color:#111;box-shadow:0 2px 10px rgba(0,0,0,.16)}
.map-marker:hover .marker-label,.map-marker:focus-visible .marker-label{background:transparent}
.map-marker[aria-pressed=true],.map-marker[aria-pressed=true]:hover{background:#111;color:#fff}
.map-marker[aria-pressed=true] .marker-label{background:transparent}

/* Hover and selection wrap around the dot: a round cap centred on it joins the label box,
   and the shadow is drawn around the combined shape. */
.map-marker{border-radius:0 .5rem .5rem 0}
.map-marker::before{content:"";position:absolute;z-index:-1;left:0;top:0;bottom:0;aspect-ratio:1;border-radius:50%;background:inherit;transform:translateX(-50%)}
.map-marker:hover,.map-marker:focus-visible,.map-marker[aria-pressed=true]{box-shadow:none;filter:drop-shadow(0 2px 5px rgba(0,0,0,.18))}


.map-tags{align-items:stretch}.map-tag-group{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.map-tag-label{font:600 .68rem/1 'Open Sans',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}

.map-facility-figure{margin:0 0 1.25rem}.map-facility-image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--color-border);border-radius:.7rem;background:var(--color-soft)}.map-image-credit{margin:1rem 0 0;font: .68rem/1.4 'Open Sans',Arial,sans-serif;color:var(--color-text-secondary)}


/* Zoom into the western and central European facility cluster; pins stay the same size. */
.europe-map-image{inset:auto;left:0;top:-25%;width:125%;height:125%;max-width:none;object-fit:fill}

/* Every facility as plain text, collapsed by default; also what crawlers read. */
.map-list{margin-top:1.5rem;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.map-list summary{padding:1rem .25rem;font:600 .9rem 'Open Sans',Arial,sans-serif;cursor:pointer}
.map-list[open] summary{color:var(--color-accent-primary)}
.map-list-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.5rem 2rem;margin:0;padding:.5rem .25rem 1.75rem;list-style:none}
.map-list-items h3{margin:0 0 .25rem;font-size:1.1rem}
.map-list-items p{margin:0 0 .6rem;font-size:var(--text-small);line-height:1.6}
.map-list-items .map-location{color:var(--color-text-secondary)}
.map-list-items dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .75rem;margin:0;font-size:.8rem}
.map-list-items dt{font-weight:600;color:var(--color-text-secondary)}
.map-list-items dd{margin:0}

/* Facility names only on hover (and keyboard focus); the selected facility is named in the panel beside the map. The hovered marker rises above its neighbours so its name is never covered. */
.map-marker .marker-label{display:none}
.map-marker:hover .marker-label,.map-marker:focus-visible .marker-label{display:block}
.map-marker:hover,.map-marker:focus-visible{z-index:3}
