/* Leo Lila — web pública (portada y política de privacidad). Colores del DESIGN_SYSTEM.md. */
@font-face {
	font-family: "Nunito LeoLila";
	src: url("fonts/NunitoLeoLila-Regular.ttf") format("truetype");
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: "Nunito LeoLila";
	src: url("fonts/NunitoLeoLila-ExtraBold.ttf") format("truetype");
	font-weight: 800;
	font-display: swap;
}

:root {
	color-scheme: light;
	--lilac: #C084FC;
	--cream: #FFF8E7;
	--purple: #7C3AED;
	--green: #7AC943;
	--yellow: #FCD34D;
	--sky: #7DD3FC;
	--ink: #38215C;
	--ink-soft: #5B4A78;
	--card: #FFFFFF;
	--line: #EADFC8;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: "Nunito LeoLila", "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 18px;
	line-height: 1.6;
}

a { color: var(--purple); font-weight: 800; }
a:focus-visible { outline: 3px solid var(--lilac); outline-offset: 3px; border-radius: 6px; }

.wrap { max-width: 760px; margin: 0 auto; padding: 0 16px; }

/* Cabecera */
.top {
	background: linear-gradient(180deg, var(--sky) 0%, #BDE9FD 100%);
	padding: 20px 0;
}
.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); }
.brand img { width: 48px; height: 48px; border-radius: 12px; box-shadow: 0 2px 8px rgba(56, 33, 92, .18); }
.brand span { font-weight: 800; font-size: 22px; }
.top nav a { text-decoration: none; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .7); color: var(--ink); }

/* Portada */
.hero { background: linear-gradient(180deg, #BDE9FD 0%, var(--cream) 100%); padding: 32px 0 48px; text-align: center; }
.hero .logo { width: min(420px, 86%); height: auto; }
.hero p.lead { font-size: 22px; max-width: 560px; margin: 16px auto 0; }
.hero .lila { width: min(220px, 50%); height: auto; margin-top: 16px; }
.badge {
	display: inline-block;
	margin-top: 24px;
	padding: 12px 24px;
	border-radius: 999px;
	background: var(--purple);
	color: #FFFFFF;
	font-weight: 800;
}

.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin: 32px 0; }
.card {
	background: var(--card);
	border: 2px solid var(--line);
	border-radius: 20px;
	padding: 20px;
}
.card h3 { margin: 0 0 6px; font-size: 20px; }
.card p { margin: 0; color: var(--ink-soft); }
.dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }

/* Texto legal */
.doc { padding-top: 32px; padding-bottom: 48px; }
.doc h1 { font-size: 34px; line-height: 1.2; margin: 0 0 4px; }
.doc .date { color: var(--ink-soft); margin: 0 0 24px; }
.doc h2 { font-size: 23px; margin: 32px 0 8px; }
.doc ul { padding-left: 22px; }
.doc li { margin: 6px 0; }
.summary {
	background: var(--card);
	border: 2px solid var(--line);
	border-left: 8px solid var(--green);
	border-radius: 16px;
	padding: 16px 20px;
}
.summary ul { margin: 8px 0 0; }

footer { border-top: 2px solid var(--line); padding: 24px 0 32px; color: var(--ink-soft); font-size: 16px; }
footer .wrap { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }

@media (max-width: 480px) {
	body { font-size: 17px; }
	.brand span { font-size: 19px; }
	.doc h1 { font-size: 28px; }
	.hero p.lead { font-size: 19px; }
}
