.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}
/* override entrekids: galeria de ficha en mobile. El slide tomaba el ancho natural de la imagen (la regla del bundle .splide__slide img{width:100%;height:100%} + el ancho expandido) y salia gigante/recortada. Acotamos al viewport y dejamos la imagen en proporcion natural. Scope .actividad-splide-img -> solo la galeria del detalle, no banners. */
@media (max-width:768px){.actividad-splide-img,.actividad-splide-img .splide__track{max-height:60vh}.actividad-splide-img .splide__list,.actividad-splide-img .splide__slide{width:100%!important;max-width:100%!important}.actividad-splide-img .splide__slide img{width:100%!important;height:auto!important;max-height:60vh;object-fit:contain}}
/* override entrekids: banner slider (.p-splide). Antes estos markets no cargaban el CSS de Splide y la imagen del banner se dibujaba en su proporcion natural del recorte (crop_1682_506 desktop / crop_579_621 mobile). Al cargar Splide 4.1.4, .splide__list{height:100%} + el h-full del slide + width/height=100% del <img> fuerzan height:100% y deforman las dimensiones. Volvemos a proporcion natural (width 100%, height auto). Scope .p-splide__slide img.align-bottom = solo la imagen de banner (los iconos/calugas de otros .p-splide__slide usan w-full sin align-bottom). */
.p-splide__slide img.align-bottom{width:100%!important;height:auto!important}
/* override entrekids: galeria de ficha en DESKTOP (>=769px). El .splide__list de la galeria NO trae w-full (los banners si), entonces la lista flex toma el ancho max-content = suma de los anchos naturales de las fotos (~4050px con varias fotos) y Splide pone cada slide en calc(100%) de ese ancho enorme: la <img width:100%> sale a 4050px, desborda el track de 395px y el overflow:hidden la recorta (se ve un crop con zoom). Con una sola foto el max-content es chico y no se nota. El override mobile (regla de arriba, max-width:768px) ya restringe list/slide a width:100%; aca replicamos esa restriccion para desktop + object-fit:contain para mantener proporcion sin distorsion ni recorte (validado: lista 4050->395px, img 4050x2700->395x264, ratio 1.5 intacto). */
@media (min-width:769px){.actividad-splide-img .splide__list,.actividad-splide-img .splide__slide{width:100%!important;max-width:100%!important}.actividad-splide-img .splide__slide img{width:100%!important;height:auto!important;object-fit:contain}}
/* override entrekids: banner slider, altura del contenedor. El fix de arriba dejo la imagen en proporcion natural, pero el track/list/slide seguian con height=viewport: body,html{height:100%} fija el body al viewport y .splide__list{height:100%} + el h-full del slide + el align-items:stretch del flex propagan esa altura hasta el track. Quedaba un hueco crema bajo la imagen y las flechas (top:50%) caian a la mitad de ese alto. Colapsamos track/list/slide a la altura del contenido (la imagen) y dejamos el slide sin estirar. Scope :has(img.align-bottom) = solo el banner: track/list son .splide__ genericos compartidos con otros carruseles (categorias, galeria), pero solo el banner tiene img.align-bottom. Validado en desktop (1440) y mobile (390) sobre prod. */
.splide__track:has(img.align-bottom){height:auto!important}.splide__list:has(img.align-bottom){height:auto!important;align-items:flex-start!important}.splide__slide:has(img.align-bottom){height:auto!important;align-self:flex-start!important}.splide__slide:has(img.align-bottom)>a{height:auto!important;display:block!important}
/* override entrekids: slider principal (.p-splide = banner + galeria de ficha, en todos los markets). Tras cargar Splide 4.1.4 (DESPUES del CSS de cada market) reaparecen las flechas y el .splide__pagination queda con left:0, pero el transform:translateX(-50%) que el CSS de market usaba con left:50% sigue aplicado -> los dots se corren al borde izquierdo. Ocultamos las flechas del slider principal y re-centramos la paginacion (caja full-width + justify-center + transform:none). NO seteamos display: si Splide la oculta (ficha de 1 slide, regla :not(.is-overflow)) sigue oculta, sin dot solitario; NO tocamos position/bottom: la vertical no se mueve. Scope .p-splide = solo el slider principal, no los carruseles .splide de categorias/productos. */
.p-splide .splide__arrows{display:none!important}
.p-splide .splide__pagination{justify-content:center!important;left:0!important;right:0!important;width:100%!important;transform:none!important;padding-left:0!important;padding-right:0!important}