/*
 * diagnostico.css
 * Estilos encapsulados con prefijo "dc-" (sección 53). No toca selectores
 * globales de WordPress, no modifica el header, el menú ni el footer.
 * Mobile-first: se define primero para móvil y se amplía con min-width.
 */

.dc-diagnostic {
	--dc-turquesa: #1EB0A9;
	--dc-verde-petroleo: #013F40;
	--dc-magenta: #BF4084;
	--dc-crema: #FFEBCC;
	--dc-carbon: #34313A;
	--dc-rosa: #E08599;
	--dc-blanco: #FFFFFF;

	max-width: 760px;
	margin: 0 auto;
	padding: 16px;
	color: var(--dc-carbon);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	box-sizing: border-box;
}

.dc-diagnostic *, .dc-diagnostic *::before, .dc-diagnostic *::after {
	box-sizing: border-box;
}

.dc-intro {
	background: var(--dc-verde-petroleo);
	color: var(--dc-blanco);
	padding: 24px 18px;
	border-radius: 10px;
	margin-bottom: 24px;
}

.dc-titulo {
	margin: 0 0 8px 0;
	font-size: 22px;
	color: var(--dc-blanco);
}

.dc-subtitulo {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--dc-crema);
}

.dc-bloque-titulo {
	color: var(--dc-magenta);
	border-bottom: 2px solid var(--dc-turquesa);
	padding-bottom: 6px;
	margin-top: 32px;
	font-size: 18px;
}

.dc-bloque-nota {
	font-size: 13px;
	color: var(--dc-carbon);
	opacity: 0.8;
}

.dc-question {
	border: 1px solid #E5E5E5;
	border-radius: 8px;
	padding: 16px;
	margin: 14px 0;
	background: var(--dc-blanco);
}

.dc-question legend {
	font-weight: 600;
	padding: 0 6px;
	font-size: 15px;
	line-height: 1.4;
}

.dc-field-label {
	display: block;
	margin-top: 14px;
	margin-bottom: 6px;
	font-weight: 600;
	font-size: 14px;
}

.dc-input {
	width: 100%;
	padding: 14px;
	font-size: 16px; /* evita zoom automático en iOS */
	border: 1px solid #CCC;
	border-radius: 8px;
	background: var(--dc-blanco);
}

.dc-input:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus,
.dc-submit:focus {
	outline: 3px solid var(--dc-turquesa);
	outline-offset: 2px;
}

/* Escala Likert: en móvil se apilan en fila con opciones grandes */
.dc-likert {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.dc-likert-option {
	flex: 1 1 30%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	padding: 12px 6px;
	border: 1px solid #E5E5E5;
	border-radius: 8px;
	cursor: pointer;
	min-height: 64px;
	justify-content: center;
	transition: background 0.15s, border-color 0.15s;
}

.dc-likert-option:has(input:checked) {
	background: var(--dc-crema);
	border-color: var(--dc-magenta);
}

.dc-likert-option input[type="radio"] {
	width: 22px;
	height: 22px;
}

.dc-likert-num {
	font-weight: 700;
	color: var(--dc-verde-petroleo);
}

.dc-likert-label {
	font-size: 11px;
	color: var(--dc-carbon);
}

.dc-opciones {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 10px;
}

.dc-radio-option,
.dc-checkbox-option {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px;
	border: 1px solid #E5E5E5;
	border-radius: 8px;
	font-size: 14px;
	cursor: pointer;
}

.dc-radio-option input,
.dc-checkbox-option input {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin-top: 1px;
}

.dc-consent {
	background: var(--dc-crema);
}

.dc-legal-nota {
	font-size: 11px;
	color: var(--dc-carbon);
	opacity: 0.7;
	margin-top: 8px;
}

.dc-error-general {
	background: #FDEAEA;
	color: #A4222B;
	border: 1px solid #E5A6A6;
	padding: 12px 14px;
	border-radius: 8px;
	margin: 16px 0;
	font-size: 14px;
}

.dc-field-error {
	color: #A4222B;
	font-size: 12px;
	margin-top: 4px;
}

.dc-question.dc-invalid {
	border-color: #A4222B;
}

.dc-submit {
	display: block;
	width: 100%;
	padding: 18px;
	font-size: 17px;
	font-weight: 700;
	color: var(--dc-blanco);
	background: var(--dc-magenta);
	border: none;
	border-radius: 10px;
	cursor: pointer;
	margin: 24px 0 40px 0;
	transition: opacity 0.15s;
}

.dc-submit:hover {
	opacity: 0.92;
}

.dc-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.dc-confirmation {
	text-align: center;
	background: var(--dc-verde-petroleo);
	color: var(--dc-blanco);
	padding: 40px 20px;
	border-radius: 10px;
}

.dc-confirmation h2 {
	color: var(--dc-turquesa);
}

/* ---- Tablet y escritorio ---- */
@media (min-width: 600px) {
	.dc-diagnostic {
		padding: 32px;
	}
	.dc-likert-option {
		flex: 1 1 18%;
	}
	.dc-opciones {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.dc-radio-option,
	.dc-checkbox-option {
		flex: 1 1 45%;
	}
}

@media (min-width: 900px) {
	.dc-titulo {
		font-size: 26px;
	}
	.dc-submit {
		width: auto;
		padding: 16px 48px;
	}
}
