.tsc-vector-map{--p:#5B20D9;--d:#111827;--m:#667085;--soft:#F5F1FF;background:#fff;border:1px solid #e9e7ef;border-radius:24px;overflow:hidden;box-shadow:0 18px 55px rgba(17,24,39,.08);font-family:Inter,system-ui,sans-serif;color:var(--d)}
.tsc-vm-head{display:flex;justify-content:space-between;gap:25px;padding:30px 32px 22px;background:linear-gradient(135deg,#fff,#fbfaff,#f5f1ff)}.tsc-vm-eyebrow{display:inline-block;padding:8px 13px;border-radius:999px;background:var(--p);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em}.tsc-vm-head h2{margin:12px 0 8px;font-size:34px;line-height:1.08;letter-spacing:-.03em}.tsc-vm-head p{margin:0;color:var(--m);font-size:15px}.tsc-vm-kpis{display:flex}.tsc-vm-kpis>div{min-width:110px;padding:10px 16px;text-align:center;border-left:1px solid #ddd9eb}.tsc-vm-kpis strong{display:block;color:var(--p);font-size:26px}.tsc-vm-kpis span{font-size:11px;color:var(--m)}
.tsc-vm-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 22px;border-block:1px solid #ecebf1}.tsc-vm-filter,.tsc-vm-reset{border:1px solid #ddd7ef;background:#fff;color:#4a3c6f;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700;cursor:pointer}.tsc-vm-filter.is-active{background:var(--p);border-color:var(--p);color:#fff}.tsc-vm-categories{display:flex;gap:8px;flex-wrap:wrap}.tsc-vm-search{margin-left:auto;display:flex;align-items:center;border:1px solid #dddfe7;border-radius:999px;padding:0 13px;height:38px}.tsc-vm-search span{font-size:20px;color:var(--p)}.tsc-vm-search input{border:0;outline:0;width:150px;font-size:12px}.tsc-vm-reset{color:var(--p);background:var(--soft)}
.tsc-vm-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.72fr);min-height:var(--tsc-map-height,680px)}.tsc-vm-map-wrap{position:relative;min-height:var(--tsc-map-height,680px);background:radial-gradient(circle at 50% 40%,#ffffff,#f7f5fc 50%,#ece9f7);overflow:hidden}.tsc-vm-svg{width:100%;height:100%;display:block}.tsc-vm-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#5f6170;background:rgba(255,255,255,.75);z-index:4}
.tsc-vm-municipality{stroke:#bbb8c9;stroke-width:.8;vector-effect:non-scaling-stroke;transition:fill .18s ease,stroke .18s ease}.tsc-vm-municipality.has-store{stroke:#9074cf}.tsc-vm-municipality:hover,.tsc-vm-municipality.is-selected{fill:#d9c7ff!important;stroke:var(--p);stroke-width:2;cursor:pointer}.tsc-vm-label-bg{fill:rgba(255,255,255,.94);stroke:#e3e0ea;stroke-width:1;vector-effect:non-scaling-stroke}.tsc-vm-label-bg.has-store{fill:#fff;stroke:#cbb9ed}.tsc-vm-label-text{font-weight:900;fill:#211740;pointer-events:none}.tsc-vm-label-count{font-size:8px;font-weight:800;fill:var(--p);pointer-events:none}.tsc-vm-mun-label{pointer-events:auto}.tsc-vm-cluster{cursor:pointer}.tsc-vm-cluster circle{fill:var(--p);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 3px 5px rgba(91,32,217,.22))}.tsc-vm-cluster text{fill:#fff;font-size:10px;font-weight:900;pointer-events:none}.tsc-vm-marker{cursor:pointer}.tsc-vm-marker path{fill:var(--p);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.tsc-vm-marker:hover path,.tsc-vm-marker.is-selected path{fill:#4015A3}.tsc-vm-custom-marker{overflow:visible;filter:drop-shadow(0 2px 4px rgba(17,24,39,.20))}.tsc-vm-store-label{font-size:10px;font-weight:900;fill:#211740;paint-order:stroke;stroke:#fff;stroke-width:4px;pointer-events:none}.tsc-vm-legend{position:absolute;left:18px;bottom:18px;background:#fff;padding:10px 12px;border-radius:12px;box-shadow:0 6px 20px #11182718;font-size:11px;color:#5d6070}.tsc-vm-source{position:absolute;right:14px;bottom:9px;font-size:9px;color:#8a8d98;background:#ffffffbb;padding:3px 5px;border-radius:5px}.tsc-vm-zoom{position:absolute;right:16px;bottom:50px;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e5eb;border-radius:10px;overflow:hidden}.tsc-vm-zoom button{border:0;background:#fff;width:36px;height:34px;font-size:20px;color:var(--p);cursor:pointer}.tsc-vm-zoom button+button{border-top:1px solid #eee}
.tsc-vm-panel{border-left:1px solid #ecebf1;background:#fff;display:flex;flex-direction:column;min-width:0}.tsc-vm-panel-head{padding:22px 20px 15px;display:flex;justify-content:space-between;border-bottom:1px solid #ecebf1}.tsc-vm-panel-label{font-size:9px;letter-spacing:.08em;font-weight:800;color:var(--p)}.tsc-vm-panel h3{margin:5px 0 0;font-size:22px}.tsc-vm-panel-count{min-width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--p);font-weight:800}.tsc-vm-selected{padding:12px 14px 0}.tsc-vm-selected-card{border:1px solid #e5dff2;border-radius:16px;overflow:hidden}.tsc-vm-selected-card img{width:100%;height:150px;object-fit:cover}.tsc-vm-selected-body{padding:14px}.tsc-vm-selected-body strong{display:block;font-size:18px}.tsc-vm-chip,.tsc-vm-store-info small{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:#f0eaff;color:var(--p);font-size:10px;font-weight:800}.tsc-vm-selected-body p{font-size:12px;line-height:1.45;color:#626575}.tsc-vm-actions{display:flex;gap:8px;margin-top:13px}.tsc-vm-actions a{flex:1;text-align:center;text-decoration:none;border-radius:9px;padding:9px;font-size:11px;font-weight:800}.tsc-vm-actions .primary{background:var(--p);color:#fff}.tsc-vm-actions .secondary{border:1px solid #d9cff1;color:var(--p)}.tsc-vm-list{padding:12px 14px 18px;overflow:auto;max-height:calc(var(--tsc-map-height,680px) - 155px)}.tsc-vm-store-card{display:flex;gap:10px;padding:10px;border:1px solid #ececf2;border-radius:13px;margin-bottom:8px;cursor:pointer}.tsc-vm-store-card:hover,.tsc-vm-store-card.is-selected{border-color:#cbb9ed;background:#fbf9ff}.tsc-vm-store-card img,.tsc-vm-store-placeholder{width:72px;height:58px;border-radius:9px;object-fit:cover;flex:0 0 72px;background:#f1eff8;display:flex;align-items:center;justify-content:center;color:var(--p)}.tsc-vm-store-info{min-width:0}.tsc-vm-store-info h4{margin:1px 0 5px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsc-vm-store-info span{display:block;font-size:10px;color:#777b87}.tsc-vm-more{text-align:center;font-size:11px;color:#777b87}
@media(max-width:980px){.tsc-vm-head{flex-direction:column}.tsc-vm-layout{grid-template-columns:1fr}.tsc-vm-panel{border-left:0;border-top:1px solid #ecebf1}.tsc-vm-list{max-height:420px}.tsc-vm-search{margin-left:0}}@media(max-width:620px){.tsc-vm-head{padding:22px 18px}.tsc-vm-head h2{font-size:26px}.tsc-vm-kpis{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.tsc-vm-kpis>div{min-width:0;padding:8px}.tsc-vm-kpis strong{font-size:20px}.tsc-vm-toolbar{padding:12px 14px}.tsc-vm-search{width:100%;order:10}.tsc-vm-search input{width:100%}.tsc-vm-map-wrap{min-height:480px}}
/* V1.5 · interacción, popup y navegación del mapa */
.tsc-vm-svg{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.tsc-vm-svg.is-dragging{cursor:grabbing}
.tsc-vm-marker,.tsc-vm-cluster,.tsc-vm-mun-label{user-select:none;-webkit-user-select:none}
.tsc-vm-custom-marker{pointer-events:auto}
.tsc-vm-popup{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px}
.tsc-vm-popup[hidden]{display:none}
.tsc-vm-popup-backdrop{position:absolute;inset:0;background:rgba(17,24,39,.28);backdrop-filter:blur(2px);cursor:pointer}
.tsc-vm-popup-card{position:relative;width:min(430px,calc(100% - 20px));max-height:calc(100% - 30px);overflow:auto;background:#fff;border:1px solid #e5dff2;border-radius:20px;box-shadow:0 24px 70px rgba(17,24,39,.28);z-index:1;animation:tscVmPopupIn .16s ease-out}
.tsc-vm-popup-close{position:absolute;right:12px;top:12px;z-index:3;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:#211740;font-size:25px;line-height:1;cursor:pointer;box-shadow:0 3px 12px rgba(17,24,39,.14)}
.tsc-vm-popup-media{height:190px;background:#f3f0fa;overflow:hidden}
.tsc-vm-popup-media img{width:100%;height:100%;display:block;object-fit:cover}
.tsc-vm-popup-placeholder{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:#5B20D9;font-size:22px;font-weight:900;background:linear-gradient(135deg,#f5f1ff,#fff)}
.tsc-vm-popup-body{padding:20px 20px 22px}
.tsc-vm-popup-kicker{font-size:9px;letter-spacing:.1em;font-weight:900;color:#5B20D9}
.tsc-vm-popup-body h3{margin:5px 42px 9px 0;font-size:25px;line-height:1.1;color:#111827}
.tsc-vm-popup-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.tsc-vm-popup-meta span{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f0eaff;color:#5B20D9;font-size:10px;font-weight:800}
.tsc-vm-popup-text{color:#5f6270;font-size:12px;line-height:1.5}
.tsc-vm-popup-text p{margin:8px 0}
.tsc-vm-popup-text strong{color:#211740}
.tsc-vm-popup-contact{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.tsc-vm-popup-contact a{padding:7px 9px;border:1px solid #e1d9f0;border-radius:9px;color:#5B20D9;text-decoration:none;font-size:10px;font-weight:800}
.tsc-vm-popup-actions{display:flex;gap:8px;margin-top:15px}
.tsc-vm-popup-actions a{flex:1;text-align:center;text-decoration:none;border-radius:10px;padding:11px 10px;font-size:11px;font-weight:900}
.tsc-vm-popup-actions .primary{background:#5B20D9;color:#fff}
.tsc-vm-popup-actions .secondary{border:1px solid #d9cff1;color:#5B20D9;background:#fff}
@keyframes tscVmPopupIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:620px){
 .tsc-vm-popup{padding:12px}
 .tsc-vm-popup-card{width:100%;max-height:calc(100% - 12px);border-radius:17px}
 .tsc-vm-popup-media{height:155px}
 .tsc-vm-popup-body{padding:16px}
 .tsc-vm-popup-body h3{font-size:22px}
}

/* V1.6 · etiquetas de municipio con tamaño visual constante + tooltip */
.tsc-vm-mun-label,.tsc-vm-cluster{transform-origin:0 0}
.tsc-vm-municipality-tooltip{position:absolute;z-index:12;pointer-events:none;min-width:130px;max-width:220px;padding:9px 11px;border-radius:10px;background:#111827;color:#fff;box-shadow:0 8px 24px rgba(17,24,39,.22);font-size:12px;line-height:1.25}
.tsc-vm-municipality-tooltip strong{display:block;font-size:13px;font-weight:900;color:#fff}
.tsc-vm-municipality-tooltip span{display:block;margin-top:3px;font-size:10px;color:#e9e7ef}
@media (hover:none){.tsc-vm-municipality-tooltip{display:none!important}}

/* V1.9 · etiquetas HTML de tamaño constante y mejor lectura responsive */
.tsc-vm-label-layer{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.tsc-vm-html-label,.tsc-vm-html-cluster{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #ddd7ef;background:rgba(255,255,255,.96);color:#211740;border-radius:999px;box-shadow:0 3px 12px rgba(17,24,39,.10);font-family:inherit;white-space:nowrap;cursor:pointer;line-height:1.05;text-align:center}
.tsc-vm-html-label{padding:6px 10px;font-size:13px;font-weight:900}
.tsc-vm-html-label strong{display:block;font-size:13px;font-weight:900}
.tsc-vm-html-label span{display:block;margin-top:2px;font-size:10px;font-weight:800;color:#5B20D9}
.tsc-vm-html-label.has-store{border-color:#cbb9ed}
.tsc-vm-html-cluster{padding:8px 12px;background:#5B20D9;border-color:#fff;color:#fff;font-size:12px;font-weight:900;box-shadow:0 4px 14px rgba(91,32,217,.25)}
@media(max-width:620px){
 .tsc-vm-html-label{padding:7px 11px;font-size:14px;box-shadow:0 3px 12px rgba(17,24,39,.14)}
 .tsc-vm-html-label strong{font-size:14px}
 .tsc-vm-html-label span{font-size:11px}
 .tsc-vm-html-cluster{padding:9px 13px;font-size:13px}
 .tsc-vm-map-wrap{touch-action:none}
}


/* V1.10 · El mapa ocupa su propio espacio en el flujo de la página.
   Evita que se superponga con la sección Elementor siguiente. */
.tsc-vector-map{position:relative;display:block;isolation:isolate;clear:both;z-index:1;width:100%;min-height:calc(var(--tsc-map-height,680px) + 180px);margin-bottom:0;overflow:visible}
.tsc-vm-layout{position:relative;display:grid;height:var(--tsc-map-height,680px);min-height:var(--tsc-map-height,680px);z-index:1}
.tsc-vm-map-wrap{position:relative;height:100%;min-height:0;z-index:1;overflow:hidden}
.tsc-vm-label-layer,.tsc-vm-popup{position:absolute}
.tsc-vm-label-layer{inset:0;overflow:hidden}
.tsc-vm-panel{height:100%;min-height:0;position:relative;z-index:2}
@media(max-width:980px){.tsc-vector-map{min-height:calc(var(--tsc-map-height,680px) + 180px)}.tsc-vm-layout{height:auto;min-height:0}.tsc-vm-map-wrap{height:var(--tsc-map-height,680px);min-height:var(--tsc-map-height,680px)}.tsc-vm-panel{height:auto;min-height:0}}
@media(max-width:620px){.tsc-vector-map{min-height:0}.tsc-vm-map-wrap{height:var(--tsc-map-height,480px);min-height:480px}.tsc-vm-panel{height:auto}}

/* V1.11 · Mayor presencia visual del mapa manteniendo contraste en hover. */
.tsc-vm-municipality{filter:none;}
.tsc-vm-label-layer{z-index:6}
.tsc-vm-html-label{background:rgba(255,255,255,.98);border-color:#c9c5d4}
.tsc-vm-html-label.has-store{background:#f7f1ff;border-color:#9b80d8}
.tsc-vm-html-label:hover{background:#eadfff;border-color:#5B20D9;color:#211740;box-shadow:0 4px 16px rgba(91,32,217,.18)}


/* V1.15 · Sabana Norte como zona principal de descubrimiento.
   Los municipios restantes permanecen visibles pero deliberadamente sutiles. */
.tsc-vm-municipality.is-sabana-rest{fill:#f4f5f8!important;stroke:#d7d9e1;opacity:.58}
.tsc-vm-municipality.is-sabana-rest.has-store{fill:#eeeaf7!important;stroke:#c9bfdc;opacity:.72}
.tsc-vm-municipality.is-sabana-norte{fill:#ddd0fa!important;stroke:#a88bdd;opacity:1}
.tsc-vm-municipality.is-sabana-norte.has-store{fill:#d0bdf6!important;stroke:#7d58c9;opacity:1}
.tsc-vm-municipality.is-sabana-rest:hover{fill:#e5dcff!important;stroke:#8e72cf;opacity:1}
.tsc-vm-municipality.is-sabana-norte:hover,.tsc-vm-municipality.is-sabana-norte.is-selected{fill:#c9aff4!important;stroke:#5B20D9;stroke-width:2;opacity:1}
.tsc-vm-html-label.is-sabana-rest{opacity:.58}
.tsc-vm-html-label.is-sabana-rest.has-store{opacity:.72}
.tsc-vm-html-label.is-sabana-norte{opacity:1}
.tsc-vm-html-label.is-sabana-norte.has-store{background:#f1eaff;border-color:#9b80d8}
.tsc-vm-html-label.is-sabana-rest:hover,.tsc-vm-html-label.is-sabana-norte:hover{opacity:1}
.tsc-vm-marker.is-sabana-rest{opacity:.45}
.tsc-vm-marker.is-sabana-rest:hover,.tsc-vm-marker.is-sabana-rest.is-selected{opacity:1}
.tsc-vm-marker.is-sabana-norte{opacity:1}
@media(max-width:620px){
 .tsc-vm-municipality.is-sabana-rest{opacity:.5}
 .tsc-vm-marker.is-sabana-rest{opacity:.4}
}
