.locator-section{padding-top:56px;padding-bottom:72px;scroll-margin-top:110px}
.locator-heading{text-align:center;max-width:780px;margin:0 auto 36px}
.locator-heading h1,.locator-heading h2{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.06;margin:10px 0 20px}
.locator-heading>p:last-child{line-height:1.7}
.locator-eyebrow{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
sf-store-locator{display:block}
sf-store-locator [hidden]{display:none!important}
.locator-controls{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.locator-controls label{display:block;font-size:.85rem;font-weight:700;margin-bottom:8px}
.locator-search{flex:1 1 350px;display:grid;grid-template-columns:1fr auto;gap:8px}
.locator-search label{grid-column:1/-1;margin:0}
.locator-controls input,.locator-controls select{border:1px solid #2d484655;border-radius:12px;background:#fff;padding:13px 14px;min-height:48px;min-width:0;color:var(--color-text);font:inherit}
.locator-radius select{width:165px}
.locator-controls .cta{min-height:48px;padding:12px 22px}
.locator-clear{border:0;background:transparent;text-decoration:underline;padding:14px 6px;min-height:48px;font:inherit;color:var(--color-action);cursor:pointer}
.locator-controls :disabled{opacity:.55;cursor:default}
.locator-status{min-height:24px;font-size:.9rem;margin:18px 0}
.locator-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}
.locator-layout:has(.locator-map-panel[hidden]){grid-template-columns:1fr}
.locator-results{max-height:620px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #2d48462b;border-radius:22px;background:#fffdf8}
.locator-list{list-style:none;margin:0;padding:0}
.locator-store{padding:24px;border-bottom:1px solid #2d484629}
.locator-store:last-child{border-bottom:0}
.locator-store.is-selected{background:#d42d3a18;box-shadow:inset 4px 0 var(--color-action)}
.locator-store h2{font-family:inherit;font-size:1.2rem;line-height:1.4;margin:0 0 10px;color:var(--color-text)}
.locator-store address{font-style:normal;font-size:.95rem;line-height:1.65}
.locator-store p{font-size:.9rem;line-height:1.5;margin:10px 0}
.locator-distance{font-weight:700}
.locator-actions{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:16px}
.locator-actions a,.locator-actions button{font:inherit;font-size:.85rem;font-weight:700;color:var(--color-action);text-decoration:underline;border:0;padding:0;background:none;cursor:pointer;min-height:28px}
.locator-map-panel{position:sticky;top:110px;min-width:0}
.locator-map{height:620px;border-radius:22px;border:1px solid #2d48462b;isolation:isolate;background:#e8eee7;color:#2d4846}
.locator-map .leaflet-container{font:inherit}
.locator-map .leaflet-control-attribution{font-size:10px}
.locator-map .leaflet-control-attribution a{color:#235b88}
.locator-map .leaflet-control-zoom a{color:#2d4846}
.locator-pin{background:var(--color-action);color:#fff;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0004;display:grid;place-items:center;font:700 12px var(--font-body)}
.locator-popup h3{font-family:inherit;font-size:1rem;margin:0 0 8px}
.locator-popup p{margin:8px 0;white-space:pre-line}
.locator-popup a{color:#d42d3a}
.locator-map-error,.locator-no-results{padding:20px;line-height:1.6}
.locator-map-contact{font-size:.8rem;margin:10px 0;text-align:right}
.locator-unconfigured{text-align:center;padding:50px 20px;background:#d42d3a14;border-radius:24px}
.locator-unconfigured p{margin:0 auto 24px;max-width:600px}
.locator-admin-note{padding:20px;border:1px dashed currentColor}
@media(max-width:749px){.locator-section{padding-top:30px;padding-bottom:40px}.locator-heading{margin-bottom:26px}.locator-controls{gap:10px}.locator-search{flex-basis:100%}.locator-controls .cta{padding:12px 15px}.locator-radius{flex:1}.locator-radius select{width:100%}.locator-clear{flex-basis:100%;text-align:left;padding-left:0}.locator-layout{grid-template-columns:1fr;gap:18px}.locator-map-panel{position:static;grid-row:1}.locator-map{height:330px}.locator-results{max-height:520px}.locator-store{padding:20px}}
