/* Formulaire de contact — variables du thème Grève féministe, avec valeurs de repli. */
.gfc-form {
	--gfc-violet: var(--violet, #9600ff);
	--gfc-violet-dark: var(--violet-dark, #7300c4);
	--gfc-ink: var(--ink, #1e1630);
	--gfc-muted: var(--muted, #5b536b);
	--gfc-tint: var(--tint, #f5efff);
	--gfc-line: var(--line, #e4dbf3);
	max-width: 720px; margin-block: 1.5rem;
}
.gfc-required, .gfc-legal { font-size: .875rem; color: var(--gfc-muted); }
.gfc-row { display: grid; gap: 0 1rem; }
@media (min-width: 600px) { .gfc-row { grid-template-columns: 1fr 1fr; } }
.gfc-field { margin-bottom: 1.1rem; }
.gfc-field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.gfc-field label [aria-hidden] { color: var(--gfc-violet); }
.gfc-field input, .gfc-field textarea {
	width: 100%; font: inherit; color: var(--gfc-ink); background: #fff;
	padding: .75rem .95rem; border: 2px solid var(--gfc-line); border-radius: 12px;
}
.gfc-field textarea { resize: vertical; min-height: 10rem; }
.gfc-field :is(input, textarea):focus { outline: none; border-color: var(--gfc-violet); box-shadow: 0 0 0 3px rgb(150 0 255 / .15); }
.gfc-field [aria-invalid="true"] { border-color: #c4002f; }
.gfc-error { color: #b0002a; font-size: .875rem; font-weight: 600; margin: .3rem 0 0; }
.gfc-form .cf-turnstile { min-height: 65px; margin: .5rem 0 1rem; }
.gfc-message { margin: 0 0 1rem; padding: .85rem 1.1rem; border-radius: 12px; font-weight: 600; }
.gfc-message:empty { display: none; }
.gfc-message.is-success { background: var(--gfc-tint); color: var(--gfc-violet-dark); }
.gfc-message.is-error { background: #fff0f3; color: #8f0022; }
.gfc-submit[disabled] { opacity: .7; cursor: progress; }
