/* ==========================================
   SLIDESHOW - PARAMETRI GENERALI
   ========================================== */

.slideshow {

    /* Dimensioni */
    --slide-width: 100%;
    --slide-height: auto;
    --slide-ratio: 4 / 3;

    /* Immagini */
    --slide-fit: contain;
    --slide-bg: rgba(0,0,255,0.4);

    /* Transizione */
    --slide-transition: 0.5s;

    /* Frecce */
    --slide-arrow-size: 70px;
    --slide-arrow-color: #ffffff;
    --slide-arrow-bg: rgba(0, 0, 0, 0.40);

    /* Puntini */
    --slide-dot-size: 10px;
    --slide-dot-color: rgba(255,255,255,0.5);
    --slide-dot-active: #ff0;
    --slide-dot-gap: 8px;

    /* Posizionamento */
    position: relative;

    width: var(--slide-width);
    max-width: 100%;

    margin: 0 auto;

    overflow: hidden;

    background: var(--slide-bg);

    box-sizing: border-box;

    isolation: isolate;
}


/* ==========================================
   CONTENITORE IMMAGINI
   ========================================== */

.slideshow .slideshow-images {

    position: relative;

    width: 100%;

    height: var(--slide-height);

    aspect-ratio: var(--slide-ratio);

    overflow: hidden;

}


/* ==========================================
   IMMAGINI
   ========================================== */

.slideshow .slideshow-image {

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    object-fit: var(--slide-fit);

    opacity: 0;
    visibility: hidden;

    transition:
        opacity var(--slide-transition) ease,
        visibility var(--slide-transition) ease;

}


/* Immagine visibile */

.slideshow .slideshow-image.active {

    opacity: 1;
    visibility: visible;

}


/* ==========================================
   FRECCE DI NAVIGAZIONE
   ========================================== */

.slideshow .slideshow-prev,
.slideshow .slideshow-next {

    position: absolute;

    top: 60%;

    transform: translateY(-50%);

    z-index: 10;

    width: var(--slide-arrow-size);
    height: var(--slide-arrow-size);

    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;

    background: var(--slide-arrow-bg);

    color: var(--slide-arrow-color);

    font-size: 22px;

    cursor: pointer;

    transition: background 0.2s ease;

}


/* Pulsante sinistro */

.slideshow .slideshow-prev {

    left: 10px;

}


/* Pulsante destro */

.slideshow .slideshow-next {

    right: 10px;

}


/* Effetto passaggio mouse */

.slideshow .slideshow-prev:hover,
.slideshow .slideshow-next:hover {

    background: rgba(0, 0, 0, 0.75);

}


/* ==========================================
   BARRA INFERIORE PUNTINI
   ========================================== */

.slideshow .slideshow-dots {

    position: absolute;

    bottom: 12px;
    left: 50%;

    transform: translateX(-50%);

    z-index: 20;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: var(--slide-dot-gap);

    padding: 6px 10px;

    max-width: calc(100% - 20px);

    flex-wrap: wrap;

    background: rgba(0, 0, 0, 0.25);

    border-radius: 20px;

}


/* Singolo puntino */

.slideshow .slideshow-dot {

    display: block;

    flex: 0 0 auto;

    width: var(--slide-dot-size);
    height: var(--slide-dot-size);

    padding: 0;

    border: none;
    border-radius: 50%;

    background: var(--slide-dot-color);

    cursor: pointer;

    transition:
        background 0.3s ease,
        transform 0.3s ease;

}


/* Puntino attivo */

.slideshow .slideshow-dot.active {

    background: var(--slide-dot-active);

    transform: scale(1.25);

}


/* ==========================================
   ACCESSIBILITÀ
   ========================================== */

.slideshow button:focus-visible {

    outline: 2px solid #ffffff;
    outline-offset: 3px;

}

@media (prefers-reduced-motion: reduce) {

    .slideshow .slideshow-image,
    .slideshow .slideshow-dot {

        transition: none;

    }

}


/* ==========================================
   VERSIONE SMARTPHONE
   ========================================== */

@media (max-width: 1000px) {

    .slideshow {

        --slide-arrow-size: 120px;
        --slide-dot-size: 40px;
        --slide-dot-gap: 6px;

    }

    .slideshow .slideshow-prev {
        left: 5px;
    }

    .slideshow .slideshow-next {        right: 5px;    }

    .slideshow .slideshow-dots {        bottom: 8px;    }

.slideshow .slideshow-dot {    display: block;    /*flex: 0 0 auto;
    width: var(--slide-dot-size);
    height: var(--slide-dot-size);*/
    padding: 0;
    border: none;
    border-radius: 0%;
    background: var(--slide-dot-color);
    cursor: pointer;
    transition:
        background 0.3s ease,
        transform 0.3s ease;

}
.slideshow .slideshow-prev,
.slideshow .slideshow-next {

    position: absolute;

    top: 75%;

    transform: translateY(-50%);

    z-index: 10;

    width: 200px; /*var(--slide-arrow-size);*/
    height: 200px; /*var(--slide-arrow-size);*/
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;
    background: yellow; /*var(--slide-arrow-bg);*/
    color: red;/*var(--slide-arrow-color);*/
    font-size: 1em;
    cursor: pointer;
    transition: background 0.2s ease;

}
}
