/* Page Concept — le socle (police, reset, variables, header, hero de page, CTA, footer) est dans common.css */

.concept {
    padding: min(100px, 8vw) calc(100px + (100% / 12));
    background-color: #FFF;

    h2 {
        font-size: 2.2vw;
        font-variation-settings: 'wdth' 80, 'wght' 300;
        color: var(--text-color-dark);
        text-transform: uppercase;
        margin-bottom: 0.5vw;
        translate: 0 calc(1.4vw + 100%);
        transition-duration: 1500ms;
        transition-timing-function: cubic-bezier(0, 0, 0, 1);
    }

    .container {
        display: flex;
        justify-content: space-between;
        background-color: #FFF;
        position: sticky;
        
        .concept-text {
            width: 60%;

            .text-content {
                font-variation-settings: 'wdth' 100, 'wght' 250;
                font-size: 1.2vw;
                padding-bottom: 65px;

                .text-important {
                    color: var(--color-red);
                    font-variation-settings: 'wdth' 100, 'wght' 350;
                }
            }
            .block-citation {
                display: flex;
                width: 70%;
                .double-quotte {
                    color: var(--color-red);
                    opacity: .3;
                    font-size: 10vw;
                    line-height: 0.4;
                }
                .text-citation {
                    font-variation-settings: 'wdth' 100, 'wght' 450;
                    font-size: 1.3vw;
                }
            }
        }
        .concept-image {
            width: 30%;
            overflow: hidden;

            img {
                width: 100%;
                height: auto;
                transition-duration: 1500ms;
                transition-timing-function: cubic-bezier(0, 0, 0, 1);
                scale: 1.2;
            }
        }
    }


    &.active h2 {
        translate: 0 0;
    }

    &.active {
        .concept-image {
            img {
                scale: 1;
            }
        }
    }
}

.principles {
    padding: min(100px, 8vw) calc(100px + (100% / 12));
    background-color: #F7F7F7;
    .container {
        h2 {
            font-size: 2.2vw;
            font-variation-settings: 'wdth' 80, 'wght' 300;
            color: var(--text-color-dark);
            text-transform: uppercase;
            margin-bottom: 0.5vw;
            text-align: center;
            margin-bottom: 70px;
        }
        .principles-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: max-content;
            gap: 1.5vw;

            .principle-card {
                background-color: #ffffff;
                padding: 40px 25px;
                width: 100%;

                .icon {
                    height: 45px;
                    display: flex;
                    justify-content: start;
                    margin-bottom: 1vw;
                    align-items: flex-end;
                    img {
                        object-fit: contain;
                        max-width: 25px;
                        height: fit-content;
                    }
                }
                h3 {
                    margin-bottom: 2vw;
                    color: #32281D;
                    font-size: 1.8vw;
                    font-style: normal;
                    font-weight: 500;
                    line-height: normal;
                }
                p {
                    color: rgba(50, 40, 29, 0.70);
                    font-size: 1.1vw;
                    font-style: normal;
                    font-weight: 500;
                    line-height: normal;
                }
            }
        }
    }
}

.how-it-works {
    padding: min(100px, 8vw) calc(100px + (100% / 12));
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    .section-title {
        color: #000;
        font-size: 39.674px;
        font-weight: 500;
        text-align: center;
        margin-bottom: 70px;
    }
    .steps {
        width: 100%;
        max-width: 750px;

        .step {
            display: flex;
            padding: 10px;
            align-items: center;
            margin-bottom: 25px;
            background-color: #F7F7F7;

            .step-number {
                width: 14%;
                color: #781E24;
                text-align: center;
                font-size: 96px;
                font-weight: 500;
            }
            .step-content {
                width: 86%;
                .title-step {
                    color: #32281D;
                    font-size: 24.455px;
                    font-weight: 700;
                }
                .text-content {
                    color: rgba(50, 40, 29, 0.70);
                    font-size: 20px;
                    font-weight: 400;
                }
            }
        }
    }
}

@media (max-width: 1200px) {
    .concept {
            padding: 60px 60px;
        }

    .concept h2 {
            font-size: 3vw;
        }

    .concept .container .concept-text .text-content {
            font-size: 1.6vw;
            padding-bottom: 40px;
        }

    .concept .container .concept-text .block-citation {
            width: 90%;
        }

    .concept .container .concept-text .block-citation .text-citation {
            font-size: 1.8vw;
        }

    .principles {
            padding: 60px 60px;
        }

    .principles .container h2 {
            font-size: 3vw;
            margin-bottom: 50px;
        }

    .principles .container .principles-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
        }

    .principles .container .principles-grid .principle-card h3 {
            font-size: 2.4vw;
            margin-bottom: 15px;
        }

    .principles .container .principles-grid .principle-card p {
            font-size: 1.6vw;
            line-height: 1.5;
        }

    .how-it-works {
            padding: 60px 60px;
        }
}

@media (max-width: 900px) {
    .concept {
            padding: 50px 30px;
        }

    .concept h2 {
            font-size: 5vw;
        }

    .concept .container {
            flex-direction: column;
        }

    .concept .container .concept-text {
            width: 100%;
        }

    .concept .container .concept-text .text-content {
            font-size: clamp(15px, 3.2vw, 18px);
            padding-bottom: 25px;
        }

    .concept .container .concept-text .block-citation {
            width: 100%;
        }

    .concept .container .concept-text .block-citation .double-quotte {
            font-size: 15vw;
        }

    .concept .container .concept-text .block-citation .text-citation {
            font-size: clamp(15px, 3.5vw, 20px);
        }

    .concept .container .concept-image {
            width: 100%;
            margin-top: 40px;
        }

    .concept .container .concept-image img {
            scale: 1 !important;
            border-radius: 4px;
        }

    .principles {
            padding: 50px 30px;
        }

    .principles .container h2 {
            font-size: 5vw;
            margin-bottom: 40px;
        }

    .principles .container .principles-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
        }

    .principles .container .principles-grid .principle-card {
            padding: 25px 20px;
        }

    .principles .container .principles-grid .principle-card h3 {
            font-size: clamp(16px, 3vw, 22px);
            margin-bottom: 12px;
        }

    .principles .container .principles-grid .principle-card p {
            font-size: clamp(13px, 2.2vw, 16px);
            line-height: 1.5;
        }

    .how-it-works {
            padding: 50px 30px;
        }

    .how-it-works .section-title {
            font-size: 28px;
            margin-bottom: 40px;
        }

    .how-it-works .steps .step .step-number {
            font-size: 60px;
            width: 18%;
        }

    .how-it-works .steps .step .step-content .title-step {
            font-size: 20px;
        }

    .how-it-works .steps .step .step-content .text-content {
            font-size: 15px;
        }
}

@media (max-width: 600px) {
    .concept {
            padding: 40px 20px;
        }

    .concept h2 {
            font-size: 6.5vw;
            margin-bottom: 5px;
        }

    .concept .container {
            flex-direction: column;
        }

    .concept .container .concept-text {
            width: 100%;
        }

    .concept .container .concept-text .text-content {
            font-size: 15px;
            padding-bottom: 20px;
        }

    .concept .container .concept-text .block-citation {
            width: 100%;
            gap: 5px;
        }

    .concept .container .concept-text .block-citation .double-quotte {
            font-size: 20vw;
            line-height: 0.35;
        }

    .concept .container .concept-text .block-citation .text-citation {
            font-size: 15px;
        }

    .concept .container .concept-image {
            width: 100%;
            margin-top: 30px;
        }

    .principles {
            padding: 40px 20px;
        }

    .principles .container h2 {
            font-size: 7vw;
            margin-bottom: 30px;
        }

    .principles .container .principles-grid {
            grid-template-columns: 1fr;
            gap: 12px;
        }

    .principles .container .principles-grid .principle-card {
            padding: 25px 20px;
            display: flex;
            flex-direction: column;
        }

    .principles .container .principles-grid .principle-card .icon {
            height: 35px;
            margin-bottom: 12px;
        }

    .principles .container .principles-grid .principle-card h3 {
            font-size: 20px;
            margin-bottom: 8px;
        }

    .principles .container .principles-grid .principle-card p {
            font-size: 14px;
            line-height: 1.5;
        }

    .how-it-works {
            padding: 40px 20px;
        }

    .how-it-works .section-title {
            font-size: 24px;
            margin-bottom: 30px;
        }

    .how-it-works .steps .step {
            flex-direction: column;
            padding: 20px 15px;
            margin-bottom: 15px;
            align-items: flex-start;
        }

    .how-it-works .steps .step .step-number {
            width: 100%;
            text-align: left;
            font-size: 48px;
            line-height: 1;
            margin-bottom: 8px;
        }

    .how-it-works .steps .step .step-content {
            width: 100%;
        }

    .how-it-works .steps .step .step-content .title-step {
            font-size: 18px;
            margin-bottom: 5px;
        }

    .how-it-works .steps .step .step-content .text-content {
            font-size: 14px;
            line-height: 1.5;
        }
}

@media (max-width: 380px) {
    .concept h2 {
            font-size: 22px;
        }

    .concept .container .concept-text .text-content {
            font-size: 14px;
        }

    .principles .container h2 {
            font-size: 22px;
        }

    .how-it-works .section-title {
            font-size: 20px;
        }
}
