/* =========================================================
   FORMULAIRES — champs, groupes de filtres, aide contextuelle
   ========================================================= */
fieldset.filter-group{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1rem;
  margin-bottom:1rem;
}
fieldset.filter-group > legend{
  font-size:.85rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em;
  color:var(--text-secondary);
  float:none; width:auto; padding:0 .3rem;
}

.form-label{ font-weight:600; }
.form-control, .form-select{
  border-radius:var(--radius-sm);
  border-color:var(--border);
  padding:.65rem .8rem;
}
.form-control:focus, .form-select:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 .2rem rgba(0,60,121,.15);
}

/* Cases à cocher / boutons radio — remplace le bleu Bootstrap
   par défaut par la couleur institutionnelle */
.form-check-input:checked{
  background-color:var(--primary);
  border-color:var(--primary);
}
.form-check-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 .2rem rgba(0,60,121,.15);
}
.form-check-input:indeterminate{
  background-color:var(--primary);
  border-color:var(--primary);
}

/* Focus accessible . Remplace le bleu utilisé jusqu'ici
   dans .form-control:focus / .form-check-input:focus (forms.css,
   bootstrap-overrides.css) par cohérence. */
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
textarea:focus{
  border-color: var(--focus-color) !important;
  box-shadow: 0 0 0 .2rem rgba(255,201,60,.4) !important;
  outline: none;
}
/* Olivero force width:auto sur les champs texte au-delà de 500px
   (form-text.css), ce qui casse notre mise en page Bootstrap
   pleine largeur — on la réaffirme explicitement au même point de
   rupture. */
@media (min-width: 31.25rem) {
  .form-control,
  .form-select {
    width: 100%;
  }
}

/* Bouton "Supprimer la sélection" des champs managed_file (photo,
   documents) — style outline plutôt que le bouton plein hérité de
   la règle générale sur tous les input[type=submit]. */
input[name$="_remove_button"] {
  background-color: transparent;
  color: var(--primary);
  border: 1px solid var(--primary);
  padding: .5rem 1rem;
  font-size: .85rem;
  height: unset;
}
input[name$="_remove_button"]:hover {
  background-color: var(--primary);
  color: #fff;
  border: 1px solid var(--primary);
  padding: .5rem 1rem;
  font-size: 1rem;
  height: unset;
}
/* Radio : anneau vide au repos, anneau + point central une fois
   sélectionné — plutôt qu'un disque plein (règle héritée du
   prototype, mais visuellement pas ce qui est souhaité ici). */
input[type="radio"].form-check-input {
  appearance: none;
  border-radius: 50%;
  border: 1px solid var(--border);
  background-color: #fff;
}
input[type="radio"].form-check-input:checked {
  background-color: #fff;
  border-color: var(--primary);
  background-image: radial-gradient(var(--primary) 0%, var(--primary) 40%, transparent 50%);
}

/* Cases à cocher un peu plus grandes que le réglage précédent. */
input[type="checkbox"].form-check-input,
input[type="radio"].form-check-input {
  width: 1.3em !important;
  height: 1.3em !important;
  margin-top: unset;
  margin-right: 10px;
  border-color : var(--border)
}

.form-check-label {
  font-weight: 400;
}

/* Réduit l'espacement vertical entre les champs — mb-3 (1rem) +
   marge de fieldset (1rem) s'additionnent et donnent un formulaire
   trop aéré. */
.filter-group .form-item {
  margin-bottom: .65rem;
}
fieldset.filter-group {
  margin-bottom: .75rem;
  padding: .85rem 1rem;
}

/* 2. Radios "side_by_side" (Vous êtes) — Webform les rend en
   inline-block, incompatible avec .form-check de Bootstrap
   (display:block) — cause le retour à la ligne du texte. */
.webform-options-display-side-by-side {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1.5rem;
}
.webform-options-display-side-by-side > div {
  display: inline-flex !important;
  align-items: center;
  margin-right: 0;
}
.webform-options-display-side-by-side .form-check {
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.form-item__label{
  font-size: 1rem !important;
}
/* 4. Astérisque "obligatoire" — couleur institutionnelle plutôt
   que la couleur par défaut du thème core. */
.form-item__label.form-required::after,
.form-label.form-required::after,
.fieldset__label.form-required::after,
.form-label.form-required::after,
.required-mark::after {
  background-image: none !important;
  background-color: var(--primary) !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 7.562 1.114-3.438c2.565.906 4.43 1.688 5.59 2.35-.306-2.921-.467-4.93-.484-6.027h3.511c-.05 1.597-.234 3.6-.558 6.003 1.664-.838 3.566-1.613 5.714-2.325l1.113 3.437c-2.05.678-4.06 1.131-6.028 1.356.984.856 2.372 2.381 4.166 4.575l-2.906 2.059c-.935-1.274-2.041-3.009-3.316-5.206-1.194 2.275-2.244 4.013-3.147 5.206l-2.856-2.059c1.872-2.307 3.211-3.832 4.017-4.575-2.081-.402-4.058-.856-5.93-1.356' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg height='16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 7.562 1.114-3.438c2.565.906 4.43 1.688 5.59 2.35-.306-2.921-.467-4.93-.484-6.027h3.511c-.05 1.597-.234 3.6-.558 6.003 1.664-.838 3.566-1.613 5.714-2.325l1.113 3.437c-2.05.678-4.06 1.131-6.028 1.356.984.856 2.372 2.381 4.166 4.575l-2.906 2.059c-.935-1.274-2.041-3.009-3.316-5.206-1.194 2.275-2.244 4.013-3.147 5.206l-2.856-2.059c1.872-2.307 3.211-3.832 4.017-4.575-2.081-.402-4.058-.856-5.93-1.356' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: .5rem .5rem;
  mask-size: .5rem .5rem;
}
/* 5. Espacement fieldset resserré — légende ↔ contenu, et bas. */
fieldset.filter-group {
  padding-top: .6rem;
  padding-bottom: 10px;
}
.form-type-checkbox{
margin-top: 0px!important;
margin-bottom: 0px!important;
}

.webform-element-description {
  width: 100% !important;
  max-width: 100% !important;
}

fieldset, .form-type-managed-file, .form-type-radio{
  margin-top: unset !important;
}

.form-item__description {
  max-width: unset !important;
}

.views-exposed-form #edit-reset-projects-current-edition, .views-exposed-form #edit-reset-projects-archive{
  background: #fff;
  color: var(--primary);
}
.views-exposed-form #edit-reset-projects-current-edition:active,
.views-exposed-form #edit-reset-projects-current-edition:hover,
.views-exposed-form #edit-reset-projects-current-edition:focus,
.views-exposed-form #edit-reset-projects-archive:active,
.views-exposed-form #edit-reset-projects-archive:hover,
.views-exposed-form #edit-reset-projects-archive:focus {
  background: var(--primary);
  color: #fff;
}


.views-exposed-form .form-composite{
  padding: 5px 15px;
}


/* Multiselect à cases à cocher (webform-multiselect-summary.js) */
.bp-multiselect__toggle {
  display: block;
  width: 100%;
  text-align: start;
}

.bp-multiselect__panel {
  margin-top: 0.25rem;
  padding: 1rem;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: var(--bs-border-radius, 0.375rem);
  background-color: var(--bs-body-bg, #fff);
  max-height: 20rem;
  overflow-y: auto;
}

.bp-multiselect__panel[hidden] {
  display: none;
}

.webform-term-checkboxes-scroll .fieldset-wrapper {
   padding: 0;
}
