/* Panichini Convenios — estilos del módulo.
   Se apoya en los tokens del tema panichini-hub y declara alternativas por si
   la hoja del tema no estuviera cargada. */

:root {
	--pan-conv-marfil: var(--pan-marfil, #F7F2EA);
	--pan-conv-blanco: var(--pan-blanco, #FDFBF7);
	--pan-conv-carbon: var(--pan-carbon, #2B2320);
	--pan-conv-texto: var(--pan-texto, #4A3F38);
	--pan-conv-oro: var(--pan-oro, #B99657);
	--pan-conv-alerta: #B3261E;
	--pan-conv-ok: #1A7F37;
}

/* ---------- Hero corto para páginas de trámite ----------
   Doble clase para ganarle en especificidad a .hero del tema, que fija
   min-height a pantalla completa: en una página de formulario sobra. */
.hero.hero--corto { min-height: 0; height: auto; padding: 0; }
.hero.hero--corto .hero-contenido { padding: 128px 24px 52px; }
.hero.hero--corto h1 { margin-bottom: 0; }

/* ---------- Formulario ---------- */
.pan-form { margin-top: 8px; }

.pan-form .titulo-paso {
	margin: 36px 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(185, 150, 87, .28);
}
.pan-form .titulo-paso:first-of-type { margin-top: 0; }

.pan-form .opcional {
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: rgba(74, 63, 56, .6);
}

.pan-form .sub-paso {
	display: block;
	margin-top: 5px;
	font-size: .8rem;
	line-height: 1.45;
	color: rgba(74, 63, 56, .72);
}

/* Casillas de consentimiento: caja propia, para que no se confundan con el resto. */
.campo--check {
	margin: 0 0 14px;
	padding: 16px 18px;
	background: var(--pan-conv-blanco);
	border: 1px solid rgba(185, 150, 87, .3);
	border-radius: 3px;
}
/* El tema pone las etiquetas de .campo en versales. Para una frase legal larga
   eso es ilegible, así que se revierte con especificidad suficiente. */
.pan-form .campo--check label,
.pan-form .campo--check label span,
.pan-form .campo--check label a {
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	font-size: .92rem;
}
.campo--check label {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	cursor: pointer;
}
.campo--check input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--pan-conv-oro);
}
.campo--check span { font-size: .92rem; line-height: 1.55; }
.campo--check a { color: var(--pan-conv-oro); }

/* Trampa para robots: fuera de la vista, pero sin display:none, que algunos
   rellenadores automáticos detectan y saltan. */
.pan-trampa {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---------- Mensajes ---------- */
.pan-error {
	margin: 0 0 26px;
	padding: 14px 18px;
	border-left: 3px solid var(--pan-conv-alerta);
	background: rgba(179, 38, 30, .06);
	color: var(--pan-conv-alerta);
	font-size: .94rem;
}

.pan-resultado { text-align: center; padding: 40px 32px; }
.pan-resultado h2 { margin-bottom: 14px; }
.pan-resultado .grupo-btn { margin-top: 28px; justify-content: center; }

.pan-codigo {
	margin: 26px auto 6px;
	padding: 18px 24px;
	display: inline-block;
	border: 1px dashed rgba(185, 150, 87, .55);
	border-radius: 3px;
	background: var(--pan-conv-marfil);
}
.pan-codigo span {
	display: block;
	font-size: .68rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(74, 63, 56, .7);
	margin-bottom: 6px;
}
.pan-codigo strong {
	font-size: 1.5rem;
	letter-spacing: .1em;
	color: var(--pan-conv-carbon);
}

/* ---------- Documentos legales ---------- */
.pan-doc {
	margin: 0 0 56px;
	padding: 34px 36px;
	background: var(--pan-conv-blanco);
	border: 1px solid rgba(185, 150, 87, .25);
}
.pan-legal h2 { margin: 0 0 6px; }
.pan-legal h3 {
	margin: 40px 0 18px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(185, 150, 87, .28);
}
.pan-legal h4 { margin: 26px 0 8px; font-size: 1.02rem; }
.pan-legal p, .pan-legal li { font-size: .93rem; line-height: 1.68; }
.pan-legal ul { margin: 0 0 14px 20px; }
.pan-legal li { margin-bottom: 5px; }
.pan-legal-sub {
	margin-bottom: 26px;
	font-size: .84rem !important;
	color: rgba(74, 63, 56, .7);
}
.pan-legal hr {
	margin: 40px 0;
	border: 0;
	border-top: 1px solid rgba(185, 150, 87, .3);
}

.pan-legal-datos {
	width: 100%;
	margin: 0 0 30px;
	border-collapse: collapse;
	font-size: .88rem;
}
.pan-legal-datos th,
.pan-legal-datos td {
	padding: 9px 12px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid rgba(185, 150, 87, .2);
}
.pan-legal-datos th {
	width: 190px;
	font-weight: 600;
	color: var(--pan-conv-carbon);
}

.pan-doc-huella {
	margin: 28px 0 0;
	padding-top: 14px;
	border-top: 1px solid rgba(185, 150, 87, .25);
	font-size: .76rem !important;
	color: rgba(74, 63, 56, .65);
}
.pan-doc-huella code { font-size: .74rem; }

/* Las tablas anchas se desplazan dentro de su caja, no arrastran la página. */
.pan-doc { overflow-x: auto; }

@media (max-width: 720px) {
	.pan-doc { padding: 24px 20px; }
	.pan-legal-datos th { width: auto; display: block; padding-bottom: 2px; border-bottom: 0; }
	.pan-legal-datos td { display: block; padding-top: 0; }
}
