.aphro-locator{--aphro-ink:#182c2b;--aphro-muted:#687775;--aphro-line:#e3e8e5;--aphro-paper:#fbfaf7;--aphro-gold:#c79b55;--aphro-green:#2d6254;--aphro-clay:#a45a3b;color:var(--aphro-ink);font-family:inherit;width:100%;max-width:100%;box-sizing:border-box}.aphro-locator *{box-sizing:border-box}.aphro-locator__intro{margin:0 0 26px}.aphro-eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;text-transform:uppercase;color:var(--aphro-gold);margin:0 0 10px}.aphro-locator .aphro-locator__intro h2{font-family:inherit;font-size:clamp(30px,4vw,46px);line-height:1.08;letter-spacing:-.035em;font-weight:600;color:#ffffff!important;margin:0 0 10px}.aphro-locator__lede{font-size:15px;line-height:1.6;color:#fff;margin:0}.aphro-locator__controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,240px);gap:12px;margin-bottom:14px}.aphro-search{position:relative;display:flex;align-items:center;min-width:0}.aphro-search__icon{position:absolute;left:16px;font-size:24px;line-height:1;color:#75827e;pointer-events:none;transform:rotate(-20deg)}.aphro-search__input,.aphro-state-select{height:50px;width:100%;min-width:0;border:1px solid var(--aphro-line)!important;border-radius:4px!important;background:#fff!important;color:var(--aphro-ink)!important;padding:0 15px!important;font:inherit!important;font-size:14px!important;box-shadow:none!important}.aphro-search__input{padding-left:45px!important}.aphro-search__input:focus,.aphro-state-select:focus{outline:2px solid #c79b5570!important;outline-offset:1px}.aphro-category-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.aphro-filter{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 13px;border:1px solid var(--aphro-line);border-radius:3px;background:#fff;color:#41514e;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .18s,border-color .18s,color .18s}.aphro-filter:hover{border-color:#aebbb5}.aphro-filter.is-active{background:var(--aphro-ink);border-color:var(--aphro-ink);color:#fff}.aphro-filter__count{font-size:11px;opacity:.75;font-variant-numeric:tabular-nums}.aphro-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.aphro-dot--retailer{background:var(--aphro-green)}.aphro-dot--venue{background:var(--aphro-clay)}.aphro-filter.is-active .aphro-dot--retailer,.aphro-filter.is-active .aphro-dot--venue{box-shadow:0 0 0 3px #ffffff2b}.aphro-locator__layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:stretch}.aphro-map-wrap{position:relative;min-width:0;min-height:500px;border:1px solid var(--aphro-line);border-radius:5px;overflow:hidden;background:#e9eeea}.aphro-map{width:100%;height:540px;min-height:420px;z-index:1}.aphro-map .leaflet-control-attribution{font-size:9px}.aphro-map-legend{position:absolute;left:12px;bottom:12px;z-index:500;display:flex;gap:12px;flex-wrap:wrap;padding:9px 11px;background:#fffefaed;border:1px solid #e2e6e2;border-radius:3px;box-shadow:0 3px 12px #1b29200f}.aphro-map-legend span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#3e4e49}.aphro-results{min-width:0;border:1px solid var(--aphro-line);border-radius:5px;background:#fff;display:flex;flex-direction:column;max-height:620px;overflow:hidden}.aphro-results__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--aphro-line);background:var(--aphro-paper)}.aphro-results__count{font-size:12px;font-weight:700;letter-spacing:.02em}.aphro-reset{border:0;background:none;padding:4px 0;color:#687775;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.aphro-results__list{overflow:auto;overscroll-behavior:contain;min-height:0}.aphro-location-group__heading{display:flex;justify-content:space-between;gap:12px;padding:13px 18px 9px;background:#fff;color:var(--aphro-ink);border-bottom:1px solid #eff1ee}.aphro-location-group__heading span:first-child{font-size:13px;font-weight:700}.aphro-location-group__heading span:last-child{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--aphro-muted);text-align:right}.aphro-location-card{padding:15px 18px 16px;border-bottom:1px solid #edf0ed;transition:background .18s;cursor:pointer}.aphro-location-card:hover,.aphro-location-card.is-selected{background:#f7f8f4}.aphro-location-card.is-selected{box-shadow:inset 3px 0 var(--aphro-gold)}.aphro-location-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.aphro-location-card__type{display:inline-flex;align-items:center;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:#66746f}.aphro-location-card__number{font-size:9px;letter-spacing:.1em;color:#9aa49f}.aphro-location-card h3{font-size:16px;line-height:1.3;font-weight:650;letter-spacing:-.01em;color:var(--aphro-ink);margin:8px 0 5px}.aphro-location-card__address{font-size:12px;line-height:1.5;color:var(--aphro-muted);margin:0}.aphro-location-card__actions{display:flex;gap:16px;align-items:center;margin-top:12px}.aphro-location-card__actions button,.aphro-location-card__actions a{font:inherit;font-size:11px;font-weight:700;color:var(--aphro-green);text-decoration:none;border:0;background:none;padding:0;cursor:pointer}.aphro-location-card__actions a{color:#777f78;text-decoration:underline;text-underline-offset:3px}.aphro-location-card__actions button:hover,.aphro-location-card__actions a:hover{color:var(--aphro-gold)}.aphro-empty{padding:35px 22px;text-align:center;color:var(--aphro-muted)}.aphro-empty__mark{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 13px;border:1px solid var(--aphro-line);border-radius:50%;font-family:Georgia,serif;font-size:20px;color:var(--aphro-gold)}.aphro-empty strong{display:block;color:var(--aphro-ink);font-size:14px}.aphro-empty p{font-size:12px;line-height:1.6}.aphro-locator__note{margin:13px 0 0;font-size:11px;line-height:1.5;color:var(--aphro-muted)}.aphro-marker-host{background:none;border:0}.aphro-marker{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50% 50% 50% 3px;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 7px #10221f50}.aphro-marker span{width:7px;height:7px;background:#fff;border-radius:50%}.aphro-marker--retailer{background:var(--aphro-green)}.aphro-marker--venue{background:var(--aphro-clay)}.aphro-popup{display:flex;flex-direction:column;gap:5px;min-width:180px;font-family:inherit;color:var(--aphro-ink);font-size:12px;line-height:1.45}.aphro-popup strong{font-size:14px}.aphro-popup__type{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--aphro-muted)}.aphro-popup a{color:var(--aphro-green);font-weight:700;margin-top:3px}.aphro-locator .leaflet-popup-content-wrapper{border-radius:4px}.aphro-locator .leaflet-popup-content{margin:13px 15px}.aphro-locator .leaflet-container{font-family:inherit}.aphro-locator .leaflet-control-zoom a{color:var(--aphro-ink)}
@media(max-width:900px){.aphro-locator__layout{grid-template-columns:minmax(0,1fr);gap:14px}.aphro-map-wrap{min-height:380px}.aphro-map{height:420px!important;min-height:360px}.aphro-results{max-height:520px}.aphro-results__list{max-height:450px}.aphro-locator__controls{grid-template-columns:minmax(0,1fr) 220px}}
@media(max-width:600px){.aphro-locator__intro{margin-bottom:20px}.aphro-locator__controls{grid-template-columns:minmax(0,1fr);gap:9px}.aphro-search__input,.aphro-state-select{height:47px}.aphro-category-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.aphro-filter{padding:9px 7px;font-size:11px;min-height:42px}.aphro-filter:first-child{grid-column:1/-1}.aphro-locator__layout{gap:12px}.aphro-map-wrap{min-height:300px}.aphro-map{height:320px!important;min-height:300px}.aphro-map-legend{left:8px;bottom:8px;gap:8px;padding:7px 8px}.aphro-map-legend span{font-size:10px}.aphro-results{max-height:500px}.aphro-results__header{padding:13px 14px}.aphro-location-group__heading{padding:12px 14px 8px}.aphro-location-card{padding:14px}.aphro-location-card h3{font-size:15px}.aphro-location-card__actions{gap:14px}.aphro-locator__intro h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.aphro-locator *{scroll-behavior:auto!important;transition:none!important}}

/* v1.0.3: contained mobile scrolling for the locator panel */
@media(max-width:600px){.aphro-locator{max-height:85svh;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#c79b55 #202b29;padding-right:2px}.aphro-locator::-webkit-scrollbar{width:6px}.aphro-locator::-webkit-scrollbar-track{background:#202b29;border-radius:8px}.aphro-locator::-webkit-scrollbar-thumb{background:#c79b55;border-radius:8px}.aphro-locator__layout{grid-template-columns:minmax(0,1fr)}.aphro-results{max-height:360px}.aphro-results__list{overflow-y:auto;overscroll-behavior:contain}}

/* v1.0.4: on mobile, show the locations list before the map */
@media(max-width:600px){.aphro-results{order:1}.aphro-map-wrap{order:2}}

/* v1.0.5: nearest-first ZIP results + mobile List/Map toggle */
.aphro-view-toggle{display:none}
.aphro-location-card__distance{font-size:12px;font-weight:800;letter-spacing:.01em;color:var(--aphro-green);background:#e8f0ec;padding:3px 9px;border-radius:20px;white-space:nowrap}
.aphro-location-card__city{font-size:12px;color:var(--aphro-muted);margin:0 0 3px}
@media(max-width:600px){
.aphro-view-toggle{display:flex;position:sticky;top:0;z-index:1000;gap:6px;padding:8px 0;margin:0 0 12px;background:#202b29}
.aphro-view-toggle button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid #3a4a46;border-radius:4px;background:transparent;color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.aphro-view-toggle button.is-active{background:var(--aphro-gold);border-color:var(--aphro-gold);color:#182c2b}
.aphro-view-toggle__count{font-size:12px;opacity:.8}
.aphro-locator[data-view="list"] .aphro-map-wrap{display:none}
.aphro-locator[data-view="map"] .aphro-results{display:none}
.aphro-locator .aphro-results{max-height:none;overflow:visible}
.aphro-locator .aphro-results__list{max-height:none;overflow:visible}
.aphro-locator[data-view="map"] .aphro-map-wrap{min-height:0}
.aphro-locator[data-view="map"] .aphro-map{height:calc(85svh - 70px)!important;min-height:340px}
}
