
.pagina-carrusel{
    position:relative;
    width:100%;
    height:var(--carrusel-alto,520px);
    overflow:hidden;
    box-sizing:border-box;
    font-family:var(--carrusel-tipografia,inherit);
}
.pagina-carrusel-pista{
    display:flex;
    width:100%;
    height:100%;
    transition:transform .55s ease;
    will-change:transform;
}
.pagina-carrusel-item{
    position:relative;
    flex:0 0 100%;
    min-width:100%;
    width:100%;
    height:100%;
    margin:0;
    overflow:hidden;
    box-sizing:border-box;
    font-family:inherit;
}
.pagina-carrusel-item>img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.pagina-carrusel-hero_infinito{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
}
.pagina-carrusel-hero_infinito .pagina-carrusel-item::after{
    content:"";
    position:absolute;
    inset:0;
    background:transparent;
    pointer-events:none;
}
.pagina-carrusel-hero_infinito .pagina-carrusel-contenido{
    position:absolute;
    inset:auto 8% 11%;
    z-index:2;
    left:50%;
    transform:translateX(-50%);
    width:min(84%,760px);
    color:inherit;
    text-align:center;
    font-family:inherit;
}
.pagina-carrusel-contenido h3,
.pagina-carrusel-contenido p,
.pagina-carrusel-contenido a{
    font-family:inherit;
}
.pagina-carrusel-contenido h3{
    margin:0 0 10px;
    font-size:clamp(28px,4vw,56px);
    line-height:1.05;
}
.pagina-carrusel-contenido p{
    margin:0 auto 18px;
    max-width:700px;
    font-size:clamp(14px,1.6vw,20px);
    line-height:1.5;
}
.pagina-carrusel-contenido a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 22px;
    border-radius:6px;
    text-decoration:none;
}
.pagina-carrusel-infinito_logos{
    overflow:hidden;
}
.pagina-carrusel-infinito_logos .pagina-carrusel-pista{
    width:max-content;
    height:100%;
    transition:none;
}
.pagina-carrusel-infinito_logos .pagina-carrusel-item{
    flex:0 0 auto;
    min-width:180px;
    width:180px;
    height:100%;
    padding:10px;
}
.pagina-carrusel-infinito_logos .pagina-carrusel-item>img{
    object-fit:contain;
    background:transparent;
    border-radius:6px;
}
.pagina-carrusel-infinito_logos[data-animando="1"] .pagina-carrusel-pista{
    animation:gs-carrusel-logos 28s linear infinite;
}
.pagina-carrusel-tarjetas_finito .pagina-carrusel-pista{
    gap:18px;
    padding:8px 2px;
}
.pagina-carrusel-tarjetas_finito .pagina-carrusel-item{
    flex:0 0 calc((100% - 36px)/3);
    min-width:calc((100% - 36px)/3);
    height:calc(100% - 16px);
    border-radius:10px;
}
.pagina-carrusel-tarjetas_finito .pagina-carrusel-item>img{
    height:230px;
}
.pagina-carrusel-tarjetas_finito .pagina-carrusel-contenido{
    padding:18px;
}
.pagina-carrusel-galeria_imagenes .pagina-carrusel-item>img{
    max-height:100%;
    object-fit:contain;
    background:transparent;
}
.pagina-carrusel-flecha{
    appearance:none !important;
    -webkit-appearance:none !important;
    position:absolute;
    top:50%;
    z-index:10;
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:64px !important;
    height:64px !important;
    margin:0;
    padding:0 !important;
    transform:translateY(-50%);
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    border-radius:50%;
    background:transparent !important;
    color:var(--carrusel-color-flecha,inherit) !important;
    font-family:var(--carrusel-tipografia,inherit) !important;
    font-size:58px !important;
    font-weight:400 !important;
    line-height:1 !important;
    text-align:center;
    cursor:pointer;
    transition:transform .2s ease,opacity .2s ease;
}
.pagina-carrusel-flecha:hover{
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    color:var(--carrusel-color-flecha,inherit) !important;
    transform:translateY(-50%) scale(1.12);
}
.pagina-carrusel-flecha:focus,
.pagina-carrusel-flecha:active{
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
}
.pagina-carrusel-anterior{left:22px}
.pagina-carrusel-siguiente{right:22px}
.pagina-carrusel-indicadores{
    position:absolute;
    left:50%;
    bottom:18px;
    z-index:10;
    display:flex;
    align-items:center;
    gap:9px;
    transform:translateX(-50%);
}
.pagina-carrusel-indicadores button{
    appearance:none;
    width:12px;
    height:12px;
    padding:0;
    border:2px solid var(--carrusel-color-indicador,inherit);
    border-radius:50%;
    background:transparent;
    color:transparent;
    cursor:pointer;
}
.pagina-carrusel-indicadores button.activo{
    background:var(--carrusel-color-indicador,inherit);
}
@keyframes gs-carrusel-logos{
    from{transform:translateX(0)}
    to{transform:translateX(-50%)}
}
@media(max-width:900px){
    .pagina-carrusel-flecha{
        width:56px !important;
        height:56px !important;
        font-size:50px !important;
    }
    .pagina-carrusel-anterior{left:12px}
    .pagina-carrusel-siguiente{right:12px}
    .pagina-carrusel-tarjetas_finito .pagina-carrusel-item{
        flex-basis:calc((100% - 18px)/2);
        min-width:calc((100% - 18px)/2);
    }
}
@media(max-width:600px){
    .pagina-carrusel-flecha{
        width:50px !important;
        height:50px !important;
        font-size:44px !important;
    }
    .pagina-carrusel-anterior{left:6px}
    .pagina-carrusel-siguiente{right:6px}
    .pagina-carrusel-tarjetas_finito .pagina-carrusel-item{
        flex-basis:100%;
        min-width:100%;
    }
}


/* =========================================================
   CONTENIDO INDIVIDUAL DE CADA DIAPOSITIVA
   ========================================================= */

.pagina-carrusel-contenido{
    color:inherit;
    text-align:var(--carrusel-titulo-align,center);
}

.pagina-carrusel-contenido h3{
    color:var(--carrusel-titulo-color,inherit);
    font-family:var(--carrusel-titulo-font,var(--carrusel-tipografia,inherit));
    font-size:var(--carrusel-titulo-size,48px);
    font-weight:var(--carrusel-titulo-weight,700);
    text-align:var(--carrusel-titulo-align,center);
}

.pagina-carrusel-contenido p{
    color:var(--carrusel-descripcion-color,inherit);
    font-family:var(--carrusel-descripcion-font,var(--carrusel-tipografia,inherit));
    font-size:var(--carrusel-descripcion-size,20px);
    text-align:var(--carrusel-descripcion-align,center);
}

.pagina-carrusel-boton-contenedor{
    display:flex;
    width:100%;
    justify-content:center;
    margin-top:18px;
}

/* La alineación se resuelve en PHP a valores CSS válidos.
   El valor por defecto siempre es centrado. */
.pagina-carrusel-boton-contenedor{
    justify-content:var(--carrusel-boton-align,center);
}

.pagina-carrusel-boton{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:var(--carrusel-boton-width,auto);
    min-width:0;
    height:var(--carrusel-boton-height,auto);
    min-height:42px;
    padding:0 22px;
    background:var(--carrusel-boton-fondo,transparent) !important;
    color:var(--carrusel-boton-texto,inherit) !important;
    border:
        var(--carrusel-boton-border-width,1px)
        solid
        var(--carrusel-boton-borde,transparent) !important;
    border-radius:var(--carrusel-boton-radius,6px);
    font-family:var(--carrusel-boton-font,var(--carrusel-tipografia,inherit)) !important;
    font-size:var(--carrusel-boton-text-size,16px) !important;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    box-sizing:border-box;
    transition:opacity .2s ease,transform .2s ease;
}

.pagina-carrusel-boton:hover{
    opacity:.86;
    transform:translateY(-1px);
    background:var(--carrusel-boton-fondo,transparent) !important;
    color:var(--carrusel-boton-texto,inherit) !important;
    border-color:var(--carrusel-boton-borde,transparent) !important;
}

/* La opción de botón controla completamente su existencia.
   Sin boton_activo no se genera ningún enlace. */


/* =========================================================
   POLARIZADO CONFIGURABLE POR CARRUSEL
   No altera la imagen original de la Galería.
   ========================================================= */

.pagina-carrusel-item{
    position:relative;
    overflow:hidden;
}

.pagina-carrusel-item > img{
    position:relative;
    z-index:0;
}

.pagina-carrusel-polarizado{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:var(--carrusel-polarizado-color,transparent);
    opacity:var(--carrusel-polarizado-opacidad,0);
    transition:opacity .25s ease;
}

/* El contenido siempre queda por encima del polarizado. */
.pagina-carrusel-contenido{
    position:relative;
    z-index:2;
}

/* Espacio inferior deliberado para evitar que título y subtítulo
   queden apretados y para dejar sitio limpio al botón opcional. */
.pagina-carrusel-contenido h3{
    margin-top:0;
    margin-bottom:18px;
}

.pagina-carrusel-contenido p{
    margin-top:0;
    margin-bottom:24px;
}


.pagina-carrusel-boton{font-weight:var(--carrusel-boton-weight,700)!important;font-style:var(--carrusel-boton-style,normal)!important;border-radius:var(--carrusel-boton-radius,6px)!important}
.pagina-carrusel-boton-tipo-principal{border-width:var(--carrusel-boton-border-width,2px)!important}
.pagina-carrusel-boton-tipo-secundario{border-width:var(--carrusel-boton-border-width,1px)!important}
.pagina-carrusel-boton-tipo-contorno{background:transparent!important;border-width:var(--carrusel-boton-border-width,1px)!important}
.pagina-carrusel-boton-tipo-texto{background:transparent!important;border:0!important;border-radius:var(--carrusel-boton-radius,6px)!important;padding-left:4px;padding-right:4px;text-decoration:underline;text-underline-offset:4px}


/* =========================================================
   V15 - RADIO INDIVIDUAL DEL BOTÓN
   El valor guardado por cada diapositiva tiene prioridad.
   ========================================================= */
.pagina-carrusel .pagina-carrusel-boton{
    border-radius:var(--carrusel-boton-radius,6px)!important;
}
