.store-locator { max-width:1200px; margin:auto; padding:clamp(2rem,5vw,5rem) clamp(1.25rem,4vw,3rem); }
.store-locator-intro { max-width:760px; margin-bottom:2rem; }
.store-locator h1 { font-size:clamp(3rem,7vw,5.5rem); }
.store-locator-intro > p:last-child { font-size:1.125rem; line-height:1.7; }
.store-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,230px) auto; gap:1rem; align-items:end; padding:1.5rem; background:#343238; color:#fff7e9; border:1px solid #bd934e; }
.store-filters label { display:block; margin-bottom:.5rem; font-size:1rem; }
.store-filters input,.store-filters select { width:100%; min-height:48px; padding:.65rem .8rem; border:1px solid #bea36e; border-radius:0; background:#fff7e9; color:#1e1820; font:inherit; font-size:1rem; }
.store-filters .button { min-height:48px; font-size:.875rem; cursor:pointer; }
.store-filters :focus-visible,.store-card a:focus-visible { outline:3px solid #eeb647; outline-offset:3px; }
.store-results-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 1.5rem; margin:1.25rem 0; }
.store-results-summary p { margin:0; font-size:1rem; }
.store-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.store-card { min-width:0; padding:1.4rem; background:#fffaf1; border:1px solid #c4a373; }
.store-card[hidden] { display:none; }
.store-card h2 { font-family:var(--sans); font-size:1.125rem; font-weight:700; line-height:1.4; margin:0 0 .7rem; overflow-wrap:anywhere; }
.store-card address { font-size:1rem; font-style:normal; line-height:1.7; overflow-wrap:anywhere; }
.store-card a { display:inline-block; margin-top:1rem; font-size:1rem; color:#704521; text-underline-offset:3px; }
.store-empty { padding:2rem; background:#fffaf1; border:1px solid #c4a373; font-size:1.125rem; }
.store-locator .newsletter-link { margin-top:0; }
@media(max-width:900px) { .store-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .store-filters,.store-grid { grid-template-columns:minmax(0,1fr); } .store-filters { padding:1rem; } .store-filters .button { width:100%; } }
