/* -------------------  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 plein écran pour le formulaire de contact */
.loader-overlay {
  position: fixed;
  inset: 0; /* top:0; right:0; bottom:0; left:0; */
  background: rgba(0, 0, 0, 0.45);
  display: none;              /* caché par défaut */
  align-items: center;
  justify-content: center;
  z-index: 9999;              /* au-dessus de tout */
}

.loader-overlay.is-active {
  display: flex;              /* on l’affiche quand .is-active est présent */
}

/* Optionnel : améliorer le texte du loader */
.loader-overlay .mt-2 {
  color: #fff;
}


/* --------------------  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;}
