/* =============================================================================
   KRAK STUDIO — Páginas legales (page.php).
   Sólo tokens de §1. Se encola fuera de la home (functions.php).
   ============================================================================= */

/* ── Cabecera ── */
.k-legal__hero {
	position: relative;
	padding-block: calc(5.25rem + clamp(3rem, 7vw, 6rem)) clamp(2.75rem, 5vw, 4.5rem);
	background: var(--st-ink);
	border-bottom: 1px solid rgb(255 255 255 / .08);
	overflow: hidden;
}
.k-legal__hero::after {
	content: '';
	position: absolute;
	right: -12rem;
	top: -14rem;
	width: 38rem;
	height: 38rem;
	border-radius: var(--r-full);
	background: radial-gradient(closest-side, rgb(15 98 196 / .28), transparent);
	pointer-events: none;
}
.k-legal__heroInner { position: relative; z-index: 1; display: grid; gap: 1.25rem; }
.k-legal__title {
	font-size: clamp(2.125rem, 1.35rem + 3.4vw, 4rem);
	line-height: 1.03;
	letter-spacing: -0.035em;
	color: var(--st-accent-light);
	max-width: 16ch;
}
.k-legal__intro { display: grid; gap: 1.25rem; max-width: 60ch; margin-top: .35rem; }
.k-legal__intro p {
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
	line-height: 1.62;
	color: rgb(255 255 255 / .74);
}
.k-legal__intro .k-legal-meta {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .45rem .9rem;
	border: 1px solid rgb(255 255 255 / .18);
	border-radius: var(--r-full);
	background: rgb(255 255 255 / .06);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .02em;
	color: rgb(255 255 255 / .72);
}
.k-legal__intro .k-legal-meta::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: var(--r-full);
	background: var(--st-accent-light);
}

/* Header sobre el hero oscuro: texto claro mientras no esté "stuck". */
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-logo,
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-nav a,
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-header__mail { color: var(--white); }
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-lockup__word > span { color: rgb(255 255 255 / .7); }
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-nav a::after { background: var(--st-accent-light); }
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-nav a:hover,
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-header__mail:hover { color: var(--st-accent-light); }
body:has(.k-legal__hero) .k-header:not(.is-stuck) .k-burger {
	background: rgb(255 255 255 / .08);
	border-color: rgb(255 255 255 / .4);
	color: var(--white);
}

/* ── 404 (404.php): solo la cabecera, a pantalla casi completa ── */
.k-404 .k-legal__hero {
	min-height: min(100svh, 52rem);
	display: flex;
	align-items: center;
}
.k-404 .k-legal__heroInner { width: 100%; }
.k-404__code {
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .18em;
	color: rgb(255 255 255 / .55);
}
.k-404__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: .75rem;
}

/* ── Cuerpo + índice ── */
.k-legal__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: start;
	padding-block: clamp(3rem, 6vw, 5.5rem) var(--section-y);
}
.k-legal__toc { display: none; }
@media (min-width: 980px) {
	.k-legal__grid { grid-template-columns: minmax(0, 0.62fr) minmax(0, 1.38fr); }
	.k-legal__toc { display: block; position: sticky; top: 7rem; }
}
.k-legal__tocTitle {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--st-text-faint);
}
.k-legal__toc ol {
	display: grid;
	margin-top: 1.1rem;
	border-left: 1px solid var(--st-borde);
}
.k-legal__toc a {
	display: flex;
	align-items: baseline;
	gap: .8rem;
	margin-left: -1px;
	padding: .5rem 0 .5rem 1.1rem;
	border-left: 1px solid transparent;
	font-size: .9375rem;
	line-height: 1.4;
	color: var(--st-text-muted);
	transition: color .3s var(--ease-out-soft), border-color .3s var(--ease-out-soft);
}
.k-legal__toc a span {
	flex: none;
	font-size: .75rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	color: var(--st-text-faint);
	transition: color .3s var(--ease-out-soft);
}
.k-legal__toc a:hover { color: var(--st-accent); border-left-color: var(--st-accent); }
.k-legal__toc a:hover span { color: var(--st-accent); }

.k-legal__body { max-width: 68ch; }
.k-legal__body > * + * { margin-top: 1.1rem; }
.k-legal__body h2 {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin-top: 2.75rem;
	padding-top: 2.75rem;
	border-top: 1px solid var(--st-borde);
	font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem);
	line-height: 1.15;
	letter-spacing: -0.025em;
	color: var(--st-text);
	scroll-margin-top: 6rem;
}
.k-legal__body h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.k-legal__num {
	flex: none;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .12em;
	font-variant-numeric: tabular-nums;
	color: var(--st-accent);
	transform: translateY(-.25em);
}
.k-legal__body :where(p, li) {
	font-size: 1.0625rem;
	line-height: 1.72;
	color: var(--st-text-muted);
}
.k-legal__body ul { display: grid; gap: .6rem; }
.k-legal__body li { position: relative; padding-left: 1.6rem; }
.k-legal__body li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .86em;
	width: .8rem;
	height: 1px;
	background: var(--st-accent);
}
.k-legal__body strong { font-weight: 600; color: var(--st-text); }
.k-legal__body a {
	color: var(--st-accent);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--st-accent-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
	transition: text-decoration-color .3s var(--ease-out-soft);
}
.k-legal__body a:hover { text-decoration-color: currentColor; }