/*
 * Marcadores públicos em formato "gota", inspirados em sinalização cartográfica clássica.
 * Esta camada sobrescreve apenas o visual do marker; o elemento raiz continua sem transform
 * para não interferir no posicionamento calculado pelo Mapbox.
 */
.directory-page .public-locator-marker {
  --ql-pin:#6366f1;
  --ql-pin-dark:#4f46e5;
  --ql-pin-shadow:rgba(79,70,229,.28);
  --ql-icon:#4f46e5;
  width:46px!important;
  height:62px!important;
  opacity:.52!important;
  filter:saturate(.72)!important;
}

/* Corpo da gota. */
.directory-page .public-locator-marker::before {
  content:''!important;
  position:absolute!important;
  top:3px!important;
  left:4px!important;
  width:38px!important;
  height:48px!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:50% 50% 50% 6px!important;
  outline:0!important;
  background:linear-gradient(180deg,var(--ql-pin) 0%,var(--ql-pin-dark) 100%)!important;
  box-shadow:0 10px 18px var(--ql-pin-shadow),0 3px 6px rgba(15,23,42,.16)!important;
  transform:rotate(-45deg)!important;
  transform-origin:50% 50%!important;
  transition:filter .16s ease,box-shadow .16s ease!important;
}

/* Disco branco interno, como na referência enviada. */
.directory-page .public-locator-marker::after {
  content:''!important;
  position:absolute!important;
  top:10px!important;
  left:50%!important;
  z-index:3!important;
  width:25px!important;
  height:25px!important;
  box-sizing:border-box!important;
  border:3px solid #fff!important;
  border-radius:50%!important;
  background-color:#fff!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:15px 15px!important;
  box-shadow:0 1px 4px rgba(15,23,42,.14)!important;
  transform:translateX(-50%)!important;
  filter:none!important;
}

/* Ícones das categorias ficam coloridos dentro do disco branco. */
.directory-page .public-locator-marker.category-construction::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d97706' d='M2 20h20v2H2v-2zm2-2V8h4v10H4zm6 0V3h4v15h-4zm6 0v-7h4v7h-4z'/%3E%3C/svg%3E")!important;
}
.directory-page .public-locator-marker.category-waste::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230f766e' d='M5 4h14l-1 17H6L5 4zm3-3h8l1 2H7l1-2z'/%3E%3C/svg%3E")!important;
}
.directory-page .public-locator-marker.category-party::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23be185d' d='m3 21 6-18 4 4 4 4-14 10zm11-15 2-2 2 2-2 2-2-2zm4 5 2-2 2 2-2 2-2-2zM12 2h2v3h-2V2z'/%3E%3C/svg%3E")!important;
}
.directory-page .public-locator-marker.category-furniture::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c2410c' d='M4 3h16v8h-2v10h-2v-8H8v8H6V11H4V3zm2 2v6h12V5H6z'/%3E%3C/svg%3E")!important;
}
.directory-page .public-locator-marker.category-recreation::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231d4ed8' d='M7 6h10l3 5v6a3 3 0 0 1-3 3h-1l-3-4h-2l-3 4H7a3 3 0 0 1-3-3v-6l3-5zm2 5H7v2H5v2H3v2h2v2h2v-2h2v-2H7v-2h2v-2zm7 1a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z'/%3E%3C/svg%3E")!important;
}

/* Paleta por categoria, semelhante à referência: cores vivas e reconhecíveis. */
.directory-page .public-locator-marker.category-construction {
  --ql-pin:#fbbf24; --ql-pin-dark:#f59e0b; --ql-pin-shadow:rgba(245,158,11,.28);
}
.directory-page .public-locator-marker.category-waste {
  --ql-pin:#2dd4bf; --ql-pin-dark:#0f766e; --ql-pin-shadow:rgba(15,118,110,.27);
}
.directory-page .public-locator-marker.category-party {
  --ql-pin:#f472b6; --ql-pin-dark:#db2777; --ql-pin-shadow:rgba(219,39,119,.27);
}
.directory-page .public-locator-marker.category-furniture {
  --ql-pin:#fb923c; --ql-pin-dark:#ea580c; --ql-pin-shadow:rgba(234,88,12,.27);
}
.directory-page .public-locator-marker.category-recreation {
  --ql-pin:#38bdf8; --ql-pin-dark:#0284c7; --ql-pin-shadow:rgba(2,132,199,.27);
}

/* Cliente Quero Locar: cor plena, anel branco/verde e selo QL. */
.directory-page .public-locator-marker.customer,
.directory-page .public-locator-marker.published {
  opacity:1!important;
  filter:saturate(1.08)!important;
}
.directory-page .public-locator-marker.customer::before,
.directory-page .public-locator-marker.published::before {
  box-shadow:0 0 0 2px #fff,0 0 0 5px rgba(34,197,94,.30),0 11px 21px var(--ql-pin-shadow),0 3px 7px rgba(15,23,42,.18)!important;
}
.directory-page .ql-customer-marker-badge {
  top:-2px!important;
  right:-4px!important;
  min-width:20px!important;
  height:20px!important;
  padding:0 4px!important;
  border:2px solid #fff!important;
  border-radius:999px!important;
  color:#fff!important;
  background:#16a34a!important;
  box-shadow:0 3px 9px rgba(22,163,74,.32)!important;
  font-size:7px!important;
  font-weight:900!important;
}

/* Conhecida/não cliente: mesma identidade visual, porém propositalmente suave. */
.directory-page .public-locator-marker.known:not(.customer) {
  opacity:.42!important;
  filter:saturate(.55) grayscale(.08)!important;
}
.directory-page .public-locator-marker.known:not(.customer)::before {
  box-shadow:0 8px 14px rgba(71,85,105,.16),0 2px 5px rgba(15,23,42,.10)!important;
}

/* Posição aproximada: contorno pontilhado discreto no disco, não no corpo inteiro. */
.directory-page .public-locator-marker.city-approx::after {
  outline:2px dashed rgba(71,85,105,.35)!important;
  outline-offset:2px!important;
}

/* Hover/foco nunca altera o transform do elemento raiz do Mapbox. */
.directory-page .public-locator-marker:hover,
.directory-page .public-locator-marker:focus-visible {
  opacity:1!important;
  filter:saturate(1.06)!important;
  z-index:20!important;
}
.directory-page .public-locator-marker:hover::before,
.directory-page .public-locator-marker:focus-visible::before {
  filter:brightness(1.045)!important;
  box-shadow:0 0 0 2px #fff,0 12px 23px var(--ql-pin-shadow),0 4px 8px rgba(15,23,42,.18)!important;
  transform:rotate(-45deg)!important;
}
.directory-page .public-locator-marker:focus-visible {
  outline:none!important;
}

@media(max-width:860px){
  .directory-page .public-locator-marker{width:42px!important;height:57px!important}
  .directory-page .public-locator-marker::before{left:4px!important;width:34px!important;height:43px!important}
  .directory-page .public-locator-marker::after{top:9px!important;width:23px!important;height:23px!important;background-size:14px 14px!important}
  .directory-page .ql-customer-marker-badge{right:-3px!important;min-width:19px!important;height:19px!important;font-size:6.5px!important}
}

@media(prefers-reduced-motion:reduce){
  .directory-page .public-locator-marker,
  .directory-page .public-locator-marker::before{transition:none!important}
}
