/* Twilight Mini Slider v4.1 */

/* Fila administrada por el plugin. Usa: [twilight_mini_slider_row ids="123,124,125"] */
.tms-row{
    --tms-row-gap:20px;
    --tms-row-columns:3;
    --tms-row-tablet-columns:2;
    --tms-row-mobile-columns:1;
    display:grid!important;
    grid-template-columns:repeat(var(--tms-row-columns),minmax(0,1fr))!important;
    gap:var(--tms-row-gap)!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    align-items:stretch;
}

/* Cada slider individual conserva su ancho configurable fuera de una fila */
.tms-slider-wrap{
    width:var(--tms-width,33.333%);
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
}

/* Dentro de .tms-row el grid controla el ancho; esto evita conflictos con Elementor/tema */
.tms-row > .tms-slider-wrap{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
}

.tms-slider{position:relative;width:100%;height:var(--tms-height,460px);overflow:hidden;border-radius:var(--tms-radius,0);background:#111;isolation:isolate}
.tms-track,.tms-slide{position:absolute;inset:0}
.tms-slide{opacity:0;visibility:hidden;transform:translateX(5%);transition:opacity .65s ease,transform .65s ease,visibility .65s;pointer-events:none;overflow:hidden;outline:none}
.tms-slide.is-active{opacity:1;visibility:visible;transform:translateX(0);pointer-events:auto;z-index:2}
.tms-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center center!important;display:block!important;transition:transform .65s ease}
.tms-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(0,0,0,0) 40%,rgba(0,0,0,.08) 62%,rgba(0,0,0,.72) 100%);transition:opacity .35s ease}
.tms-base-content{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:clamp(18px,3vw,34px);padding-right:clamp(52px,6vw,82px);transition:opacity .32s ease,transform .32s ease}
.tms-title{margin:0;color:var(--tms-title-color,#fff) !important;font-size:clamp(12px,5vw,27px);line-height:1.08;font-weight:300;text-shadow:0 2px 16px rgba(0,0,0,.3)}
.tms-hover-overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:flex-end;background:var(--tms-hover-bg,rgba(0,0,0,.72));opacity:0;visibility:hidden;transition:opacity .38s ease,visibility .38s ease;padding:clamp(22px,3vw,36px);box-sizing:border-box}
.tms-hover-content{width:100%;max-width:760px;transform:translateY(18px);opacity:0;transition:transform .42s ease,opacity .42s ease}
.tms-hover-title{display:none!important}
.tms-desc{color:var(--tms-desc-color,#fff);font-size:clamp(15px,1.45vw,21px);line-height:1.42;font-weight:500;max-width:30ch;text-shadow:0 2px 12px rgba(0,0,0,.18)}
.tms-more{display:inline-flex;align-items:center;justify-content:center;margin-top:18px;padding:10px 17px;border:1px solid currentColor;border-radius:999px;background:var(--tms-button-bg,rgba(255,255,255,.16));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--tms-button-color,#fff)!important;text-decoration:none!important;font:inherit;font-size:14px;cursor:pointer;transition:transform .2s ease,filter .2s ease}
.tms-more:hover{filter:brightness(1.12);transform:translateY(-1px)}
.tms-slide.is-active:hover .tms-hover-overlay,.tms-slide.is-active:focus .tms-hover-overlay,.tms-slide.is-active:focus-within .tms-hover-overlay{opacity:1;visibility:visible}
.tms-slide.is-active:hover .tms-hover-content,.tms-slide.is-active:focus .tms-hover-content,.tms-slide.is-active:focus-within .tms-hover-content{transform:translateY(0);opacity:1}
.tms-slide.is-active:hover .tms-base-content,.tms-slide.is-active:focus .tms-base-content,.tms-slide.is-active:focus-within .tms-base-content{opacity:0;transform:translateY(10px)}
.tms-slide.is-active:hover .tms-shade,.tms-slide.is-active:focus .tms-shade,.tms-slide.is-active:focus-within .tms-shade{opacity:0}
.tms-slide.is-active:hover .tms-image,.tms-slide.is-active:focus .tms-image,.tms-slide.is-active:focus-within .tms-image{transform:scale(1.025)}
.tms-arrow{position:absolute;top:50%;z-index:8;width:42px;height:42px;border:0;border-radius:50%;transform:translateY(-50%);background:rgba(0,0,0,.28);color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:.2s}
.tms-arrow:hover{background:rgba(0,0,0,.55)}
.tms-prev{left:14px}.tms-next{right:14px}
.tms-dots{position:absolute;z-index:8;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:7px}
.tms-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer}.tms-dot.is-active{background:#fff;transform:scale(1.25)}

@media(max-width:1024px){
    .tms-slider-wrap{width:var(--tms-tablet-width,50%)}
    .tms-row{grid-template-columns:repeat(var(--tms-row-tablet-columns),minmax(0,1fr))!important}
    .tms-row > .tms-slider-wrap{width:100%!important;max-width:100%!important}
}

@media(max-width:640px){
    .tms-slider-wrap{width:var(--tms-mobile-width,100%)}
    .tms-row{grid-template-columns:repeat(var(--tms-row-mobile-columns),minmax(0,1fr))!important}
    .tms-row > .tms-slider-wrap{width:100%!important;max-width:100%!important}
    .tms-slider{height:max(380px,min(var(--tms-height,460px),70vh))}
    .tms-base-content,.tms-hover-overlay{padding:24px 24px 36px}
    .tms-desc{max-width:100%}
    .tms-arrow{width:36px;height:36px;font-size:18px}
    .tms-prev{left:8px}.tms-next{right:8px}.tms-dots{bottom:10px}
}

@media(hover:none),(pointer:coarse){

    .tms-slide.is-active .tms-hover-overlay{
        opacity:0;
        visibility:hidden;
    }

    .tms-slide.is-active .tms-hover-content{
        transform:translateY(18px);
        opacity:0;
    }

    .tms-slide.is-active .tms-base-content{
        opacity:1;
        transform:none;
    }

    .tms-slide.is-active .tms-shade{
        opacity:1;
    }

    .tms-slide.is-active .tms-image{
        transform:none;
    }
}

@media(prefers-reduced-motion:reduce){.tms-slide,.tms-image,.tms-hover-overlay,.tms-hover-content,.tms-base-content,.tms-more,.tms-arrow{transition:none}}
