/* ===========================
   PAGE DU FORMULAIRE
=========================== */

html{

    min-height:100%;

    scroll-behavior:smooth;

}


body{

    min-height:100vh;

    min-height:100svh;

    margin:0;

    background:var(--cream);

}


body,
button,
input,
select,
textarea{

    font-family:var(--font-body);

}


button,
input,
select,
textarea{

    box-sizing:border-box;

}


button,
a{

    -webkit-tap-highlight-color:transparent;

}


button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{

    outline:3px solid rgba(140,111,174,.32);

    outline-offset:3px;

}


/* ===========================
   BARRE SUPÉRIEURE
=========================== */

.form-topbar{

    position:fixed;

    top:0;

    left:0;

    z-index:1000;

    width:100%;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

    padding:

        max(18px, env(safe-area-inset-top))

        max(6%, env(safe-area-inset-right))

        18px

        max(6%, env(safe-area-inset-left));

    background:rgba(255,248,244,.88);

    border-bottom:1px solid rgba(140,111,174,.12);

    box-shadow:0 8px 30px rgba(70,40,60,.05);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

}


.form-brand{

    color:var(--purple);

    font-family:var(--font-title);

    font-size:2.1rem;

    font-weight:700;

    line-height:1;

    text-decoration:none;

    transition:var(--transition-fast);

}


.form-brand:hover{

    color:var(--pink);

    transform:translateY(-1px);

}


.form-back-link{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:44px;

    padding:10px 22px;

    border:1px solid rgba(140,111,174,.35);

    border-radius:var(--radius-large);

    color:var(--purple);

    background:rgba(255,255,255,.48);

    font-size:.9rem;

    font-weight:700;

    text-decoration:none;

    transition:var(--transition-fast);

}


.form-back-link:hover{

    color:var(--white);

    background:var(--purple);

    border-color:var(--purple);

    transform:translateY(-2px);

}


/* ===========================
   CONTENEUR PRINCIPAL
=========================== */

.form-page{

    position:relative;

    isolation:isolate;

    min-height:100vh;

    min-height:100svh;

    display:grid;

    place-items:start center;

    overflow-x:hidden;

    padding:

        calc(120px + env(safe-area-inset-top))

        max(20px, env(safe-area-inset-right))

        calc(70px + env(safe-area-inset-bottom))

        max(20px, env(safe-area-inset-left));

    background:

        radial-gradient(
            circle at 8% 18%,
            rgba(246,214,227,.85),
            transparent 32%
        ),

        radial-gradient(
            circle at 92% 78%,
            rgba(220,204,242,.8),
            transparent 34%
        ),

        linear-gradient(
            145deg,
            var(--cream),
            var(--white)
        );

}


.form-page::before,
.form-page::after{

    content:"";

    position:absolute;

    z-index:-2;

    border-radius:50%;

    pointer-events:none;

}


.form-page::before{

    top:10%;

    right:-90px;

    width:280px;

    height:280px;

    background:rgba(239,167,195,.18);

    filter:blur(2px);

}


.form-page::after{

    bottom:5%;

    left:-100px;

    width:320px;

    height:320px;

    background:rgba(199,216,194,.22);

    filter:blur(2px);

}


/* ===========================
   LOGO LAPIN EN FILIGRANE
=========================== */

.form-background-logo{

    position:fixed;

    top:50%;

    left:50%;

    z-index:-1;

    width:min(62vw, 720px);

    max-height:74vh;

    object-fit:contain;

    opacity:.055;

    filter:grayscale(1);

    pointer-events:none;

    user-select:none;

    transform:translate(-50%, -48%);

}


.form-app,
#form-app{

    position:relative;

    z-index:2;

    width:100%;

}


/* ===========================
   STATUT GLOBAL
=========================== */

.form-global-status{

    position:relative;

    z-index:3;

    width:100%;

    max-width:780px;

    margin:18px auto 0;

    padding:15px 18px;

    border:1px solid rgba(140,111,174,.2);

    border-radius:16px;

    color:var(--brown);

    background:rgba(255,255,255,.94);

    box-shadow:var(--shadow-soft);

    font-size:.9rem;

    font-weight:600;

    line-height:1.55;

    text-align:center;

}


.form-global-status:empty{

    display:none;

}


.form-global-status.is-loading{

    color:var(--purple);

    border-color:rgba(140,111,174,.25);

    background:rgba(220,204,242,.18);

}


.form-global-status.is-success{

    color:#41613f;

    border-color:rgba(89,130,85,.3);

    background:rgba(199,216,194,.3);

}


.form-global-status.is-error{

    color:#a8485f;

    border-color:rgba(199,99,122,.35);

    background:rgba(199,99,122,.09);

}


/* ===========================
   CARTE PRINCIPALE
=========================== */

.form-card{

    width:100%;

    max-width:780px;

    margin:auto;

    padding:clamp(30px, 6vw, 58px);

    background:rgba(255,255,255,.955);

    border:1px solid rgba(140,111,174,.14);

    border-radius:var(--radius-medium);

    box-shadow:var(--shadow-card);

    backdrop-filter:blur(5px);

    -webkit-backdrop-filter:blur(5px);

    animation:formCardArrival .4s cubic-bezier(.22,1,.36,1);

}


@keyframes formCardArrival{

    from{

        opacity:0;

        transform:translateY(18px) scale(.99);

    }

    to{

        opacity:1;

        transform:translateY(0) scale(1);

    }

}


.form-card > h1{

    margin:0;

    color:var(--purple);

    font-size:clamp(2.2rem, 6vw, 3.6rem);

    line-height:1;

}


.form-card > h1 + p{

    max-width:620px;

    margin:15px 0 38px;

    color:var(--brown);

    font-size:.98rem;

    line-height:1.7;

}


.form-card > h2{

    margin:0 0 10px;

    color:var(--dark);

    font-size:clamp(1.7rem, 4vw, 2.4rem);

    line-height:1.15;

}


/* ===========================
   PROGRESSION
=========================== */

.progress-wrapper{

    margin-bottom:42px;

}


.progress-bar{

    width:100%;

    height:7px;

    margin-bottom:20px;

    overflow:hidden;

    background:rgba(140,111,174,.12);

    border-radius:50px;

}


.progress-fill{

    width:0;

    height:100%;

    background:linear-gradient(
        90deg,
        var(--pink),
        var(--purple)
    );

    border-radius:50px;

    transition:width var(--transition-medium);

}


.progress{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:10px;

    overflow-x:auto;

    padding:6px;

    scrollbar-width:none;

}


.progress::-webkit-scrollbar{

    display:none;

}


.progress-step{

    flex:0 0 auto;

    width:40px;

    height:40px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:0;

    border:2px solid rgba(140,111,174,.2);

    border-radius:50%;

    color:var(--brown);

    background:var(--white);

    font-family:var(--font-body);

    font-weight:700;

    cursor:pointer;

    transition:var(--transition-fast);

}


.progress-step.current,
.progress-step.completed{

    color:var(--white);

    border-color:var(--purple);

    background:var(--purple);

}


.progress-step.current{

    box-shadow:0 0 0 6px rgba(140,111,174,.13);

}


.progress-step.completed:hover{

    transform:translateY(-2px);

    box-shadow:var(--shadow-soft);

}


.progress-step:disabled{

    cursor:not-allowed;

    opacity:.45;

}


/* ===========================
   QUESTIONS
=========================== */

.question{

    margin:32px 0;

}


.question-label{

    display:block;

    margin-bottom:10px;

    color:var(--dark);

    font-weight:700;

    line-height:1.5;

}


.required-mark{

    margin-left:4px;

    color:#c7637a;

}


.question-help{

    margin:-3px 0 15px;

    color:var(--brown);

    font-size:.9rem;

    line-height:1.6;

    opacity:.78;

}


/* ===========================
   CARTES DE CHOIX
=========================== */

.choice-card{

    position:relative;

    width:100%;

    display:flex;

    align-items:center;

    gap:18px;

    margin:14px 0;

    padding:21px;

    border:2px solid rgba(140,111,174,.15);

    border-radius:22px;

    color:var(--dark);

    background:var(--white);

    cursor:pointer;

    transition:

        border-color .25s ease,

        background .25s ease,

        box-shadow .25s ease,

        transform .25s ease;

}


.choice-card:hover{

    border-color:rgba(140,111,174,.55);

    background:rgba(220,204,242,.12);

    transform:translateY(-2px);

    box-shadow:var(--shadow-soft);

}


.choice-card:focus-within{

    outline:3px solid rgba(140,111,174,.18);

    outline-offset:3px;

}


.choice-card.is-selected,
.choice-card:has(.choice-input:checked){

    border-color:var(--purple);

    background:linear-gradient(
        135deg,
        rgba(246,214,227,.32),
        rgba(220,204,242,.32)
    );

    box-shadow:0 16px 35px rgba(70,40,60,.12);

    transform:translateY(-2px);

}


.choice-input{

    position:absolute;

    width:1px;

    height:1px;

    overflow:hidden;

    opacity:0;

}


.choice-marker,
.checkbox-marker{

    flex:0 0 auto;

    width:24px;

    height:24px;

    display:flex;

    align-items:center;

    justify-content:center;

    border:2px solid rgba(140,111,174,.35);

    background:var(--white);

    transition:var(--transition-fast);

}


.choice-marker{

    border-radius:50%;

}


.checkbox-marker{

    border-radius:7px;

}


.choice-marker::after{

    content:"";

    width:10px;

    height:10px;

    border-radius:50%;

    background:var(--white);

    transform:scale(0);

    transition:transform var(--transition-fast);

}


.checkbox-marker::after{

    content:"✓";

    color:var(--white);

    font-size:.9rem;

    font-weight:700;

    opacity:0;

    transform:scale(.5);

    transition:var(--transition-fast);

}


.choice-input:checked + .choice-marker,
.choice-input:checked + .checkbox-marker{

    border-color:var(--purple);

    background:var(--purple);

}


.choice-input:checked + .choice-marker::after{

    transform:scale(1);

}


.choice-input:checked + .checkbox-marker::after{

    opacity:1;

    transform:scale(1);

}


.choice-content{

    min-width:0;

    display:flex;

    flex-direction:column;

    gap:5px;

}


.choice-content h3{

    margin:0;

    color:var(--dark);

    font-family:var(--font-body);

    font-size:1.03rem;

    font-weight:700;

}


.choice-content p{

    margin:0;

    color:var(--brown);

    font-size:.9rem;

    line-height:1.55;

    opacity:.82;

}


/* ===========================
   CHAMPS
=========================== */

.form-input{

    width:100%;

    display:block;

    margin-top:10px;

    padding:16px 18px;

    border:2px solid rgba(140,111,174,.16);

    border-radius:16px;

    color:var(--dark);

    background:var(--white);

    font-family:var(--font-body);

    font-size:1rem;

    transition:var(--transition-fast);

}


.form-input::placeholder{

    color:rgba(107,81,71,.48);

}


.form-input:hover{

    border-color:rgba(140,111,174,.42);

}


.form-input:focus{

    outline:none;

    border-color:var(--purple);

    box-shadow:0 0 0 5px rgba(140,111,174,.12);

}


.form-input:disabled{

    cursor:not-allowed;

    opacity:.65;

    background:rgba(107,81,71,.06);

}


.form-textarea{

    min-height:160px;

    resize:vertical;

    line-height:1.65;

}


.form-select{

    cursor:pointer;

}


/* ===========================
   CASE UNIQUE
=========================== */

.checkbox-line{

    display:flex;

    align-items:flex-start;

    gap:13px;

    padding:18px;

    border:1px solid rgba(140,111,174,.15);

    border-radius:17px;

    color:var(--brown);

    background:rgba(220,204,242,.08);

    cursor:pointer;

    line-height:1.55;

}


.checkbox-line:hover{

    border-color:rgba(140,111,174,.35);

    background:rgba(220,204,242,.16);

}


.checkbox-line input{

    flex:0 0 auto;

    width:18px;

    height:18px;

    margin-top:3px;

    accent-color:var(--purple);

}


/* ===========================
   FICHIERS
=========================== */

.form-file-zone{

    position:relative;

    min-height:165px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    padding:28px;

    border:2px dashed rgba(140,111,174,.4);

    border-radius:22px;

    background:linear-gradient(
        135deg,
        rgba(246,214,227,.16),
        rgba(220,204,242,.18)
    );

    text-align:center;

    cursor:pointer;

    transition:var(--transition-fast);

}


.form-file-zone:hover{

    border-color:var(--purple);

    background:linear-gradient(
        135deg,
        rgba(246,214,227,.3),
        rgba(220,204,242,.3)
    );

    transform:translateY(-2px);

}


.form-file-zone:focus-within{

    outline:3px solid rgba(140,111,174,.2);

    outline-offset:3px;

    border-color:var(--purple);

}


.form-file-input{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    opacity:0;

    cursor:pointer;

}


.file-zone-title{

    color:var(--purple);

    font-weight:700;

}


.file-zone-information{

    margin-top:8px;

    color:var(--brown);

    font-size:.82rem;

    line-height:1.5;

    opacity:.72;

}


.file-list{

    display:flex;

    flex-direction:column;

    gap:9px;

    margin-top:15px;

}


.file-item{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:15px;

    min-width:0;

    padding:12px 14px;

    border:1px solid rgba(140,111,174,.12);

    border-radius:14px;

    color:var(--brown);

    background:rgba(220,204,242,.15);

}


.file-item-information{

    min-width:0;

    display:flex;

    flex-direction:column;

    gap:3px;

}


.file-item-information strong{

    overflow:hidden;

    text-overflow:ellipsis;

    white-space:nowrap;

}


.file-item-information small{

    opacity:.68;

}


.file-remove-button{

    flex:0 0 auto;

    width:32px;

    height:32px;

    border:none;

    border-radius:50%;

    color:var(--purple);

    background:var(--white);

    font-size:1.1rem;

    cursor:pointer;

    transition:var(--transition-fast);

}


.file-remove-button:hover{

    color:var(--white);

    background:var(--purple);

}


.file-upload-progress{

    width:100%;

    height:8px;

    margin-top:12px;

    overflow:hidden;

    border-radius:50px;

    background:rgba(140,111,174,.12);

}


.file-upload-progress-bar{

    width:0;

    height:100%;

    border-radius:inherit;

    background:linear-gradient(
        90deg,
        var(--pink),
        var(--purple)
    );

    transition:width .25s ease;

}


/* ===========================
   ERREURS
=========================== */

.question.has-error .form-input,
.question.has-error .choice-card,
.question.has-error .checkbox-line,
.question.has-error .form-file-zone,
.question.has-error .availability-grid{

    border-color:#c7637a;

}


.question-error{

    margin:10px 0 0;

    color:#a8485f;

    font-size:.85rem;

    font-weight:600;

    line-height:1.5;

}


/* ===========================
   NAVIGATION
=========================== */

.form-navigation{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:18px;

    margin-top:42px;

    padding-top:28px;

    border-top:1px solid rgba(140,111,174,.12);

}


.form-navigation button{

    min-height:52px;

    padding:14px 30px;

    border:none;

    border-radius:var(--radius-large);

    font-family:var(--font-body);

    font-size:.95rem;

    font-weight:700;

    cursor:pointer;

    transition:var(--transition-fast);

}


.form-navigation button:only-child{

    margin-left:auto;

}


#nextButton{

    color:var(--white);

    background:linear-gradient(
        135deg,
        var(--pink),
        var(--purple)
    );

    box-shadow:0 12px 28px rgba(140,111,174,.22);

}


#nextButton:hover:not(:disabled){

    transform:translateY(-3px);

    box-shadow:var(--shadow-hover);

}


#prevButton{

    color:var(--brown);

    background:rgba(107,81,71,.09);

}


#prevButton:hover:not(:disabled){

    color:var(--purple);

    background:rgba(140,111,174,.12);

    transform:translateY(-2px);

}


.form-navigation button:disabled,
#nextButton:disabled{

    cursor:wait;

    opacity:.62;

    transform:none;

    box-shadow:none;

}


#nextButton[aria-busy="true"]{

    position:relative;

    padding-right:52px;

}


#nextButton[aria-busy="true"]::after{

    content:"";

    position:absolute;

    top:50%;

    right:21px;

    width:16px;

    height:16px;

    margin-top:-8px;

    border:2px solid rgba(255,255,255,.45);

    border-top-color:var(--white);

    border-radius:50%;

    animation:formSpinner .75s linear infinite;

}


@keyframes formSpinner{

    to{

        transform:rotate(360deg);

    }

}


/* ===========================
   RÉCAPITULATIF
=========================== */

.summary-list{

    display:flex;

    flex-direction:column;

    gap:18px;

    margin-top:28px;

}


.summary-section{

    overflow:hidden;

    border:1px solid rgba(140,111,174,.16);

    border-radius:20px;

    background:var(--white);

}


.summary-section-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:18px;

    padding:17px 20px;

    background:linear-gradient(
        90deg,
        rgba(246,214,227,.22),
        rgba(220,204,242,.24)
    );

}


.summary-section-header h3{

    margin:0;

    color:var(--purple);

    font-family:var(--font-body);

    font-size:1rem;

}


.summary-edit-button{

    flex:0 0 auto;

    padding:7px 14px;

    border:1px solid var(--purple);

    border-radius:50px;

    color:var(--purple);

    background:var(--white);

    font-family:var(--font-body);

    font-weight:700;

    cursor:pointer;

    transition:var(--transition-fast);

}


.summary-edit-button:hover{

    color:var(--white);

    background:var(--purple);

}


.summary-answers{

    padding:4px 20px;

}


.summary-answer{

    display:grid;

    grid-template-columns:minmax(145px, .8fr) 1.2fr;

    gap:25px;

    padding:15px 0;

    border-bottom:1px solid rgba(140,111,174,.1);

}


.summary-answer:last-child{

    border-bottom:none;

}


.summary-question{

    color:var(--brown);

    font-weight:700;

}


.summary-value{

    min-width:0;

    color:var(--brown);

    line-height:1.6;

    overflow-wrap:anywhere;

}


/* ===========================
   SÉLECTEUR DE FLASHS
=========================== */

.flash-picker-count{

    margin:18px 0 14px;

    color:var(--purple);

    font-size:.88rem;

    font-weight:700;

}


.flash-picker-grid{

    max-height:680px;

    display:grid;

    grid-template-columns:repeat(3, minmax(0, 1fr));

    gap:16px;

    overflow-y:auto;

    padding:5px 9px 5px 4px;

    overscroll-behavior:contain;

    scrollbar-width:thin;

    scrollbar-color:
        var(--lavender)
        transparent;

}


.flash-picker-grid::-webkit-scrollbar{

    width:7px;

}


.flash-picker-grid::-webkit-scrollbar-track{

    background:transparent;

}


.flash-picker-grid::-webkit-scrollbar-thumb{

    border-radius:50px;

    background:var(--lavender);

}


.flash-choice-card{

    position:relative;

    min-width:0;

    display:flex;

    flex-direction:column;

    align-items:stretch;

    gap:0;

    margin:0;

    padding:0;

    overflow:hidden;

    border-radius:20px;

}


.flash-choice-visual{

    width:100%;

    aspect-ratio:4 / 5;

    display:block;

    padding:8px;

    background:var(--cream);

}


.flash-choice-visual img{

    width:100%;

    height:100%;

    display:block;

    object-fit:contain;

    border-radius:14px;

}


.flash-choice-information{

    min-width:0;

    display:flex;

    flex-direction:column;

    gap:5px;

    padding:14px 15px 16px;

}


.flash-choice-information strong{

    overflow:hidden;

    color:var(--dark);

    font-size:.88rem;

    line-height:1.35;

    text-overflow:ellipsis;

}


.flash-choice-information small{

    color:var(--brown);

    font-size:.76rem;

    opacity:.72;

}


.flash-choice-check{

    position:absolute;

    top:12px;

    right:12px;

    width:30px;

    height:30px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    color:var(--white);

    background:var(--purple);

    box-shadow:0 6px 18px rgba(70,40,60,.25);

    font-size:.9rem;

    font-weight:700;

    opacity:0;

    transform:scale(.6);

    transition:var(--transition-fast);

}


.flash-choice-card.is-selected .flash-choice-check,
.flash-choice-card:has(.choice-input:checked) .flash-choice-check{

    opacity:1;

    transform:scale(1);

}


.flash-choice-card.is-selected,
.flash-choice-card:has(.choice-input:checked){

    border-color:var(--purple);

    background:var(--white);

    box-shadow:0 18px 42px rgba(70,40,60,.17);

}


.flash-picker-empty{

    margin-top:20px;

    padding:25px;

    border:1px solid rgba(140,111,174,.18);

    border-radius:18px;

    color:var(--brown);

    background:rgba(220,204,242,.12);

    text-align:center;

}


/* ===========================
   FLASH DANS LE RÉCAPITULATIF
=========================== */

.summary-selected-flash{

    display:flex;

    align-items:center;

    gap:14px;

}


.summary-selected-flash img{

    flex:0 0 auto;

    width:75px;

    height:90px;

    padding:4px;

    border:1px solid rgba(140,111,174,.15);

    border-radius:12px;

    background:var(--cream);

    object-fit:contain;

}


.summary-selected-flash div{

    min-width:0;

    display:flex;

    flex-direction:column;

    gap:5px;

}


.summary-selected-flash strong{

    color:var(--dark);

}


.summary-selected-flash span{

    color:var(--brown);

    font-size:.85rem;

    opacity:.75;

}


/* ===========================
   GRILLE DE DISPONIBILITÉS
=========================== */

.availability-grid{

    width:100%;

    margin-top:18px;

    overflow:auto;

    border:1px solid rgba(140,111,174,.16);

    border-radius:20px;

    background:var(--white);

    overscroll-behavior:contain;

}


.availability-grid-inner{

    min-width:540px;

    display:grid;

    grid-template-columns:

        minmax(120px, 1.1fr)

        repeat(
            var(--availability-columns),
            minmax(115px, 1fr)
        );

}


.availability-corner,
.availability-period,
.availability-day,
.availability-option{

    min-height:58px;

    border-right:1px solid rgba(140,111,174,.12);

    border-bottom:1px solid rgba(140,111,174,.12);

}


.availability-period{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:10px;

    color:var(--purple);

    background:rgba(220,204,242,.18);

    font-size:.85rem;

    font-weight:700;

    text-align:center;

}


.availability-corner{

    background:rgba(220,204,242,.18);

}


.availability-day{

    display:flex;

    align-items:center;

    padding:12px 16px;

    color:var(--dark);

    font-weight:700;

}


.availability-option{

    position:relative;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:8px;

    cursor:pointer;

    transition:var(--transition-fast);

}


.availability-option:hover{

    background:rgba(220,204,242,.14);

}


.availability-option input{

    position:absolute;

    width:1px;

    height:1px;

    opacity:0;

}


.availability-option span{

    width:100%;

    min-height:38px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:8px 10px;

    border:1px solid rgba(140,111,174,.2);

    border-radius:12px;

    color:var(--brown);

    font-size:.78rem;

    font-weight:700;

    text-align:center;

    transition:var(--transition-fast);

}


.availability-option input:focus-visible + span{

    outline:3px solid rgba(140,111,174,.2);

    outline-offset:2px;

}


.availability-option input:checked + span{

    color:var(--white);

    border-color:var(--purple);

    background:linear-gradient(
        135deg,
        var(--pink),
        var(--purple)
    );

    box-shadow:0 8px 20px rgba(140,111,174,.2);

}


.summary-availability-line{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:15px;

    padding:5px 0;

}


.summary-availability-line strong{

    color:var(--dark);

}


.summary-availability-line span{

    color:var(--purple);

    font-weight:600;

}


/* ===========================
   CLOUDFLARE TURNSTILE
=========================== */

.turnstile-wrapper{

    width:100%;

    min-height:80px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:10px;

    margin:28px 0 8px;

    padding:18px;

    border:1px solid rgba(140,111,174,.14);

    border-radius:18px;

    background:rgba(220,204,242,.08);

}


.turnstile-wrapper.is-loading::after{

    content:"Chargement de la vérification...";

    color:var(--brown);

    font-size:.84rem;

    opacity:.75;

}


.cf-turnstile{

    max-width:100%;

}


.cf-turnstile iframe{

    max-width:100%;

}


.turnstile-error{

    margin:8px 0 0;

    color:#a8485f;

    font-size:.85rem;

    font-weight:600;

    text-align:center;

}


/* ===========================
   ENVOI DU FORMULAIRE
=========================== */

.form-submit-status{

    margin:25px 0 0;

    padding:14px 18px;

    border:1px solid rgba(199,99,122,.35);

    border-radius:15px;

    color:#a8485f;

    background:rgba(199,99,122,.08);

    font-size:.9rem;

    font-weight:600;

    line-height:1.5;

}


.form-submit-status.is-success{

    color:#41613f;

    border-color:rgba(89,130,85,.3);

    background:rgba(199,216,194,.3);

}


/* ===========================
   CONFIRMATION
=========================== */

.form-success,
.form-test-complete{

    display:flex;

    flex-direction:column;

    align-items:center;

    text-align:center;

}


.form-success-icon{

    width:75px;

    height:75px;

    display:flex;

    align-items:center;

    justify-content:center;

    margin-bottom:25px;

    border-radius:50%;

    color:var(--white);

    background:linear-gradient(
        135deg,
        var(--pink),
        var(--purple)
    );

    box-shadow:0 15px 35px rgba(140,111,174,.25);

    font-size:2rem;

    font-weight:700;

}


.form-success h1,
.form-test-complete h1{

    margin:0 0 18px;

}


.form-success p,
.form-test-complete p{

    max-width:520px;

    margin:0 auto;

    color:var(--brown);

    line-height:1.7;

}


.form-success-actions{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:12px;

    margin-top:30px;

}


.form-success-link{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:50px;

    padding:13px 28px;

    border-radius:50px;

    color:var(--white);

    background:linear-gradient(
        135deg,
        var(--pink),
        var(--purple)
    );

    font-weight:700;

    text-decoration:none;

    transition:var(--transition-fast);

}


.form-success-link:hover{

    transform:translateY(-3px);

    box-shadow:var(--shadow-soft);

}


/* ===========================
   JAVASCRIPT DÉSACTIVÉ
=========================== */

.form-noscript{

    width:calc(100% - 30px);

    max-width:620px;

    margin:140px auto 50px;

    padding:40px;

    border:1px solid rgba(140,111,174,.16);

    border-radius:var(--radius-medium);

    color:var(--brown);

    background:var(--white);

    box-shadow:var(--shadow-card);

    text-align:center;

}


.form-noscript h1{

    margin:0 0 15px;

    color:var(--purple);

}


.form-noscript p{

    margin:0;

    line-height:1.7;

}


.form-noscript a{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:48px;

    margin-top:25px;

    padding:12px 25px;

    border-radius:50px;

    color:var(--white);

    background:var(--purple);

    font-weight:700;

    text-decoration:none;

}


/* ===========================
   TABLETTES ET MOBILES
=========================== */

@media(max-width:700px){

    .flash-picker-grid{

        grid-template-columns:repeat(2, minmax(0, 1fr));

        gap:11px;

        max-height:65vh;

    }


    .flash-choice-information{

        padding:11px 12px 13px;

    }


    .flash-choice-information strong{

        font-size:.8rem;

    }


    .flash-choice-information small{

        font-size:.7rem;

    }

}


@media(max-width:600px){

    .form-topbar{

        padding:

            max(14px, env(safe-area-inset-top))

            max(18px, env(safe-area-inset-right))

            14px

            max(18px, env(safe-area-inset-left));

    }


    .form-brand{

        font-size:1.8rem;

    }


    .form-back-link{

        min-height:40px;

        padding:8px 15px;

        font-size:.78rem;

    }


    .form-page{

        padding:

            calc(95px + env(safe-area-inset-top))

            max(13px, env(safe-area-inset-right))

            calc(35px + env(safe-area-inset-bottom))

            max(13px, env(safe-area-inset-left));

    }


    .form-background-logo{

        width:105vw;

        max-height:70vh;

        opacity:.045;

    }


    .form-card{

        padding:29px 19px;

        border-radius:24px;

    }


    .form-card > h1 + p{

        margin-bottom:30px;

    }


    .progress{

        gap:7px;

    }


    .progress-step{

        width:34px;

        height:34px;

        font-size:.82rem;

    }


    .choice-card{

        gap:14px;

        padding:17px;

    }


    .form-navigation{

        gap:10px;

    }


    .form-navigation button{

        min-height:48px;

        padding:12px 18px;

        font-size:.86rem;

    }


    .summary-section-header{

        align-items:flex-start;

        padding:15px;

    }


    .summary-answers{

        padding:3px 15px;

    }


    .summary-answer{

        grid-template-columns:1fr;

        gap:6px;

    }


    .availability-grid{

        border-radius:16px;

    }


    .availability-grid-inner{

        min-width:510px;

    }


    .turnstile-wrapper{

        padding:14px 8px;

    }


    .form-noscript{

        margin-top:110px;

        padding:28px 20px;

    }

}


@media(max-width:380px){

    .form-brand{

        font-size:1.6rem;

    }


    .form-back-link{

        padding:8px 12px;

        font-size:.72rem;

    }


    .form-card{

        padding:25px 15px;

    }


    .form-navigation{

        flex-direction:column-reverse;

    }


    .form-navigation button{

        width:100%;

    }


    .form-navigation button:only-child{

        margin-left:0;

    }

}


/* ===========================
   MOUVEMENTS RÉDUITS
=========================== */

@media(prefers-reduced-motion:reduce){

    html{

        scroll-behavior:auto;

    }


    *,
    *::before,
    *::after{

        animation-duration:.01ms !important;

        animation-iteration-count:1 !important;

        scroll-behavior:auto !important;

        transition-duration:.01ms !important;

    }

}


/* ===========================
   CORRECTION DISPONIBILITÉS
   MOBILE
=========================== */

/* ===========================
   DISPONIBILITÉS RESPONSIVES
=========================== */

.form-page{

    grid-template-columns:minmax(0, 1fr);

}


.form-app,
#form-app,
.form-card,
.form-step,
.question{

    min-width:0;

    max-width:100%;

}


.availability-grid{

    width:100%;

    max-width:100%;

    overflow:hidden;

}


.availability-grid-inner{

    width:100%;

    min-width:0;

    grid-template-columns:

        minmax(76px, .85fr)

        repeat(
            var(--availability-columns),
            minmax(0, 1fr)
        );

}


.availability-corner{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:8px 5px;

    color:var(--purple);

    font-size:.78rem;

    font-weight:700;

    text-align:center;

}


.availability-corner::after{

    content:"Jour";

}


.availability-period,
.availability-day,
.availability-option{

    min-width:0;

}


.availability-period{

    padding:8px 4px;

    overflow-wrap:anywhere;

    font-size:.78rem;

    line-height:1.2;

}


.availability-day{

    padding:10px 8px;

    overflow-wrap:anywhere;

    font-size:.85rem;

    line-height:1.2;

}


.availability-option{

    padding:6px;

}


.availability-option span{

    min-width:0;

    min-height:38px;

    padding:7px 5px;

    overflow-wrap:anywhere;

    font-size:.74rem;

    line-height:1.15;

}


@media(max-width:600px){

    .availability-grid{

        border-radius:16px;

    }


    .availability-grid-inner{

        width:100%;

        min-width:0;

        grid-template-columns:

            minmax(68px, .8fr)

            repeat(
                var(--availability-columns),
                minmax(0, 1fr)
            );

    }


    .availability-corner,
    .availability-period,
    .availability-day,
    .availability-option{

        min-height:52px;

    }


    .availability-corner,
    .availability-period{

        font-size:.7rem;

    }


    .availability-day{

        padding:8px 5px;

        font-size:.75rem;

    }


    .availability-option{

        padding:5px 3px;

    }


    .availability-option span{

        min-height:36px;

        padding:6px 2px;

        font-size:.67rem;

    }

}