/* Diretório público: pins sem dependência de fontes externas e fluxo de contato. */
.directory-page .content-grid,.directory-page .map-card,.directory-page .list-card{min-width:0;max-width:100%;box-sizing:border-box}
.directory-page .map-card{overflow:hidden}
.directory-page .map{position:relative!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;overflow:hidden!important;contain:layout paint}
.directory-page .map>.mapboxgl-map,.directory-page .map .mapboxgl-canvas-container,.directory-page .map .mapboxgl-canvas{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
.directory-page .map .mapboxgl-canvas{left:0!important}

.directory-page .public-locator-marker {
  --ql-pin:#6366f1; --ql-pin-shadow:rgba(99,102,241,.34);
  position:relative!important; width:48px!important; height:58px!important; padding:0!important;
  border:0!important; border-radius:0!important; color:transparent!important; background:transparent!important;
  box-shadow:none!important; overflow:visible!important; font-size:0!important; line-height:1!important;
}
.directory-page .public-locator-marker::before {
  content:''; position:absolute; top:4px; left:7px; width:34px; height:34px;
  border:3px solid #fff; border-radius:50% 50% 50% 0; background:var(--ql-pin);
  box-shadow:0 9px 20px var(--ql-pin-shadow),0 2px 5px rgba(15,23,42,.2);
  transform:rotate(-45deg); transform-origin:center;
}
.directory-page .public-locator-marker::after {
  content:''; position:absolute; top:11px; left:50%; z-index:2; width:20px; height:20px;
  transform:translateX(-50%); background-repeat:no-repeat; background-position:center; background-size:20px 20px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M4 21V7l8-4 8 4v14h-6v-6h-4v6H4zm4-9h2V9H8v3zm6 0h2V9h-2v3z'/%3E%3C/svg%3E");
}
.directory-page .public-locator-marker.customer { --ql-pin:#16a34a; --ql-pin-shadow:rgba(22,163,74,.42); }
.directory-page .public-locator-marker.customer::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M4 4h16v12H8l-4 4V4zm4 5h8v2H8V9zm0 4h6v2H8v-2z'/%3E%3C/svg%3E");
}
.directory-page .public-locator-marker.published { --ql-pin:#7c3aed; --ql-pin-shadow:rgba(124,58,237,.38); }
.directory-page .public-locator-marker.published::after {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='m9.2 16.6-4.4-4.4 1.8-1.8 2.6 2.6 8.2-8.2 1.8 1.8-10 10z'/%3E%3C/svg%3E");
}
.directory-page .public-locator-marker.city-approx::before { outline:2px dashed rgba(255,255,255,.96); outline-offset:3px; }
.directory-page .public-locator-marker:hover::before,.directory-page .public-locator-marker:focus-visible::before { filter:brightness(1.06); box-shadow:0 12px 26px var(--ql-pin-shadow),0 3px 8px rgba(15,23,42,.24); }
.directory-page .public-locator-marker:focus-visible { outline:3px solid rgba(59,130,246,.35)!important; outline-offset:2px!important; }

.directory-page .public-contact-actions { display:flex; margin-top:14px; }
.directory-page .public-contact-button {
  display:inline-flex; min-height:40px; align-items:center; justify-content:center; gap:8px; padding:10px 16px;
  border:0; border-radius:999px; color:#fff!important; -webkit-text-fill-color:#fff!important;
  background:linear-gradient(135deg,#15803d,#22c55e); box-shadow:0 8px 20px rgba(34,197,94,.24);
  font-size:.82rem; font-weight:800; line-height:1.2; text-decoration:none!important; opacity:1!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.directory-page .public-contact-button * { color:#fff!important; -webkit-text-fill-color:#fff!important; opacity:1!important; }
.directory-page .public-contact-button svg { width:17px; height:17px; flex:0 0 auto; fill:#fff!important; }
.directory-page .public-contact-button:hover,.directory-page .public-contact-button:focus-visible { color:#fff!important; -webkit-text-fill-color:#fff!important; filter:brightness(1.04); box-shadow:0 11px 24px rgba(34,197,94,.3); transform:translateY(-1px); }
.directory-page .public-contact-button:focus-visible { outline:3px solid rgba(34,197,94,.24); outline-offset:3px; }
.directory-page .locator-popup.customer .public-contact-button { width:100%; margin-top:7px; box-sizing:border-box; font-size:.76rem; }

.ql-inquiry-overlay { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:18px; background:rgba(15,23,42,.58); backdrop-filter:blur(5px); }
.ql-inquiry-modal { position:relative; width:min(680px,100%); max-height:calc(100vh - 36px); overflow:auto; box-sizing:border-box; padding:28px; border:1px solid rgba(148,163,184,.35); border-radius:24px; background:#fff; box-shadow:0 28px 70px rgba(15,23,42,.28); color:#0f172a; font-family:Poppins,system-ui,sans-serif; }
.ql-inquiry-close { position:absolute; top:14px; right:14px; display:grid; width:38px; height:38px; padding:0; place-items:center; border:1px solid #e2e8f0; border-radius:50%; color:#475569; background:#fff; font-size:22px; cursor:pointer; }
.ql-inquiry-eyebrow { display:inline-flex; margin:0 42px 10px 0; padding:6px 12px; border-radius:999px; color:#166534; background:#dcfce7; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.ql-inquiry-modal h2 { margin:0; color:#0f172a; font-size:clamp(22px,5vw,32px); line-height:1.15; }
.ql-inquiry-lead { margin:11px 0 22px; color:#64748b; font-size:14px; line-height:1.55; }
.ql-inquiry-form { display:grid; gap:15px; }
.ql-inquiry-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ql-inquiry-field { display:grid; gap:6px; }
.ql-inquiry-field>span { color:#475569; font-size:12px; font-weight:700; }
.ql-inquiry-field input,.ql-inquiry-field textarea { width:100%; box-sizing:border-box; padding:12px 13px; border:1px solid #cbd5e1; border-radius:13px; outline:0; color:#0f172a; background:#fff; font:inherit; font-size:14px; }
.ql-inquiry-field textarea { min-height:105px; resize:vertical; }
.ql-inquiry-field input:focus,.ql-inquiry-field textarea:focus { border-color:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.13); }
.ql-inquiry-consent { display:grid; grid-template-columns:auto 1fr; gap:9px; align-items:start; padding:12px; border-radius:13px; background:#f0fdf4; color:#475569; font-size:12px; line-height:1.45; }
.ql-inquiry-consent input { width:18px; height:18px; margin:0; accent-color:#16a34a; }
.ql-inquiry-submit { display:inline-flex; width:100%; min-height:50px; align-items:center; justify-content:center; gap:9px; padding:12px 18px; border:0; border-radius:999px; color:#fff!important; -webkit-text-fill-color:#fff!important; background:linear-gradient(135deg,#15803d,#22c55e); box-shadow:0 9px 22px rgba(34,197,94,.24); font:inherit; font-size:14px; font-weight:800; cursor:pointer; }
.ql-inquiry-submit:disabled { opacity:.55; cursor:not-allowed; }
.ql-inquiry-submit svg { width:18px; height:18px; fill:#fff; }
.ql-inquiry-error { margin:0; padding:11px 12px; border-radius:11px; color:#991b1b; background:#fef2f2; font-size:12px; line-height:1.4; }
.ql-inquiry-success { display:grid; justify-items:center; padding:18px 4px 6px; text-align:center; }
.ql-inquiry-success-icon { display:grid; width:58px; height:58px; margin-bottom:15px; place-items:center; border-radius:50%; color:#fff; background:#16a34a; font-size:28px; font-weight:900; }
.ql-inquiry-success p { max-width:480px; color:#64748b; line-height:1.55; }
.ql-inquiry-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
body.ql-inquiry-open { overflow:hidden!important; }

@media(max-width:860px){
  .directory-page .public-contact-actions,.directory-page .public-contact-button{width:100%}
  .directory-page .public-locator-marker{width:44px!important;height:54px!important}
  .directory-page .public-locator-marker::before{left:6px;width:32px;height:32px}
  .directory-page .public-locator-marker::after{top:10px;width:19px;height:19px;background-size:19px 19px}
  .directory-page .map-card{width:100%;padding-left:14px!important;padding-right:14px!important}
  .directory-page .map{height:min(390px,58vh)!important}
}
@media(max-width:620px){ .ql-inquiry-overlay{padding:10px}.ql-inquiry-modal{max-height:calc(100vh - 20px);padding:24px 16px 18px;border-radius:20px}.ql-inquiry-grid{grid-template-columns:1fr}.ql-inquiry-submit{min-height:54px} }
@media(prefers-reduced-motion:reduce){ .directory-page .public-contact-button{transition:none} }
