.com-ssiruagfa-intake { max-width: 70rem; margin: 1.5rem auto 4rem; padding-inline: 1rem; color: #17242e; }
.com-ssiruagfa-intake .alert { padding: clamp(1.25rem, 3vw, 2rem); }
.ruagfa-header { max-width: 58rem; }
.ruagfa-agency { color: #20275d; font-weight: 700; }
.ruagfa-header h1, .ruagfa-step h2 { color: #20275d; font-size: clamp(24px, 3vw, 32px); font-weight: 700; margin-bottom: 25px; }
.ruagfa-progress ol { display: grid; grid-template-columns: repeat(5, 1fr); gap: .4rem; padding: 0; margin: 0 0 2rem; list-style: none; counter-reset: steps; }
.ruagfa-progress li { padding: .8rem .6rem; border-top: .3rem solid #c7d4da; font-size: .88rem; font-weight: 600; color: #55646d; }
.ruagfa-progress li[aria-current="step"] { border-color: #889547; color: #20275d; }
.ruagfa-progress li.is-complete { border-color: #2f7d5d; color: #285c48; }
.ruagfa-step { padding: clamp(1.25rem, 3vw, 2.25rem); background: #fff; border: 1px solid #dbe4e8; border-radius: .65rem; box-shadow: 0 .25rem 1rem rgba(15, 54, 72, .06); }
.ruagfa-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem 1.4rem; }
.ruagfa-wide { grid-column: 1 / -1; }
.ruagfa-field label, .ruagfa-grid > label { display: block; font-weight: 600; }
.ruagfa-field textarea, .ruagfa-grid > label textarea, .ruagfa-grid > label input, .ruagfa-grid > label select { margin-top: .35rem; font-weight: 400; }
.com-ssiruagfa-intake .form-control, .com-ssiruagfa-intake .form-select { width: 100%; max-width: 100%; }
.ruagfa-subsection { padding: 1.25rem 0; border-bottom: 1px solid #e3eaed; }
.ruagfa-subsection:last-child { border-bottom: 0; }
.ruagfa-repeat-item { margin: 1rem 0; padding: 1.1rem; background: #f5f8f9; border: 1px solid #d7e1e5; border-radius: .5rem; }
.ruagfa-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.25rem; }
.ruagfa-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; }
.ruagfa-actions [data-next], .ruagfa-actions [data-submit] { margin-inline-start: auto; }
.ruagfa-actions [data-next][aria-disabled="true"] { opacity: .65; cursor: not-allowed; }
.ruagfa-actions [data-next][aria-disabled="true"]:focus-visible { opacity: .82; }
.ruagfa-step-status { margin: 1.25rem 0 0; padding: 1rem 1.25rem !important; }
.ruagfa-step-status ul { columns: 2; column-gap: 2rem; }
.ruagfa-readonly { background: #eef3f5; }
.ruagfa-info { padding: 1rem 1.15rem; background: #eef6fa; border-left: .25rem solid #21799c; }
.ruagfa-copy-address { margin-bottom: 1rem; font-weight: 600; }
.com-ssiruagfa-intake fieldset.is-invalid { padding: .75rem; border: 2px solid var(--bs-danger, #b02a37); border-radius: .35rem; }
.com-ssiruagfa-intake [data-repeater-required].is-invalid { outline: 2px solid var(--bs-danger, #b02a37); outline-offset: .4rem; }
.ruagfa-declaration { padding: 1.5rem; background: #f4f8fa; border-left: .3rem solid #21799c; }
/* H (RUAGFA orden de cierre v0.3.0.30_QA): cambio exclusivamente visual/accesibilidad del
   checkbox de Declaración Jurada. No se toca site/tmpl/intake/default.php (texto, obligatoriedad,
   validación y lógica de "Confirmar y enviar" quedan intactos): mayor tamaño del checkbox, más
   separación respecto del borde interno del contenedor (padding-inline mayor + gap mayor),
   alineación vertical correcta con el texto (align-items:flex-start + margen superior del
   checkbox, en vez de "center", para que no quede descentrado cuando el texto ocupa más de una
   línea en pantallas angostas), foco visible reforzado y buen comportamiento móvil (ver el bloque
   @media (max-width: 768px) más abajo). El click sobre la etiqueta sigue funcionando igual: no se
   modificó el marcado, sólo el tamaño/posición visual de sus elementos. */
.ruagfa-accept { display: flex; align-items: flex-start; gap: 1rem; margin-top: 1.5rem; padding: 1.15rem 1.5rem; background: #fff; border: 1px solid #bdd1da; border-radius: .45rem; font-weight: 600; cursor: pointer; }
.ruagfa-accept .form-check-input { float: none; flex: 0 0 1.5rem; width: 1.5rem; height: 1.5rem; margin: .2rem 0 0; cursor: pointer; }
.ruagfa-accept .form-check-label { cursor: pointer; line-height: 1.5; }
.ruagfa-accept:focus-within { outline: 2px solid rgba(13, 110, 253, .4); outline-offset: 2px; }
.ruagfa-accept .form-check-input:focus-visible { outline: 2px solid #0d6efd; outline-offset: 2px; }
.ruagfa-request-number { padding: 1rem; background: #eef5f7; border-radius: .4rem; font: 700 1.25rem/1.4 ui-monospace, monospace; overflow-wrap: anywhere; }
.ruagfa-submit-wait { position: fixed; inset: 0; z-index: 1080; display: grid; place-items: center; padding: 1.5rem; background: rgba(15, 36, 46, .58); backdrop-filter: blur(2px); }
.ruagfa-submit-wait[hidden] { display: none; }
.ruagfa-submit-wait-card { display: flex; align-items: center; gap: 1.25rem; width: min(100%, 36rem); padding: 1.5rem; background: #fff; border-radius: .65rem; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .25); }
.ruagfa-submit-wait-card .spinner-border { flex: 0 0 auto; width: 2.5rem; height: 2.5rem; }
@media (max-width: 768px) {
	main.com-ssiruagfa-intake.container { padding: 0; }
	article.ruagfa-subsection.ruagfa-applicant { padding-top: .5rem; }
	/* D (RUAGFA orden Microcorrección v0.3.0.35 v1.4): se retiran las reglas móviles que fijaban
	   .ruagfa-header h1 { font-size: 2rem; } y .ruagfa-step h2.h3 { font-size: 1.5rem; }, porque
	   con igual especificidad y posición posterior en el CSS anulaban el clamp(24px, 3vw, 32px)
	   solicitado para h1/h2 en la regla base (ver más arriba). El clamp ya es responsive por sí
	   mismo (24px como piso en pantallas angostas), por lo que no se necesita una regla móvil
	   adicional. Los tamaños móviles de h3.h4, h4.h5 y legend no se tocan. */
	article.ruagfa-subsection h3.h4 { font-size: 1.4rem; }
	article.ruagfa-subsection h4.h5 { font-size: 1.3rem; }
	legend.form-label { font-size: 1.2rem; }
	.ruagfa-grid, .ruagfa-check-grid { grid-template-columns: 1fr; }
	.ruagfa-progress li { font-size: 0; padding-inline: .15rem; }
	.ruagfa-progress li::before { counter-increment: steps; content: counter(steps); font-size: .95rem; }
	.ruagfa-step-status ul { columns: 1; }
	.ruagfa-actions { position: sticky; bottom: 0; padding: .75rem 0; background: rgba(255,255,255,.96); }
	.ruagfa-submit-wait-card { align-items: flex-start; }
	/* H: en móvil se reduce levemente el padding/gap del checkbox de Declaración Jurada para no
	   angostar demasiado el texto, manteniendo un tamaño de checkbox y de área táctil de la
	   etiqueta completa adecuados (toda la franja "ruagfa-accept" es clicable, no sólo el input). */
	.ruagfa-accept { padding: 1rem 1.1rem; gap: .85rem; }
	.ruagfa-accept .form-check-input { flex-basis: 1.4rem; width: 1.4rem; height: 1.4rem; }
}
.ruagfa-recovery-reminder {
	flex: 0 0 auto;
}

.ruagfa-recovery-reminder[open] {
	flex-basis: 100%;
}

.ruagfa-recovery-reminder > summary {
	cursor: pointer;
	color: var(--bs-link-color);
	text-decoration: underline;
}

.ruagfa-recovery-reminder > summary::marker {
	content: '';
}

.ruagfa-recovery-reminder-panel {
	max-width: 549px;
}

/* P0 sesión (v0.3.0.28_QA) · CAPA 3: modal bloqueante de verificación/reconciliación de sesión. */
.ruagfa-session-modal {
	max-width: min(100%, 34rem);
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: .65rem;
	background: transparent;
}
.ruagfa-session-modal::backdrop {
	background: rgba(15, 36, 46, .62);
}
.ruagfa-session-modal-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .75rem;
	padding: 1.75rem;
	background: #fff;
	border-radius: .65rem;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, .3);
}
.ruagfa-session-modal-card .spinner-border {
	width: 2rem;
	height: 2rem;
}
.ruagfa-session-modal-card [data-modal-spinner][hidden] {
	display: none;
}
.ruagfa-session-modal-actions {
	display: flex;
	gap: .75rem;
	margin-top: .25rem;
}
.ruagfa-session-modal-actions[hidden] {
	display: none;
}
