.location-filter{margin:20px 0 0;padding:16px 20px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius)}
.location-filter h2{font:700 1rem/1.35 var(--font-body);letter-spacing:0;margin:0 0 10px}
.location-filter-fields{display:grid;grid-template-columns:minmax(130px,1fr) minmax(125px,.7fr) auto auto;gap:10px;align-items:end}
.location-filter label{display:grid;gap:6px;font-size:.82rem;font-weight:700;min-width:0}
.location-filter input,.location-filter select{width:100%;min-width:0;box-sizing:border-box}
.location-filter button{white-space:nowrap;min-height:44px}
.location-filter .clear-location{color:var(--forest);background:transparent}
.location-status{margin:10px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}
.location-error{color:#8b2f1d;font-weight:700}
.location-attribution{font-size:.72rem;color:var(--muted);margin:6px 0 0}
.location-towns{margin:0 0 16px;padding:10px 20px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius)}
.location-towns>summary{cursor:pointer;font-weight:700;min-height:24px}
.location-towns .event-town-picker{margin:10px 0 0;padding:0;border:0;background:transparent}
.location-towns .event-town-picker h2{display:none}
.distance-label{color:var(--forest);font-weight:600}
@media(max-width:700px){.location-filter-fields{grid-template-columns:1fr 1fr}.location-filter-fields button{width:100%}.location-filter{padding:14px}.location-towns{padding:10px 14px}.location-filter input,.location-filter select{font-size:16px}}
