/* PB - Mapa Hotspots */
.pbmh{
  --pbmh-fondo:#292f7a;
  --pbmh-borde:#ffffff;
  --pbmh-borde-grosor:1.15px;
  --pbmh-activo:#f6f21a;
  --pbmh-punto:#f6f21a;
  --pbmh-card:rgba(229,231,243,.92);
  --pbmh-card-texto:#292f7a;
  --pbmh-boton:#292f7a;
  --pbmh-boton-hover:#1f2366;
  --pbmh-boton-texto:#f6f21a;
  --pbmh-tip-ancho:370px;
  --pbmh-radio:6px;
  position:relative;
  width:100%;
  background:var(--pbmh-fondo);
  color:#fff;
  overflow:hidden;
  border-radius:var(--pbmh-radio);
  box-sizing:border-box;
}
.pbmh *,.pbmh *::before,.pbmh *::after{box-sizing:border-box}
/* En contenedores flex centrados (Elementor) el widget se encoge al contenido.
   Se fuerza a ocupar todo el ancho disponible para que el mapa no dependa de su propio contenido. */
.elementor-widget-pb-mapa-hotspots,
.elementor-widget:has(.pbmh){width:100%;max-width:100%;align-self:stretch}
.elementor-widget:has(.pbmh) > .elementor-widget-container,
.elementor-shortcode:has(.pbmh){width:100%}
.pbmh-datos{display:none}
.pbmh-lienzo{position:relative;z-index:1}
.pbmh-lienzo svg{display:block;width:100%;height:auto;overflow:hidden}

.pbmh-pais{fill:transparent;stroke:var(--pbmh-borde);stroke-width:var(--pbmh-borde-grosor);stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .3s ease,stroke .3s ease}
.pbmh-pais.con-punto{cursor:pointer}
.pbmh-pais.activo{fill:var(--pbmh-activo);stroke:var(--pbmh-activo)}

.pbmh-punto{cursor:pointer;outline:none}
.pbmh-punto.oculto{display:none}
.pbmh-punto .hit{fill:transparent}
.pbmh-punto .dot{fill:var(--pbmh-punto)}
.pbmh-punto .pulso{fill:none;stroke:var(--pbmh-punto);stroke-width:1.5px;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;opacity:0;animation:pbmh-pulso 2.6s ease-out infinite}
.pbmh-punto .anillo{fill:none;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;opacity:0}
.pbmh-punto:focus-visible .anillo{opacity:1}
.pbmh-punto.activo .pulso{animation:none}
@keyframes pbmh-pulso{0%{transform:scale(1);opacity:.75}70%,100%{transform:scale(3.2);opacity:0}}

/* Tooltip (desktop) */
.pbmh-tip{position:absolute;top:0;left:0;z-index:3;width:min(var(--pbmh-tip-ancho),calc(100% - 24px));display:grid;grid-template-columns:1fr 31%;gap:16px;padding:18px;background:var(--pbmh-card);color:var(--pbmh-card-texto);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 44px rgba(12,14,52,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.pbmh-tip.visible{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease}

.pbmh .pbmh-titulo{margin:0 0 10px;padding:0;font-size:19px;font-weight:700;line-height:1.1;letter-spacing:-.01em;color:inherit}
.pbmh .pbmh-texto{margin:0 0 16px;padding:0;font-size:13.5px;line-height:1.38;color:inherit}
.pbmh-txt{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.pbmh-txt .pbmh-cta{margin-top:auto}
.pbmh .pbmh-cta{display:inline-flex;align-items:center;min-height:38px;background:var(--pbmh-boton);color:var(--pbmh-boton-texto);font-weight:600;font-size:13.5px;line-height:1.2;padding:0 20px;text-decoration:none;border-radius:2px;transition:background .2s ease}
.pbmh .pbmh-cta:hover{background:var(--pbmh-boton-hover);color:var(--pbmh-boton-texto)}
.pbmh .pbmh-cta:focus-visible{outline:2px solid var(--pbmh-boton);outline-offset:2px}
.pbmh-foto{position:relative;min-width:0;min-height:120px;border-radius:6px;overflow:hidden;background:#c6cae6;align-self:stretch}
.pbmh-foto img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;filter:grayscale(1) contrast(1.08);mix-blend-mode:multiply}

/* Piezas mobile, ocultas en desktop */
.pbmh-tabs,.pbmh-carrusel,.pbmh-paginacion{display:none}
.pbmh.is-mobile .pbmh-tip{display:none}
.pbmh.is-mobile .pbmh-lienzo{aspect-ratio:1/1;max-height:60vh}
.pbmh.is-mobile .pbmh-lienzo svg{width:100%;height:100%}

.pbmh.is-mobile .pbmh-tabs{display:flex;gap:8px;overflow-x:auto;padding:16px 16px 6px;scrollbar-width:none;position:relative;z-index:2}
.pbmh-tabs::-webkit-scrollbar,.pbmh-carrusel::-webkit-scrollbar{display:none}
.pbmh .pbmh-tab{flex:0 0 auto;min-height:40px;margin:0;padding:0 15px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font:inherit;font-size:13.5px;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .2s ease,color .2s ease,border-color .2s ease}
.pbmh .pbmh-tab span{font-weight:500;opacity:.7;margin-left:5px}
.pbmh .pbmh-tab[aria-selected="true"]{background:var(--pbmh-activo);border-color:var(--pbmh-activo);color:var(--pbmh-fondo)}
.pbmh .pbmh-tab:focus-visible{outline:2px solid #fff;outline-offset:2px}

.pbmh.is-mobile .pbmh-carrusel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 16px 6px;scroll-padding-inline:16px;position:relative;z-index:2;scrollbar-width:none;overscroll-behavior-x:contain}
.pbmh-carrusel.arrastrable{cursor:grab}
.pbmh-carrusel.arrastrando{scroll-snap-type:none;cursor:grabbing;user-select:none;-webkit-user-select:none}
.pbmh-carrusel img,.pbmh-carrusel a{-webkit-user-drag:none}
.pbmh-card{flex:0 0 86%;scroll-snap-align:center;display:grid;grid-template-columns:1fr 92px;gap:14px;padding:16px;background:var(--pbmh-card);color:var(--pbmh-card-texto);border-radius:10px;opacity:.5;transition:opacity .3s ease}
.pbmh-card:only-child{flex-basis:100%}
.pbmh-card.activa{opacity:1}

.pbmh.is-mobile .pbmh-paginacion{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:4px 12px 12px;position:relative;z-index:2}
.pbmh .pbmh-paginacion button{background:none;border:0;margin:0;padding:12px 4px;cursor:pointer;display:flex;min-height:0}
.pbmh .pbmh-paginacion button:focus-visible{outline:2px solid #fff;outline-offset:-4px;border-radius:6px}
.pbmh-paginacion i{display:block;width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.35);transition:width .3s ease,background .3s ease}
.pbmh-paginacion i.activa{width:18px;background:var(--pbmh-punto)}

.pbmh-aviso{padding:16px 18px;border:1px dashed #9aa0c8;border-radius:6px;font-size:14px;line-height:1.4;background:#f4f5fb;color:#292f7a}

@media (prefers-reduced-motion: reduce){
  .pbmh-punto .pulso{animation:none}
  .pbmh-tip,.pbmh-card,.pbmh-pais{transition:none}
}
