/* Habillage RQ3i pour Gravity Forms — remplace le thème par défaut
   (gravity-theme) sur tous les formulaires du site : couleurs, typo et
   composants alignés sur l'identité visuelle RQ3i plutôt que le rendu
   générique de la librairie.

   Tous les sélecteurs commencent par `.gform_wrapper.gravity-theme` :
   c'est exactement le préfixe que Gravity Forms utilise pour ses propres
   règles (theme.min.css), donc la seule façon fiable d'avoir une
   spécificité au moins égale à la sienne — un simple `.gform_wrapper`
   perd systématiquement contre ses règles à 3-4 classes. Quelques
   propriétés gardent `!important` là où Gravity Forms descend encore
   plus profond (ex. `.field_description_above .gfield_description`). */

.gform_wrapper.gravity-theme {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 2rem 2rem 1.5rem;
  font-family: 'Inter', sans-serif;
}

.gform_wrapper.gravity-theme .gform_heading { margin-bottom: 1.5rem; }
.gform_wrapper.gravity-theme .gform_description { color: #6b7280; font-size: 0.95rem; }

/* ── Sections ──────────────────────────────────────────────── */
.gform_wrapper.gravity-theme .gfield--type-section { border: none; padding-bottom: 1rem; }
.gform_wrapper.gravity-theme .gsection_title {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: #1b3c86;
  margin: 0 0 0.5rem;
}
.gform_wrapper.gravity-theme .gfield--type-section::after {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background: #85c06c;
  margin-top: 0.4rem;
}

/* ── Étiquettes ────────────────────────────────────────────── */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.92rem;
  color: #171e2a;
  margin-bottom: 0.5rem;
}
.gform_wrapper.gravity-theme .gform-field-label--type-sub {
  font-weight: 500;
  font-size: 0.85rem;
  color: #4b5563;
}
.gform_wrapper.gravity-theme .gform-field-label--type-inline {
  font-weight: 400;
  font-size: 0.92rem;
  color: #374151;
}
.gform_wrapper.gravity-theme .gfield_required .gfield_required_text {
  color: #b91c1c !important;
  font-style: normal !important;
  font-weight: 500 !important;
  font-size: 0.78rem !important;
  margin-left: 0.15rem;
}

/* ── Description et compteur de caractères ────────────────────*/
.gform_wrapper.gravity-theme .field_description_above .gfield_description,
.gform_wrapper.gravity-theme .gfield_description {
  font-size: 0.82rem !important;
  color: #6b7280 !important;
  margin: 0.3rem 0 0.6rem;
}
.gform_wrapper.gravity-theme .ginput_counter {
  text-align: right;
  font-size: 0.78rem !important;
  color: #9ca3af !important;
  margin-top: 0.3rem;
}

/* ── Champs de saisie ─────────────────────────────────────────*/
.gform_wrapper.gravity-theme input[type=text],
.gform_wrapper.gravity-theme input[type=email],
.gform_wrapper.gravity-theme input[type=tel],
.gform_wrapper.gravity-theme input[type=url],
.gform_wrapper.gravity-theme input[type=number],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-family: 'Inter', sans-serif;
  font-size: 0.92rem;
  color: #171e2a;
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.gform_wrapper.gravity-theme input[type=text]:focus,
.gform_wrapper.gravity-theme input[type=email]:focus,
.gform_wrapper.gravity-theme input[type=tel]:focus,
.gform_wrapper.gravity-theme input[type=url]:focus,
.gform_wrapper.gravity-theme input[type=number]:focus,
.gform_wrapper.gravity-theme select:focus,
.gform_wrapper.gravity-theme textarea:focus {
  outline: none;
  border-color: #1b3c86;
  box-shadow: 0 0 0 3px rgba(27, 60, 134, 0.12);
}
.gform_wrapper.gravity-theme textarea { resize: vertical; min-height: 140px; }

.gform_wrapper.gravity-theme .name_first,
.gform_wrapper.gravity-theme .name_last,
.gform_wrapper.gravity-theme .ginput_left,
.gform_wrapper.gravity-theme .ginput_right {
  padding-right: 0.6rem;
}

/* ── Choix (radio / case à cocher) ────────────────────────────*/
.gform_wrapper.gravity-theme .gchoice {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.gform_wrapper.gravity-theme .gfield-choice-input {
  width: 16px;
  height: 16px;
  accent-color: #1b3c86;
  flex-shrink: 0;
}
.gform_wrapper.gravity-theme .gfield--choice-align-horizontal .gchoice {
  display: inline-flex;
  margin-right: 1.5rem;
}

/* ── États d'erreur ────────────────────────────────────────────*/
.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper.gravity-theme .gfield_error select {
  border-color: #dc2626;
}
.gform_wrapper.gravity-theme .validation_message {
  color: #b91c1c;
  font-size: 0.82rem;
  margin-top: 0.3rem;
}

/* ── Pied de formulaire et bouton ──────────────────────────────*/
.gform_wrapper.gravity-theme .gform_footer {
  margin-top: 1.5rem;
  padding-top: 1.4rem;
  border-top: 1px solid #f0f0f0;
}
.gform_wrapper.gravity-theme .gform_button {
  background: #1b3c86 !important;
  color: #fff !important;
  border: none !important;
  padding: 0.7rem 1.8rem !important;
  border-radius: 6px !important;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  transition: background 0.2s ease;
}
.gform_wrapper.gravity-theme .gform_button:hover { background: #15305f !important; }

@media (max-width: 640px) {
  .gform_wrapper.gravity-theme { padding: 1.25rem; }
}
