.page-head.map-head{padding:56px 0 40px}
.map-head .eyebrow{font-size:12px;letter-spacing:.16em;margin:0 0 20px}
.page-head.map-head h1{display:flex;align-items:baseline;flex-wrap:wrap;gap:0;font-size:clamp(38px,5vw,68px);line-height:1.2;letter-spacing:-.035em;margin:0;max-width:none}
.map-head h1>span{white-space:nowrap}
.page-head.map-head .map-intro{font-size:20px;line-height:1.8;margin:22px 0 0;max-width:42em}
.map-head .map-quick-links{gap:12px;margin-top:26px}
.map-head .map-quick-links a{font-size:16px;min-height:48px;padding:11px 22px}
.map-stats{display:flex;align-items:center;gap:40px;margin-top:34px;padding-top:26px;border-top:1px solid #d7e2db;color:#46655a}
.map-stats>div{display:flex;align-items:baseline;gap:12px}
.map-stats strong{font-size:36px;line-height:1.2;color:#075548;font-variant-numeric:tabular-nums}
.map-stats span{font-size:16px;line-height:1.5}
.page-head.map-head .map-stats p{font-size:15px;line-height:1.6;margin:0 0 0 auto;color:#46655a}
@media(max-width:780px){
 .page-head.map-head{padding:30px 0 22px}
 .map-head .eyebrow{font-size:12px;letter-spacing:.08em;margin-bottom:14px}
 .page-head.map-head h1{font-size:clamp(36px,7.3vw,52px)}
 .page-head.map-head .map-intro{font-size:18px;margin-top:14px}
 .map-head .map-quick-links{gap:8px;margin-top:18px}
 .map-head .map-quick-links a{font-size:14px;min-height:44px;padding:9px 16px}
 .map-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px;padding-top:22px}
 .map-stats>div{display:grid;gap:7px}
 .map-stats strong{font-size:32px}
 .map-stats span{font-size:15px}
 .page-head.map-head .map-stats p{grid-column:1/-1;margin:0;font-size:15px}
 .map-stats p br{display:none}
}
@media(max-width:440px){
 .page-head.map-head h1{display:grid;gap:5px;font-size:42px}
 .map-head .map-title-dot{display:none}
}
.map-controls{display:grid;grid-template-columns:1.35fr 1.1fr .95fr .95fr .9fr auto auto;gap:12px;background:#fff;border-radius:24px;padding:22px;margin-bottom:24px;align-items:end}
.map-controls label{display:block;font-size:12px;margin-bottom:8px;font-weight:700}
.map-controls input,.map-controls select{display:block;width:100%;min-width:0;border:1px solid #d3ded5;border-radius:12px;padding:11px 12px;font:inherit;background:#f8faf6}
.map-controls button,.map-fit,#case-empty button{border:0;border-radius:14px;background:#254c3e;color:#fff;padding:11px 15px;font:inherit;cursor:pointer}
.map-controls button{align-self:end;white-space:nowrap}
.map-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:28px;align-items:start;margin-bottom:80px}
.map-panel{position:sticky;top:140px;background:#fff;padding:14px;border-radius:28px}
#achievement-map{height:580px;border-radius:20px;background:#e3ebe3;z-index:0}
.map-startup{padding:30px}.map-message{font-size:13px;margin:14px 3px 8px}
.map-source{font-size:11px;line-height:1.7;color:#63776b;margin:10px 3px}.map-source a{text-decoration:underline}
.map-fit{padding:9px 14px;font-size:12px}
.results-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}
.results-heading h2{font-size:22px}.results-heading p{font-size:12px;color:#617366}
#case-list{align-items:start}
.case-card{padding:20px 21px;background:#fff;border:1px solid #dce5dc;border-radius:20px;margin-bottom:14px;align-self:start;box-shadow:0 8px 24px rgba(31,73,57,.035)}
.case-card.is-selected{border:2px solid #8fac44;background:#f7fbeF}
.case-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.case-tag-group{min-width:0}
.case-tags,.case-subtags{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.case-subtags{margin-top:6px}
.case-tags span{padding:4px 9px;background:#eef3e9;color:#41604c;border-radius:20px;font-size:10px}
.case-subtags span{padding:3px 8px;border:1px solid #d7e1da;background:#fff;color:#5b6f66;border-radius:20px;font-size:10px}
.case-card h3{font-size:21px;line-height:1.45;margin:15px 0 0}
.case-card h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.case-summary{font-size:13.5px;line-height:1.8;color:#5a6c62;margin:10px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.case-status{display:inline-flex;align-items:center;min-height:27px;font-size:10px;letter-spacing:.04em;color:#805329;background:#fff6ea;border:1px solid #ead7bf;border-radius:999px;padding:3px 8px;white-space:nowrap}
.case-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:17px;padding-top:13px;border-top:1px solid #edf1ee}
.case-place{color:#65776f;font-size:11px;line-height:1.5;max-width:42%}
.case-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:12px;flex-wrap:wrap}
.case-primary-link{font-weight:800;color:#244e3d}
.case-actions button{border:1px solid #cfdccd;border-radius:20px;font:inherit;background:#fff;padding:7px 10px;cursor:pointer;color:#375a4b}
.location-unmapped{color:#52615b;font-size:11px}
.case-marker{display:grid;place-items:center}.case-marker span{display:grid;place-items:center;width:34px;height:34px;border:3px solid white;border-radius:50%;background:#1e503c;color:white;box-shadow:0 2px 8px #24483455;font-size:13px;font-weight:800}
.map-popup strong{font-size:14px}.map-popup a{display:block;margin:12px 0;font-size:13px}
.leaflet-container{font-family:inherit}.leaflet-popup-content{max-height:280px;overflow:auto}.leaflet-control-attribution{font-size:10px!important}.leaflet-container a{color:#254c3e}
[data-case][hidden]{display:none}
#case-empty{background:#fff;border-radius:20px;padding:30px}#case-empty p{margin:16px 0}

@media(max-width:1100px){
 .map-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
 .map-workspace{grid-template-columns:1fr}.map-panel{position:relative;top:auto}#achievement-map{height:480px}
 #case-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.case-card{margin:0}
}
@media(max-width:780px){
 .map-controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;gap:8px 10px;border-radius:18px;margin-bottom:16px}
 .map-controls>div:first-child{grid-column:1/-1}
 .map-controls label{font-size:12px;line-height:1.3;margin-bottom:5px}
 .map-controls input,.map-controls select{min-height:44px;font-size:16px;padding:9px 10px;border-radius:10px}
 .map-controls button{min-height:44px;padding:9px 12px;font-size:12px}
 .map-workspace{gap:16px;display:flex;flex-direction:column}
 .map-panel{position:static;width:100%;padding:8px;border-radius:18px}
 #achievement-map{height:min(64vh,560px);min-height:480px;border-radius:16px}
 .case-results{width:100%}#case-list{grid-template-columns:1fr}.case-card{padding:18px 19px}.case-card h3{font-size:20px}
 .case-card-footer{align-items:flex-start}.case-place{max-width:38%}.case-actions{justify-content:flex-end}
 .results-heading{display:block}.results-heading p{margin-top:8px}.map-head h1{font-size:40px}
 .case-actions a,.case-actions button{min-height:42px;display:inline-flex;align-items:center}.case-list{min-width:0}
}
@media(max-width:440px){
 .map-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .map-controls>div:first-child{grid-column:1/-1}
 .map-controls label{font-size:11px}
 .map-controls input,.map-controls select{font-size:15px}
 .map-controls button{width:100%}
 .case-card-footer{display:block}.case-place{display:block;max-width:none;margin-bottom:9px}.case-actions{justify-content:flex-start}
}

/* A11Y-01 / UI-02: separated 44px map controls and legible record metadata. */
.case-marker span{width:44px;height:44px;font-size:15px}
.map-popup a{display:flex;align-items:center;min-height:44px;line-height:1.6}
.leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;line-height:44px}
.leaflet-popup-content{margin-right:36px}
.map-controls label{font-size:14px}
.case-card .case-tags span,.case-card .case-subtags span{font-size:12px;line-height:1.6}
.case-card .case-summary{font-size:15px;line-height:1.85}
.case-card .case-place{font-size:13px}
.case-card .case-status{font-size:12px}
.case-actions a,.case-actions button{min-height:44px;display:inline-flex;align-items:center}

/* Mobile map density: keep 44px controls while returning more vertical space to the map. */
@media(max-width:780px){
 #achievement-map{height:min(68vh,600px);min-height:520px}
}
@media(max-width:440px){
 .map-controls{padding:10px;gap:5px 8px}
 .map-controls label{font-size:11px;line-height:1.2;margin-bottom:3px}
 .map-controls input,.map-controls select{min-height:44px;padding:7px 9px}
 .map-controls .case-live-summary{font-size:11px;line-height:1.25;padding-top:0}
}
