/* Présentation et lisibilité du parcours d’inscription */
:root {
    --inscription-vert: #087f70;
    --inscription-fonce: #073f3b;
}

body {
    background: #f4f8f6;
    font-family: "Segoe UI", Arial, sans-serif;
}

.application {
    display: grid;
    grid-template-columns: minmax(370px, 41%) minmax(0, 1fr);
    align-items: stretch;
    min-height: 100vh;
}

.application > .presentation {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    gap: 38px;
    width: auto;
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow: visible;
    padding: clamp(30px, 4vw, 64px);
    color: #fff;
    background:
        radial-gradient(ellipse at 0% 65%, #237f6766, transparent 65%),
        linear-gradient(155deg, #084d45 0%, #063a36 58%, #062f2d 100%);
}

.presentation .marque {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    color: #fff;
    text-decoration: none;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: -.7px;
}

.presentation .symbole {
    display: grid;
    place-items: center;
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    border-radius: 16px;
    background: #cef1df;
    color: #06483e;
    font-size: 34px;
    font-weight: 400;
}

.presentation .marque small {
    display: block;
    margin-top: 4px;
    color: #beddd2;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .3px;
}

.presentation .promesse {
    margin: 18px 0 0;
}

.presentation .etiquette {
    display: block;
    margin-bottom: 23px;
    color: #b6e6d2;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 1.5px;
}

.presentation .promesse h1 {
    max-width: 650px;
    margin: 0 0 25px;
    color: #fff;
    font-size: clamp(35px, 3.2vw, 51px);
    font-weight: 750;
    line-height: 1.15;
    letter-spacing: -1.5px;
    overflow-wrap: normal;
}

.presentation .promesse p {
    max-width: 650px;
    margin: 0 0 17px;
    color: #d0e7df;
    font-size: 16px;
    line-height: 1.85;
}

.presentation .promesse p.texte-principal {
    color: #f0faf5;
    font-size: 19px;
    line-height: 1.75;
}

.presentation .avantages {
    display: grid;
    gap: 0;
    margin: 0;
}

.presentation .benefice {
    display: flex;
    align-items: flex-start;
    gap: 17px;
    padding: 23px 0;
    border-top: 1px solid #ffffff24;
}

.presentation .benefice-numero {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border: 1px solid #b8e5d24d;
    border-radius: 12px;
    background: #ffffff08;
    color: #bfead6;
    font-size: 12px;
    font-weight: 700;
}

.presentation .benefice > div {
    min-width: 0;
}

.presentation .benefice h2 {
    margin: 2px 0 10px;
    color: #fff;
    font-size: 20px;
    font-weight: 650;
    line-height: 1.4;
    letter-spacing: -.3px;
}

.presentation .benefice p {
    display: block;
    margin: 0;
    color: #cee5dc;
    font-size: 15px;
    line-height: 1.85;
}

.presentation .engagement {
    padding: 23px;
    border: 1px solid #ffffff29;
    border-radius: 18px;
    background: #ffffff08;
}

.presentation .engagement strong {
    display: block;
    margin-bottom: 9px;
    color: #def5e8;
    font-size: 19px;
}

.presentation .engagement p {
    margin: 0;
    color: #cfe5dc;
    font-size: 15px;
    line-height: 1.8;
}

.presentation .bas-presentation {
    margin: auto 0 0;
    padding-top: 23px;
    border-top: 1px solid #ffffff24;
    color: #b9d9cc;
    font-size: 12px;
    line-height: 1.8;
}

.application > main {
    width: auto;
    min-width: 0;
    margin: 0;
    background: #f4f8f6;
}

.application main .haut {
    padding: 25px clamp(22px, 4vw, 60px);
    border-bottom: 1px solid #dfe9e3;
    background: #ffffffb3;
}

.application main .formulaire {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    padding: 42px clamp(22px, 4vw, 60px) 25px;
}

.formulaire > h2 {
    margin: 14px 0 18px;
    color: #153e33;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.2;
    letter-spacing: -1.2px;
}

.formulaire .introduction {
    margin-bottom: 32px;
    color: #526d61;
    font-size: 16px;
    line-height: 1.85;
}

.formulaire .etapes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0;
    margin: 0 0 30px;
    list-style: none;
}

.formulaire .etapes li {
    padding: 11px 15px;
    border-radius: 11px;
    background: #e8efeb;
    color: #536c60;
    font-size: 13px;
}

.formulaire .etapes li.active {
    background: #dcefe4;
    color: #086c5e;
    font-weight: 750;
}

.formulaire fieldset {
    min-width: 0;
    margin: 0 0 29px;
    padding: 27px;
    border: 1px solid #d6e4da;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 28px #153e3304;
}

.formulaire legend {
    max-width: 100%;
    padding: 0 9px;
    color: #163f34;
    font-size: 19px;
    font-weight: 750;
    line-height: 1.7;
}

.formulaire legend > span {
    margin-right: 9px;
    color: #087f70;
    font-size: 13px;
}

.formulaire legend em {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 7px;
    background: #edf3ef;
    color: #526c5e;
    font-size: 11px;
    font-style: normal;
    font-weight: 600;
}

.formulaire .aide-section {
    margin: 0 0 24px;
    color: #5a7266;
    font-size: 14px;
    line-height: 1.8;
}

.formulaire .grille {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 23px 20px;
}

.formulaire .grille .large {
    grid-column: 1 / -1;
}

.formulaire label {
    display: block;
    margin-bottom: 9px;
    color: #204c3d;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.6;
}

.formulaire label span {
    color: #087f70;
}

.formulaire input:not([type="hidden"]),
.formulaire select {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 51px;
    padding: 13px 14px;
    border: 1px solid #b8cec0;
    border-radius: 11px;
    background: #fcfefd;
    color: #193a32;
    font: inherit;
    font-size: 16px;
}

.formulaire input:focus,
.formulaire select:focus {
    border-color: #087f70;
    outline: 3px solid #087f701c;
    outline-offset: 1px;
    background: #fff;
}

.formulaire small {
    display: block;
    margin-top: 9px;
    color: #5c7368;
    font-size: 12px;
    line-height: 1.8;
}

.formulaire .aide-motdepasse {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    color: #577264;
    font-size: 12px;
    line-height: 1.8;
}

.formulaire .facultatif {
    background: #fafdFB;
    border-style: dashed;
}

.formulaire .note {
    margin: 0 0 24px;
    padding: 19px 21px;
    border: 1px solid #d0e5d8;
    border-left: 4px solid #087f70;
    border-radius: 12px;
    background: #eaf4ee;
    color: #355e49;
    font-size: 14px;
    line-height: 1.85;
}

.formulaire .bouton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 55px;
    max-width: 100%;
    padding: 15px 23px;
    border: 0;
    border-radius: 12px;
    background: #087f70;
    color: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 7px 18px #087f701c;
}

.formulaire form > .bouton {
    width: 100%;
    margin-top: 20px;
}

.formulaire .bouton:hover {
    background: #06685d;
}

.formulaire .lien-bouton {
    color: #076f61;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}

.formulaire .assistance {
    margin: 26px 0;
    color: #577063;
    font-size: 14px;
    line-height: 2;
}

.formulaire .assistance a,
.application .haut a {
    color: #087365;
    text-underline-offset: 4px;
}

.formulaire .alerte {
    margin: 23px 0;
    padding: 18px 20px;
    border: 1px solid;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.8;
}

.formulaire .alerte.erreur {
    border-color: #e7c4bb;
    background: #fff2ee;
    color: #813c2c;
}

.formulaire .alerte.succes {
    border-color: #bfdcc9;
    background: #e9f6ed;
    color: #245c38;
}

.formulaire .code-etablissement {
    margin: 26px 0;
    padding: 25px;
    border: 1px solid #b9d8c7;
    border-radius: 15px;
    background: #e8f4ed;
}

.formulaire .code-etablissement span {
    display: block;
    color: #4f705e;
    font-size: 11px;
    letter-spacing: 1px;
}

.formulaire .code-etablissement strong {
    display: block;
    margin-top: 12px;
    color: #075d4d;
    font-size: clamp(23px, 4vw, 32px);
    overflow-wrap: anywhere;
}

.formulaire input.code-saisie {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 8px;
}

.formulaire .renvoi {
    margin-top: 24px;
}

.formulaire footer {
    margin-top: 38px;
    padding: 23px 0;
    border-top: 1px solid #dce7df;
    color: #63796c;
    font-size: 12px;
    line-height: 1.8;
    text-align: center;
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid #40a8c6;
    outline-offset: 4px;
}

@media (min-width: 1600px) {
    .application {
        grid-template-columns: minmax(500px, 42%) minmax(0, 1fr);
    }
    .application > .presentation {
        padding-inline: max(60px, calc((100vw - 1500px) / 2));
    }
}

@media (max-width: 1100px) {
    .application {
        grid-template-columns: minmax(320px, 38%) minmax(0, 1fr);
    }
    .application > .presentation {
        padding: 32px 27px;
    }
    .presentation .promesse h1 {
        font-size: 35px;
    }
    .formulaire .grille {
        grid-template-columns: 1fr;
    }
    .formulaire .grille .large {
        grid-column: auto;
    }
}

@media (max-width: 800px) {
    .application {
        display: block;
    }
    .application > .presentation {
        min-height: 0;
        padding: 30px 24px;
        gap: 25px;
    }
    .presentation .promesse {
        margin-top: 5px;
    }
    .presentation .promesse h1 {
        max-width: 650px;
        font-size: clamp(32px, 6vw, 44px);
    }
    .presentation .promesse p.texte-principal {
        font-size: 18px;
    }
    .presentation .avantages {
        grid-template-columns: 1fr;
    }
    .application main .formulaire {
        padding-top: 32px;
    }
}

@media (max-width: 450px) {
    .application > .presentation {
        padding: 26px 20px;
    }
    .presentation .marque {
        font-size: 24px;
    }
    .presentation .benefice {
        gap: 12px;
    }
    .presentation .benefice h2 {
        font-size: 18px;
    }
    .presentation .benefice p {
        font-size: 14px;
    }
    .formulaire fieldset {
        padding: 21px 17px;
    }
    .formulaire legend {
        font-size: 17px;
    }
    .application main .formulaire {
        padding-inline: 17px;
    }
    .application main .haut {
        padding-inline: 17px;
    }
}

/* EN-TETE INSCRIPTION V3 */
.application main .haut {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.application .haut > a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid #d9e7df;
    border-radius: 10px;
    background: #fff;
    color: #086f60;
    font-size: 13px;
    font-weight: 650;
    text-decoration: none;
}

.application .haut > a:hover {
    background: #eaf5ee;
    border-color: #b8d6c6;
}

.application .haut > span {
    color: #547265;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .3px;
}

.application main .formulaire {
    padding-top: 34px;
}

.formulaire .etapes {
    display: flex;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 32px;
    padding: 6px;
    border: 1px solid #dae7df;
    border-radius: 16px;
    background: #eaf1ed;
}

.formulaire .etapes li {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    padding: 10px 18px;
    border-radius: 11px;
    background: transparent;
    color: #5d7769;
    font-size: 13px;
    font-weight: 500;
}

.formulaire .etapes li.active {
    background: #fff;
    color: #087260;
    font-weight: 750;
    box-shadow: 0 3px 10px #194a3510;
}

.formulaire > .surtitre {
    display: inline-block;
    margin: 0 0 17px;
    padding: 7px 11px;
    border: 1px solid #cee4d7;
    border-radius: 7px;
    background: #e5f2ea;
    color: #08705d;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: 1.4px;
}

.formulaire > h2 {
    max-width: 720px;
    margin: 0 0 20px;
    color: #103e32;
    font-size: clamp(32px, 3.2vw, 46px);
    font-weight: 750;
    line-height: 1.16;
    letter-spacing: -1.5px;
    text-wrap: balance;
}

.formulaire > h2::after {
    content: "";
    display: block;
    width: 58px;
    height: 4px;
    margin-top: 22px;
    border-radius: 4px;
    background: #11957b;
}

.formulaire > .introduction {
    max-width: 660px;
    margin: 0 0 35px;
    color: #526f60;
    font-size: 16px;
    line-height: 1.9;
    text-wrap: pretty;
}

@media (max-width: 450px) {
    .application main .haut {
        gap: 10px;
    }

    .application .haut > span {
        font-size: 10px;
    }

    .formulaire .etapes {
        width: 100%;
        gap: 5px;
    }

    .formulaire .etapes li {
        flex: 1;
        padding-inline: 10px;
        font-size: 12px;
    }

    .formulaire > h2 {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .formulaire > .introduction {
        font-size: 15px;
    }
}
