/* PW Store Locator
 * Selectors start with ".pw-sl.pw-sl" on purpose: the extra specificity keeps
 * theme / page-builder styles (button, a, input, h3…) from leaking in.
 * To override something in Custom CSS, start your selector the same way.
 * Variables (--pwsl-*) are printed inline from Settings › Style. */

.pw-sl{
  --pwsl-font:inherit;--pwsl-fs:16px;--pwsl-h-fs:20px;--pwsl-r:8px;--pwsl-card-r:10px;--pwsl-map-r:8px;--pwsl-gap:24px;
  --pwsl-primary:#2b7bb9;--pwsl-primary-text:#fff;--pwsl-secondary:#f1f1f1;--pwsl-secondary-text:#333;
  --pwsl-accent:#d93025;--pwsl-heading:#222;--pwsl-text:#333;--pwsl-muted:#6b6b6b;
  --pwsl-input-bg:#fff;--pwsl-input-border:#d6d6d6;--pwsl-input-text:#222;
  --pwsl-card-bg:#fff;--pwsl-card-border:#e5e5e5;--pwsl-nearest-bg:#fff6f5;--pwsl-map-h:480px;
  --pwsl-error:#b3261e;--pwsl-control-h:48px;
  container:pwsl/inline-size;
  display:block;width:100%;max-width:none;margin:0;
  font-family:var(--pwsl-font);font-size:var(--pwsl-fs);line-height:1.45;color:var(--pwsl-text);text-align:left
}
.pw-sl.pw-sl *,.pw-sl.pw-sl *::before,.pw-sl.pw-sl *::after{box-sizing:border-box}

/* ---------- layout ---------- */
.pw-sl.pw-sl .pw-sl-grid{display:grid;gap:var(--pwsl-gap);grid-template-columns:minmax(0,1fr);grid-template-areas:"map" "panel"}
.pw-sl.pw-sl .pw-sl-map{grid-area:map}
.pw-sl.pw-sl .pw-sl-panel{grid-area:panel;min-width:0;container:pwslpanel/inline-size}
.pw-sl.pw-sl--no-map .pw-sl-grid{grid-template-areas:"panel"}

@container pwsl (min-width:760px){
  .pw-sl.pw-sl--map-right .pw-sl-grid{grid-template-columns:minmax(300px,2fr) minmax(0,3fr);grid-template-areas:"panel map"}
  .pw-sl.pw-sl--map-left .pw-sl-grid{grid-template-columns:minmax(0,3fr) minmax(300px,2fr);grid-template-areas:"map panel"}
  .pw-sl.pw-sl--map-right .pw-sl-panel,.pw-sl.pw-sl--map-left .pw-sl-panel{display:flex;flex-direction:column;height:var(--pwsl-map-h)}
  .pw-sl.pw-sl--map-right .pw-sl-results,.pw-sl.pw-sl--map-left .pw-sl-results{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-right:-6px;padding-right:6px;scrollbar-width:thin}
}

/* ---------- map ---------- */
.pw-sl.pw-sl .pw-sl-map{position:relative;width:100%;height:var(--pwsl-map-h);overflow:hidden;border-radius:var(--pwsl-map-r);background:#e9eef0;isolation:isolate}
.pw-sl.pw-sl .pw-sl-map--ofm .maplibregl-map{position:absolute;inset:0}
.pw-sl.pw-sl .pw-sl-map--iframe iframe{position:absolute;left:0;width:100%;border:0;max-width:none}
.pw-sl.pw-sl .pw-sl-map-error{display:flex;align-items:center;justify-content:center;height:100%;padding:16px;color:var(--pwsl-muted);text-align:center}

/* ---------- search ---------- */
.pw-sl.pw-sl .pw-sl-search{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0;background:none}
.pw-sl.pw-sl .pw-sl-input{
  flex:1 1 220px;min-width:0;width:auto;height:var(--pwsl-control-h);min-height:0;margin:0;padding:0 16px;
  font:inherit;font-size:max(16px,1em);line-height:1.2;color:var(--pwsl-input-text);
  background:var(--pwsl-input-bg);border:1.5px solid var(--pwsl-input-border);border-radius:var(--pwsl-r);
  box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s
}
.pw-sl.pw-sl .pw-sl-input::placeholder{color:var(--pwsl-muted);opacity:1}
.pw-sl.pw-sl .pw-sl-input:focus{border-color:var(--pwsl-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--pwsl-primary) 22%,transparent)}

.pw-sl.pw-sl .pw-sl-btn{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;height:var(--pwsl-control-h);min-height:0;margin:0;padding:0 20px;
  font:inherit;font-size:1em;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:none;text-decoration:none;white-space:nowrap;
  border:0;border-radius:var(--pwsl-r);background-image:none;box-shadow:none;cursor:pointer;transition:filter .15s,background-color .15s
}
.pw-sl.pw-sl .pw-sl-btn--primary,.pw-sl.pw-sl .pw-sl-btn--primary:hover,.pw-sl.pw-sl .pw-sl-btn--primary:focus{background-color:var(--pwsl-primary);color:var(--pwsl-primary-text)}
.pw-sl.pw-sl .pw-sl-btn--secondary,.pw-sl.pw-sl .pw-sl-btn--secondary:hover,.pw-sl.pw-sl .pw-sl-btn--secondary:focus{background-color:var(--pwsl-secondary);color:var(--pwsl-secondary-text)}
.pw-sl.pw-sl .pw-sl-btn:hover{filter:brightness(.92)}
.pw-sl.pw-sl .pw-sl-btn:focus-visible,.pw-sl.pw-sl .pw-sl-link:focus-visible,.pw-sl.pw-sl .pw-sl-clear:focus-visible{outline:2px solid var(--pwsl-primary);outline-offset:2px}

@container pwslpanel (max-width:520px){
  .pw-sl.pw-sl .pw-sl-input{flex-basis:100%}
  .pw-sl.pw-sl .pw-sl-btn{flex:1 1 auto;padding:0 14px}
}

.pw-sl.pw-sl .pw-sl-help{margin:8px 0 0;padding:0;font-size:.875em;color:var(--pwsl-muted)}
.pw-sl.pw-sl .pw-sl-msg{margin:10px 0 0;font-size:.9375em}
.pw-sl.pw-sl .pw-sl-msg:empty{display:none}
.pw-sl.pw-sl .pw-sl-msg.is-error{color:var(--pwsl-error)}

/* ---------- results ---------- */
.pw-sl.pw-sl .pw-sl-results:not(:empty){margin-top:20px}
.pw-sl.pw-sl .pw-sl-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px 12px;flex-wrap:wrap}
.pw-sl.pw-sl .pw-sl-results-head+.pw-sl-list{margin-top:12px}
.pw-sl.pw-sl .pw-sl-title{
  margin:0;padding:0;font-family:inherit;font-size:var(--pwsl-h-fs);font-weight:700;line-height:1.25;
  letter-spacing:normal;text-transform:none;color:var(--pwsl-heading);border:0;background:none
}
.pw-sl.pw-sl .pw-sl-title:focus{outline:none}
.pw-sl.pw-sl .pw-sl-clear{
  margin:0;padding:0;min-height:0;height:auto;width:auto;font:inherit;font-size:.875em;font-weight:500;line-height:1.4;
  color:var(--pwsl-muted);background:none;border:0;box-shadow:none;text-decoration:underline;text-transform:none;letter-spacing:normal;cursor:pointer
}
.pw-sl.pw-sl .pw-sl-clear:hover{color:var(--pwsl-text);background:none}
.pw-sl.pw-sl .pw-sl-sub{margin:4px 0 14px;padding:0;font-size:.875em;color:var(--pwsl-muted)}
.pw-sl.pw-sl .pw-sl-empty{margin-top:0}

.pw-sl.pw-sl .pw-sl-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.pw-sl.pw-sl .pw-sl-card{
  margin:0;padding:14px 16px;list-style:none;background:var(--pwsl-card-bg);
  border:1px solid var(--pwsl-card-border);border-radius:var(--pwsl-card-r);transition:border-color .15s,box-shadow .15s
}
.pw-sl.pw-sl .pw-sl-card::before,.pw-sl.pw-sl .pw-sl-card::marker{content:none}
.pw-sl.pw-sl .pw-sl-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.06)}
.pw-sl.pw-sl .pw-sl-card.is-nearest{background:var(--pwsl-nearest-bg);border-color:var(--pwsl-accent);box-shadow:inset 0 0 0 1px var(--pwsl-accent)}
.pw-sl.pw-sl .pw-sl-card-head{display:flex;align-items:flex-start;gap:10px}
.pw-sl.pw-sl .pw-sl-head-main{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;flex:1 1 auto;min-width:0;padding-top:1px}
.pw-sl.pw-sl .pw-sl-rank{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;
  font-size:12px;font-weight:700;line-height:1;color:#fff;background:var(--pwsl-primary)
}
.pw-sl.pw-sl .is-nearest .pw-sl-rank{background:var(--pwsl-accent)}
.pw-sl.pw-sl .pw-sl-name{min-width:0;font-weight:700;color:var(--pwsl-heading);overflow-wrap:anywhere}
.pw-sl.pw-sl .pw-sl-tag{
  display:inline-block;padding:2px 8px;border-radius:999px;font-size:.6875em;font-weight:700;line-height:1.4;letter-spacing:.04em;text-transform:uppercase;
  color:var(--pwsl-accent);background:color-mix(in srgb,var(--pwsl-accent) 12%,transparent)
}
.pw-sl.pw-sl .pw-sl-km{flex:0 0 auto;margin-left:auto;padding-top:2px;font-size:.875em;font-weight:700;white-space:nowrap;color:var(--pwsl-accent)}
.pw-sl.pw-sl .pw-sl-address{margin:6px 0 12px;padding:0;font-size:.875em;line-height:1.4;color:var(--pwsl-muted)}
.pw-sl.pw-sl .is-ranked .pw-sl-address,.pw-sl.pw-sl .is-ranked .pw-sl-actions{margin-left:34px}
@container pwslpanel (max-width:380px){.pw-sl.pw-sl .is-ranked .pw-sl-address,.pw-sl.pw-sl .is-ranked .pw-sl-actions{margin-left:0}}

.pw-sl.pw-sl .pw-sl-actions{display:flex;flex-wrap:wrap;gap:8px}
.pw-sl.pw-sl .pw-sl-link{
  display:inline-flex;align-items:center;justify-content:center;width:auto;height:36px;min-height:0;margin:0;padding:0 14px;
  font:inherit;font-size:.875em;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:none;text-decoration:none;white-space:nowrap;
  border-radius:calc(var(--pwsl-r) * .8);box-shadow:none;background-image:none;cursor:pointer;transition:filter .15s,background-color .15s
}
.pw-sl.pw-sl a.pw-sl-link--primary,.pw-sl.pw-sl a.pw-sl-link--primary:hover,.pw-sl.pw-sl a.pw-sl-link--primary:focus,.pw-sl.pw-sl a.pw-sl-link--primary:visited{
  color:var(--pwsl-primary-text);background-color:var(--pwsl-primary);border:0;text-decoration:none
}
.pw-sl.pw-sl a.pw-sl-link--primary:hover{filter:brightness(.92)}
.pw-sl.pw-sl .pw-sl-link--ghost,.pw-sl.pw-sl .pw-sl-link--ghost:focus{color:var(--pwsl-primary);background-color:transparent;border:1.5px solid color-mix(in srgb,var(--pwsl-primary) 45%,transparent)}
.pw-sl.pw-sl .pw-sl-link--ghost:hover{color:var(--pwsl-primary);background-color:color-mix(in srgb,var(--pwsl-primary) 8%,transparent);border-color:var(--pwsl-primary)}

/* ---------- map popup ---------- */
.pw-sl.pw-sl .maplibregl-popup-content{
  padding:14px 16px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.18);
  font-family:var(--pwsl-font);font-size:var(--pwsl-fs);color:var(--pwsl-text)
}
.pw-sl.pw-sl .maplibregl-popup-close-button{
  position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;min-height:0;margin:0;padding:0;
  font-family:system-ui,sans-serif;font-size:20px;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;
  color:var(--pwsl-muted);background:transparent;background-image:none;border:0;border-radius:50%;box-shadow:none;cursor:pointer
}
.pw-sl.pw-sl .maplibregl-popup-close-button:hover,.pw-sl.pw-sl .maplibregl-popup-close-button:focus{color:var(--pwsl-text);background:rgba(0,0,0,.06)}
.pw-sl.pw-sl .pw-sl-popup{max-width:240px}
.pw-sl.pw-sl .pw-sl-popup-name{display:block;margin:0 22px 4px 0;font-weight:700;font-size:1em;line-height:1.3;color:var(--pwsl-heading)}
.pw-sl.pw-sl .pw-sl-popup-address{margin:0 0 10px;padding:0;font-size:.8125em;line-height:1.4;color:var(--pwsl-muted)}
.pw-sl.pw-sl .pw-sl-popup .pw-sl-link{height:32px;font-size:.8125em}

/* ---------- misc ---------- */
.pw-sl.pw-sl .pw-sl-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){.pw-sl.pw-sl *{transition:none!important}}

/* ---------- map controls (protect from theme button styles) ---------- */
.pw-sl.pw-sl .maplibregl-ctrl-group{background:#fff;border-radius:6px;box-shadow:0 0 0 2px rgba(0,0,0,.1);overflow:hidden}
.pw-sl.pw-sl .maplibregl-ctrl-group button{
  display:block;width:30px;height:30px;min-height:0;margin:0;padding:0;
  background-color:transparent;border:0;border-radius:0;box-shadow:none;outline-offset:-2px;
  font-size:inherit;line-height:1;text-transform:none;letter-spacing:normal;color:#333;cursor:pointer
}
.pw-sl.pw-sl .maplibregl-ctrl-group button+button{border-top:1px solid #ddd}
.pw-sl.pw-sl .maplibregl-ctrl-group button:hover,.pw-sl.pw-sl .maplibregl-ctrl-group button:focus{background-color:rgba(0,0,0,.05);color:#333}
.pw-sl.pw-sl .maplibregl-ctrl-attrib-button{width:24px;height:24px;min-height:0;padding:0;margin:0;border:0;border-radius:12px;box-shadow:none;background-color:rgba(255,255,255,.5)}
.pw-sl.pw-sl .maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}
