/**
 * Formulario Cinteligencia — CSS estructural.
 *
 * Solo disposición, estados y visibilidad. Nada de colores, fuentes, bordes ni
 * radios: eso lo decide el tema o el widget de Elementor sobre las clases
 * `cint-` (ver docs/estilos.md). Especificidad de una clase, sin !important.
 * Única excepción: el relleno del campo va en `.cint-form .cint-form__input`
 * (dos clases) para ganar a los temas que estilan `input[type="text"]`;
 * se cambia con --cint-campo-relleno.
 *
 * Custom properties que se pueden sobreescribir desde fuera:
 *   --cint-gap             separación entre campos           (1.3rem)
 *   --cint-gap-secciones   separación entre secciones        (calc(var(--cint-gap) * 2))
 *   --cint-columnas        columnas de la rejilla en escritorio (2)
 *   --cint-color-error     texto y borde de error            (#b3261e, rojo)
 *   --cint-error-peso      peso del texto de error           (600)
 *   --cint-ancho-max       ancho máximo del formulario       (none)
 *   --cint-etiqueta-margen espacio entre etiqueta y campo    (8px)
 *   --cint-campo-relleno   relleno interior de los campos    (0.75rem 1rem)
 *   --cint-consentimiento-interlineado  line-height del texto legal (1.4)
 *
 * Excepción consciente a «sin colores»: los errores llevan rojo por defecto
 * para que se vean sin configurar nada; el tema o el widget lo cambian con
 * --cint-color-error.
 */

.cint-form {
	display: grid;
	gap: var(--cint-gap-secciones, calc(var(--cint-gap, 1.3rem) * 2));
	max-width: var(--cint-ancho-max, none);
	min-width: 0;
}

.cint-form__seccion {
	display: grid;
	grid-template-columns: repeat(var(--cint-columnas, 2), minmax(0, 1fr));
	gap: var(--cint-gap, 1.3rem);
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.cint-form__seccion[hidden] {
	display: none;
}

.cint-form__leyenda {
	grid-column: 1 / -1;
	padding: 0;
	margin: 0;
}

/* Texto introductorio de una sección (ficha ejecutiva). Los <p> los pone wpautop. */
.cint-form__intro {
	grid-column: 1 / -1;
	min-width: 0;
}

.cint-form__intro > :first-child {
	margin-top: 0;
}

.cint-form__intro > :last-child {
	margin-bottom: 0;
}

.cint-form__campo {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cint-form__campo[hidden] {
	display: none;
}

.cint-form__campo--ancho,
.cint-form__campo--radio,
.cint-form__campo--checkbox {
	grid-column: 1 / -1;
}

.cint-form__label {
	display: block;
	margin-bottom: var(--cint-etiqueta-margen, 8px);
}

.cint-form__input {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Dos clases a propósito: gana a `input[type="text"]` del tema (0,1,1). */
.cint-form .cint-form__input {
	padding: var(--cint-campo-relleno, 0.75rem 1rem);
}

.cint-form__ayuda {
	margin: 0;
}

.cint-form__opciones {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cint-gap, 1.3rem);
}

.cint-form__opcion {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	cursor: pointer;
}

.cint-form__consentimiento {
	display: flex;
	align-items: flex-start;
	gap: 0.75em;
	cursor: pointer;
}

.cint-form__casilla,
.cint-form__radio {
	flex: 0 0 auto;
	margin: 0.2em 0 0;
}

.cint-form__consentimiento-texto {
	min-width: 0;
	line-height: var(--cint-consentimiento-interlineado, 1.4);
}

.cint-form__campo--error .cint-form__input {
	border-color: var(--cint-color-error, #b3261e);
	box-shadow: 0 0 0 1px var(--cint-color-error, #b3261e);
}

.cint-form__campo--error .cint-form__label,
.cint-form__campo--error .cint-form__consentimiento-titulo {
	color: var(--cint-color-error, #b3261e);
}

.cint-form__error {
	color: var(--cint-color-error, #b3261e);
	font-weight: var(--cint-error-peso, 600);
	margin: 0.25em 0 0;
}

.cint-form__mensaje {
	grid-column: 1 / -1;
	margin: 0;
}

.cint-form__mensaje--error {
	color: var(--cint-color-error, #b3261e);
	font-weight: var(--cint-error-peso, 600);
	border-left: 4px solid var(--cint-color-error, #b3261e);
	padding-left: 0.75em;
}

.cint-form__acciones {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.cint-form__acciones .cint-form__boton {
	cursor: pointer;
}

.cint-form__boton[disabled] {
	cursor: progress;
	opacity: 0.7;
}

/* Trampa antispam: fuera de la vista, sin display:none para que los robots la rellenen. */
.cint-form__trampa {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cint-exito {
	display: grid;
	gap: var(--cint-gap, 1.3rem);
}

.cint-exito__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cint-gap, 1.3rem);
}

@media (max-width: 640px) {
	.cint-form__seccion {
		grid-template-columns: minmax(0, 1fr);
	}
}
