.timbjs-map-shell{height:var(--timbjs-map-height,720px);min-height:var(--timbjs-map-height,720px);border-radius:var(--timbjs-map-border-radius,0px);overflow:hidden;background:#eef2f0;box-shadow:none;position:relative;font-family:inherit}.timbjs-map-canvas{width:100%;height:100%;min-height:420px;z-index:1}.timbjs-map-panel{position:absolute;top:34px;bottom:34px;width:min(380px,calc(100% - 48px));max-width:380px;overflow:hidden;background:#fff;border-radius:8px;padding:26px 30px 24px;z-index:500;box-shadow:0 8px 28px rgba(15,23,42,.20);display:flex;flex-direction:column}.timbjs-panel-right .timbjs-map-panel{right:36px}.timbjs-panel-left .timbjs-map-panel{left:36px}.timbjs-map-panel-header{flex:0 0 auto;border-bottom:1px solid var(--timbjs-description-color,#8f9aaa);padding-bottom:16px;margin-bottom:20px}.timbjs-map-panel-header h3{margin:0 0 10px;font-size:var(--timbjs-title-font-size,24px);line-height:1.15;color:var(--timbjs-title-color,#2d3848);font-weight:var(--timbjs-title-font-weight,650);font-family:var(--timbjs-title-font-family,inherit);letter-spacing:-.01em}.timbjs-map-panel-header p{color:var(--timbjs-description-color,#2f3f52);margin:0;line-height:1.5;font-size:var(--timbjs-description-font-size,15px);font-weight:var(--timbjs-description-font-weight,400);font-family:var(--timbjs-description-font-family,inherit)}.timbjs-map-stage-list{list-style:none;margin:0;padding:0 7px 0 0;display:flex;flex-direction:column;gap:11px;overflow:auto;scrollbar-width:auto;scrollbar-color:#2f3f52 #d7dbe0}.timbjs-map-stage-list::-webkit-scrollbar{width:12px}.timbjs-map-stage-list::-webkit-scrollbar-track{background:#d7dbe0;border-radius:999px}.timbjs-map-stage-list::-webkit-scrollbar-thumb{background:#2f3f52;border-radius:999px;border:3px solid #d7dbe0}.timbjs-map-stage-list li{margin:0}.timbjs-stage-focus{width:100%;min-height:50px;display:flex;gap:12px;align-items:center;justify-content:space-between;text-align:left;border:1px solid var(--timbjs-legend-button-border,#9aa6b6);border-radius:11px;background:var(--timbjs-legend-button-bg,#fff);color:var(--timbjs-legend-button-text,#2b3442);padding:10px 12px;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease;font-family:var(--timbjs-button-font-family,inherit);font-size:var(--timbjs-button-font-size,15px);font-weight:var(--timbjs-button-font-weight,400)}.timbjs-stage-focus:hover{border-color:var(--timbjs-legend-button-border-hover,#6d7a8c);box-shadow:none;background:var(--timbjs-legend-button-bg-hover,#fbfcfd);color:var(--timbjs-legend-button-text-hover,#2b3442)}.timbjs-stage-focus.is-active{border-color:var(--timbjs-legend-button-border-active,#6d7a8c);box-shadow:none;background:var(--timbjs-legend-button-bg-active,#fbfcfd);color:var(--timbjs-legend-button-text-active,#2b3442)}.timbjs-stage-label{display:flex;align-items:center;min-width:0;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden}.timbjs-stage-day-text{flex:0 0 auto;font-weight:var(--timbjs-button-font-weight,400);color:inherit}.timbjs-stage-separator{flex:0 0 auto;margin:0 8px;color:inherit;opacity:.78}.timbjs-stage-label strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--timbjs-button-font-size,15px);font-weight:var(--timbjs-button-city-font-weight,700);color:inherit}.timbjs-stage-icon{flex:0 0 28px;width:28px;height:28px;border:1px solid currentColor;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:inherit;background:#fff;font-size:17px;line-height:1}.timbjs-stage-icon img{width:18px;height:18px;object-fit:contain;display:block}.timbjs-stage-icon-default{font-size:16px}.timbjs-marker-icon{background:transparent;border:0}.timbjs-marker-pin{width:32px;height:32px;border-radius:50% 50% 50% 12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;border:0;box-shadow:0 7px 16px rgba(0,0,0,.24);transform:rotate(-45deg);transform-origin:50% 50%}.timbjs-marker-pin em{display:block;font-style:normal;transform:rotate(45deg);font-size:15px;line-height:1;font-weight:600;letter-spacing:0}.timbjs-marker-icon.is-active .timbjs-marker-pin{transform:rotate(-45deg) scale(1.12);box-shadow:0 10px 24px rgba(0,0,0,.30)}.timbjs-map-shell .leaflet-tooltip.timbjs-marker-label{background:transparent;border:0;box-shadow:none;color:var(--timbjs-tooltip-title-color,#2b3442);font-family:var(--timbjs-tooltip-font-family,inherit);font-size:12px;font-weight:var(--timbjs-tooltip-font-weight,700);line-height:1.1;padding:0;text-transform:uppercase;text-shadow:0 1px 2px rgba(255,255,255,.95),0 -1px 2px rgba(255,255,255,.95);pointer-events:none;white-space:nowrap}.timbjs-map-shell .leaflet-tooltip-top.timbjs-marker-label:before,.timbjs-map-shell .leaflet-tooltip-bottom.timbjs-marker-label:before,.timbjs-map-shell .leaflet-tooltip-left.timbjs-marker-label:before,.timbjs-map-shell .leaflet-tooltip-right.timbjs-marker-label:before{display:none}.timbjs-popup,.timbjs-map-shell .leaflet-popup-content-wrapper,.timbjs-map-shell .leaflet-popup-tip,.timbjs-map-shell .leaflet-tooltip{font-family:var(--timbjs-tooltip-font-family,inherit)}.timbjs-map-shell .leaflet-popup-content-wrapper{background:var(--timbjs-tooltip-bg,#fff);border:1px solid var(--timbjs-tooltip-border,#d7dbe0);color:var(--timbjs-tooltip-text-color,#2b3442)}.timbjs-map-shell .leaflet-popup-tip{background:var(--timbjs-tooltip-bg,#fff)}.timbjs-popup strong{display:block;font-size:var(--timbjs-tooltip-font-size,14px);font-weight:var(--timbjs-tooltip-font-weight,700);color:var(--timbjs-tooltip-title-color,#2b3442)}.timbjs-popup span{display:block;color:var(--timbjs-tooltip-meta-color,#647067);font-size:12px;margin:3px 0 6px}.timbjs-popup p{margin:0;line-height:1.45;color:var(--timbjs-tooltip-text-color,#2b3442);font-size:var(--timbjs-tooltip-font-size,14px);font-weight:var(--timbjs-tooltip-font-weight,400)}.timbjs-notice{padding:18px 20px;border-radius:14px;background:#f8f3ea;color:#34423b;border:1px solid rgba(47,111,94,.18)}.timbjs-map-shell .leaflet-control-zoom{border:0!important;box-shadow:none!important}.timbjs-map-shell .leaflet-control-zoom a{width:40px;height:40px;line-height:38px;border-radius:999px!important;margin-bottom:8px;border:1px solid rgba(25,36,54,.25)!important;background:#fff!important;color:#1d2735!important;font-weight:300!important;font-family:inherit!important;font-size:30px!important;box-shadow:0 2px 8px rgba(15,23,42,.12)}.timbjs-map-shell .leaflet-control-zoom-in{line-height:36px!important}.timbjs-map-shell .leaflet-control-zoom-out{font-size:34px!important;line-height:34px!important}@media (max-width:900px){.timbjs-map-shell{height:auto;min-height:0;display:flex;flex-direction:column;overflow:visible;border-radius:16px}.timbjs-map-canvas{height:440px;min-height:440px}.timbjs-map-panel{position:relative;top:auto;bottom:auto;left:auto!important;right:auto!important;order:2;width:100%;max-width:none;max-height:none;border-radius:0 0 16px 16px;box-shadow:none;padding:22px 18px}.timbjs-map-stage-list{max-height:320px}.timbjs-map-panel-header h3{font-size:22px}}@media (max-width:560px){.timbjs-map-canvas{height:360px;min-height:360px}.timbjs-map-panel{padding:20px 16px}.timbjs-stage-focus{min-height:48px}.timbjs-stage-label{font-size:14px}.timbjs-stage-label strong{font-size:14px}}
.timbjs-marker-pin.is-range em{font-size:12px;font-weight:600;letter-spacing:-.03em}.timbjs-popup-stage-list{margin:6px 0 0 0!important;padding:0!important;list-style:none!important}.timbjs-popup-stage-list li{margin:3px 0!important;padding:0!important;color:var(--timbjs-tooltip-text-color,#2b3442);font-size:var(--timbjs-tooltip-font-size,14px);line-height:1.35}.timbjs-popup-stage-list b{font-weight:700;color:var(--timbjs-tooltip-title-color,#2b3442)}
.timbjs-hover-tooltip{
    position:absolute;
    left:0;
    top:0;
    z-index:900;
    max-width:260px;
    padding:12px 14px;
    border:1px solid var(--timbjs-tooltip-border,#d7dbe0);
    border-radius:10px;
    background:var(--timbjs-tooltip-bg,#fff);
    color:var(--timbjs-tooltip-text-color,#2b3442);
    font-family:var(--timbjs-tooltip-font-family,inherit);
    font-size:var(--timbjs-tooltip-font-size,14px);
    font-weight:var(--timbjs-tooltip-font-weight,400);
    line-height:1.42;
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transform:translate(14px,calc(-100% - 18px));
    transition:opacity .14s ease,visibility .14s ease,transform .14s ease;
    box-shadow:none!important;
}
.timbjs-hover-tooltip.is-visible{
    opacity:1;
    visibility:visible;
    transform:translate(18px,calc(-100% - 18px));
}
.timbjs-hover-tooltip.is-left{transform:translate(calc(-100% - 18px),calc(-100% - 18px));}
.timbjs-hover-tooltip.is-below{transform:translate(18px,18px);}
.timbjs-hover-tooltip.is-left.is-below{transform:translate(calc(-100% - 18px),18px);}
.timbjs-hover-tooltip strong{
    display:block;
    margin:0 0 4px;
    color:var(--timbjs-tooltip-title-color,#2b3442);
    font-size:var(--timbjs-tooltip-font-size,14px);
    font-weight:700;
}
.timbjs-tooltip-meta{
    display:block;
    margin:0 0 4px;
    color:var(--timbjs-tooltip-meta-color,#647067);
    font-size:12px;
}
.timbjs-tooltip-stage-title{
    display:block;
    margin:0 0 4px;
    color:var(--timbjs-tooltip-title-color,#2b3442);
    font-weight:700;
}
.timbjs-tooltip-text,
.timbjs-tooltip-text p{
    margin:0;
    color:var(--timbjs-tooltip-text-color,#2b3442);
    font-size:var(--timbjs-tooltip-font-size,14px);
    font-weight:var(--timbjs-tooltip-font-weight,400);
    line-height:1.42;
}
.timbjs-tooltip-items{
    list-style:none!important;
    margin:0!important;
    padding:0!important;
}
.timbjs-tooltip-items li{
    margin:0!important;
    padding:0 0 9px!important;
}
.timbjs-tooltip-items li:last-child{padding-bottom:0!important;}
.timbjs-map-shell .leaflet-popup-content-wrapper,
.timbjs-map-shell .leaflet-popup-tip,
.timbjs-map-shell .leaflet-tooltip{
    box-shadow:none!important;
}
.timbjs-map-shell .leaflet-control-zoom a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:40px!important;
    height:40px!important;
    line-height:1!important;
    padding:0!important;
    font-size:24px!important;
    font-weight:200!important;
    font-family:Arial, Helvetica, sans-serif!important;
    text-indent:0!important;
}
.timbjs-map-shell .leaflet-control-zoom-in,
.timbjs-map-shell .leaflet-control-zoom-out{
    line-height:1!important;
}
.timbjs-map-shell .leaflet-control-zoom-out{
    font-size:30px!important;
    padding-bottom:3px!important;
}


.timbjs-tooltip-main{margin:0;color:var(--timbjs-tooltip-text-color,#2b3442);font-size:var(--timbjs-tooltip-font-size,14px);line-height:1.35;}
.timbjs-tooltip-main strong{display:inline!important;margin:0!important;color:var(--timbjs-tooltip-title-color,#2b3442);font-size:inherit!important;font-weight:700!important;}
.timbjs-tooltip-main span{display:inline;color:var(--timbjs-tooltip-text-color,#2b3442);font-size:inherit;font-weight:var(--timbjs-tooltip-font-weight,400);}
.timbjs-tooltip-main .timbjs-tooltip-legend{display:block!important;font-weight:var(--timbjs-tooltip-font-weight,400)!important;color:var(--timbjs-tooltip-meta-color,#647067);}
.timbjs-tooltip-main .timbjs-tooltip-destination{display:block!important;padding-top:6px!important;margin-top:2px!important;font-size:1.2em!important;}
.timbjs-tooltip-main + .timbjs-tooltip-stage-title,
.timbjs-tooltip-main + .timbjs-tooltip-text,
.timbjs-tooltip-main + .timbjs-tooltip-items{margin-top:6px!important;}

/* v1.0.14: el tooltip se coloca por defecto sobre el punto/cursor. */
.timbjs-hover-tooltip{transform:translate(18px,calc(-100% - 18px))!important;}
.timbjs-hover-tooltip.is-left{transform:translate(calc(-100% - 18px),calc(-100% - 18px))!important;}
.timbjs-hover-tooltip.is-below{transform:translate(18px,18px)!important;}
.timbjs-hover-tooltip.is-left.is-below{transform:translate(calc(-100% - 18px),18px)!important;}


/* v1.0.15: pin real con punta inferior y centrado suave en hover de leyenda. */
.timbjs-marker-pin{
    width:34px!important;
    height:34px!important;
    border-radius:50% 50% 50% 0!important;
    transform:rotate(-45deg)!important;
    transform-origin:50% 50%!important;
    box-shadow:0 7px 16px rgba(0,0,0,.22)!important;
}
.timbjs-marker-pin em{
    transform:rotate(45deg)!important;
    font-weight:500!important;
}
.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.12)!important;
}

/* v1.0.17: interacción por hover sin estado activo persistente y ruta resaltada. */
.timbjs-map-shell .timbjs-route-highlight{
    pointer-events:none;
    filter:drop-shadow(0 2px 4px rgba(15,23,42,.22));
}

/* v1.0.19: la línea se dibuja modificando sus propios puntos, sin engrosar ni perder el punteado. */
.timbjs-map-shell .timbjs-route-highlight{filter:none;}


/* v1.0.20: mapa sin sombra exterior y redondeado configurable. */
.timbjs-map-shell{
    border-radius:var(--timbjs-map-border-radius,0px)!important;
    box-shadow:none!important;
}
.timbjs-stage-focus:focus:not(:hover):not(.is-active){
    background:var(--timbjs-legend-button-bg,#fff)!important;
    border-color:var(--timbjs-legend-button-border,#9aa6b6)!important;
    color:var(--timbjs-legend-button-text,#2b3442)!important;
}
.timbjs-stage-focus:focus{outline:none;}

/* v1.0.27: leyenda con destinos desplegables y ajuste inicial para evitar solapes con el panel. */
.timbjs-stage-item{display:block;}
.timbjs-stage-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;}
.timbjs-stage-caret{display:none!important;}
.timbjs-stage-destinations{display:none;margin:7px 0 0 18px;padding:0 0 0 12px;border-left:1px solid var(--timbjs-legend-button-border,#9aa6b6);}
.timbjs-stage-item.is-open .timbjs-stage-destinations,.timbjs-stage-item.has-destinations:hover .timbjs-stage-destinations,.timbjs-stage-item.has-destinations:focus-within .timbjs-stage-destinations{display:flex;flex-direction:column;gap:6px;}
.timbjs-stage-point-focus{width:100%;display:flex;align-items:center;justify-content:flex-start;text-align:left;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--timbjs-legend-button-text,#2b3442);padding:7px 9px;cursor:pointer;font-family:var(--timbjs-button-font-family,inherit);font-size:calc(var(--timbjs-button-font-size,15px) - 1px);font-weight:var(--timbjs-button-font-weight,400);line-height:1.25;transition:background-color .16s ease,border-color .16s ease,color .16s ease;}
.timbjs-stage-point-focus:hover,.timbjs-stage-point-focus.is-active{background:var(--timbjs-legend-button-bg-hover,#fbfcfd);border-color:var(--timbjs-legend-button-border-hover,#6d7a8c);color:var(--timbjs-legend-button-text-hover,#2b3442);}
.timbjs-stage-point-focus span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:900px){.timbjs-stage-destinations{margin-left:12px;}}

/* v1.0.29: desplegable suave, pins más grandes y tooltip con imagen y pico centrado. */
.timbjs-stage-destinations{
    display:flex!important;
    flex-direction:column;
    gap:6px;
    max-height:0;
    opacity:0;
    overflow:hidden;
    pointer-events:none;
    transform:translateY(-4px);
    transition:max-height .28s ease, opacity .22s ease, transform .24s ease, margin-top .24s ease;
}
.timbjs-stage-item.is-open .timbjs-stage-destinations,
.timbjs-stage-item.has-destinations:hover .timbjs-stage-destinations,
.timbjs-stage-item.has-destinations:focus-within .timbjs-stage-destinations{
    max-height:420px;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
}
.timbjs-marker-pin{
    width:42px!important;
    height:42px!important;
    border-radius:50% 50% 50% 0!important;
}
.timbjs-marker-pin em{
    font-size:15px!important;
    font-weight:500!important;
    letter-spacing:-.02em!important;
}
.timbjs-marker-pin.is-range em{font-size:12px!important;letter-spacing:-.04em!important;}
.timbjs-marker-pin.is-long em{font-size:10px!important;letter-spacing:-.06em!important;}
.timbjs-hover-tooltip{
    width:280px;
    max-width:min(280px, calc(100% - 24px));
    padding:0 0 13px!important;
    border-radius:13px!important;
    transform:none!important;
    transition:opacity .14s ease,visibility .14s ease!important;
    overflow:visible!important;
}
.timbjs-hover-tooltip.is-visible,
.timbjs-hover-tooltip.is-left,
.timbjs-hover-tooltip.is-below,
.timbjs-hover-tooltip.is-left.is-below{
    transform:none!important;
}
.timbjs-hover-tooltip::after{
    content:"";
    position:absolute;
    left:var(--timbjs-tooltip-arrow-x,50%);
    bottom:-8px;
    transform:translateX(-50%);
    width:0;
    height:0;
    border-left:8px solid transparent;
    border-right:8px solid transparent;
    border-top:8px solid var(--timbjs-tooltip-bg,#fff);
    filter:drop-shadow(0 1px 0 var(--timbjs-tooltip-border,#d7dbe0));
}
.timbjs-hover-tooltip.is-below::after{
    top:-8px;
    bottom:auto;
    border-top:0;
    border-bottom:8px solid var(--timbjs-tooltip-bg,#fff);
    filter:drop-shadow(0 -1px 0 var(--timbjs-tooltip-border,#d7dbe0));
}
.timbjs-tooltip-image{
    display:block;
    width:100%;
    height:132px;
    overflow:hidden;
    border-radius:12px 12px 0 0;
    margin:0 0 12px;
    background:#eef0f2;
}
.timbjs-tooltip-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.timbjs-tooltip-main{
    padding:0 14px;
    font-size:var(--timbjs-tooltip-font-size,15px)!important;
    line-height:1.38!important;
}
.timbjs-tooltip-main strong{font-weight:750!important;}


/* v1.0.30: ajustes finos de tooltip, imagen y subdestinos. */
.timbjs-hover-tooltip{
    border:0!important;
    box-shadow:none!important;
    padding:8px 8px 14px!important;
    background:var(--timbjs-tooltip-bg,#fff)!important;
}
.timbjs-hover-tooltip::after{
    filter:none!important;
}
.timbjs-hover-tooltip.is-below::after{
    filter:none!important;
}
.timbjs-tooltip-image{
    height:150px!important;
    margin:0 0 12px!important;
    border-radius:10px!important;
    background:var(--timbjs-tooltip-bg,#fff)!important;
    padding:6px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}
.timbjs-tooltip-image img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    border-radius:8px!important;
    image-rendering:auto!important;
}
.timbjs-tooltip-main{
    padding:0 8px!important;
}
.timbjs-stage-destinations{
    transition:max-height .62s cubic-bezier(.22,1,.36,1), opacity .46s ease, transform .52s cubic-bezier(.22,1,.36,1), margin-top .52s ease!important;
    will-change:max-height,opacity,transform;
}
.timbjs-stage-item.is-open .timbjs-stage-destinations,
.timbjs-stage-item.has-destinations:hover .timbjs-stage-destinations,
.timbjs-stage-item.has-destinations:focus-within .timbjs-stage-destinations{
    max-height:720px!important;
}
.timbjs-stage-point-focus:hover,
.timbjs-stage-point-focus.is-active{
    border-color:transparent!important;
    box-shadow:none!important;
}


/* v1.0.31: subdestinos sin color de hover y pins agrupados con burbujas de días. */
.timbjs-stage-point-focus:hover,
.timbjs-stage-point-focus.is-active{
    background:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important;
    color:var(--timbjs-legend-button-text-hover,var(--timbjs-legend-button-text,#2b3442))!important;
}
.timbjs-marker-wrap{
    position:relative;
    width:82px;
    height:82px;
    display:block;
    pointer-events:none;
}
.timbjs-marker-wrap .timbjs-marker-pin{
    position:absolute;
    left:25px;
    top:18px;
    width:34px!important;
    height:34px!important;
}
.timbjs-marker-pin.is-grouped em{
    font-size:19px!important;
    font-weight:650!important;
    line-height:1!important;
    letter-spacing:0!important;
}
.timbjs-marker-day-bubbles{
    position:absolute;
    left:0;
    top:0;
    width:82px;
    height:82px;
    pointer-events:none;
    opacity:0;
    transform:scale(.72);
    transition:opacity .18s ease, transform .22s cubic-bezier(.22,1,.36,1);
}
.timbjs-marker-icon.is-active .timbjs-marker-day-bubbles{
    opacity:1;
    transform:scale(1);
}
.timbjs-marker-day-bubble{
    position:absolute;
    width:24px;
    height:24px;
    border-radius:999px;
    background:#fff;
    color:#2b3442;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:700;
    line-height:1;
    box-shadow:0 3px 9px rgba(15,23,42,.18);
    border:1px solid rgba(15,23,42,.10);
}
.timbjs-bubble-0{left:29px;top:0;}
.timbjs-bubble-1{left:58px;top:15px;}
.timbjs-bubble-2{left:58px;top:46px;}
.timbjs-bubble-3{left:29px;top:58px;}
.timbjs-bubble-4{left:0;top:46px;}
.timbjs-bubble-5{left:0;top:15px;}
.timbjs-bubble-6{left:29px;top:29px;}
.timbjs-marker-icon.is-active .timbjs-marker-pin.is-grouped{
    transform:rotate(-45deg) scale(1.08)!important;
}


/* v1.0.32: pins agrupados con + fino, burbujas más grandes, color heredado y despliegue circular. */
.timbjs-marker-icon.is-grouped .timbjs-marker-pin em{
    font-size:19px!important;
    font-weight:500!important;
    line-height:1!important;
    letter-spacing:0!important;
}
.timbjs-marker-wrap{
    width:116px!important;
    height:116px!important;
    pointer-events:auto!important;
}
.timbjs-marker-wrap .timbjs-marker-pin{
    left:41px!important;
    top:41px!important;
    width:36px!important;
    height:36px!important;
    z-index:2;
}
.timbjs-marker-day-bubbles{
    left:41px!important;
    top:41px!important;
    width:36px!important;
    height:36px!important;
    opacity:0;
    transform:none!important;
    transition:opacity .18s ease!important;
    pointer-events:none;
    z-index:3;
}
.timbjs-marker-icon:hover .timbjs-marker-day-bubbles,
.timbjs-marker-icon.is-active .timbjs-marker-day-bubbles{
    opacity:1;
    pointer-events:auto;
}
.timbjs-marker-day-bubble{
    left:0!important;
    top:0!important;
    width:32px!important;
    height:32px!important;
    color:#fff!important;
    font-size:13px!important;
    font-weight:600!important;
    border:0!important;
    box-shadow:0 4px 10px rgba(15,23,42,.22)!important;
    transform:translate(2px,2px) scale(.2);
    opacity:0;
    pointer-events:auto;
    transition:transform .36s cubic-bezier(.2,1.3,.32,1), opacity .18s ease;
}
.timbjs-marker-icon:hover .timbjs-marker-day-bubble,
.timbjs-marker-icon.is-active .timbjs-marker-day-bubble{
    opacity:1;
    transform:translate(calc(var(--timbjs-bubble-x,0px) + 2px), calc(var(--timbjs-bubble-y,0px) + 2px)) scale(1);
}
.timbjs-marker-day-bubble:hover{
    transform:translate(calc(var(--timbjs-bubble-x,0px) + 2px), calc(var(--timbjs-bubble-y,0px) + 2px)) scale(1.08)!important;
}


/* v1.0.38: mejora visual controlada — pulso suave solo en el pin activo/hover.
   No cambia encuadre, zoom, leyenda, ruta ni agrupaciones. */
.timbjs-marker-pin{
    position:relative!important;
    overflow:visible!important;
}
.timbjs-marker-icon.is-active .timbjs-marker-pin::after,
.timbjs-marker-icon:hover .timbjs-marker-pin::after{
    content:"";
    position:absolute;
    inset:-9px;
    border-radius:inherit;
    background:inherit;
    opacity:.22;
    z-index:-1;
    pointer-events:none;
    animation:timbjs-pin-soft-pulse 1.55s ease-out infinite;
}
@keyframes timbjs-pin-soft-pulse{
    0%{transform:scale(.72);opacity:.25;}
    70%{transform:scale(1.5);opacity:0;}
    100%{transform:scale(1.5);opacity:0;}
}
@media (prefers-reduced-motion: reduce){
    .timbjs-marker-icon.is-active .timbjs-marker-pin::after,
    .timbjs-marker-icon:hover .timbjs-marker-pin::after{
        animation:none!important;
        opacity:0!important;
    }
}


/* v1.0.39: mejora visual controlada — brillo sutil en la línea activa.
   No cambia grosor, punteado, curva, encuadre ni leyenda. */
.timbjs-route-line-active{
    opacity:1!important;
    filter:drop-shadow(0 0 3px rgba(47,111,94,.35));
    transition:filter .18s ease, opacity .18s ease;
}
@media (prefers-reduced-motion: reduce){
    .timbjs-route-line-active{
        filter:none!important;
    }
}


/* v1.0.40: durante el hover se atenúan los tramos no relacionados para dirigir la mirada. */
.timbjs-route-line-muted{
    opacity:.22!important;
    transition:opacity .18s ease, filter .18s ease;
}
.timbjs-route-line-active{
    opacity:1!important;
}


/* v1.0.42: botón discreto para volver a ver la ruta completa.
   Parte de v1.0.40: conserva resaltado de ruta y atenuación del resto; sin animación inicial. */
.timbjs-view-full-route{
    position:absolute;
    left:18px;
    bottom:18px;
    z-index:520;
    min-height:34px;
    padding:0 14px;
    border-radius:999px;
    border:1px solid rgba(25,36,54,.16);
    background:rgba(255,255,255,.92);
    color:#263241;
    font-family:inherit;
    font-size:13px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(15,23,42,.10);
    transition:background-color .18s ease, opacity .18s ease;
}
.timbjs-view-full-route:hover{
    background:#fff;
}
.timbjs-view-full-route:focus{
    outline:2px solid rgba(47,111,94,.28);
    outline-offset:2px;
}
@media (max-width:900px){
    .timbjs-view-full-route{
        left:14px;
        bottom:auto;
        top:14px;
        min-height:32px;
        font-size:12px;
        padding:0 12px;
    }
}


/* v1.0.43: corrección del botón Ver ruta completa. */
.timbjs-view-full-route,
.timbjs-view-full-route:visited,
.timbjs-view-full-route:hover,
.timbjs-view-full-route:active,
.timbjs-view-full-route:focus{
    color:#263241!important;
    text-decoration:none!important;
}
.timbjs-view-full-route{
    pointer-events:auto!important;
    user-select:none;
}
.timbjs-view-full-route:hover{
    background:#fff!important;
    border-color:rgba(25,36,54,.24)!important;
}


/* v1.0.44: ajuste del botón Ver ruta completa. */
.timbjs-view-full-route:hover,
.timbjs-view-full-route:focus{
    color:rgba(38,50,65,.72)!important;
}


/* v1.0.45: el botón restablece visuales y el texto pierde un poco de opacidad en hover. */
.timbjs-view-full-route:hover,
.timbjs-view-full-route:focus{
    color:rgba(38,50,65,.78)!important;
}


/* v1.0.46: garantía de restauración completa de opacidad/color en rutas. */
.timbjs-route-line-muted{
    opacity:.22!important;
}
.timbjs-route-line-active{
    opacity:1!important;
}


/* v1.0.47: el botón Ver ruta completa fuerza la restauración de opacidad de todas las rutas. */
.timbjs-route-line-active{
    opacity:1!important;
}
.timbjs-route-line-muted{
    opacity:.22!important;
}


/* v1.0.48: la ruta atenuada permanece hasta pulsar “Ver ruta completa”. */


/* v1.0.49: los círculos de pins agrupados representan subdestinos reales, incluso si repiten día/coordenadas.
   Cada círculo usa el color configurado en su propio subdestino. */


/* v1.0.50: área de interacción más precisa para pins agrupados.
   El hover del grupo solo se activa sobre el pin principal; las burbujas mantienen su propio hover individual. */
.timbjs-marker-wrap{
    pointer-events:none!important;
}
.timbjs-marker-wrap .timbjs-marker-pin{
    pointer-events:auto!important;
}
.timbjs-marker-day-bubbles{
    pointer-events:none!important;
}
.timbjs-marker-day-bubble{
    pointer-events:auto!important;
}
.timbjs-marker-icon.is-grouped:hover .timbjs-marker-day-bubbles,
.timbjs-marker-icon.is-grouped.is-active .timbjs-marker-day-bubbles{
    pointer-events:none!important;
}
.timbjs-marker-icon.is-grouped:hover .timbjs-marker-day-bubble,
.timbjs-marker-icon.is-grouped.is-active .timbjs-marker-day-bubble{
    pointer-events:auto!important;
}


/* v1.0.61: pins agrupados con todos los días en el mismo pin y sin círculos flotantes. */
.timbjs-marker-day-bubbles,
.timbjs-marker-day-bubble{
    display:none!important;
}
.timbjs-marker-wrap{
    width:104px!important;
    height:104px!important;
    pointer-events:auto!important;
}
.timbjs-marker-wrap .timbjs-marker-pin{
    color:var(--timbjs-pin-text,#fff)!important;
    box-shadow:var(--timbjs-pin-shadow,0 7px 16px rgba(0,0,0,.24))!important;
}
.timbjs-marker-pin{
    width:38px!important;
    height:38px!important;
}
.timbjs-marker-pin em{
    font-size:16px!important;
}
.timbjs-marker-pin.is-grouped{
    width:74px!important;
    height:74px!important;
    border-radius:50% 50% 50% 14px!important;
}
.timbjs-marker-pin.is-grouped em{
    max-width:56px!important;
    font-size:10px!important;
    line-height:1.1!important;
    font-weight:600!important;
    white-space:normal!important;
    text-align:center!important;
    word-break:break-word!important;
    letter-spacing:-.01em!important;
}
.timbjs-marker-icon.is-active .timbjs-marker-pin.is-grouped{
    transform:rotate(-45deg) scale(1.08)!important;
}


/* v1.0.62: mismo tamaño intermedio para todos los pins y días agrupados con guiones sin espacios. */
.timbjs-marker-wrap{
    width:100px!important;
    height:100px!important;
}
.timbjs-marker-pin{
    width:56px!important;
    height:56px!important;
    border-radius:50% 50% 50% 16px!important;
}
.timbjs-marker-pin em{
    font-size:15px!important;
}
.timbjs-marker-pin.is-grouped{
    width:56px!important;
    height:56px!important;
    border-radius:50% 50% 50% 16px!important;
}
.timbjs-marker-pin.is-grouped em{
    max-width:42px!important;
    font-size:10px!important;
    line-height:1.05!important;
    font-weight:600!important;
    white-space:normal!important;
    text-align:center!important;
    word-break:break-word!important;
    letter-spacing:-.02em!important;
}


/* v1.0.63: TODOS los pins del mapa tienen exactamente el mismo tamaño.
   Solo cambia el tamaño del texto interior cuando hay varios días, no el tamaño del pin. */
.timbjs-marker-wrap{
    width:100px !important;
    height:100px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin,
.timbjs-marker-wrap .timbjs-marker-pin.is-grouped,
.timbjs-marker-icon .timbjs-marker-pin,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped{
    width:60px !important;
    height:60px !important;
    min-width:60px !important;
    min-height:60px !important;
    max-width:60px !important;
    max-height:60px !important;
    border-radius:50% 50% 50% 16px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin em,
.timbjs-marker-icon .timbjs-marker-pin em{
    max-width:44px !important;
    text-align:center !important;
}

.timbjs-marker-wrap .timbjs-marker-pin:not(.is-grouped) em,
.timbjs-marker-icon .timbjs-marker-pin:not(.is-grouped) em{
    font-size:15px !important;
    line-height:1 !important;
    font-weight:600 !important;
    white-space:nowrap !important;
}

.timbjs-marker-wrap .timbjs-marker-pin.is-grouped em,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped em{
    font-size:10px !important;
    line-height:1.02 !important;
    font-weight:600 !important;
    white-space:normal !important;
    word-break:break-word !important;
    letter-spacing:-0.02em !important;
}


/* v1.0.64: pins un poco más pequeños y con acabado inferior en pico, no redondeado. */
.timbjs-marker-wrap{
    width:96px !important;
    height:96px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin,
.timbjs-marker-wrap .timbjs-marker-pin.is-grouped,
.timbjs-marker-icon .timbjs-marker-pin,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    max-width:54px !important;
    max-height:54px !important;
    border-radius:50% 50% 50% 0 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin em,
.timbjs-marker-icon .timbjs-marker-pin em{
    max-width:40px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin:not(.is-grouped) em,
.timbjs-marker-icon .timbjs-marker-pin:not(.is-grouped) em{
    font-size:14px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin.is-grouped em,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped em{
    font-size:9px !important;
    line-height:1.0 !important;
    max-width:40px !important;
}


/* v1.0.65: números menos gruesos y más legibles en pins agrupados.
   Se mantiene el mismo tamaño de pin y el salto de línea en agrupados. */
.timbjs-marker-wrap .timbjs-marker-pin em,
.timbjs-marker-icon .timbjs-marker-pin em{
    font-weight:500 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin:not(.is-grouped) em,
.timbjs-marker-icon .timbjs-marker-pin:not(.is-grouped) em{
    font-size:14px !important;
    line-height:1 !important;
    font-weight:500 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin.is-grouped em,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped em{
    font-size:11px !important;
    line-height:1.05 !important;
    font-weight:500 !important;
    max-width:42px !important;
    white-space:normal !important;
    word-break:break-word !important;
    text-align:center !important;
    letter-spacing:-0.01em !important;
}


/* v1.0.66: al hacer hover en mapa o leyenda, el pin destacado sube visualmente por encima del resto. */
.timbjs-marker-icon{
    transition:transform .16s ease;
}
.timbjs-marker-icon.timbjs-marker-raised{
    z-index: 999 !important;
}


/* v1.0.71: la ruta no se muestra al cargar. Solo se dibuja al hacer clic desde el día 1 hasta el punto elegido. */
.timbjs-route-line-muted{
    opacity:0!important;
}


/* v1.0.72: evita centrado en zoom inicial/inferior y reinicia la animación de ruta en cada clic. */
.timbjs-route-line-muted{
    opacity:0!important;
}


/* v1.0.73: el trazado usa el orden real de puntos/subdestinos: 1 -> 2 -> ... -> punto elegido. */
.timbjs-route-line-active{
    opacity:1!important;
}
.timbjs-route-line-muted{
    opacity:0!important;
}


/* v1.0.74: clic en día principal = ruta hasta primer subdestino; clic en subdestino = ruta hasta ese subdestino. */


/* v1.0.75: clic en subdestino concreto también dibuja la ruta desde el punto 1 hasta ese subdestino. */
.timbjs-route-line-active{
    opacity:1!important;
}
.timbjs-route-line-muted{
    opacity:0!important;
}


/* v1.0.76: cuando el usuario ha hecho zoom, la cámara sigue el trazado de la ruta sin cambiar el zoom. */


/* v1.0.77: seguimiento de ruta menos invasivo; el tooltip se oculta al hacer clic para ver el trazado. */


/* v1.0.78: durante el trazado, el seguimiento evita que los puntos queden bajo la leyenda. */


/* v1.0.79: en clic desde leyenda no centra el mapa si está en zoom inicial o inferior; la ruta sigue animándose. */


/* v1.0.80: Ver ruta completa recupera la vista general y después anima la ruta completa. */


/* v1.0.81: evita pausas en tramos nulos/cortos de pins con varios días en la misma ubicación. */


/* v1.0.82: pins ligeramente más pequeños, manteniendo todos el mismo tamaño. */
.timbjs-marker-wrap{
    width:88px !important;
    height:88px !important;
}

.timbjs-marker-wrap .timbjs-marker-pin,
.timbjs-marker-wrap .timbjs-marker-pin.is-grouped,
.timbjs-marker-icon .timbjs-marker-pin,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    max-width:48px !important;
    max-height:48px !important;
    border-radius:50% 50% 50% 0 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin em,
.timbjs-marker-icon .timbjs-marker-pin em{
    max-width:36px !important;
    font-weight:500 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin:not(.is-grouped) em,
.timbjs-marker-icon .timbjs-marker-pin:not(.is-grouped) em{
    font-size:13px !important;
    line-height:1 !important;
}

.timbjs-marker-wrap .timbjs-marker-pin.is-grouped em,
.timbjs-marker-icon .timbjs-marker-pin.is-grouped em{
    font-size:10px !important;
    line-height:1.02 !important;
    max-width:36px !important;
    white-space:normal !important;
    word-break:break-word !important;
    text-align:center !important;
    letter-spacing:-0.015em !important;
}


/* v1.0.83: al cargar la página, la ruta completa se anima automáticamente tras estabilizar el mapa. */


/* v1.0.84: desplazamiento del mapa más suave al cambiar de hover entre puntos/leyenda. */


/* v1.0.85: desplazamiento por hover más pausado y con pequeño retardo para evitar mareo al pasar rápido por la leyenda. */


/* v1.0.86: tooltip de leyenda sincronizado con el desplazamiento suave del mapa en zoom ampliado. */


/* v1.0.87: compatibilidad con previsualización dinámica en Elementor. */
.elementor-editor-active .timbjs-map-shell .timbjs-map-canvas,
.elementor-editor-preview .timbjs-map-shell .timbjs-map-canvas{
    min-height:var(--timbjs-map-height, 720px);
}


/* v1.0.88: inicialización robusta en editor Elementor / preview dinámico. */
.elementor-editor-active .timbjs-map-canvas,
.elementor-editor-preview .timbjs-map-canvas{
    min-height:var(--timbjs-map-height,720px)!important;
}


/* v1.0.99: separador configurable del panel del mapa y zoom a la derecha si la leyenda está a la izquierda. */
.timbjs-map-panel-header{
    border-bottom:var(--timbjs-map-separator-width, 1px) solid var(--timbjs-map-separator-color, #d7dbe0)!important;
}
.timbjs-map-shell.timbjs-panel-left .leaflet-left.leaflet-top{
    left:auto!important;
    right:10px!important;
}


/* v1.0.103: estilos compartidos de información general en mapa. */
.timbjs-map-panel-header .timbjs-map-panel-duration{
    margin:4px 0 0!important;
    font-family:var(--timbjs-general-duration-family, inherit)!important;
    font-size:var(--timbjs-general-duration-size, 13px)!important;
    font-weight:var(--timbjs-general-duration-weight, 700)!important;
    color:var(--timbjs-general-duration-color, var(--timbjs-primary))!important;
    line-height:1.35!important;
}
.timbjs-map-panel-header .timbjs-map-panel-summary{
    margin:14px 0 0!important;
    font-family:var(--timbjs-general-summary-family, inherit)!important;
    font-size:var(--timbjs-general-summary-size, 15px)!important;
    font-weight:var(--timbjs-general-summary-weight, 400)!important;
    color:var(--timbjs-general-summary-color, var(--timbjs-description-color))!important;
    line-height:1.5!important;
}


/* v1.0.104: estilos compartidos de título de información general en mapa. */
.timbjs-map-panel-header h3{
    font-family:var(--timbjs-general-title-family, inherit)!important;
    font-size:var(--timbjs-general-title-size, 24px)!important;
    font-weight:var(--timbjs-general-title-weight, 650)!important;
    color:var(--timbjs-general-title-color, var(--timbjs-title-color))!important;
}


/* v1.0.127: pines más pequeños, especialmente en móvil, manteniendo legibles los días agrupados. */
.timbjs-marker-icon{
    width:82px!important;
    height:82px!important;
}

.timbjs-marker-wrap{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:82px!important;
    height:82px!important;
}

.timbjs-marker-pin{
    width:28px!important;
    height:28px!important;
    border-radius:50% 50% 50% 9px!important;
    box-shadow:var(--timbjs-pin-shadow,0 5px 11px rgba(0,0,0,.22))!important;
}

.timbjs-marker-pin em{
    width:24px!important;
    min-width:24px!important;
    height:24px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:column!important;
    gap:0!important;
    text-align:center!important;
    color:var(--timbjs-pin-text,#ffffff)!important;
    font-size:13px!important;
    line-height:.92!important;
    font-weight:600!important;
    letter-spacing:-.03em!important;
    white-space:normal!important;
}

.timbjs-marker-pin em span{
    display:block!important;
    line-height:.92!important;
}

.timbjs-marker-pin.is-range em{
    font-size:10px!important;
    font-weight:600!important;
    letter-spacing:-.06em!important;
}

.timbjs-marker-pin.is-long em{
    font-size:8.5px!important;
    font-weight:600!important;
    letter-spacing:-.08em!important;
    line-height:.9!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.08)!important;
    box-shadow:var(--timbjs-pin-shadow,0 7px 15px rgba(0,0,0,.26))!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:72px!important;
        height:72px!important;
    }

    .timbjs-marker-wrap{
        width:72px!important;
        height:72px!important;
    }

    .timbjs-marker-pin{
        width:24px!important;
        height:24px!important;
        border-radius:50% 50% 50% 8px!important;
    }

    .timbjs-marker-pin em{
        width:21px!important;
        min-width:21px!important;
        height:21px!important;
        font-size:11px!important;
        line-height:.9!important;
    }

    .timbjs-marker-pin.is-range em{
        font-size:8.5px!important;
        letter-spacing:-.08em!important;
    }

    .timbjs-marker-pin.is-long em{
        font-size:7.2px!important;
        letter-spacing:-.09em!important;
        line-height:.88!important;
    }

    .timbjs-marker-icon.is-active .timbjs-marker-pin{
        transform:rotate(-45deg) scale(1.06)!important;
    }
}


/* v1.0.128: pines realmente pequeños; días agrupados en etiqueta lateral. */
.timbjs-marker-icon{
    width:104px!important;
    height:42px!important;
}

.timbjs-marker-wrap{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
    width:104px!important;
    height:42px!important;
    pointer-events:auto!important;
}

.timbjs-marker-pin{
    flex:0 0 auto!important;
    width:22px!important;
    height:22px!important;
    border-radius:50% 50% 50% 7px!important;
    box-shadow:var(--timbjs-pin-shadow,0 4px 9px rgba(0,0,0,.22))!important;
}

.timbjs-marker-pin em{
    width:20px!important;
    min-width:20px!important;
    height:20px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    color:var(--timbjs-pin-text,#ffffff)!important;
    font-size:11px!important;
    line-height:1!important;
    font-weight:650!important;
    letter-spacing:-.05em!important;
    white-space:nowrap!important;
}

.timbjs-marker-pin.is-two-digit em,
.timbjs-marker-pin.is-range em{
    font-size:10px!important;
    letter-spacing:-.07em!important;
}

.timbjs-marker-extra{
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    max-width:74px!important;
    height:22px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    color:var(--timbjs-pin-text,#ffffff)!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:650!important;
    letter-spacing:-.04em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    box-shadow:var(--timbjs-pin-shadow,0 4px 9px rgba(0,0,0,.18))!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.08)!important;
    box-shadow:var(--timbjs-pin-shadow,0 6px 13px rgba(0,0,0,.26))!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-extra{
    transform:scale(1.04)!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:92px!important;
        height:36px!important;
    }

    .timbjs-marker-wrap{
        width:92px!important;
        height:36px!important;
        gap:5px!important;
    }

    .timbjs-marker-pin{
        width:18px!important;
        height:18px!important;
        border-radius:50% 50% 50% 6px!important;
    }

    .timbjs-marker-pin em{
        width:17px!important;
        min-width:17px!important;
        height:17px!important;
        font-size:9.5px!important;
        letter-spacing:-.07em!important;
    }

    .timbjs-marker-pin.is-two-digit em,
    .timbjs-marker-pin.is-range em{
        font-size:8.2px!important;
        letter-spacing:-.08em!important;
    }

    .timbjs-marker-extra{
        height:18px!important;
        max-width:66px!important;
        padding:0 6px!important;
        font-size:8.4px!important;
        letter-spacing:-.06em!important;
    }

    .timbjs-marker-icon.is-active .timbjs-marker-pin{
        transform:rotate(-45deg) scale(1.06)!important;
    }

    .timbjs-marker-icon.is-active .timbjs-marker-extra{
        transform:scale(1.03)!important;
    }
}


/* v1.0.129: prueba de tamaño solicitada: números 14px y pin a la mitad. */
.timbjs-marker-icon{
    width:88px!important;
    height:30px!important;
}

.timbjs-marker-wrap{
    width:88px!important;
    height:30px!important;
    gap:5px!important;
}

.timbjs-marker-pin{
    width:16px!important;
    height:16px!important;
    border-radius:50% 50% 50% 5px!important;
    box-shadow:var(--timbjs-pin-shadow,0 3px 7px rgba(0,0,0,.20))!important;
}

.timbjs-marker-pin em,
.timbjs-marker-pin.is-two-digit em,
.timbjs-marker-pin.is-range em,
.timbjs-marker-pin.is-long em{
    width:16px!important;
    min-width:16px!important;
    height:16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-.08em!important;
    white-space:nowrap!important;
    color:var(--timbjs-pin-text,#ffffff)!important;
}

.timbjs-marker-extra{
    height:16px!important;
    max-width:70px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-.08em!important;
    color:var(--timbjs-pin-text,#ffffff)!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.06)!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-extra{
    transform:scale(1.02)!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:88px!important;
        height:30px!important;
    }

    .timbjs-marker-wrap{
        width:88px!important;
        height:30px!important;
        gap:5px!important;
    }

    .timbjs-marker-pin{
        width:16px!important;
        height:16px!important;
        border-radius:50% 50% 50% 5px!important;
    }

    .timbjs-marker-pin em,
    .timbjs-marker-pin.is-two-digit em,
    .timbjs-marker-pin.is-range em,
    .timbjs-marker-pin.is-long em{
        width:16px!important;
        min-width:16px!important;
        height:16px!important;
        font-size:14px!important;
        line-height:1!important;
    }

    .timbjs-marker-extra{
        height:16px!important;
        max-width:70px!important;
        padding:0 5px!important;
        font-size:14px!important;
        line-height:1!important;
    }
}


/* v1.0.130: corrección exacta: pin 24x24 y TODOS los números a 14px. */
.timbjs-marker-icon{
    width:96px!important;
    height:34px!important;
}

.timbjs-marker-wrap{
    width:96px!important;
    height:34px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
}

.timbjs-marker-pin,
.timbjs-marker-pin.is-range,
.timbjs-marker-pin.is-long,
.timbjs-marker-pin.is-grouped,
.timbjs-marker-pin.is-two-digit{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    min-height:24px!important;
    max-width:24px!important;
    max-height:24px!important;
    flex:0 0 24px!important;
    border-radius:50% 50% 50% 8px!important;
}

.timbjs-marker-pin em,
.timbjs-marker-pin.is-range em,
.timbjs-marker-pin.is-long em,
.timbjs-marker-pin.is-grouped em,
.timbjs-marker-pin.is-two-digit em,
.timbjs-marker-pin em span{
    width:24px!important;
    min-width:24px!important;
    height:24px!important;
    min-height:24px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.06em!important;
    white-space:nowrap!important;
}

.timbjs-marker-extra{
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.06em!important;
    white-space:nowrap!important;
}

/* Mismo tamaño también en móvil: no se reduce ni se agranda. */
@media (max-width:900px){
    .timbjs-marker-icon{
        width:96px!important;
        height:34px!important;
    }

    .timbjs-marker-wrap{
        width:96px!important;
        height:34px!important;
        gap:6px!important;
    }

    .timbjs-marker-pin,
    .timbjs-marker-pin.is-range,
    .timbjs-marker-pin.is-long,
    .timbjs-marker-pin.is-grouped,
    .timbjs-marker-pin.is-two-digit{
        width:24px!important;
        height:24px!important;
        min-width:24px!important;
        min-height:24px!important;
        max-width:24px!important;
        max-height:24px!important;
        flex:0 0 24px!important;
    }

    .timbjs-marker-pin em,
    .timbjs-marker-pin.is-range em,
    .timbjs-marker-pin.is-long em,
    .timbjs-marker-pin.is-grouped em,
    .timbjs-marker-pin.is-two-digit em,
    .timbjs-marker-pin em span{
        width:24px!important;
        min-width:24px!important;
        height:24px!important;
        min-height:24px!important;
        font-size:14px!important;
        line-height:1!important;
    }

    .timbjs-marker-extra{
        height:24px!important;
        min-height:24px!important;
        max-height:24px!important;
        font-size:14px!important;
        line-height:1!important;
    }
}


/* v1.0.131: refuerzo final pin 24px y números 14px. */
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    min-height:24px!important;
    max-width:24px!important;
    max-height:24px!important;
    flex:0 0 24px!important;
    box-sizing:border-box!important;
}

.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    min-height:24px!important;
    max-width:24px!important;
    max-height:24px!important;
    font-size:14px!important;
    line-height:1!important;
    box-sizing:border-box!important;
}


/* v1.0.132: pin 32x32 y todos los números a 14px. */
.timbjs-marker-icon{
    width:112px!important;
    height:44px!important;
}

.timbjs-marker-wrap{
    width:112px!important;
    height:44px!important;
    gap:7px!important;
}

.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin,
.timbjs-marker-pin,
.timbjs-marker-pin.is-range,
.timbjs-marker-pin.is-long,
.timbjs-marker-pin.is-grouped,
.timbjs-marker-pin.is-two-digit{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    flex:0 0 32px!important;
    border-radius:50% 50% 50% 10px!important;
    box-sizing:border-box!important;
}

.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em,
.timbjs-marker-pin em,
.timbjs-marker-pin.is-range em,
.timbjs-marker-pin.is-long em,
.timbjs-marker-pin.is-grouped em,
.timbjs-marker-pin.is-two-digit em,
.timbjs-marker-pin em span{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.04em!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
}

.timbjs-marker-extra{
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.04em!important;
    white-space:nowrap!important;
}

/* Mismo tamaño también en móvil. */
@media (max-width:900px){
    .timbjs-marker-icon{
        width:112px!important;
        height:44px!important;
    }

    .timbjs-marker-wrap{
        width:112px!important;
        height:44px!important;
        gap:7px!important;
    }

    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin,
    .timbjs-marker-pin,
    .timbjs-marker-pin.is-range,
    .timbjs-marker-pin.is-long,
    .timbjs-marker-pin.is-grouped,
    .timbjs-marker-pin.is-two-digit{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        flex:0 0 32px!important;
    }

    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em,
    .timbjs-marker-pin em,
    .timbjs-marker-pin.is-range em,
    .timbjs-marker-pin.is-long em,
    .timbjs-marker-pin.is-grouped em,
    .timbjs-marker-pin.is-two-digit em,
    .timbjs-marker-pin em span{
        width:32px!important;
        min-width:32px!important;
        height:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
    }

    .timbjs-marker-extra{
        height:32px!important;
        min-height:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
    }
}


/* v1.0.133: recuperar pico del pin y alinear el vértice con las líneas. */
.timbjs-marker-pin,
.timbjs-marker-pin.is-range,
.timbjs-marker-pin.is-long,
.timbjs-marker-pin.is-grouped,
.timbjs-marker-pin.is-two-digit,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
    border-radius:50% 50% 50% 0!important;
    transform:rotate(-45deg)!important;
    transform-origin:50% 50%!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.06)!important;
}

@media (max-width:900px){
    .timbjs-marker-pin,
    .timbjs-marker-pin.is-range,
    .timbjs-marker-pin.is-long,
    .timbjs-marker-pin.is-grouped,
    .timbjs-marker-pin.is-two-digit,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
        border-radius:50% 50% 50% 0!important;
        transform:rotate(-45deg)!important;
        transform-origin:50% 50%!important;
    }

    .timbjs-marker-icon.is-active .timbjs-marker-pin{
        transform:rotate(-45deg) scale(1.06)!important;
    }
}


/* v1.0.134: alinear el vértice real del pin con la coordenada Leaflet. */
.timbjs-marker-icon{
    width:112px!important;
    height:48px!important;
    overflow:visible!important;
}

.timbjs-marker-wrap{
    width:112px!important;
    height:48px!important;
    overflow:visible!important;
    align-items:flex-start!important;
    padding-top:4px!important;
    box-sizing:border-box!important;
}

.timbjs-marker-pin,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    flex:0 0 32px!important;
    border-radius:50% 50% 50% 0!important;
    transform:rotate(-45deg)!important;
    transform-origin:50% 50%!important;
}

.timbjs-marker-pin em,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    font-size:14px!important;
    line-height:1!important;
}

.timbjs-marker-extra{
    margin-top:4px!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:112px!important;
        height:48px!important;
        overflow:visible!important;
    }

    .timbjs-marker-wrap{
        width:112px!important;
        height:48px!important;
        overflow:visible!important;
        align-items:flex-start!important;
        padding-top:4px!important;
        box-sizing:border-box!important;
    }

    .timbjs-marker-pin,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        flex:0 0 32px!important;
        border-radius:50% 50% 50% 0!important;
        transform:rotate(-45deg)!important;
        transform-origin:50% 50%!important;
    }

    .timbjs-marker-pin em,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
    }

    .timbjs-marker-extra{
        margin-top:4px!important;
    }
}


/* v1.0.135: anclaje estable. El pico del pin 32x32 cae exactamente en la coordenada real. */
.timbjs-marker-icon{
    width:104px!important;
    height:104px!important;
    overflow:visible!important;
}

.timbjs-marker-wrap{
    position:relative!important;
    display:block!important;
    width:104px!important;
    height:104px!important;
    overflow:visible!important;
    padding:0!important;
    box-sizing:border-box!important;
}

.timbjs-marker-pin,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
    position:absolute!important;
    left:36px!important;
    top:43px!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    flex:none!important;
    border-radius:50% 50% 50% 0!important;
    transform:rotate(-45deg)!important;
    transform-origin:50% 50%!important;
    box-sizing:border-box!important;
}

.timbjs-marker-pin em,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.04em!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
}

.timbjs-marker-extra{
    position:absolute!important;
    left:72px!important;
    top:47px!important;
    height:32px!important;
    min-height:32px!important;
    max-height:32px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.04em!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
    margin:0!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.06)!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-extra{
    transform:scale(1.02)!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:104px!important;
        height:104px!important;
        overflow:visible!important;
    }

    .timbjs-marker-wrap{
        width:104px!important;
        height:104px!important;
        overflow:visible!important;
        padding:0!important;
    }

    .timbjs-marker-pin,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
        position:absolute!important;
        left:36px!important;
        top:43px!important;
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        border-radius:50% 50% 50% 0!important;
        transform:rotate(-45deg)!important;
        transform-origin:50% 50%!important;
    }

    .timbjs-marker-pin em,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
    }

    .timbjs-marker-extra{
        position:absolute!important;
        left:72px!important;
        top:47px!important;
        height:32px!important;
        min-height:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
        margin:0!important;
    }
}


/* v1.0.136: eliminar etiquetas laterales; solo pins. */
.timbjs-marker-extra{
    display:none!important;
}

.timbjs-marker-wrap{
    justify-content:center!important;
}

.timbjs-marker-pin em,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    font-size:14px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
}


/* v1.0.138: área real de hover ajustada al pin, no al contenedor antiguo. */
.timbjs-marker-icon{
    width:32px!important;
    height:40px!important;
    overflow:visible!important;
}

.timbjs-marker-wrap{
    position:relative!important;
    display:block!important;
    width:32px!important;
    height:40px!important;
    overflow:visible!important;
    padding:0!important;
    margin:0!important;
    box-sizing:border-box!important;
}

.timbjs-marker-pin,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
    position:absolute!important;
    left:0!important;
    top:0!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    flex:none!important;
    border-radius:50% 50% 50% 0!important;
    transform:rotate(-45deg)!important;
    transform-origin:50% 50%!important;
    box-sizing:border-box!important;
}

.timbjs-marker-pin em,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    max-width:32px!important;
    max-height:32px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:600!important;
    letter-spacing:-0.04em!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
}

/* Ya no hay etiqueta lateral. */
.timbjs-marker-extra{
    display:none!important;
}

.timbjs-marker-icon.is-active .timbjs-marker-pin{
    transform:rotate(-45deg) scale(1.06)!important;
}

@media (max-width:900px){
    .timbjs-marker-icon{
        width:32px!important;
        height:40px!important;
        overflow:visible!important;
    }

    .timbjs-marker-wrap{
        width:32px!important;
        height:40px!important;
        overflow:visible!important;
        padding:0!important;
        margin:0!important;
    }

    .timbjs-marker-pin,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin{
        position:absolute!important;
        left:0!important;
        top:0!important;
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        border-radius:50% 50% 50% 0!important;
        transform:rotate(-45deg)!important;
        transform-origin:50% 50%!important;
    }

    .timbjs-marker-pin em,
    .timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
        min-height:32px!important;
        max-width:32px!important;
        max-height:32px!important;
        font-size:14px!important;
        line-height:1!important;
    }
}


/* v1.0.145: mapa más limpio — pines por parada física y línea menos agresiva. */
.timbjs-marker-pin em,
.timbjs-map-shell .timbjs-marker-icon .timbjs-marker-pin > em{
    font-size:14px!important;
    line-height:1!important;
}

.timbjs-route-line-active{
    filter:drop-shadow(0 0 2px rgba(47,111,94,.22))!important;
}


/* v1.0.163: responsive tipo bottom sheet para mapa. */
.timbjs-map-mobile-panel-toggle{
    display:none;
    width:100%;
    border:0;
    background:transparent;
    color:var(--timbjs-title-color,#2d3848);
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    padding:0 0 12px;
    margin:0;
    cursor:pointer;
    font-family:var(--timbjs-button-font-family,inherit);
    font-size:14px;
    font-weight:700;
    line-height:1;
}
.timbjs-map-mobile-panel-handle{
    display:block;
    width:44px;
    height:5px;
    border-radius:999px;
    background:rgba(38,50,65,.22);
}
.timbjs-map-mobile-panel-label{
    display:block;
}


/* v1.0.164: en responsive el mapa aprovecha todo el ancho/alto de pantalla, sin márgenes ni bordes redondeados. */
@media (max-width:900px){
    .timbjs-map-shell{
        border-radius:0!important;
        box-shadow:none!important;
    }
}


/* v1.0.166: responsive del mapa a ancho completo real, respetando el flujo vertical de la página. */
@media (max-width:900px){
    .timbjs-map-shell{
        border-radius:0!important;
        box-shadow:none!important;
    }
    .timbjs-map-shell .timbjs-map-canvas{
        border-radius:0!important;
    }
}




/* v1.0.168: ajuste visual del tirador/botón móvil de etapas y tipografías responsive de información general. */
.timbjs-map-mobile-panel-toggle,
.timbjs-map-mobile-panel-toggle:hover,
.timbjs-map-mobile-panel-toggle:active,
.timbjs-map-mobile-panel-toggle:focus,
.timbjs-map-mobile-panel-toggle:focus-visible{
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:var(--timbjs-title-color,#2d3848)!important;
    outline:none!important;
    text-decoration:none!important;
}
.timbjs-map-mobile-panel-toggle{
    font-weight:500!important;
    padding:0 0 18px!important;
    margin:0 0 8px!important;
}
.timbjs-map-mobile-panel-toggle:focus-visible .timbjs-map-mobile-panel-handle{
    background:rgba(38,50,65,.34)!important;
}
.timbjs-map-mobile-panel-label{
    font-weight:500!important;
}
@media (max-width:900px){
    .timbjs-map-panel-header{
        margin-top:4px!important;
    }
}


/* v1.0.169: en responsive los subdestinos deben verse en la leyenda y el tooltip no depende de hover. */
@media (max-width:900px){
    .timbjs-stage-item.has-destinations .timbjs-stage-destinations{
        display:flex!important;
        max-height:none!important;
        opacity:1!important;
        overflow:visible!important;
        pointer-events:auto!important;
        transform:none!important;
        margin-top:8px!important;
    }
}


/* v1.0.173: tirador inferior más fino y separado del texto. */
.timbjs-map-mobile-panel-toggle{
    gap:10px!important;
}

.timbjs-map-mobile-panel-handle{
    width:42px!important;
    height:3px!important;
    opacity:.85!important;
}


/* v1.0.179: el mapa conserva el full-bleed de su propio wrapper, sin modificar padding de Elementor. */
.timbjs-map-shell{
    box-sizing:border-box;
}
