body {
    margin: 0;
}

.product-families-detail-container {
    width: 100%;
    font-family: "Open Sans", Sans-serif, serif;
    font-weight: 300;
    line-height: 1.5;
    color: #3f4447;
}

.product-families-detail-header-wrapper {
    background: linear-gradient(360deg, rgba(221,221,221,0.3) 0%, rgba(255,255,255,1) 100%);
    height: auto;
}

.product-families-detail-header-wrapper {
    width: 100%;
}

.product-families-detail-header {
    height: auto;
    padding: 16px 10px;
    max-width: 1400px;
    margin: 0 auto;
}

.product-families-detail-header {
    width: 100%;
    /*display: flex;*/
    /*justify-content: center;*/
}

.product-families-detail-gallery-image.right {
    width: 50%;
    margin: unset;
    margin-left: auto;
}

.product-families-detail-gallery-image.left {
    width: 50%;
    margin: unset;
}

.product-families-detail-header-left {
    /*max-width: 250px;*/
    max-width: 50%;
    padding-right: 16px;
    color: #3f4447;
    flex-shrink: 0;
}

.product-families-detail-header-left-title {
    text-transform: uppercase;
    font-size: 30px;
    font-weight: 200;
    text-align: right;
    padding-bottom: 23px;
}

.product-families-detail-header-left-subTitle {
    font-weight: bold;
    text-align: right;
    font-size: 16px;
}

.product-families-detail-header-left-description {
    padding-top: 16px;
    text-align: right;
    font-weight: 200;
}

.product-families-detail-header-left-btnDownload {
    text-align: center;
    margin-top: 30px;
}

.product-families-detail-btnDownload {
    background-color: transparent;
    border: 1px solid lightgray;
    padding: 10px 20px;
    font-size: 1em;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    transition: border-color 0.3s ease;
    font-weight: bold;
    color: #3f4447;
}

.product-families-detail-btnDownload:nth-child(2) {
    margin-top: 20px;
}

.product-families-detail-btnDownload span {
    word-break: break-word;
}

.product-families-detail-btnDownload:hover {
    border-color: #3f4447;
}

.product-families-detail-btnDownload img {
    width: 20px;
    margin-right: 10px;
}

.product-families-detail-header-right {
    width: calc(100% - 250px);
    display: flex;
    justify-content: space-around;
    /*transition: transform 0.3s ease-in-out;*/
}

.product-families-detail-header-gallery {
    display: flex;
    overflow: hidden;
    position: relative;
    width: 100%;
    border-left: 1px solid #3f4447;
    border-right: 1px solid #3f4447;
    /*transition: transform 0.3s ease;*/
}

.gallery-wrapper {
    display: flex; /* Fa sì che le immagini si allineino orizzontalmente */
    width: auto; /* La larghezza verrà impostata dal JS */
    transition: transform 0.5s ease-in-out; /* La transizione per lo scorrimento */
}

.product-families-detail-gallery-image {
    /*flex: 0 0 100%;*/
    width: 100%;
    transition: transform 0.5s ease;
    margin: 0 auto;
    min-height: auto;
    max-height: 100vh;
    height: 80vh;
    align-content: center;
}

.product-families-detail-gallery-image.active {
    display: block;
}

.product-families-detail-gallery-image img {
    width: 100%;
    height: 100%;
    max-width: 500px;
    max-height: 100%;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
    display: block;
    object-fit: cover;
    margin: 0 auto;
}

.product-families-detail-header-pagination {
    width: 40%;
    display: flex;
    align-items: end;
    justify-content: space-between;
    padding-left: 16px;
}

.product-families-detail-header-pagination-leftArrow,
.product-families-detail-header-pagination-rightArrow {
    cursor: pointer;
    padding: 0 5px;
}

.product-families-detail-header-pagination-leftArrow img,
.product-families-detail-header-pagination-rightArrow img {
    width: 30px;
    height: 39px;
}

.product-families-detail-header-pagination-index {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 5px;
}

.product-families-detail-header-pagination-index p {
    margin: 0;
    font-size: 1em;
}

.product-families-detail-header-pagination-index p.light {
    font-size: 0.9em;
    color: lightgray;
}

#scroll-to-body-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #fff;
    color: #3f4447;
    font-weight: bold;
    text-decoration: underline;
    border: 1px solid lightgray;
    /*border-color: #3f4447;*/
    padding: 10px;
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 9999;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s, visibility 0.3s;
    display: flex;
    align-items: center;
}

#scroll-to-body-btn.hide {
    opacity: 0;
    visibility: hidden;
}

#scroll-to-body-btn img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    margin-right: 10px;
}

#scroll-to-body-btn:hover {
    border-color: #3f4447;
}

/*!* Stati iniziali nascosti per .left e .right *!*/
/*.product-families-detail-gallery-image.left,*/
/*.product-families-detail-gallery-image.right {*/
/*    opacity: 0; !* Inizialmente invisibile *!*/
/*    transform: translateY(20px); !* Leggermente spostato verso il basso *!*/
/*    transition: opacity 0.6s ease-out, transform 0.6s ease-out; !* Transizione per l'animazione *!*/
/*}*/

/*!* Stato finale animato per .left (entra da sinistra) *!*/
/*.product-families-detail-gallery-image.left.animate-visible {*/
/*    opacity: 1;*/
/*    transform: translateX(0); !* Ritorna alla posizione originale *!*/
/*}*/

/*!* Stato finale animato per .right (entra da destra) *!*/
/*.product-families-detail-gallery-image.right.animate-visible {*/
/*    opacity: 1;*/
/*    transform: translateX(0); !* Ritorna alla posizione originale *!*/
/*}*/

/*!* Differenziazione per il movimento laterale *!*/
/*.product-families-detail-gallery-image.left {*/
/*    transform: translateX(-50px); !* Inizialmente spostato a sinistra *!*/
/*}*/
/*.product-families-detail-gallery-image.right {*/
/*    transform: translateX(50px); !* Inizialmente spostato a destra *!*/
/*}*/
/* ========================================================= */
/* STATO INIZIALE (Nascosto e Pronto per l'Animazione - SOLO Left/Right) */
/* ========================================================= */

.product-families-detail-gallery-image.left,
.product-families-detail-gallery-image.right {
    opacity: 0;

    /* Animazione BASE: combinazione di opacità, traslazione, rotazione e scala */
    transition: opacity 1s ease-out, transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    /* Tutte le immagini LEFT/RIGHT partono da una leggera scala ridotta (zoom out) */
    transform: scale(0.95) translateY(50px);
}


/* ========================================================= */
/* VARIAZIONI PER DIREZIONE (Movimento e Rotazione Iniziale) */
/* ========================================================= */

/* Immagini dispari/destra (seconda, quarta) */
.product-families-detail-gallery-image.left {
    /* Spostamento inziale laterale più forte e leggera rotazione a sinistra */
    transform: scale(0.95) translateX(-80px) translateY(50px) rotate(-5deg);
    margin-top: -13%;
}

/* Immagini pari/sinistra (terza) */
.product-families-detail-gallery-image.right {
    /* Spostamento inziale laterale più forte e leggera rotazione a destra */
    transform: scale(0.95) translateX(80px) translateY(50px) rotate(5deg);
    margin-top: -13%;
}

/* ========================================================= */
/* STATO FINALE (Visibile e Animato - SOLO Left/Right)       */
/* ========================================================= */

.product-families-detail-gallery-image.left.animate-visible,
.product-families-detail-gallery-image.right.animate-visible {
    opacity: 1;
    /* Ritorno allo stato normale: nessuna rotazione, nessuna traslazione, scala 1 */
    transform: scale(1) translateX(0) translateY(0) rotate(0deg);
}

/* Media query */
@media (max-width: 1024px) {
    .product-families-detail-header-wrapper {
        height: auto;
        padding: 20px 0 10px;
    }

    .product-families-detail-header {
        flex-direction: column;
        padding-top: 0;
        height: auto;
    }

    .product-families-detail-header-left {
        width: 50%;
        margin: 0 auto 50px auto;
        max-width: 100%;
        /*padding-right: 0;*/
    }

    .product-families-detail-header-right {
        width: 100%;
        justify-content: flex-start;
    }

    .product-families-detail-header-gallery {
        border: unset;
        width: 495px;
        flex-shrink: 0;
    }

    .product-families-detail-gallery-image {
        height: 600px

    }

    .product-families-detail-header-pagination {
        padding-right: 10px;
        width: 100%;
    }

    .product-families-detail-header-pagination-index {
        margin: 0 5px;
        width: 50%;
    }

    .product-families-detail-header-pagination-leftArrow img,
    .product-families-detail-header-pagination-rightArrow img {
        width: 20px;
        height: 24px;
    }
}

@media (max-width: 768px) {
    .product-families-detail-header-left {
        display: none;
    }

    .product-families-detail-header-gallery {
        border: none;
        width: 100%;
    }

    .product-families-detail-gallery-image,
    .product-families-detail-gallery-image.right,
    .product-families-detail-gallery-image.left {
        width: 96%;
        margin: 0 auto;
    }

    .product-families-detail-header-pagination {
        display: none;
    }
}