/* DWC — Formulaires */
.dwcf {
	--dwcf-accent: #1d4ed8;
	--dwcf-border: #cbd5e1;
	--dwcf-error: #b91c1c;
	--dwcf-ok: #15803d;
	--dwcf-bg: #fff;
	--dwcf-radius: 8px;
	max-width: 760px;
	margin: 0 auto 2rem;
	font-size: 1rem;
	line-height: 1.5;
	color: inherit;
}
.dwcf *, .dwcf *::before, .dwcf *::after { box-sizing: border-box; }
.dwcf__title { margin: 0 0 1rem; }
.dwcf__legend { margin: 0 0 1rem; font-size: .875rem; opacity: .75; }
.dwcf__grid { display: flex; flex-wrap: wrap; gap: 1rem 4%; }
.dwcf__field, .dwcf__heading { flex: 1 1 100%; min-width: 0; }
.dwcf__field--half { flex: 0 1 48%; }
@media (max-width: 600px) { .dwcf__field--half { flex-basis: 100%; } }
.dwcf__heading { margin: .75rem 0 0; font-size: 1.15rem; }
.dwcf fieldset.dwcf__field { border: 0; margin: 0; padding: 0; }
.dwcf__field > label, .dwcf__field > legend, .dwcf__estimate-label { display: block; margin: 0 0 .35rem; padding: 0; font-weight: 600; }
.dwcf__req { color: var(--dwcf-error); }

.dwcf input[type="text"], .dwcf input[type="email"], .dwcf input[type="tel"], .dwcf input[type="date"],
.dwcf input[type="number"], .dwcf select, .dwcf textarea, .dwcf input[type="file"] {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: .65rem .8rem;
	border: 1px solid var(--dwcf-border);
	border-radius: var(--dwcf-radius);
	background: var(--dwcf-bg);
	color: #0f172a;
	font: inherit;
	line-height: 1.4;
}
.dwcf textarea { min-height: 8rem; resize: vertical; }
.dwcf input:focus-visible, .dwcf select:focus-visible, .dwcf textarea:focus-visible {
	outline: 2px solid var(--dwcf-accent);
	outline-offset: 1px;
	border-color: var(--dwcf-accent);
}
.dwcf .has-error input, .dwcf .has-error select, .dwcf .has-error textarea { border-color: var(--dwcf-error); }
.dwcf__error { margin: .3rem 0 0; color: var(--dwcf-error); font-size: .875rem; }
.dwcf__hint { margin: .3rem 0 0; font-size: .8rem; opacity: .7; }

.dwcf__choices { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.dwcf__choice { display: inline-flex; align-items: flex-start; gap: .45rem; font-weight: 400; cursor: pointer; }
.dwcf__choice input { margin: .3rem 0 0; flex: none; width: 1.05rem; height: 1.05rem; accent-color: var(--dwcf-accent); }
.dwcf__consent { font-size: .9rem; }

.dwcf__files { list-style: none; margin: .4rem 0 0; padding: 0; font-size: .875rem; }
.dwcf__files li { padding: .2rem 0; }

.dwcf__products { width: 100%; border-collapse: collapse; margin: 0; font-size: .95rem; }
.dwcf__products th, .dwcf__products td { padding: .5rem; border-bottom: 1px solid var(--dwcf-border); text-align: left; }
.dwcf__products td:nth-child(2), .dwcf__products th:nth-child(2) { white-space: nowrap; }
.dwcf__products input[type="number"] { width: 5rem; padding: .35rem .5rem; }
.dwcf__products tfoot th, .dwcf__products tfoot td { font-weight: 700; border-bottom: 0; }

.dwcf__field--estimate { padding: 1rem 1.2rem; border-radius: var(--dwcf-radius); background: #eff6ff; border: 1px solid #bfdbfe; }
.dwcf__estimate { margin: 0; font-size: 1.1rem; }
.dwcf__estimate strong { color: var(--dwcf-accent); }

.dwcf__steps { display: flex; gap: .5rem; list-style: none; margin: 0 0 1.25rem; padding: 0; counter-reset: none; }
.dwcf__steps li { flex: 1; display: flex; align-items: center; gap: .5rem; padding: .5rem 0 0; border-top: 4px solid var(--dwcf-border); font-size: .875rem; opacity: .65; }
.dwcf__steps li span { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--dwcf-border); font-weight: 700; flex: none; }
.dwcf__steps li.is-current, .dwcf__steps li.is-done { border-color: var(--dwcf-accent); opacity: 1; }
.dwcf__steps li.is-current span, .dwcf__steps li.is-done span { background: var(--dwcf-accent); color: #fff; }
@media (max-width: 600px) { .dwcf__steps li { font-size: 0; } .dwcf__steps li span { font-size: .875rem; } }

.dwcf__nav { display: flex; gap: .75rem; justify-content: flex-end; margin-top: 1.25rem; }
.dwcf .dwcf__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	margin: 0;
	padding: .6rem 1.4rem;
	border: 1px solid var(--dwcf-accent);
	border-radius: var(--dwcf-radius);
	background: transparent;
	color: var(--dwcf-accent);
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
}
.dwcf .dwcf__btn--primary { background: var(--dwcf-accent); color: #fff; }
.dwcf .dwcf__btn:hover { filter: brightness(1.1); }
.dwcf .dwcf__btn:focus-visible { outline: 2px solid var(--dwcf-accent); outline-offset: 2px; }
.dwcf .dwcf__btn[hidden], .dwcf [hidden] { display: none !important; }
.dwcf .dwcf__btn[disabled] { opacity: .6; cursor: wait; }

.dwcf__notice { margin: 0 0 1.25rem; padding: 1rem 1.2rem; border-radius: var(--dwcf-radius); border-left: 4px solid var(--dwcf-border); background: #f8fafc; }
.dwcf__notice--ok { border-color: var(--dwcf-ok); background: #f0fdf4; }
.dwcf__notice--error { border-color: var(--dwcf-error); background: #fef2f2; }
.dwcf__notice:focus { outline: none; }

/* Champ piège anti-robots : invisible pour les personnes, présent pour les robots. */
.dwcf__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Étapes : seuls les champs de l'étape courante sont visibles (JS). */
.dwcf__form.is-steps.is-js [data-step].is-off-step { display: none; }
