/* =====================================================
   RDV — CSS FRONT PARENTS CLEAN
   Objectif :
   - un seul bloc par rôle
   - champs sans cadre complet, soulignement uniquement
   - créneaux conservés avec cadre
   - espacements propres entre les sections du formulaire
===================================================== */

/* =========================
   1) FRONT : zone message + champ code
========================= */

/* Messages Assistant / Vous */
body .rdv-parent-wrap #rdv-log{
  width:min(560px, calc(100vw - 32px)) !important;
  max-width:calc(100vw - 32px) !important;

  margin:0 auto 18px auto !important;
  padding-left:0 !important;
  padding-right:0 !important;

  font-size:16px !important;
  line-height:1.5 !important;
  text-align:left !important;
  white-space:normal !important;

  color:#0F2954 !important;
  box-sizing:border-box !important;

  align-self:center !important;
  justify-self:center !important;
}

body .rdv-parent-wrap #rdv-log .rdv-line{
  display:block !important;

  width:100% !important;
  max-width:100% !important;

  margin-left:0 !important;
  margin-right:auto !important;
  margin-bottom:6px !important;

  text-align:left !important;
  white-space:normal !important;

  line-height:1.5 !important;
  box-sizing:border-box !important;
}

body .rdv-parent-wrap #rdv-log b{
  font-weight:700 !important;
  text-align:left !important;
}

body .rdv-parent-wrap #rdv-log br{
  line-height:1.6 !important;
}

.rdv-hidden{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* =========================
   2) CHAMP CODE
========================= */

/* Zone champ code */
#rdv-code-hint{
  width:100% !important;
  max-width:560px !important;

  margin:0 auto 14px auto !important;
  padding:0 !important;

  text-align:center !important;
  white-space:normal !important;

  font-size:16px !important;
  line-height:1.4 !important;
  color:#0F2954 !important;
  box-sizing:border-box !important;
}

/* Texte au-dessus du champ code */
#rdv-code-hint{
  width:100% !important;
  max-width:560px !important;

  margin:0 0 14px 0 !important;
  padding:0 !important;

  text-align:left !important;
  white-space:normal !important;

  font-size:16px !important;
  line-height:1.4 !important;
  color:#0F2954 !important;
  box-sizing:border-box !important;
}

/* Champ code */
#rdv-code-input{
  width:150px !important;
  max-width:150px !important;
  min-width:150px !important;

  height:46px !important;
  min-height:46px !important;
  line-height:46px !important;

 margin:0 auto 14px auto !important;
  padding:0 12px !important;

  display:block !important;
  text-align:center !important;

  background:transparent !important;
  color:#111 !important;

  font-size:18px !important;
  font-weight:700 !important;
  letter-spacing:4px !important;

  border:1px solid #999 !important;
  border-radius:6px !important;

  box-sizing:border-box !important;
}

/* Focus champ code */
#rdv-code-input:focus{
  outline:none !important;
  border:2px solid #2c7be5 !important;
}

/* Bouton validation code */
#rdv-code-send{
  width:150px !important;
  max-width:150px !important;
  min-width:150px !important;

  height:46px !important;
  min-height:46px !important;
  line-height:46px !important;

 margin:12px auto 0 auto !important;
  padding:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  background:var(--rdv-primary-color,#2c7be5) !important;
  color:#fff !important;

  border:none !important;
  border-radius:6px !important;

  font-size:16px !important;
  font-weight:600 !important;
  white-space:nowrap !important;

  cursor:pointer !important;
  box-sizing:border-box !important;
}
/* =========================
   3) BOUTONS FRONT
========================= */

#rdv-id-send,
#rdv-send{
  display:none;
  margin:10px auto;
  padding:10px 20px;

  font-size:16px;
  font-weight:600;

  color:#fff;
  border:none;
  border-radius:6px;
  cursor:pointer;
}

#rdv-id-send{
  background:#2c7be5;
}

#rdv-id-send:hover{
  background:#1f5fbf;
}

#rdv-send{
  background:#28a745;
}

#rdv-send:hover{
  background:#1e7e34;
}

/* =========================
   4) WRAP GÉNÉRAL
========================= */

.rdv-parent-wrap{
    width:100% !important;
    max-width: {$max_width}px !important;
    margin:0 auto 24px auto !important;
    color: {$text} !important;
    text-align:center !important;
    align-self:center !important;
    justify-self:center !important;
  }
.rdv-parent-wrap.rdv-parent-install-direct{
  width:min(560px, calc(100vw - 32px)) !important;
  max-width:560px !important;

  margin-left:auto !important;
  margin-right:auto !important;

  padding-left:0 !important;
  padding-right:0 !important;

  text-align:left !important;
}
.rdv-parent-wrap,
.rdv-parent-wrap *{
  box-sizing:border-box;
}

/* =========================
   5) STRUCTURE DES BLOCS CHAMPS
   AE + SE : un seul réglage officiel des espaces
========================= */

.rdv-parent-form .rdv-slot,
.rdv-parent-form label.rdv-slot,
.rdv-parent-form .rdv-field,
.rdv-parent-form .rdv-slot.rdv-field,
.rdv-parent-form label.rdv-slot.rdv-field{
  display:flex !important;
  flex-direction:column !important;

  /* espace entre le titre du champ et le champ */
  gap:8px !important;

  width:100%;

  /* espace entre un bloc champ complet et le suivant */
  margin:0 0 30px !important;
  padding:0 !important;

  background:transparent !important;
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
/* =========================
   6) INPUTS / SELECTS / TEXTAREA
   Trait souligné seulement
========================= */

.rdv-parent-form input:not([type="file"]),
.rdv-parent-form select,
.rdv-parent-form textarea{
  width:100% !important;
  max-width:100% !important;

  min-height:38px !important;
  padding:0 2px !important;

  background:transparent !important;
  color:inherit !important;

  border:none !important;
  border-bottom:2px solid #000 !important;
  border-radius:0 !important;

  outline:none !important;
  box-shadow:none !important;

  appearance:none !important;
  -webkit-appearance:none !important;
}

.rdv-parent-form input:not([type="file"]),
.rdv-parent-form select{
  height:40px !important;
  line-height:40px !important;
}

.rdv-parent-form textarea{
  line-height:1.45 !important;
  padding-top:8px !important;
  resize:vertical;
}

.rdv-parent-form input:not([type="file"]):focus,
.rdv-parent-form select:focus,
.rdv-parent-form textarea:focus{
  border-bottom-width:3px !important;
}

.rdv-parent-form input:not([type="file"]):disabled,
.rdv-parent-form select:disabled,
.rdv-parent-form textarea:disabled,
.rdv-parent-form input:not([type="file"])[readonly],
.rdv-parent-form textarea[readonly]{
  opacity:.78 !important;
  cursor:not-allowed !important;
  background:transparent !important;
  border:none !important;
  border-bottom:2px solid #d5d5d5 !important;
  color:#555 !important;
}

/* =========================
   7) SELECT : FLÈCHE SIMPLE
========================= */

.rdv-parent-form select{
  padding-right:26px !important;
  background-image:
    linear-gradient(45deg,transparent 50%,#333 50%),
    linear-gradient(135deg,#333 50%,transparent 50%);
  background-position:
    calc(100% - 14px) 55%,
    calc(100% - 8px) 55%;
  background-size:6px 6px;
  background-repeat:no-repeat;
}

/* =========================
   8) CHAMP MOYENNE
========================= */

.rdv-parent-form .rdv-moyenne-wrap{
  display:flex;
  align-items:center;
  gap:8px;
}

.rdv-parent-form .rdv-moyenne-wrap input{
  width:4ch !important;
  text-align:center !important;
}

.rdv-parent-form .rdv-moyenne-comma{
  font-size:18px;
  font-weight:700;
}

/* =========================
   9) LIGNES HORIZONTALES
   DOB / adresse / contact
========================= */

.rdv-parent-form .rdv-row{
  display:flex;
  gap:14px;
  align-items:flex-end;
  width:100%;

  /* espace après une ligne horizontale complète */
  margin:0 0 30px !important;
}

.rdv-parent-form .rdv-row .rdv-slot,
.rdv-parent-form .rdv-row label.rdv-slot,
.rdv-parent-form .rdv-row .rdv-field{
  margin-bottom:0 !important;
}

.rdv-parent-form .rdv-col{
  flex:1;
}

.rdv-parent-form .rdv-row.rdv-dob .rdv-col{
  flex:0 0 90px;
}

.rdv-parent-form .rdv-row.rdv-dob .rdv-col.rdv-year{
  flex:0 0 140px;
}

.rdv-parent-form .rdv-row.rdv-addr{
  gap:14px;
}

.rdv-parent-form .rdv-row.rdv-addr .addr{
  flex:1 1 auto;
}

.rdv-parent-form .rdv-row.rdv-addr .city{
  flex:0 0 160px;
}

.rdv-parent-form .rdv-row.rdv-contact .mobile{
  flex:0 0 220px;
}

.rdv-parent-form .rdv-row.rdv-contact .email{
  flex:1;
}

.rdv-parent-form .rdv-phone-wrap{
  display:flex;
  align-items:flex-end;
  gap:8px;
}

.rdv-parent-form .rdv-phone-wrap input{
  flex:1 1 auto;
}

.rdv-parent-form .rdv-phone-ico{
  flex:0 0 auto;
  line-height:38px;
}

.rdv-parent-form .rdv-paper-inline{
  gap:12px;
}
/* =========================
   10) CRÉNEAUX
   - espace après le message d’avertissement
   - espace propre entre les créneaux
   - cases radio alignées avec la ligne
   - cadre supprimé, soulignement uniquement
========================= */

.rdv-slots-wrap{
  margin-top:8px;
}

/* Message :
   ⚠️ La liste des créneaux se met à jour automatiquement.
   Si un créneau disparaît...
*/
body .rdv-parent-wrap .rdv-slots-warning{
  display:block !important;

  width:100% !important;
  max-width:560px !important;

  margin:0 0 18px 0 !important;
  padding:8px 10px 8px 10px !important;

  text-align:left !important;
  line-height:1.35 !important;

  background:transparent !important;
  background-color:transparent !important;

  border:none !important;
  border-left:4px solid #c40000 !important;

  box-shadow:none !important;

  color:#8a1414 !important;
  font-size:14px !important;
  font-weight:700 !important;

  animation:rdvSlotsWarningBlink 1.2s ease-in-out infinite !important;
}

@keyframes rdvSlotsWarningBlink{
  0%{
    opacity:1;
  }

  50%{
    opacity:.35;
  }

  100%{
    opacity:1;
  }
}

/* Liste des créneaux */
.rdv-slots-list{
  display:flex !important;
  flex-direction:column !important;

  /* espace entre les lignes créneaux */
  gap:8px !important;

  width:100% !important;
  max-width:100% !important;

  margin:0 !important;
  padding:0 !important;
}

/* Ligne d’un créneau */
.rdv-slots-list .rdv-slot{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;

  /* distance entre case radio et texte */
  gap:10px !important;

  width:220px !important;
  max-width:100% !important;

  min-height:30px !important;
  padding:5px 0 7px 0 !important;
  margin:0 !important;

  /* pas de cadre complet : soulignement seulement */
  border:none !important;
  border-bottom:1px solid #d8d8d8 !important;
  border-radius:0 !important;

  background:transparent !important;
  box-shadow:none !important;

  cursor:pointer !important;

  font-size:14px !important;
  line-height:1.25 !important;
  text-align:left !important;
  box-sizing:border-box !important;
}

/* Case radio alignée avec la ligne */
.rdv-slots-list input[type="radio"]{
  width:16px !important;
  height:16px !important;

  min-width:16px !important;
  min-height:16px !important;
  max-width:16px !important;
  max-height:16px !important;

  margin:0 !important;
  padding:0 !important;

  flex:0 0 16px !important;
  align-self:center !important;

  vertical-align:middle !important;
  box-sizing:border-box !important;
}

/* Texte du créneau : numéro + date + heure */
.rdv-slots-list .rdv-slot-text{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;

  gap:6px !important;

  line-height:1.25 !important;
  white-space:nowrap !important;

  text-align:left !important;
}

/* Numéro du créneau */
.rdv-slot-index{
  display:inline-block !important;
  min-width:24px !important;

  font-weight:700 !important;
  color:inherit !important;
  text-align:left !important;
}

/* Zone "charger plus" */
.rdv-slots-loadmore-wrap{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:baseline !important;
  gap:8px !important;
  margin-top:12px !important;
}

/* Bouton Charger plus : sans fond, souligné uniquement */
body .rdv-parent-wrap .rdv-slots-loadmore{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;

  height:auto !important;
  min-height:0 !important;
  line-height:1.2 !important;

  margin:0 !important;
  padding:0 0 2px 0 !important;

  background:transparent !important;
  background-color:transparent !important;

  color:#d97706 !important;

  border:none !important;
  border-bottom:2px solid #d97706 !important;
  border-radius:0 !important;

  box-shadow:none !important;
  outline:none !important;

  font-size:14px !important;
  font-weight:800 !important;

  cursor:pointer !important;
}

/* Survol : garder sans fond */
body .rdv-parent-wrap .rdv-slots-loadmore:hover,
body .rdv-parent-wrap .rdv-slots-loadmore:focus{
  background:transparent !important;
  background-color:transparent !important;

  color:#b45309 !important;
  border-bottom-color:#b45309 !important;

  box-shadow:none !important;
  outline:none !important;
}

/* Fin de liste */
.rdv-slots-end{
  font-weight:600;
  color:#2e7d32;
}
/* =========================
   11) BOUTONS PRINCIPAUX
========================= */

.rdv-primary{
  width:100%;
  margin-top:12px;
  padding:14px 16px;

  background:#2c7be5;
  color:#fff;

  border:none;
  font-weight:700;
  cursor:pointer;
}

.rdv-primary:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* =========================
   12) TITRES DE SECTION
   AE + SE : espaces avant/après les blocs
========================= */

.rdv-band-title,
.rdv-slots-title{
  width:100% !important;

  margin:34px 0 22px 0 !important;
  padding:0 !important;

  background:transparent !important;
  background-color:transparent !important;
  color:#c40000 !important;

  border:none !important;
  border-left:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;

  font-size:20px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:.6px !important;
  line-height:1.2 !important;
  text-align:left !important;
}

.rdv-parent-form > .rdv-slots-title:first-of-type,
.rdv-parent-form > .rdv-band-title:first-of-type{
  margin-top:22px !important;
}

.rdv-parent-form .rdv-hint{
  margin:4px 0 18px !important;
  color:#8a1414;
  font-weight:700;
  line-height:1.35;
}

.rdv-parent-form .rdv-row + .rdv-slots-title,
.rdv-parent-form .rdv-slot + .rdv-slots-title,
.rdv-parent-form .rdv-hint + .rdv-slots-title{
  margin-top:34px !important;
}
/* =========================
   13) ERREURS
========================= */

.rdv-parent-form .rdv-error{
  border-bottom-color:#d10000 !important;
  border-bottom-width:3px !important;
}

.rdv-form-error{
  margin:10px 0 12px;
  padding:10px 12px;

  border-left:4px solid #d10000;

  background:#fff5f5;
  color:#b00000;

  font-weight:800;
}

/* =========================
   14) MODAL DE CONFIRMATION
========================= */

#rdv-confirm-modal{
  position:fixed !important;
  top:14px !important;
  left:50% !important;
  transform:translateX(-50%) !important;

  width:min(700px, calc(100% - 24px));
  z-index:999999;
}

#rdv-confirm-modal .rdv-modal-box{
  background:#fff;
  border:1px solid #e5e5e5;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}

#rdv-confirm-modal .rdv-modal-head{
  display:flex;
  justify-content:space-between;
  padding:10px 12px;
  background:#0F2954;
  color:#fff;
}

#rdv-confirm-modal .rdv-modal-body{
  padding:12px;
}

#rdv-confirm-modal .rdv-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:10px 12px;
}

/* =========================
   15) RÉGLAGES DYNAMIQUES WORDPRESS
========================= */

.rdv-parent-wrap{
  color:var(--rdv-text-color,#111) !important;
}

#rdv-code-send{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:200px !important;
  max-width:200px !important;
  min-width:200px !important;

  margin:12px auto 0 auto !important;

  background:var(--rdv-primary-color,#2c7be5) !important;
  color:#fff !important;
  border:none !important;
  border-radius:6px !important;
  cursor:pointer !important;
  padding:10px 20px !important;
  font-size:16px !important;
  font-weight:600 !important;
  box-sizing:border-box !important;
}

#rdv-id-send,
.rdv-modal-ok{
  background:var(--rdv-primary-color,#2c7be5) !important;
  color:#fff !important;
  border:none !important;
  border-radius:6px !important;
  cursor:pointer !important;
  padding:10px 20px !important;
  font-size:16px !important;
  font-weight:600 !important;
}

#rdv-code-send:hover,
#rdv-id-send:hover,
.rdv-modal-ok:hover{
  filter:brightness(.92);
}

#rdv-send,
.rdv-primary{
  background:var(--rdv-success-color,#28a745) !important;
}

/* =========================
   16) ALIGNEMENT FRONT OFFICIEL UNIQUE
========================= */

.rdv-parent-wrap .rdv-parent-form,
.rdv-parent-wrap #rdv-slots-block,
.rdv-parent-wrap .rdv-parent-meta,
.rdv-parent-wrap > .rdv-slots-wrap{
  width:min(560px, calc(100vw - 32px)) !important;
  max-width:calc(100vw - 32px) !important;
margin-bottom:18px !important;
  margin-left:auto !important;
  margin-right:auto !important;

  text-align:left !important;
  box-sizing:border-box !important;

  /* décalage automatique léger vers la gauche */
  transform:none !important;
}

.rdv-parent-wrap #rdv-slots-block .rdv-slots-wrap,
.rdv-parent-wrap #rdv-slots-block .rdv-slots-list{
  width:100% !important;
  max-width:100% !important;

  margin-left:0 !important;
  margin-right:auto !important;

  text-align:left !important;
  box-sizing:border-box !important;

  transform:none !important;
}

.rdv-parent-wrap .rdv-parent-form,
.rdv-parent-wrap .rdv-slots-wrap,
.rdv-parent-wrap .rdv-parent-meta,
.rdv-parent-wrap .rdv-slots-list{
  align-items:flex-start !important;
  justify-content:flex-start !important;
}

.rdv-parent-wrap .rdv-parent-form .rdv-slot,
.rdv-parent-wrap .rdv-parent-form label.rdv-slot,
.rdv-parent-wrap .rdv-parent-form .rdv-field,
.rdv-parent-wrap .rdv-slots-list .rdv-slot{
  align-items:flex-start !important;
  justify-content:flex-start !important;
  text-align:left !important;
  margin-left:0 !important;
  margin-right:auto !important;
}

.rdv-parent-wrap .rdv-parent-form .rdv-slot-text,
.rdv-parent-wrap .rdv-parent-form label,
.rdv-parent-wrap .rdv-parent-form strong,
.rdv-parent-wrap .rdv-hint,
.rdv-parent-wrap .rdv-slots-warning,
.rdv-parent-wrap .rdv-slots-page-info,
.rdv-parent-wrap .rdv-slots-end{
  text-align:left !important;
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  border:none !important;
}

.rdv-parent-wrap .rdv-parent-form input:not([type="file"]),
.rdv-parent-wrap .rdv-parent-form select,
.rdv-parent-wrap .rdv-parent-form textarea{
  width:100% !important;
  max-width:100% !important;

  margin-left:0 !important;
  margin-right:auto !important;

  background-color:transparent !important;
  color:inherit !important;

  border:none !important;
  border-bottom:2px solid #000 !important;
  border-radius:0 !important;

  outline:none !important;
  box-shadow:none !important;

  text-align:left !important;
}
.rdv-parent-wrap .rdv-parent-form input:not([type="file"]):focus,
.rdv-parent-wrap .rdv-parent-form select:focus,
.rdv-parent-wrap .rdv-parent-form textarea:focus{
  border:none !important;
  border-bottom:3px solid #000 !important;
  outline:none !important;
  box-shadow:none !important;
}
.rdv-parent-wrap .rdv-moyenne-wrap,
.rdv-parent-wrap .rdv-row,
.rdv-parent-wrap .rdv-phone-wrap{
  justify-content:flex-start !important;
  align-items:flex-end !important;
  text-align:left !important;
}

.rdv-parent-wrap #rdv-book{
  background:#ff8c00 !important;
  color:#fff !important;
  border:none !important;
}

.rdv-parent-wrap #rdv-book:hover:not(:disabled){
  filter:brightness(.92) !important;
}
/* =========================
   17) INFOS EXISTANTES VERROUILLÉES
========================= */

.rdv-parent-form[data-kind="FORM"] .rdv-existing-locked{
  opacity:.72;
}

.rdv-parent-form[data-kind="FORM"] [data-rdv-locked-existing="1"]{
  background:transparent !important;
  color:#555 !important;
  border:none !important;
  border-bottom:2px solid #d5d5d5 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
}

.rdv-parent-form[data-kind="FORM"] .rdv-existing-locked .rdv-slot-text::after{
  content:"  — non modifiable";
  color:#777;
  font-size:12px;
  font-weight:600;
}

/* =========================
   18) RESPONSIVE
========================= */

@media (max-width:560px){
  .rdv-parent-form .rdv-row{
    flex-wrap:wrap;
  }

  .rdv-parent-form .rdv-row.rdv-addr .addr,
  .rdv-parent-form .rdv-row.rdv-addr .city,
  .rdv-parent-form .rdv-row.rdv-contact .mobile,
  .rdv-parent-form .rdv-row.rdv-contact .email{
    flex:1 1 100%;
  }
}



 .rdv-slots-list input[type="radio"]{
  width:16px !important;
  height:16px !important;
}
/* =====================================================
   19) ESPACEMENTS FORMULAIRES AE + SE — CORRECTION FINALE
   Agit sur les deux formulaires : AE + SE / FORM
===================================================== */

/* bloc champ complet : titre + champ
   gap = espace entre le titre et son champ
   margin-bottom = espace entre ce bloc et le bloc champ suivant
*/
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-slot.rdv-field,
.rdv-parent-wrap .rdv-parent-form[data-kind] label.rdv-slot.rdv-field{
  display:flex !important;
  flex-direction:column !important;

  /* espace entre le titre du champ et son champ */
  gap:1px !important;

  /* espace entre ce bloc titre+champ et le bloc suivant */
  margin:0 0 20px !important;
}

/* titre du champ : Classe demandée, Civilité, Garderie, etc. */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-slot-text{
  display:block !important;
  margin:0 0 2px !important;
  line-height:1.35 !important;
  font-size:18px !important;
  font-weight:800 !important;
}

/* champ de saisie */
.rdv-parent-wrap .rdv-parent-form[data-kind] input:not([type="file"]),
.rdv-parent-wrap .rdv-parent-form[data-kind] select,
.rdv-parent-wrap .rdv-parent-form[data-kind] textarea{
  margin-top:0 !important;
}

/* lignes avec plusieurs champs : date naissance, adresse, contact */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-row{
  margin:0 0 36px !important;
  gap:18px !important;
  align-items:flex-end !important;
}

/* éviter double espace quand une ligne est à l’intérieur d’un bloc champ */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-slot.rdv-field > .rdv-row{
  margin-bottom:0 !important;
}

/* éviter double espace dans les champs qui sont à l’intérieur d’une ligne */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-row .rdv-slot.rdv-field,
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-row label.rdv-slot.rdv-field{
  margin-bottom:0 !important;
}

/* espace avant/après les grands titres : INFORMATIONS, SERVICES, RESPONSABLES... */
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-slots-title,
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-band-title{
  margin:40px 0 28px 0 !important;
}

/* pas d’espace ajouté en double juste après un titre */
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-slots-title + .rdv-slot.rdv-field,
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-slots-title + .rdv-row,
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-band-title + .rdv-slot.rdv-field,
.rdv-parent-wrap .rdv-parent-form[data-kind] > .rdv-band-title + .rdv-row{
  margin-top:0 !important;
}

/* petit texte rouge / remarque */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-hint{
  margin:4px 0 10px !important;
  line-height:1.45 !important;
}
/* réduire l’espace entre le texte rouge adresse et le bloc SERVICES */
.rdv-parent-wrap .rdv-parent-form[data-kind] .rdv-hint + .rdv-slots-title{
  margin-top:12px !important;
}

/* =========================
   20) LARGEURS CHAMPS DE SAISIE — AE + SE
   Objectif : champs courts et adaptés au type de donnée
========================= */

/* largeur standard : nom, prénom, école, profession */
.rdv-parent-wrap .rdv-parent-form input:not([type="file"]),
.rdv-parent-wrap .rdv-parent-form select,
.rdv-parent-wrap .rdv-parent-form textarea{
  width:min(100%, 260px) !important;
  max-width:100% !important;
}

/* listes déroulantes : largeur adaptée aux options */
.rdv-parent-wrap .rdv-parent-form select{
  width:fit-content !important;
  min-width:150px !important;
  max-width:320px !important;
}

/* petits champs de sélection */
.rdv-parent-wrap .rdv-parent-form #rdv-class-level,
.rdv-parent-wrap .rdv-parent-form #rdv-gender,
.rdv-parent-wrap .rdv-parent-form #rdv-birth-year{
  width:150px !important;
  min-width:150px !important;
  max-width:150px !important;
}

/* responsable légal : option un peu plus longue */
.rdv-parent-wrap .rdv-parent-form #rdv-legal-role{
  width:190px !important;
  min-width:190px !important;
  max-width:190px !important;
}

/* nom élève / responsable / école */
.rdv-parent-wrap .rdv-parent-form #rdv-parent-name,
.rdv-parent-wrap .rdv-parent-form #rdv-eleve-full,
.rdv-parent-wrap .rdv-parent-form #rdv-school,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-last,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-first,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-job,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-last,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-first,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-job,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-other-last,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-other-first{
  width:260px !important;
  max-width:100% !important;
}

/* mobiles : courts */
.rdv-parent-wrap .rdv-parent-form #rdv-mobile,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-mobile,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-mobile{
  width:150px !important;
  max-width:150px !important;
}

/* emails : un peu plus longs */
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-email,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-email{
  width:280px !important;
  max-width:100% !important;
}

/* date de naissance JJ / MM / AAAA */
.rdv-parent-wrap .rdv-parent-form #rdv-paper-dob-jj,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-dob-mm{
  width:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  text-align:center !important;
}

.rdv-parent-wrap .rdv-parent-form #rdv-paper-dob-aaaa{
  width:78px !important;
  min-width:78px !important;
  max-width:78px !important;
  text-align:center !important;
}

/* moyenne */
.rdv-parent-wrap .rdv-parent-form #rdv-moyenne-before,
.rdv-parent-wrap .rdv-parent-form #rdv-moyenne-after{
  width:4ch !important;
  min-width:4ch !important;
  max-width:4ch !important;
  text-align:center !important;
}

/* adresse : plus large car texte long */
.rdv-parent-wrap .rdv-parent-form #rdv-paper-addr1,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-addr1,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-addr1{
  width:360px !important;
  max-width:100% !important;
}

/* ville : courte */
.rdv-parent-wrap .rdv-parent-form #rdv-paper-city,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-father-city,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-mother-city{
  width:160px !important;
  max-width:160px !important;
}

/* services et choix administratifs : adaptés aux options */
.rdv-parent-wrap .rdv-parent-form #rdv-paper-restauration,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-garderie,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-club,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-family,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-authority,
.rdv-parent-wrap .rdv-parent-form #rdv-paper-other-quality{
  width:fit-content !important;
  min-width:190px !important;
  max-width:320px !important;
}

/* champs téléphone avec icône : empêcher l'étirement */
.rdv-parent-wrap .rdv-parent-form .rdv-phone-wrap input{
  flex:0 0 auto !important;
}

/* sur mobile seulement : les champs reprennent toute la largeur disponible */
@media (max-width:560px){
  .rdv-parent-wrap .rdv-parent-form input:not([type="file"]),
  .rdv-parent-wrap .rdv-parent-form select,
  .rdv-parent-wrap .rdv-parent-form textarea{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
}
/* =====================================================
   LARGEUR UNIQUE CHAMP CODE + BOUTON
   PC + MOBILE
===================================================== */

body .rdv-parent-wrap #rdv-code-area input#rdv-code-input{
  width:150px !important;
  max-width:150px !important;
  min-width:150px !important;

  height:46px !important;
  min-height:46px !important;
  line-height:46px !important;

  margin:0 auto 14px auto !important;
  padding:0 12px !important;

  text-align:center !important;
  box-sizing:border-box !important;
}

body .rdv-parent-wrap #rdv-code-area button#rdv-code-send{
  width:150px !important;
  max-width:150px !important;
  min-width:150px !important;

  height:46px !important;
  min-height:46px !important;
  line-height:46px !important;

  margin:12px auto 0 auto !important;
  padding:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  box-sizing:border-box !important;
}