/* ============================================================
   page-contact.css — Page contact GenEvolutioN
   Approche : design cohérent avec single-news (palette orange,
   typo Playfair + Inter), mais structure inédite.
   Tous les blocs critiques utilisent des attributs data-* pour
   échapper à la cascade Salient.
   ============================================================ */

.gev-contact {
  background: var(--gev-cream, #fafaf7);
  color: var(--gev-charcoal, #2c2c2a);
  font-family: var(--gev-font-sans, 'Inter', sans-serif);
  font-size: 17px;
  line-height: 1.65;
}

/* ============================================================
   HERO
   Sobre, sans image — fond uni avec dégradé subtil orange/cream
   ============================================================ */

[data-gev-contact="1"] .gev-contact__hero {
  position: relative;
  padding: clamp(4rem, 9vw, 7rem) var(--gev-gutter, 2rem) clamp(3rem, 6vw, 5rem);
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 126, 0, 0.10) 0%, transparent 50%),
    radial-gradient(circle at 0% 100%, rgba(29, 158, 117, 0.06) 0%, transparent 45%),
    var(--gev-cream, #fafaf7);
  overflow: hidden;
}

[data-gev-contact="1"] .gev-contact__hero-overlay {
  display: none; /* on garde le hook pour cohérence sémantique mais pas utilisé */
}

[data-gev-contact="1"] .gev-contact__hero-content {
  max-width: var(--gev-col-text, 760px);
  margin: 0 auto;
  text-align: left;
}

[data-gev-contact="1"] .gev-contact__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  background: rgba(255, 126, 0, 0.12) !important;
  border: 1px solid rgba(255, 126, 0, 0.32) !important;
  border-radius: 6px !important;
  padding: 0.5rem 0.9rem !important;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange-dark, #cc6500) !important;
  margin: 0 0 1.5rem !important;
}

[data-gev-contact="1"] .gev-contact__title {
  font-family: var(--gev-font-serif, 'Playfair Display', serif) !important;
  font-weight: 700 !important;
  font-size: clamp(2rem, 5vw, 3.5rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.015em !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 0 1.25rem !important;
  text-wrap: balance;
}

[data-gev-contact="1"] .gev-contact__subtitle {
  font-size: 1.1rem !important;
  line-height: 1.6 !important;
  color: var(--gev-text-light, #5c5c56) !important;
  max-width: 56ch;
  margin: 0 !important;
}

/* ============================================================
   4 CAS D'USAGE
   Grille 4 colonnes desktop, 2x2 tablet, 1 colonne mobile
   ============================================================ */

[data-gev-contact="1"] .gev-contact__reasons {
  padding: clamp(2.5rem, 5vw, 4rem) var(--gev-gutter, 2rem);
  background: var(--gev-white, #ffffff);
}

[data-gev-contact="1"] .gev-contact__reasons-inner {
  max-width: var(--gev-col-wide, 1100px);
  margin: 0 auto;
}

[data-gev-contact="1"] .gev-contact__reasons-eyebrow {
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange, #ff7e00) !important;
  text-align: center !important;
  margin: 0 0 clamp(2rem, 4vw, 2.75rem) !important;
}

[data-gev-contact="1"] .gev-contact__reasons-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: clamp(1.5rem, 3vw, 2rem) !important;
}

@media (max-width: 1100px) {
  [data-gev-contact="1"] .gev-contact__reasons-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 600px) {
  [data-gev-contact="1"] .gev-contact__reasons-grid {
    grid-template-columns: 1fr !important;
  }
}

[data-gev-contact="1"] .gev-contact__reasons-grid > * {
  min-width: 0 !important;
}

[data-gev-contact="1"] .gev-contact__reason {
  display: flex !important;
  flex-direction: column !important;
  padding: 1.75rem 1.5rem !important;
  background: var(--gev-cream, #fafaf7) !important;
  border: 1px solid rgba(255, 126, 0, 0.18) !important;
  border-radius: 8px !important;
  margin: 0 !important;
}

[data-gev-contact="1"] .gev-contact__reason-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  background: rgba(255, 126, 0, 0.10) !important;
  border: 1px solid rgba(255, 126, 0, 0.25) !important;
  border-radius: 50% !important;
  color: var(--gev-orange-dark, #cc6500) !important;
  margin-bottom: 1rem !important;
}

[data-gev-contact="1"] .gev-contact__reason-icon svg {
  width: 20px !important;
  height: 20px !important;
}

[data-gev-contact="1"] .gev-contact__reason-title {
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  line-height: 1.3 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 0 0.5rem !important;
}

[data-gev-contact="1"] .gev-contact__reason-text {
  font-size: 0.9rem !important;
  line-height: 1.55 !important;
  color: var(--gev-text-light, #5c5c56) !important;
  margin: 0 !important;
}

/* ============================================================
   FORMULAIRE + COORDONNÉES — section principale
   Layout 2 colonnes 60/40 desktop, 1 colonne mobile
   ============================================================ */

[data-gev-contact="1"] .gev-contact__main {
  padding: clamp(3rem, 6vw, 5rem) var(--gev-gutter, 2rem);
  background: var(--gev-cream, #fafaf7);
}

[data-gev-contact="1"] .gev-contact__main-inner {
  max-width: var(--gev-col-wide, 1100px);
  margin: 0 auto;
  display: grid !important;
  grid-template-columns: 1.5fr 1fr !important;
  gap: clamp(2rem, 4vw, 3.5rem) !important;
  align-items: start !important;
}

@media (max-width: 900px) {
  [data-gev-contact="1"] .gev-contact__main-inner {
    grid-template-columns: 1fr !important;
  }
}

[data-gev-contact="1"] .gev-contact__main-inner > * {
  min-width: 0;
}

[data-gev-contact="1"] .gev-contact__section-title {
  font-family: var(--gev-font-serif, 'Playfair Display', serif) !important;
  font-weight: 700 !important;
  font-size: clamp(1.6rem, 3vw, 2.1rem) !important;
  line-height: 1.2 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 0 0.6rem !important;
  text-wrap: balance;
}

[data-gev-contact="1"] .gev-contact__section-intro {
  font-size: 0.98rem !important;
  line-height: 1.55 !important;
  color: var(--gev-text-light, #5c5c56) !important;
  margin: 0 0 1.5rem !important;
}

/* — Form Wrap — */
[data-gev-contact="1"] .gev-contact__form-wrap {
  background: var(--gev-white, #ffffff) !important;
  padding: clamp(1.5rem, 3vw, 2.25rem) !important;
  border: 1px solid var(--gev-rule-light, #ebe9e0) !important;
  border-radius: 8px !important;
}

/* ============================================================
   WPFORMS — RESTYLING DANS LE CONTEXTE PAGE CONTACT
   On force tous les inputs à la même grille, en typographie Inter,
   avec focus state orange aligné sur la charte. Le bouton submit
   passe d'un Salient bleu (.button.color1) à l'orange brand.
   Toutes les règles sont scopées via [data-gev-contact="1"] pour
   ne pas affecter d'autres formulaires WPForms ailleurs sur le site.
   ============================================================ */

/* Toute la zone form en typographie sans-serif */
[data-gev-contact="1"] .gev-contact__form .wpforms-form,
[data-gev-contact="1"] .gev-contact__form .wpforms-form * {
  font-family: var(--gev-font-sans, 'Inter', sans-serif) !important;
}

/* Container du form */
[data-gev-contact="1"] .gev-contact__form .wpforms-container {
  margin: 0 !important;
}

/* Conteneur de chaque champ */
[data-gev-contact="1"] .gev-contact__form .wpforms-field {
  padding: 0 0 1.25rem !important;
  clear: both;
}

/* Label principal du champ */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-label,
[data-gev-contact="1"] .gev-contact__form .wpforms-field > label {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 0 0.45rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Astérisque "required" — discret, en orange brand */
[data-gev-contact="1"] .gev-contact__form .wpforms-required-label {
  color: var(--gev-orange, #ff7e00) !important;
  margin-left: 0.2rem !important;
  font-weight: 700 !important;
}

/* Sous-labels (First / Last sous le champ Name) */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-sublabel {
  font-size: 0.75rem !important;
  color: var(--gev-text-muted, #8a8a82) !important;
  margin: 0.35rem 0 0 !important;
  font-weight: 400 !important;
}

/* Inputs / textareas / selects — base homogène */
[data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="text"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="email"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="tel"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="url"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="number"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form textarea,
[data-gev-contact="1"] .gev-contact__form .wpforms-form select {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 2.85rem !important;
  padding: 0.7rem 0.95rem !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  color: var(--gev-text, #2c2c2a) !important;
  background: var(--gev-white, #ffffff) !important;
  border: 1px solid var(--gev-rule, #d3d1c7) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-form textarea {
  min-height: 8rem !important;
  resize: vertical !important;
}

/* Placeholder */
[data-gev-contact="1"] .gev-contact__form .wpforms-form input::placeholder,
[data-gev-contact="1"] .gev-contact__form .wpforms-form textarea::placeholder {
  color: var(--gev-text-muted, #8a8a82) !important;
  opacity: 1 !important;
}

/* Focus state — orange brand */
[data-gev-contact="1"] .gev-contact__form .wpforms-form input:focus,
[data-gev-contact="1"] .gev-contact__form .wpforms-form textarea:focus,
[data-gev-contact="1"] .gev-contact__form .wpforms-form select:focus {
  border-color: var(--gev-orange, #ff7e00) !important;
  box-shadow: 0 0 0 3px rgba(255, 126, 0, 0.15) !important;
  outline: none !important;
}

/* Annule les variations de taille WPForms (small / medium / large)
   pour que tous les champs occupent la pleine largeur de la colonne. */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-small,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-medium,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-large {
  max-width: 100% !important;
  width: 100% !important;
}

/* ============================================================
   CHAMP NAME — symétrie parfaite First / Last
   WPForms enveloppe le Name dans un <fieldset><legend>...</legend>...
   Les browsers appliquent des styles par défaut (border, padding,
   margin-inline-start sur le legend) qui décalent les colonnes.
   On reset complètement et on force flex 50/50.
   ============================================================ */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name fieldset {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-field-name legend.wpforms-field-label {
  padding: 0 !important;
  margin: 0 0 0.45rem !important;
  width: 100% !important;
  display: block !important;
  float: none !important;
}

/* Grid 2 colonnes : déterministe et insensible au justify-content
   space-between que WPForms applique par défaut sur .wpforms-field-row */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0.85rem !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  justify-content: stretch !important;
  align-items: start !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row > .wpforms-field-row-block,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row-block.wpforms-first,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row-block.wpforms-last,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row-block.wpforms-one-half {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  display: block !important;
  box-sizing: border-box !important;
  grid-column: auto !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row-block > input {
  width: 100% !important;
  display: block !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* Sublabels (First / Last) parfaitement symétriques, alignés à
   gauche et avec exactement le même offset vertical. */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-sublabel,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-sublabel.after {
  display: block !important;
  margin: 0.4rem 0 0 !important;
  padding: 0 !important;
  text-align: left !important;
  text-indent: 0 !important;
  font-size: 0.75rem !important;
  font-weight: 400 !important;
  color: var(--gev-text-muted, #8a8a82) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1.4 !important;
}

/* Élimine les <br class="wpforms-clear"> qui forceraient un wrap */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-clear,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name br {
  display: none !important;
}

/* CRITIQUE : Salient/WPForms ajoute des ::before et ::after avec
   content: "" et display: table sur .wpforms-field-row (clearfix
   hérité de l'ère floats). En contexte grid, ces pseudos deviennent
   des grid items invisibles et prennent des cellules — ce qui pousse
   First en (1,2) et Last en (2,1). On neutralise. */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row::before,
[data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 720px) {
  [data-gev-contact="1"] .gev-contact__form .wpforms-field-name .wpforms-field-row {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
  }
}

/* ============================================================
   LAYOUT 2 COLONNES : Email + Phone, Company + Function
   On transforme le conteneur de tous les champs en grid 2 colonnes,
   tous les champs prennent par défaut la pleine largeur (full bleed),
   et on place explicitement les couples Email/Phone et Company/Function
   chacun sur une ligne via grid-column.
   Sur mobile (≤ 720 px), tout repasse en 1 colonne empilée.
   ============================================================ */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-container {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 0.85rem !important;
  row-gap: 0 !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-field-container > .wpforms-field {
  grid-column: 1 / -1 !important;
  min-width: 0 !important;
}

/* Couple Email + Phone (form 10072 : ids 1 et 6) */
[data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_1-container { grid-column: 1 / 2 !important; }
[data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_6-container { grid-column: 2 / 3 !important; }

/* Couple Company + Function (form 10072 : ids 7 et 8) */
[data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_7-container { grid-column: 1 / 2 !important; }
[data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_8-container { grid-column: 2 / 3 !important; }

@media (max-width: 720px) {
  [data-gev-contact="1"] .gev-contact__form .wpforms-field-container {
    grid-template-columns: 1fr !important;
  }
  [data-gev-contact="1"] .gev-contact__form .wpforms-field-container > .wpforms-field {
    grid-column: 1 / -1 !important;
  }
  /* Override des ID-rules (spécificité plus haute) qui placeraient
     sinon les champs en colonnes 2/3 implicites */
  [data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_1-container,
  [data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_6-container,
  [data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_7-container,
  [data-gev-contact="1"] .gev-contact__form #wpforms-10072-field_8-container {
    grid-column: 1 / -1 !important;
  }
}

/* ============================================================
   CHAMP TÉLÉPHONE — intl-tel-input (format "smart" WPForms)
   Le drapeau est positionné en absolute à gauche de l'input ; on
   doit lui réserver de la place via padding-left, sinon le placeholder
   chevauche le drapeau. On harmonise aussi le selecteur drapeau avec
   la grille (radius gauche, hover discret).
   ============================================================ */
[data-gev-contact="1"] .gev-contact__form .iti {
  width: 100% !important;
  display: block !important;
  position: relative !important;
}

/* Réserve la place pour le drapeau (~52 px) */
[data-gev-contact="1"] .gev-contact__form .iti input[type="tel"],
[data-gev-contact="1"] .gev-contact__form .iti input[type="text"] {
  padding-left: 3.25rem !important;
}

[data-gev-contact="1"] .gev-contact__form .iti__flag-container {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: stretch !important;
  border: 0 !important;
  background: transparent !important;
}

[data-gev-contact="1"] .gev-contact__form .iti__selected-flag {
  display: flex !important;
  align-items: center !important;
  padding: 0 0.7rem 0 0.85rem !important;
  height: 100% !important;
  background: transparent !important;
  border-right: 1px solid var(--gev-rule-light, #ebe9e0) !important;
  border-radius: 6px 0 0 6px !important;
  transition: background-color 0.15s ease !important;
}

[data-gev-contact="1"] .gev-contact__form .iti__selected-flag:hover,
[data-gev-contact="1"] .gev-contact__form .iti__selected-flag:focus {
  background: rgba(255, 126, 0, 0.06) !important;
  outline: none !important;
}

/* La flèche dropdown du drapeau */
[data-gev-contact="1"] .gev-contact__form .iti__arrow {
  margin-left: 0.4rem !important;
  border-top-color: var(--gev-text-muted, #8a8a82) !important;
}

/* Liste déroulante des pays */
[data-gev-contact="1"] .gev-contact__form .iti__country-list {
  border: 1px solid var(--gev-rule, #d3d1c7) !important;
  border-radius: 6px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  font-size: 0.9rem !important;
  margin-top: 0.25rem !important;
}

[data-gev-contact="1"] .gev-contact__form .iti__country.iti__highlight {
  background-color: rgba(255, 126, 0, 0.08) !important;
}

/* Erreurs de validation */
[data-gev-contact="1"] .gev-contact__form .wpforms-error,
[data-gev-contact="1"] .gev-contact__form label.wpforms-error {
  color: #c94a4a !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  margin-top: 0.35rem !important;
  display: block !important;
}

[data-gev-contact="1"] .gev-contact__form input.wpforms-error,
[data-gev-contact="1"] .gev-contact__form textarea.wpforms-error,
[data-gev-contact="1"] .gev-contact__form select.wpforms-error {
  border-color: #c94a4a !important;
}

/* Bouton submit — override du bleu Salient .button.color1 vers l'orange brand */
[data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"],
[data-gev-contact="1"] .gev-contact__form .wpforms-form button.wpforms-submit,
[data-gev-contact="1"] .gev-contact__form .wpforms-form .wpforms-submit-container button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  margin-top: 0.5rem !important;
  padding: 0.85rem 1.85rem !important;
  background: var(--gev-orange, #ff7e00) !important;
  background-image: none !important;
  color: var(--gev-white, #ffffff) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  border: 0 !important;
  border-radius: 6px !important;
  box-shadow: 0 1px 2px rgba(204, 101, 0, 0.15) !important;
  cursor: pointer !important;
  transition: background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
  text-transform: none !important;
  text-shadow: none !important;
  width: auto !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"]:hover,
[data-gev-contact="1"] .gev-contact__form .wpforms-form button.wpforms-submit:hover,
[data-gev-contact="1"] .gev-contact__form .wpforms-form .wpforms-submit-container button:hover {
  background: var(--gev-orange-dark, #cc6500) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(204, 101, 0, 0.25) !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"]:focus-visible {
  outline: 3px solid rgba(255, 126, 0, 0.35) !important;
  outline-offset: 2px !important;
}

[data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"]:disabled,
[data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"][aria-disabled="true"] {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Description sous-champ */
[data-gev-contact="1"] .gev-contact__form .wpforms-field-description {
  font-size: 0.78rem !important;
  color: var(--gev-text-muted, #8a8a82) !important;
  margin: 0.4rem 0 0 !important;
}

/* Message de confirmation après envoi */
[data-gev-contact="1"] .gev-contact__form .wpforms-confirmation-container-full,
[data-gev-contact="1"] .gev-contact__form div.wpforms-confirmation-container-full {
  background: rgba(29, 158, 117, 0.08) !important;
  border: 1px solid rgba(29, 158, 117, 0.25) !important;
  border-radius: 8px !important;
  padding: 1.25rem 1.5rem !important;
  color: var(--gev-text, #2c2c2a) !important;
}

/* — Sidebar Channels — */
[data-gev-contact="1"] .gev-contact__channels {
  /* aucun fond, juste une liste */
}

[data-gev-contact="1"] .gev-contact__channel-list {
  list-style: none !important;
  margin: 0 0 2rem !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}

[data-gev-contact="1"] .gev-contact__channel {
  display: flex !important;
  gap: 0.85rem !important;
  align-items: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

[data-gev-contact="1"] .gev-contact__channel::before,
[data-gev-contact="1"] .gev-contact__channel::marker {
  content: none !important;
  display: none !important;
}

[data-gev-contact="1"] .gev-contact__channel-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  flex: none !important;
  background: rgba(255, 126, 0, 0.08) !important;
  border: 1px solid rgba(255, 126, 0, 0.22) !important;
  border-radius: 50% !important;
  color: var(--gev-orange-dark, #cc6500) !important;
}

[data-gev-contact="1"] .gev-contact__channel-body {
  flex: 1;
  min-width: 0;
}

[data-gev-contact="1"] .gev-contact__channel-label {
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--gev-text-light, #5c5c56) !important;
  margin: 0 0 0.25rem !important;
}

[data-gev-contact="1"] .gev-contact__channel-value {
  display: block;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.98rem !important;
  font-weight: 500 !important;
  font-style: normal !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  text-decoration: none !important;
  line-height: 1.45 !important;
  transition: color 0.18s ease;
}

[data-gev-contact="1"] a.gev-contact__channel-value:hover,
[data-gev-contact="1"] a.gev-contact__channel-value:focus-visible {
  color: var(--gev-orange-dark, #cc6500) !important;
}

/* — SLA Card — */
[data-gev-contact-sla="1"] {
  padding: 1rem 1.25rem !important;
  background: rgba(255, 126, 0, 0.06) !important;
  border: 1px solid rgba(255, 126, 0, 0.22) !important;
  border-left: 3px solid var(--gev-orange, #ff7e00) !important;
  border-radius: 0 6px 6px 0 !important;
}

[data-gev-contact-sla="1"] .gev-contact__sla-eyebrow {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange-dark, #cc6500) !important;
  margin: 0 0 0.4rem !important;
}

[data-gev-contact-sla="1"] .gev-contact__sla-text {
  font-size: 0.95rem !important;
  line-height: 1.45 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 !important;
}

/* ============================================================
   À QUOI S'ATTENDRE
   ============================================================ */

[data-gev-contact="1"] .gev-contact__expectations {
  padding: clamp(3rem, 6vw, 5rem) var(--gev-gutter, 2rem);
  background: var(--gev-white, #ffffff);
}

[data-gev-contact-expect="1"] {
  max-width: var(--gev-col-text, 760px);
  margin: 0 auto !important;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.5rem) !important;
  background: rgba(37, 99, 235, 0.04) !important;
  border: 1px solid rgba(37, 99, 235, 0.18) !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-eyebrow {
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--gev-blue, #2563eb) !important;
  margin: 0 0 1.5rem !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list {
  list-style: none !important;
  counter-reset: expect-counter !important;
  margin: 0 !important;
  padding: 0 !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list li {
  counter-increment: expect-counter !important;
  position: relative !important;
  padding-left: 2.75rem !important;
  margin: 0 0 1.25rem !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list li:last-child {
  margin-bottom: 0 !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list li::before {
  content: counter(expect-counter) !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 2rem !important;
  height: 2rem !important;
  background: var(--gev-blue, #2563eb) !important;
  color: var(--gev-white, #ffffff) !important;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ============================================================
   FAQ
   ============================================================ */

[data-gev-contact="1"] .gev-contact__faq {
  padding: clamp(3rem, 6vw, 5rem) var(--gev-gutter, 2rem);
  background: var(--gev-cream, #fafaf7);
}

[data-gev-contact="1"] .gev-contact__faq-inner {
  max-width: var(--gev-col-text, 760px);
  margin: 0 auto;
}

[data-gev-contact="1"] .gev-contact__faq-list {
  border-top: 1px solid var(--gev-rule-light, #ebe9e0) !important;
  margin-top: 1.5rem !important;
}

[data-gev-contact="1"] .gev-contact__faq-item {
  border-bottom: 1px solid var(--gev-rule-light, #ebe9e0) !important;
  margin: 0 !important;
}

[data-gev-contact="1"] .gev-contact__faq-item[open] {
  background: rgba(255, 126, 0, 0.025);
}

[data-gev-contact="1"] .gev-contact__faq-q {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  padding: 1rem 0.5rem !important;
  cursor: pointer !important;
  list-style: none !important;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-weight: 600 !important;
  font-size: 1.02rem !important;
  line-height: 1.4 !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  transition: color 0.18s !important;
}

[data-gev-contact="1"] .gev-contact__faq-q::-webkit-details-marker {
  display: none;
}

[data-gev-contact="1"] .gev-contact__faq-q:hover,
[data-gev-contact="1"] .gev-contact__faq-q:focus-visible {
  color: var(--gev-orange, #ff7e00) !important;
  outline: none !important;
}

[data-gev-contact="1"] .gev-contact__faq-chevron {
  flex: none;
  color: var(--gev-text-light, #5c5c56);
  transition: transform 0.25s ease, color 0.18s;
}

[data-gev-contact="1"] .gev-contact__faq-item[open] .gev-contact__faq-chevron {
  transform: rotate(180deg);
  color: var(--gev-orange, #ff7e00);
}

[data-gev-contact="1"] .gev-contact__faq-a {
  padding: 0 0.5rem 1.25rem !important;
  font-size: 0.97rem !important;
  line-height: 1.7 !important;
  color: var(--gev-text, #2c2c2a) !important;
}

/* ============================================================
   CARTE
   ============================================================ */

[data-gev-contact="1"] .gev-contact__map {
  padding: clamp(3rem, 6vw, 5rem) var(--gev-gutter, 2rem);
  background: var(--gev-white, #ffffff);
}

[data-gev-contact="1"] .gev-contact__map-inner {
  max-width: var(--gev-col-wide, 1100px);
  margin: 0 auto;
  text-align: center;
}

[data-gev-contact="1"] .gev-contact__map-eyebrow {
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange, #ff7e00) !important;
  margin: 0 0 0.75rem !important;
}

[data-gev-contact="1"] .gev-contact__map-frame {
  margin-top: 2rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

[data-gev-contact="1"] .gev-contact__map-frame iframe {
  display: block;
  width: 100%;
  border: 0;
}

[data-gev-contact="1"] .gev-contact__map-credit {
  margin: 1rem 0 0 !important;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem 1.25rem;
  font-family: var(--gev-font-sans, sans-serif) !important;
  font-size: 0.82rem !important;
  color: var(--gev-text-light, #5c5c56) !important;
}

[data-gev-contact="1"] .gev-contact__map-credit a {
  color: var(--gev-orange-dark, #cc6500) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}

[data-gev-contact="1"] .gev-contact__map-credit a:hover,
[data-gev-contact="1"] .gev-contact__map-credit a:focus-visible {
  border-bottom-color: var(--gev-orange-dark, #cc6500);
}

[data-gev-contact="1"] .gev-contact__map-attrib {
  color: var(--gev-text-muted, #8a8a82) !important;
  font-size: 0.76rem !important;
}

[data-gev-contact="1"] .gev-contact__map-attrib a {
  color: inherit !important;
  font-weight: 400 !important;
  text-decoration: underline !important;
}

/* ============================================================
   ACCESSIBILITÉ
   ============================================================ */

[data-gev-contact="1"] a:focus-visible,
[data-gev-contact="1"] button:focus-visible,
[data-gev-contact="1"] summary:focus-visible {
  outline: 2px solid var(--gev-orange, #ff7e00);
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  [data-gev-contact="1"] *,
  [data-gev-contact="1"] *::before,
  [data-gev-contact="1"] *::after {
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   FIX v0.6.1
   1. Bug numérotation double sur "À quoi vous attendre" :
      <ol> natif affichait 1. 2. 3. 4. en plus de nos cercles bleus
   2. Sidebar "Nous joindre directement" plus ergonomique :
      - Encadrée (fond blanc + bordure)
      - Titre plus modeste (sidebar, pas section principale)
      - Sticky en desktop pour rester visible pendant la lecture du form
   ============================================================ */

/* — 1. Fix double numérotation — */
[data-gev-contact-expect="1"] .gev-contact__expectations-list {
  list-style: none !important;
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list li {
  list-style: none !important;
  list-style-type: none !important;
}

[data-gev-contact-expect="1"] .gev-contact__expectations-list li::marker {
  content: '' !important;
  display: none !important;
  font-size: 0 !important;
}

/* — 2. Sidebar coordonnées encadrée + titre plus modeste — */
[data-gev-contact="1"] .gev-contact__channels {
  padding: clamp(1.5rem, 3vw, 2rem) !important;
  background: var(--gev-white, #ffffff) !important;
  border: 1px solid var(--gev-rule-light, #ebe9e0) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03) !important;
}

[data-gev-contact="1"] .gev-contact__channels .gev-contact__section-title {
  font-family: var(--gev-font-sans, 'Inter', sans-serif) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: var(--gev-charcoal, #2c2c2a) !important;
  margin: 0 0 1.5rem !important;
  padding-bottom: 1rem !important;
  border-bottom: 1px solid var(--gev-rule-light, #ebe9e0) !important;
}

/* En desktop : sidebar collante pour rester visible pendant le scroll du form */
@media (min-width: 901px) {
  [data-gev-contact="1"] .gev-contact__channels {
    position: sticky;
    top: clamp(1rem, 2vw, 2rem);
    align-self: start;
  }
}

/* Channel list plus dense */
[data-gev-contact="1"] .gev-contact__channel-list {
  gap: 1rem !important;
  margin-bottom: 1.5rem !important;
}

[data-gev-contact="1"] .gev-contact__channel-icon {
  width: 32px !important;
  height: 32px !important;
}

[data-gev-contact="1"] .gev-contact__channel-icon svg {
  width: 16px !important;
  height: 16px !important;
}

[data-gev-contact="1"] .gev-contact__channel-label {
  font-size: 0.65rem !important;
  letter-spacing: 0.14em !important;
}

[data-gev-contact="1"] .gev-contact__channel-value {
  font-size: 0.92rem !important;
}

/* ============================================================
   MOBILE OPTIMIZATIONS — v0.7.0
   Approche : 3 breakpoints alignés sur les besoins UX
   - 900 px : layout principal stack (déjà géré au-dessus)
   - 720 px : form 2 col → 1 col (déjà géré) + Name stack
   - 600 px : optimisations petits écrans (paddings, full-width)

   Points critiques traités :
   1. iOS Safari force un zoom au focus si input < 16px
   2. Boutons full-width sur mobile (UX tactile)
   3. Paddings réduits pour gagner de l'espace utile
   4. Map credit qui wrap proprement
   5. Sticky désactivée sur mobile (déjà géré via min-width: 901)
   ============================================================ */

/* — INPUTS : 16px minimum sur mobile pour empêcher le zoom iOS — */
@media (max-width: 720px) {
  [data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="text"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="email"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="tel"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="url"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form input[type="number"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form textarea,
  [data-gev-contact="1"] .gev-contact__form .wpforms-form select {
    font-size: 16px !important;
  }
}

/* — TABLET / SMALL DESKTOP (≤ 900 px) — */
@media (max-width: 900px) {
  /* Hero : marges latérales réduites */
  [data-gev-contact="1"] .gev-contact__hero {
    padding: clamp(2.5rem, 8vw, 4rem) var(--gev-gutter, 1.25rem) clamp(2rem, 6vw, 3rem) !important;
  }

  [data-gev-contact="1"] .gev-contact__subtitle {
    font-size: 1rem !important;
  }

  /* Cards "Reasons" : padding réduit */
  [data-gev-contact="1"] .gev-contact__reason {
    padding: 1.5rem 1.25rem !important;
  }

  /* Section main (form + sidebar) : moins de padding vertical */
  [data-gev-contact="1"] .gev-contact__main {
    padding: clamp(2rem, 6vw, 3.5rem) var(--gev-gutter, 1.25rem) !important;
  }

  /* Sidebar passe en bas, plus de sticky (déjà géré via min-width: 901) */
  [data-gev-contact="1"] .gev-contact__channels {
    margin-top: 0 !important;
  }
}

/* — MOBILE STANDARD (≤ 720 px) — */
@media (max-width: 720px) {
  /* Hero badge plus petit */
  [data-gev-contact="1"] .gev-contact__eyebrow {
    font-size: 0.7rem !important;
    padding: 0.4rem 0.75rem !important;
    letter-spacing: 0.18em !important;
  }

  /* Title : taille plus aggressive en bas de la fourchette */
  [data-gev-contact="1"] .gev-contact__title {
    font-size: clamp(1.6rem, 7vw, 2.2rem) !important;
    line-height: 1.15 !important;
  }

  /* Section title (Send us a message, Reach us directly) */
  [data-gev-contact="1"] .gev-contact__section-title {
    font-size: clamp(1.4rem, 5vw, 1.7rem) !important;
  }

  /* Form wrap : padding plus serré */
  [data-gev-contact="1"] .gev-contact__form-wrap {
    padding: 1.25rem 1rem !important;
  }

  /* Sidebar channels : padding plus serré */
  [data-gev-contact="1"] .gev-contact__channels {
    padding: 1.25rem 1rem !important;
  }

  /* Submit button full-width sur mobile (UX tactile) */
  [data-gev-contact="1"] .gev-contact__form .wpforms-form button[type="submit"],
  [data-gev-contact="1"] .gev-contact__form .wpforms-form button.wpforms-submit,
  [data-gev-contact="1"] .gev-contact__form .wpforms-form .wpforms-submit-container button {
    width: 100% !important;
    padding: 1rem 1.25rem !important;
    font-size: 1rem !important;
    margin-top: 0.75rem !important;
  }

  /* SLA box : padding réduit */
  [data-gev-contact="1"] .gev-contact__sla[data-gev-contact-sla="1"] {
    padding: 1rem 1.1rem !important;
  }

  /* Section "What to expect" : padding réduit */
  [data-gev-contact="1"] .gev-contact__expectations {
    padding: clamp(2rem, 6vw, 3rem) var(--gev-gutter, 1.25rem) !important;
  }

  /* FAQ : padding réduit, questions plus serrées */
  [data-gev-contact="1"] .gev-contact__faq {
    padding: clamp(2rem, 6vw, 3rem) var(--gev-gutter, 1.25rem) !important;
  }

  [data-gev-contact="1"] .gev-contact__faq-q {
    font-size: 0.95rem !important;
    padding: 0.85rem 0.25rem !important;
  }

  [data-gev-contact="1"] .gev-contact__faq-a {
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    padding: 0 0.25rem 1rem !important;
  }

  /* Map : iframe plus courte sur mobile */
  [data-gev-contact="1"] .gev-contact__map {
    padding: clamp(2rem, 6vw, 3rem) var(--gev-gutter, 1.25rem) !important;
  }

  [data-gev-contact="1"] .gev-contact__map-frame iframe {
    height: 320px !important;
  }

  /* Map credit : passage en stack vertical pour ne pas se chevaucher */
  [data-gev-contact="1"] .gev-contact__map-credit {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.4rem !important;
    text-align: left !important;
  }

  /* Reasons grid : padding section plus serré */
  [data-gev-contact="1"] .gev-contact__reasons {
    padding: clamp(2rem, 6vw, 3rem) var(--gev-gutter, 1.25rem) !important;
  }
}

/* — PETITS MOBILES (≤ 480 px) — iPhone SE, Galaxy A12, etc. */
@media (max-width: 480px) {
  /* Form wrap encore plus serré */
  [data-gev-contact="1"] .gev-contact__form-wrap {
    padding: 1rem 0.85rem !important;
  }

  [data-gev-contact="1"] .gev-contact__channels {
    padding: 1rem 0.85rem !important;
  }

  /* Hero title : encore plus aggressive */
  [data-gev-contact="1"] .gev-contact__title {
    font-size: clamp(1.4rem, 8vw, 1.9rem) !important;
  }

  /* Reasons : titre + texte plus petits */
  [data-gev-contact="1"] .gev-contact__reason-title {
    font-size: 1rem !important;
  }

  [data-gev-contact="1"] .gev-contact__reason-text {
    font-size: 0.86rem !important;
  }

  /* Channel labels : plus discrets sur petit écran */
  [data-gev-contact="1"] .gev-contact__channel-label {
    font-size: 0.6rem !important;
  }

  [data-gev-contact="1"] .gev-contact__channel-value {
    font-size: 0.88rem !important;
    word-break: break-word !important;
  }

  /* Map iframe encore plus courte */
  [data-gev-contact="1"] .gev-contact__map-frame iframe {
    height: 280px !important;
  }
}

/* ============================================================
   ANIMATIONS D'ENTRÉE — v0.7.3
   Pattern : IntersectionObserver côté JS ajoute .is-revealed
   à l'élément quand 15 % entre en viewport. CSS gère l'animation.
   - Sobre : fade + slide-up 16 px, 600 ms, easing "smooth out"
   - One-shot : pas de replay (géré par unobserve() en JS)
   - Reduced motion : annulation totale (média query en bas du bloc)
   ============================================================ */

/* État initial : invisible, légèrement décalé vers le bas.
   GPU-accelerated : seulement opacity + transform. */
[data-gev-contact="1"] [data-gev-anim] {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 600ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* État révélé (classe ajoutée par le JS) */
[data-gev-contact="1"] [data-gev-anim].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* — Hero : cascade eyebrow → title → subtitle (250 ms entre chaque) — */
[data-gev-contact="1"] [data-gev-anim="hero-eyebrow"]  { transition-delay: 0ms; }
[data-gev-contact="1"] [data-gev-anim="hero-title"]    { transition-delay: 150ms; }
[data-gev-contact="1"] [data-gev-anim="hero-subtitle"] { transition-delay: 300ms; }

/* — Reasons cards : stagger 80 ms entre les 4 — */
[data-gev-contact="1"] .gev-contact__reasons-grid > [data-gev-anim]:nth-child(1) { transition-delay: 0ms; }
[data-gev-contact="1"] .gev-contact__reasons-grid > [data-gev-anim]:nth-child(2) { transition-delay: 80ms; }
[data-gev-contact="1"] .gev-contact__reasons-grid > [data-gev-anim]:nth-child(3) { transition-delay: 160ms; }
[data-gev-contact="1"] .gev-contact__reasons-grid > [data-gev-anim]:nth-child(4) { transition-delay: 240ms; }

/* Form-wrap + sidebar : pas d'animation d'entrée.
   Initialement on les avait taggés data-gev-anim, mais sur Safari
   (WebKit) cela créait un compositor layer englobant toute la zone
   form (WPForms, drapeau intl-tel-input, iframe Turnstile = ~1500
   éléments DOM). Au moment du `is-revealed`, le re-paint de cette
   énorme couche provoque un frame drop visible, ressenti comme un
   "saut" de chargement. Chrome/Firefox gèrent mieux le compositor.
   Solution : data-gev-anim retiré du PHP sur ces 2 éléments — ils
   apparaissent directement avec le scroll, sans transition. */

/* — Expectations list : stagger sur les 4 étapes — */
[data-gev-contact="1"] .gev-contact__expectations-list > [data-gev-anim]:nth-child(1) { transition-delay: 0ms; }
[data-gev-contact="1"] .gev-contact__expectations-list > [data-gev-anim]:nth-child(2) { transition-delay: 100ms; }
[data-gev-contact="1"] .gev-contact__expectations-list > [data-gev-anim]:nth-child(3) { transition-delay: 200ms; }
[data-gev-contact="1"] .gev-contact__expectations-list > [data-gev-anim]:nth-child(4) { transition-delay: 300ms; }

/* — FAQ items : stagger discret — */
[data-gev-contact="1"] .gev-contact__faq-list > [data-gev-anim]:nth-child(1) { transition-delay: 0ms; }
[data-gev-contact="1"] .gev-contact__faq-list > [data-gev-anim]:nth-child(2) { transition-delay: 80ms; }
[data-gev-contact="1"] .gev-contact__faq-list > [data-gev-anim]:nth-child(3) { transition-delay: 160ms; }
[data-gev-contact="1"] .gev-contact__faq-list > [data-gev-anim]:nth-child(4) { transition-delay: 240ms; }

/* — Map : fade simple — */
[data-gev-contact="1"] [data-gev-anim="map"] { transition-delay: 0ms; }

/* — REDUCED MOTION : annulation complète —
   Si l'utilisateur a activé "réduire les animations" dans son OS,
   on annule tout : pas de transition, élément visible d'office.
   Le JS détecte aussi cette préférence et n'observe pas. */
@media (prefers-reduced-motion: reduce) {
  [data-gev-contact="1"] [data-gev-anim],
  [data-gev-contact="1"] [data-gev-anim].is-revealed {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* ============================================================
   HOVER REASONS CARDS — léger lift + shadow accentuée
   Indépendant de l'animation d'entrée (toujours actif).
   Désactivé en reduced-motion via la règle ci-dessus
   (transition: none) qui kill aussi le hover.
   ============================================================ */
[data-gev-contact="1"] .gev-contact__reason {
  transition:
    transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.25s ease,
    border-color 0.25s ease !important;
}

[data-gev-contact="1"] .gev-contact__reason:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important;
  border-color: rgba(255, 126, 0, 0.35) !important;
}

@media (prefers-reduced-motion: reduce) {
  [data-gev-contact="1"] .gev-contact__reason,
  [data-gev-contact="1"] .gev-contact__reason:hover {
    transition: none !important;
    transform: none !important;
  }
}
