:root {
    --octo-main: #0e2356;
    --octo-secondary: #00d2dd;
    --octo-grey: #8691aa;
    --octo-grey-tags: #9fa7bb;
}

@font-face {
    font-display: swap;
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 100 900;
    src: url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body {
    box-sizing: border-box;
    letter-spacing: 0.5px;
    margin: 0;
    padding: 0;
}

body {
    color: var(--octo-main);
    font-family: Outfit, Arial, sans-serif;
    line-height: 1.6;
}

/* General */
h1,
h2 {
    margin-top: 1.5rem;
    text-align: center;
}

h1 {
    color: var(--octo-main);
    font-size: 4rem;
    font-weight: 200;
    margin: 0;
    padding: 70px 0;
    width: 100%;
}

a {
    color: #0077b6;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.hidden {
    display: none !important;
}

.bold {
    font-weight: bolder;
}

@media screen and (min-width: 760px) {
    .introduction {
        width: 100%;
    }

    section {
        width: 100%;
    }
}

@media screen and (max-width: 760px) {
    .introduction {
        width: calc(100% - 15px);
    }

    section {
        width: calc(100% - 15px);
    }
}

.octo-button-container {
    display: flex;
    width: 100%;
    justify-content: center;
    margin-top: 20px;
}

.octo-button {
    color: #0e2356;
    background-color: #00d2dd;
    font-weight: 700;
    font-size: 10px;
    padding: 6px 15px;
    border-radius: 99px;
    text-decoration: none;
    letter-spacing: 2px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
}

.octo-button:hover {
    color: white;
    background-color: #0e2356;
}

/* Structure bound */
.introduction {
    margin: 0 auto;
    max-width: 800px;

    text-align: left;
    color: var(--octo-main);
    font-size: 1rem;
    line-height: 1.8;

    p {
        text-align: justify;
    }
}

.page {
    padding: 50px 0;
}

.separator {
    margin: 2rem auto;
    width: 300px;
    border: 0;
    border-top: 1px solid var(--octo-main);
}

/* merci l'état : https://www.systeme-de-design.gouv.fr/composants-et-modeles/composants/lien/ */
[target="_blank"]::after {
    --icon-size: 1rem;
    --external-link-content: "";
    background-color: currentColor;
    content: "";
    content: var(--external-link-content);
    display: inline-block;
    flex: 0 0 auto;
    height: 1rem;
    height: var(--icon-size);
    margin-left: .25rem;
    -webkit-mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTEwIDZ2Mkg1djExaDExdi01aDJ2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTFoNlptMTEtM3Y4aC0yVjYuNDEzbC03Ljc5MyA3Ljc5NC0xLjQxNC0xLjQxNEwxNy41ODUgNUgxM1YzaDhaIi8+PC9zdmc+);
    mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTEwIDZ2Mkg1djExaDExdi01aDJ2NmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY3YTEgMSAwIDAgMSAxLTFoNlptMTEtM3Y4aC0yVjYuNDEzbC03Ljc5MyA3Ljc5NC0xLjQxNC0xLjQxNEwxNy41ODUgNUgxM1YzaDhaIi8+PC9zdmc+);
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    vertical-align: calc(.375em - .5rem);
    vertical-align: calc((.75em - var(--icon-size))*.5);
    width: 1rem;
    width: var(--icon-size);
}

section {
    background-color: #ffffff;
    border-radius: 10px;
    border: var(--octo-main) solid 1px;
    margin: 2rem auto;
    max-width: 800px;
    transition: all 0.3s;

    .section-header {
        cursor: pointer;

        h2 {
            margin: 0;
            padding-bottom: 6px;
            padding-top: 6px;
            align-content: center;
            align-items: center;
            border-bottom: 1px solid var(--octo-main);
            color: var(--octo-main);
            display: flex;
            font-size: 1.5rem;
            font-weight: 300;
            justify-content: space-between;
            padding: 0 22px;
            position: relative;
            top: -2px;

            img {
                position: relative;
            }

            .lower-image {
                top: 2px;
            }
        }

        summary {
            font-size: 13px;
            line-height: 22px;
            padding: 16px 22px 26px;
        }

        .icon-container {
            position: relative;

            .icon {
                background-color: white;
                border-radius: 99px;
                bottom: -16.5px;
                height: 33px;
                left: calc(50% - 16.5px);
                position: absolute;
                width: 33px;

                .icon-plus {
                    background-image: url(https://octo.com/assets/generic/plus.svg);
                    border-radius: 33px;
                    height: 33px;
                    width: 33px;
                }
            }
        }
    }

    .section-header:hover {
        border-radius: 10px 10px 10px 10px;
        background-color: #e6f2fb;
    }

    ul {
        display: none;
        list-style-type: none;
        padding-left: 1.5rem;
        padding-right: 5px;
        padding-top: 30px;

        li::before {
            color: var(--octo-main);
            font-weight: bold;
            left: 0;
            position: absolute;
        }

        li {
            background-image: url("images/Picto_Empty-Turquoise.svg");
            background-repeat: no-repeat;
            background-position: 0 .15em;
            background-size: 17px;
            padding-left: 1.6em;
            display: list-item;
            line-height: 1.3;
            margin-bottom: 0.8rem;
            position: relative;
            cursor: pointer;

            &.fait {
                background-image: url("images/Picto_Valid-Turquoise.svg");
            }
            &.fait > .capa-text {
                color: var(--octo-secondary);
            }

            &.écarté {
                background-image: url("images/Picto_Unvalid-Turquoise.svg");
            }
            &.écarté > .capa-text {
                text-decoration: line-through;
                color: var(--octo-grey-tags);
            }
        }
    }
}

section:hover h2 {
    color: #005f8d;
}

section.active {
    summary {
        border-bottom: var(--octo-main) solid 1px;
    }

    .icon-plus {
        transform: rotate(45deg);
    }

    .section-header:hover {
        border-radius: 10px 10px 0 0;
    }

    ul {
        display: block;
    }
}

.save-load-container {
    position: fixed;
    right: 15px;
    top: 15px;

    width: 45px;
    height: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 45px;
    border: 1px solid var(--octo-main);

    background-color: white;
    cursor: pointer;

    z-index: 1;

    img {
        width: 35px;
        height: 35px;
        padding-top: 4px;
    }
}

.changelog-collapse-container {
    margin: 2rem auto;
    max-width: 800px;
}

.changelog-container {
    margin: 2rem auto;
    max-width: 800px;
    font-weight: lighter;

    h3 {
        font-weight: lighter;
    }

    ul {
        padding-bottom: 20px;

        li {
            margin-bottom: 5px;
            line-height: 20px;
        }
    }
    
    ul:not(:last-child) {
        border-bottom: 1px solid var(--octo-main);
    }
}

footer {
    display: flex;
    margin: 0 auto;
    max-width: 800px;
    flex-direction: column;
    align-items: center;

    .footer-content {
        max-width: 800px;
        width: 100%;
        border-top: 1px solid var(--octo-main);
        border-bottom: 1px solid var(--octo-main);
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        line-height: 1;

        .container {
            text-align: center;
        }
    }

    @media screen and (min-width: 760px) {
        .footer-content {
            grid-template-columns: 1fr 1fr 1fr;
            width: 100%;
            padding: 10px 0;

            .container:not(:last-of-type) {
                border-right: 1px solid var(--octo-main);
            }
        }
    }



    @media screen and (max-width: 760px) {
        .footer-content {
            grid-template-columns: auto;
            grid-template-rows: 1fr 1fr 1fr;
            justify-content: center;
            width: calc(100% - 15px);

            .container {
                padding: 10px 0;
            }

            .container:not(:last-of-type) {
                border-bottom: 1px solid var(--octo-main);
            }
        }
    }

    .contact {
        color: var(--octo-main);
        font-size: 12px;
        font-weight: 400;
        letter-spacing: .81px;
        margin: 30px;
        width: max-content;
    }

    .better-way {
        width: min-content;
        text-transform: uppercase;
        font-size: 15px;
        font-weight: 700;
        letter-spacing: 5px;
        line-height: 16px;
        margin: auto;
        padding: 30px 0;

        .dot {
            color: var(--octo-secondary);
        }
    }
}