/**
 * Formulario de candidaturas de ACL Formación.
 * Azul Pantone 661 C #003594 · Amarillo Pantone 7406 C #F1C400.
 * Superficies planas, bordes finos, sin sombras ni efectos: sigue el brief.
 * Hereda la tipografía del tema a propósito, para no romper la coherencia.
 */

.acl-cand-form {
	--acl-azul: #003594;
	--acl-amarillo: #F1C400;
	--acl-borde: #d7dbe3;
	--acl-error: #b3261e;
	max-width: 780px;
	margin: 0 auto;
}

/* Bloques condicionales: ocultos hasta que JavaScript decide. */
.acl-cand-condicional {
	display: none;
}
.acl-cand-condicional.acl-cand-visible {
	display: block;
}

.acl-cand-bloque {
	border: 1px solid var(--acl-borde);
	border-radius: 6px;
	padding: 20px 22px 8px;
	margin: 0 0 18px;
}

.acl-cand-bloque > legend {
	font-weight: 700;
	color: var(--acl-azul);
	padding: 0 8px;
	font-size: 1.02em;
}

.acl-cand-campo {
	display: block;
	margin: 0 0 16px;
}

.acl-cand-campo label,
.acl-cand-etiqueta {
	display: block;
	font-weight: 600;
	margin-bottom: 5px;
}

.acl-cand-form input[type="text"],
.acl-cand-form input[type="email"],
.acl-cand-form input[type="tel"],
.acl-cand-form input[type="file"],
.acl-cand-form select,
.acl-cand-form textarea {
	width: 100%;
	padding: 9px 11px;
	border: 1px solid var(--acl-borde);
	border-radius: 4px;
	background: #fff;
	font: inherit;
	color: inherit;
	box-sizing: border-box;
}

.acl-cand-form input:focus,
.acl-cand-form select:focus,
.acl-cand-form textarea:focus,
.acl-cand-form button:focus {
	outline: 2px solid var(--acl-azul);
	outline-offset: 2px;
}

.acl-cand-dos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 18px;
}

.acl-cand-rejilla {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2px 18px;
	margin-bottom: 12px;
}

/* min-width:0 obligatorio: sin él las rejillas ensanchan la página en móvil.
   Es la misma causa raíz que rompió el responsive del resto de la web. */
.acl-cand-dos > *,
.acl-cand-rejilla > * {
	min-width: 0;
}

.acl-cand-opcion {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	padding: 6px 0;
	cursor: pointer;
	font-weight: 400;
	line-height: 1.4;
}

.acl-cand-opcion input {
	margin-top: 3px;
	flex: 0 0 auto;
	accent-color: var(--acl-azul);
}

.acl-cand-ayuda {
	display: block;
	font-size: 0.88em;
	color: #5b6472;
	margin: 4px 0 10px;
}

.acl-cand-error {
	display: block;
	color: var(--acl-error);
	font-size: 0.9em;
	font-weight: 600;
	margin-top: 5px;
}

.acl-cand-aviso {
	border-left: 4px solid var(--acl-error);
	background: #fdf2f2;
	padding: 12px 16px;
	margin-bottom: 20px;
}

.acl-cand-grupo-certs {
	border: 0;
	border-top: 1px solid var(--acl-borde);
	padding: 10px 0 4px;
	margin: 0 0 8px;
}

.acl-cand-grupo-certs legend {
	font-weight: 700;
	color: var(--acl-azul);
	font-size: 0.94em;
	padding: 0 6px 0 0;
}

.acl-cand-grupo-certs .acl-cand-opcion span strong {
	color: var(--acl-azul);
	font-variant-numeric: tabular-nums;
}

.acl-cand-legal p {
	font-size: 0.88em;
	color: #4a5261;
	line-height: 1.55;
}

.acl-cand-enviar {
	text-align: center;
	margin: 24px 0 0;
}

.acl-cand-form button[type="submit"] {
	background: var(--acl-azul);
	color: #fff;
	border: 0;
	border-radius: 4px;
	padding: 14px 42px;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.acl-cand-form button[type="submit"]:hover {
	background: #002a76;
}

/* Campo trampa. Fuera de la vista pero sin display:none, que algunos robots detectan. */
.acl-cand-trampa {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.acl-cand-ok {
	border: 1px solid var(--acl-borde);
	border-left: 5px solid var(--acl-amarillo);
	border-radius: 6px;
	padding: 26px 28px;
	max-width: 780px;
	margin: 0 auto;
}

.acl-cand-ok h2 {
	color: var(--acl-azul);
	margin-top: 0;
}

@media (max-width: 767px) {
	.acl-cand-dos,
	.acl-cand-rejilla {
		grid-template-columns: 1fr;
	}
	.acl-cand-bloque {
		padding: 16px 14px 4px;
	}
}
