/* Entraide – Formulaires CF7, style Material (natif, sans dépendance) */

.ecf7-form {
	--ecf7-primary: #143f2a;            /* vert Entraide : focus, libellé actif */
	--ecf7-accent: #e09900;             /* orange Entraide : bouton */
	--ecf7-accent-hover: #c98800;
	--ecf7-error: #b00020;
	--ecf7-text: rgba(0, 0, 0, .87);
	--ecf7-muted: rgba(0, 0, 0, .6);
	--ecf7-border: rgba(0, 0, 0, .42);
	--ecf7-radius: 4px;
	--ecf7-gap: 24px;
	--ecf7-font-size: 16px;
	color: var(--ecf7-text);
	font-size: var(--ecf7-font-size);
	line-height: 1.5;
}

.ecf7-form,
.ecf7-form *,
.ecf7-form *::before,
.ecf7-form *::after { box-sizing: border-box; }

/* ---------- Grille 12 colonnes ---------- */
.ecf7-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--ecf7-gap) 16px;
}
.ecf7-field { grid-column: span 12; position: relative; min-width: 0; }
.ecf7-span-1  { grid-column: span 1; }  .ecf7-span-2  { grid-column: span 2; }
.ecf7-span-3  { grid-column: span 3; }  .ecf7-span-4  { grid-column: span 4; }
.ecf7-span-5  { grid-column: span 5; }  .ecf7-span-6  { grid-column: span 6; }
.ecf7-span-7  { grid-column: span 7; }  .ecf7-span-8  { grid-column: span 8; }
.ecf7-span-9  { grid-column: span 9; }  .ecf7-span-10 { grid-column: span 10; }
.ecf7-span-11 { grid-column: span 11; } .ecf7-span-12 { grid-column: span 12; }
@media (max-width: 980px) {
	.ecf7-span-t-1  { grid-column: span 1; }  .ecf7-span-t-2  { grid-column: span 2; }
	.ecf7-span-t-3  { grid-column: span 3; }  .ecf7-span-t-4  { grid-column: span 4; }
	.ecf7-span-t-6  { grid-column: span 6; }  .ecf7-span-t-8  { grid-column: span 8; }
	.ecf7-span-t-12 { grid-column: span 12; }
}
@media (max-width: 767px) {
	.ecf7-field[class*="ecf7-span-"] { grid-column: span 12; }
	.ecf7-span-p-6 { grid-column: span 6; }
}

/* ---------- Champs texte / select (ligne basse, libellé flottant) ---------- */
.ecf7-text, .ecf7-select { padding-top: 0; }
.ecf7-form .wpcf7-form-control-wrap { display: block; position: relative; }

.ecf7-text .wpcf7-form-control,
.ecf7-select .wpcf7-form-control {
	display: block;
	width: 100%;
	height: 56px;
	margin: 0;
	padding: 20px 16px 6px;
	font: inherit;
	font-size: var(--ecf7-font-size);
	color: var(--ecf7-text);
	background: rgba(0, 0, 0, .04);
	border: 0;
	border-bottom: 1px solid var(--ecf7-border);
	border-radius: var(--ecf7-radius) var(--ecf7-radius) 0 0;
	outline: none;
	box-shadow: none;
	transition: background-color .15s;
	appearance: none;
	-webkit-appearance: none;
}
.ecf7-dense .wpcf7-form-control { height: 48px; padding-top: 16px; }
.ecf7-text .wpcf7-form-control:hover,
.ecf7-select .wpcf7-form-control:hover { background: rgba(0, 0, 0, .06); }
.ecf7-text .wpcf7-form-control:focus,
.ecf7-select .wpcf7-form-control:focus { background: rgba(0, 0, 0, .08); }

/* Ligne d'accent animée sous le champ */
.ecf7-line {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 2px;
	background: var(--ecf7-primary);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .18s ease-out;
	pointer-events: none;
}
.ecf7-field:focus-within .ecf7-line { transform: scaleX(1); }
.ecf7-field.ecf7-invalid .ecf7-line { background: var(--ecf7-error); transform: scaleX(1); }

/* Libellé flottant */
.ecf7-label {
	position: absolute;
	left: 16px;
	top: 18px;
	margin: 0;
	padding: 0;
	font-size: var(--ecf7-font-size);
	line-height: 1.2;
	color: var(--ecf7-muted);
	pointer-events: none;
	transform-origin: left top;
	transition: transform .18s ease-out, color .18s;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: calc(100% - 32px);
}
.ecf7-dense .ecf7-label { top: 14px; }
.ecf7-field:focus-within .ecf7-label,
.ecf7-field.ecf7-filled .ecf7-label,
.ecf7-select .ecf7-label {
	transform: translateY(-12px) scale(.75);
	max-width: calc((100% - 32px) / .75);
}
.ecf7-field:focus-within .ecf7-label { color: var(--ecf7-primary); }
.ecf7-field.ecf7-invalid .ecf7-label { color: var(--ecf7-error); }
.ecf7-required { margin-left: 2px; }

/* Style "outlined" (bordure complète) : utilisé par les textarea */
.ecf7-outlined .wpcf7-form-control {
	background: transparent;
	border: 1px solid var(--ecf7-border);
	border-radius: var(--ecf7-radius);
	padding: 16px;
}
.ecf7-outlined .wpcf7-form-control:hover { background: transparent; border-color: var(--ecf7-text); }
.ecf7-outlined .wpcf7-form-control:focus { background: transparent; border-color: var(--ecf7-primary); box-shadow: inset 0 0 0 1px var(--ecf7-primary); }
.ecf7-outlined.ecf7-invalid .wpcf7-form-control { border-color: var(--ecf7-error); }
.ecf7-outlined .ecf7-line { display: none; }
.ecf7-outlined .ecf7-label { top: 17px; }
.ecf7-outlined:focus-within .ecf7-label,
.ecf7-outlined.ecf7-filled .ecf7-label {
	/* le libellé "coupe" la bordure supérieure */
	transform: translateY(-26px) scale(.75);
	background: #fff;
	padding: 0 4px;
	left: 12px;
}

/* Textarea */
.ecf7-textarea .wpcf7-form-control {
	display: block;
	width: 100%;
	min-height: 96px;
	margin: 0;
	font: inherit;
	font-size: var(--ecf7-font-size);
	color: var(--ecf7-text);
	line-height: 1.5;
	resize: vertical;
	outline: none;
	box-shadow: none;
}
.ecf7-autosize .wpcf7-form-control { resize: none; overflow: hidden; }

/* Select */
.ecf7-select .wpcf7-form-control {
	padding-right: 44px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,.54)' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 24px;
	cursor: pointer;
}
.ecf7-select .wpcf7-form-control::-ms-expand { display: none; }
.ecf7-select--multi .wpcf7-form-control { height: auto; min-height: 56px; background-image: none; }

/* ---------- Fichier ---------- */
.ecf7-file .ecf7-label {
	position: static;
	display: block;
	transform: none;
	margin-bottom: 8px;
	font-size: 14px;
	color: var(--ecf7-muted);
	white-space: normal;
	max-width: none;
}
.ecf7-file .wpcf7-form-control {
	display: block;
	width: 100%;
	font: inherit;
	font-size: 14px;
	color: var(--ecf7-text);
	padding: 12px 16px;
	background: rgba(0, 0, 0, .04);
	border: 1px dashed var(--ecf7-border);
	border-radius: var(--ecf7-radius);
	cursor: pointer;
}
.ecf7-file .wpcf7-form-control::file-selector-button {
	margin-right: 12px;
	padding: 6px 14px;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	color: var(--ecf7-primary);
	background: #fff;
	border: 1px solid var(--ecf7-primary);
	border-radius: var(--ecf7-radius);
	cursor: pointer;
}
.ecf7-file .wpcf7-form-control:focus { outline: 2px solid var(--ecf7-primary); outline-offset: 2px; }

/* ---------- Cases à cocher / acceptation ---------- */
.ecf7-form .wpcf7-acceptance,
.ecf7-form .wpcf7-checkbox,
.ecf7-form .wpcf7-radio { display: block; }
.ecf7-form .wpcf7-list-item { display: block; margin: 0 0 8px; }
.ecf7-form .wpcf7-list-item label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 15px; line-height: 1.45; }
.ecf7-form .wpcf7-list-item input[type="checkbox"],
.ecf7-form .wpcf7-list-item input[type="radio"] {
	flex: 0 0 auto;
	width: 18px; height: 18px;
	margin: 3px 0 0;
	accent-color: var(--ecf7-primary);
	cursor: pointer;
}
.ecf7-form .wpcf7-list-item-label { flex: 1 1 auto; }
.ecf7-group-label { margin: 0 0 8px; font-size: 14px; color: var(--ecf7-muted); }

/* Paragraphes libres dans le formulaire (mentions légales…) */
.ecf7-grid > p { grid-column: span 12; margin: 0; }
.ecf7-grid > br { display: none; }

/* ---------- Bouton ---------- */
.ecf7-submit { display: flex; align-items: center; gap: 12px; }
.ecf7-align-center { justify-content: center; }
.ecf7-align-right { justify-content: flex-end; }
.ecf7-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 64px;
	height: 40px;
	margin: 0;
	padding: 0 20px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ecf7-accent);
	border: 0;
	border-radius: var(--ecf7-radius);
	box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
	cursor: pointer;
	transition: background-color .15s, box-shadow .15s, transform .1s;
}
.ecf7-form .wpcf7-submit:hover { background: var(--ecf7-accent-hover); box-shadow: 0 2px 4px -1px rgba(0,0,0,.2), 0 4px 5px 0 rgba(0,0,0,.14), 0 1px 10px 0 rgba(0,0,0,.12); }
.ecf7-form .wpcf7-submit:focus-visible { outline: 2px solid var(--ecf7-primary); outline-offset: 2px; }
.ecf7-form .wpcf7-submit:active { transform: translateY(1px); }
.ecf7-form .wpcf7-submit:disabled { opacity: .6; cursor: default; }
.ecf7-submit--unelevated .wpcf7-submit, .ecf7-submit--flat .wpcf7-submit { box-shadow: none; }
.ecf7-submit--outlined .wpcf7-submit { background: transparent; color: var(--ecf7-accent); border: 1px solid var(--ecf7-accent); box-shadow: none; }
.ecf7-form .wpcf7-spinner { margin: 0; }

/* ---------- Erreurs & messages CF7 ---------- */
.ecf7-form .wpcf7-not-valid-tip {
	display: block;
	margin: 6px 16px 0;
	font-size: 12px;
	line-height: 1.3;
	color: var(--ecf7-error);
}
.ecf7-form .wpcf7-not-valid { border-bottom-color: var(--ecf7-error); }
.ecf7-help { margin: 6px 16px 0; font-size: 12px; color: var(--ecf7-muted); }

.wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 12px 16px;
	border: 0;
	border-left: 4px solid var(--ecf7-primary, #143f2a);
	border-radius: 4px;
	background: rgba(20, 63, 42, .06);
	font-size: 14px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
	border-left-color: #b00020;
	background: rgba(176, 0, 32, .06);
}
.wpcf7 form.sent .wpcf7-response-output {
	border-left-color: #2e7d32;
	background: rgba(46, 125, 50, .08);
}

@media (prefers-reduced-motion: reduce) {
	.ecf7-form * { transition: none !important; }
}

/* Éléments CF7 posés directement dans la grille (acceptance hors [md-accept], texte libre…) */
.ecf7-grid > .wpcf7-form-control-wrap,
.ecf7-grid > .wpcf7-acceptance,
.ecf7-grid > .wpcf7-spinner { grid-column: span 12; }
.ecf7-grid > .wpcf7-form-control-wrap .wpcf7-list-item { margin-left: 0; }
