/* ==========================================================================
   Formulaire de contact (Contact Form 7)
   La feuille de l'extension n'est pas chargée : tout l'habillage est ici,
   sur les mêmes valeurs que les champs du panier et de la commande.
   ========================================================================== */

.tt-form {
  display: grid;
  gap: var(--tt-gap-s);
  max-width: 640px;
  margin: 0 0 var(--tt-bloc);
}

.tt-form__ligne {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--tt-gap-s);
}

@media (max-width: 640px) {
  .tt-form__ligne { grid-template-columns: 1fr; }
}

.tt-form label {
  display: grid;
  gap: 6px;
  font-family: var(--tt-sans);
  font-size: var(--tt-fs-corps-s);
  font-weight: 600;
  color: var(--tt-encre);
}

.tt-form input[type="text"],
.tt-form input[type="email"],
.tt-form select,
.tt-form textarea {
  width: 100%;
  min-height: var(--tt-touch);
  padding: calc(var(--tt-gap-s) / 2) var(--tt-gap-s);
  font-family: var(--tt-sans);
  font-size: 16px; /* 16 px : pas de zoom forcé sur iPhone */
  font-weight: 400;
  color: var(--tt-encre);
  background: var(--tt-papier);
  border: 1px solid var(--tt-bord-champ-fonce);
  border-radius: var(--tt-radius);
  box-shadow: none;
}

.tt-form textarea { min-height: 180px; resize: vertical; }

.tt-form input:focus,
.tt-form select:focus,
.tt-form textarea:focus {
  border-color: var(--tt-encre);
  outline: var(--tt-focus);
  outline-offset: var(--tt-focus-offset);
}

.tt-form .wpcf7-form-control-wrap { display: block; }

/* Champ piège : hors écran, ni vu ni lu par un lecteur d'écran. */
.tt-form__piege {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.tt-form__mention {
  margin: 0;
  font-size: var(--tt-fs-meta);
  color: var(--tt-texte-3);
}

.tt-form__mention a { color: var(--tt-brique); }

.tt-form .wpcf7-submit {
  justify-self: start;
  min-height: var(--tt-touch);
  padding: 0 var(--tt-bloc);
  font-family: var(--tt-sans);
  font-size: var(--tt-fs-corps-s);
  font-weight: 600;
  letter-spacing: var(--tt-ls-micro);
  text-transform: uppercase;
  color: var(--tt-papier);
  background: var(--tt-encre);
  border: 1px solid var(--tt-encre);
  border-radius: var(--tt-radius);
  cursor: pointer;
  transition: background var(--tt-t-rapide), color var(--tt-t-rapide), border-color var(--tt-t-rapide);
}

.tt-form .wpcf7-submit:hover {
  color: var(--tt-encre);
  background: var(--tt-or);
  border-color: var(--tt-or);
}

.tt-form .wpcf7-submit:focus-visible {
  outline: var(--tt-focus);
  outline-offset: var(--tt-focus-offset);
}

/* Messages de l'extension : erreurs de champ et réponse d'envoi. */
.wpcf7-not-valid-tip {
  display: block;
  margin-top: 4px;
  font-size: var(--tt-fs-meta);
  font-weight: 400;
  color: var(--tt-brique);
}

.wpcf7 form .wpcf7-response-output {
  max-width: 640px;
  margin: 0 0 var(--tt-bloc);
  padding: var(--tt-gap-s);
  font-size: var(--tt-fs-corps-s);
  border: 1px solid var(--tt-bord-beige);
  background: var(--tt-papier-alt);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: var(--tt-brique); }

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output { display: none; }

.wpcf7-spinner { display: none; }
.wpcf7 form.submitting .wpcf7-spinner { display: inline-block; }

.screen-reader-response {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

/* Champs techniques de l'extension : regroupés dans un fieldset qui garde
   sa bordure par défaut. */
.wpcf7 .hidden-fields-container { display: none; }

.wpcf7 { margin-bottom: calc(var(--tt-bloc) * 1.5); }
