/* Layout */
.wpcf7 form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: none;
}

.wpcf7 form label {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--ffMSeBo);
}

.wpcf7 form label span {
  font-family: var(--ffMRe);
}

.wpcf7 form label,
.wpcf7 form legend {
  font-size: 18px;
  line-height: 20px;
}

.wpcf7 form p {
  width: 100%;
  display: grid;
  gap: 8px;
}

.wpcf7 form fieldset {
  width: 100%;
  border: 0;
  margin: 0;
  padding: 0;
}

.wpcf7 form legend {
  margin-bottom: 10px;
}

.wpcf7 br,
.wpcf7-spinner {
  display: none;
}

/* Champs */
.wpcf7
  form
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.wpcf7 form textarea,
.wpcf7 form select {
  display: block;
  width: 100%;
  padding: 10px;
  border: 0px;
  border: solid 1px #d4d4d4 !important;
  outline: none;
  resize: none;
  background-color: var(--color-white);
  height: 44px;
  appearance: initial;
  color: var(--color-black) !important;
}

.wpcf7 form p label select {
  background-repeat: no-repeat;
  background-position: right 20px center;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.00025 7.00025C5.74425 7.00025 5.48825 6.90225 5.29325 6.70725L0.29325 1.70725C-0.09775 1.31625 -0.09775 0.68425 0.29325 0.29325C0.68425 -0.09775 1.31625 -0.09775 1.70725 0.29325L6.00025 4.58625L10.2933 0.29325C10.6842 -0.09775 11.3162 -0.09775 11.7072 0.29325C12.0982 0.68425 12.0982 1.31625 11.7072 1.70725L6.70725 6.70725C6.51225 6.90225 6.25625 7.00025 6.00025 7.00025Z' fill='%230B0B0B'/%3E%3C/svg%3E%0A");
}

.wpcf7
  form
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.wpcf7 form textarea,
.wpcf7 form select,
.wpcf7 form select option,
.wpcf7
  form
  input:not([type="radio"]):not([type="checkbox"]):not(
    [type="submit"]
  )::placeholder,
.wpcf7 form textarea::placeholder,
.wpcf7 form select::placeholder,
.wpcf7 form select option::placeholder {
  font-family: var(--ffMRe);
  font-size: 16px;
  line-height: 20px;
}

.wpcf7
  form
  input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):focus,
.wpcf7 form textarea:focus,
.wpcf7 form select:focus {
  border: solid 2px var(--primary);
}

.wpcf7 form textarea {
  height: 184px;
  padding: 10px;
  font-family: var(--ffMRe);
  color: var(--color-black);
  font-size: 1rem;
  line-height: 1.125rem;
}

.wpcf7 form p .wpcf7-form-control-wrap {
  position: relative;
  margin-top: unset;
}

.wpcf7 form p:has(> input[type="submit"]) {
  margin-top: 24px;
}

input[type="submit"] {
  background-color: var(--color-primary) !important;
  color: var(--color-white) !important;
  font-family: var(--ffMRe);
  border-radius: 50px;
  padding-block: 15px !important;
  border: 1px solid var(--color-primary) !important;
  width: 100% !important;
  font-size: 1rem !important;
  line-ehight: 1.125rem !important;
}

.wpcf7 form p .wpcf7-form-control-wrap:has(textarea) {
  margin-top: 6px;
}

.wpcf7 form .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.wpcf7 form .wpcf7-radio {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 16px;
}

.wpcf7 form .wpcf7-list-item {
  margin: 0;
}

.wpcf7 form .wpcf7-list-item label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
}

.wpcf7 form .wpcf7-list-item label:has(input[type="checkbox"]) {
  justify-content: flex-start;
}

.wpcf7 form .wpcf7-radio .wpcf7-list-item-label,
.wpcf7 form .wpcf7-checkbox .wpcf7-list-item-label {
  font-size: 1rem;
  line-height: 1.125rem;
}

/* Bouton */
.wpcf7 .submitContainer input.wpcf7-submit {
  font-size: 14px;
  line-height: 1.2em;
  padding: 20px 30px;
  border-radius: 8px;
  outline: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  border: none;
  position: relative;
  color: var(--color-primary);
  background-color: var(--color-white);
  border: solid 1px var(--color-primary) !important;
  width: 100%;
  cursor: pointer;
}

.wpcf7
  form
  input:focus-visible:not([type="radio"]):not([type="checkbox"]):not(
    [type="submit"]
  ),
.wpcf7 form textarea:focus-visible,
.wpcf7 form select:focus-visible {
  border: 1px solid var(--color-black) !important;
}

@media (width > 991px) {
  .wpcf7 form label,
  .wpcf7 form legend {
    font-size: 1rem;
  }

  .wpcf7 form {
    gap: 24px;
  }

  .wpcf7 form .wpcf7-checkbox {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
  }

  .wpcf7 form .wpcf7-radio .wpcf7-list-item-label,
  .wpcf7 form .wpcf7-checkbox .wpcf7-list-item-label {
    line-height: 1.25rem;
  }

  .wpcf7 form p .wpcf7-form-control-wrap:has(input[type="checkbox"]) {
    margin-top: 16px;
  }

  .wpcf7 form p .wpcf7-form-control-wrap:has(textarea) {
    margin-top: unset;
  }

  .wpcf7 form textarea {
    height: 204px;
  }
}

@media (pointer: fine) {
  .wpcf7 .submitContainer input.wpcf7-submit:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
  }

  .wpcf7
    form
    input:hover:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
  .wpcf7 form textarea:hover,
  .wpcf7 form select:hover {
    border: 1px solid var(--color-black) !important;
  }
}

/* Messages d'erreur */
.wpcf7-not-valid-tip {
  margin-top: 8px;
  color: #dc3545;
  font-size: 14px;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  margin: 0px;
  padding: 12px 25px;
  border: solid 1px #dc3545 !important;
  font-size: 16px;
  line-height: 22px;
}

/* Infos */
.wpcf7 form .infos {
  font-size: 12px;
  line-height: 22px;
  text-align: end;
}

.wpcf7 form .infos span {
  color: var(--color-primary);
}

/* Empêcher la soumission en double de formulaire */
.wpcf7-form.submitting .wpcf7-submit {
  pointer-events: none;
  opacity: 0.7;
  cursor: wait;
}
