/* =========================================================
HP Store Locator (hp store locator) - Barik Core style
Scope: only inside .hpsl-heading-section to avoid side-effects
Notes:
- Keep Google Map internals untouched (gm-*, gmp-*, etc.)
- Uses Barik Core tokens if available; provides safe fallbacks
========================================================= */

/* ---------- Tokens (fallbacks) ---------- */
#hp-store-location {
  --barik-100: #8fb0d8;
  --barik-200: #6494d0;
  --barik-300: #3679cb;
  --barik-400: #246bc3;
  --barik-500: #1b5fb3;

  --bg-page:      var(--bg-page, #ffffff);
  --bg-section:   var(--bg-section, #ffffff);
  --border-subtle:var(--border-subtle, #e5e7eb);
  --text-main:    var(--text-main, #111827);
  --text-muted:   var(--text-muted, #6b7280);
  --focus-ring:   var(--focus-ring, rgba(161, 20, 20, 0.20));

  --radius-sm: 10px;
  --radius-md: 14px;
  --shadow-soft: 0 12px 28px rgba(17,24,39,.08);

  --field-h: 44px;
  --pad: 14px;
  --border-subtle: #e5e7eb;
  --shadow-sm: 0 6px 18px rgba(16, 24, 40, 0.06);
  --ink-700: #374151;
  --ink-900: #111827;

  --surface-1: rgba(255,255,255,0.92);
  --surface-2: #ffffff;
  --ring-blue: rgba(54,121,203,.22);
  --barik-grad: linear-gradient(180deg, var(--barik-600,#10478b), var(--barik-700,#093479));
  --chip-bg: rgba(16,71,139,.08);
  --chip-border: rgba(16,71,139,.18);
  --danger: #a11414; /* reuse red accent if needed */
}

/* ---------- General cleanup ---------- */
#hp-store-location *{box-sizing:border-box;}

.hpsl-heading-section label{
  display:block;
  font-weight:700;
  color:var(--text-main);
  font-size:13px;
  letter-spacing:.2px;
  margin:0 0 8px;
}
.hpsl-heading-section input,
.hpsl-heading-section select,
.hpsl-heading-section button{
  font-family:inherit;
}

/* ---------- Filters container ---------- */
.hpsl-heading-section .hpsl-store-filters{
  background:var(--bg-section);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
  padding:18px;
  margin:0 0 14px;
}

/* Layout: flexible grid */
.hpsl-heading-section .hpsl-store-filters{
  display:grid;
  grid-template-columns: 1fr 180px 140px 140px;
  gap:12px;
  align-items:end;
}

/* Each field block */
.hpsl-heading-section .hpsl-field-inline{
  min-width:0; /* important for overflow */
}

/* ---------- Search bar (address + locate button) ---------- */
.hpsl-heading-section .hpsl-search-bar .input-group{
  /*
  display:flex;
  align-items:stretch;
  gap:10px;
  */
}

/* Address input */
.hpsl-heading-section #hpsl_address_search{
  width:100%;
  height:var(--field-h);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  padding:0 14px;
  color:var(--text-main);
  background:#fff;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.hpsl-heading-section #hpsl_address_search::placeholder{
  color:rgba(107,114,128,.85);
}
.hpsl-heading-section #hpsl_address_search:focus{
  border-color:rgba(161,20,20,.55);
  box-shadow:0 0 0 4px var(--focus-ring);
}

/* Locate button (bootstrap-ish btn btn-danger) */
.hpsl-heading-section #getCurrentLocation{
  height:var(--field-h);
  border:1px solid rgba(161,20,20,.25);
  background:linear-gradient(180deg, var(--barik-600, #10478b), var(--barik-700, #093469));
  color:#fff;
  border-radius:var(--radius-sm);
  padding:0 14px;
  font-weight:800;
  letter-spacing:.2px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.hpsl-heading-section #getCurrentLocation:hover{
  filter:brightness(1.05);
  box-shadow: var(--box-shadow);
}
.hpsl-heading-section #getCurrentLocation:active{
  transform:translateY(1px);
}
.hpsl-heading-section #getCurrentLocation:focus{
  outline:none;
  box-shadow:0 0 0 4px var(--focus-ring);
}

/* icon inside locate button */
.hpsl-heading-section #getCurrentLocation .fa{
  font-size:14px;
  line-height:1;
  opacity:.95;
}

/* ---------- Selects (distance / limit) ---------- */
.hpsl-heading-section .hpsl-search-distance select,
.hpsl-heading-section .hpsl-search-limit select{
  width:100%;
  height:var(--field-h);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm);
  padding:0 40px 0 12px;
  background-color:#fff;
  color:var(--text-main);
  outline:none;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}

/* Custom arrow */
.hpsl-heading-section .hpsl-search-distance,
.hpsl-heading-section .hpsl-search-limit{
  position:relative;
}
.hpsl-heading-section .hpsl-search-distance::after,
.hpsl-heading-section .hpsl-search-limit::after{
  content:"";
  position:absolute;
  right:12px;
  bottom:14px;
  width:10px;
  height:10px;
  border-right:2px solid rgba(17,24,39,.55);
  border-bottom:2px solid rgba(17,24,39,.55);
  transform:rotate(45deg);
  pointer-events:none;
  opacity:.75;
}

.hpsl-heading-section .hpsl-search-distance select:focus,
.hpsl-heading-section .hpsl-search-limit select:focus{
  border-color:rgba(161,20,20,.55);
  box-shadow:0 0 0 4px var(--focus-ring);
}

/* ---------- Search submit button ---------- */
.hpsl-heading-section .hpsl-search-button button#searchStoreBtn{
  width:100%;
  height:var(--field-h);
  border:1px solid rgba(17,24,39,.08);
  background:linear-gradient(180deg, #111827, #0b1220);
  color:#fff;
  border-radius:var(--radius-sm);
  padding:0 14px;
  font-weight:900;
  letter-spacing:.3px;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.hpsl-heading-section .hpsl-search-button button#searchStoreBtn:hover{
  filter:brightness(1.06);
  box-shadow:0 10px 20px rgba(17,24,39,.14);
}
.hpsl-heading-section .hpsl-search-button button#searchStoreBtn:active{
  transform:translateY(1px);
}
.hpsl-heading-section .hpsl-search-button button#searchStoreBtn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(17,24,39,.12), 0 0 0 7px var(--focus-ring);
}

/* ---------- Map container ---------- */
.hpsl-heading-section #opallocation-map-preview{
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  background:#fff;
}

/* Optional: make map a bit softer (doesn't touch Google internals) */
.hpsl-heading-section #opallocation-map-preview::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
  border-radius:inherit;
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px){
  .hpsl-heading-section .hpsl-store-filters{
    grid-template-columns: 1fr 190px 150px;
  }
  .hpsl-heading-section .hpsl-search-button{grid-column:1 / -1;}
}

@media (max-width: 767px){
  .hpsl-heading-section .hpsl-store-filters{
    padding:14px;
    grid-template-columns: 1fr !important;
    gap:10px;
  }

  .hpsl-heading-section .hpsl-search-bar .input-group{
    flex-direction:column;
  }

  .hpsl-heading-section #getCurrentLocation,
  .hpsl-heading-section .hpsl-search-button button#searchStoreBtn{
    width:100%;
    justify-content:center;
  }
}


/*Heading*/
#hp-store-location .section-header {
  margin-bottom: clamp(18px, 3vw, 28px);
}

#hp-store-location .section-kicker {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--barik-600,#10478b);
  margin-bottom: 8px;
}


#hp-store-location .section-title {
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.2;
  font-weight: 800;
  color: var(--ink-900);
  margin: 0 0 8px;
  text-align: left;
  padding: 0;
}

#hp-store-location .section-subtitle {
  font-size: clamp(14px, 2vw, 15px);
  color: var(--ink-700);
  margin: 0;
  max-width: 720px;
}


/* =========================================================
HP Store Locator - Map + Locations layout (Barik tokens)
Scope: #hp-store-location only
Layout: #map-section (left) + #location-content (right)
========================================================= */

/* ---------- Main 2-column layout ---------- */
#hp-store-location .hpsl-main-content{
  display:grid;
  grid-template-columns: 1.25fr 0.75fr; /* map wider */
  gap:14px;
  align-items:start;
}

/* Make it full height-ish on desktop */
#hp-store-location #map-section{
  position:sticky;
  top:14px; /* sticks under header if no fixed header; adjust if needed */
}

/* Map card */
#hp-store-location #opallocation-map-preview{
  min-height:400px;
  height:calc(100vh - 190px); /* keeps map usable */
  max-height:900px;
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--bg-section);
  box-shadow:var(--shadow-soft);
}

/* If you want map to always be at least 520px on smaller screens */
@media (max-width: 1199px){
  #hp-store-location #opallocation-map-preview{
    height:400px;
    min-height:520px;
    max-height:none;
  }
}

/* ---------- Right side: store list container ---------- */
#hp-store-location #location-content{
  min-width:0;
}

#hp-store-location .store-locations{
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  background:var(--bg-section);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}

#hp-store-location .locations-inner{
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:12px;

  /* if list is long: keep list scrollable while map stays sticky */
  max-height:calc(100vh - 190px);
  overflow:auto;
}

/* nicer scrollbar (webkit only) */
#hp-store-location .locations-inner::-webkit-scrollbar{width:10px;}
#hp-store-location .locations-inner::-webkit-scrollbar-track{background:transparent;}
#hp-store-location .locations-inner::-webkit-scrollbar-thumb{
  background:rgba(17,24,39,.12);
  border-radius:999px;
  border:3px solid #fff;
}

/* ---------- Store card ---------- */
#hp-store-location .store-location{
  display:grid;
  grid-template-columns: 140px 1fr;
  gap:12px;
  padding:12px;
  border:1px solid rgba(229,231,235,.9);
  border-radius:var(--radius-md);
  background:var(--surface-2);
  box-shadow:var(--shadow-sm);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

#hp-store-location .store-location:hover{
  transform:translateY(-1px);
  border-color:rgba(54,121,203,.35);
  box-shadow:0 10px 26px rgba(16,24,40,.10);
}

/* Active/selected card (optional: add/remove class via JS) */
#hp-store-location .store-location.is-active{
  border-color:rgba(54,121,203,.55);
  box-shadow:0 14px 34px rgba(16,71,139,.16);
}

/* ---------- Image block ---------- */
#hp-store-location .logo-container{
  width:100%;
}

#hp-store-location .location-image{
  position:relative;
  width:100%;
  aspect-ratio: 4 / 3;
  border-radius:12px;
  overflow:hidden;
  background:rgba(17,24,39,.04);
  border:1px solid rgba(229,231,235,.9);
}

#hp-store-location .location-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.01);
}

/* Image overlay buttons */
#hp-store-location .abs-buttons{
  position:absolute;
  left:10px;
  bottom:10px;
  display:flex;
  gap:8px;
  align-items:center;
}

#hp-store-location .abs-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(229,231,235,.95);
  box-shadow:0 10px 22px rgba(17,24,39,.10);
  color:var(--ink-900);
  cursor:pointer;
  text-decoration:none;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
  -webkit-tap-highlight-color: transparent;
}

#hp-store-location .abs-button:hover{
  transform:translateY(-1px);
  filter:brightness(1.02);
  box-shadow:0 14px 26px rgba(17,24,39,.14);
}

#hp-store-location .abs-button .fa,
#hp-store-location .abs-button .icon{
  font-size:16px;
  line-height:1;
  opacity:.92;
}

/* Map marker overlay a bit branded */
#hp-store-location .abs-button.button-marker{
  background:var(--barik-grad);
  border-color:rgba(16,71,139,.22);
  color:#fff;
}

#hp-store-location .abs-button.button-marker:hover {
  background: var(--barik-grad);
  color: #fff;
}

/* YouTube button accent */
#hp-store-location a.location-youtube-button{
  background:rgba(255,255,255,.92);
}
#hp-store-location a.location-youtube-button .fa{
  color:#cc0000;
}

/* ---------- Text content ---------- */
#hp-store-location .store-location h4{
  margin:2px 0 8px;
  font-size:16px;
  line-height:1.25;
  color:var(--ink-900);
  letter-spacing:.2px;
  font-weight: 600;
}

#hp-store-location .location-brand,
#hp-store-location .location-address,
#hp-store-location .location-telephone,
#hp-store-location .location-email,
#hp-store-location .location-store,
#hp-store-location .location-open,
#hp-store-location .location-website{
  display:flex;
  gap:8px;
  align-items:flex-start;
  color:var(--ink-700);
  font-size:13px;
  line-height:1.35;
  margin:0 0 6px;
}

#hp-store-location .location-brand .fa,
#hp-store-location .location-address .fa,
#hp-store-location .location-telephone .fa,
#hp-store-location .location-email .fa,
#hp-store-location .location-store .fa,
#hp-store-location .location-open .fa,
#hp-store-location .location-website .fa {
  margin-top:2px;
  opacity:.75;
  min-width:14px;
}

/* email link */
#hp-store-location .location-email a, #hp-store-location .location-website a {
  color:var(--ink-700);
  text-decoration:none;
  font-weight:normal;
}
#hp-store-location .location-email a:hover{
  text-decoration:underline;
}

/* ---------- Direction button (override bootstrap-ish btn btn-info) ---------- */
/*
#hp-store-location .button-direction{
  margin-top:10px;
}
*/

.button-direction .btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:40px;
  padding:0 12px;
  border-radius:12px;
  /*
  border:1px solid rgba(16,71,139,.18);
  background:rgba(16,71,139,.08);
  color:var(--barik-700,#093479);
  */
  border: none;
  background: transparent;
  color: #000;
  font-weight:800;
  letter-spacing:.15px;
  box-shadow:none;
  transition:transform .12s ease, background .12s ease, border-color .12s ease;
  text-shadow: none;
}

.button-direction .btn:hover{
  transform:translateY(-1px);
  background:rgba(16,71,139,.12);
  border-color:rgba(16,71,139,.28);
}

#hp-store-location .button-direction .btn:focus{
  outline:none;
  box-shadow:0 0 0 4px var(--ring-blue);
}

/* ---------- Responsive ---------- */
@media (max-width: 991px){
  #hp-store-location .hpsl-main-content{
    grid-template-columns: 1fr;
  }

  #hp-store-location #map-section{
    position:relative;
    top:auto;
  }

  #hp-store-location #opallocation-map-preview{
    height:420px;
    min-height:420px;
    border-radius:var(--radius-md);
  }

  #hp-store-location .locations-inner{
    max-height:none;
    overflow:visible;
  }

  #hp-store-location .store-location{
    grid-template-columns: 130px 1fr;
  }
}

@media (max-width: 520px){
  #hp-store-location .store-location{
    grid-template-columns: 1fr;
  }

  #hp-store-location .location-image{
    aspect-ratio: 16 / 9;
  }

  #hp-store-location .abs-buttons{
    left:10px;
    bottom:10px;
  }
}

/* Map Popup */

.infoBox {
  position: relative;
}
.infoBox>img {
  z-index: 99;
  margin: 0 !important;
  position: absolute !important;
  right: 0;
  top: 15px;
  background-color: #ef114c;
  padding: 13px;
}
.map-info-preview {
  position: relative;
  padding: 30px 30px 25px;
  background-color: #FFFFFF;
  margin-bottom: -320px;
  max-width: 550px;
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.map-info-preview .thumb-link img {
  max-width: 180px;
  width: 180px;
}
.map-info-preview .info-container {
  padding-left: 15px;
  padding-right: 0px;
}
.map-info-preview .info-container .prop-title {
  margin: 0 0 10px;
}
.map-info-preview .info-container p {
  line-height: 22px;
  margin-bottom: 5px;
}
.map-info-preview .info-container p .price {
  font-family: "Montserrat", monospace;
  font-size: 14px;
}
.map-info-preview .info-container p {
  font-size: 14px;
}
.map-info-preview .property-meta-list {
  border-top: 1px solid #ebebeb;
  padding: 20px 30px 0;
  margin: 20px -30px 0;
  text-align: center;
}
.map-info-preview .property-meta-list>li {
  color: #999999;
  font-family: "Lato", sans-serif;
  font-size: 14px;
  padding: 0;
  margin: 0 0 0 39px;
}
.map-info-preview .arrow-down {
  border-style: solid;
  border-width: 10px 10px 0;
  bottom: -13px;
  height: 0;
  left: 112px;
  position: absolute;
  width: 0;
  border-color: #ef114c;
  display: none;
}
.maker-item-inner .fa-map-marker {
  color: red;
  cursor: pointer;
  right: 25px;
  opacity: 10;
  text-align: center;
  width: 30px;
  height: 30px;
  line-height: 30px;
  position: absolute;
  background-color: #fff;
  text-align: center;
  bottom: 5px;
  transition: all 0.3s ease-in-out 0s;
  z-index: 999;
}

/* =========================================================
Map InfoWindow / Popup styling
Scope: only inside #hp-store-location to match existing UI
Target: .map-info-preview (your popup HTML root)
========================================================= */

#hp-store-location{
  /* extra tokens just for popup polish (still aligned) */
  --popup-bg: rgba(255,255,255,.96);
  --popup-border: rgba(229,231,235,.95);
  --popup-shadow: 0 18px 40px rgba(17,24,39,.14);
  --popup-ring: rgba(54,121,203,.22);
  --popup-muted: rgba(55,65,81,.86);
}

/* Root container (works even if Google wraps the content) */
#hp-store-location .map-info-preview{
  display:flex;
  gap:12px;
  align-items:stretch;
  max-width:320px;
  padding:12px;
  border-radius:14px;
  background:var(--popup-bg);
  border:1px solid var(--popup-border);
  box-shadow:var(--popup-shadow);
  color:var(--ink-900);
}

/* If the content uses bootstrap media classes */
#hp-store-location .map-info-preview.media{
  display:flex;
}

/* Left image */
#hp-store-location .map-info-preview .media-left{
  flex:0 0 86px;
}

#hp-store-location .map-info-preview .thumb-link{
  display:block;
  width:86px;
  height:72px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(229,231,235,.95);
  background:rgba(17,24,39,.04);
  box-shadow:0 8px 18px rgba(16,24,40,.08);
}

#hp-store-location .map-info-preview img.prop-thumb{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.01);
}

/* Right content */
#hp-store-location .map-info-preview .info-container{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}

#hp-store-location .map-info-preview .prop-title{
  margin:0;
  font-size:14px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.2px;
  color:var(--ink-900);
}

/* Optional: make title look clickable */
#hp-store-location .map-info-preview .title-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--ink-900);
}

#hp-store-location .map-info-preview .title-link::after{
  content:"";
  width:8px;
  height:8px;
  border-right:2px solid rgba(16,71,139,.55);
  border-bottom:2px solid rgba(16,71,139,.55);
  transform:rotate(-45deg);
  opacity:.75;
  margin-left:4px;
}

/* Address */
#hp-store-location .map-info-preview .prop-address{
  margin:0;
  font-size:12.5px;
  line-height:1.25;
  color:var(--popup-muted);
}
#hp-store-location .map-info-preview .prop-address em{
  font-style:normal; /* keep clean, like the list cards */
}

/* Phone / Email rows */
#hp-store-location .map-info-preview p{
  margin:0;
  font-size:12.5px;
  line-height:1.25;
  color:var(--ink-700);
  display:flex;
  gap:8px;
  align-items:flex-start;
}

#hp-store-location .map-info-preview p .fa{
  margin-top:2px;
  min-width:14px;
  opacity:.75;
  color:var(--barik-600,#10478b);
}

#hp-store-location .map-info-preview .phone-number,
#hp-store-location .map-info-preview .email{
  color:var(--ink-700);
  font-weight:700;
}

/* Subtle separator when needed (if you add more lines later) */
#hp-store-location .map-info-preview .info-container > * + *{
  /* already has gap; keep for future */
}

/* Hover / focus polish if title becomes clickable later */
#hp-store-location .map-info-preview:focus-within{
  box-shadow:var(--popup-shadow), 0 0 0 4px var(--popup-ring);
  border-color:rgba(54,121,203,.35);
}

/* Small screens: allow a bit wider */
@media (max-width: 520px){
  #hp-store-location .map-info-preview{
    max-width:340px;
  }
}

/* ---------------------------------------------------------
Optional: if you can add a class for "dark map" mode
Example: <div id="hp-store-location" class="is-map-dark">
--------------------------------------------------------- */
#hp-store-location.is-map-dark .map-info-preview{
  background:rgba(17,24,39,.92);
  border-color:rgba(255,255,255,.08);
  color:rgba(255,255,255,.92);
  box-shadow:0 18px 44px rgba(0,0,0,.40);
}

#hp-store-location.is-map-dark .map-info-preview .prop-title,
#hp-store-location.is-map-dark .map-info-preview .title-link{
  color:rgba(255,255,255,.92);
}

#hp-store-location.is-map-dark .map-info-preview .prop-address{
  color:rgba(255,255,255,.72);
}

#hp-store-location.is-map-dark .map-info-preview p{
  color:rgba(255,255,255,.78);
}

#hp-store-location.is-map-dark .map-info-preview p .fa{
  color:var(--barik-200);
}

#hp-store-location.is-map-dark .map-info-preview .thumb-link{
  border-color:rgba(255,255,255,.10);
  box-shadow:0 12px 26px rgba(0,0,0,.35);
}


/*
#hp-store-location .store-item i {
  color: #000;
}
*/

/*
#hp-store-location .store-item .location-store {
  font-weight: bold;
}
*/

div#quick-store-locations {
  margin-top: 30px;
}
#quick-store-locations .qsl-wrap {
  margin-top: 16px;
}
#quick-store-locations .qsl-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
#quick-store-locations .qsl-search {
  position: relative;
  flex: 1;
  max-width: 520px;
}
#quick-store-locations .qsl-search-input {
  width: 100%;
  padding: 10px 36px 10px 36px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
}
#quick-store-locations .qsl-search-ic {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.6;
}
#quick-store-locations .qsl-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 0;
  background: #f3f4f6;
  cursor: pointer;
  display: none;
}
#quick-store-locations .qsl-meta {
  color: #6b7280;
  font-size: 13px;
  white-space: nowrap;
}
#quick-store-locations .qsl-empty {
  padding: 14px;
  border: 1px dashed #e5e7eb;
  border-radius: 12px;
  color: #6b7280;
}

/*
#quick-store-locations .location-open i {
  margin-right: 6px;
}
*/

#quick-store-locations .qsl-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin: 12px 0;
}
#quick-store-locations .qsl-search {
  position: relative;
  flex: 1;
  max-width: 520px;
}
#quick-store-locations .qsl-search-input {
  width: 100%;
  padding: 10px 36px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
}
#quick-store-locations .qsl-search-ic {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.6;
}
#quick-store-locations .qsl-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 0;
  background: #f3f4f6;
  cursor: pointer;
  line-height: 28px;
  padding: 0;
  justify-content: center;
}
#quick-store-locations .qsl-meta {
  color: #6b7280;
  font-size: 13px;
  white-space: nowrap;
}
#quick-store-locations .qsl-empty {
  padding: 14px;
  border: 1px dashed #e5e7eb;
  border-radius: 12px;
  color: #6b7280;
}


/* Grid container */
#quick-store-locations .qsl-list{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  align-items: stretch;
}

/* Ensure each card stretches nicely */
#quick-store-locations .store-location{
  height: 100%;
  padding: 16px;
}

/* Optional: card feel (kalau belum ada) */
#quick-store-locations .store-location > div{
  height: 100%;
  /*
  padding: 16px;
  border: 1px solid #e5e7eb;
  */
  border-radius: 14px;
  background: #fff;
}

@media (max-width: 640px){
  #quick-store-locations .qsl-list{
    grid-template-columns: 1fr;
  }
}

@media (min-width: 641px) and (max-width: 1024px){
  #quick-store-locations .qsl-list{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1025px){
  #quick-store-locations .qsl-list{
    grid-template-columns: repeat(3, 1fr);
  }
}

button#btn-load-stores {
  height: var(--field-h);
  border: 1px solid rgba(161, 20, 20, .25);
  background: var(--barik-600, #10478b);
  color: #fff;
  border-radius: var(--radius-sm);
  padding: 0 14px;
  font-weight: 800;
  letter-spacing: .2px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}


.store-item{
  display: flex;
  flex-direction: column;
}

.store-item h4{
  order: 0;
}

.store-item .location-store{
  order: 1;
}

.store-item .location-brand,
.store-item .location-address,
.store-item .location-telephone,
.store-item .location-email,
.store-item .location-website,
.store-item .location-open{
  order: 2;
}


#hp-store-location .location-store {
    border-bottom: 1px solid #ddd;
    margin-bottom: 15px;
    padding-bottom: 5px;
}


#hp-store-location .location-website a {
    text-decoration: underline;
}


/* MISC */
div#hp-store-location .breadcrumb {
    background-color: transparent;
}
