/*ROOT COLORI*/
:root {
    --light: rgb(245, 245, 245);
    --light-opacity: rgba(240, 240, 240, 0.3);
    --white: rgb(255, 255, 255);
    --dark: rgb(25, 25, 25);
    --black: rgb(0, 0, 0);
    --black-opacity: rgba(0, 0, 0, 0.8);
    --grigio_base: rgb(125, 125, 125);
    --grigio_light: rgb(220, 220, 220);
    --grigio_dark: rgb(75, 75, 75);
    --grigio_base-opacity: rgba(125, 125, 125, 0.5);
    --grigio_light-opacity: rgba(220, 220, 220, 0.7);
    --grigio_dark-opacity: rgba(50, 50, 50, 0.5);

    /* --primarioChiaro: #0061ff;
    --primarioChiaro-opacity: rgba(0, 97, 255, 0.6);
    --primarioScuro: #103783;
    --primarioScuro-opacity: rgb(16, 55, 131, 0.5); */
}

*
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* TESTO */
.tilte-big {
    font-size: clamp(28px, 4vw, 32px);
    font-weight: 800;
    width: fit-content;
    max-width: 100%;
    line-height: 120%;
    margin: 0;
}

.title {
    font-size: clamp(25px, 4vw, 28px);
    font-weight: 600;
    width: fit-content;
    max-width: 100%;
    line-height: 120%;
    margin: 0;
}

.subtitle-big {
    font-size: clamp(20px, 4vw, 25px);
    font-weight: 700;
    width: fit-content;
    max-width: 100%;
    line-height: 125%;
    margin: 0;
}

.subtitle {
    font-size: clamp(20px, 4vw, 25px);
    font-weight: 500;
    width: fit-content;
    max-width: 100%;
    line-height: 125%;
    margin: 0;
}

.text-big-bold {
    font-size: clamp(16px, 4vw, 18px);
    font-weight: 600;
    width: fit-content;
    max-width: 100%;
    line-height: 140%;
    margin: 0;
}

.text-big {
    font-size: clamp(16px, 4vw, 18px);
    font-weight: 400;
    width: fit-content;
    max-width: 100%;
    line-height: 140%;
    margin: 0;
}

.text {
    font-size: clamp(14px, 4vw, 16px);
    font-weight: 400;
    width: fit-content;
    max-width: 100%;
    line-height: 140%;
    margin: 0;
}

.text-bold {
    font-size: clamp(14px, 4vw, 16px);
    font-weight: 600;
    width: fit-content;
    max-width: 100%;
    line-height: 140%;
    margin: 0;
}

.text-small {
    font-size: clamp(12px, 4vw, 14px);
    font-weight: 400;
    width: fit-content;
    max-width: 100%;
    line-height: 130%;
    margin: 0;
}

.text-small-bold {
    font-size: clamp(12px, 4vw, 14px);
    font-weight: 600;
    width: fit-content;
    max-width: 100%;
    line-height: 130%;
    margin: 0;
}

a.text-link {
    font-weight: 500;
    transition: all 0.2s ease-in-out;
    width: fit-content;
}

a.text-link:hover {
    text-decoration: overline 2px solid;
    scale: 1.01;
}

.text-inbox {
    width: fit-content;
    padding: 0.5rem !important;
    background-color: var(--primarioChiaro);
    margin: 0 !important;
}

/* SPAZIO - STILE TESTO - LINEE TIPOGRAFICHE */
.single-line-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    margin: 0!important;
}

.two-line-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    line-clamp: 2;
    -webkit-line-clamp: 2; 
    white-space: normal;
    height: fit-content;
    margin: 0!important;
}

.three-line-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    line-clamp: 3;
    -webkit-line-clamp: 3; 
    white-space: normal;
    height: fit-content;
    margin: 0!important;
}

/* COLORI */
.light {
    color: var(--light);
}
.white {
    color: var(--white);
}
.dark {
    color: var(--dark);
}
.black {
    color: var(--black);
}
.grigio_base {
    color: var(--grigio_base);
}
.grigio_light {
    color: var(--grigio_light);
}
.grigio_dark {
    color: var(--grigio_dark);
}
.red {
    color: var(--red-color);
}
.primarioChiaro {
    color: var(--primarioChiaro);
}

/* BACKGROUND */
.background-light {
    background-color: var(--light);
}

.background-white {
    background-color: var(--white);
}

.background-dark {
    background-color: var(--dark);
}

.background-black {
    background-color: var(--black);
}

.background-grigio_base {
    background-color: var(--grigio_base);
}

.background-grigio_light {
    background-color: var(--grigio_light);
}

.background-grigio_dark {
    background-color: var(--grigio_dark);
}

.background-trasparent {
    background-color: transparent;
}

.background-green {
    background-color: var(--green-color);
}

.background-yellow {
    background-color: var(--yellow-color);
}

.background-red {
    background-color: var(--red-color);
}

.background-bluChiaro {
    background-color: var(--secondarioChiaroOpacity);
}

.background-primarioChiaro {
    background-color: var(--primarioChiaro);
}

.background-redChiaro {
    background-color: var(--sales-color);
}

/* PAGINA STATICA ARTICOLO */
    /* Menu (Struttura Side versione Desktop) */
    .side-pagina-static {
        width:100%; 
        height: fit-content;
        background-color: var(--white); 
        position: sticky; 
        top: 11dvh;
        min-height: 89dvh;
        display: flex;
        flex-direction: column;
        box-shadow: 0 0 4px var(--grigio_base-opacity);
        overflow: hidden;

        .header-side {
            width: 100%;
            height: auto;
            background-color: var(--white);
            display: flex;
            align-items: center;
            justify-content: flex-start;
            position: relative;
            z-index: 1;
            box-shadow: 0 2px 6px var(--grigio_light-opacity);
        }
        .accordion-button {
            display: flex;
            gap: 0.5rem;
            justify-content: flex-start;
            align-items: flex-start;
        }

        .banner-contenuti-container {
            width: 100%;
            height: 100%;
            overflow-y: auto;
            overflow-x: hidden;
            display: flex;
            flex-direction: column;
            padding: 0 0 5rem 0;
            gap: 0.5rem;
            max-height: 80dvh;
        }
        .link-lista-contenuti {
            padding: 1rem;
            width: 100%;
        }

        .banner-contenuti {
            position: relative;
            display: flex;
            gap: 1rem;
            align-items: center;
            width: 96%;
            margin: 0 auto;
            height: 6rem;
            min-height: 6rem;
            background-color: var(--light);
            cursor: pointer;
            scale: 1;
            overflow: hidden;
            border: 1px solid var(--light);
            transition: all 0.4s ease-in-out;
        }
        .banner-contenuti:hover {
            scale: 1.01;
            background-color: var(--white);
            border: 1px solid var(--grigio_light);
        }

        .img-banner-cont-container {
            height: 100%;
            width: 4rem;
            overflow: hidden;
            border: 0.1px solid var(--grigio_base-opacity);
            min-width: 4rem;
        }

        .img-banner-cont {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            background-color: var(--grigio_dark);
        }

        .overlay-banner-contenuti {
            position: absolute;
            z-index: 1;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(0,0,0,0.7) 40%, rgba(0,0,0,0.9) 90%, rgba(0,0,0,1) 100%);
            transition: all 0.3s ease-in-out;
        }
        .banner-contenuti:hover .overlay-banner-contenuti {
            background: linear-gradient(to left, rgba(255,255,255,0) 0%, rgba(0,0,0,0.7) 40%, rgba(0,0,0,0.9) 90%, rgba(0,0,0,1) 100%);
        }

        .absolute-text-right {
            position: absolute;
            z-index: 2;
            top: 50%;
            transform: translateY(-50%);
            right: 0.5rem;
            width: 60%;
            line-height: 120%;
            color: var(--light);
        }
        .active-link,
        .active-link:hover {
            box-shadow: 0 0 0px 2px var(--primarioChiaro-opacity);
            border: 1px solid var(--primarioChiaro);
            background: transparent;
            scale: 1.01;
            pointer-events: none;
        }
    }

    /* Pagina Contenuti */
    .page-contenuti-container {
        width:100%; 
        height: 100%; 
        display: flex; 
        flex-direction: column; 
        gap: 1rem;

        .article-container {
            width: 1080px;
            max-width: 96%;
            padding: 2rem;
            box-shadow: 0 0 6px var(--grigio_base-opacity);
            margin: 2rem auto;
            background-color: var(--white);
        }
        .in-line_container-copertina {
            display: flex;
            width: 100%;
            gap: 1rem;
        }
        .info-article-container {
            width: 100%;
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }
        .date-article-container {
            display: flex;
            gap: 0.25rem;
            flex-wrap: wrap;
            color: var(--primarioChiaro);
        }
        .img-copertina-container-inpage {
            width: 100% !important;
            min-height: fit-content;
            height: 100%!important;
        }
        .img-copertina {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }
        .corpo-article-container {
            width: 50%;
            padding: 2rem 0 1rem 0;
            max-width: 100%;
        }
        .grid-gallery { 
            display: grid;
            grid-template-rows: repeat(3, 1fr);
            grid-template-columns:repeat(3, 1fr);
            gap: 1rem;
            grid-auto-flow: dense;
        }
        .grid-gallery img {
            width: 100%;
            height: auto;
            background-color: var(--white);
            box-shadow: 0 0 4px var(--grigio_light-opacity);
          }
          .grid-gallery .img-2-2 {
            grid-column-end: span 2;
            grid-row-end: span 2;
          }
    }

/* PAGINA LISTA CONTENUTI */
    /* Contenitore pagina */
    .wrap-2col-asimmetric {
        display: grid;
        grid-template-columns: 25% 75%;
        min-height: 90dvh;
        padding: 0;
        background-color: var(white);
    }
    .wrap-section-medium {
        display: grid;
        grid-column-gap: 1rem;
        grid-row-gap: 4rem;
        height: auto;
        padding: 1rem !important;
        justify-content: center;
        width: 1440px;
        margin: 9rem auto;
        max-width: 100%;
        grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
        place-items: center;
    }
    .listaContenuti-container {
        display: grid;
        grid-column-gap: 1rem;
        grid-row-gap: 4rem;
        height: auto;
        padding: 1rem !important;
        justify-content: center;
        width: 1440px;
        margin: 9rem auto;
        min-height: 90dvh;
        max-width: 100%;
        grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
        place-items: center;

        /* Card LISTA CONTENUTI */
        .card-ListaContenuto {
            position: relative;
            width: 100%;
            max-height: fit-content;
            display: flex;
            flex-direction: column;
            gap: 1rem;
            height: fit-content;
            min-height: 27rem;
            transition: all 0.3s ease-in-out;
        }
        .img-card-container {
            position: relative;
            width: 100%;
            height: 10rem;
            max-height: 10rem;
            box-shadow: 0 0 6px var(--grigio_base-opacity);
            overflow: hidden;
        }
        .img-card {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            transition: all 4s ease-in-out;
        }
        .text-inbox-absolute {
            position: absolute;
            top: 0;
            left: 0;
            width: fit-content;
            padding: 0.25rem 0.5rem;
            background-color: var(--primarioChiaro);
            box-shadow: 0 0 4px var(--grigio_base-opacity);
            z-index: 1;
        }
        .card-ListaContenuto:hover {
            scale: 1.03;
        }
        .card-ListaContenuto:hover .img-card {
            scale: 1.2;
            filter: saturate(1.8);
        }
    }

@media screen and (min-width: 1280px) and (max-width: 1480px) {
    .nav-fixed {
        max-height: 9dvh;
        min-height: 8dvh;
    }
}

@media screen and (min-width: 1080px) and (max-width: 1279px) {
    .nav-fixed {
        max-height: 9dvh;
        min-height: 8dvh;
    }
    .wrap-2col-asimmetric {
        padding: 0!important;
        grid-template-columns: 30% 70%!important;
    }
    .in-line_container-copertina {
        flex-direction: column-reverse!important;
    }
    .corpo-article-container {
        width: 100%!important;
    }
}

@media screen and (min-width: 768px) and (max-width: 1079px) {
    .nav-fixed {
        max-height: 9dvh;
        min-height: 8dvh;
    }
    .wrap-2col-asimmetric {
        display: flex !important;
        flex-direction: column-reverse;
        width: 100%;
        padding: 1rem 0;
        gap: 2rem;
    }
    .in-line_container-copertina {
        flex-direction: column-reverse!important;
    }
    .corpo-article-container {
        width: 80%!important;
        margin: 0 auto;
    }
    .banner-contenuti-container {
        max-height: 100%!important;
    }
    .card-ListaContenuto {
        gap: 0.5rem!important;
    }
}

@media screen and (max-width: 767px) {
    .wrap-2col-asimmetric {
        display: flex !important;
        flex-direction: column-reverse;
        width: 100%;
        padding: 1rem 0;
        gap: 2rem;
        min-height: auto!important;
    }

    .in-line_container-copertina {
        flex-direction: column-reverse!important;
    }
    .article-container {
        margin: 0 auto!important;
        padding: 1rem !important;
    }
    .side-pagina-static {
        min-height: auto!important;
    }
    .corpo-article-container {
        width: 100%!important;
    }
    .grid-gallery { 
        gap: 0.25rem!important;
    }
    .text-inbox-absolute {
        top: -0.5rem!important;
        left: 0.5rem!important;
        width: fit-content!important;
        padding: 0.25rem 0.5rem!important;
    }
    .banner-contenuti-container {
        max-height: 100%!important;
    }
    .card-ListaContenuto {
        gap: 0.5rem!important;
    }
}