html {
    font-size: 62.5%; /* 10px = 1rem */
}

body {
    font-family: var(--font-main), 'Times New Roman', serif;
    background-color: var(--color-bg-page);
    color: var(--color-brand);
    font-size: 14px;
    line-height: 160%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;

    &.examen, &.formation {
        background: radial-gradient(
            circle 100vh at 90% 150vh, /* rayon 100vh ; alignement horizontal/vertical */
            var(--color-green-pale) 0%,
            var(--color-yellow-pale) 40%,
            transparent 70%
        ),
        var(--color-bg-page);
    }

    &.homepage {
        background:
            radial-gradient(
                circle 100vh at 90% 150vh,
                var(--color-green-pale) 0%,
                var(--color-yellow-pale) 40%,
                transparent 70%
            ),
            radial-gradient(
                circle 100vh at 10% 75%,
                var(--color-green-pale) 0%,
                var(--color-yellow-pale) 40%,
                transparent 70%
            ),
        var(--color-bg-page);
    }
}

main {
    flex: 1;
}

section {
    width: 90%;
    margin: auto;
    padding: 3rem 0;

    @media (min-width: 768px) {
        width: 75%;
    }

    &.w-95 {
        width: 95%;
    }
}

.white-container {
    background: var(--color-white);
    border-radius: 5rem;
    box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.07);
    padding: 3rem;
    margin-bottom: 1.25rem;
}

h1 {
    font-weight: 700;
}

h2 {
    text-align: left;
    font-size: 4rem;
    line-height: 1;
    font-weight: 700;

    @media (min-width: 992px) {
        font-size: 4.8rem;
    }

    @media (min-width: 1400px) {
        font-size: 6rem;
    }
}

h1.page-title, h2.page-title {
    font-size: 4rem;
    margin-top: 0;
    margin-bottom: 3rem;

    @media (min-width: 992px) {
        font-size: 4.8rem;
    }

    @media (min-width: 1400px) {
        font-size: 6rem;
    }
}

p {
    line-height: 110%;
    text-align: justify;
    margin-bottom: 15px;

    &.page-subtitle {
        font-size: 2rem;
        text-align: center;
        margin-bottom: 5rem;
    }
}

a {
    color: var(--color-brand);
    text-decoration: none;
}

.scrollto {
    position: absolute;
    display: block;
    width: 35px;
    height: 25px;
    text-indent: -9999px;
    overflow: hidden;
}

.right {
    float: right;
}

.left {
    float: left;
}

.clear {
    clear: both;
}

label.required::after {
    content: "*";
}

.vh-95 {
    height: 95vh;
}

.vh-50 {
    height: 50vh;
}

span.chapterNumber {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background-color: var(--color-bg-page);
    font-size: 1.2rem;
    font-weight: 700;
}
