.form { min-width: 0; }
.form__fields { display: grid; gap: 22px 10px; }
.form--contact .form__fields, .form--question .form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form--question .form__fields { gap: 35px 16px; }
.form--question .form__actions { margin-top: 42px; }
.form--recipient .form__fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px 20px; }
.form__field--wide { grid-column: 1 / -1; }
.form__actions { margin-top: 33px; }
.form__submit { width: 100%; }
.form--newsletter { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 0; margin-top: 18px; }
.form--newsletter .form__fields { border: 1px solid var(--color-muted-dark); border-right: 0; }
.form--newsletter .form__actions { display: flex; margin: 0; border: 1px solid var(--color-muted-dark); border-left: 0; }
/* The input and submit share one frame; focus changes its paint, not its size. */
.form--newsletter:has(.form__fields:focus-within) .form__fields,
.form--newsletter:has(.form__fields:focus-within) .form__actions { border-color: var(--color-accent); }
.form--newsletter .form__submit { width: 50px; }
.form__consent { grid-column: 1 / -1; }
@media (max-width: 639px) { .form--recipient .form__fields { grid-template-columns: minmax(0,1fr); gap: 10px; } .form--contact .form__fields { grid-template-columns: minmax(0, 1fr); row-gap: 7px; } .form--question .form__fields { grid-template-columns: minmax(0,1fr); row-gap: 30px; } .form--question .form__actions { margin-top: 40px; } .form__actions { margin-top: 28px; } }

.form--comment { display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr); gap: 7px; }
.form--comment .form__fields { min-width: 0; }
.form--comment .form__actions { margin-top: 0; }
@media (max-width: 639px) {
  .form--comment { display: block; }
  .form--comment .form__actions { margin-top: 15px; }
}
