/* 1 colonne stricte */
#idfif-form .row { display: block; }
#idfif-form label { display: block; margin-bottom: 8px; }

.idfif-html { margin: 0 0 16px 0; position: relative; z-index: 1; }
#idfif-form fieldset,
#idfif-form label,
#idfif-form input,
#idfif-form select,
#idfif-form textarea,
#idfif-form canvas { position: relative; z-index: 2; }

#idfif-form input[type="text"],
#idfif-form input[type="email"],
#idfif-form input[type="tel"],
#idfif-form input[type="date"],
#idfif-form select,
#idfif-form textarea,
#idfif-form input[type="file"] { padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
#idfif-form textarea { min-height: 90px; }
#idfif-form .idfif-radio, #idfif-form .idfif-checkboxes { display: flex; flex-wrap: wrap; gap: 10px; }
#idfif-form .actions { display: flex; gap: 12px; }
#idfif-form button { padding: 10px 14px; border: 0; border-radius: 4px; cursor: pointer; }
#idfif-save-draft { background: #eee; }
#idfif-submit { background: #0166d6; color: #fff; }
#idfif-status { margin-top: 12px; font-size: 0.95rem; }
#idfif-status.ok { color: #1a7f37; }
#idfif-status.err { color: #c62828; }
.idfif-html a { color: #0166d6; text-decoration: underline; }

/* Signature manuscrite */
.idfif-signature-field { margin: 8px 0 16px 0; }
.idfif-signature-wrap { display: inline-block; position: relative; }
.idfif-signature {
  width: 640px; height: 180px;
  border: 1px dashed #888; border-radius: 6px; background: #fff;
  touch-action: none; cursor: crosshair; z-index: 3;
}
.idfif-signature-tools { margin-top: 6px; display: flex; gap: 8px; align-items: center; }
.idfif-signature-tools button { background: #eee; color: #000; }
.idfif-signature-hint { font-size: 0.9rem; color: #444; margin-top: 4px; }

.idfif-counter { font-size: 0.85rem; color: #6b7280; margin-top: 4px; }
.idfif-counter.over { color: #c62828; }

@media (max-width: 700px){ .idfif-signature { width: 100%; height: 180px; } }

/* =======================================================
   Correctifs de délimitation des sections
   ======================================================= */
#idfif-form fieldset { margin: 1.5rem 0 1.25rem; }
#idfif-form fieldset + fieldset { margin-top: 2rem; }
#idfif-form fieldset legend { display: inline-block; padding: 0 .5rem; }
#idfif-form fieldset p { margin: .5rem 0; }
#idfif-form .form-row, #idfif-form .form-group { margin-bottom: .9rem; }
/* =====================
   Correctifs forts titres & sections (v3)
   Cible explicitement le formulaire et force la hiérarchie visuelle.
   ===================== */

form#idfif-form { max-width: 1100px; }

/* Encadrement clair des sections */
form#idfif-form > fieldset {
  border: 1px solid #e3e3e3 !important;
  border-radius: 10px !important;
  padding: 1.25rem 1.25rem 1rem !important;
  margin: 1.5rem 0 1.25rem !important;
  background: #fff !important;
}

/* Titre de section façon H3 */
form#idfif-form > fieldset > legend {
  display: inline-block !important;
  font-size: 1.25rem !important;   /* ≈ H3 */
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 0 .5rem !important;
  margin-bottom: .75rem !important; /* espace sous le titre */
}

/* Sous‑titres (fallback si vous en avez) */
form#idfif-form .sublegend {
  display: block !important;
  font-size: 1.05rem !important;   /* ≈ H4 */
  font-weight: 600 !important;
  margin: .75rem 0 .25rem !important;
}

/* Espacement harmonisé des groupes de champs */
form#idfif-form .form-row,
form#idfif-form .form-group {
  margin-bottom: .9rem !important;
}

/* Accent visuel sur la section active au clavier */
form#idfif-form > fieldset:focus-within {
  border-color: #cfcfcf !important;
  box-shadow: 0 0 0 2px rgba(0,0,0,.04) inset !important;
}

/* Fallback si le plugin n'utilise pas <fieldset><legend> pour certaines sections */
form#idfif-form .idfif-section {
  border: 1px solid #e3e3e3 !important;
  border-radius: 10px !important;
  padding: 1.25rem 1.25rem 1rem !important;
  margin: 1.5rem 0 1.25rem !important;
}
form#idfif-form .idfif-section .idfif-section-title {
  display: block !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  margin-bottom: .75rem !important;
}

/* ====== Une seule colonne, responsive et centrée ====== */
form#idfif-form {
  width: 100%;
  max-width: min(90vw, 800px); /* 90% de la largeur viewport, max 800px */
  margin-inline: auto;
  padding-inline: 1rem;
  box-sizing: border-box;
}

/* Empilement simple des champs */
form#idfif-form .row {
  display: block !important;
}

/* Chaque label/field sur sa propre ligne */
form#idfif-form label {
  display: block;
  margin-bottom: 12px;
}

/* Champs pleine largeur + focus accessible */
form#idfif-form input[type="text"],
form#idfif-form input[type="email"],
form#idfif-form input[type="tel"],
form#idfif-form input[type="date"],
form#idfif-form input[type="file"],
form#idfif-form select,
form#idfif-form textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #cfd4dc;
  border-radius: 6px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
  box-sizing: border-box;
}
form#idfif-form input:focus,
form#idfif-form select:focus,
form#idfif-form textarea:focus {
  outline: none;
  border-color: #9bb6f0;
  box-shadow: 0 0 0 3px rgba(1,102,214,.15);
}

/* Groupes radios/checkboxes en pile */
form#idfif-form .idfif-radio,
form#idfif-form .idfif-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
form#idfif-form .idfif-radio > label,
form#idfif-form .idfif-checkboxes > label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

/* Boutons : en ligne sur desktop, empilés sur mobile */
form#idfif-form .actions {
  display: flex;
  gap: 12px;
  margin-top: 1rem;
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  form#idfif-form .actions {
    flex-direction: column;
    align-items: stretch;
  }
  form#idfif-form .actions > * {
    width: 100%;
  }
}
#idfif-save-draft { background: #eef2f6; }
#idfif-submit    { background: #0166d6; color: #fff; }

/* Sections harmonisées */
form#idfif-form > fieldset {
  border: 1px solid #e3e3e3 !important;
  border-radius: 10px !important;
  padding: 1.25rem !important;
  margin: 1.25rem 0 !important;
  background: #fff !important;
}
form#idfif-form > fieldset > legend {
  display: inline-block !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  padding: 0 .5rem !important;
  margin-bottom: .75rem !important;
}

/* Signature responsive */
.idfif-signature { width: 100%; max-width: 640px; height: 180px; }
@media (max-width: 700px){
  .idfif-signature { width: 100%; height: 180px; }
}

/* === IDFIF: rendu des menus Oui/Non (remplacement radios -> select) === */
form#idfif-form .idfif-radio select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #cfd4dc;
  border-radius: 6px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
  box-sizing: border-box;
}
form#idfif-form .idfif-radio select:focus {
  outline: none;
  border-color: #9bb6f0;
  box-shadow: 0 0 0 3px rgba(1,102,214,.15);
}
/* Si le conteneur .idfif-radio ne contient plus qu'un select, éviter l'effet "groupe multiple" */
form#idfif-form .idfif-radio { gap: 0; }
/* Field error styles */
.idfif-error { outline: 2px solid #e11; border-radius: 4px; }
.idfif-error-text { font-size: 0.875rem; margin-top: 4px; }
/* Honeypot container */
.idfif-honeypot { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
/* Hidden helper */
.idfif-hidden{display:none !important;}
/* Signature canvas base */
canvas.idfif-signature{ display:block; width:100%; touch-action:none; -ms-touch-action:none; }

@media (max-width: 900px){
  canvas.idfif-signature{ min-height: 240px; }
}
.idfif-hidden{ display:none !important; }

.idfif-ti-block{
  margin: 8px 0 0;
}
.idfif-ti-block .idfif-ti-label{
  display:block; margin: 6px 0 4px;
}
.idfif-ti-block .idfif-ti-select{
  display:block; max-width:260px; padding:6px 8px; border-radius:6px;
  margin: 0 0 8px;
}
.idfif-ti-block input[type="text"]{
  display:block; margin-top:4px; max-width:420px;
}

.idfif-bc-subtitle{
  margin: 10px 0 16px;
  padding: 8px 12px;
  background: #eef4ff;
  border-left: 4px solid #3b6cff;
  font-size: 1rem;
  font-weight: 600;
  color: #1b2d55;
  border-radius: 4px;
}
.idfif-hidden{ display: none !important; }

.idfif-allegements { margin: 10px 0 18px; }
.idfif-allegements h4 { margin: 10px 0 6px; font-size: 1rem; }
.idfif-allegements .idfif-list { margin: 4px 0 12px 0; padding-left: 0; list-style: none; }
.idfif-allegements .idfif-list li { margin: 4px 0; }
.idfif-allegements-q { margin: 6px 0 10px; }
.idfif-allegements-q label { margin-left: 10px; }
