/* -------------------  Styles généraux  ------------------- */
body{
    font-family:"Open Sans",sans-serif;
    background-color:#f8f9fa;
}
h2,h3{font-weight:600;}

/* --------------------  Cartes  --------------------------- */
.card{
    border:none;
    flex:1;
    display:flex;
    flex-direction:column;
}

/* --------------------  Formulaire  ----------------------- */
.form-control,
.form-select{
    border-radius:.375rem;
}

.btn-primary{
    background-color:#007bff;
    border-color:#007bff;
    border-radius:.375rem;
    font-weight:600;
}
.btn-primary:hover{
    background-color:#0069d9;
    border-color:#0062cc;
}

/* --------------------  Loader overlay  ------------------- */
.loader-overlay{
    position:fixed;
    top:0;left:0;
    width:100%;height:100%;
    background-color:rgba(255,255,255,.8);
    display:none;             /* ⇦ MASQUÉ PAR DÉFAUT */
    justify-content:center;
    align-items:center;
    z-index:9999;
}

/* --------------------  Labels obligatoires --------------- */
label span.text-danger{
    font-weight:600;
}

/* --------------------  Carte info à droite --------------- */
.info-card{
    background-color:#fff;
    padding:30px;
    border-radius:.375rem;
    box-shadow:0 0 10px rgba(0,0,0,.1);
    flex:1;
    display:flex;
    flex-direction:column;
}
.info-card p,
.info-card li{
    font-size:16px;
    line-height:1.5;
}
.info-card a{
    color:#007bff;
    text-decoration:none;
}
.info-card a:hover{
    text-decoration:underline;
}
.info-card ul li{margin-bottom:5px;}

/* --------------------  Responsive ------------------------ */
@media (max-width:576px){
    .info-card{padding:20px;}
    .equal-height{flex-direction:column;}
}

/* Colonnes de même hauteur */
.equal-height{
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
}
.equal-height>.col-lg-6{
    display:flex;
    flex-direction:column;
}

/* --------------------  Styles champs dynamiques ---------- */
.default-field{
    border:1px solid #ced4da;
    background-color:#fff;
    transition:border-color .3s, box-shadow .3s;
}
.dynamic-field{
    border:1px solid #0d6efd;
    background-color:#f0f8ff;
    box-shadow:0 0 10px rgba(13,110,253,.25);
    transition:border-color .3s, box-shadow .3s;
}

/* Champs masqués/affichés */
.hidden-field{
    opacity:0;
    height:0;
    visibility:hidden;
    overflow:hidden;
    transition:opacity .5s, height .5s, visibility .5s;
}
.show{
    opacity:1;
    height:auto;
    visibility:visible;
}

/* --------------------  Divers ----------------------------- */
header{border-bottom:2px solid #0d6efd;}
.ntitre{font-weight:bold;color:blue;}
.img-arrondie{border-radius:30px;}
