.mib-wrap{--mib-accent:#8b1e2d;--mib-accent-2:#c0392b;width:100%;max-width:100%;margin:0 auto;font-family:var(--mib-font,inherit);box-sizing:border-box;}
/* La fuente se aplica también a títulos y textos internos, ya que muchos temas
   fuerzan font-family en h1..h6 con mayor especificidad. */
.mib-wrap .mib-card-name,
.mib-wrap .mib-card-zona,
.mib-wrap .mib-tip-name,
.mib-wrap .mib-tip-text,
.mib-wrap .mib-btn{font-family:var(--mib-font-btn,var(--mib-font,inherit));}
.mib-wrap *{box-sizing:border-box;}
.mib-empty{padding:24px;text-align:center;color:#777;background:#f6f6f6;border-radius:8px;}

/* ---- Posición del listado respecto a la imagen ---- */
.mib-pos-bottom{display:block;}
.mib-pos-right,.mib-pos-left{display:flex;gap:28px;align-items:flex-start;}
.mib-pos-left{flex-direction:row-reverse;}
.mib-pos-right .mib-map,
.mib-pos-left .mib-map{flex:1 1 var(--mib-side-img,50%);min-width:0;max-width:var(--mib-side-img,50%);position:sticky;top:var(--mib-sticky-top,20px);align-self:flex-start;}
.mib-pos-right .mib-list,
.mib-pos-left .mib-list{flex:1 1 var(--mib-side-list,50%);min-width:0;max-width:var(--mib-side-list,50%);margin-top:0;}

/* ---- Imagen ---- */
.mib-map{position:relative;line-height:0;width:100%;}
.mib-map-img{display:block;width:100%;height:auto;border-radius:8px;}

/* ---- Pin ---- */
.mib-point{position:absolute;transform:translate(-50%,-50%);padding:0;margin:0;border:0;background:transparent;cursor:pointer;z-index:2;line-height:0;}
.mib-point-dot{display:block;width:var(--mib-pin-size,18px);height:var(--mib-pin-size,18px);border-radius:50%;background:var(--mib-pin-fill,#c0392b);border:var(--mib-pin-bw,3px) solid var(--mib-pin-border,#fff);box-shadow:0 1px 4px rgba(0,0,0,.35);transition:transform .15s ease;box-sizing:border-box;}
.mib-point-svg{display:block;width:var(--mib-pin-size,24px);height:auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));transition:transform .15s ease;}
.mib-point:hover .mib-point-dot,
.mib-point.is-active .mib-point-dot,
.mib-point.is-hover .mib-point-dot,
.mib-point:hover .mib-point-svg,
.mib-point.is-active .mib-point-svg,
.mib-point.is-hover .mib-point-svg{transform:scale(1.25);}
.mib-point.is-active,.mib-point.is-hover{z-index:5;}

/* ---- Popup del punto ---- */
.mib-point-tip{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(6px);min-width:180px;max-width:240px;background:#fff;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:14px 12px 12px;text-align:center;line-height:1.35;opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease;z-index:10;cursor:default;}
/* Puente invisible para que el ratón pueda viajar del pin al popup sin cerrarlo. */
.mib-point-tip::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px;}
/* Flecha. */
.mib-point-tip::before{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:8px solid transparent;border-top-color:#fff;}

/* Modo HOVER: se abre al pasar el ratón (sobre el pin o sobre el propio popup). */
.mib-trigger-hover .mib-point:hover .mib-point-tip,
.mib-trigger-hover .mib-point .mib-point-tip:hover{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

/* Modo CLICK: se abre solo cuando el punto tiene .is-open (controlado por JS). */
.mib-trigger-click .mib-point.is-open .mib-point-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

/* Botón de cerrar: visible en modo clic. */
.mib-tip-close{display:none;position:absolute;top:4px;right:8px;font-size:18px;line-height:1;color:#999;cursor:pointer;}
.mib-trigger-click .mib-tip-close{display:block;}
.mib-tip-close:hover{color:#333;}

.mib-tip-logo{max-width:110px;max-height:60px;width:auto;height:auto;margin:0 auto 6px;display:block;}
.mib-tip-name{display:block;font-size:var(--mib-fs-tip-name,15px);margin-bottom:4px;color:#222;}
.mib-tip-text{display:block;font-size:var(--mib-fs-tip-text,12px);color:#666;margin-bottom:8px;}
.mib-tip-actions{display:flex;flex-direction:column;gap:6px;}
.mib-tip-actions:empty{display:none;}

.mib-btn{display:inline-block;padding:8px 12px;border-radius:var(--mib-btn-radius,6px);border:1px solid transparent;box-sizing:border-box;font-size:var(--mib-fs-btn,13px);text-decoration:none;text-align:center;line-height:1.2;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.mib-btn-primary{background:var(--mib-accent);color:var(--mib-accent-text,#fff);border-color:var(--mib-accent);}
.mib-btn-primary:hover,.mib-btn-primary:focus{background:var(--mib-accent-h,var(--mib-accent));color:var(--mib-accent-text-h,var(--mib-accent-text,#fff));border-color:var(--mib-accent-h,var(--mib-accent));}
.mib-btn-ghost{background:transparent;color:var(--mib-accent-ghost,var(--mib-accent));border:1px solid var(--mib-accent-ghost,var(--mib-accent));}
.mib-btn-ghost:hover,.mib-btn-ghost:focus{color:var(--mib-accent-ghost-h,var(--mib-accent-ghost));border-color:var(--mib-accent-ghost-h,var(--mib-accent-ghost));}

.mib-list{margin-top:28px;}

/* Layout: GRID (autofill responsive por defecto) */
.mib-layout-grid .mib-list{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
/* Con columnas fijas elegidas en el panel. */
.mib-grid-fixed .mib-list{grid-template-columns:repeat(var(--mib-grid-cols,3),1fr);}

/* Layout: LIST (una columna). La orientación imagen/texto la define "Posición de la imagen". */
.mib-layout-list .mib-list{display:flex;flex-direction:column;gap:12px;}
.mib-layout-list .mib-card{padding:12px 16px;}
.mib-layout-list .mib-card-logo img{max-height:56px;}
.mib-layout-list .mib-card-name,
.mib-layout-list .mib-card-zona{margin:0;}

/* Layout: CAROUSEL (scroll horizontal) */
.mib-layout-carousel .mib-list{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;-webkit-overflow-scrolling:touch;}
.mib-layout-carousel .mib-card{flex:0 0 220px;scroll-snap-align:start;}

.mib-card{border:1px solid #e6e6e6;border-radius:10px;padding:16px;text-align:center;background:#fff;transition:box-shadow .15s ease,border-color .15s ease;outline:none;}
.mib-card.is-active,
.mib-card.is-hover,
.mib-card:hover,
.mib-card:focus{border-color:var(--mib-accent);box-shadow:0 6px 18px rgba(0,0,0,.10);}
.mib-card-logo{display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.mib-card-logo img{width:auto;height:auto;max-width:140px;max-height:64px;}
.mib-wrap .mib-card-name{margin:0 0 4px;padding:0;font-size:var(--mib-fs-name,16px);font-weight:var(--mib-fw-name,700);line-height:1.25;color:#222;}
.mib-card-zona{margin:0 0 12px;font-size:var(--mib-fs-zona,13px);color:#888;}
.mib-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}

/* Imagen inferior del punto (iconos de servicios, etc.) */
.mib-card-imgb{margin-top:10px;}
.mib-card-imgb img{max-width:100%;height:auto;display:block;}

/* ===== Skin: DIVIDER (separadores, sin caja) ===== */
/* Siempre en una columna, cada elemento separado por una línea. */
.mib-skin-divider .mib-list{display:flex;flex-direction:column;gap:0;grid-template-columns:none;overflow:visible;}
.mib-skin-divider .mib-card{border:0;border-radius:8px;background:transparent;box-shadow:none;
	gap:16px;padding:16px;position:relative;transition:background .15s ease;}
/* La línea separadora se dibuja con un pseudo-elemento a ancho completo,
   independiente del padding de la ficha. */
.mib-skin-divider .mib-card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--mib-divider-color,#e0ddd4);}
.mib-skin-divider .mib-card:first-child::before{display:none;}
.mib-skin-divider .mib-card.is-active,
.mib-skin-divider .mib-card.is-hover,
.mib-skin-divider .mib-card:hover,
.mib-skin-divider .mib-card:focus{box-shadow:none;background:rgba(0,0,0,.02);}
.mib-skin-divider .mib-card-logo{height:auto;margin:0;flex:0 0 auto;}
.mib-skin-divider .mib-card-logo img{max-height:48px;}
.mib-skin-divider .mib-card-body{flex:1;min-width:0;}
.mib-skin-divider .mib-card-name,
.mib-skin-divider .mib-card-zona{margin:0;}
.mib-skin-divider .mib-card-actions{flex-direction:row;justify-content:flex-end;flex:0 0 auto;margin-left:auto;}
/* Carrusel no aplica con separadores: se comporta como lista vertical. */
.mib-skin-divider.mib-layout-carousel .mib-list{overflow:visible;}
.mib-skin-divider.mib-layout-carousel .mib-card{flex:1 1 auto;}

/* ===== Posición de la imagen principal respecto al texto =====
   Gobierna la orientación de la ficha por encima del layout/skin.
   LEFT = imagen a la izquierda (fila) · TOP = imagen encima (columna). */

/* --- LEFT: fila, imagen a la izquierda --- */
.mib-wrap.mib-logopos-left .mib-card{display:flex;flex-direction:row;align-items:flex-start;gap:14px;text-align:left;}
.mib-wrap.mib-logopos-left .mib-card-logo{margin:0;flex:0 0 auto;height:auto;}
.mib-wrap.mib-logopos-left .mib-card-body{flex:1 1 auto;min-width:0;}
.mib-wrap.mib-logopos-left .mib-card-actions{flex:0 0 auto;align-self:center;margin-left:auto;}

/* --- TOP: columna, imagen encima --- */
.mib-wrap.mib-logopos-top .mib-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;}
.mib-wrap.mib-logopos-top .mib-card-logo{margin:0 auto 10px;height:auto;flex:0 0 auto;}
.mib-wrap.mib-logopos-top .mib-card-body{width:100%;}
.mib-wrap.mib-logopos-top .mib-card-actions{width:100%;align-items:center;margin-top:14px;}
.mib-wrap.mib-logopos-top .mib-card-imgb{display:flex;justify-content:center;}

/* La imagen inferior siempre ocupa el ancho del cuerpo, debajo del texto. */
.mib-card-imgb img{margin:0;}

/* ===== Alineación del contenido de la ficha ===== */
.mib-wrap.mib-align-left .mib-card{text-align:left;align-items:flex-start;}
.mib-wrap.mib-align-left .mib-card-logo{margin-left:0;margin-right:auto;}
.mib-wrap.mib-align-left .mib-card-actions{align-items:flex-start;justify-content:flex-start;}
.mib-wrap.mib-align-left .mib-card-imgb{justify-content:flex-start;}

.mib-wrap.mib-align-center .mib-card{text-align:center;align-items:center;}
.mib-wrap.mib-align-center .mib-card-logo{margin-left:auto;margin-right:auto;}
.mib-wrap.mib-align-center .mib-card-actions{align-items:center;justify-content:center;}
.mib-wrap.mib-align-center .mib-card-imgb{justify-content:center;}

.mib-wrap.mib-align-right .mib-card{text-align:right;align-items:flex-end;}
.mib-wrap.mib-align-right .mib-card-logo{margin-left:auto;margin-right:0;}
.mib-wrap.mib-align-right .mib-card-actions{align-items:flex-end;justify-content:flex-end;}
.mib-wrap.mib-align-right .mib-card-imgb{justify-content:flex-end;}

/* En modo "imagen a la izquierda" la alineación no altera la disposición en fila. */
.mib-wrap.mib-logopos-left .mib-card{align-items:flex-start;text-align:left;}

/* Refuerzo: la alineación gana sobre el auto-centrado del modo "encima". */
.mib-wrap.mib-align-left.mib-logopos-top .mib-card-logo{margin-left:0;margin-right:auto;}
.mib-wrap.mib-align-right.mib-logopos-top .mib-card-logo{margin-left:auto;margin-right:0;}
.mib-wrap.mib-align-left .mib-card-body,
.mib-wrap.mib-align-left .mib-card-name,
.mib-wrap.mib-align-left .mib-card-zona{text-align:left;}
.mib-wrap.mib-align-right .mib-card-body,
.mib-wrap.mib-align-right .mib-card-name,
.mib-wrap.mib-align-right .mib-card-zona{text-align:right;}

/* ===== Tamaño de la imagen inferior del listado ===== */
.mib-card-imgb{display:flex;}
.mib-card-imgb img{max-width:100%;width:auto;height:auto;}

/* ===== Iconos individuales del punto ===== */
.mib-card-icons{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px;align-items:center;}
.mib-wrap.mib-align-center .mib-card-icons{justify-content:center;}
.mib-wrap.mib-align-right .mib-card-icons{justify-content:flex-end;}
.mib-wrap.mib-align-left .mib-card-icons{justify-content:flex-start;}
.mib-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--mib-icon-size,32px);height:var(--mib-icon-size,32px);cursor:default;outline:none;flex:0 0 auto;}
.mib-icon-svg,.mib-icon-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;color:var(--mib-icon-color,#333);transition:color .15s ease,transform .15s ease,opacity .15s ease;}
.mib-icon-svg{width:100%;height:100%;}
.mib-icon-svg svg{width:100%;height:100%;display:block;fill:currentColor;}
.mib-icon-svg svg path,
.mib-icon-svg svg g,
.mib-icon-svg svg circle,
.mib-icon-svg svg rect,
.mib-icon-svg svg polygon{fill:currentColor;}
.mib-icon-img{object-fit:contain;}
/* Hover: cambia el color del SVG y aplica realce a imagen. */
.mib-icon:hover .mib-icon-svg,
.mib-icon:focus .mib-icon-svg{color:var(--mib-icon-hover,var(--mib-accent));transform:translateY(-2px);}
.mib-icon:hover .mib-icon-img,
.mib-icon:focus .mib-icon-img{transform:translateY(-2px);opacity:.7;}
/* Tooltip individual del icono. */
.mib-icon-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);background:#222;color:#fff;font-size:11px;line-height:1.35;padding:6px 10px;border-radius:6px;white-space:normal;width:max-content;max-width:220px;text-align:center;opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease;z-index:8;pointer-events:none;}
.mib-icon-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#222;}
.mib-icon:hover .mib-icon-tip,
.mib-icon:focus .mib-icon-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

/* ===== Responsive ===== */
@media (max-width:782px){
	/* El listado lateral pasa a apilarse debajo y ocupa todo el ancho. */
	.mib-pos-right,.mib-pos-left{flex-direction:column;}
	.mib-pos-right .mib-map,.mib-pos-left .mib-map{flex:1 1 auto;width:100%;max-width:100%;position:relative;top:auto;}
	.mib-pos-right .mib-list,.mib-pos-left .mib-list{flex:1 1 auto;max-width:100%;margin-top:24px;}
	/* Grid con columnas fijas se reduce a 2. */
	.mib-grid-fixed .mib-list{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
	/* El listado ocupa todo el ancho disponible en cualquier layout. */
	.mib-list{width:100%;max-width:100%;}
	/* Grid (auto o fijo) a una sola columna. */
	.mib-layout-grid .mib-list,
	.mib-grid-fixed .mib-list{grid-template-columns:1fr;}
	/* Lista y carrusel: columna vertical, tarjetas estiradas al 100%. */
	.mib-layout-list .mib-list,
	.mib-layout-carousel .mib-list{display:flex;flex-direction:column;align-items:stretch;overflow:visible;}
	.mib-card{width:100%;max-width:100%;flex:1 1 auto;box-sizing:border-box;}
	/* Pines algo más pequeños en móvil, proporcionales a la imagen reducida. */
	.mib-point-dot{width:calc(var(--mib-pin-size,18px) * .72);height:calc(var(--mib-pin-size,18px) * .72);border-width:calc(var(--mib-pin-bw,3px) * .72);}
	.mib-point-svg{width:calc(var(--mib-pin-size,24px) * .72);}
	/* En móvil, el popup se centra en la pantalla (tipo modal) para no desbordar. */
	.mib-point-tip{position:fixed;top:50%;left:50%;bottom:auto;right:auto;transform:translate(-50%,-48%);width:min(88vw,340px);min-width:0;max-width:88vw;max-height:80vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.28);z-index:9999;}
	.mib-trigger-click .mib-point.is-open .mib-point-tip{transform:translate(-50%,-50%);}
	/* Ocultar la flecha del bocadillo: ya no cuelga del pin. */
	.mib-point-tip::before{display:none;}
	.mib-point-tip::after{display:none;}
	/* Botón de cerrar siempre visible y algo mayor para el dedo. */
	.mib-tip-close{display:block;font-size:22px;top:6px;right:10px;}
}

/* Descripción con enlaces en el listado */
.mib-card-desc{font-size:var(--mib-fs-tip-text,13px);color:#555;line-height:1.5;margin:6px 0 0;}
.mib-card-desc a{color:var(--mib-accent);text-decoration:underline;}
.mib-tip-text a{color:#fff;text-decoration:underline;}
