main {
    display: flex;
    flex-wrap: wrap;
}
h2 {
    font-weight: 700;
    font-size: 3vw;
    margin: 0;
    line-height: 1.1em;
}
p, ul {
    font-size: 1.2rem;
    line-height: 1.6em;
}
ul {
    padding: 0;
    list-style: none;
    li {
        margin: 0 0 2rem 0;
    }
}


/* hero */
.hero-layout {
    padding: 0;
    position: relative;
    flex-wrap: wrap;
    align-content: flex-start;
    .header {
        width: 100%;
        height: 30vh;
        padding: 0 8vw;
        display: flex;
        align-items: flex-end;
        h1 {
            font-weight: 700;
            font-size: 3.5vw;
            color: var(--actionBlue);
            line-height: 1.1em;
            margin: 0 0 4vh 0;
            &.centered {
                width: 50%;
                margin: 0 auto 4vh auto;
            }
        }
    }
    .sub-header {
        width: 100%;
        padding: 8vh 8vw;
        display: flex;
        background-color: var(--darkBlue);
        align-items: center;
        position: relative;
        p {
            width: 70%;
            font-size: 1.7rem;
            font-weight: 400;
            line-height: 1.5em;
            margin: 0;
            color: #fff;
            span {
                color: var(--actionBlue);
            }
            &.citation {
                position: relative;
                font-size: 2.5rem;
                font-weight: 700;
                line-height: 1.5em;
                .author {
                    display: flex;
                    justify-content: center;
                    font-size: 1.6rem;
                    margin-top: 1rem;
                }
                .quote-sup {
                    position: absolute;
                    font-size: 18vh;
                    font-weight: 700;
                    left: -5rem;
                    top: 1rem;
                    color: #fff;
                }
                .quote-inf {
                    position: relative;
                    font-size: 12vh;
                    left: 1rem;
                    top: 5rem;
                    line-height: 0;
                    font-weight: 700;
                    color: #fff;
                }
            }
            &.centered {
                width: 50%;
                margin: 0 auto;
            }
            &.for-approche {
                display: flex;
                flex-wrap: wrap;
                gap: .5rem;
                span {
                    font-size: 8vh;
                    display: flex;
                    color: #fff;
                    line-height: .8em;
                    width: 100%;
                    &:nth-child(1) {
                        transition-delay: 0s;
                    }
                    &:nth-child(2) {
                        transition-delay: .3s;
                    }
                    &:nth-child(3) {
                        transition-delay: .6s;
                    }
                }
            }
        }
        .big-word {
            font-weight: 700;
            color: #051c2c;
            opacity: 0;
            right: 0;
            bottom: 0;
            position: absolute;
            font-size: 30vh;
            z-index: 1;
            letter-spacing: -0.03em;
            transform: translateX(-10vw);
            transition: opacity 2s ease-in, transform 5s ease-in-out;
            &.light {
                color: #fff;
                opacity: 0;
                transform: translateX(-24vw);
                &.revealed {
                    opacity: .03;
                }
            }
            &.revealed {
                transform: translateX(0);
                opacity: .08;
            }
        }
        .sep {
            width: 15%;
            height: 4rem;
            border-radius: 0 2rem 2rem 0;
            background-color: var(--actionBlue);
            position: absolute;
            left: 0;
            bottom: -2rem;
            z-index: 2;
        }
    }
    &.dark {
        .header {
            background-color: var(--darkBlue);
        }
        .sub-header {
            padding: 0 8vw 13vh 8vw;
        }
    }
}


/* section text with blue box */
.text-with-blue-box {
    padding: 10vh 8vw 0 8vw;
    position: relative;
    display: flex;
    overflow: hidden;
    align-items: center;
    .left {
        display: flex;
        flex-direction: column;
        width: 50%;
        gap: 3rem;
        p {
            width: 80%;
            margin: 0;
            font-size: 1.5rem;
            line-height: 1.5em;
        }
    }
    .right {
        display: flex;
        width: 60%;
        justify-content: flex-end;
        align-items: flex-start;
        position: relative;
        transform: translateX(4vw);
        .content {
            padding: 8vh 11vw 7vh 9vw;
            line-height: 1.7em;
            background-color: var(--actionBlue);
            border-radius: 25vh;
            position: relative;
            span {
                color: #fff;
                font-size: 1.5rem;
                line-height: 1.5em;
            }
        }
        .citation {
            padding: 8vh 11vw 7vh 9vw;
            line-height: 1.7em;
            background-color: var(--actionBlue);
            border-radius: 25vh;
            position: relative;
            span {
                font-family: 'ivypresto-display', serif;
                font-style: italic;
                color: #fff;
                font-size: 1.8rem;
                &.author {
                    display: flex;
                    font-family: inherit;
                    font-size: 1.2rem;
                    margin: 1rem 0 0 0;
                    font-style: normal;
                    font-weight: 700;
                    color: var(--main-text-color);
                    justify-content: flex-end;
                }
            }
        }
        .quote-sup {
            position: absolute;
            font-size: 23vh;
            font-weight: 700;
            left: 0;
            top: 6rem;
        }
        .quote-inf {
            position: absolute;
            font-size: 15vh;
            font-weight: 700;
            right: 4rem;
            bottom: 4rem;
        }
    }
}


/* Half content */
.half-content {
    padding: 10vh 8vw 0 8vw;
    display: flex;
    align-items: flex-start;
    .left {
        padding: 0 3rem 0 0;
        h2 {
            width: 100%;
            margin: 0 0 1.5rem 0;
            &.mrg-top {
                margin-top: 8vh;
            }
        }
        h3 {
            width: 100%;
            margin: 0 0 1.5rem 0;
            span {
                font-size: 1.2rem;
            }
            &.mrg-top {
                margin-top: 3vh;
            }
        }
        p {
            margin: 0 0 1.5rem 0;
            &.larger {
                font-size: 1.5rem;
                line-height: 1.3em;
            }
            &.bigger {
                font-size: 2rem;
                line-height: 1.3em;
            }
            &.bolder {
                font-weight: 700;
            }
        }
        width: 50%;
        img {
            width: 100%;
        }
        &.flex {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-start;
        }
        &.half-plus {
            width: 60%;
        }
        &.half-less {
            width: 30%;
        }
    }
    .right {
        width: 50%;
        padding: 0 0 0 3rem;
        h2 {
            margin: 0 0 1.5rem 0;
        }
        p {
            margin: 0 0 1.5rem 0;
            strong.blue {
                color: var(--actionBlue);
            }
            &.bigger {
                font-size: 2rem;
                line-height: 1.1em;
            }
            &.bolder {
                font-weight: 700;
            }
        }
        &.flex {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-end;
        }
        &.with-pd-top {
            padding-top: 7.5rem;
        }
        &.half-less {
            width: 40%;
        }
        &.half-plus {
            width: 70%;
        }
        &.sticked {
            position: sticky;
            top: 13vh;
        }
    }
    ul {
        margin-top: 0;
        li {
            padding-left: 3rem;
            position: relative;
            &::before {
                content: '';
                display: inline-block;
                width: 1.8em;
                height: 1.8em;
                border-radius: 50%;
                position: absolute;
                top: -.1em;
                left: 0;
                background: var(--actionBlue);
            }
        }
        &.classic {
            li {
                padding-left: 1.7rem;
                margin: 0 0 .5rem 0;
                &::before {
                    width: 1em;
                    height: 1em;
                    top: .3em;
                }
                ul {
                    margin-top: .75rem;
                    li {
                        padding-left: 0;
                        margin: 0;
                        &::before {
                            display: none;
                        }
                    }
                }
            }
        }
    }
    &.with-gap {
        gap: 0;
    }
    &.centered {
        align-items: center;
    }
    &.wrap {
        flex-wrap: wrap;
    }
}

/* Illustrations */
.wheel {
    animation: slow-rotate 120s linear infinite;
    transform-origin: center;
    max-width: 600px;
}
@keyframes slow-rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
.circles {
    width: 80%;
    max-width: 450px;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    position: relative;
    .circle1 {
        width: 100%;
        aspect-ratio: 1/1;
        border-radius: 50%;
        background-color: var(--darkBlue);
        display: flex;
        justify-content: center;
        position: absolute;
        z-index: 1;
        left: 0;
        bottom: 0;
        padding-top: 10%;
        align-items: flex-start;
        span {
            display: inline-flex;
            color: #fff;
            text-transform: uppercase;
            font-weight: 700;
        }
    }
    .circle2 {
        width: 75%;
        aspect-ratio: 1/1;
        border-radius: 50%;
        background-color: var(--actionBlue);
        display: flex;
        justify-content: center;
        position: absolute;
        z-index: 2;
        left: 12.5%;
        bottom: 0;
        padding-top: 10%;
        align-items: flex-start;
        span {
            display: inline-flex;
            color: #fff;
            text-transform: uppercase;
            font-weight: 700;
        }
    }
    .circle3 {
        width: 50%;
        aspect-ratio: 1/1;
        border-radius: 50%;
        background-color: #fff;
        display: flex;
        justify-content: center;
        position: absolute;
        z-index: 3;
        left: 25%;
        bottom: 0;
        align-items: center;
        span {
            display: inline-flex;
            color: var(--main-text-color);
            text-transform: uppercase;
            font-weight: 700;
        }
    }
}
.illus-approach {
    width: 80%;
    max-width: 550px;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    .block {
        width: 50%;
        aspect-ratio: 1 / .7;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0 1rem;
        text-align: center;
        span {
            color: #fff;
            font-weight: 700;
        }
        &.block1 {
            border-radius: 1.5rem 0 0 0;
            background-color: var(--darkBlue);
        }
        &.block2 {
            border-radius: 0 1.5rem 0 0;
            background-color: var(--actionBlue);
        }
        &.block3 {
            border-radius: 0 0 0 1.5rem;
            background-color: var(--actionBlue);
        }
        &.block4 {
            border-radius: 0 0 1.5rem 0;
            background-color: var(--darkBlue);
        }
    }
    .ie {
        width: 40%;
        height: 20%;
        border-radius: 1rem;
        background-color: #fff;
        display: flex;
        padding: .5rem;
        position: absolute;
        top: 40%;
        left: 30%;
        justify-content: center;
        align-items: center;
        text-align: center;
        span {
            font-weight: 700;
            line-height: 1.1em;
        }
    }
    .dot {
        display: block;
        width: 1.5rem;
        height: 1.5rem;
        border: 4px solid #fff;
        border-radius: 50%;
        position: absolute;
        z-index: 2;
        &.dot1 {
            top: -.75rem;
            left: calc(25% - .75rem);
            background-color: var(--darkBlue);
        }
        &.dot2 {
            right: -.75rem;
            top: calc(25% - .75rem);
            background-color: var(--actionBlue);
        }
        &.dot3 {
            bottom: -.75rem;
            right: calc(25% - .75rem);
            background-color: var(--darkBlue);
        }
        &.dot4 {
            left: -.75rem;
            bottom: calc(25% - .75rem);
            background-color: var(--actionBlue);
        }
    }
    .arrow {
        position: absolute;
        z-index: 3;
        &.arrow1 {
            width: 50%;
            top: -13%;
            left: 25%;
        }
        &.arrow2 {
            height: 50%;
            top: 25%;
            right: -8%;
        }
        &.arrow3 {
            width: 50%;
            bottom: -13%;
            left: 25%;
            transform: rotate(180deg);
        }
        &.arrow4 {
            height: 50%;
            top: 25%;
            left: -8%;
            transform: rotate(180deg);
        }
    }
    .change {
        display: block;
        text-align: center;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--orange);
        position: absolute;
        font-size: 1.2rem;
        left: -10%;
        width: 40%;
        line-height: 1.2em;
        top: -45%;
    }
    .me {
        color: var(--main-text-color);
        position: absolute;
        font-size: 1.2rem;
        font-weight: 700;
        left: 0;
        top: -22%;
        display: block;
        width: 20%;
        text-align: center;
    }
    .others {
        color: var(--main-text-color);
        position: absolute;
        font-size: 1.2rem;
        font-weight: 700;
        left: 38%;
        top: -22%;
        display: block;
        width: 20%;
        text-align: center;
    }
    .actions {
        color: var(--main-text-color);
        transform: rotate(-90deg);
        position: absolute;
        font-size: 1.2rem;
        font-weight: 700;
        left: -21%;
        bottom: 23%;
        display: block;
        width: 25%;
        text-align: center;
        line-height: 1em;
    }
    .conscience {
        color: var(--main-text-color);
        transform: rotate(-90deg);
        position: absolute;
        font-size: 1.2rem;
        font-weight: 700;
        left: -23%;
        top: 23%;
        display: block;
        width: 25%;
        text-align: center;
        line-height: 1em;
    }
}





/* Rapports EQi */
.reports {
    padding: 10vh 8vw 0 8vw;
    display: flex;
    align-items: flex-start;
    gap: 3rem;
    .item {
        width: 25%;
        display: flex;
        flex-direction: column;
        gap: 1rem;
        position: relative;
        .report {
            width: 100%;
            border: 2px solid var(--main-text-color);
            border-radius: 1.5rem;
            background-color: #fff;
            aspect-ratio: 1/1.2;
            display: flex;
            box-shadow: .8rem .8rem 0 #ddd;
            padding: 2rem;
            align-items: center;
            gap: 2rem;
            flex-direction: column;
            justify-content: center;
            .eqi-logo {
                width: 80%;
            }
            .title {
                display: inline-flex;
                width: 100%;
                text-align: center;
                font-family: 'hagrid', 'century-gothic-std', sans-serif;
                font-size: 1.5rem;
                line-height: 1.2em;
                justify-content: center;
                flex-direction: column;
                align-items: center;
                gap: 2rem;
                &::before {
                    content: '';
                    display: inline-block;
                    width: 1.1em;
                    height: 1.1em;
                    border-radius: 50%;
                    position: relative;
                    background: var(--actionBlue);
                }
            }
        }
        &:nth-child(1) {
            margin-top: 8vh;
        }
        &:nth-child(2) {
            margin-top: 18vh;
            transition-delay: .3s;
        }
        &:nth-child(3) {
            margin-top: 5vh;
            transition-delay: .6s;
        }
        &:nth-child(4) {
            transition-delay: .9s;
        }
    }
}


/* science */
.science {
    padding: 15vh 0 10vh 0;
    display: flex;
    gap: 5vw;
    .left {
        padding: 0 0 0 8vw;
        width: 30%;
        gap: 1rem;
        display: flex;
        flex-wrap: wrap;
        align-content: center;
        p {
            width: 80%;
            margin-bottom: 0;
        }
    }
    .right {
        width: 70%;
        background-color: var(--darkBlue);
        border-radius: 3rem 0 0 3rem;
        padding: 5rem;
        display: flex;
        flex-wrap: wrap;
        .item {
            width: 50%;
            display: flex;
            gap: 1rem;
            flex-direction: column;
            flex-wrap: wrap;
            margin: 0 0 3rem 0;
            .title {
                display: flex;
                width: 100%;
                color: var(--actionBlue);
                font-size: 1.5rem;
                font-weight: 700;
            }
            p {
                width: 80%;
                color: #fff;
                margin: 0;
            }
            &:nth-child(3), &:nth-child(4) {
                margin: 0;
            }
        }
    }
}


/* Test eqi */
.test-eqi {
    padding: 10vh 8vw 0 8vw;
    position: relative;

    .eqi-form-container {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        margin: 0 auto 0 auto;
        position: relative;

        form {
            background: #d5e2ff;
            border-radius: 2rem;
            width: 100%;
            padding: 3rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0;
            position: relative;
            z-index: 2;

            .guide {
                width: 100%;
                display: flex;
                gap: 2rem;
                padding: 2rem 0;
                border-radius: 1rem;
                background-color: #ecf2ff;
                transition: all 0.3s ease;
                position: sticky;
                top: 0;
                &.sticked {
                    padding-top: 7vh;
                    border-radius: 0 0 1rem 1rem;
                }

                .bk {
                    display: flex;
                    width: 50%;
                }

                .choices-list {
                    display: flex;
                    width: 50%;
                    gap: 1rem;

                    span {
                        display: flex;
                        width: 20%;
                        justify-content: center;
                        align-items: center;
                        text-align: center;
                        font-weight: 600;
                        line-height: 1em;
                    }
                }
            }

            .item {
                width: 100%;
                display: flex;
                gap: 2rem;
                padding: 1.5rem 0 1.5rem 1rem;
                border-bottom: 1px solid #bdcdca;
                border-radius: .7rem;

                .question {
                    display: flex;
                    width: 50%;
                    font-size: 1.2rem;
                    font-weight: 700;

                    span {
                        font-size: 1.15rem;
                        font-family: sans-serif;
                    }
                }

                .choices {
                    display: flex;
                    width: 50%;
                    gap: 1rem;

                    label {
                        display: flex;
                        width: 20%;
                        justify-content: center;

                        input {
                            width: 24px;
                            height: 24px;
                        }
                    }
                }

                &:hover {
                    background-color: #a8c3ff;
                }

                &.error {
                    background-color: #ffa3a3;
                }
            }

            .validate {
                width: 100%;
                display: flex;
                gap: 2rem;
                padding: 2rem 0 0 0;

                .bk {
                    display: flex;
                    width: 50%;
                }

                .valid-zone {
                    display: flex;
                    width: 50%;
                    justify-content: flex-end;

                    .cta-primary {
                        border-radius: 2rem;
                        font-size: 1rem;
                        padding: 1rem 1.5rem .9rem 1.8rem;
                        background: var(--cta-primary-bg);
                        color: var(--cta-primary-color);
                        line-height: 1.5em;
                        cursor: pointer;
                        border: 0;
                        font-family: inherit;
                        transition: background-color 0.2s ease-in-out 0s;

                        &:hover {
                            background-color: var(--main-text-color);
                        }
                    }
                }
            }
        }

        #results {
            position: relative;
            z-index: 1;
            width: 100%;
            padding: 5rem 3rem 3rem 3rem;
            display: flex;
            flex-wrap: wrap;
            background-color: var(--darkBlue);
            border-radius: 0 0 2rem 2rem;
            gap: 2.5rem;
            visibility: visible;
            opacity: .2;
            top: -2rem;
            transition: all .5s ease-in;
            h3 {
                font-size: 2rem;
                width: 100%;
                display: flex;
                justify-content: center;
                color: #fff;
                margin: 0;
                padding: 0;
            }
            .score {
                width: 100%;
                display: flex;
                justify-content: center;
                span {
                    font-family: sans-serif;
                    font-size: 2rem;
                    font-weight: 700;
                    background-color: #2563eb;
                    border-radius: 1rem;
                    padding: 1.5rem 2.5rem;
                    line-height: 1em;
                    display: none;
                    color: #fff;
                    &.on {
                        display: inline-flex;
                    }
                }
                img.spinner {
                    padding: .5rem;
                    background: #102e43;
                    border-radius: 50%;
                    width: 4rem;
                    aspect-ratio: 1/1;
                    display: none;
                    &.on {
                        display: inline-flex;
                    }
                }
            }

            .graph-wrapper {
                width: 100%;
                display: flex;
                justify-content: center;
                opacity: 0;
                transition: all .2s ease-in;
                .graph-container {
                    width: 80%;
                    padding: 4rem;
                    background: #fff;
                    border-radius: 2rem;
                }
                &.on {
                    opacity: 1;
                }
            }

            .explain-wrapper {
                width: 100%;
                display: none;
                justify-content: center;
                flex-wrap: wrap;
                gap: 2rem;
                .detail {
                    width: 70%;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: center;
                    color: #fff;
                    p {
                        width: 100%;
                        margin: 0 0 1rem 0;
                    }

                    ul {
                        margin-top: 0;

                        li {
                            margin: 0 0 .5rem 0;
                        }
                    }
                }

                .share-result {
                    width: 100%;
                    display: flex;
                    justify-content: center;
                    flex-wrap: wrap;

                    p {
                        width: 100%;
                        text-align: center;
                        margin: 0 0 1rem 0;
                        color: var(--actionBlue);
                        font-size: 2rem;
                    }

                    .share-box {
                        width: 50%;
                        display: flex;
                        padding: 1.8rem 2rem;
                        border-radius: 4rem;
                        background: var(--actionBlue);
                        align-items: center;

                        form {
                            padding: 0;
                            display: flex;
                            width: 100%;
                            gap: 1rem;
                            justify-content: space-between;
                            background-color: transparent;

                            label {
                                display: none;
                            }

                            input[type=text] {
                                width: calc(65% - 2rem);
                                border-radius: 2rem;
                                padding: 0 1rem;
                                border: 0;
                                font-size: 1rem;
                            }
                            button {
                                width: 35%;
                                border-radius: 2rem;
                                font-family: inherit;
                                font-size: 1rem;
                                border: 0;
                                cursor: pointer;
                                background-color: var(--main-text-color);
                            }
                        }
                    }

                    .check-zone {
                        display: flex;
                        width: 100%;
                        margin: 0 auto;
                        flex-wrap: wrap;
                        flex-direction: column;
                        align-content: center;

                        .rgpd-zone {
                            width: 45%;
                            margin: 1rem 0 0 0;
                            display: flex;
                            gap: 1rem;
                            align-items: flex-start;

                            span {
                                font-size: .9rem;
                                line-height: 1.5em;
                                color: #fff;
                                a {
                                    &:hover {
                                        color: var(--actionBlue);
                                    }
                                }
                            }
                        }

                        .com-zone {
                            width: 45%;
                            margin: 1rem 0 0 0;
                            display: flex;
                            gap: 1rem;
                            align-items: flex-start;

                            span {
                                font-size: .9rem;
                                line-height: 1.5em;
                                color: #fff;
                            }
                        }
                    }
                    .spinner {
                        width: 100%;
                        display: none;
                        text-align: center;
                        margin: 1rem 0 0 0;
                        color: #fff;
                        img {
                            width: 6rem;
                        }
                    }
                }

                &.on {
                    display: flex;
                }
            }

            &.on {
                visibility: visible;
                opacity: 1;
            }
        }
    }
}


/* Conclusion */
.conclusion {
    padding: 10vh 8vw;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    .cta-container {
        width: 100%;
        display: flex;
        justify-content: center;
        margin: 0;
        span {
            font-size: 1.1rem;
        }
    }
}


/* Parcours */
.parcours {
    padding: 0;
    margin: 15vh 0;
    position: relative;
    flex-wrap: wrap;
    .timeline {
        width: 100%;
        height: 3rem;
        background-color: #2563eb33;
        position: absolute;
        z-index: 1;
        left: 0;
        top: calc(30vh - 1.5rem);
    }
    .progress-container {
        width: calc(100% - 16vw);
        height: 3rem;
        position: absolute;
        z-index: 2;
        left: 8vw;
        top: calc(30vh - 1.5rem);
        .progress-bar {
            background-color: var(--actionBlue);
            width: 0%;
            height: 100%;
            border-radius: 0 1.5rem 1.5rem 0;
            transition: width 3.5s linear 0s;
            &.move {
                width: 100%;
            }
        }
    }
    .steps {
        height: 60vh;
        width: 100%;
        padding: 0;
        display: flex;
        flex-wrap: nowrap;
        position: relative;
        z-index: 3;
        .step {
            width: 14.2%;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            .dot {
                height: 5rem;
                width: 5rem;
                border-radius: 50%;
                background-color: var(--actionBlue);
                transform: scale(0);
                transition: transform .3s ease;
            }
            .content {
                position: absolute;
                width: 100%;
                text-align: center;
                display: flex;
                flex-wrap: wrap;
                gap: .5rem;
                justify-content: center;
                transform: scale(0);
                transition: transform .3s ease;
                img {
                    width: 30%;
                }
                .title {
                    display: block;
                    width: 100%;
                    font-weight: 700;
                    font-size: 1.5rem;
                    letter-spacing: -0.02em;
                }
                .detail {
                    display: flex;
                    flex-wrap: wrap;
                    font-size: .9rem;
                    line-height: 1.5em;
                }
                &.top {
                    top: 0;
                    padding: 0 20%;
                }
                &.bottom {
                    bottom: 0;
                    padding: 0 10%;
                }
            }
            .line {
                width: 2px;
                background-color: var(--actionBlue);
                position: absolute;
                height: 0;
                transition: height .3s ease;
                .bullet {
                    width: 1rem;
                    height: 1rem;
                    border-radius: 50%;
                    position: absolute;
                    left: -.5rem;
                    background-color: var(--actionBlue);
                }
                &.top {
                    bottom: 50%;
                    .bullet {
                        top: 0;
                    }
                }
                &.bottom {;
                    top: 50%;
                    .bullet {
                        bottom: 0;
                    }
                }
            }
            &.first {
                .dot {
                    background-color: var(--orange);
                    border: 8px solid #fff;
                }
                .content.bottom {
                    bottom: 5rem;
                }
                .line {
                    background-color: var(--orange);
                    top: 50%;
                    .bullet {
                        bottom: 0;
                        background-color: var(--orange);
                    }
                }
            }
            &.revealed {
                .dot {
                    transform: scale(1);
                }
                .content {
                    transform: scale(1);
                }
                .line {
                    &.top {
                        height: 30%;
                    }
                    &.bottom {
                        height: 15%;
                    }
                }
            }
            &.step-1 {
                .dot, .content, .line {
                    transition-delay: 0s
                }
            }
            &.step-2 {
                .dot, .content, .line {
                    transition-delay: 0.5s;
                }
            }
            &.step-3 {
                .dot, .content, .line {
                    transition-delay: 1s;
                }
            }
            &.step-4 {
                .dot, .content, .line {
                    transition-delay: 1.5s;
                }
            }
            &.step-5 {
                .dot, .content, .line {
                    transition-delay: 2s;
                }
            }
            &.step-6 {
                .dot, .content, .line {
                    transition-delay: 2.5s;
                }
            }
            &.step-7 {
                .dot, .content, .line {
                    transition-delay: 3s;
                }
            }
        }
        .top-legend {
            height: 1rem;
            position: absolute;
            top: -2rem;
            width: calc(14.2% * 5);
            left: 14.2%;
            border-top: 1px solid var(--orange);
            border-left: 1px solid var(--orange);
            border-right: 1px solid var(--orange);
            opacity: 0;
            transition: opacity .3s ease-in 3s;
            span {
                display: inline-flex;
                width: 100%;
                position: absolute;
                bottom: 1.5rem;
                left: 0;
                justify-content: center;
            }
            &.on {
                opacity: 1;
            }
        }
        .bottom-legend {
            height: 1rem;
            position: absolute;
            bottom: -2rem;
            width: calc(14.2% * 5);
            left: calc(14.2% * 2);
            border-bottom: 1px solid var(--orange);
            border-left: 1px solid var(--orange);
            border-right: 1px solid var(--orange);
            opacity: 0;
            transition: opacity .3s ease-in 4s;
            span {
                display: inline-flex;
                width: 100%;
                position: absolute;
                top: 1.5rem;
                left: 0;
                justify-content: center;
                text-align: center;
            }
            &.on {
                opacity: 1;
            }
        }
    }
    .sm-legend {
        display: none;
        flex-wrap: wrap;
        padding: 5vh 5vw;
        p {
            margin: 0 0 1rem 0;
        }
    }
}


/* Cards */
.card-container {
    padding: 10vh 12vw 0 12vw;
    margin: 0;
    position: relative;
    display: flex;
    width: 100%;
    gap: 3rem;
    justify-content: center;
    flex-wrap: wrap;
    .card {
        display: flex;
        flex-wrap: wrap;
        width: 30%;
        border-radius: 1rem;
        aspect-ratio: 1 / 1.5;

        .flip-card-container {
            width: 100%;
            height: 100%;
            perspective: 1000px;

            .flip-card-inner {
                width: 100%;
                height: 100%;
                position: relative;
                transform-style: preserve-3d;
                transition: transform 0.6s;

                .card-front {
                    position: absolute;
                    inset: 0;
                    backface-visibility: hidden;
                    align-content: flex-start;
                    background: #f7f7f7;
                    box-shadow: .8rem .8rem 0 #ddd;
                    border-radius: 1rem;
                    overflow: hidden;

                    .title {
                        background: var(--actionBlue);
                        display: flex;
                        height: 35%;
                        border-radius: 0 0 50% 50%;
                        font-size: 1.4rem;
                        line-height: 1.1em;
                        justify-content: center;
                        font-weight: 800;
                        text-align: center;
                        padding: 2rem 2rem;
                        width: 100%;
                        align-items: center;
                        color: #fff;
                    }

                    .content {
                        width: 100%;
                        padding: 1.5rem;
                        height: 65%;
                        display: flex;
                        flex-wrap: wrap;
                        align-content: space-between;
                        font-size: .9rem;
                        line-height: 1.5em;
                        .baseline {
                            text-align: center;
                            .illus {
                                width: 60%;
                                margin: 1rem 0;
                            }
                            span {
                                width: 100%;
                                display: block;
                                padding: 0;
                                font-size: 1rem;
                                line-height: 1.2em;
                                margin: 0 0 .5rem 0;
                                font-weight: 700;

                                &.sub {
                                    &.centered {
                                        width: 80%;
                                        margin: 0 auto;
                                        text-align: center;
                                    }

                                    &.bigger {
                                        font-size: 1.2rem;
                                    }
                                }
                            }
                        }
                        .cta-container {
                            margin: 0;
                            .cta {
                                width: auto;
                                span {
                                    color: var(--cta-secondary-color);
                                }
                                &:hover {
                                    span {
                                        color: var(--cta-secondary-color-hover);
                                    }
                                }
                            }
                        }
                    }
                }

                .card-back {
                    cursor: pointer;
                    position: absolute;
                    inset: 0;
                    backface-visibility: hidden;
                    align-content: flex-start;
                    background: var(--darkBlue);
                    color: #fff;
                    transform: rotateY(180deg);
                    display: flex;
                    flex-wrap: wrap;
                    box-shadow: .8rem .8rem 0 #ddd;
                    border-radius: 1rem;
                    overflow: hidden;

                    .content {
                        width: 100%;
                        padding: 2rem;
                        height: 100%;
                        display: flex;
                        flex-wrap: wrap;
                        align-content: flex-start;
                        gap: 1rem;
                        .sub-title {
                            color: var(--orange);
                            font-size: 1.2rem;
                        }

                        p, ul {
                            width: 100%;
                            font-size: .9rem;
                            line-height: 1.4em;
                            margin: 0;
                        }
                        ul {
                            li {
                                margin: 0 0 .5rem 0;
                            }
                        }

                        .cta-container {
                            width: 100%;
                            margin: 0;
                            display: flex;
                            justify-content: center;
                        }
                    }
                }
            }

            &:hover {
                > .flip-card-inner {
                    transform: rotateY(180deg);
                }
            }
        }

    }
}


/* Associes */
.associes {
    padding: 0 8vw 0 8vw;
    margin: 0;
    position: relative;
    display: flex;
    width: 100%;
    .associes-container {
        display: flex;
        flex-wrap: nowrap;
        width: 90%;
        padding: 2rem;
        gap: 4rem;
        justify-content: center;
        margin: 0 auto;
        .associe {
            width: 400px;
            aspect-ratio: 1 / 1.3;
            border: none;
            background: transparent;
            cursor: pointer;
            padding: 1.5rem;
            .flip-card-container {
                width: 100%;
                height: 100%;
                perspective: 1000px;
                .flip-card-inner {
                    width: 100%;
                    height: 100%;
                    position: relative;
                    transform-style: preserve-3d;
                    transition: transform 0.6s;
                }
                .flip-card-front,
                .flip-card-back {
                    position: absolute;
                    inset: 0;
                    backface-visibility: hidden;
                    box-shadow: .8rem .8rem 0 #ddd;
                    border-radius: 1rem;
                }
                .flip-card-front {
                    display: flex;
                    flex-wrap: wrap;
                    background-color: lightgray;
                    .pic-container {
                        width: 100%;
                        height: 80%;
                        img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                            object-position: center top;
                            border-radius: .7rem .7rem 0 0;
                        }
                    }
                    .who {
                        width: 100%;
                        height: 20%;
                        display: flex;
                        justify-content: space-between;
                        padding: .8rem;
                        background: #080d18;
                        align-items: center;
                        border-radius: 0 0 .7rem .7rem;
                        .person {
                            display: flex;
                            flex-wrap: wrap;
                            align-content: flex-start;
                            width: calc(100% - 35px);
                            span {
                                display: block;
                                width: 100%;
                                &.name {
                                    font-size: 1.3rem;
                                    font-weight: 600;
                                    color: #fff;
                                }
                                &.fonction {
                                    font-style: italic;
                                    color: #fff;
                                    opacity: .7;
                                }
                            }
                        }
                        .social {
                            width: 35px;
                            height: 35px;
                            background: white;
                            border-radius: 8px;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            svg {
                                width: 75%;
                                height: 75%;
                                path {
                                    fill: #080d18;
                                }
                            }
                        }
                    }
                }
                .flip-card-back {
                    transform: rotateY(180deg);
                    display: flex;
                    flex-wrap: wrap;
                    .pic-container {
                        width: 100%;
                        height: 80%;
                        position: relative;
                        display: flex;
                        align-items: center;
                        img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                            object-position: center top;
                            border-radius: .7rem .7rem 0 0;
                            position: absolute;
                            top: 0;
                            left: 0;
                            opacity: .1;
                            z-index: 1;
                        }
                        .overview {
                            padding: 0 1rem;
                            position: relative;
                            z-index: 2;
                            font-size: .9em;
                            p {
                                margin-bottom: 1rem;
                                font-size: 1.1em;
                                padding: 0;
                            }
                            .cta {
                                width: auto;
                                display: inline-flex;
                            }
                        }
                    }
                    .who {
                        width: 100%;
                        height: 20%;
                        display: flex;
                        justify-content: space-between;
                        padding: .8rem;
                        background: #080d18;
                        align-items: center;
                        border-radius: 0 0 .7rem .7rem;
                        .person {
                            display: flex;
                            flex-wrap: wrap;
                            align-content: flex-start;
                            width: calc(100% - 35px);
                            span {
                                display: block;
                                width: 100%;
                                &.name {
                                    font-size: 1.3rem;
                                    color: #fff;
                                    font-weight: 600;
                                }
                                &.fonction {
                                    font-style: italic;
                                    color: #fff;
                                    opacity: .7;
                                }
                            }
                        }
                        .social {
                            width: 35px;
                            height: 35px;
                            display: flex;
                            a {
                                height: 100%;
                                width: 100%;
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                background: white;
                                border-radius: 8px;
                                svg {
                                    width: 75%;
                                    height: 75%;

                                    path {
                                        fill: #080d18;
                                    }
                                }
                                &:hover {
                                    background: var(--blue);
                                }
                            }
                        }
                    }
                }
                &:hover {
                    > .flip-card-inner {
                        transform: rotateY(180deg);
                    }
                }
            }
        }
    }
}



/* modals */
.bio-container {
    visibility: hidden;
    display: flex;
    position: fixed;
    align-items: center;
    justify-content: center;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100vw;
    height: 100vh;
    opacity: 0;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    pointer-events: none;
    .bio {
        width: 70vw;
        height: 70vh;
        background: white;
        border-radius: 1rem;
        padding: 3rem;
        position: relative;
        box-shadow: 0 0 25px 0px #bbb78f;
        .close {
            position: absolute;
            z-index: 6;
            right: 1rem;
            top: 1rem;
            svg {
                width: 2rem;
                height: 2rem;
                circle {
                    stroke: var(--main-text-color);
                    fill: var(--main-text-color);
                }
                path {
                    stroke: white;
                }
            }
        }
        .content {
            width: 100%;
            height: 100%;
            display: none;
            gap: 2rem;
            .bio-content {
                width: 65%;
                display: flex;
                flex-direction: column;
                color: var(--main-text-color);
                h3 {
                    margin: 0;
                    font-weight: 800;
                    font-size: 2.5em;
                    line-height: 1.5em;
                }
                .position {
                    display: block;
                    width: 100%;
                    font-style: italic;
                    margin-bottom: .5rem;
                }
                .social {
                    width: 100%;
                    margin-bottom: .5rem;
                    a {
                        width: 35px;
                        height: 35px;
                        background: var(--main-text-color);
                        border-radius: 8px;
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        svg {
                            width: 75%;
                            height: 75%;
                            path {
                                fill: #fff;
                            }
                        }
                    }
                }
                .full-bio {
                    height: 100%;
                    overflow-y: auto;
                    flex: 1;
                    min-height: 0;
                    padding-right: 2rem;
                    p,ul {
                        font-size: 1.1em;
                    }
                }
            }
            .picture {
                width: 35%;
                display: flex;
                align-items: flex-end;
                justify-content: flex-end;
                img {
                    height: auto;
                    width: 100%;
                }
            }
            &.on {
                display: flex;
            }
        }
    }
    &.on {
        opacity: 1;
        visibility: visible;
        pointer-events: all;
    }
}


/* section eqlab21 dans approche */
.eqlab21 {
    padding: 10vh 0 0 0;
    margin: 0;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    .logo-container {
        width: 100%;
        display: flex;
        justify-content: center;
        svg {
            width: 40%;
            max-width: 500px;
            g.letters {
                path {
                    fill: #000;
                }
            }
            .dot {
                fill: var(--actionBlue);
            }
        }
    }
    .change {
        width: 100%;
        display: flex;
        justify-content: center;
        font-size: 2rem;
        font-weight: 700;
    }
    .principes {
        width: 100%;
        display: flex;
        justify-content: center;
        margin: 2rem 0 3rem 0;
    }
    .two-points {
        width: 100%;
        display: flex;
        justify-content: space-between;
        overflow: hidden;
        .item {
            width: 49%;
            display: flex;
            flex-wrap: wrap;
            .front {
                display: flex;
                width: 100%;
                height: 20vh;
                background-color: var(--actionBlue);
                position: relative;
                z-index: 2;
                span {
                    color: #fff;
                    font-size: 2rem;
                    font-weight: bold;
                    line-height: 1em;
                    display: flex;
                    padding: 0 4rem;
                    align-items: center;
                    width: 100%;
                }
            }
            .back {
                display: flex;
                width: 100%;
                background-color: var(--darkBlue);
                position: relative;
                z-index: 1;
                height: 15vh;
                transform: translateY(-15vh);
                opacity: 0;
                transition: border-radius 0.3s ease 1.5s, opacity 0s ease 1s, transform .8s ease-in-out 1.3s;
                span {
                    display: flex;
                    color: #fff;
                    padding: 0 4rem;
                    align-items: center;
                    width: 100%;
                }
                &.revealed {
                    transform: translateY(0);
                    opacity: 1;
                }
            }
            &.left {
                .front {
                    border-radius: 0 10vh 0 0;
                    span {
                        justify-content: right;
                        text-align: right;
                    }
                }
                .back {
                    border-radius: 0 5rem 10vh 0;
                    span {
                        justify-content: right;
                        text-align: right;
                    }
                    &.revealed {
                        border-radius: 0 0 10vh 0;
                    }
                }
            }
            &.right {
                .front {
                    border-radius: 10vh 0 0 0;
                }
                .back {
                    border-radius: 5rem 0 0 10vh;
                    span {
                        justify-content: right;
                    }
                    &.revealed {
                        border-radius: 0 0 0 10vh;
                    }
                }
            }
        }
    }
}


.inscription-form {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    background: var(--actionBlue);
    width: 100%;
    gap: .7rem;
    padding: 2.5rem 1.5rem;
    border-radius: 2rem;
    margin-top: 1rem;
    color: #fff;
    h3 {
        width: 100%;
        margin: 0 !important;
        text-align: center;
        line-height: 1em;
        color: var(--orange);
        font-size: 1.5rem;
    }
    p {
        width: 100%;
        text-align: center;
        margin: 0;
        &.next {
            font-size: 1.2rem;
            font-weight: 600;
        }
    }
    form {
        display: flex;
        gap: 1rem;
        .form-block {
            &.for-submit {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                margin-top: 1.2rem;
                justify-content: flex-end;
                input[type=submit] {
                    border-radius: 2rem;
                    font-size: 1rem;
                    font-weight: 700;
                    padding: 1rem 1.5rem .9rem 1.8rem;
                    background: var(--main-text-color);
                    color: var(--cta-primary-color);
                    line-height: 1.5em;
                    cursor: pointer;
                    &:hover {
                        background: var(--cta-primary-bg-hover);
                        color: #fff;
                    }
                    &.hide {
                        display: none;
                    }
                }
                img.spinner {
                    width: 60px;
                    height: 60px;
                    align-items: center;
                    display: none;
                    &.on {
                        display: block;
                    }
                }
            }
        }
        .result {
            width: 100%;
            display: flex;
            font-weight: 700;
            font-size: 1rem;
            line-height: 1.2em;
            justify-content: center;
            text-align: center;
            margin: .5rem 0 0 0;
            &.bad {
                color: #b94242;
                background: #ffc9c9;
                padding: 1rem;
                border-radius: 1rem;
            }
            &.good {
                color: #1b5519;
                background: #b3f5b3;
                padding: 1rem;
                border-radius: 1rem;
            }
        }
        .mentions {
            margin: 0 0 .5rem 0;
            font-size: .8em;
            text-align: left;
        }
    }
}


.web-app {
    width: 100%;
    background: #c5d7ff;
    justify-content: flex-end;
    padding: 8vh 0;
    display: flex;
    max-width: none;
    border-radius: 2rem;
    margin: 2rem 0 0 0;
    align-items: center;
    position: relative;
    .explain {
        width: 65%;
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 5vh;
        padding-right: 2rem;
        h4 {
            text-align: left;
            padding: 0 1vw 0 0;
            font-size: 2.2rem;
            line-height: 1em;
            margin: 0 0 1rem 0;
        }
        p {
            padding: 0;
            font-size: 1rem;
        }
    }
    .webapp-illus {
        position: absolute;
        width: 40% !important;
        left: -10%;
        bottom: 5%;
        animation: float 6s ease-in-out infinite;
    }
}

.pack {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    margin: 2rem 0 0 0;

    .pack-container {
        padding: 3rem 2rem 3rem 2rem;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        background: #ebf1ff;
        border-radius: 2rem 2rem 0 0;
        position: relative;
        overflow: hidden;
        border: 2px solid var(--darkBlue);
        .item {
            width: 100%;
            display: flex;
            padding: 1rem 0;
            text-align: center;
            justify-content: center;
            font-size: 1.1em;
            font-weight: 600;
            border-bottom: 1px dotted #59677e;

            &:last-child {
                border: 0;
            }
        }

        .bandeau {
            position: absolute;
            right: -61px;
            top: 25px;
            display: block;
            width: 14rem;
            font-weight: 600;
            font-size: .8rem;
            text-transform: uppercase;
            text-align: center;
            background: #546a8e;
            padding: 5px 0;
            transform: rotate(35deg);
            color: #fff;
        }
    }

    .price {
        width: calc(100% + 2rem);
        padding: 1.5rem 0;
        font-size: 1.8em;
        font-weight: 700;
        letter-spacing: -0.03em;
        background: var(--darkBlue);
        color: #ffffff;
        text-align: center;
        border-radius: 0 0 2rem 2rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}



/* ##################################################################################################### */
/* ##################################  R E S P O N S I V E  ############################################ */
/* ##################################################################################################### */
/* Ecrans larges */
@media (max-height: 768px) and (min-width: 1366px) {
    .parcours {
        margin: 10vh 0;
        .timeline {
            height: 2rem;
            top: calc(40vh - 1rem);
        }
        .progress-container {
            height: 2rem;
            top: calc(40vh - 1rem);
        }
        .steps {
            height: 80vh;
        }
    }
}
/* Small Laptops */
@media screen and (min-width: 1024px) and (max-width: 1366px) {

}
@media (max-width: 1500px) {
    .card-container {
        padding: 6vh 9vw 0 9vw;
        &.for-parcours {
            .card {
                width: 32%;
            }
        }
    }
}
@media (max-width: 1366px) {
    .hero-layout {
        .header {
            padding: 0 6vw;
        }
        .sub-header {
            padding: 0 6vw 10vh 6vw;
            .big-word {
                font-size: 24vh;
            }
            p {
                font-size: 1.5rem;
            }
        }
        &.dark {
            .sub-header {
                padding: 0 6vw 10vh 6vw;
            }
        }
    }
    .text-with-blue-box {
        padding: 10vh 6vw 0 6vw;
        .left {
            p {
                width: 100%;
                font-size: 1.3rem;
            }
        }
        .right {
            .content {
                padding: 5vh 8vw 5vh 6vw;
                span {
                    font-size: 1.3rem;
                }
            }
        }
    }
    .half-content {
        padding: 6vh 6vw 0 6vw;
        .right {
            padding: 0;
        }
        ul {
            li {
                padding-left: 2.5rem;
                &::before {
                    width: 1.4rem;
                    height: 1.4rem;
                    top: .2em;
                }
            }
        }
    }
    .reports {
        padding: 6vh 6vw 0 6vw;
    }
    .science {
        padding: 6vh 0;
        .left {
            padding-left: 6vw;
        }
        .right {
            padding: 3rem 1rem 3rem 3rem;
            .item {
                margin: 0 0 2rem 0;
                gap: .5rem;
                p {
                    width: 90%;
                    font-size: 1rem;
                    margin: 0 0 2rem 0;
                }
            }
        }
    }
    .card-container {
        padding: 6vh 6vw 0 6vw;
        &.for-parcours {
            .card {
                .flip-card-container {
                    .flip-card-inner {
                        .card-front {
                            .content {
                                .baseline {
                                    font-size: .8rem;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .parcours {
        margin: 10vh 0;
        .timeline {
            height: 2rem;
            top: calc(30vh - 1rem);
        }
        .progress-container {
            height: 2rem;
            top: calc(30vh - 1rem);
        }
        .steps {
            .step {
                .dot {
                    width: 3rem;
                    height: 3rem;
                }
                .content {
                    &.bottom {
                        padding: 0;
                    }
                    img {
                        width: 19%;
                    }
                    .title {
                        font-size: 1.2rem;
                    }
                    .detail {
                        line-height: 1.2em
                    }
                }
                &.first {
                    .content {
                        &.bottom {
                            bottom: 2rem;
                        }
                    }
                }
            }
        }
    }
    .conclusion {
        padding: 6vh 6vw 0 6vw;
    }
    .associes {
        .associes-container {
            .associe {
                .flip-card-container {
                    .flip-card-back {
                        .pic-container {
                            .overview {
                                line-height: 1em;
                            }
                        }
                    }
                }
            }
        }
    }
    .bio-container {
        .bio {
            padding: 2rem;
            height: 60vh;
            .content {
                .bio-content {
                    width: 65%;
                }
                .picture {
                    width: 35%;
                }
            }
        }
    }
    @keyframes slow-rotate {
        from {
            transform: translateX(0) rotate(0deg);
        }
        to {
            transform: translateX(0) rotate(360deg);
        }
    }
    .test-eqi {
        padding: 6vh 6vw 0 6vw;
        .eqi-form-container {
            form {
                padding: 1.5rem;
                .item {
                    padding: 1.5rem 0 1.5rem .5rem;
                    .question {
                        font-size: 1.1rem;
                    }
                }
            }
        }
    }
}
@media (max-width: 1199px) {
    .hero-layout {
        .header {
            padding: 6vh 5vw 0 5vw;
            h1 {
                font-size: 3rem;
                &.centered {
                    width: 70%;
                }
            }
        }
        .sub-header {
            padding: 6vh 5vw 0 5vw;
            .big-word {
                font-size: 20vh;
            }
            p {
                &.centered {
                    width: 70%;
                }
                &.citation {
                    line-height: 1.2em;
                }
            }
        }
        &.dark {
            .sub-header {
                padding: 0 5vw 5vh 5vw;
            }
        }
    }
    h2 {
        font-size: 2rem;
    }
    .text-with-blue-box {
        padding: 10vh 5vw 0 5vw;
    }
    .half-content {
        padding: 6vh 5vw 0 5vw;
        &.for-circles {
            flex-wrap: wrap;
            .left {
                width: 100%;
                order: 2;
                &.centered-sm {
                    justify-content: center;
                }
            }
            .right {
                width: 100%;
                order: 1;
                margin: 0 0 5vh 0;
            }
        }
        &.for-explain-approach {
            flex-wrap: wrap;
            .left {
                width: 100%;
                padding: 0;
            }
            .right {
                width: 100%;
                padding: 12vh 0 0 0;
                &.flex {
                    justify-content: center;
                }
            }
        }
    }
    .illus-approach {
        .change {
            top: -23%;
        }
        .me, .others {
            top: -8%;
        }
    }
    .reports {
        padding: 2vh 5vw 0 5vw;
        gap: 2rem;
        .item {
            .report {
                .title {
                    font-size: 1.3rem;
                }
            }
            p {
                font-size: 1rem;
            }
        }
    }
    .science {
        .left {
            padding-left: 5vw;
            p {
                margin: 0;
            }
        }
        .right {
            .item {
                margin: 0 0 1rem 0;
                p {
                    margin: 0 0 1rem 0;
                }
            }
        }
    }
    .card-container {
        padding: 6vh 3vw 0 3vw;
        gap: 2rem;
        .card {
            .flip-card-container {
                .flip-card-inner {
                    .card-front {
                        .title {
                            padding: 1.5rem;
                            font-size: 1.2rem;
                        }
                        .content {
                            .baseline {
                                span {
                                    &.sub {
                                        &.bigger {
                                            font-size: 1rem;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    .card-back {
                        .content {
                            padding: 1.5rem;
                            .sub-title {
                                font-size: 1rem;
                            }
                            p,ul {
                                font-size: .8rem;
                            }
                        }
                    }
                }
            }
        }
        &.for-parcours {
            .card {
                width: 37%;
            }
        }
    }
    .conclusion {
        padding: 6vh 5vw 0 5vw;
    }
    .web-app {
        padding: 0;
        height: auto;
        flex-wrap: wrap;
        justify-content: center;
        .webapp-illus {
            left: inherit;
            bottom: inherit;
            width: 55% !important;
            position: relative;
            order: 1;
            margin: 2rem 0;
        }
        .explain {
            padding: 0 2rem;
            width: calc(100% - 4rem);
            order: 2;
        }
    }
    .associes {
        .associes-container {
            gap: 1rem;
        }
    }
    .bio-container {
        .bio {
            width: 80vw;
            height: 50vh;
            .content {
                .bio-content {
                    width: 65%;
                }
                .picture {
                    width: 35%;
                }
            }
        }
    }
    .test-eqi {
        padding: 6vh 5vw 0 5vw;
        .eqi-form-container {
            form {
                .guide {
                    gap: 1rem;
                    .bk {
                        width: 45%;
                    }
                    .choices-list {
                        width: 55%;
                        span {
                            font-size: .8rem;
                            padding: 0 .5rem;
                        }
                    }
                }
                .item {
                    gap: 1rem;
                    .question {
                        width: 45%;
                    }
                    .choices {
                        width: 55%;
                    }
                }
            }
        }
    }
}
@media (max-width: 991px) {
    .hero-layout {
        .sub-header {
            .big-word {
                font-size: 15vh;
            }
            p {
                width: 100%;
                &.for-approche {
                    span {
                        font-size: 6vh;
                    }
                }
            }
            .sep {
                height: 3rem;
                bottom: -1.5rem;
                width: 25%;
            }
        }
    }
    .text-with-blue-box {
        flex-wrap: wrap;
        justify-content: flex-end;
        .left {
            width: 100%;
            margin: 0 0 6vh 0;
        }
        .right {
            width: 80%;
            transform: translateX(0);
            .citation {
                span.author {
                    margin-top: 2rem;
                    font-size: 1.5rem;
                }
            }
            .quote-sup {
                font-size: 17vh;
            }
            .quote-inf {
                font-size: 10vh;
                bottom: 6rem;
            }
        }
    }
    .half-content {
        &.for-certif {
            flex-wrap: wrap;
            .left {
                &.half-plus {
                    width: 100%;
                    padding: 0;
                }
            }

            .right {
                &.half-less {
                    width: 100%;
                    padding: 0;
                }
            }
        }
        &.with-gap {
            gap: 0;
            flex-wrap: wrap;
            .left {
                padding: 0;
                width: 100%;
            }
            .right {
                width: 100%;
            }
        }
        &.wrap {
            .left {
                &.half-less {
                    width: 100%;
                }
            }
            .right {
                &.half-plus {
                    width: 100%;
                }
            }
        }
    }
    .reports {
        flex-wrap: wrap;
        justify-content: center;
        gap: 4rem;
        .item {
            width: 35%;
            margin: 0 !important;
            p {
                font-size: 1.1rem;
            }
        }
    }
    .card-container {
        padding: 6vh 5vw 0 5vw;
        gap: 4rem;
        .card {
            width: 45%;
            .flip-card-container {
                .flip-card-inner {
                    .card-front {
                        .title {
                            padding: 1.5rem;
                            font-size: 1.5rem;
                        }
                        .content {
                            .baseline {
                                span {
                                    &.sub {
                                        &.bigger {
                                            font-size: 1.2rem;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    .card-back {
                        .content {
                            padding: 1.5rem;
                            .sub-title {
                                font-size: 1.2rem;
                            }
                            p,ul {
                                font-size: 1rem;
                            }
                        }
                    }
                }
            }
        }
        &.for-parcours {
            .card {
                width: 60%;
                aspect-ratio: 1 / 1.5;
                .flip-card-container {
                    .flip-card-inner {
                        .card-front {
                            .content {
                                .baseline {
                                    font-size: 1.1rem;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .parcours {
        .timeline {
            height: 2rem;
            top: calc(25vh - 1rem);
        }
        .progress-container {
            height: 2rem;
            top: calc(25vh - 1rem);
        }
        .steps {
            height: 50vh;
            .step {
                .content {
                    &.top {
                        padding: 0;
                    }
                    &.bottom {
                        padding: 0;
                    }
                }
            }
        }
    }
    .eqlab21 {
        padding: 6vh 0 0 0;
    }
    .associes {
        .associes-container {
            width: 100%;
            flex-wrap: wrap;
            justify-content: center !important;
            padding: 2rem 0;
            .associe {
                width: 45% !important;
            }
        }
    }
    .test-eqi {
        .eqi-form-container {
            form {
                .guide {
                    flex-wrap: wrap;
                    &.sticked {
                        padding-top: 12vh;
                    }
                    .bk {
                        display: none;
                    }
                    .choices-list {
                        width: 100%;
                        span {
                            font-size: .9rem;
                            line-height: 1em;
                        }
                    }
                }
                .item {
                    flex-wrap: wrap;
                    .question {
                        width: 100%;
                    }
                    .choices {
                        width: 100%;
                    }
                }
            }
            #results {
                width: 100%;
                padding: 5rem 2rem 2rem 2rem;
                .graph-wrapper {
                    .graph-container {
                        width: 100%;
                        padding: 2rem;
                    }
                }
                .explain-wrapper {
                    width: 100%;
                    .detail {
                        width: 100%;
                        p, ul {
                            font-size: 1rem;
                        }
                    }
                    .share-result {
                        .share-box {
                            width: 80%;
                        }
                        .check-zone {
                            .rgpd-zone, .com-zone {
                                width: 72%;
                                span {
                                    font-size: .8rem;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
@media (max-width: 767px) {
    p,ul {
        font-size: 1.1em;
    }
    .hero-layout {
        .header {
            h1 {
                &.centered {
                    width: 100%;
                }
            }
        }
        .sub-header {
            p {
                &.centered {
                    width: 100%;
                }
                &.for-approche {
                    span {
                        font-size: 2rem;
                    }
                }
            }
            .sep {
                height: 2rem;
                bottom: -1rem;
                width: 25%;
            }
        }
    }
    .text-with-blue-box {
        .left {
            margin: 0 0 4vh 0;
        }
        .right {
            width: 100%;
            .content {
                padding: 3rem;
                border-radius: 2rem;
            }
            .citation {
                border-radius: 2rem;
                padding: 3rem;
            }
            .quote-sup {
                font-size: 13vh;
                left: -2rem;
                top: 5rem;
            }
            .quote-inf {
                font-size: 10vh;
                bottom: 4rem;
            }
        }
    }
    .half-content {
        flex-wrap: wrap;
        .left {
            width: 100%;
            padding: 0;
            &.centered-sm {
                text-align: center;
                justify-content: center;
            }
            p {
                &.bigger {
                    font-size: 1.5rem;
                }
                &.larger {
                    font-size: 1.3rem;
                }
            }
        }
        .right {
            width: 100%;
            padding: 0;
        }
        &.for-explain-approach {
            .right {
                margin-top: 0;
            }
        }
    }
    .reports {
        padding: 6vh 6vw 0 6vw;
        gap: 3rem;
        .item {
            width: 45%;
        }
    }
    .science {
        padding: 6vh 6vw 0 6vw;
        flex-wrap: wrap;
        gap: 6vh;
        .left {
            width: 100%;
            padding: 0;
        }
        .right {
            width: 100%;
            border-radius: 2rem;
            padding: 3rem;
            .item {
                margin: 0 0 1rem 0;
                p {
                    margin: 0 0 1rem 0;
                }
            }
        }
    }
    .wheel {
        width: 70% !important;
    }
    .card-container {
        padding: 6vh 5vw 0 5vw;
        gap: 4rem;
        .card {
            width: 70%;
            .flip-card-container {
                .flip-card-inner {
                    .card-front {
                        .title {
                            padding: 2rem;
                            font-size: 1.6rem;
                        }
                        .content {
                            .baseline {
                                span {
                                    &.sub {
                                        &.bigger {
                                            font-size: 1.2rem;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    .card-back {
                        .content {
                            padding: 2rem;
                            gap: 2rem;
                            .sub-title {
                                font-size: 1.4rem;
                            }
                            p,ul {
                                font-size: 1.1rem;
                            }
                        }
                    }
                }
            }
        }
        &.for-parcours {
            .card {
                width: 70%;
            }
        }
    }
    .parcours {
        margin: 3vh 0;
        .timeline {
            height: 2rem;
            top: calc(20vh - 1rem);
        }
        .progress-container {
            height: 2rem;
            top: calc(20vh - 1rem);
        }
        .steps {
            height: 40vh;
            .step {
                .content {
                    .detail {
                        display: none;
                    }
                    img {
                        width: 40%;
                    }
                    &.top {
                        top: 10%;
                    }
                }
                &.revealed {
                    .line {
                        &.bottom {
                            height: 25%;
                        }
                    }
                }
            }
            .top-legend, .bottom-legend {
                display: none;
            }
        }
        .sm-legend {
            display: flex;
        }
    }
    .eqlab21 {
        .change {
            font-size: 1.5rem;
        }
        .principes {
            padding: 0 1rem;
            text-align: center;
            margin: 0;
        }
        .two-points {
            flex-wrap: wrap;
            justify-content: center;
            .item {
                width: 85%;
                .front {
                    height: 15vh;
                }
                .back {
                    height: 12vh;
                }
                &.left {
                    .front {
                        border-radius: 3rem 3rem 0 0;
                    }
                    .back {
                        border-radius: 3rem 3rem 0 0;
                        &.revealed {
                            border-radius: 0 0 3rem 3rem;
                        }
                    }
                }
                &.right {
                    margin-top: 4vh;
                    .front {
                        border-radius: 3rem 3rem 0 0;
                    }
                    .back {
                        border-radius: 3rem 3rem 0 0;
                        &.revealed {
                            border-radius: 0 0 3rem 3rem;
                        }
                    }
                }
            }
        }
    }
    .associes {
        .associes-container {
            background-color: transparent;
            gap: 2rem;
            .associe {
                width: 75% !important;
                padding: 0;
                .flip-card-container {
                    .flip-card-inner {
                        .flip-card-back {
                            .pic-container {
                                .overview {
                                    font-size: 1rem;
                                }
                            }
                        }
                    }
                }
            }

            .card-container {
                .card {
                    width: 65%;
                }
            }
        }
    }
    .bio-container {
        .bio {
            height: calc(100vh - 2rem);
            padding: 2rem;
            overflow-y: auto;
            width: 95%;
            .close {
                position: sticky;
                right: inherit;
                left: 95%;
                top: 1rem;
            }
            .content {
                flex-wrap: wrap;
                gap: 0;
                .bio-content {
                    order: 2;
                    width: 100%;
                    padding-bottom: 2rem;
                    h3 {
                        text-align: center;
                        font-size: 1.3rem;
                        line-height: 1em;
                    }
                    .position {
                        text-align: center;
                    }
                    .social {
                        text-align: center;
                        a {
                            display: inline-flex;
                        }
                    }
                    .full-bio {
                        height: auto;
                        padding: 0;
                    }
                }
                .picture {
                    justify-content: center;
                    width: 100%;
                    order: 1;
                    img {
                        width: 200px;
                        border-radius: 1rem;
                        margin: 0 0 2rem 0;
                    }
                }
            }
        }
    }
    .test-eqi {
        padding: 6vh 0vw 0 0vw;
        .eqi-form-container {
            form {
                border-radius: .5rem;
                padding: 0;
                .guide {
                    flex-wrap: wrap;
                    &.sticked {
                        padding: 14vh 0 1.5rem 0;
                    }
                    .bk {
                        display: none;
                    }
                    .choices-list {
                        width: 100%;
                        gap: 0;
                        span {
                            font-size: .7em;
                            line-height: 1em;
                        }
                    }
                }
                .item {
                    padding: 1.5rem .5rem;
                    border-radius: 0;
                    .question {
                        font-size: 1rem;
                        line-height: 1.2em;
                    }
                    .choices {
                        gap: 0;
                        label {
                            input {
                                width: 20px;
                                height: 20px;
                            };
                        }
                    }
                }
                .validate {
                    gap: 0;
                    padding: 1rem;
                    flex-wrap: wrap;
                    .bk {
                        display: none;
                    }
                    .valid-zone {
                        width: 100%;
                        justify-content: center;
                    }
                }
            }
            #results {
                padding: 5rem 0 2rem 0;
                gap: 1.5rem;
                .graph-wrapper {
                    .graph-container {
                        border-radius: 0;
                        padding: .5rem;
                        canvas {
                            height: 245px;
                        }
                    }
                }
                .explain-wrapper {
                    .detail {
                        padding: 0 2rem;
                    }
                    .share-result {
                        p {
                            font-size: 1.3rem;
                        }
                        .share-box {
                            border-radius: 1rem;
                            padding: 1rem;
                            form {
                                flex-wrap: wrap;
                                input[type=text] {
                                    width: 100%;
                                    height: 2.5rem;
                                }
                                button {
                                    width: 100%;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
@media (max-width: 650px) {
    .card-container {
        padding: 6vh 3vw 0 3vw;
        gap: 2rem;
        .card {
            width: 100%;
        }
        &.for-parcours {
            padding-top: 0;
            .card {
                width: 100%;
            }
        }
    }
    .parcours {
        margin-top: 0;
        .timeline {
            height: 1rem;
            top: calc(25vh - .5rem);
        }
        .progress-container {
            height: 1rem;
            top: calc(25vh - .5rem);
        }
        .steps {
            margin-bottom: 5vh;
            height: 50vh;
            .step {
                .dot {
                    height: 2rem;
                    width: 2rem;
                }
                .content {
                    .title {
                        font-size: 1rem;
                        line-height: 1em;
                    }
                    img {
                        width: 65%;
                    }
                }
            }
        }
    }
    .illus-approach {
        width: 85%;
        .me, .others, .actions, .conscience {
            font-size: .8rem;
        }
        .me, .others {
            top: -24%;
        }
        .change {
            top: -41%;
            font-size: 1rem;
            width: 80%;
            text-align: left;
        }
        .block {
            span {
                font-size: .8rem;
                line-height: 1em;
                font-weight: 400
            }
        }
    }
}
@media (max-width: 550px) {
    .hero-layout {
        .header {
            h1 {
                font-size: 2rem;
            }
        }
        .sub-header {
            p {
                font-size: 1.3rem;
                &.citation {
                    font-size: 1.5rem;
                    .quote-inf {
                        font-size: 9vh;
                        left: 1rem;
                        top: 3rem;
                    }
                    .quote-sup {
                        font-size: 13vh;
                        left: -3rem;
                        top: 0;
                    }
                }
            }
        }
    }
    .text-with-blue-box {
        .right {
            .content {
                padding: 2rem;
                border-radius: 1rem;
            }
        }
    }
    .reports {
        gap: 3rem;
        .item {
            width: 80%;
        }
    }
    .science {
        .right {
            border-radius: 1rem;
            padding: 2rem;
            .item {
                width: 100%;
                p {
                    margin: 0 0 1rem 0;
                }
            }
        }
    }
    .web-app {
        .explain {
            padding: 0;
        }
    }
    .associes {
        .associes-container {
            width: 100%;
            padding: 0;

            .associe {
                width: 100% !important;
                max-width: 350px;

                .flip-card-container {
                    .flip-card-inner {
                        .flip-card-back {
                            .pic-container {
                                .overview {
                                    font-size: .9rem;

                                    p {
                                        line-height: 1.3em;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .eqlab21 {
        .two-points {
            .item {
                .front {
                    border-radius: 1rem 1rem 0 0 !important;
                    span {
                        justify-content: center !important;
                        text-align: center !important;
                        padding: 0 1rem;
                    }
                }
                .back {
                    height: auto;
                    border-radius: 0 0 1rem 1rem !important;
                    span {
                        justify-content: center !important;
                        text-align: center !important;
                        padding: 1rem;
                    }
                }
            }
        }
    }
}