.pt-locator{--pt-red:#cc0000;--pt-red-hover:#e60000;--pt-ink:#1a1a1a;--pt-body:#333;--pt-mid:#666;--pt-border:#e5e5e5;--pt-off:#fafafa;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--pt-body)}
.pt-locator *{box-sizing:border-box}
.pt-locator--empty{padding:24px;border:1px dashed #cdd2d8;border-radius:8px;text-align:center;color:#555}

/* --------------------------------------------------------------- search bar */
.pt-locator__search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px;border:1px solid var(--pt-border);border-radius:8px;background:var(--pt-off);margin-bottom:16px}
.pt-locator__field{display:flex;flex-direction:column;gap:4px}
.pt-locator__field--text{flex:1 1 200px;min-width:160px}
.pt-locator__label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pt-mid)}
.pt-locator__input,.pt-locator__select{height:42px;padding:0 12px;border:1px solid var(--pt-border);border-radius:6px;background:#fff;font:inherit;font-size:.9rem;color:var(--pt-ink)}
.pt-locator__input:focus,.pt-locator__select:focus{outline:none;border-color:var(--pt-red);box-shadow:0 0 0 3px rgba(204,0,0,.12)}
.pt-locator__actions{display:flex;gap:8px;align-items:center}

.pt-locator__btn{display:inline-flex;align-items:center;gap:.4rem;height:42px;padding:0 18px;border-radius:6px;font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}
.pt-locator__btn--primary{background:var(--pt-red);color:#fff}
.pt-locator__btn--primary:hover{background:var(--pt-red-hover)}
.pt-locator__btn--ghost{background:#fff;color:var(--pt-body);border-color:var(--pt-border)}
/* background is restated on hover so the button keeps its white ground rather than inheriting a
   themed button hover colour underneath the red text. */
.pt-locator__btn--ghost:hover{color:var(--pt-red);border-color:var(--pt-red);background:#fff}
.pt-locator__btn--ghost svg{width:15px;height:15px}
.pt-locator__btn.is-busy{opacity:.6;pointer-events:none}
.pt-locator__btn:focus-visible{outline:2px solid var(--pt-red);outline-offset:2px}

.pt-locator__notice{margin:0 0 16px;padding:10px 14px;border:1px solid #f3d2d2;border-left:4px solid var(--pt-red);border-radius:4px;background:#fff7f7;font-size:.85rem;color:#8a1f1f}
.pt-locator__notice--hidden,.pt-locator__notice[hidden]{display:none}

/* --------------------------------------------------------------- layout */
.pt-locator__grid{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}
@media(min-width:900px){.pt-locator__grid{grid-template-columns:58% 1fr;gap:24px}}

.pt-locator__map-wrap{border:1px solid var(--pt-border);border-radius:8px;overflow:hidden;background:var(--pt-off)}
.pt-locator__map-wrap.is-hidden{display:none}
.pt-locator__map{width:100%;height:340px}
@media(min-width:900px){.pt-locator__map{height:560px}}

.pt-locator__aside{display:flex;flex-direction:column;gap:10px;min-width:0}
.pt-locator__count{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pt-mid)}

.pt-locator__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
@media(min-width:900px){.pt-locator__list{max-height:520px;overflow-y:auto;padding-right:4px}}

/* --------------------------------------------------------------- card (compact) */
.pt-locator__card{border:1px solid var(--pt-border);border-left:4px solid var(--pt-border);border-radius:6px;background:#fff;padding:10px 13px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;cursor:pointer}
.pt-locator__card:hover{background:var(--pt-off)}
.pt-locator__card.is-active{border-color:var(--pt-border);border-left-color:var(--pt-red);background:#fff7f7;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.pt-locator__card:focus-visible{outline:2px solid var(--pt-red);outline-offset:2px}
.pt-locator__card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pt-locator__name{margin:0;font-size:.92rem;font-weight:700;color:var(--pt-ink);line-height:1.2}
.pt-locator__addr{margin:.2rem 0 0;font-size:.8rem;color:var(--pt-mid);line-height:1.35}

.pt-locator__pill{flex:0 0 auto;display:inline-block;padding:2px 8px;border-radius:999px;background:rgba(204,0,0,.1);color:var(--pt-red);font-size:.68rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}
.pt-locator__pill[hidden]{display:none}

.pt-locator__tags{display:flex;flex-wrap:wrap;gap:5px;margin:.4rem 0 0}
.pt-locator__tag{display:inline-block;padding:1px 7px;border:1px solid var(--pt-border);border-radius:4px;background:var(--pt-off);font-size:.64rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pt-mid)}

.pt-locator__card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:.5rem}
/* Root-scoped `a.` selectors + !important so the global Elementor kit link color
   (a{color:#cc0000}) can't repaint the action buttons — esp. the red Get Directions
   button, which was rendering red-on-red. */
.pt-locator a.pt-locator__action{display:inline-flex;align-items:center;gap:.3rem;padding:5px 10px;border:1px solid var(--pt-border);border-radius:6px;font-size:.69rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pt-body)!important;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}
.pt-locator a.pt-locator__action span{color:inherit!important}
.pt-locator a.pt-locator__action svg{width:13px;height:13px;color:currentColor}
.pt-locator a.pt-locator__action:hover{color:var(--pt-red)!important;border-color:var(--pt-red)}
.pt-locator a.pt-locator__action--dir,
.pt-locator a.pt-locator__action--dir:hover{background:var(--pt-red);color:#fff!important;border-color:var(--pt-red)}
.pt-locator a.pt-locator__action--dir:hover{background:var(--pt-red-hover);border-color:var(--pt-red-hover)}

.pt-locator__empty{margin:6px 0 0;padding:16px;border:1px dashed #cdd2d8;border-radius:6px;background:var(--pt-off);text-align:center;font-size:.88rem;color:var(--pt-mid)}
.pt-locator__empty[hidden]{display:none}

/* --------------------------------------------------------------- info window */
.pt-locator__iw{font-family:Inter,sans-serif;font-size:.85rem;color:var(--pt-body);max-width:240px}
.pt-locator__iw strong{display:block;font-size:.95rem;color:var(--pt-ink);margin-bottom:3px}
.pt-locator__iw-addr{color:var(--pt-mid);line-height:1.4;margin-bottom:6px}
.pt-locator__iw-links{display:flex;gap:12px}
.pt-locator__iw-links a{color:var(--pt-red);font-weight:700;text-decoration:none}
.pt-locator__iw-links a:hover{text-decoration:underline}
