/* Contact form: identity variables of the theme (tokens.css), mobile first, 44 px targets, visible errors without colour alone. */
.ueah-contact { margin-block-start: 2rem; }
.ueah-contact * { box-sizing: border-box; }
.ueah-contact-form { max-width: 100%; }
.ueah-contact-intro, .ueah-contact-note, .ueah-contact-confidentialite { margin-block: .75rem; }
.ueah-champ { margin-block: 1rem 0; }
.ueah-champ label, .ueah-defi legend { display: block; margin-block-end: .375rem; font-weight: 700; }
.ueah-contact-form :is(input:not([type="hidden"]):not([type="file"]), select, textarea) {
  display: block;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: .6rem .75rem;
  border: 2px solid var(--ueah-texte);
  border-radius: 0;
  background: var(--ueah-fond);
  color: var(--ueah-texte);
  font: inherit;
  line-height: 1.4;
}
.ueah-contact-form textarea { min-height: 10rem; resize: vertical; }
.ueah-contact-form input[type="file"] { display: block; width: 100%; padding: .5rem 0; font: inherit; color: inherit; }
.ueah-contact-form input[type="file"]::file-selector-button {
  min-height: 44px;
  margin-inline-end: .75rem;
  padding: .5rem 1rem;
  border: 2px solid var(--ueah-texte);
  border-radius: 0;
  background: var(--ueah-fond);
  color: var(--ueah-texte);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
/* An invalid field keeps a thicker outline and a bar on the left: never colour alone. */
.ueah-contact-form [aria-invalid="true"] { border-width: 3px; box-shadow: inset 6px 0 0 var(--ueah-texte); }
.ueah-aide { margin: .375rem 0 0; font-size: var(--wp--preset--font-size--petit, .875rem); }
.ueah-erreur { margin: .375rem 0 0; padding-inline-start: .75rem; border-inline-start: 4px solid var(--ueah-texte); }
.ueah-contact-erreurs, .ueah-contact-accuse {
  margin-block: 1rem;
  padding: 1rem 1.25rem;
  border: 2px solid var(--ueah-texte);
  background: var(--ueah-brume);
  color: var(--ueah-texte);
}
.ueah-contact-erreurs h3, .ueah-contact-accuse h3 { margin-block: 0 .5rem; }
.ueah-contact-erreurs ul { margin: .5rem 0 0 1.25rem; padding: 0; }
.ueah-contact-erreurs a { display: inline-block; padding-block: .25rem; }
.ueah-contact-numero { font-family: var(--ueah-police-titres); font-size: 1.25em; letter-spacing: .02em; }
.ueah-defi { margin-block: 1.25rem; padding: 1rem 1.25rem; border: 1px solid var(--ueah-bordure); }
.ueah-defi .ueah-champ { margin-block-start: .5rem; }
.ueah-defi-alternative { margin-block: .75rem 0; }
.ueah-defi-alternative a { display: inline-block; padding-block: .5rem; }
.ueah-pieces-liste { margin: .5rem 0 0; padding-inline-start: 1.25rem; }
.ueah-pieces-liste:empty { display: none; }
/* The honeypot stays out of sight, out of the tab order and out of the accessibility tree. */
.ueah-contact-piege { position: absolute !important; inset-inline-start: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ueah-contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-block: 1.25rem 0; }
.ueah-contact-envoyer {
  min-height: 44px;
  padding: .75rem 1.5rem;
  border: 2px solid var(--ueah-texte);
  border-radius: 0;
  background: var(--ueah-texte);
  color: var(--ueah-fond);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.ueah-contact-envoyer:hover { background: var(--ueah-fond); color: var(--ueah-texte); }
.ueah-contact-envoyer:disabled { cursor: progress; opacity: .75; }
@media (min-width: 48em) {
  .ueah-contact-grille { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ueah-contact * { transition: none !important; }
}
