/* AeroTickets — design tokens (single source of truth). */

:root {
	/* Brand */
	--brand-navy:      #14275B;
	--brand-navy-deep: #0B1633;
	--brand-blue:      #1F2BE0;
	--brand-blue-soft: #4F58F0;
	--brand-green:     #0F8B30;
	--brand-green-soft:#3BB85C;
	--brand-gradient:  linear-gradient(135deg, #1F2BE0 0%, #14275B 50%, #0F8B30 100%);
	--brand-gradient-soft: linear-gradient(135deg, rgba(31,43,224,0.08) 0%, rgba(15,139,48,0.08) 100%);

	/* Festival accents (warm — Teotihuacán / sol / fuego) */
	--festival-sun:    #F4A24C;
	--festival-fire:   #E0631A;
	--festival-clay:   #C44512;
	--festival-bone:   #F4ECDA;

	/* Surfaces */
	--canvas:        #FFFFFF;
	--canvas-soft:   #F4F6FB;
	--canvas-strong: #E5EAF5;
	--surface-dark:  var(--brand-navy);

	/* Ink (text) */
	--ink:           #0B1633;
	--ink-muted:     #4A5878;
	--ink-soft:      #7A86A4;
	--ink-on-dark:   #F4F6FB;
	--ink-on-dark-muted: rgba(244,246,251,0.72);

	/* Borders */
	--border:        rgba(11,22,51,0.10);
	--border-strong: rgba(11,22,51,0.18);
	--border-on-dark: rgba(255,255,255,0.14);

	/* Semantic */
	--success: #0F8B30;
	--warning: #C77700;
	--danger:  #C62828;

	/* Typography */
	--font-display: "Bricolage Grotesque", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-serif:   "Fraunces", Georgia, "Times New Roman", serif;
	--font-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--text-2xs: 0.6875rem;  /* 11 */
	--text-xs:  0.75rem;    /* 12 */
	--text-sm:  0.875rem;   /* 14 */
	--text-md:  1rem;       /* 16 */
	--text-lg:  1.125rem;   /* 18 */
	--text-xl:  1.25rem;    /* 20 */
	--text-2xl: 1.5rem;     /* 24 */
	--text-3xl: 1.875rem;   /* 30 */
	--text-4xl: 2.25rem;    /* 36 */
	--text-5xl: 3rem;       /* 48 */
	--text-6xl: 3.75rem;    /* 60 */
	--text-7xl: 4.5rem;     /* 72 */
	--text-8xl: 6rem;       /* 96 */

	--leading-tight:  1.1;
	--leading-snug:   1.25;
	--leading-normal: 1.5;
	--leading-relaxed:1.65;

	--tracking-tight:  -0.02em;
	--tracking-tighter:-0.04em;
	--tracking-wide:    0.04em;
	--tracking-wider:   0.12em;

	/* Spacing scale (4px base) */
	--space-0:  0;
	--space-1:  0.25rem;
	--space-2:  0.5rem;
	--space-3:  0.75rem;
	--space-4:  1rem;
	--space-5:  1.25rem;
	--space-6:  1.5rem;
	--space-8:  2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-20: 5rem;
	--space-24: 6rem;
	--space-32: 8rem;

	/* Radii */
	--radius-sm:  6px;
	--radius-md:  10px;
	--radius-lg:  16px;
	--radius-xl:  24px;
	--radius-pill: 999px;

	/* Shadows */
	--shadow-xs: 0 1px 2px rgba(11,22,51,0.06);
	--shadow-sm: 0 4px 12px rgba(11,22,51,0.08);
	--shadow-md: 0 10px 30px rgba(11,22,51,0.10);
	--shadow-lg: 0 20px 50px rgba(11,22,51,0.14);
	--shadow-glow: 0 0 0 4px rgba(31,43,224,0.16);

	/* Motion */
	--ease:        cubic-bezier(0.2, 0.6, 0.2, 1);
	--ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
	--dur-fast:    150ms;
	--dur-base:    220ms;
	--dur-slow:    420ms;

	/* Layout */
	--container:        1280px;
	--container-narrow: 880px;
	--header-h:         84px;

	/* Z-index scale */
	--z-base:   1;
	--z-nav:    50;
	--z-modal:  100;
	--z-toast:  200;
}

@media (max-width: 768px) {
	:root {
		--header-h: 68px;
	}
}
