/* WP Formulaires : couleurs et typographie du thème (avec valeurs de secours). */
.wpfo, .wpfo-merci {
  --wpfo-accent: var(--wp--preset--color--terracotta, #EC6525);
  --wpfo-accent-fonce: var(--wp--preset--color--terre-de-sienne, #B2391A);
  --wpfo-accent-doux: #FDEFE7;
  --wpfo-encre: var(--wp--preset--color--nuit, #1D1B1B);
  --wpfo-gris: var(--wp--preset--color--gris, #494343);
  --wpfo-ligne: var(--wp--preset--color--lin, #DACABE);
  --wpfo-fond: var(--wp--preset--color--coton, #F9F5F3);
  --wpfo-petrole: var(--wp--preset--color--petrole, #06464B);
}
.wpfo { container-type: inline-size; margin: 1.75rem 0; color: var(--wpfo-encre); font-family: inherit; }
.wpfo *, .wpfo *::before, .wpfo *::after { box-sizing: border-box; }
.wpfo__grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px 20px; }
@container (min-width: 560px) {
  .wpfo__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .wpfo__grille > * { grid-column: 1 / -1; }
  .wpfo__grille > .wpfo__champ--demi { grid-column: auto; }
}

/* Textes : alignés à gauche (la règle « justifié » du thème ne s'applique pas aux libellés). */
body .wpfo p.wpfo__titre, body .wpfo p.wpfo__label, body .wpfo p.wpfo__requis, body .wpfo p.wpfo__erreur-generale { text-align: left; text-align-last: auto; hyphens: none; }
.wpfo p.wpfo__titre {
  margin: 12px 0 -4px; padding-top: 22px; border-top: 1px solid var(--wpfo-ligne);
  font-size: 1.2rem; font-weight: 700; line-height: 1.3; color: var(--wpfo-encre);
}
.wpfo__grille > p.wpfo__titre:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.wpfo .wpfo__label, .wpfo legend {
  display: block; margin: 0 0 8px; padding: 0; font-size: .95rem; font-weight: 600; line-height: 1.35; color: var(--wpfo-encre);
}
.wpfo__etoile { color: var(--wpfo-accent-fonce); }
.wpfo fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }

/* Champs de saisie */
.wpfo input[type="text"], .wpfo input[type="email"], .wpfo input[type="tel"], .wpfo input[type="number"],
.wpfo input[type="date"], .wpfo select, .wpfo textarea {
  display: block; width: 100%; min-height: 52px; margin: 0; padding: 13px 16px;
  font: inherit; font-size: 1rem; line-height: 1.4; color: var(--wpfo-encre);
  background: var(--wpfo-fond); border: 1px solid var(--wpfo-ligne); border-radius: 12px;
  box-shadow: none; transition: border-color .15s, box-shadow .15s, background-color .15s;
  -webkit-appearance: none; appearance: none;
}
.wpfo textarea { min-height: 150px; resize: vertical; }
.wpfo select {
  padding-right: 44px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23494343' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 18px center;
}
.wpfo input:hover, .wpfo select:hover, .wpfo textarea:hover { border-color: #c4b2a4; }
.wpfo input:focus, .wpfo select:focus, .wpfo textarea:focus {
  outline: none; background-color: #fff; border-color: var(--wpfo-accent); box-shadow: 0 0 0 3px rgba(236, 101, 37, .18);
}
.wpfo input[type="number"] { -moz-appearance: textfield; }
.wpfo input[type="number"]::-webkit-inner-spin-button, .wpfo input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Choix en boutons */
.wpfo__options { display: flex; flex-wrap: wrap; gap: 8px; }
.wpfo__option { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.wpfo__option input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.wpfo__option span {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 18px;
  font-size: .95rem; line-height: 1.25; color: var(--wpfo-encre);
  background: #fff; border: 1px solid var(--wpfo-ligne); border-radius: 999px;
  transition: background-color .15s, border-color .15s, color .15s; user-select: none;
}
.wpfo__option:hover span { border-color: var(--wpfo-accent); }
.wpfo__option input:checked + span { background: var(--wpfo-accent-doux); border-color: var(--wpfo-accent); color: var(--wpfo-accent-fonce); font-weight: 600; }
.wpfo__option input[type="checkbox"]:checked + span::before { content: ""; width: 12px; height: 7px; margin: -3px 2px 0 0; border: solid currentColor; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.wpfo__option input:focus-visible + span { outline: 3px solid rgba(236, 101, 37, .45); outline-offset: 2px; }

/* Case d'accord */
.wpfo__accord { display: flex; align-items: flex-start; gap: 12px; margin: 0; cursor: pointer; font-size: .92rem; line-height: 1.5; color: var(--wpfo-gris); }
.wpfo__accord input { flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--wpfo-accent); cursor: pointer; }

/* Aide et erreurs */
.wpfo__aide { display: block; margin-top: 6px; font-size: .85rem; line-height: 1.45; color: var(--wpfo-gris); }
.wpfo__erreur { display: block; margin-top: 7px; font-size: .88rem; font-weight: 600; color: var(--wpfo-accent-fonce); }
.wpfo__erreur[hidden] { display: none; }
.wpfo__champ--invalide input, .wpfo__champ--invalide select, .wpfo__champ--invalide textarea { border-color: var(--wpfo-accent-fonce); background-color: #fff7f4; }
.wpfo__champ--invalide .wpfo__option span { border-color: var(--wpfo-accent-fonce); }
.wpfo p.wpfo__erreur-generale {
  margin: 20px 0 0; padding: 12px 16px; font-size: .95rem; font-weight: 600; color: var(--wpfo-accent-fonce);
  background: #fff3ee; border-left: 4px solid var(--wpfo-accent-fonce); border-radius: 8px;
}
.wpfo p.wpfo__erreur-generale[hidden] { display: none; }

/* Envoi */
.wpfo__pied { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 26px; }
.wpfo .wpfo__bouton {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px; margin: 0; padding: .85rem 2rem;
  font: inherit; font-size: 1.0625rem; font-weight: 700; line-height: 1.2; color: #fff;
  background: var(--wpfo-accent); border: 0; border-radius: 999px; cursor: pointer; transition: background-color .15s;
}
.wpfo .wpfo__bouton:hover { background: var(--wpfo-accent-fonce); }
.wpfo .wpfo__bouton:focus-visible { outline: 3px solid var(--wpfo-accent-fonce); outline-offset: 3px; }
.wpfo .wpfo__bouton:disabled { opacity: .75; cursor: progress; }
.wpfo p.wpfo__requis { margin: 0; font-size: .85rem; color: var(--wpfo-gris); }
.wpfo p.wpfo__notice { margin: 16px 0 0; font-size: .85rem; line-height: 1.5; color: var(--wpfo-gris); }
.wpfo__notice a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.wpfo__piege { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Message de remerciement */
.wpfo-merci {
  display: flex; align-items: center; gap: 18px; margin: 1.75rem 0; padding: 26px 28px;
  background: var(--wpfo-fond); border: 1px solid var(--wpfo-ligne); border-radius: 18px; outline: none;
}
.wpfo-merci__icone { position: relative; flex: 0 0 46px; height: 46px; border-radius: 50%; background: var(--wpfo-petrole); }
.wpfo-merci__icone::after { content: ""; position: absolute; left: 15px; top: 14px; width: 16px; height: 9px; border: solid #fff; border-width: 0 0 3px 3px; transform: rotate(-45deg); }
body .wpfo-merci p.wpfo-merci__texte { margin: 0; font-size: 1.05rem; font-weight: 600; line-height: 1.45; color: var(--wpfo-encre); text-align: left; text-align-last: auto; }

@media (max-width: 480px) {
  .wpfo .wpfo__bouton { width: 100%; }
  .wpfo-merci { padding: 22px 20px; }
}
@media (prefers-reduced-motion: reduce) { .wpfo *, .wpfo-merci { transition: none !important; } }

/* Suggestions d'adresse */
.wpfo__champ { position: relative; }
.wpfo .wpfo__suggestions {
  position: absolute; z-index: 50; left: 0; right: 0; top: calc(100% - 2px); margin: 4px 0 0; padding: 6px 0; list-style: none;
  background: #fff; border: 1px solid var(--wpfo-ligne, #DACABE); border-radius: 12px; box-shadow: 0 12px 28px rgba(29, 27, 27, .14);
}
.wpfo .wpfo__suggestions li { margin: 0; padding: 10px 14px; font-size: .95rem; line-height: 1.35; cursor: pointer; text-align: left; }
.wpfo .wpfo__suggestions li:hover, .wpfo .wpfo__suggestions li.est-actif { background: #FDEFE7; }
