.article-minerals-map { margin: 52px 0 48px; scroll-margin-top: 110px; }
.article-minerals-map .article-map-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; margin: 0 0 24px; }
.article-minerals-map h2 { color: var(--accent); font-size: clamp(1.8rem, 3vw, 2.55rem); margin: 0; }
.nordic-map-deck { margin-top: 6px; color: #4f6273; font-size: .9rem; line-height: 1.5; }
.article-minerals-map .article-map-heading a { color: #4f6273; font-size: .78rem; text-decoration: underline; text-underline-offset: 2px; }
.nordic-map-composition { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.nordic-map-frame { min-width: 0; scroll-margin-top: 110px; }
.nordic-map-svg, .nordic-interactive-map { display: block; width: 100%; aspect-ratio: 1164 / 1087; overflow: hidden; }
.nordic-map-svg .nordic-pin { fill: transparent; }
.nordic-interactive-map { background: #e5edf0; font-family: var(--font-sans); isolation: isolate; }
.article-minerals-map [hidden] { display: none !important; }
.nordic-map-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nordic-site-marker { border-radius: 50%; border: 2px solid transparent; }
.nordic-site-marker.is-legend-match { border-color: #765722; background: #fff3; box-shadow: 0 0 0 3px #fff9, 0 0 0 5px #76572266; }
.nordic-site-marker:is(:hover, :focus-visible, .is-active) { border-color: #334d60; background: #fff2; }
.nordic-country-marker span { position: relative; display: block; width: var(--country-width, 48px); height: 28px; transform: translate(-50%, -50%); }
.nordic-country-marker span::after { position: absolute; inset: calc(50% + var(--country-label-offset, 5px)) 0 auto; height: 1px; background: #8b754a; opacity: .5; content: ''; }
.nordic-country-marker:is(:hover, :focus-visible) span::after { height: 2px; opacity: 1; }
.nordic-country-marker:focus-visible span { outline: 1px solid #334d60; outline-offset: 2px; }
.nordic-map-tooltip.leaflet-tooltip { box-sizing: border-box; width: min(300px, 68vw); padding: 14px 17px; border: 1px solid #ded8cf; border-radius: 8px; box-shadow: 0 8px 26px #0c192921; color: #334d60; font: .84rem/1.45 var(--font-sans); white-space: normal; }
.nordic-project-tooltip.leaflet-tooltip { width: max-content; max-width: min(285px, 76vw); padding: 11px 14px; font-size: .86rem; }
.nordic-project-tooltip strong { margin-bottom: 5px; font-size: 1.2rem; }
.nordic-map-tooltip strong { display: block; margin-bottom: 8px; color: #5f5035; font: 1.35rem/1.15 var(--font-serif); }
.nordic-coded-detail { display: flex; align-items: baseline; gap: 7px; }
.nordic-coded-detail + .nordic-coded-detail { margin-top: 4px; }
.nordic-tooltip-commodities { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin-top: 10px; padding-top: 9px; border-top: 1px solid #ded8cf; font-size: .75rem; }
.nordic-tooltip-commodities .nordic-coded-detail { margin: 0; }
.nordic-selected-site { display: block; padding: 9px 12px; border-bottom: 1px solid #ded8cf; color: #334d60; font-size: .8rem; }
.nordic-country-popup .leaflet-popup-content { width: min(230px, 52vw) !important; margin: 14px 17px; }
.nordic-country-panel h3 { margin: 0 0 6px; color: #7d6c4d; font: 1.22rem var(--font-serif); }
.nordic-country-panel ul { list-style: none; margin: 0; padding: 0; }
.nordic-country-panel li + li { border-top: 1px solid #e9e5df; }
.nordic-country-panel button { display: block; width: 100%; min-height: 30px; padding: 6px 0 0; border: 0; background: transparent; color: #334d60; text-align: start; font: 600 .79rem var(--font-sans); cursor: pointer; }
.nordic-country-panel button:hover { text-decoration: underline; }
.nordic-country-panel li { padding-bottom: 8px; }
.nordic-country-panel .nordic-coded-detail { color: #4f6273; font: .76rem/1.4 var(--font-sans); }
.nordic-map-key { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 23%); gap: 20px 28px; padding: 16px 0; border-block: 1px solid #ded8cf; color: #334d60; }
.nordic-map-key h3 { margin: 0 0 10px; color: #7d6c4d; font: 1.22rem var(--font-serif); }
.nordic-map-key ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nordic-map-key .nordic-commodity-key { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 14px; }
.nordic-map-key li { display: flex; align-items: baseline; gap: 7px; font-size: .78rem; line-height: 1.4; }
.nordic-legend-toggle { display: inline-flex; align-items: baseline; gap: 7px; min-height: 30px; padding: 4px 5px; border: 0; border-radius: 3px; background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; }
.nordic-legend-toggle:is(:hover, [aria-pressed="true"]) { background: #ede6d9; }
.nordic-map-key i, .nordic-map-symbol { box-sizing: border-box; flex: 0 0 9px; height: 9px; background: var(--mineral-colour, #4f6273); }
.nordic-commodity-key i, .nordic-commodity-symbol, .nordic-status-mine, .nordic-status-project { border-radius: 50%; }
.nordic-status-project { border: 1.5px solid #4f6273; background: transparent !important; }
.nordic-region-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: start; margin-top: 16px; }
.nordic-region-card { background: #fff; box-shadow: 0 4px 22px #0c192910; border-top: 1px solid #ded8cf; }
.nordic-region-card summary { cursor: pointer; margin: 0; padding: 12px; color: #7d6c4d; font: 1.2rem var(--font-serif); }
.nordic-region-card ul { list-style: none; margin: 0; padding: 0 12px 12px; }
.nordic-region-card li + li { border-top: 1px solid #e9e5df; }
.nordic-region-card button { display: block; width: 100%; min-height: 44px; padding: 6px 0 0; border: 0; background: transparent; color: #334d60; text-align: start; font: 500 .8rem var(--font-sans); cursor: pointer; }
.nordic-region-card button[aria-pressed="true"] { color: #765722; text-decoration: underline; text-underline-offset: 3px; }
.nordic-region-card li span { display: block; margin: 0 0 6px; color: #4f6273; font-size: .69rem; }
@media (max-width: 760px) {
  .nordic-map-key { grid-template-columns: minmax(0, 1fr); }
  .nordic-map-key ul, .nordic-map-key .nordic-commodity-key { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
  .nordic-region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: no-preference) {
  .nordic-site-marker { transition: background-color 160ms ease, border-color 160ms ease; }
  .nordic-map-tooltip { animation: nordic-tooltip-enter 180ms ease-out; }
  @keyframes nordic-tooltip-enter { from { opacity: 0; translate: 0 4px; } }
}
