/* ===== Baricentro · componente mapa interactivo (3D maqueta ⇄ plano) ===== */
.bari-mapa{--bm-h:clamp(520px,54vw,660px)}
.bari-mapa.bm-full{--bm-h:min(80vh,780px)}
.bm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.bm-title{font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.bm-plantas-wrap{display:flex;align-items:center;gap:8px}
.bm-plantas-lbl{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.bm-plantas{display:flex;gap:3px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px}
.bm-plantas button{min-width:38px;height:30px;padding:0 9px;border-radius:999px;font-size:.85rem;font-weight:700;color:var(--muted);background:none}
.bm-plantas button.on{background:var(--brand-bright);color:#fff}

.bm-escena{position:relative;height:var(--bm-h);background:radial-gradient(130% 100% at 50% 12%,#fbfbfc 0%,#eef0f2 100%);
  border-radius:18px;overflow:hidden;cursor:grab;touch-action:manipulation;border:1px solid var(--line);perspective:1500px}
.bm-escena.grabbing{cursor:grabbing}
/* maqueta: contiene plano + etiquetas; en 3D se inclina entera */
.bm-maqueta{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,.05,.2,1)}
.bari-mapa.is3d .bm-maqueta{transform:rotateX(45deg) scale(1.16)}
.bari-mapa.is3d .bm-host svg{filter:drop-shadow(0 22px 24px rgba(0,0,0,.18))}
.bm-host{position:absolute;inset:0}
.bm-host svg{width:100%;height:100%;display:block}
.bm-host [data-slug],.bm-host [data-puerta]{cursor:pointer;transition:fill .12s}

/* etiquetas de TODAS las tiendas */
.bm-lbl{position:absolute;transform:translate(-50%,-50%);z-index:2;max-width:92px;
  font:600 .56rem/1.05 var(--font);color:#3a3a3a;background:rgba(255,255,255,.82);
  padding:2px 5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 3px rgba(0,0,0,.08);cursor:pointer;transition:transform .1s}
.bm-lbl:hover{z-index:20;transform:translate(-50%,-50%) scale(1.12);background:#fff;color:#111;box-shadow:0 3px 10px rgba(0,0,0,.18)}
.bm-lbl.on{z-index:15;background:var(--brand-bright);color:#fff;border-color:var(--brand-bright);font-weight:800;box-shadow:0 3px 10px rgba(255,37,91,.4)}
.bm-lbl.sel{z-index:20;background:#111;color:#fff;border-color:#111}
/* etiquetas de PUERTA de acceso: pastilla con el color de señalética */
.bm-lbl.puerta{color:#fff;font-weight:800;font-size:.68rem;letter-spacing:.03em;border:1.5px solid rgba(255,255,255,.8);
  padding:3px 9px;border-radius:7px;box-shadow:0 2px 6px rgba(0,0,0,.22)}
.bm-lbl.puerta:hover{transform:translate(-50%,-50%) scale(1.18)}
.bm-lbl.puerta.sel{outline:2px solid #111}
/* en 3D las etiquetas se "levantan" como carteles de maqueta */
.bari-mapa.is3d .bm-lbl{transform:translate(-50%,-100%) rotateX(-45deg);transform-origin:50% 100%}
.bari-mapa.is3d .bm-lbl:hover{transform:translate(-50%,-100%) rotateX(-45deg) scale(1.15)}
.bari-mapa.is3d .bm-lbl.puerta:hover{transform:translate(-50%,-100%) rotateX(-45deg) scale(1.2)}

/* controles de zoom */
.bm-zoom{position:absolute;right:12px;bottom:12px;z-index:8;display:flex;flex-direction:column;gap:7px}
.bm-zoom button{width:40px;height:40px;border-radius:12px;background:#fff;color:#222;font-size:1.2rem;font-weight:700;
  box-shadow:0 3px 12px rgba(0,0,0,.18);display:grid;place-items:center;line-height:1;transition:transform .12s,background .12s,color .12s}
.bm-zoom button:hover{background:var(--brand-bright);color:#fff;transform:translateY(-1px)}
.bm-zoom button:active{transform:translateY(0)}
/* botones con texto: "Ver todo" (reset) y "Plano/3D" (vista) */
.bm-reset,.bm-vista{width:auto!important;padding:0 13px;gap:6px;display:inline-flex!important;align-items:center;font-size:.82rem!important;font-weight:700}
.bm-reset .ic,.bm-vista .ic{font-size:1.05rem}
.bm-reset.active{background:var(--brand-bright);color:#fff;box-shadow:0 3px 12px rgba(255,37,91,.4)}
.bm-vista{background:#1f1f1f;color:#fff}
.bm-vista:hover{background:#000}
@media(max-width:560px){.bm-reset .tx,.bm-vista .tx{display:none}.bm-reset,.bm-vista{width:40px!important;padding:0}}

/* marcador "estás aquí" pulsante */
.bm-halo{fill:#ff255b;opacity:.4;animation:bmpulse 1.7s ease-out infinite;pointer-events:none}
.bm-dot{fill:#ff255b;stroke:#fff;stroke-width:1.3;pointer-events:none}
@keyframes bmpulse{0%{r:4;opacity:.55}100%{r:22;opacity:0}}

/* leyenda */
.bm-legend{position:absolute;left:12px;bottom:12px;z-index:7}
.bm-legend-tog{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:.78rem;font-weight:700;color:var(--text);box-shadow:0 3px 10px rgba(0,0,0,.14);display:inline-flex;align-items:center;gap:6px}
.bm-legend-tog::before{content:"";width:13px;height:13px;border-radius:3px;background:linear-gradient(135deg,#ff255b 33%,#F08019 33% 66%,#1F6BB5 66%)}
.bm-legend-tog:hover{border-color:#cfcfcf}
.bm-legend-body{position:absolute;left:0;bottom:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.16);display:flex;flex-direction:column;gap:9px;width:max-content}
.bm-legend-body span{display:flex;align-items:center;gap:9px;font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap}
.bm-legend-body i{width:15px;height:15px;border-radius:4px;flex:none}
.bm-legend-body .lg-here{border-radius:50%;background:#ff255b;box-shadow:0 0 0 3px rgba(255,37,91,.25)}
.bm-legend-body .lg-shop{background:#d6dae0}

/* hint de uso (se desvanece al interactuar) */
.bm-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:6;max-width:calc(100% - 28px);
  background:rgba(20,20,20,.82);color:#fff;font-size:.78rem;font-weight:500;padding:9px 16px;border-radius:999px;
  text-align:center;pointer-events:none;transition:opacity .4s ease,transform .4s ease;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.bm-hint.off{opacity:0;transform:translateX(-50%) translateY(8px)}
@media(max-width:560px){.bm-hint{font-size:.68rem;padding:8px 13px;bottom:64px}}

/* aviso de planta (cuando la tienda destacada está en otra) */
.bm-planta-aviso{position:absolute;top:12px;left:12px;right:64px;z-index:7;background:rgba(255,255,255,.95);
  border:1px solid var(--line);border-radius:10px;padding:9px 13px;font-size:.82rem;color:var(--muted);box-shadow:0 3px 10px rgba(0,0,0,.1)}
.bm-planta-aviso b{color:var(--text)}
.bm-planta-aviso a{color:var(--brand-bright);font-weight:700}

/* popup de tienda */
.bm-popup{position:absolute;left:14px;bottom:14px;z-index:12;width:min(330px,calc(100% - 28px));
  background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.28);padding:16px 16px 16px;
  display:flex;gap:13px;align-items:flex-start;animation:bmpop .18s ease}
@keyframes bmpop{from{opacity:0;transform:translateY(10px)}}
.bm-pop-x{position:absolute;top:9px;right:11px;width:26px;height:26px;border-radius:50%;background:#f0f0f0;color:#555;font-size:18px;line-height:1}
.bm-pop-x:hover{background:#e2e2e2}
.bm-pop-logo{width:62px;height:62px;flex:none;border-radius:12px;border:1px solid var(--line);background:#fff center/76% no-repeat}
.bm-pop-logo.ph{display:grid;place-items:center;color:#fff;font-size:1.6rem;font-weight:800;border:none}
.bm-pop-body{min-width:0;padding-right:18px}
.bm-pop-cat{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.bm-pop-body h3{font-size:1.12rem;font-weight:800;margin:2px 0 5px;line-height:1.15}
.bm-pop-ubi,.bm-pop-hor{font-size:.82rem;color:var(--muted);margin-top:2px}
.bm-pop-cta{display:inline-block;margin-top:11px;background:var(--brand-bright);color:#fff;font-weight:700;font-size:.82rem;padding:9px 16px;border-radius:999px}
.bm-pop-cta:hover{background:var(--brand-dark)}

@media(max-width:620px){
  .bm-lbl{font-size:.5rem;max-width:74px}
  .bm-popup{left:10px;right:10px;bottom:10px;width:auto}
}
