/*
 * NODO · tokens de diseño.
 * Fuente: sistema de diseño del prototipo (referencia-diseño/Portada NODO rediseñada/_ds/…/tokens/).
 * Cambios respecto del original:
 *   - Familias tipográficas alojadas en el tema (sin Google Fonts). JetBrains Mono no se carga: --font-mono usa la del sistema.
 *   - --border-input: borde de campos con contraste ≥ 3:1 sobre blanco (WCAG 1.4.11), usando un gris de la paleta.
 */
:root {
	/* Marca: valores exactos del logo */
	--nodo-rosa: #F35584; --nodo-coral: #FC956B; --nodo-indigo: #382B65; --nodo-tinta: #30264E; --nodo-ciruela: #55465A;

	/* Rosa */
	--rosa-50: #FFF0F4; --rosa-100: #FFDCE6; --rosa-200: #FDB8CB; --rosa-300: #FA8DAB; --rosa-400: #F66E96;
	--rosa-500: #F35584; --rosa-600: #D1305F; --rosa-700: #AE2450; --rosa-800: #871C3F; --rosa-900: #5E1430;
	/* Coral */
	--coral-50: #FFF4EE; --coral-100: #FFE5D8; --coral-200: #FECBB3; --coral-300: #FDB08E; --coral-400: #FCA17C;
	--coral-500: #FC956B; --coral-600: #E9764A; --coral-700: #C45A31; --coral-800: #9A4424; --coral-900: #6B2F19;
	/* Índigo */
	--indigo-50: #F3F1F9; --indigo-100: #E6E2F2; --indigo-200: #CBC4E4; --indigo-300: #A79CCF; --indigo-400: #7E70B3;
	--indigo-500: #5B4C92; --indigo-600: #483A7B; --indigo-700: #382B65; --indigo-800: #30264E; --indigo-900: #1E1733;
	/* Neutros cálidos */
	--neutral-0: #FFFFFF; --neutral-25: #FFFCFA; --neutral-50: #F7F4F2; --neutral-100: #EFEBE9; --neutral-200: #E2DCDC;
	--neutral-300: #CBC3C6; --neutral-400: #A89DA5; --neutral-500: #85798A; --neutral-600: #6A5D6E; --neutral-700: #55465A;
	--neutral-800: #3D3242; --neutral-900: #251D29;
	/* Lavanda */
	--lavanda-50: #F5F3F7; --lavanda-100: #ECE8F1;
	/* Semánticos: solo estados de formularios (error/éxito). No son paleta de marca. */
	--success-50: #E4F6EE; --success-500: #1F9D6B; --success-700: #146B49;
	--warning-50: #FFF4DA; --warning-500: #F2B233; --warning-700: #8A5A00;
	--error-50: #FDEBE8; --error-500: #CC3B2F; --error-700: #9E2A20;
	--info-50: #E8EFFC; --info-500: #3F6FD8; --info-700: #2A4FA3;

	/* Alias semánticos */
	--bg-page: var(--neutral-25);
	--surface-card: var(--neutral-0);
	--surface-sunken: var(--lavanda-50);
	--surface-muted: var(--lavanda-100);
	--surface-inverse: var(--nodo-tinta);
	--surface-brand-soft: var(--rosa-50);
	--surface-coral-soft: var(--coral-50);
	--surface-indigo-soft: var(--indigo-50);
	--text-strong: var(--nodo-tinta);
	--text-body: var(--neutral-800);
	--text-muted: var(--nodo-ciruela);
	--text-subtle: var(--neutral-600);
	--text-disabled: var(--neutral-400);
	--text-on-accent: #FFFFFF;
	--text-on-inverse: #FFFFFF;
	--text-link: var(--rosa-600);
	--text-link-hover: var(--rosa-700);
	--border-subtle: var(--neutral-100);
	--border-default: var(--neutral-200);
	--border-strong: var(--neutral-300);
	--border-input: var(--neutral-500); /* 4.12:1 sobre blanco */
	--border-focus: var(--rosa-500);
	--action-primary: var(--rosa-600);
	--action-primary-hover: var(--rosa-700);
	--action-primary-press: var(--rosa-800);
	--action-secondary: var(--nodo-tinta);
	--action-secondary-hover: var(--indigo-600);
	--action-secondary-press: var(--indigo-900);
	--action-tint-hover: var(--indigo-50);
	--action-tint-press: var(--indigo-100);
	--focus-ring: 0 0 0 3px var(--neutral-0), 0 0 0 5px var(--rosa-500);
	--gradient-nodo: linear-gradient(90deg, var(--nodo-rosa) 0%, var(--nodo-coral) 100%);

	/* Tipografía */
	--font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;
	--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-mono: ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;
	--fw-regular: 400; --fw-medium: 500; --fw-semibold: 600; --fw-bold: 700; --fw-black: 800;
	/* Escala: móvil primero; se amplía en ≥ 720px */
	--text-display: 44px; --text-h1: 36px; --text-h2: 28px; --text-h3: 22px; --text-h4: 19px; --text-lead: 17px;
	--fs-body: 16px; --fs-body-sm: 14px; --fs-caption: 12px; --fs-overline: 12px;
	--lh-tight: 1.04; --lh-heading: 1.12; --lh-snug: 1.3; --lh-body: 1.55;
	--ls-display: -0.03em; --ls-heading: -0.02em; --ls-overline: 0.1em;

	/* Espaciado (base 4) */
	--space-1: 2px; --space-2: 4px; --space-3: 8px; --space-4: 12px; --space-5: 16px; --space-6: 20px; --space-7: 24px;
	--space-8: 32px; --space-9: 40px; --space-10: 48px; --space-11: 64px; --space-12: 80px; --space-13: 96px; --space-14: 128px;
	--radius-xs: 6px; --radius-sm: 10px; --radius-md: 14px; --radius-lg: 20px; --radius-xl: 28px; --radius-pill: 999px;
	--container-max: 1200px; --page-margin: 20px; --gutter: 16px; --section-gap: var(--space-11);
	--control-h-sm: 36px; --control-h-md: 44px; --control-h-lg: 52px; --control-h-field: 48px;
	--header-h: 64px;

	/* Efectos */
	--shadow-xs: 0 1px 2px rgb(48 38 78 / .06);
	--shadow-sm: 0 1px 2px rgb(48 38 78 / .06), 0 2px 6px rgb(48 38 78 / .06);
	--shadow-md: 0 2px 4px rgb(48 38 78 / .05), 0 8px 20px rgb(48 38 78 / .08);
	--shadow-lg: 0 4px 8px rgb(48 38 78 / .06), 0 18px 40px rgb(48 38 78 / .12);
	--shadow-xl: 0 10px 24px rgb(48 38 78 / .10), 0 32px 72px rgb(48 38 78 / .18);
	--shadow-rosa: 0 6px 18px rgb(209 48 95 / .28);
	--ease-out: cubic-bezier(.22, 1, .36, 1); --ease-in-out: cubic-bezier(.65, 0, .35, 1); --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
	--dur-fast: 120ms; --dur-base: 200ms; --dur-slow: 320ms;
	--scrim: rgb(30 23 51 / .52); --blur-glass: saturate(1.4) blur(14px);
	--z-sticky: 10; --z-dropdown: 20; --z-overlay: 40;
}

@media (min-width: 720px) {
	:root {
		--text-display: 72px; --text-h1: 56px; --text-h2: 40px; --text-h3: 28px; --text-h4: 22px; --text-lead: 18px;
		--page-margin: 40px; --gutter: 24px; --section-gap: var(--space-13);
	}
}

@media (min-width: 960px) {
	:root { --header-h: 80px; }
}
