/*
 * Campos de los formularios de mlp-core (C09): control y error de la guía de estilo, compartidos por el directorio, la
 * calculadora y los formularios de Contact Form 7 (handle «mlp-campos», como «mlp-ficha»). Solo tokens (M-004). La
 * etiqueta y la disposición son de cada bloque.
 */

/* Campo (guía de estilo): borde de 1 px «borde-campo» y 44 px de alto; con error, 2 px «error». */
.mlp-control {
	background-color: var(--wp--preset--color--superficie);
	border: var(--wp--custom--borde--fino) solid var(--wp--preset--color--borde-campo);
	border-radius: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--texto);
	font: inherit;
	inline-size: 100%;
	min-block-size: var(--wp--custom--control--alto);
	padding-inline: var(--wp--preset--spacing--30);
}

textarea.mlp-control {
	min-block-size: calc(var(--wp--custom--control--alto) * 3);
	padding-block: var(--wp--preset--spacing--20);
	resize: vertical;
}

.mlp-control[aria-invalid="true"] {
	border-color: var(--wp--preset--color--error);
	border-width: var(--wp--custom--borde--tarjeta);
}

/* Error junto al campo: texto con icono, nunca solo color. El icono no se lee (lección 47). */
.mlp-error,
.mlp-formulario .wpcf7-not-valid-tip {
	color: var(--wp--preset--color--error);
	display: flex;
	font-size: var(--wp--preset--font-size--pequeno);
	font-weight: var(--wp--custom--peso--fuerte);
	gap: var(--wp--preset--spacing--20);
	margin: 0;
}

.mlp-error[hidden] {
	display: none;
}

.mlp-error::before,
.mlp-formulario .wpcf7-not-valid-tip::before {
	content: "⚠" / "";
}

/* Antispam ([mlp_antispam]): la trampa no se ve ni se alcanza (además lleva inert y aria-hidden). */
.mlp-antispam {
	block-size: var(--wp--custom--borde--fino);
	clip-path: inset(50%);
	inline-size: var(--wp--custom--borde--fino);
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}
