:root{
  --sm-accent: #ff7a00;
  --sm-border: #ececec;
  --sm-text: #111;
  --sm-muted: #666;
  --sm-bg: #fff;
  --sm-soft: #fafafa;
  --sm-radius: 18px;
  --sm-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.sm-logo-pin { background: transparent !important; border: 0 !important; }

.sm-pin--dyn{
  width: var(--sm-pin-size);
  height: var(--sm-pin-size);
  border-radius: 999px;
  background: var(--pin, var(--sm-accent));
  border: 4px solid #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  position: relative;
}

.sm-pin--dyn::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: calc(var(--sm-pin-size) * -0.33);
  transform: translateX(-50%) rotate(45deg);
  width: calc(var(--sm-pin-size) * 0.34);
  height: calc(var(--sm-pin-size) * 0.34);
  background: #fff;
  border: 4px solid var(--pin, var(--sm-accent));
  border-radius: 10px;
}

.sm-pin--dyn .sm-pin__inner{
  width: var(--sm-pin-inner);
  height: var(--sm-pin-inner);
  border-radius: 999px;
  background: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;

  border: 3px solid rgba(255,255,255,.9);
  outline: 3px solid rgba(17,17,17,.06);
  outline-offset: -1px;
}

.sm-pin--dyn .sm-pin__inner img{
  width: 94%;
  height: 94%;
  object-fit: contain;
  display:block;
  filter: contrast(1.05) saturate(1.05);
}

.stores-map-wrap{
  width: 100%;
  height: var(--stores-map-height, 650px);
}

.stores-map-app{
  display: flex;
  height: 100%;
  border: 1px solid var(--sm-border);
  border-radius: var(--sm-radius);
  overflow: hidden;
  background: var(--sm-bg);
  box-shadow: var(--sm-shadow);
}

.stores-map-app.no-panel{
  grid-template-columns: 1fr;
}

.stores-map-panel{
  width: 380px;
  flex: 0 0 380px;
  border-right: 1px solid var(--sm-border);
  background: var(--sm-bg);
  display:flex;
  flex-direction: column;
  min-width: 320px;
}

.stores-map-panel__header{
  padding: 18px;
  border-bottom: 1px solid var(--sm-border);
}

.stores-map-title{
  margin: 0 0 12px 0;
  font-size: 18px;
  letter-spacing: .2px;
  color: var(--sm-text);
}

.stores-map-controls{
  display: grid;
  gap: 10px;
}

.stores-map-input,
.stores-map-select{
  width: 100%;
  border: 1px solid var(--sm-border);
  border-radius: 14px;
  outline: none;
  background: #fff;
  font-size: 14px;
}

.stores-map-input:focus,
.stores-map-select:focus{
  border-color: rgba(255,122,0,.55);
  box-shadow: 0 0 0 4px rgba(255,122,0,.12);
}

.stores-map-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}

.stores-map-chips{
  display:flex;
  gap:10px;
  flex-wrap: wrap;
}

.stores-map-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--sm-border);
  background: var(--sm-soft);
  cursor:pointer;
  font-size: 13px;
  line-height: 1;
  user-select:none;
  transition: transform .06s ease, background .15s ease, border-color .15s ease, opacity .15s ease;
}

.stores-map-chip:hover{ transform: translateY(-1px); }
.stores-map-chip .chip-dot{ width:10px; height:10px; border-radius:999px; display:inline-block; }
.stores-map-chip.is-on{
  background: #fff;
  border-color: rgba(255,122,0,.35);
}
.stores-map-chip:not(.is-on){
  opacity: .45;
}

.stores-map-list{
  padding: 12px;
  overflow:auto;
}

.stores-map-item{
  border: 1px solid var(--sm-border);
  border-radius: 16px;
  padding: 12px;
  background:#fff;
  cursor:pointer;
  transition: box-shadow .18s ease, transform .06s ease, border-color .18s ease;
  margin-bottom: 10px;
}

.stores-map-item:hover{
  box-shadow: 0 10px 26px rgba(0,0,0,.07);
  border-color: rgba(255,122,0,.25);
}

.stores-map-item:active{
  transform: translateY(1px);
}

.stores-map-item__top{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap:10px;
  margin-bottom: 6px;
}

.stores-map-item__name{
  font-weight: 600;
  font-size: 14px;
  color: var(--sm-text);
}

.stores-map-item__badge{
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 999px;
  border: 1px solid var(--sm-border);
  background: #fff;
  color: #333;
  white-space: nowrap;
}

.stores-map-item__meta{
  font-size: 13px;
  color: var(--sm-muted);
  line-height: 1.35;
}

.stores-map-item__small{
  margin-top: 6px;
  font-size: 12px;
  color: #7a7a7a;
}

.stores-map-empty{
  border: 1px dashed var(--sm-border);
  border-radius: 16px;
  padding: 14px;
  background: #fff;
  color: var(--sm-muted);
}

.stores-map-app.no-panel .stores-map-panel{
  display:none;
}
.stores-map-app.no-panel .stores-map-map{
  width: 100%;
}

.stores-map-map{
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  min-height: 420px;
}

.sm-pin{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: var(--pin, var(--sm-accent));
  border: 2px solid #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  display:flex;
  align-items:center;
  justify-content:center;
}
.sm-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.95);
}

.sm-popup__title{
  font-weight: 600;
  margin-bottom: 6px;
}
.sm-popup__meta{
  font-size: 13px;
  color: #444;
  line-height: 1.35;
}

@media (max-width: 980px){
  .stores-map-app{
    flex-direction: column;
  }
  .stores-map-panel{
    width: 100%;
    flex: 0 0 auto;
    border-right: none;
    border-bottom: 1px solid var(--sm-border);
    min-width: 0;
  }
  .stores-map-map{
    height: 56%;
  }
}

.sm-logo-pin{
  background: transparent !important;
  border: 0 !important;
}

.sm-logo-pin .sm-pin-svg{
  display:block;
}

.sm-hex-marker{
  background: transparent !important;
  border: 0 !important;
}

.sm-hex-marker .sm-hex-svg{
  display:block;
}

.sm-hex-marker:hover .sm-hex-svg{
  transform: translateY(-1px);
}

.sm-hex-marker .sm-hex-svg{ transition: transform .08s ease; }

.sm-ghex{
  position: relative;
  display: grid;
  place-items: center;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 14px 28px rgba(0,0,0,.16);
  overflow: visible;
  transform: translateZ(0);
  clip-path: polygon(50% 3%, 93% 25%, 93% 75%, 50% 97%, 7% 75%, 7% 25%);
}

.sm-ghex::before{
  content:"";
  position:absolute;
  inset: 6px;
  background: transparent;
  border: 1px solid var(--accent, #ffb900);
  clip-path: polygon(50% 3%, 93% 25%, 93% 75%, 50% 97%, 7% 75%, 7% 25%);
  opacity: .95;
}

.sm-ghex img{
  width: 68%;
  height: 68%;
  object-fit: contain;
  display:block;
  filter: contrast(1.05) saturate(1.05);
}

.sm-ghex:hover{ transform: translateY(-1px); }

@media (max-width: 980px){
  .stores-map-wrap{
    height: min(var(--stores-map-height, 750px), 85vh);
  }

  .stores-map-app{
    height: 100%;
    flex-direction: column;
  }

  .stores-map-panel{
    width: 100%;
    flex: 0 0 auto;
    min-height: 0;
    max-height: 60%;
    border-right: none;
    border-bottom: 1px solid var(--sm-border);
  }

  .stores-map-list{
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  .stores-map-map{
    flex: 1 1 auto;
    min-height: 260px;
    height: auto;
  }
}

@media (max-width: 980px){

  .stores-map-panel{
    overflow: hidden;
  }

  /* scroll zona */
  .stores-map-list{
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 18px; 
    scrollbar-gutter: stable;
  }

  .stores-map-item{
    margin-bottom: 12px;
  }

  .stores-map-list::-webkit-scrollbar{
    width: 10px;
  }
  .stores-map-list::-webkit-scrollbar-track{
    background: transparent;
  }
  .stores-map-list::-webkit-scrollbar-thumb{
    background: rgba(0,0,0,.18);
    border-radius: 999px;
    border: 3px solid transparent;
    background-clip: content-box;
  }
  .stores-map-list::-webkit-scrollbar-thumb:hover{
    background: rgba(0,0,0,.28);
    border: 3px solid transparent;
    background-clip: content-box;
  }
}

