/* Definizione delle variabili globali */
:root {
    --colore-testi: #FFFFFF;
    --colore-sfondo: #1A0138;
    --colore-footer: #19171a;
    --larghezza-massima: 900px;
}

/* Reset base */
* {
    box-sizing: border-box;
    transition: all 0.3s ease-out;
}

*:focus {
    outline: none;
}

/* Stili generali */
html,
body {
    scroll-behavior: smooth;
}

body {
    background-color: var(--colore-sfondo);
    color: var(--colore-testi);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    transition: all 0.35s;
    font-family: "Michroma", sans-serif;
    font-weight: 400;
    font-style: normal;
}

div {
    width: 100%;
}


/* TOP BAR */

.top-bar {
    height: 50px !important;
}

.faN {
    width: 30px !important;
    height: 30px !important;
}

/* Intestazione */
header {
    width: 100%;
    height: 100vh;
    position: relative;
    background:
        /* Added top gradient (reversed direction of bottom gradient) */
        linear-gradient(180deg, rgba(2, 2, 23, 0.9) 0%, rgba(0, 0, 0, 0) 12.76%),
        /* Original gradients */
        linear-gradient(0deg, rgba(2, 2, 23, 0.9) 0%, rgba(0, 0, 0, 0) 12.76%),
        linear-gradient(0deg, #1A0138, #1A0138),
        linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(202, 34, 205, 0.2) 100%),
        linear-gradient(360deg, #140134 0%, rgba(0, 0, 0, 0) 1.82%),
        linear-gradient(0deg, rgba(42, 0, 55, 0) 0%, #140237 100%),
        linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 22.4%),
        linear-gradient(0deg, rgba(0, 0, 0, 0.04) 68.7%, rgba(0, 0, 0, 0) 84.35%, #000000 100%);
    padding-top: 0;
    padding-bottom: 5vh;
    position: relative;
}


.cover_img_header {
    height: 100vh;
    background-image: url(../img/cover_desktop.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
}

.cover_shade_header {
    height: 100vh;
    position: absolute;
    top: 0;
    background: linear-gradient(0deg, rgba(2, 2, 23, 0.9) 0%, transparent 30%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

h1 {
    max-width: var(--larghezza-massima);
    color: white;
    text-align: center;
    font-family: "Monoton", sans-serif;
    font-size: 7rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    text-transform: uppercase;
}

.sommario {
    max-width: var(--larghezza-massima);
    color: white;
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.8;
    text-align: center;
    font-family: "Michroma", sans-serif;
    font-weight: 800;
    font-style: normal;
    text-transform: uppercase;
}



/* Elementi */

article,
section,
div,
p,
h2,
h3 {
    width: 100%;
}

article {
    max-width: 100%;
    margin: auto;
}

section {
    margin: 0 auto;
    display: block;
    position: relative;
}


.sfondo_colore {
    min-height: 100vh;
    background:
        /* Added top gradient (reversed direction of bottom gradient) */
        linear-gradient(180deg, rgba(2, 2, 23, 0.9) 0%, rgba(0, 0, 0, 0) 12.76%),
        /* Original gradients */
        linear-gradient(0deg, rgba(2, 2, 23, 0.9) 0%, rgba(0, 0, 0, 0) 12.76%),
        linear-gradient(0deg, #1A0138, #1A0138),
        linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(202, 34, 205, 0.2) 100%),
        linear-gradient(360deg, #140134 0%, rgba(0, 0, 0, 0) 1.82%),
        linear-gradient(0deg, rgba(42, 0, 55, 0) 0%, #140237 100%),
        linear-gradient(0deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 22.4%),
        linear-gradient(0deg, rgba(0, 0, 0, 0.04) 68.7%, rgba(0, 0, 0, 0) 84.35%, #000000 100%);
}

.blocco_1 {
    padding: 5vh 20vw;
    overflow-x: hidden;
}

.blocco_1 img {
    position: absolute;
    width: 340px;
    height: auto;
}

.blocco_1 img:first-of-type {
    top: 2vh;
    left: -12vw;
}

.blocco_1 img:nth-of-type(2) {
    top: 30vh;
    left: 10vw;
    width: 200px;
}

.blocco_1 img:nth-of-type(3) {
    top: 50vh;
    left: 23vw;
    width: 170px;
}

.blocco_1 img:nth-of-type(4) {
    top: 80vh;
    left: 15vw;
    width: 130px;
}

.blocco_1 img:nth-of-type(5) {
    top: 20vh;
    right: -5vw;
}



.blocco_1_testo_doppio {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 20;
}


.blocco_1_testo_sinistro {
    text-align: right;
    font-family: "Michroma", sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    font-style: normal;
    text-transform: uppercase;
    padding-right: 20px;
    align-self: self-start;
}


.blocco_1_testo_destro {
    text-align: left;
    font-family: "Michroma", sans-serif;
    font-weight: 400;
    font-style: normal;
    padding-left: 20px;
}


.blocco_2 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;
}

.blocco_2 .bg_cornice {
    height: 100vh;
    background-image: url(../img/bg-cornice.png);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    position: relative;
}

.blocco_shade {
    height: 100vh;
    position: absolute;
    top: 0;
    background: linear-gradient(0deg, rgba(2, 2, 23, 0.9) 0%, transparent 15%, transparent 85%, rgba(2, 2, 23, 0.9) 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.blocco_2 p {
    text-align: center;
    font-family: "Michroma", sans-serif;
    font-weight: 800;
    font-style: normal;
    max-width: 500px;
    margin: 10px auto;
    font-size: 1.4rem;
}

.blocco_2 p:first-of-type {
    font-size: 1.8rem;
}



#blocco_scroll {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 300vh;
}



/* Fixed graphic */
.scroll__graphic {
    position: sticky;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
    background-color: #fff;
}



.scroll__graphic img {
    position: absolute;
    width: 340px;
    height: auto;
}

.scroll__graphic img:first-of-type {
    top: 2vh;
    left: -12vw;
}

.scroll__graphic img:nth-of-type(2) {
    top: 30vh;
    left: 10vw;
    width: 200px;
}

.scroll__graphic img:nth-of-type(3) {
    bottom: 10vh;
    right: 5vw;
    width: 170px;
}

.scroll__graphic img:nth-of-type(4) {
    top: 80vh;
    left: 5vw;
    width: 130px;
}

.scroll__graphic img:nth-of-type(5) {
    top: 20vh;
    right: -5vw;
}

.top_3_titolo {
    display: flex;
    justify-content: center;
    top: 20px;
    position: absolute;
    z-index: 20;
}

h2 {
    font-family: "Monoton", sans-serif;
    font-size: 5rem;
    font-weight: 400;
    font-style: normal;
    text-align: center;
    text-transform: uppercase;
}

.top_3_bolla {
    position: absolute;
    background-image: url(../img/bolla.png);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: "Michroma", sans-serif;
    font-weight: 800;
    font-style: normal;
    text-transform: uppercase;
    text-align: center;
    transform: scale(1);
}

.top_3_bolla.active {
    opacity: 1;
    transform: scale(1.2);
}

#bolla_firenze {
    top: 30vh;
    left: 50%;
    transform: translateX(-50%);
    width: 350px;
    height: 350px;
    font-size: 2rem;
}

#bolla_firenze.active {
    transform: translateX(-50%) scale(1.2);
}

#bolla_torino {
    top: 50vh;
    left: 20%;
    width: 300px;
    height: 300px;
    font-size: 1.6rem;
}

#bolla_bologna {
    top: 60vh;
    right: 20%;
    width: 250px;
    height: 250px;
    font-size: 1.4rem;
}



.scroll__text {
    position: relative;
    padding: 0 30%;
    z-index: 2;
}

.step {
    min-height: 300px;
    max-width: 350px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    background-color: #6f4baa;
    margin: 100px auto;
    border-radius: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    opacity: 1;
    transition: opacity 0.5s ease;
}


.step.active {
    opacity: 1;
}

.step-empty {
    background-color: transparent;
    margin-bottom: 100vh;

}

.step p {
    font-family: "Michroma", sans-serif;
    font-size: 1.1rem;
    font-weight: 400;
    font-style: normal;
    margin-bottom: 1rem;
}


.blocco_4 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;
}



.blocco_4 .grafico_legenda {
    max-width: 600px;
    text-align: center;
    font-family: "Michroma", sans-serif;
    font-size: 1.4rem;
    font-weight: 400;
    font-style: normal;
    padding: 0 0 100px;

}


.blocco_4 .grafico_cnt {
    max-width: 700px;
    position: relative;
    padding: 0;
    border-radius: 0;
    z-index: 1;
    overflow: hidden;
    box-shadow:
        0 0 25px 10px rgba(122, 3, 93, 0.6),
        0 0 35px 15px rgba(255, 8, 229, 0.4),
        0 0 45px 20px rgba(255, 189, 254, 0.3),
        0 0 35px 15px rgba(66, 146, 227, 0.5),
        0 0 40px 20px rgba(78, 253, 254, 0.5),
        0 0 45px 20px rgba(33, 37, 95, 0.6),
        0 0 60px 30px rgba(142, 92, 255, 0.7);
}


.blocco_4 img {
    position: absolute;
    width: 340px;
    height: auto;
}

.blocco_4 img:first-of-type {
    top: 2vh;
    left: -12vw;
}

.blocco_4 img:nth-of-type(2) {
    top: 30vh;
    left: 10vw;
    width: 200px;
}

.blocco_4 img:nth-of-type(3) {
    bottom: 10vh;
    right: 5vw;
    width: 170px;
}

.blocco_4 img:nth-of-type(4) {
    top: 80vh;
    left: 5vw;
    width: 130px;
}

.blocco_4 img:nth-of-type(5) {
    top: 20vh;
    right: -5vw;
}



.sfondo_strisce {
    min-height: 100vh;
    background-color: #000000;
    background-image: url(../img/bg-strisce-destra.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    z-index: 0;
    overflow: hidden;
}

.strisce_reverse {
    background-image: url(../img/bg-strisce-sinistra.jpg);
}

/* Color overlay layer */
.sfondo_strisce::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
    pointer-events: none;
    /* Allows clicks to pass through */
}

.delimiter_cnt {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15vh 0 5vh;
    background-color: #06021D;
}

.delimiter_bg_black {
    background-color: #0C0014;
}

.delimiter {
    height: 1px;
    background-color: #FFF;
    outline: 10px solid #FF0CDA;
    border-radius: 20px;
    max-width: 80%;
    margin: auto;
}

.blocco_testo_doppio {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    position: relative;
    z-index: 20;
    max-width: 70%;
    margin: auto;
}

.blocco_testo_doppio h3 {
    font-family: "Monoton", sans-serif;
    font-size: 4rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    text-transform: uppercase;
}


.blocco_testo_sinistro {
    text-align: right;
    align-self: self-start;
    padding-right: 50px;
}


.blocco_testo_destro {
    text-align: left;
    padding-left: 50px;
}



.blocco_testo_numerone {
    font-family: "Monoton", sans-serif;
    font-size: 8rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    color: #FF0CDA;
}

.blocco_testo_legenda {
    font-family: "Michroma", sans-serif;
    font-size: .8rem;
    font-weight: 400;
    font-style: normal;
    max-width: 400px;
}

.blocco_testo_sinistro .blocco_testo_legenda {
    justify-self: end;
}

.blocco_testo_destro .blocco_testo_legenda {
    justify-self: start;
}

.blocco_testo_big {
    font-family: "Michroma", sans-serif;
    font-size: 2rem;
    font-weight: 800;
    font-style: normal;
    justify-self: end;
    text-transform: uppercase;
}

.blocco_testo_spacer {
    margin-top: 100px;
}

.blocco_testo_Monoton_medium {
    font-family: "Monoton", sans-serif;
    font-size: 4rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    color: #FFF;
}

.blocco_testo_Monoton_small {
    font-family: "Monoton", sans-serif;
    font-size: 2rem;
    font-weight: 400;
    font-style: normal;
    line-height: 1.2;
    color: #FFF;
}

.testo_pink {
    color: #FF0CDA;
}

.align_right {
    text-align: right;
}


.sfondo_onde {
    min-height: 100vh;
    background-color: #000000;
    background-image: url(../img/bg-onde.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    z-index: 0;
    overflow: hidden;
}

/* Color overlay layer */
.sfondo_onde::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 1;
    pointer-events: none;
    /* Allows clicks to pass through */
}

.blocco_nota_metodologica {
    font-family: "Michroma", sans-serif;
    font-size: .9rem;
    font-weight: 400;
    font-style: normal;
    line-height: normal;
    text-align: left;
    max-width: 70%;
    margin: auto;
    color: #cecece;
    z-index: 2;
    position: relative;
}

.blocco_firma {
    font-family: "Michroma", sans-serif;
    font-size: 1.2rem;
    font-weight: 800;
    font-style: normal;
    line-height: normal;
    text-align: right;
    padding-top: 50px;
    padding-bottom: 50px;
    max-width: 70%;
    margin: auto;
    color: #FFF;
    z-index: 2;
    position: relative;
}

@media only screen and (min-width: 481px) {

    .blocco_testo_sinistro p:first-of-type,
    .blocco_testo_destro p:first-of-type {
        margin-block-start: 0;
    }

    h3.no_margin_block_start {
        margin-block-start: 1rem;
    }

    .blocco_8,
    .blocco_9 {
        min-height: 50vh;
    }
}


/* Responsive design */
@media only screen and (max-width: 480px) {
    header {
        padding: 0;
    }

    header,
    .cover_img_header,
    .cover_shade_header {
        height: 100vh;
    }

    .cover_shade_header {
        background: linear-gradient(0deg, rgba(2, 2, 23, 0.9) 0%, transparent 50%);
    }

    h1 {
        font-size: 3.2rem;
        max-width: 100%;
    }

    .sommario {
        max-width: 100%;
        font-size: 1.2rem;
    }

    article {
        max-width: 100%;
        padding: 0;
    }

    p {
        font-size: 1.1rem;
    }

    .blocco_1 {
        height: auto;
        padding: 5vh 10px;
    }

    .blocco_1_testo_doppio {
        flex-direction: column;
        padding-left: 10px;
        padding-right: 10px;
    }


    .blocco_1_testo_sinistro {
        text-align: left;
        padding-right: 0;
    }

    .blocco_1_testo_destro {
        padding-left: 0;
    }


    .blocco_1 img {
        width: 240px;
    }

    .blocco_1 img:first-of-type {
        top: 5vh;
        left: -42vw;
    }

    .blocco_1 img:nth-of-type(2) {
        top: 40vh;
        right: 5vw;
        width: 120px;
        left: auto;
    }

    .blocco_1 img:nth-of-type(3) {
        visibility: hidden;
    }

    .blocco_1 img:nth-of-type(4) {
        visibility: hidden;
        top: 80vh;
        left: 15vw;
        width: 130px;
    }

    .blocco_1 img:nth-of-type(5) {
        top: auto;
        bottom: 10vh;
        right: -25vw;
    }

    .blocco_2 {
        padding: 0;
    }

    .blocco_2,
    .bg_cornice {
        height: 600px;
    }

    .blocco_2 .bg_cornice {
        background-image: url(../img/bg-cornice-vert.png);
        background-size: auto;
    }

    .blocco_2 p {
        width: 70%;
        font-size: 1rem;
    }

    .scroll__graphic h2 {
        font-size: 4.5rem;
    }


    .scroll__graphic img {
        display: none;
    }

    #bolla_firenze {
        top: 20vh;
        left: 50%;
        transform: translateX(-50%);
        width: 90%;
    }

    #bolla_torino {
        top: 50vh;
        left: 50%;
        transform: translateX(-50%);
        width: 80%;
    }

    #bolla_bologna {
        top: 73vh;
        left: 50%;
        transform: translateX(-50%);
        width: 70%;
    }

    .scroll__text {
        padding: 0;
    }

    .step {
        max-width: 90%;
        padding: 30px;
    }


    .blocco_4 .grafico_legenda {
        font-size: 1.2rem;
        padding: 0 20px 50px;
    }

    .blocco_4 .grafico_cnt {
        max-width: 100%;
    }

    .blocco_4 img {
        display: none;
    }

    .delimiter_cnt {
        display: none;
    }

    .delimiter {
        display: none;
    }

    .sfondo_strisce {
        background-image: url(../img/bg-strisce-destra-mobile.jpg);
    }

    .strisce_reverse {
        background-image: url(../img/bg-strisce-sinistra-mobile.jpg);
    }


    .blocco_6 {
        padding-top: 100px;
    }

    .blocco_testo_doppio {
        flex-direction: column;
        max-width: 100%;
        padding-left: 10px;
        padding-right: 10px;
    }

    .blocco_testo_doppio h3 {
        font-size: 3rem;
    }

    .blocco_testo_sinistro {
        text-align: right;
        align-self: self-start;
        padding-right: 0;
    }


    .blocco_testo_destro {
        text-align: left;
        padding-left: 0;
    }

    .blocco_testo_numerone {
        line-height: normal;
    }

    .blocco_testo_legenda {}

    .blocco_testo_big {
        font-size: 1.4rem;
    }

    .blocco_testo_spacer {
        margin-top: 50px;
    }

    .margin_top_mobile {
        margin-top: 50px;
    }

    .blocco_9,
    .blocco_8 {
        padding-bottom: 50px;
    }

    .blocco_nota_metodologica {
        padding-top: 50px;
        max-width: 100%;
        padding-left: 10px;
        padding-right: 10px;
    }

    .blocco_firma {
        max-width: 100%;
        padding-left: 10px;
        padding-right: 10px;
        font-size: 1.1rem;
    }

    .sfondo_onde {
        background-image: url(../img/bg-onde-mobile.jpg);
    }

}

@media only screen and (max-height: 700px) {
    #bolla_firenze {
        top: 20vh;
        left: 50%;
        transform: translateX(-50%);
        width: 70%;
    }

    #bolla_torino {
        top: 50vh;
        left: 50%;
        transform: translateX(-50%);
        width: 50%;
    }

    #bolla_bologna {
        top: 70vh;
        left: 50%;
        transform: translateX(-50%);
        width: 30%;
    }

}