/**
 * Estilos de las páginas legales.
 *
 * Plantilla compartida: aviso-legal, política de cookies, política de
 * privacidad y condiciones de venta. Todo va prefijado .sv-legal- para
 * evitar conflictos.
 *
 * El diseño es deliberadamente sobrio: mucho aire, medida de línea cómoda,
 * jerarquía clara, sin adornos. Son documentos, no landings.
 */

/* ---------- CABECERA ---------- */

.sv-legal-cabecera {
	background: var(--sv-paper);
	padding-top: clamp(3rem, 6vw, 5rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
	border-bottom: 1px solid var(--sv-line);
}

.sv-legal-titulo {
	font-family: var(--sv-font-display);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 1rem 0;
	color: var(--sv-ink);
}

.sv-legal-fecha {
	font-size: 0.95rem;
	color: var(--sv-mute);
	margin: 0;
	font-style: italic;
}

/* ---------- ÍNDICE DE CONTENIDOS ---------- */

.sv-legal-indice {
	background: var(--sv-mist);
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
	border-bottom: 1px solid var(--sv-line);
}

.sv-legal-indice__titulo {
	font-family: var(--sv-font-display);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 1.5rem 0;
	color: var(--sv-ink);
}

.sv-legal-indice__lista {
	list-style: decimal;
	list-style-position: inside;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.sv-legal-indice__lista li {
	margin: 0;
	padding: 0 0 0 0.5rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--sv-ink);
}

.sv-legal-indice__lista a {
	color: var(--sv-brand-texto);
	text-decoration: none;
	transition: color 0.2s ease;
}

.sv-legal-indice__lista a:hover,
.sv-legal-indice__lista a:focus-visible {
	color: var(--sv-brand-dark);
	text-decoration: underline;
}

/* ---------- CUERPO: LA PROSA LEGAL ---------- */

.sv-legal-cuerpo {
	background: var(--sv-paper);
	padding-top: clamp(3rem, 6vw, 5rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.sv-legal-prosa {
	max-width: 70ch;
	line-height: 1.7;
	color: var(--sv-ink);
	font-family: var(--sv-font-sans);
	font-size: 1rem;
}

/* Párrafos: espaciado cómodo */
.sv-legal-prosa p {
	margin: 0 0 1.5rem 0;
}

.sv-legal-prosa p:last-child {
	margin-bottom: 0;
}

/* Encabezados h2: importantes, clara separación */
.sv-legal-prosa h2 {
	font-family: var(--sv-font-display);
	font-size: clamp(1.5rem, 3vw, 1.75rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 2rem 0 1rem 0;
	padding-top: 1.5rem;
	border-top: 2px solid var(--sv-mist);
	color: var(--sv-ink);
	scroll-margin-top: 5rem;
}

.sv-legal-prosa h2:first-child {
	margin-top: 0;
	border-top: none;
	padding-top: 0;
}

/* Encabezados h3: subsecciones, menos énfasis */
.sv-legal-prosa h3 {
	font-family: var(--sv-font-display);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 1.5rem 0 0.75rem 0;
	color: var(--sv-ink);
	scroll-margin-top: 5rem;
}

.sv-legal-prosa h4,
.sv-legal-prosa h5,
.sv-legal-prosa h6 {
	font-family: var(--sv-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
	margin: 1.25rem 0 0.625rem 0;
	color: var(--sv-ink);
}

/* Listas: legibles y claras */
.sv-legal-prosa ul,
.sv-legal-prosa ol {
	margin: 1rem 0 1.5rem 0;
	padding-left: 2rem;
}

.sv-legal-prosa ul li,
.sv-legal-prosa ol li {
	margin: 0.5rem 0;
	line-height: 1.6;
}

.sv-legal-prosa ul ul,
.sv-legal-prosa ol ol,
.sv-legal-prosa ul ol,
.sv-legal-prosa ol ul {
	margin: 0.75rem 0;
}

/* Bloques de código o citas */
.sv-legal-prosa blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.5rem;
	border-left: 4px solid var(--sv-brand);
	background: var(--sv-mist);
	color: var(--sv-ink-soft);
	font-style: italic;
}

.sv-legal-prosa code,
.sv-legal-prosa pre {
	background: var(--sv-mist);
	border-radius: 0.375rem;
	font-family: "Monaco", "Courier New", monospace;
	font-size: 0.9rem;
	color: var(--sv-ink);
}

.sv-legal-prosa code {
	padding: 0.2em 0.4em;
}

.sv-legal-prosa pre {
	padding: 1rem;
	overflow-x: auto;
	margin: 1.5rem 0;
	line-height: 1.5;
}

.sv-legal-prosa pre code {
	padding: 0;
	background: none;
}

/* Tablas: sin desborde horizontal */
.sv-legal-prosa table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.95rem;
}

.sv-legal-prosa table thead {
	background: var(--sv-mist);
	border-bottom: 2px solid var(--sv-line);
}

.sv-legal-prosa table th {
	padding: 0.75rem;
	text-align: left;
	font-weight: 700;
	color: var(--sv-ink);
}

.sv-legal-prosa table td {
	padding: 0.75rem;
	border-bottom: 1px solid var(--sv-line);
	color: var(--sv-ink);
}

.sv-legal-prosa table tbody tr:hover {
	background: var(--sv-mist);
}

/* Si la tabla es muy ancha, permite scroll interno */
.sv-legal-prosa-table-wrapper {
	overflow-x: auto;
	margin: 1.5rem 0;
	border-radius: 0.375rem;
	border: 1px solid var(--sv-line);
}

/* Enlaces dentro de la prosa */
.sv-legal-prosa a {
	color: var(--sv-brand-texto);
	text-decoration: none;
	transition: color 0.2s ease;
	border-bottom: 1px solid var(--sv-brand);
}

.sv-legal-prosa a:hover,
.sv-legal-prosa a:focus-visible {
	color: var(--sv-brand-dark);
	border-bottom-color: var(--sv-brand-dark);
}

/* Énfasis: cursiva y negrita */
.sv-legal-prosa em,
.sv-legal-prosa i {
	font-style: italic;
}

.sv-legal-prosa strong,
.sv-legal-prosa b {
	font-weight: 700;
	color: var(--sv-ink-soft);
}

/* Saltos de línea y separadores */
.sv-legal-prosa hr {
	border: none;
	height: 1px;
	background: var(--sv-line);
	margin: 2rem 0;
}

/* ---------- ENLACES A OTRAS PÁGINAS LEGALES ---------- */

.sv-legal-enlaces {
	background: var(--sv-paper-2);
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--sv-line);
	margin-top: clamp(2rem, 4vw, 3rem);
}

.sv-legal-enlaces__titulo {
	font-family: var(--sv-font-display);
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 1.5rem 0;
	color: var(--sv-ink);
}

.sv-legal-enlaces__lista {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 1rem;
}

.sv-legal-enlaces__lista li {
	margin: 0;
	padding: 0;
}

.sv-legal-enlaces__enlace {
	display: block;
	padding: 1rem;
	background: var(--sv-paper);
	border: 1px solid var(--sv-line);
	border-radius: 0.375rem;
	color: var(--sv-brand-texto);
	text-decoration: none;
	font-weight: 500;
	transition: all 0.2s ease;
}

.sv-legal-enlaces__enlace:hover,
.sv-legal-enlaces__enlace:focus-visible {
	background: var(--sv-mist);
	border-color: var(--sv-brand);
	color: var(--sv-brand-dark);
}

.sv-legal-enlaces__enlace--actual {
	background: var(--sv-brand-soft);
	border-color: var(--sv-brand);
	color: var(--sv-brand-dark);
	font-weight: 600;
	cursor: text;
	pointer-events: none;
}

/* ---------- RESPONSIVE ---------- */

@media (max-width: 48rem) {
	.sv-legal-titulo {
		font-size: clamp(1.5rem, 4vw, 2rem);
	}

	.sv-legal-indice__lista {
		list-style-position: outside;
		padding-left: 1.5rem;
	}

	.sv-legal-prosa h2 {
		font-size: clamp(1.25rem, 3vw, 1.5rem);
		margin-top: 1.5rem;
	}

	.sv-legal-enlaces__lista {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sv-legal-indice__lista a,
	.sv-legal-prosa a,
	.sv-legal-enlaces__enlace {
		transition: none;
	}
}
