:root{--map-brand-base: #1e2939;--map-brand-accent: #7f22fe}.map-marker-icon{background:transparent;border:0}.map-marker-pin{position:relative;display:block;width:22px;height:22px;border-radius:9999px;background:var(--map-brand-accent);border:3px solid #ffffff;box-shadow:0 10px 20px #7f22fe47}.map-marker-pin:after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:9999px;background:#fff;transform:translate(-50%,-50%)}.map-marker-cluster{display:grid;place-items:center;width:46px;height:46px;border-radius:9999px;background:#7f22fe2e;border:2px solid rgba(127,34,254,.3)}.map-marker-cluster span{display:grid;place-items:center;width:34px;height:34px;border-radius:9999px;background:var(--map-brand-accent);color:#fff;font-size:.82rem;line-height:1;font-weight:800;box-shadow:0 10px 18px #7f22fe3d}.map-search-results{max-height:min(55dvh,420px);overflow-y:auto}.map-controls{position:absolute;left:1rem;top:1rem;width:min(calc(100vw - 2rem),560px);z-index:1400;pointer-events:auto}.map-primary-row{display:flex;align-items:center;gap:.55rem;min-width:0}.map-search-root{position:relative;flex:1 1 auto;max-width:100%}.map-tag-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;margin-top:.6rem}.map-tag-row.hidden{display:none}.map-tag-option{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:100%}.map-tag-option svg{width:1rem;height:1rem;flex:0 0 auto}.map-menu-toggle-wrap{position:relative;flex:0 0 auto}.map-fab-button{border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:9999px;padding:.45rem;font-size:.78rem;font-weight:700;line-height:1rem;letter-spacing:.02em}.map-menu-panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:1450;width:min(90vw,240px);border:1px solid #cbd5e1;background:#fff;border-radius:.75rem;box-shadow:0 10px 28px #0f172a38;padding:.35rem;display:none}.map-menu-panel.is-open{display:block}.map-filter-chip,.map-category-trigger,.map-subcategory-chip,.map-sheet-option{border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:9999px;padding:.55rem .78rem;font-size:.78rem;line-height:1rem;font-weight:700;cursor:pointer}.map-filter-chip:hover,.map-category-trigger:hover,.map-subcategory-chip:hover,.map-sheet-option:hover{border-color:#94a3b8;background:#f8fafc}.map-filter-chip.is-active,.map-subcategory-chip.is-active,.map-sheet-option.is-active{border-color:#0f172a;background:#0f172a;color:#f8fafc}.map-category-trigger{display:none;width:100%;margin-top:.55rem;text-align:left}.map-category-trigger:not(.hidden){display:flex;align-items:center;justify-content:space-between}.map-subcategory-row{display:none;width:100%;margin-top:.55rem;gap:.45rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.map-subcategory-row::-webkit-scrollbar{display:none}.map-subcategory-row:not(.hidden){display:flex}.map-subcategory-chip{flex:0 0 auto;white-space:nowrap}.map-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1490;background:#0f172a47;opacity:0;transition:opacity .18s ease;pointer-events:none}.map-sheet-backdrop.is-open{opacity:1;pointer-events:auto}.map-category-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1500;max-height:min(78dvh,620px);border-radius:1.25rem 1.25rem 0 0;background:#fff;color:#0f172a;box-shadow:0 -18px 50px #0f172a3d;opacity:0;transform:translateY(105%);transition:opacity .18s ease,transform .22s ease;pointer-events:none}.map-category-sheet.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.map-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .7rem;border-bottom:1px solid #e2e8f0}.map-sheet-title{margin:0;font-size:1.35rem;line-height:1.25rem;font-weight:800}.map-sheet-close{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid #cbd5e1;border-radius:9999px;background:#fff;color:#0f172a;font-size:1.2rem;line-height:1}.map-sheet-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.75rem 1rem calc(1rem + env(safe-area-inset-bottom));overflow-y:auto;max-height:calc(min(78dvh,620px) - 4rem)}.map-sheet-option{width:100%;text-align:center;white-space:normal}.map-business-card{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:1390;display:grid;grid-template-columns:92px minmax(0,1fr);gap:.75rem;max-width:560px;min-height:114px;border:0;border-radius:1rem;background:#fff;color:#0f172a;overflow:hidden;box-shadow:0 18px 46px #0f172a3d}.map-business-card.hidden{display:none}.map-business-card-image{position:relative;z-index:1;width:92px;height:100%;min-height:112px;border-radius:1rem 0 0 1rem;object-fit:cover;background:#f1f5f9}.map-business-card-body{position:relative;z-index:1;min-width:0;display:flex;flex-direction:column;gap:.35rem;padding:.65rem .65rem .65rem 0}.map-business-card-title{margin:0;font-size:1rem;line-height:1.2rem;font-weight:800;color:#0f172a}.map-business-card-meta__city{font-size:.75rem;line-height:1rem;margin:0;color:#6a7282}.map-business-card-meta{display:inline-flex;align-items:center;gap:.25rem;width:fit-content;max-width:100%;margin:0;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;color:#1f2937;padding:.25rem .625rem;font-size:.75rem;line-height:1rem}.map-business-card-close{position:absolute;top:.5rem;right:.5rem;display:grid;place-items:center;width:1.75rem;height:1.75rem;border:0;border-radius:9999px;background:#f1f5f9;color:#0f172a;font-size:1.1rem;line-height:1;z-index:3}.map-business-card-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:inherit;text-decoration:none}.map-visible-list{position:absolute;left:1rem;bottom:1rem;z-index:1370;width:min(90vw,320px);border:1px solid #cbd5e1;background:#fffffff2;border-radius:.85rem;padding:.45rem;box-shadow:0 8px 24px #0f172a33}.map-visible-list-items{max-height:min(24dvh,160px);overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;margin-top:.35rem}.map-visible-list-item{width:100%;border:0;border-radius:.55rem;background:#e2e8f0;color:#0f172a;text-align:left;padding:.45rem .55rem;font-size:.74rem;line-height:1.05rem}.map-visible-list-item:hover{background:#cbd5e1}.map-search-input{display:block;width:100%;border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:9999px;padding:.58rem 2.45rem .58rem 2.35rem;font-size:1rem;line-height:1.1rem}.map-search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.map-search-icon{position:absolute;top:50%;left:.9rem;display:grid;place-items:center;width:1.35rem;height:1.35rem;color:#64748b;transform:translateY(-50%);pointer-events:none}.map-search-clear{position:absolute;top:50%;right:.85rem;display:grid;place-items:center;width:1.25rem;height:1.25rem;border:0;background:transparent;color:#334155;font-size:1.25rem;line-height:1;transform:translateY(-50%);cursor:pointer;padding:0}.map-search-input:placeholder-shown~.map-search-clear{display:none}.map-search-clear:hover{color:#0f172a}.map-filter-button{border:1px solid #cbd5e1;background:#fff;color:#0f172a;border-radius:9999px;padding:.45rem .78rem;font-size:.75rem;font-weight:700;line-height:1rem}@media(max-width:639px){.map-controls{left:.75rem;top:.75rem;width:calc(100vw - 1.5rem)}.map-menu-panel{right:0}.map-primary-row{gap:.5rem}.map-visible-list{left:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom))}.map-search-input{width:100%;min-width:180px}.map-search-root{flex-basis:auto;width:100%}.map-business-card{left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));grid-template-columns:86px minmax(0,1fr)}.map-business-card-image{width:86px;min-height:112px}}@media(min-width:640px){.map-category-sheet{left:50%;right:auto;top:50%;bottom:auto;width:min(560px,calc(100vw - 2rem));max-height:min(70dvh,620px);border-radius:1rem;box-shadow:0 24px 70px #0f172a47;transform:translate(-50%,calc(-50% + 2rem))}.map-category-sheet.is-open{transform:translate(-50%,-50%)}.map-sheet-list{max-height:calc(min(70dvh,620px) - 4rem)}.map-search-input{width:100%}.map-business-card{left:50%;right:auto;bottom:calc(3rem + env(safe-area-inset-bottom));width:min(560px,calc(100vw - 2rem));transform:translate(-50%)}}
