/* ==========================================================================
   Kit AD83 — Gravity Forms (tous les formulaires du site)
   Base : thème GF Orbital (framework + foundation) piloté par ses variables --gf-*.
   Le <style> inline par formulaire est désactivé (filtre gform_form_args, includes/af_kit_ad83-ui.php).
   Sélecteur racine .gform-theme.gform-theme--framework (0,2,0) : gagne sur GF (0,1,0)
   quel que soit l'ordre de chargement.
   Typo : taille de base du site = BB Theme fl-body-font-size 16px / Open Sans / 1.6.
   Montserrat réservé aux titres, libellés, boutons et montants ; tout le reste en Open Sans.
   Sommaire :
   1. Jetons formulaire
   2. Variables GF (Orbital)
   3. Libellés, requis, descriptions
   4. Champs (input / select / textarea / date)
   5. Groupes nom & adresse
   6. Choix (radio, checkbox, consentement)
   7. Section, produit, quantité, total
   8. Multi-pages, boutons, spinner
   9. Validation (alerte globale, messages sous champ) & confirmation
   11. Responsive (≤ 768px)
   ========================================================================== */

/* 1. Jetons formulaire */
:root {
  --af-form-font-text: var(--af-kit-font-text);     /* = fl-body-font-family */
  --af-form-font-title: var(--af-kit-font-title);   /* = fl-heading-font-family */
  --af-form-font-size: 16px;                        /* = fl-body-font-size */
  --af-form-line-height: 1.6;                       /* = fl-body-line-height */
  --af-form-text: var(--af-kit-color-text); /* noir du site (= --color-neutral-900), comme le texte courant et les titres */
  --af-form-body: var(--af-kit-form-body);          /* = fl-body-text-color */
  --af-form-title: var(--af-kit-color-text); /* titre « Inscription » */
  --af-form-border: var(--af-kit-color-neutral-500);       /* bordure champs grise : #818181 = 3,9:1 sur blanc (AA non-texte ≥ 3:1) */
  --af-form-border-hover: var(--af-kit-color-neutral-700);
  --af-form-radius: 12px;                           /* champs, select, textarea, date, encarts produit / total */
  --af-form-border-soft: var(--af-kit-form-border-soft);   /* séparateurs, encarts */
  --af-form-muted: var(--af-kit-form-muted);         /* placeholder / description : 5.9:1 sur blanc */
  --af-form-req: var(--af-kit-form-req);           /* astérisque (AA 4.9:1 sur #f7f7f7) */
  --af-form-action: var(--af-kit-color-primary-dark); /* bouton « Je m'inscris » = palette de marque */
  --af-form-action-rgb: var(--af-kit-color-primary-dark-rgb);
  --af-form-action-dark: var(--af-kit-color-dark);
  --af-form-danger: var(--af-kit-color-pink-600);
  --af-form-danger-bg: var(--af-kit-color-pink-50);
  --af-form-ctrl-height: 52px;
  --af-form-ctrl-padding-x: 16px;
  --af-form-icon-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23042e16' d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E");
  --af-form-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z'/%3E%3C/svg%3E");
  --af-form-icon-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z'/%3E%3C/svg%3E");
}

/* 2. Variables GF (Orbital) */
.gform-theme.gform-theme--framework,
.gform-theme.gform-theme--foundation {
  /* Palette */
  --gf-color-primary: var(--af-form-action);
  --gf-color-primary-rgb: var(--af-form-action-rgb);
  --gf-color-primary-contrast: var(--af-kit-color-neutral-0);
  --gf-color-primary-contrast-rgb: 255, 255, 255;
  --gf-color-primary-darker: var(--af-form-action-dark);
  --gf-color-primary-lighter: var(--af-kit-color-primary);
  --gf-color-secondary: var(--af-kit-color-neutral-0);
  --gf-color-secondary-contrast: var(--af-form-text);
  --gf-color-in-ctrl: var(--af-kit-color-neutral-0);
  --gf-color-in-ctrl-contrast: var(--af-form-text);
  --gf-color-in-ctrl-contrast-rgb: 4, 46, 22;
  --gf-color-in-ctrl-primary: var(--af-form-action);
  --gf-color-in-ctrl-primary-rgb: var(--af-form-action-rgb);
  --gf-color-in-ctrl-primary-contrast: var(--af-kit-color-neutral-0);
  --gf-color-in-ctrl-dark: var(--af-form-text);
  --gf-color-in-ctrl-dark-lighter: var(--af-form-muted);
  --gf-color-in-ctrl-light: var(--af-form-border-soft);
  --gf-color-in-ctrl-light-darker: var(--af-form-border);
  --gf-color-in-ctrl-light-lighter: var(--af-kit-color-neutral-100);
  --gf-color-out-ctrl-dark: var(--af-form-text);
  --gf-color-out-ctrl-dark-darker: var(--af-form-text);
  --gf-color-out-ctrl-dark-lighter: var(--af-form-muted);
  --gf-color-out-ctrl-light: var(--af-form-border-soft);
  --gf-color-out-ctrl-light-darker: var(--af-form-border);
  --gf-color-danger: var(--af-form-danger);
  --gf-color-danger-rgb: 176, 18, 64;
  --gf-color-success: var(--af-kit-color-green-700);
  --gf-color-success-rgb: 11, 113, 89;

  /* Typo : texte = Open Sans 16px (base du site), titres/libellés = Montserrat */
  --gf-font-family-base: var(--af-form-font-text);
  --gf-font-family-primary: var(--af-form-font-text);
  --gf-font-family-secondary: var(--af-form-font-title);
  --gf-font-family-tertiary: var(--af-form-font-text);
  --gf-font-size-primary: var(--af-form-font-size);
  --gf-font-size-secondary: 15px;
  --gf-font-size-tertiary: 15px;
  --gf-font-weight-primary: 400;
  --gf-font-weight-secondary: 700;
  --gf-font-weight-tertiary: 400;
  --gf-line-height-primary: var(--af-form-line-height);
  --gf-line-height-secondary: 1.4;
  --gf-line-height-tertiary: 1.5;

  /* Rayons */
  --gf-radius: var(--af-kit-radius-sm, 6px);
  --gf-ctrl-radius: var(--af-form-radius);
  --gf-ctrl-btn-radius: var(--btn-radius);

  /* Espacements */
  --gf-form-gap-x: 16px;
  --gf-form-gap-y: 28px;
  --gf-field-gap-x: 16px;
  --gf-field-gap-y: 12px;
  --gf-label-space-primary: 8px;
  --gf-label-space-tertiary: 6px;
  --gf-label-req-gap: 4px;
  --gf-desc-space: 6px;
  --gf-form-footer-margin-y-start: 32px;
  --gf-form-footer-gap: 12px;

  /* Champs (accessibles : 52px de haut, 16px de padding, texte 16px) */
  --gf-ctrl-size: var(--af-form-ctrl-height);
  --gf-ctrl-padding-x: var(--af-form-ctrl-padding-x);
  --gf-ctrl-font-family: var(--af-form-font-text);
  --gf-ctrl-font-size: var(--af-form-font-size);
  --gf-ctrl-font-weight: 400;
  --gf-ctrl-color: var(--af-form-text);
  --gf-ctrl-color-hover: var(--af-form-text);
  --gf-ctrl-color-focus: var(--af-form-text);
  --gf-ctrl-color-disabled: var(--af-form-muted);
  --gf-ctrl-color-error: var(--af-form-text);
  --gf-ctrl-bg-color: var(--af-kit-color-neutral-0);
  --gf-ctrl-bg-color-hover: var(--af-kit-color-neutral-0);
  --gf-ctrl-bg-color-focus: var(--af-kit-color-neutral-0);
  --gf-ctrl-bg-color-disabled: var(--af-kit-color-neutral-100);
  --gf-ctrl-bg-color-error: var(--af-kit-color-neutral-0);
  --gf-ctrl-border-color: var(--af-form-border);
  --gf-ctrl-border-color-hover: var(--af-form-border-hover);
  --gf-ctrl-border-color-focus: var(--af-form-action);
  --gf-ctrl-border-color-disabled: var(--af-form-border-soft);
  --gf-ctrl-border-color-error: var(--af-form-danger);
  --gf-ctrl-border-width: 1px;
  --gf-ctrl-shadow: none;
  --gf-ctrl-outline-color-focus: var(--af-form-action);
  --gf-ctrl-outline-width-focus: 2px;
  --gf-ctrl-outline-offset: 2px;
  --gf-ctrl-placeholder-color: var(--af-form-muted);
  --gf-ctrl-placeholder-opacity: 1;
  --gf-ctrl-placeholder-font-family: var(--af-form-font-text);
  --gf-ctrl-placeholder-font-size: var(--af-form-font-size);
  --gf-ctrl-icon-color: var(--af-form-text);
  --gf-ctrl-textarea-height: 140px;
  --gf-ctrl-textarea-line-height: var(--af-form-line-height);
  --gf-ctrl-textarea-padding-y: 12px;

  /* Select : chevron Phosphor CaretDown */
  --gf-ctrl-select-icon: var(--af-form-icon-caret);
  --gf-ctrl-select-icon-hover: var(--af-form-icon-caret);
  --gf-ctrl-select-icon-focus: var(--af-form-icon-caret);
  --gf-ctrl-select-icon-size: 14px;
  --gf-ctrl-select-icon-position: calc(100% - var(--af-form-ctrl-padding-x)) center;
  --gf-icon-ctrl-select: var(--af-form-icon-caret);

  /* Libellés : Montserrat 700 15px */
  --gf-ctrl-label-font-family-primary: var(--af-form-font-title);
  --gf-ctrl-label-font-size-primary: 15px;
  --gf-ctrl-label-font-weight-primary: 700;
  --gf-ctrl-label-line-height-primary: 1.4;
  --gf-ctrl-label-color-primary: var(--af-form-text);
  --gf-ctrl-label-font-family-secondary: var(--af-form-font-text);
  --gf-ctrl-label-font-size-secondary: var(--af-form-font-size);
  --gf-ctrl-label-font-weight-secondary: 400;
  --gf-ctrl-label-line-height-secondary: 1.5;
  --gf-ctrl-label-color-secondary: var(--af-form-text);
  --gf-ctrl-label-font-family-tertiary: var(--af-form-font-text);
  --gf-ctrl-label-font-size-tertiary: 14px;
  --gf-ctrl-label-color-tertiary: var(--af-form-muted);
  --gf-ctrl-label-color-quaternary: var(--af-form-text);
  --gf-ctrl-label-color-req: var(--af-form-req);
  --gf-ctrl-label-font-family-req: var(--af-form-font-title);
  --gf-ctrl-label-font-size-req: 15px;
  --gf-ctrl-label-font-weight-req: 700;

  /* Descriptions : Open Sans 15px */
  --gf-ctrl-desc-font-family: var(--af-form-font-text);
  --gf-ctrl-desc-font-size: 15px;
  --gf-ctrl-desc-font-weight: 400;
  --gf-ctrl-desc-line-height: 1.5;
  --gf-ctrl-desc-color: var(--af-form-muted);
  --gf-ctrl-desc-font-family-error: var(--af-form-font-text);
  --gf-ctrl-desc-color-error: var(--af-form-danger);
  --gf-ctrl-desc-font-size-error: 15px;
  --gf-ctrl-desc-font-weight-error: 600;
  --gf-ctrl-desc-border-width-consent: 0;
  --gf-ctrl-desc-max-height-consent: none;

  /* Choix : 22px, coche couleur action */
  --gf-ctrl-choice-size: 22px;
  --gf-ctrl-checkbox-check-size: 14px;
  --gf-ctrl-checkbox-check-radius: 4px;
  --gf-ctrl-radio-check-size: 10px;
  --gf-ctrl-choice-check-color: var(--af-form-action);
  --gf-field-choice-gap: 4px;
  --gf-field-choice-meta-space: 0;
  --gf-label-space-x-secondary: 12px;

  /* Date */
  --gf-field-date-icon-color: var(--af-form-text);
  --gf-field-date-icon-color-active: var(--af-form-action);
  --gf-ctrl-date-picker-cell-content-bg-color-selected: var(--af-form-action);
  --gf-ctrl-date-picker-cell-content-bg-color-hover: var(--af-kit-color-neutral-100);

  /* Boutons : jetons communs --btn-* (css/af_agenda-base.css) = mêmes dimensions que .af_button */
  --gf-ctrl-btn-font-family: var(--btn-font-family);
  --gf-ctrl-btn-font-size: var(--btn-font-size);
  --gf-ctrl-btn-font-weight: var(--btn-font-weight);
  --gf-ctrl-btn-letter-spacing: var(--btn-letter-spacing);
  --gf-ctrl-btn-line-height: var(--btn-line-height);
  --gf-ctrl-btn-text-transform: var(--btn-text-transform);
  --gf-ctrl-btn-padding-x: var(--btn-padding-x);
  --gf-ctrl-btn-size: var(--btn-height);
  --gf-ctrl-btn-shadow: none;
  --gf-ctrl-btn-shadow-hover: none;
  --gf-ctrl-btn-shadow-focus: none;
  --gf-ctrl-btn-bg-color-primary: var(--btn-primary-bg);
  --gf-ctrl-btn-bg-color-hover-primary: var(--btn-primary-bg-hover);
  --gf-ctrl-btn-bg-color-focus-primary: var(--btn-primary-bg-hover);
  --gf-ctrl-btn-bg-color-disabled-primary: var(--btn-primary-bg);
  --gf-ctrl-btn-border-color-primary: var(--btn-primary-bg);
  --gf-ctrl-btn-border-color-hover-primary: var(--btn-primary-bg-hover);
  --gf-ctrl-btn-color-primary: var(--btn-primary-color);
  --gf-ctrl-btn-color-hover-primary: var(--btn-primary-color-hover);
  --gf-ctrl-btn-color-focus-primary: var(--btn-primary-color-hover);
  --gf-ctrl-btn-bg-color-secondary: var(--btn-outline-bg);
  --gf-ctrl-btn-bg-color-hover-secondary: var(--btn-outline-bg-hover);
  --gf-ctrl-btn-bg-color-focus-secondary: var(--btn-outline-bg-hover);
  --gf-ctrl-btn-border-color-secondary: var(--btn-outline-border);
  --gf-ctrl-btn-border-color-hover-secondary: var(--btn-outline-border-hover);
  --gf-ctrl-btn-color-secondary: var(--btn-outline-color);
  --gf-ctrl-btn-color-hover-secondary: var(--btn-outline-color-hover);
  --gf-ctrl-btn-opacity-disabled: 0.5;

  /* Section, produits */
  --gf-field-section-border-color: var(--af-form-border-soft);
  --gf-field-section-border-width: 1px;
  --gf-field-section-padding-y-end: 10px;
  --gf-field-prod-price-color: var(--af-kit-color-dark);
  --gf-field-prod-quant-width: 110px;

  /* Multi-pages */
  --gf-field-pg-prog-font-family: var(--af-form-font-title);
  --gf-field-pg-prog-font-size: 14px;
  --gf-field-pg-prog-font-weight: 600;
  --gf-field-pg-prog-color: var(--af-form-text);
  --gf-field-pg-prog-bar-bg-color: var(--af-form-border-soft);
  --gf-field-pg-prog-bar-height: 8px;
  --gf-field-pg-prog-bar-radius: 50px;
  --gf-field-pg-steps-number-size: 32px;
  --gf-field-pg-steps-number-bg-color: var(--af-kit-color-neutral-0);
  --gf-field-pg-steps-number-border-color: var(--af-kit-color-neutral-400);
  --gf-field-pg-steps-number-color: var(--af-kit-color-neutral-700);
  /* Étapes : neutres (plus de vert) — active bleu marine, complétées gris foncé, à venir gris */
  --gf-field-pg-steps-number-bg-color-active: var(--af-kit-color-dark);
  --gf-field-pg-steps-number-border-color-active: var(--af-kit-color-dark);
  --gf-field-pg-steps-number-color-active: var(--af-kit-color-neutral-0);
  --gf-field-pg-steps-number-bg-color-complete: var(--af-kit-color-neutral-600);
  --gf-field-pg-steps-number-border-color-complete: var(--af-kit-color-neutral-600);
  --gf-field-pg-steps-number-color-complete: var(--af-kit-color-neutral-0);

  /* Validation globale */
  --gf-form-validation-bg-color: var(--af-form-danger-bg);
  --gf-form-validation-border-color: rgba(176, 18, 64, 0.35);
  --gf-form-validation-border-width: 1px;
  --gf-form-validation-radius: var(--af-kit-radius-md, 8px);
  --gf-form-validation-shadow: none;
  --gf-form-validation-color: var(--af-form-text);
  --gf-form-validation-font-family: var(--af-form-font-text);
  --gf-form-validation-font-size: 15px;
  --gf-form-validation-line-height: 1.5;
  --gf-form-validation-gap: 6px;
  --gf-form-validation-padding-x: 16px;
  --gf-form-validation-padding-y: 14px;
  --gf-form-validation-heading-color: var(--af-form-danger);
  --gf-form-validation-heading-font-family: var(--af-form-font-title);
  --gf-form-validation-heading-font-size: 15px;
  --gf-form-validation-heading-font-weight: 700;
  --gf-form-validation-heading-gap: 10px;
  --gf-form-validation-summary-color: var(--af-form-text);
  --gf-form-validation-summary-font-family: var(--af-form-font-text);
  --gf-form-validation-summary-font-size: 15px;
  --gf-form-validation-summary-font-weight: 400;
  --gf-form-validation-summary-margin-y-start: 2px;
  --gf-form-validation-summary-padding-x: 0;

  /* Spinner AJAX */
  --gf-form-spinner-fg-color: var(--af-kit-color-neutral-0);
  --gf-form-spinner-bg-color: rgba(255, 255, 255, 0.3);
  --gf-form-spinner-fg-color-secondary: var(--af-form-action);
  --gf-form-spinner-bg-color-secondary: rgba(var(--af-form-action-rgb), 0.2);
}

/* 3. Libellés, requis, descriptions */
.gform-theme.gform-theme--framework .gform_required_legend { display: none; }
.gform-theme.gform-theme--framework .gfield_label,
.gform-theme.gform-theme--framework legend.gfield_label {
  font-family: var(--af-form-font-title);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--af-form-text);
}
/* Indicateur « (Obligatoire) » (mode texte) affiché comme « * », texte conservé pour les lecteurs d'écran */
.gform-theme.gform-theme--framework .gfield_required_text { font-size: 0; }
.gform-theme.gform-theme--framework .gfield_required_text::after {
  content: "*";
  content: "*" / "";
  font-size: 15px;
  color: var(--af-form-req);
}
.gform-theme.gform-theme--framework .gfield_description:not(.validation_message):not(.gfield_validation_message):not(.gfield_consent_description),
.gform-theme.gform-theme--framework .gsection_description,
.gform-theme.gform-theme--framework .gform_description {
  font-family: var(--af-form-font-text);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--af-form-muted);
}
/* Sous-libellés des groupes (nom, adresse en mode « libellé visible ») */
.gform-theme.gform-theme--framework .gform-field-label--type-sub {
  font-family: var(--af-form-font-text);
  font-size: 14px;
  font-weight: 400;
  color: var(--af-form-muted);
}

/* 4. Champs : pleine largeur, 52px, Open Sans 16px */
.gform-theme.gform-theme--framework input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):not([type=hidden]):not(.gform-text-input-reset),
.gform-theme.gform-theme--framework select,
.gform-theme.gform-theme--framework textarea {
  inline-size: 100%;
  max-inline-size: 100%;
  font-family: var(--af-form-font-text);
  font-size: var(--af-form-font-size);
  font-weight: 400;
  color: var(--af-form-text);
  background-color: var(--af-kit-color-neutral-0);
  transition: border-color 0.15s ease, outline-color 0.15s ease;
}
.gform-theme.gform-theme--framework :is(input, textarea)::placeholder {
  font-family: var(--af-form-font-text);
  font-size: var(--af-form-font-size);
  color: var(--af-form-muted);
  opacity: 1;
}
.gform-theme.gform-theme--framework textarea { line-height: var(--af-form-line-height); }
.gform-theme.gform-theme--framework :is(input, select, textarea):disabled { cursor: not-allowed; }
.gform-theme.gform-theme--framework select { padding-inline-end: calc(var(--af-form-ctrl-padding-x) * 2 + 14px); }
/* Date : champ pleine largeur + icône Phosphor CalendarBlank */
.gform_wrapper.gform-theme.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date { position: relative; }
.gform_wrapper.gform-theme.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date input { flex: 1 1 auto; padding-inline-end: 48px; }
.gform_wrapper.gform-theme.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date button.gform-datepicker-toggle {
  position: absolute;
  inset-inline-end: 6px;
  inset-block-start: 50%;
  transform: translateY(-50%) !important; /* GF 3 pose translateX(-36px) : icône décalée vers le bas à gauche */
  margin: 0;
  min-inline-size: 36px;
  min-block-size: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gform_wrapper.gform-theme.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date .gform-datepicker-toggle-icon--default {
  display: block;
  inline-size: 20px;
  block-size: 20px;
  font-size: 0;
  color: var(--af-form-text);
  background-color: currentColor;
  -webkit-mask: var(--af-form-icon-calendar) center / contain no-repeat;
  mask: var(--af-form-icon-calendar) center / contain no-repeat;
}
.gform_wrapper.gform-theme.gform-theme--framework .gfield--input-type-datepicker .ginput_container_date .gform-datepicker-toggle-icon--default::before { content: none; }
.gform-theme.gform-theme--framework .gform-datepicker-toggle:focus-visible {
  outline: 2px solid var(--af-form-action);
  outline-offset: 2px;
  border-radius: 4px;
}
.gform-theme.gform-theme--framework .ginput_container_number .instruction { margin-top: 6px; }

/* 5. Groupes nom & adresse
   Adresse (maquette) : voie, complément, puis Code postal | Ville sur 2 colonnes, Pays pleine largeur */
.gform-theme.gform-theme--foundation .ginput_container_address > * { order: 10; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_line_1 { order: 1; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_line_2 { order: 2; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_zip { order: 3; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_city { order: 4; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_state { order: 5; }
.gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_country { order: 6; }
@media (min-width: 640px) {
  .gform-theme.gform-theme--foundation .ginput_container_address .ginput_address_country { inline-size: 100%; }
}

/* 6. Choix : case 22px alignée en haut à gauche, texte Open Sans 16px qui s'enroule sans retrait */
.gform-theme.gform-theme--framework .gfield_radio,
.gform-theme.gform-theme--framework .gfield_checkbox {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.gform-theme.gform-theme--framework .gfield--type-choice .gchoice,
.gform-theme.gform-theme--framework .gfield--type-choice .ginput_container_consent,
.gform-theme.gform-theme--framework .ginput_container_consent {
  display: grid;
  grid-template-columns: var(--gf-ctrl-choice-size) minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
  inline-size: 100%;
  margin: 0;
  padding: 0;
  min-block-size: 44px;
}
.gform-theme.gform-theme--framework .gfield--type-choice .gchoice > input,
.gform-theme.gform-theme--framework .ginput_container_consent > input[type=checkbox] {
  grid-column: 1;
  margin: 1px 0 0;
  /* centre la case sur la 1re ligne de texte (16px × 1.5 = 24px) */
  align-self: start;
}
.gform-theme.gform-theme--framework input[type=checkbox],
.gform-theme.gform-theme--framework input[type=radio] {
  --gf-local-border-color: var(--af-form-border);
  flex: none;
  cursor: pointer;
}
.gform-theme.gform-theme--framework input[type=checkbox]:hover,
.gform-theme.gform-theme--framework input[type=radio]:hover {
  --gf-local-border-color: var(--af-form-border-hover);
}
.gform-theme.gform-theme--framework input[type=checkbox]:checked,
.gform-theme.gform-theme--framework input[type=radio]:checked {
  --gf-local-border-color: var(--af-form-action);
}
.gform-theme.gform-theme--framework input[type=checkbox]:focus-visible,
.gform-theme.gform-theme--framework input[type=radio]:focus-visible {
  outline: 2px solid var(--af-form-action);
  outline-offset: 2px;
}
.gform-theme.gform-theme--framework .gform-field-label--type-inline,
.gform-theme.gform-theme--framework .gfield_consent_label {
  grid-column: 2;
  margin: 0;
  padding: 0 0 10px;
  font-family: var(--af-form-font-text);
  font-size: var(--af-form-font-size);
  font-weight: 400;
  line-height: 1.5;
  color: var(--af-form-text);
  cursor: pointer;
}
.gform-theme.gform-theme--framework .gfield_consent_label a,
.gform-theme.gform-theme--framework .gfield_consent_description a {
  color: var(--af-form-action);
  text-decoration: underline;
}
/* Texte du consentement : simple paragraphe, sans bordure ni boîte scrollable */
.gform-theme.gform-theme--framework .gfield_consent_description,
.gform-theme.gform-theme--framework .gfield_consent_description_text {
  border: 0;
  max-height: none;
  overflow: visible;
  padding: 0;
  margin: 0 0 10px;
  background: none;
  font-family: var(--af-form-font-text);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--af-form-muted);
}

/* 7. Section, produit, quantité, total */
.gform-theme.gform-theme--framework .gsection_title {
  font-family: var(--af-form-font-title);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--af-form-text);
  margin: 0;
}
/* Produit (prix unique) : encart blanc bordé, « Prix » à gauche, quantité à droite */
.gform-theme.gform-theme--framework .ginput_container_singleproduct {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  background: var(--af-kit-color-neutral-0);
  border: 1px solid var(--af-form-border-soft);
  border-radius: var(--af-form-radius);
  padding: 12px 16px;
}
.gform-theme.gform-theme--framework .ginput_product_price_wrapper {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 auto 0 0;
}
.gform-theme.gform-theme--framework .ginput_product_price_label,
.gform-theme.gform-theme--framework .ginput_quantity_label {
  font-family: var(--af-form-font-text);
  font-size: var(--af-form-font-size);
  font-weight: 400;
  color: var(--af-form-muted);
  margin: 0;
}
.gform-theme.gform-theme--framework .ginput_product_price,
.gform-theme.gform-theme--framework .ginput_shipping_price {
  font-family: var(--af-form-font-title);
  font-size: 18px;
  font-weight: 700;
  color: var(--af-kit-color-dark);
}
.gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_container_singleproduct {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 110px;
  align-items: center;
  flex-direction: initial;
}
.gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_product_price_wrapper { grid-column: 1; order: 0; }
.gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_quantity_label { grid-column: 2; text-align: right; }
.gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product input.ginput_quantity {
  grid-column: 3;
  inline-size: 110px !important;
}
/* Total : encart récapitulatif, « Total » à gauche, montant à droite */
.gform-theme.gform-theme--framework .gfield--type-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--af-kit-color-neutral-0);
  border: 1px solid var(--af-form-border-soft);
  border-radius: var(--af-form-radius);
  padding: 14px 20px;
}
.gform-theme.gform-theme--framework .gfield--type-total .gfield_label {
  margin: 0;
  padding: 0;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.gform-theme.gform-theme--framework .gfield--type-total .ginput_container_total { margin: 0; flex: 1 1 auto; min-inline-size: 0; }
.gform-theme.gform-theme--framework .ginput_total,
.gform-theme.gform-theme--framework input.ginput_total {
  font-family: var(--af-form-font-title);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--af-kit-color-dark);
  text-align: right;
  background: none;
  border: 0;
  padding: 0;
  inline-size: 100%;
  min-inline-size: 0;
}

/* 8. Multi-pages, boutons, spinner */
.gform-theme.gform-theme--framework .gf_page_steps {
  border-bottom: 1px solid var(--af-form-border-soft);
  padding-bottom: 16px;
  margin-bottom: 28px;
}
.gform-theme.gform-theme--framework .gf_step_number { font-family: var(--af-form-font-title); font-size: 14px; font-weight: 700; }
.gform-theme.gform-theme--framework .gf_step_label { font-family: var(--af-form-font-title); font-size: 14px; font-weight: 600; }
.gform-theme.gform-theme--framework .gf_progressbar {
  background: var(--af-form-border-soft);
  border-radius: 50px;
}
.gform-theme.gform-theme--framework .gf_progressbar_percentage {
  background: var(--af-kit-color-dark);
  border-radius: 50px;
  color: var(--af-kit-color-neutral-0);
}
.gform-theme.gform-theme--framework .gform_footer,
.gform-theme.gform-theme--framework .gform_page_footer {
  padding: 0;
  align-items: center;
}
/* Boutons Envoyer / Suivant (= primaire) et Précédent (= transparent) : jetons --btn-* de af_agenda-base.css.
   Peints directement (et pas seulement via --gf-ctrl-btn-*) pour résister au CSS de BB Theme
   (.fl-page input[type=button]:hover remet border-radius à 0 au survol). */
.gform-theme.gform-theme--framework .gform_footer .gform_button,
.gform-theme.gform-theme--framework .gform_page_footer :is(.gform_next_button, .gform_previous_button, .gform_button) {
  block-size: var(--btn-height);
  min-block-size: var(--btn-height);
  padding-block: 0;
  padding-inline: var(--btn-padding-x);
  background: var(--btn-primary-bg);
  border: var(--btn-border-width) solid var(--btn-primary-bg);
  border-width: var(--btn-border-width) !important; /* GF impose 1px */
  border-radius: var(--btn-radius) !important;
  color: var(--btn-primary-color);
  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: var(--btn-line-height);
  letter-spacing: var(--btn-letter-spacing);
  text-transform: var(--btn-text-transform);
  transition: var(--btn-transition);
}
.gform-theme.gform-theme--framework .gform_footer .gform_button:is(:hover, :focus-visible),
.gform-theme.gform-theme--framework .gform_page_footer :is(.gform_next_button, .gform_button):is(:hover, :focus-visible) {
  background: var(--btn-primary-bg-hover);
  border-color: var(--btn-primary-bg-hover);
  border-radius: var(--btn-radius) !important;
  color: var(--btn-primary-color-hover);
}
.gform-theme.gform-theme--framework .gform_page_footer .gform_previous_button {
  --gf-local-bg-color: var(--btn-outline-bg);
  --gf-local-border-color: var(--btn-outline-border);
  --gf-local-color: var(--btn-outline-color);
  background: var(--btn-outline-bg);
  border-color: var(--btn-outline-border);
  color: var(--btn-outline-color);
}
.gform-theme.gform-theme--framework .gform_page_footer .gform_previous_button:is(:hover, :focus-visible) {
  background: var(--btn-outline-bg-hover);
  border-color: var(--btn-outline-border-hover);
  border-radius: var(--btn-radius) !important;
  color: var(--btn-outline-color-hover);
}
:is(.gform_footer, .gform_page_footer) :is(button, input[type=submit], input[type=button]):active { transform: translateY(1px); }
.gform-theme.gform-theme--framework :is(button, input[type=submit], input[type=button]):focus-visible {
  outline: 2px solid var(--focus-ring-color, var(--af-kit-color-dark));
  outline-offset: 2px;
}
.gform-theme.gform-theme--framework :is(button, input[type=submit], input[type=button]):disabled { cursor: not-allowed; }
.gform-theme.gform-theme--framework .gform_ajax_spinner {
  width: 20px;
  height: 20px;
  margin-left: 10px;
}

/* 9. Validation
   Alerte globale : bloc compact, fond rose pâle, filet gauche #b01240, icône discrète,
   titre court en gras, liste sans puces, liens couleur texte soulignés au survol */
.gform-theme.gform-theme--framework .gform_validation_errors {
  display: block;
  margin: 0 0 24px;
  padding: 12px 16px 12px 14px;
  background: var(--af-form-danger-bg);
  border: 1px solid rgba(176, 18, 64, 0.25);
  border-left: 4px solid var(--af-form-danger);
  border-radius: var(--af-kit-radius-md, 8px);
  box-shadow: none;
}
.gform-theme.gform-theme--framework .gform_validation_errors .gform_submission_error {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  font-family: var(--af-form-font-title);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--af-form-danger);
  text-transform: none;
  letter-spacing: 0;
}
.gform-theme.gform-theme--framework .gform_validation_errors .gform-icon {
  flex: none;
  inline-size: 20px;
  block-size: 20px;
  min-inline-size: 20px;
  border: 0;
  border-radius: 0;
  background: currentColor;
  font-size: 0;
  -webkit-mask: var(--af-form-icon-warning) center / contain no-repeat;
  mask: var(--af-form-icon-warning) center / contain no-repeat;
}
.gform-theme.gform-theme--framework .gform_validation_errors .gform-icon::before { content: none; }
.gform-theme.gform-theme--framework .gform_validation_errors ol {
  list-style: none;
  margin: 6px 0 0 28px;
  padding: 0;
  font-family: var(--af-form-font-text);
  font-size: 15px;
  line-height: 1.5;
  color: var(--af-form-text);
}
.gform-theme.gform-theme--framework .gform_validation_errors ol li {
  list-style: none;
  margin: 0;
  padding: 0;
  background: none;
}
.gform-theme.gform-theme--framework .gform_validation_errors ol li + li { margin-top: 2px; }
.gform-theme.gform-theme--framework .gform_validation_errors ol li::before,
.gform-theme.gform-theme--framework .gform_validation_errors ol li::marker { content: none; display: none; }
.gform-theme.gform-theme--framework .gform_validation_errors ol a,
.gform-theme.gform-theme--framework .gform_validation_errors .gform_validation_error_link {
  color: var(--af-form-text);
  text-decoration: none;
  border: 0;
  background: none;
  font-weight: 400;
}
.gform-theme.gform-theme--framework .gform_validation_errors ol a:hover { text-decoration: underline; }
.gform-theme.gform-theme--framework .gform_validation_errors ol a:focus-visible {
  outline: 2px solid var(--af-form-action);
  outline-offset: 2px;
  border-radius: 2px;
}
/* Message sous le champ : Open Sans, rouge sobre */
.gform-theme.gform-theme--framework .gfield_validation_message,
.gform-theme.gform-theme--framework .validation_message {
  background: none;
  border: 0;
  padding: 0;
  margin-top: 6px;
  font-family: var(--af-form-font-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--af-form-danger);
}
.gform-theme.gform-theme--framework .gfield_error .gfield_label { color: var(--af-form-danger); }
.gform_confirmation_message {
  background: var(--af-kit-color-green-50);
  border-left: 4px solid var(--af-kit-color-primary-dark);
  border-radius: var(--af-kit-radius-md, 8px);
  padding: 16px 20px;
  font-family: var(--af-form-font-text);
  font-size: var(--af-form-font-size);
  font-weight: 400;
  line-height: var(--af-form-line-height);
  color: var(--af-form-text);
}

/* 11. Responsive (≤ 768px) : une colonne, boutons pleine largeur */
@media (max-width: 768px) {
  .gform-theme.gform-theme--foundation .gform_fields > .gfield,
  .gform-theme.gform-theme--foundation .gform_fields > .spacer { grid-column: 1 / -1; }
  .gform-theme.gform-theme--foundation .gform-grid-col,
  .gform-theme.gform-theme--foundation .ginput_container_address .gform-grid-col { inline-size: 100%; flex: none; }
  .gform-theme.gform-theme--framework .gform_footer,
  .gform-theme.gform-theme--framework .gform_page_footer { flex-direction: column-reverse; align-items: stretch; }
  .gform-theme.gform-theme--framework .gform_footer :is(button, input[type=submit]),
  .gform-theme.gform-theme--framework .gform_page_footer :is(button, input[type=submit], input[type=button]) { inline-size: 100%; }
  .gform-theme.gform-theme--framework .gfield--type-total { padding: 12px 16px; }
  .gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_container_singleproduct { grid-template-columns: minmax(0, 1fr) 96px; }
  .gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_product_price_wrapper { grid-column: 1 / -1; }
  .gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product .ginput_quantity_label { grid-column: 1; text-align: left; }
  .gform_wrapper.gform-theme.gform-theme--framework .gfield--type-product input.ginput_quantity { grid-column: 2; inline-size: 96px !important; }
  .gform-theme.gform-theme--framework .ginput_total,
  .gform-theme.gform-theme--framework input.ginput_total { font-size: 22px; }
}
