﻿/* ANDF Theme Colors based on Logo */
:root {
    --ANDF-primary: #8B6914; /* Marron/Bronze du logo */
    --ANDF-primary-dark: #6B4F0F; /* Version plus foncÃ©e */
    --ANDF-primary-light: #AB8934; /* Version plus claire */
    --ANDF-secondary: #D4A574; /* Marron clair */
    --ANDF-accent: #F5E6D3; /* Beige clair */
    --ANDF-text: #4A3C28; /* Marron foncÃ© pour texte */
    --ANDF-gray: #6B7280; /* Gris pour texte secondaire */
    --ANDF-white: #FFFFFF;
    --ANDF-background: #FAF8F5; /* Fond lÃ©gÃ¨rement teintÃ© */

    /* --- Navbar ANDF unifiÃ©e --- */
    --nav-height: 70px;
    --nav-bg:#ffffff;
    --nav-text:#333;
    --nav-hover:#006400;
    --gold:#a67c00;
    --transition: .25s;
}

/* =========================
   HEADER / NAV UNIFIÉ
   ========================= */
:root{
  --nav-height:72px;
  --nav-bg:#ffffff;
  --nav-border:#e5e5e5;
  --nav-shadow:0 2px 8px rgba(0,0,0,0.10);
  --nav-link:#202d27;
  --nav-link-hover:#007a33;
  --nav-cta:#007a33;
  --nav-cta-hover:#009c41;
}

.site-header,
header.site-header,
.navbar,
.navbar-main{
  position:sticky;
  top:0;
  z-index:1000;
  width:100%;
  background:var(--nav-bg) !important;
  border-bottom:1px solid var(--nav-border);
  box-shadow:var(--nav-shadow);
  font-family:inherit;
}

.nav-shell{
  max-width:1320px;
  margin:0 auto;
  height:var(--nav-height);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.25rem;
  padding:0 1.2rem;
  box-sizing:border-box;
}

.nav-left{display:flex;align-items:center;gap:1rem;flex:0 0 auto;}
.nav-logo img{
  height:50px;
  width:auto;
  display:block;
}

.nav-main{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}

.nav-links{
  list-style:none;
  display:flex;
  gap:2.2rem;
  margin:0;
  padding:0;
  align-items:center;
  flex-wrap:nowrap;
}

.nav-links a{
  text-decoration:none;
  color:var(--nav-link);
  font-weight:500;
  font-size:.95rem;
  letter-spacing:.25px;
  position:relative;
  transition:color .25s;
  white-space:nowrap;
}

.nav-links a:hover,
.nav-links a:focus{
  color:var(--nav-link-hover);
}

.nav-right{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:.85rem;
}

.nav-cta{
  background:var(--nav-cta);
  color:#fff !important;
  text-decoration:none;
  padding:.65rem 1.25rem;
  border-radius:40px;
  font-size:.88rem;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  line-height:1;
  transition:.25s;
  border:none;
  cursor:pointer;
  box-shadow:0 4px 12px -4px rgba(0,122,51,.45);
}
.nav-cta:hover{background:var(--nav-cta-hover);}

/* Logo styles */
.ANDF-logo {
    max-height: 80px;
    width: auto;
}

.ANDF-logo-large {
    max-height: 120px;
    width: auto;
}

/* Header styles */
.ANDF-header {
    background: linear-gradient(135deg, var(--ANDF-primary) 0%, var(--ANDF-primary-dark) 100%);
    color: var(--ANDF-white);
    box-shadow: 0 2px 10px rgba(139, 105, 20, 0.2);
}

/* Button styles */
.btn-ANDF {
    background-color: var(--ANDF-primary);
    color: var(--ANDF-white);
    border: none;
    padding: 10px 24px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-ANDF:hover {
    background-color: var(--ANDF-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(139, 105, 20, 0.3);
}

.btn-ANDF-outline {
    background-color: transparent;
    color: var(--ANDF-primary);
    border: 2px solid var(--ANDF-primary);
    padding: 10px 24px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-ANDF-outline:hover {
    background-color: var(--ANDF-primary);
    color: var(--ANDF-white);
}

/* Card styles */
.ANDF-card {
    background: var(--ANDF-white);
    border: 1px solid rgba(139, 105, 20, 0.1);
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 8px rgba(139, 105, 20, 0.08);
    transition: all 0.3s ease;
}

.ANDF-card:hover {
    box-shadow: 0 8px 24px rgba(139, 105, 20, 0.15);
    transform: translateY(-4px);
}

/* Form styles */
.ANDF-input {
    border: 2px solid rgba(139, 105, 20, 0.2);
    border-radius: 6px;
    padding: 10px 14px;
    width: 100%;
    transition: all 0.3s ease;
    background-color: var(--ANDF-white);
}

.ANDF-input:focus {
    border-color: var(--ANDF-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(139, 105, 20, 0.1);
}

.ANDF-label {
    color: var(--ANDF-text);
    font-weight: 600;
    margin-bottom: 6px;
    display: block;
}

/* Alert styles */
.ANDF-alert {
    padding: 16px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.ANDF-alert-success {
    background-color: #D1FAE5;
    color: #065F46;
    border: 1px solid #6EE7B7;
}

.ANDF-alert-error {
    background-color: #FEE2E2;
    color: #991B1B;
    border: 1px solid #FCA5A5;
}

.ANDF-alert-info {
    background-color: var(--ANDF-accent);
    color: var(--ANDF-text);
    border: 1px solid var(--ANDF-secondary);
}

/* Progress bar */
.ANDF-progress {
    background-color: rgba(139, 105, 20, 0.1);
    border-radius: 999px;
    height: 8px;
    overflow: hidden;
}

.ANDF-progress-bar {
    background: linear-gradient(90deg, var(--ANDF-primary) 0%, var(--ANDF-primary-light) 100%);
    height: 100%;
    transition: width 0.5s ease;
}

/* Badge styles */
.ANDF-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 600;
}

.ANDF-badge-primary {
    background-color: var(--ANDF-primary);
    color: var(--ANDF-white);
}

.ANDF-badge-secondary {
    background-color: var(--ANDF-secondary);
    color: var(--ANDF-text);
}

/* Table styles */
.ANDF-table {
    width: 100%;
    border-collapse: collapse;
}

.ANDF-table thead {
    background-color: var(--ANDF-accent);
}

.ANDF-table th {
    padding: 12px;
    text-align: left;
    color: var(--ANDF-text);
    font-weight: 600;
    border-bottom: 2px solid var(--ANDF-primary);
}

.ANDF-table td {
    padding: 12px;
    border-bottom: 1px solid rgba(139, 105, 20, 0.1);
}

.ANDF-table tr:hover {
    background-color: rgba(139, 105, 20, 0.05);
}

/* Utility classes */
.text-ANDF-primary {
    color: var(--ANDF-primary) !important;
}

.bg-ANDF-primary {
    background-color: var(--ANDF-primary) !important;
}

.border-ANDF-primary {
    border-color: var(--ANDF-primary) !important;
}

/* === NAVIGATION UNIFIÉE (global) === */
:root{
  --nav-height:72px;
  --nav-bg:#ffffff;
  --nav-border:#e5e5e5;
  --nav-shadow:0 2px 8px rgba(0,0,0,0.10);
  --nav-link:#202d27;
  --nav-link-hover:#007a33;
  --nav-cta:#007a33;
  --nav-cta-hover:#009c41;
}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  width:100%;
  background:var(--nav-bg)!important;
  border-bottom:1px solid var(--nav-border);
  box-shadow:var(--nav-shadow);
  font-family:inherit;
}

.nav-shell{
  max-width:1320px;
  margin:0 auto;
  height:var(--nav-height);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.25rem;
  padding:0 1.2rem;
  box-sizing:border-box;
}

.nav-left{display:flex;align-items:center;gap:1rem;}
.nav-logo img{height:50px;width:auto;display:block;}

.nav-main{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}

.nav-links{
  list-style:none;
  display:flex;
  gap:2.1rem;
  margin:0;
  padding:0;
  align-items:center;
}

.nav-links a{
  text-decoration:none;
  color:var(--nav-link);
  font-weight:500;
  font-size:.95rem;
  letter-spacing:.25px;
  transition:color .25s;
  white-space:nowrap;
}
.nav-links a:hover,
.nav-links a:focus{color:var(--nav-link-hover);}

.nav-right{display:flex;align-items:center;gap:.85rem;}

.nav-cta{
  background:var(--nav-cta);
  color:#fff!important;
  text-decoration:none;
  padding:.65rem 1.25rem;
  border-radius:40px;
  font-size:.88rem;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  line-height:1;
  transition:.25s;
  border:none;
  cursor:pointer;
  box-shadow:0 4px 12px -4px rgba(0,122,51,.45);
}
.nav-cta:hover{background:var(--nav-cta-hover);}

.nav-toggle{
  display:none;
  background:none;
  border:none;
  font-size:1.65rem;
  color:var(--nav-link);
  cursor:pointer;
  line-height:1;
  padding:.45rem .6rem;
  border-radius:10px;
  transition:background .25s;
}
.nav-toggle:hover{background:#eef3f1;}

@media (max-width:1024px){
  .nav-links{gap:1.6rem;}
}
@media (max-width:900px){
  .nav-links{gap:1.3rem;}
}

/* Mobile */
@media (max-width:768px){
  h1{font-size:clamp(1.35rem, 5vw, 1.7rem);}
  h2{font-size:clamp(1.05rem, 4.3vw, 1.35rem);}
  .nav-main{
    position:fixed;
    top:var(--nav-height);
    left:0;
    right:0;
    display:block;
    max-height:0;
    overflow:hidden;
    background:var(--nav-bg);
    border-bottom:1px solid var(--nav-border);
    box-shadow:0 14px 22px -10px rgba(0,0,0,.18);
    transition:max-height .45s cubic-bezier(.65,.05,.36,1);
  }
  .nav-main.open{max-height:calc(100vh - var(--nav-height));}
  .nav-links{
    flex-direction:column;
    align-items:flex-start;
    padding:1.15rem 1.35rem 2.2rem;
    gap:1rem;
  }
  .nav-links a{
    width:100%;
    padding:.55rem 0;
  }
  .nav-right{display:none;}
  .nav-toggle{display:inline-flex;}
}

/* Focus */
.nav-links a:focus-visible,
.nav-cta:focus-visible,
.nav-toggle:focus-visible{
  outline:2px solid #33b768;
  outline-offset:2px;
  border-radius:6px;
}

/* Réduction mouvement */
@media (prefers-reduced-motion:reduce){
  .nav-main,
  .nav-links a,
  .nav-cta,
  .nav-toggle{transition:none;}
}

/* ===== AmÃ©liorations Responsive Modal & Bouton WhatsApp ===== */
.mmodal__dialog{
  /* dÃ©jÃ  prÃ©sent plus haut, on complÃ¨te */
  max-height:90vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.mmodal__body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding-right:.3rem; /* petite marge pour scrollbar */
  scrollbar-width:thin;
}
.mmodal__body::-webkit-scrollbar{width:8px;}
.mmodal__body::-webkit-scrollbar-track{background:transparent;}
.mmodal__body::-webkit-scrollbar-thumb{
  background:#cfd6d2;
  border-radius:6px;
}
.mmodal__body::-webkit-scrollbar-thumb:hover{background:#b7bfbb;}

.mmodal__actions{
  flex:0 0 auto;
  padding:1rem .5rem calc(env(safe-area-inset-bottom) + 1rem);
  gap:.9rem;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#ffffff;
  border-top:1px solid #edf1ed;
  position:sticky;
  bottom:0;
}

.btn-wapp{
  width:clamp(240px, 60%, 360px);
  justify-content:center;
  text-align:center;
  font-size:.9rem;
  margin:0 auto;
  font-weight:600;
  letter-spacing:.3px;
  /* transition dÃ©jÃ  dÃ©finie */
}

.btn-close-secondary{
  width:clamp(200px, 50%, 300px);
  justify-content:center;
  text-align:center;
}

@media (max-width:680px){
  .btn-wapp{
    width:100%;
    max-width:100%;
  }
  .btn-close-secondary{
    width:100%;
    max-width:100%;
  }
  .mmodal__actions{
    padding:1rem .8rem calc(env(safe-area-inset-bottom) + 1.1rem);
  }
}

@media (min-height:760px){
  .mmodal__dialog{
    margin: clamp(30px,5vh,70px) auto;
  }
}

@media (max-width:420px){
  .mmodal__title{
    font-size:1rem;
  }
  .pay-steps li{
    font-size:.8rem;
    padding-left:26px;
  }
  .pay-steps li:before{
    width:16px;height:16px;
  }
}

/* Assurer que le bouton n'est jamais masquÃ© si clavier mobile ouvert */
@supports (height: 100svh){
  .mmodal{
    min-height:100svh;
  }
  .mmodal__dialog{
    max-height:100svh;
  }
}

/* Navigation fond blanc global */
.site-header,
header.site-header,
.navbar-main {
  background:#ffffff !important;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
  border-bottom:1px solid #eef0ee;
}
.site-header a,
.site-header .nav-link {
  color:#1d332b;
}
.site-header a:hover,
.site-header .nav-link:hover {
  color:#0a6d0a;
}

/* ===== Footer unifié ANDF ===== */
.site-footer{
  background:#0b1219;
  color:#f2f8f6;
  border-top:1px solid #111b25;
  margin-top:3rem;
  font-family:inherit;
}
.footer-inner{
  max-width:1320px;
  margin:0 auto;
  padding:2.6rem 1.25rem 2.9rem;
  display:grid;
  gap:2.2rem;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.footer-col h4{
  margin:0 0 .85rem;
  font-size:.92rem;
  text-transform:uppercase;
  letter-spacing:.6px;
  font-weight:600;
  color:#ffffff;
}
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
.footer-logo{
  display:flex;
  align-items:center;
  gap:.65rem;
  text-decoration:none;
  color:#fff;
  font-weight:600;
  font-size:1rem;
}
.footer-logo img{
  height:52px;
  width:auto;
  display:block;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));
}
.footer-text{
  margin:0;
  font-size:.78rem;
  line-height:1.25rem;
  color:#c6d3cf;
}
.footer-links a{
  display:block;
  font-size:.8rem;
  color:#d7e2dd;
  text-decoration:none;
  margin:.18rem 0;
  transition:.25s;
}
.footer-links a:hover{color:#fff;}
.footer-contact p{
  margin:.15rem 0;
  font-size:.78rem;
  line-height:1.15rem;
  color:#d2ddda;
}
.footer-contact .tel{
  font-weight:600;
  color:#ffffff;
  font-size:.85rem;
  margin-top:.4rem;
}
.footer-hours{
  margin-top:.55rem;
  font-size:.7rem;
  letter-spacing:.6px;
  color:#9fb5ae;
  text-transform:uppercase;
  font-weight:600;
}
.social-links{
  display:flex;
  gap:.7rem;
  flex-wrap:wrap;
  margin-top:.4rem;
}
.social-links a{
  width:40px;
  height:40px;
  border-radius:10px;
  background:#16222d;
  color:#e1ede8;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.9rem;
  text-decoration:none;
  transition:.3s;
}
.social-links a:hover{
  background:#1f2f3c;
  color:#fff;
  transform:translateY(-3px);
}
.footer-wa-btn{
  margin-top:1rem;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  background:#21d366;
  color:#fff !important;
  text-decoration:none;
  font-size:.82rem;
  font-weight:600;
  padding:.75rem 1.15rem;
  border-radius:10px;
  box-shadow:0 4px 14px -4px rgba(0,0,0,.4);
  transition:.28s;
}
.footer-wa-btn:hover{background:#17bb57;}
.footer-bottom{
  border-top:1px solid #17242f;
  padding:1rem 1.25rem;
  text-align:center;
  font-size:.7rem;
  color:#9fb0aa;
  letter-spacing:.5px;
}
@media (max-width:640px){
  .footer-inner{padding:2.3rem 1.1rem 2.6rem;gap:1.9rem;}
  .footer-wa-btn{width:100%;justify-content:center;}
}

/* Ajouts pour message d'erreur formulaire identification */
.form-error{
  background:#ffe8e8;
  border:1px solid #f3b1b1;
  color:#a20000;
  padding:.85rem 1rem;
  border-radius:10px;
  font-size:.85rem;
  font-weight:600;
  margin:0 0 1rem;
  line-height:1.15rem;
  display:flex;
  gap:.55rem;
  align-items:flex-start;
}
.form-input.invalid,
select.form-input.invalid{
  border-color:#dc2626 !important;
  background:#fff5f5;
}
.form-input.invalid:focus{
  outline:2px solid #dc2626;
}

/* === Souscription cartes (maj sans dates) === */
.pc-img-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#dfe4e2;}
.pc-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s ease;}
.program-card:hover .pc-img-wrap img{transform:scale(1.08);}
.pc-badge{
  position:absolute;top:10px;left:10px;
  background:rgba(0,122,51,.92);color:#fff;
  font-size:.65rem;font-weight:600;letter-spacing:.7px;
  padding:.4rem .55rem;border-radius:6px;text-transform:uppercase;
}
.pc-dates{display:none!important;} /* ancien overlay dates supprimé */
.program-body{display:flex;flex-direction:column;padding:1rem 1.05rem 1.2rem;gap:.65rem;flex:1 1 auto;}
.program-desc{font-size:.78rem;line-height:1.15rem;color:#2f4640;flex:1 1 auto;margin:0;}
.fee-line{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:600;color:#203730;background:#f3f9f4;border:1px solid #dbe9df;padding:.55rem .7rem;border-radius:10px;margin-top:.2rem;}

/* ====== Responsive global (header + formulaires + boutons) ====== */

/* Typo fluide */
html { font-size: 16px; }
body { font-size: clamp(.95rem, 1rem + .15vw, 1.05rem); }

/* Formulaires unifiés */
.form-section,
form,
.form-grid { width:100%; }

.field-row{
  display:flex;
  gap:1rem;
  width:100%;
  flex-wrap:nowrap;
}
.field-col{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; }

.field-label{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.5px;
  margin:0 0 .35rem;
  color:#1e3d31;
}

.form-input,
form input[type=text],
form input[type=date],
form input[type=email],
form input[type=tel],
form select{
  width:100%;
  padding:.75rem .85rem;
  border:1px solid #d5e1dc;
  border-radius:12px;
  background:#ffffff;
  font-size:.85rem;
  font-family:inherit;
  box-sizing:border-box;
  transition:.25s;
}
.form-input:focus,
form input:focus,
form select:focus{
  outline:2px solid #169c4a;
  border-color:#169c4a;
}

/* Boutons génériques fluides */
.btn,
.nav-cta,
button[type=submit],
button.primary-btn{
  font-size:.9rem;
  padding:.85rem 1.3rem;
  border-radius:40px;
  line-height:1;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  cursor:pointer;
  text-decoration:none;
  box-sizing:border-box;
  max-width:400px;
}

.actions,
.form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:center;
}

/* Centrage sur petits écrans */
@media (max-width:768px){
  .field-row{ flex-direction:column; gap:.85rem; }
  .nav-shell{ padding:0 .9rem; }
  .nav-logo img{ height:46px; }
  .nav-toggle{ margin-left:.25rem; }
  .actions,
  .form-actions{
    flex-direction:column;
    align-items:center;
  }
  .btn,
  .nav-cta,
  button[type=submit],
  button.primary-btn{
    width:90%;
    max-width:400px;
  }
}

/* Amélioration header mobile centré */
@media (max-width:768px){
  .site-header .nav-shell{
    justify-content:space-between;
    align-items:center;
  }
}

/* Programme cartes : éviter déformation quand texte varie */
.program-card{display:flex;flex-direction:column;}
.program-body{flex:1 1 auto;display:flex;flex-direction:column;}
.program-actions{margin-top:1rem;}

/* Checkbox acceptation */
.accept-conditions-box{
  margin:1.4rem 0 1.2rem;
  background:#f4f9f6;
  border:1px solid #d5e6de;
  padding:.9rem 1rem;
  border-radius:14px;
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  font-size:.83rem;
  line-height:1.15rem;
}
.accept-conditions-box input{
  margin-top:.2rem;
  width:20px;height:20px;
  cursor:pointer;
  accent-color:#007a33;
}
.accept-conditions-box label{
  cursor:pointer;
  font-weight:600;
  color:#154736;
}

/* Bouton suivant désactivé */
.btn-next[disabled]{
  background:#b8c7c1 !important;
  cursor:not-allowed;
  box-shadow:none;
  opacity:.85;
}

/* === Identification : compactage vertical === */
.identification-page .form-group,
.identification-page .mb-3,
.identification-page .field-col {
  margin-bottom:8px !important;
}

.identification-page input,
.identification-page select,
.identification-page textarea {
  padding:6px 10px !important;
  line-height:1.2 !important;
  min-height:38px;
  font-size:.9rem;
}

/* Optionnel (si des rangées créent encore de grands espaces) */
.identification-page .field-row { margin-bottom:8px !important; }
/* === OVERRIDE PERSISTANT PAGE IDENTIFICATION (espacement compact) === */
body.identification-page form .form-group,
body.identification-page form .mb-3,
body.identification-page form .field-col,
body.identification-page form .field-row,
body.identification-page form .form-group.mb-3 {
  margin-bottom:8px !important;
  padding-bottom:0 !important;
}

body.identification-page form .form-group:last-child,
body.identification-page form .mb-3:last-child,
body.identification-page form .field-row:last-child {
  margin-bottom:8px !important;
}

body.identification-page form label,
body.identification-page form label.field-label {
  margin-bottom:4px !important;
  line-height:1.15 !important;
  font-size:.78rem;
}

body.identification-page form input.form-control,
body.identification-page form select.form-control,
body.identification-page form textarea.form-control,
body.identification-page form input,
body.identification-page form select,
body.identification-page form textarea {
  padding:6px 10px !important;
  line-height:1.2 !important;
  min-height:38px !important;
  font-size:.85rem;
}

@media (max-width:768px){
  body.identification-page form .field-row{
    gap:.55rem !important;
  }
  body.identification-page form input.form-control,
  body.identification-page form select.form-control,
  body.identification-page form textarea.form-control,
  body.identification-page form input,
  body.identification-page form select,
  body.identification-page form textarea{
    padding:6px 10px !important;
    min-height:36px !important;
    font-size:.84rem;
  }
}

/* === Overrides spécifiques page Identification (espacement compact et persistant) === */

/* Marges verticales max 8px entre les groupes */
body.identification-page form#identificationForm .form-group,
body.identification-page form#identificationForm .mb-3,
body.identification-page form#identificationForm .field-col,
body.identification-page form#identificationForm .field-row,
body.identification-page form#identificationForm .form-group.mb-3 {
  margin-bottom:8px !important;
  padding-bottom:0 !important;
}

/* Annule les gaps éventuels définis par flex/utility */
body.identification-page form#identificationForm .field-row {
  gap:8px !important;
}

/* Labels resserrés */
body.identification-page form#identificationForm label,
body.identification-page form#identificationForm label.field-label {
  margin-bottom:4px !important;
  line-height:1.15 !important;
  font-size:.78rem;
}

/* Inputs / selects / textarea : padding réduit et hauteur contrôlée */
body.identification-page form#identificationForm input.form-control,
body.identification-page form#identificationForm select.form-control,
body.identification-page form#identificationForm textarea.form-control,
body.identification-page form#identificationForm input:not([type=checkbox]):not([type=radio]),
body.identification-page form#identificationForm select,
body.identification-page form#identificationForm textarea {
  padding:6px 10px !important;
  line-height:1.2 !important;
  min-height:38px !important;
  font-size:.85rem;
  box-sizing:border-box;
}

/* Mobile */
@media (max-width:768px){
  body.identification-page form#identificationForm .field-row{
    flex-direction:column;
    gap:6px !important;
  }
  body.identification-page form#identificationForm .form-group,
  body.identification-page form#identificationForm .mb-3,
  body.identification-page form#identificationForm .field-col{
    margin-bottom:8px !important;
  }
  body.identification-page form#identificationForm input.form-control,
  body.identification-page form#identificationForm select.form-control,
  body.identification-page form#identificationForm textarea.form-control,
  body.identification-page form#identificationForm input:not([type=checkbox]):not([type=radio]),
  body.identification-page form#identificationForm select,
  body.identification-page form#identificationForm textarea{
    padding:6px 10px !important;
    min-height:36px !important;
    font-size:.84rem;
  }
}

/* Sécurité contre tout style inline ou plugin tardif */
body.identification-page form#identificationForm *[style*="margin-bottom"]{
  margin-bottom:8px !important;
}

