@charset "UTF-8";
/* TFLC · Páginas legales (aviso legal, privacidad, cookies, condiciones).
   Se carga tras landing.css: reutiliza sus variables, cabecera y pie. */

/* Cabecera y menú genéricos del layout core: la página trae los de la landing */
#header, #menu { display: none; }

/* ---------- Cabecera de página ---------- */
.lc-legal-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding-bottom: 72px; }
.lc-legal-hero__title {
	max-width: 880px;
	margin: 0;
	font-family: var(--lc-serif);
	font-weight: 400;
	font-size: 56px;
	line-height: 1.1;
	letter-spacing: -.01em;
	color: var(--lc-blanco);
}

/* ---------- Documento ---------- */
.lc-legal-doc { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; gap: 80px; }

.lc-legal-doc__nav { position: sticky; top: calc(var(--lc-header-h) + 32px); }
.lc-legal-doc__nav ul { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.lc .lc-legal-doc__nav a {
	display: block;
	padding: 10px 0 10px 16px;
	border-left: 2px solid rgba(119, 37, 47, .2);
	font-size: 15px;
	line-height: 1.4;
	color: var(--lc-oscuro);
	text-decoration: none;
	transition: border-color .2s, color .2s;
}
.lc .lc-legal-doc__nav a:hover { border-color: var(--lc-coral); color: var(--lc-granate); }
.lc .lc-legal-doc__nav a.is-active { border-color: var(--lc-granate); font-weight: 600; color: var(--lc-granate); }

.lc-legal-doc__body { max-width: 760px; font-size: 17px; line-height: 1.7; }
.lc-legal-doc__body > * + * { margin-top: 16px; }
.lc-legal-doc__body > :first-child { margin-top: 0; }
.lc-legal-doc__body h2 {
	margin: 48px 0 0;
	font-family: var(--lc-serif);
	font-weight: 400;
	font-size: 28px;
	line-height: 1.25;
	color: var(--lc-granate);
}
.lc-legal-doc__body h3 { margin: 28px 0 0; font-family: var(--lc-serif); font-weight: 600; font-size: 20px; line-height: 1.3; }
.lc-legal-doc__body h2 + *, .lc-legal-doc__body h3 + * { margin-top: 12px; }
.lc-legal-doc__body p { margin-bottom: 0; opacity: .9; }
.lc-legal-doc__body strong { font-weight: 600; }
.lc-legal-doc__body ul, .lc-legal-doc__body ol { display: flex; flex-direction: column; gap: 8px; margin-bottom: 0; }
.lc-legal-doc__body ul { padding-left: 0; list-style: none; }
.lc-legal-doc__body ul li { position: relative; padding-left: 24px; }
.lc-legal-doc__body ul li::before {
	content: '';
	position: absolute;
	top: .7em;
	left: 4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--lc-coral);
}
.lc-legal-doc__body ol { padding-left: 22px; list-style: decimal; }
.lc .lc-legal-doc__body a { color: var(--lc-granate); text-decoration: underline; word-break: break-word; }

/* Tablas (p. ej. listado de cookies) */
.lc-legal-table { overflow-x: auto; border-radius: 12px; background: var(--lc-blanco); }
.lc-legal-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.lc-legal-table th, .lc-legal-table td { padding: 12px 16px; border-bottom: 1px solid rgba(41, 37, 35, .1); text-align: left; vertical-align: top; }
.lc-legal-table th { font-weight: 600; color: var(--lc-granate); }
.lc-legal-table tr:last-child td { border-bottom: 0; }

/* ---------- Páginas de error (Element/landing/error.ctp) ---------- */
/* El layout error del core envuelve el contenido en .py-5 y pinta su propia cabecera */
.header_error { display: none; }
#main-wrapper > .py-5 { padding: 0 !important; }
.lc-error { position: relative; background: var(--lc-blanco); overflow: hidden; justify-content: center; min-height: calc(100vh - var(--lc-header-h)); }
.lc-error > * { position: relative; }
.lc-error .lc-error__code {
	position: absolute;
	right: var(--lc-gutter);
	bottom: -.18em;
	font-family: var(--lc-serif);
	font-size: clamp(160px, 28vw, 420px);
	line-height: 1;
	color: var(--lc-granate);
	opacity: .06;
	pointer-events: none;
	user-select: none;
}
.lc-error__text { max-width: 560px; margin: 0; font-size: 18px; line-height: 1.6; color: var(--lc-oscuro); }
.lc-error .lc-legal-hero__title { color: var(--lc-granate); }
.lc-error__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 991px) {
	.lc-legal-hero { padding-bottom: 48px; }
	.lc-legal-hero__title { font-size: 36px; }
	.lc-error { min-height: 70vh; }
	.lc-error__text { font-size: 16px; }
	.lc-legal-doc { grid-template-columns: 1fr; gap: 32px; }
	.lc-legal-doc__nav { position: static; }
	.lc-legal-doc__nav ul { flex-direction: row; flex-wrap: wrap; gap: 8px; }
	.lc .lc-legal-doc__nav a { padding: 8px 14px; border: 1.5px solid rgba(119, 37, 47, .25); border-radius: 999px; font-size: 14px; }
	.lc .lc-legal-doc__nav a.is-active { border-color: var(--lc-granate); background: var(--lc-granate); color: var(--lc-blanco); }
	.lc-legal-doc__body { font-size: 16px; }
	.lc-legal-doc__body h2 { margin-top: 36px; font-size: 24px; }
}
