.ngv-hidden{
  display:none !important;
}

/* Base responsive */
.elementor-form,
.elementor-form-fields-wrapper,
.elementor-field-group,
.elementor-field,
.elementor-field-textual,
.elementor-select-wrapper,
.elementor-field-subgroup,
.elementor-upload-field,
.elementor-field-group input,
.elementor-field-group select,
.elementor-field-group textarea{
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}

/* Astérisque required */
.elementor-field-group.ngv-required .elementor-field-label:after{
  content:" *";
  color:#e11d48 !important;
  font-weight:700;
}

/* On ne touche jamais aux labels en erreur */
.elementor-field-group.ngv-field-error{
  width:100%;
}

/* Inputs / textarea / file */
.elementor-field-group.ngv-field-error input[type="text"],
.elementor-field-group.ngv-field-error input[type="email"],
.elementor-field-group.ngv-field-error input[type="tel"],
.elementor-field-group.ngv-field-error input[type="date"],
.elementor-field-group.ngv-field-error input[type="number"],
.elementor-field-group.ngv-field-error input[type="file"],
.elementor-field-group.ngv-field-error textarea,
.elementor-field-group.ngv-field-error .elementor-field-textual:not(select){
  border-color:#ef4444 !important;
  box-shadow:none !important;
  background:#fff7f7 !important;
  width:100%;
  max-width:100%;
}

/* SELECT : très important */
.elementor-field-group.ngv-field-error .elementor-select-wrapper{
  width:100%;
  max-width:100%;
  border:1px solid #ef4444 !important;
  border-radius:14px;
  background:#fff7f7 !important;
  box-shadow:none !important;
}

.elementor-field-group.ngv-field-error .elementor-select-wrapper select,
.elementor-field-group.ngv-field-error select.elementor-field,
.elementor-field-group.ngv-field-error select.elementor-field-textual,
.elementor-field-group.ngv-field-error select{
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  background:#fff7f7 !important;
  color:#111 !important;
  width:100%;
  max-width:100%;
}

/* Flèche du select en erreur */
.elementor-field-group.ngv-field-error .elementor-select-wrapper:after,
.elementor-field-group.ngv-field-error .select-caret-down-wrapper,
.elementor-field-group.ngv-field-error .select-caret-down-wrapper i{
  color:#b91c1c !important;
}

/* Acceptance */
.elementor-field-group.ngv-field-error.elementor-field-type-acceptance{
  border:1px solid #ef4444 !important;
  border-radius:14px;
  padding:14px 16px;
  background:#fff7f7;
  box-shadow:0 0 0 3px rgba(239,68,68,.08);
}

.elementor-field-group.elementor-field-type-acceptance .elementor-field-subgroup{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px;
  width:100%;
}

.elementor-field-group.elementor-field-type-acceptance .elementor-field-option{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:10px;
  width:100%;
}

.elementor-field-group.elementor-field-type-acceptance input[type="checkbox"]{
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin:2px 0 0 0 !important;
}

.elementor-field-group.elementor-field-type-acceptance label{
  display:block !important;
  flex:1 1 auto;
  width:auto !important;
  margin:0 !important;
  line-height:1.8;
}

/* Texte erreur */
.ngv-error-text{
  margin-top:8px;
  font-size:13px;
  line-height:1.5;
  color:#b91c1c;
  font-weight:600;
  width:100%;
}

/* Mobile */
@media (max-width:767px){
  .elementor-form-fields-wrapper{
    display:block !important;
  }

  .elementor-field-group{
    width:100% !important;
    max-width:100% !important;
    margin-right:0 !important;
    margin-left:0 !important;
  }

  .elementor-field-group input,
  .elementor-field-group select,
  .elementor-field-group textarea,
  .elementor-field-group .elementor-field,
  .elementor-field-group .elementor-select-wrapper{
    width:100% !important;
    max-width:100% !important;
  }

  .elementor-field-group.elementor-field-type-acceptance .elementor-field-subgroup,
  .elementor-field-group.elementor-field-type-acceptance .elementor-field-option{
    gap:8px !important;
  }

  .elementor-field-group.elementor-field-type-acceptance label{
    font-size:13px;
    line-height:1.75;
  }
}