/* Camada visual final do diretório público — fidelidade ao mockup aprovado. */
.directory-page{max-width:1480px!important;margin:0 auto!important;padding:0 24px 34px!important;min-height:100vh!important;background:#f7f9fc!important;color:#162033!important;font-family:'Poppins',sans-serif!important}
.directory-page .hero{padding:0 0 18px!important;background:transparent!important;border:0!important;box-shadow:none!important}
.directory-page .topbar{position:sticky!important;top:0!important;z-index:40!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin:0 -24px 28px!important;padding:13px 24px!important;background:rgba(255,255,255,.96)!important;border-bottom:1px solid #e4e8f0!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important}
.directory-page .brand{display:flex!important;align-items:center!important;gap:8px!important;font-size:1.35rem!important;font-weight:800!important;letter-spacing:-.035em!important;color:#172554!important;text-decoration:none!important}
.directory-page .brand::after{content:'|  Mapa público';font-size:.72rem!important;font-weight:600!important;letter-spacing:.01em!important;color:#64748b!important}
.directory-page .nav-actions{display:flex!important;align-items:center!important;gap:10px!important}
.directory-page .customer-link,.directory-page .business-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:38px!important;padding:0 14px!important;border-radius:10px!important;font-size:.76rem!important;font-weight:700!important;text-decoration:none!important}
.directory-page .customer-link{border:1px solid #d8dee9!important;background:#fff!important;color:#334155!important}
.directory-page .business-link{border:1px solid #4f46e5!important;background:#4f46e5!important;color:#fff!important;box-shadow:0 7px 18px rgba(79,70,229,.16)!important}

.directory-page>.hero>.eyebrow{display:block!important;margin:0 auto 7px!important;text-align:center!important;color:#4f46e5!important;font-size:.72rem!important;font-weight:800!important;letter-spacing:.1em!important;text-transform:uppercase!important}
.directory-page>.hero>h1{display:block!important;margin:0 auto!important;text-align:center!important;max-width:900px!important;color:#1e2a44!important;font-size:clamp(1.65rem,3vw,2.45rem)!important;line-height:1.15!important;letter-spacing:-.045em!important;font-weight:800!important}
.directory-page>.hero>p:not(.search-hint){display:block!important;max-width:760px!important;margin:9px auto 18px!important;text-align:center!important;color:#7b8497!important;font-size:.82rem!important;line-height:1.55!important}
.directory-page .preview-banner{display:none!important}

.directory-page .city-search{display:grid!important;grid-template-columns:72px minmax(210px,1fr) auto!important;gap:8px!important;max-width:640px!important;margin:0 auto 12px!important;padding:7px!important;border:1px solid #e2e7ef!important;border-radius:12px!important;background:#fff!important;box-shadow:0 8px 22px rgba(30,41,59,.055)!important}
.directory-page .city-search label{display:flex!important;flex-direction:column!important;gap:2px!important}
.directory-page .city-search label>span{display:none!important}
.directory-page .city-search input{height:38px!important;border:1px solid #e4e9f1!important;border-radius:8px!important;padding:0 10px!important;background:#fbfcfe!important;color:#263248!important;font:inherit!important;font-size:.78rem!important;outline:0!important}
.directory-page .city-search input:focus{border-color:#818cf8!important;box-shadow:0 0 0 3px rgba(99,102,241,.1)!important}
.directory-page .city-search button{height:38px!important;border:0!important;border-radius:8px!important;padding:0 15px!important;background:#4f46e5!important;color:#fff!important;font-size:.76rem!important;font-weight:700!important;box-shadow:0 6px 16px rgba(79,70,229,.16)!important}
.directory-page .search-hint{max-width:640px!important;margin:0 auto 12px!important;text-align:center!important;color:#7b8497!important;font-size:.72rem!important}

.directory-page .ql-free-directory-cta{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;max-width:640px!important;margin:0 auto 22px!important;padding:8px 12px!important;border:1px dashed #cbd5e1!important;border-radius:10px!important;background:#fff!important;color:#64748b!important;font-size:.72rem!important}
.directory-page .ql-free-register-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:31px!important;padding:0 11px!important;border:1px solid #6366f1!important;border-radius:8px!important;background:#fff!important;color:#4f46e5!important;font-size:.7rem!important;font-weight:800!important;box-shadow:none!important}

.directory-page .content-grid{display:grid!important;grid-template-columns:minmax(0,1.22fr) minmax(390px,.78fr)!important;gap:16px!important;align-items:start!important}
.directory-page .map-card{position:sticky!important;top:78px!important;padding:16px!important;border:1px solid #e2e7ef!important;border-radius:16px!important;background:#fff!important;box-shadow:0 10px 28px rgba(30,41,59,.055)!important;overflow:hidden!important}
.directory-page .section-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0 0 10px!important}
.directory-page .section-heading .eyebrow{display:none!important}
.directory-page .section-heading h2{margin:0!important;color:#24324a!important;font-size:1rem!important;font-weight:800!important;letter-spacing:-.025em!important}
.directory-page .count{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:26px!important;padding:0 9px!important;border-radius:999px!important;background:#eef2ff!important;color:#4f46e5!important;font-size:.66rem!important;font-weight:800!important}
.directory-page .map-legend{display:flex!important;flex-wrap:wrap!important;gap:8px 14px!important;margin:0 0 10px!important;color:#7b8497!important;font-size:.66rem!important}
.directory-page .map-legend span{display:inline-flex!important;align-items:center!important;gap:5px!important}
.directory-page .legend-dot{width:8px!important;height:8px!important;border-radius:50%!important}.directory-page .legend-dot.published,.directory-page .legend-dot.customer{background:#22c55e!important}.directory-page .legend-dot.known{background:#94a3b8!important}
.directory-page .map-message{margin:0 0 10px!important;padding:9px 11px!important;border:1px solid #dbe3ff!important;border-radius:9px!important;background:#f5f7ff!important;color:#667085!important;font-size:.67rem!important;line-height:1.45!important;text-align:center!important}
.directory-page .map{height:min(66vh,610px)!important;min-height:500px!important;border:1px solid #dce3ee!important;border-radius:11px!important;overflow:hidden!important;background:#e8f0fb!important}
.directory-page .privacy-note{margin:8px 1px 0!important;color:#9aa3b3!important;font-size:.61rem!important;line-height:1.4!important}

.directory-page .list-card{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.directory-page .locator-card{position:relative!important;display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;gap:13px!important;margin:0 0 10px!important;padding:14px 15px!important;border:1px solid #e3e8f0!important;border-radius:14px!important;background:#fff!important;box-shadow:0 7px 20px rgba(30,41,59,.045)!important;overflow:hidden!important;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease!important}
.directory-page .locator-card:hover{transform:translateY(-1px)!important;box-shadow:0 10px 24px rgba(30,41,59,.065)!important}
.directory-page .locator-card.published-customer-card{border-color:#c8f0d2!important;background:linear-gradient(180deg,#fff 0%,#fbfffc 100%)!important}
.directory-page .ql-free-business-card{border-color:#dfe4ff!important}

/* Avatar de categoria: substitui as iniciais por pictograma vetorial. */
.directory-page .locator-monogram{position:relative!important;display:grid!important;place-items:center!important;width:52px!important;height:52px!important;border:2px solid currentColor!important;border-radius:50%!important;background:#fff!important;color:#8b95a7!important;font-size:0!important;box-shadow:0 4px 12px rgba(30,41,59,.07)!important;overflow:visible!important}
.directory-page .locator-monogram::before{content:''!important;width:25px!important;height:25px!important;background:currentColor!important;mask-repeat:no-repeat!important;mask-position:center!important;mask-size:contain!important;-webkit-mask-repeat:no-repeat!important;-webkit-mask-position:center!important;-webkit-mask-size:contain!important;mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 3h-2v2H8v2h8V5h-3V3ZM6 8h12l1 13H5L6 8Zm2 2-.7 9h9.4L16 10H8Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 3h-2v2H8v2h8V5h-3V3ZM6 8h12l1 13H5L6 8Zm2 2-.7 9h9.4L16 10H8Z'/%3E%3C/svg%3E")!important}
.directory-page .category-construction .locator-monogram{color:#d97706!important}.directory-page .category-construction .locator-monogram::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 2h2v2h7v2h-7v2h5l4 4v2h-2v8h-2v-8H8v8H6v-8H4v-2l4-4h3V6H4V4h7V2Zm-2 8-2 2h10l-2-2H9Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 2h2v2h7v2h-7v2h5l4 4v2h-2v8h-2v-8H8v8H6v-8H4v-2l4-4h3V6H4V4h7V2Zm-2 8-2 2h10l-2-2H9Z'/%3E%3C/svg%3E")!important}
.directory-page .category-waste .locator-monogram{color:#0f766e!important}.directory-page .category-waste .locator-monogram::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h11v9h2l2 3h1v4h-2a3 3 0 0 1-6 0H9a3 3 0 0 1-6 0H2V7a3 3 0 0 1 2-3Zm13 11v1h-2v-1h2ZM6 18a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h11v9h2l2 3h1v4h-2a3 3 0 0 1-6 0H9a3 3 0 0 1-6 0H2V7a3 3 0 0 1 2-3Zm13 11v1h-2v-1h2ZM6 18a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm9 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z'/%3E%3C/svg%3E")!important}
.directory-page .category-party .locator-monogram{color:#db2777!important}.directory-page .category-party .locator-monogram::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 21 6-18 4 4 4 4L3 21Zm11-16 2-2 2 2-2 2-2-2Zm4 5 2-2 2 2-2 2-2-2ZM12 2h2v3h-2V2Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 21 6-18 4 4 4 4L3 21Zm11-16 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 .category-furniture .locator-monogram{color:#c2410c!important}.directory-page .category-furniture .locator-monogram::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h14v8h-1v10h-2v-8H8v8H6V11H5V3Zm2 2v6h10V5H7Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h14v8h-1v10h-2v-8H8v8H6V11H5V3Zm2 2v6h10V5H7Z'/%3E%3C/svg%3E")!important}
.directory-page .category-recreation .locator-monogram{color:#2563eb!important}.directory-page .category-recreation .locator-monogram::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 6h10l3 5v6a3 3 0 0 1-3 3h-1l-3-4h-2l-3 4H7a3 3 0 0 1-3-3v-6l3-5Zm2 5H7v2H5v2h2v2h2v-2h2v-2H9v-2Zm7 1a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E")!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 6h10l3 5v6a3 3 0 0 1-3 3h-1l-3-4h-2l-3 4H7a3 3 0 0 1-3-3v-6l3-5Zm2 5H7v2H5v2h2v2h2v-2h2v-2H9v-2Zm7 1a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z'/%3E%3C/svg%3E")!important}
.directory-page .category-other .locator-monogram{color:#64748b!important}
.directory-page .locator-monogram.published,.directory-page .locator-monogram.customer{border-color:#22c55e!important}
.directory-page .locator-monogram.published::after,.directory-page .locator-monogram.customer::after{content:'✓'!important;position:absolute!important;right:-4px!important;bottom:-3px!important;display:grid!important;place-items:center!important;width:20px!important;height:20px!important;border:3px solid #fff!important;border-radius:50%!important;background:#22c55e!important;color:#fff!important;font-size:10px!important;font-weight:900!important;box-shadow:0 3px 8px rgba(34,197,94,.2)!important}

.directory-page .card-title-row{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important;min-width:0!important}
.directory-page .card-title-row h2{flex:1 1 165px!important;margin:0!important;color:#273449!important;font-size:.88rem!important;line-height:1.3!important;font-weight:800!important;letter-spacing:-.018em!important;overflow-wrap:anywhere!important}
.directory-page .verified-badge,.directory-page .customer-badge,.directory-page .known-badge,.directory-page .ql-free-business-badge,.directory-page .ql-category-badge,.directory-page .locator-category-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:21px!important;margin:0!important;padding:0 7px!important;border-radius:999px!important;font-size:.57rem!important;font-weight:800!important;white-space:nowrap!important;line-height:1!important}
.directory-page .verified-badge,.directory-page .customer-badge{border:1px solid #b8eac5!important;background:#effbf2!important;color:#16803a!important}.directory-page .known-badge{border:1px solid #d8dee8!important;background:#f7f9fc!important;color:#7b8495!important}.directory-page .ql-free-business-badge{border:1px solid #d8dcff!important;background:#f4f5ff!important;color:#4f46e5!important}
.directory-page .ql-category-badge,.directory-page .locator-category-badge{margin-left:auto!important}
.directory-page .location{margin:5px 0 6px!important;color:#6f7a8e!important;font-size:.68rem!important;line-height:1.4!important}.directory-page .location span{color:#a1a8b5!important}
.directory-page .description,.directory-page .known-description{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;margin:0 0 8px!important;color:#667085!important;font-size:.7rem!important;line-height:1.5!important}
.directory-page .radius{margin:0 0 7px!important;color:#8290a2!important;font-size:.64rem!important}
.directory-page .profile-link{display:inline-flex!important;align-items:center!important;margin-top:1px!important;color:#2563eb!important;font-size:.66rem!important;font-weight:800!important;text-decoration:none!important}
.directory-page .public-contact-actions{margin-top:9px!important}.directory-page .public-contact-button{min-height:31px!important;padding:0 12px!important;border-radius:999px!important;background:#22c55e!important;font-size:.65rem!important;font-weight:800!important;box-shadow:0 5px 13px rgba(34,197,94,.17)!important}
.directory-page .ql-free-business-actions{margin-top:8px!important;padding:8px 10px!important;border:1px solid #f3dc91!important;border-radius:9px!important;background:#fffbea!important}.directory-page .ql-free-card-upgrade{color:#2563eb!important;font-size:.64rem!important;font-weight:800!important;text-decoration:none!important}
.directory-page .pagination{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;margin:14px 0!important;font-size:.68rem!important}

/* Modal de cadastro gratuito no mesmo padrão visual. */
.ql-free-overlay{position:fixed!important;inset:0!important;z-index:99999!important;display:grid!important;place-items:center!important;padding:18px!important;background:rgba(15,23,42,.58)!important;backdrop-filter:blur(6px)!important}.ql-free-modal{position:relative!important;width:min(600px,100%)!important;max-height:88vh!important;overflow:auto!important;padding:24px!important;border-radius:18px!important;background:#fff!important;box-shadow:0 28px 70px rgba(15,23,42,.28)!important}.ql-free-close{position:absolute!important;right:13px!important;top:11px!important;width:34px!important;height:34px!important;border:0!important;border-radius:50%!important;background:#f1f5f9!important;color:#64748b!important;font-size:23px!important}.ql-free-eyebrow{margin:0 0 5px!important;color:#4f46e5!important;font-size:.65rem!important;font-weight:900!important;letter-spacing:.09em!important;text-transform:uppercase!important}.ql-free-modal h2{margin:0!important;color:#24324a!important;font-size:1.35rem!important;letter-spacing:-.03em!important}.ql-free-lead{margin:8px 0 16px!important;color:#7b8497!important;font-size:.76rem!important;line-height:1.55!important}.ql-free-form{display:grid!important;gap:10px!important}.ql-free-field{display:grid!important;gap:4px!important}.ql-free-field>span{font-size:.66rem!important;font-weight:800!important;color:#566176!important}.ql-free-field input,.ql-free-field select{height:40px!important;border:1px solid #dde3ec!important;border-radius:9px!important;padding:0 11px!important;background:#fbfcfe!important;color:#263248!important;font:inherit!important;font-size:.75rem!important}.ql-free-grid{display:grid!important;grid-template-columns:100px 1fr!important;gap:8px!important}.ql-free-consent{display:flex!important;gap:8px!important;align-items:flex-start!important;padding:9px!important;border-radius:9px!important;background:#f8fafc!important;color:#728096!important;font-size:.66rem!important;line-height:1.45!important}.ql-free-submit,.ql-free-secondary{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:38px!important;border-radius:9px!important;padding:0 14px!important;font-size:.72rem!important;font-weight:800!important;text-decoration:none!important}.ql-free-submit{border:0!important;background:#4f46e5!important;color:#fff!important}.ql-free-secondary{border:1px solid #d8dee8!important;background:#fff!important;color:#334155!important}.ql-free-upgrade-link{text-align:center!important;color:#2563eb!important;font-size:.68rem!important;font-weight:800!important;text-decoration:none!important}.ql-free-error{margin:0!important;color:#b91c1c!important;font-size:.68rem!important}.ql-free-success{text-align:center!important}.ql-free-success-icon{display:grid!important;place-items:center!important;width:50px!important;height:50px!important;margin:0 auto 10px!important;border-radius:50%!important;background:#dcfce7!important;color:#15803d!important;font-size:22px!important;font-weight:900!important}.ql-free-success-actions{display:flex!important;justify-content:center!important;gap:8px!important;margin-top:15px!important}

/* Nunca altere transform do elemento raiz do Marker: Mapbox usa esse transform para posicionar o pin. */
.directory-page .public-locator-marker{transition:filter .2s ease!important}.directory-page .public-locator-marker:hover{filter:brightness(1.04) drop-shadow(0 5px 8px rgba(30,41,59,.16))!important}.directory-page .ql-customer-marker-badge,.directory-page .ql-verified-marker-badge{display:grid!important;place-items:center!important;min-width:17px!important;height:17px!important;padding:0!important;border:2px solid #fff!important;border-radius:50%!important;background:#22c55e!important;color:#fff!important;font-size:9px!important;font-weight:900!important;line-height:1!important}

@media(max-width:1120px){.directory-page .content-grid{grid-template-columns:1fr!important}.directory-page .map-card{position:relative!important;top:auto!important}.directory-page .map{height:520px!important;min-height:420px!important}.directory-page .list-card{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.directory-page .locator-card{margin:0!important}.directory-page .pagination{grid-column:1/-1!important}}
@media(max-width:720px){.directory-page{padding:0 12px 24px!important}.directory-page .topbar{margin:0 -12px 20px!important;padding:10px 12px!important}.directory-page .brand{font-size:1.1rem!important}.directory-page .brand::after{display:none!important}.directory-page .nav-actions{gap:5px!important}.directory-page .customer-link,.directory-page .business-link{min-height:34px!important;padding:0 9px!important;font-size:.64rem!important}.directory-page>.hero>h1{font-size:1.55rem!important}.directory-page>.hero>p:not(.search-hint){font-size:.72rem!important}.directory-page .city-search{grid-template-columns:64px 1fr!important}.directory-page .city-search button{grid-column:1/-1!important}.directory-page .ql-free-directory-cta{flex-direction:column!important;text-align:center!important}.directory-page .content-grid{gap:11px!important}.directory-page .map-card{padding:11px!important;border-radius:13px!important}.directory-page .map{height:430px!important;min-height:350px!important}.directory-page .list-card{grid-template-columns:1fr!important}.directory-page .locator-card{grid-template-columns:50px minmax(0,1fr)!important;gap:10px!important;padding:12px!important;border-radius:12px!important}.directory-page .locator-monogram{width:46px!important;height:46px!important}.directory-page .locator-monogram::before{width:22px!important;height:22px!important}.directory-page .ql-category-badge,.directory-page .locator-category-badge{margin-left:0!important}.ql-free-modal{padding:20px 15px!important;border-radius:15px!important}.ql-free-grid{grid-template-columns:82px 1fr!important}.ql-free-success-actions{flex-direction:column!important}}
