/**
 * Design Tokens Vitruve
 * 
 * Variables CSS globales que replican los valores de Tailwind
 * para mantener consistencia entre bloques independientes.
 * 
 * Los bloques pueden importar este archivo para acceder a los tokens
 * sin depender de Tailwind o del tema.
 * 
 * @package Vitruve_Custom_Theme
 */

:root {
	/* ==========================================
	 * COLORES PRIMARIOS VITRUVE
	 * ========================================== */
	--color-primary: #6644FF;
	--color-primary-50: #F5F3FF;
	--color-primary-100: #EDE9FE;
	--color-primary-200: #DDD6FE;
	--color-primary-300: #C5CDFF;
	--color-primary-400: #909FFF;
	--color-primary-500: #6644FF;
	--color-primary-600: #5537CC;
	--color-primary-700: #442AA0;
	--color-primary-800: #331D75;
	--color-primary-900: #221149;

	/* ==========================================
	 * COLORES SECUNDARIOS
	 * ========================================== */
	--color-secondary: #00FFE5;
	--color-secondary-50: #E6FFFC;
	--color-secondary-100: #CDFFFA;
	--color-secondary-500: #00FFE5;
	--color-secondary-800: #009283;

	/* ==========================================
	 * NEUTRALES
	 * ========================================== */
	--color-white: #FFFFFF;
	--color-neutral-50: #FFFFFF;
	--color-neutral-100: #F8F8F8;
	--color-neutral-200: #EEEEEE;
	--color-neutral-300: #E3E3E3;
	--color-neutral-400: #B0B0B0;
	--color-neutral-500: #4A4A4A;
	--color-neutral-600: #2A2A2A;
	--color-neutral-700: #1A1A1A;
	--color-neutral-800: #100f11;
	--color-neutral-900: #0A0A0A;

	/* ==========================================
	 * TIPOGRAFÍA
	 * ========================================== */
	--font-sans: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--font-display: 'Sofia Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--font-heading: 'Sofia Sans', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

	/* Tamaños de fuente */
	--text-xs: 0.75rem;      /* 12px */
	--text-sm: 0.875rem;     /* 14px */
	--text-base: 1rem;       /* 16px */
	--text-lg: 1.125rem;     /* 18px */
	--text-xl: 1.25rem;      /* 20px */
	--text-2xl: 1.5rem;      /* 24px */
	--text-3xl: 1.875rem;    /* 30px */
	--text-4xl: 2.25rem;     /* 36px */
	--text-5xl: 3rem;        /* 48px */

	/* Pesos de fuente */
	--font-normal: 400;
	--font-medium: 500;
	--font-semibold: 600;
	--font-bold: 700;
	--font-extrabold: 800;

	/* ==========================================
	 * ESPACIADO
	 * ========================================== */
	--space-1: 0.25rem;   /* 4px */
	--space-2: 0.5rem;    /* 8px */
	--space-3: 0.75rem;   /* 12px */
	--space-4: 1rem;      /* 16px */
	--space-5: 1.25rem;   /* 20px */
	--space-6: 1.5rem;    /* 24px */
	--space-8: 2rem;      /* 32px */
	--space-10: 2.5rem;   /* 40px */
	--space-12: 3rem;     /* 48px */
	--space-14: 3.5rem;   /* 56px */
	--space-16: 4rem;     /* 64px */
	--space-20: 5rem;     /* 80px */
	--space-24: 6rem;     /* 96px */

	/* ==========================================
	 * BORDER RADIUS
	 * ========================================== */
	--radius-sm: 0.25rem;    /* 4px */
	--radius-md: 0.375rem;   /* 6px */
	--radius-lg: 0.5rem;     /* 8px */
	--radius-xl: 0.75rem;    /* 12px */
	--radius-2xl: 1rem;      /* 16px */
	--radius-3xl: 1.5rem;    /* 24px */
	--radius-4xl: 2rem;      /* 32px */
	--radius-full: 9999px;

	/* ==========================================
	 * SOMBRAS
	 * ========================================== */
	--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
	--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	--shadow-soft: 0 2px 15px -3px rgba(0, 0, 0, 0.07), 0 10px 20px -2px rgba(0, 0, 0, 0.04);
	--shadow-soft-xl: 0 10px 40px -10px rgba(0, 0, 0, 0.1);
	--shadow-soft-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.15);

	/* ==========================================
	 * BREAKPOINTS (para media queries)
	 * ========================================== */
	--screen-sm: 640px;
	--screen-md: 768px;
	--screen-lg: 1024px;
	--screen-xl: 1280px;
	--screen-2xl: 1536px;

	/* ==========================================
	 * CONTAINERS
	 * ========================================== */
	--container-max-width: 1400px;    /* Ancho máximo aumentado para más espacio horizontal */
	--container-padding: 1rem;      /* 24px - Padding mínimo en mobile */
	--container-padding-lg: 8rem;     /* 32px - Padding mínimo en desktop */

	/* ==========================================
	 * TRANSICIONES
	 * ========================================== */
	--transition-fast: 150ms;
	--transition-base: 300ms;
	--transition-slow: 500ms;
	--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

	/* ==========================================
	 * VARIABLES SEMÁNTICAS - DARK MODE
	 * Variables que representan roles en lugar de colores específicos.
	 * Esto permite cambiar entre temas fácilmente.
	 * ========================================== */
	
	/* Backgrounds */
	--bg-primary: var(--color-neutral-800);        /* #100F11 - Charcoal principal */
	--bg-secondary: var(--color-neutral-700);      /* #1A1A1A - Charcoal más claro */
	--bg-tertiary: var(--color-neutral-600);       /* #2A2A2A - Para elevaciones */
	--bg-card: var(--color-neutral-700);           /* #1A1A1A - Background de cards */
	--bg-elevated: var(--color-neutral-600);       /* #2A2A2A - Elementos elevados */
	--bg-hover: #3a3a3a;                           /* Hover states */
	
	/* Text colors */
	--text-primary: var(--color-neutral-50);       /* #FFFFFF - Texto principal */
	--text-secondary: rgba(255, 255, 255, 0.85);   /* Texto secundario */
	--text-muted: rgba(255, 255, 255, 0.65);       /* Texto atenuado */
	--text-disabled: rgba(255, 255, 255, 0.4);     /* Texto deshabilitado */
	
	/* Borders */
	--border-primary: rgba(255, 255, 255, 0.1);    /* Bordes principales */
	--border-secondary: rgba(255, 255, 255, 0.06); /* Bordes sutiles */
	--border-focus: rgba(255, 255, 255, 0.3);      /* Bordes en focus */
	
	/* Interactive elements */
	--surface-input: var(--color-neutral-700);     /* #1A1A1A - Inputs */
	--surface-input-hover: var(--color-neutral-600); /* #2A2A2A - Inputs hover */
	--surface-card: var(--color-neutral-700);      /* #1A1A1A - Cards */
}

/* ==========================================
 * CLASES GLOBALES DE GRADIENTES DE TEXTO
 * ========================================== */

/**
 * Gradientes de texto globales
 * 
 * Estas clases se pueden usar en cualquier contexto sin necesidad
 * de un padre específico.
 * 
 * USO:
 * <h1>Texto normal <span class="vb-gradient-text">con gradiente</span></h1>
 * <h1>Texto <span class="vb-gradient-text--primary">Purple a Lila</span></h1>
 * 
 * VARIANTES DISPONIBLES:
 * - .vb-gradient-text          → Purple (#6644FF) a Turquoise (#00FFE5) [Signature Vitruve]
 * - .vb-gradient-text--primary → Purple (#6644FF) a Lila (#909FFF)
 * - .vb-gradient-text--secondary → Turquoise (#00FFE5) a Yellow (#FFE500)
 * - .vb-gradient-text--accent  → Yellow (#FFE500) a Purple (#6644FF)
 * - .vb-gradient-text--white   → White (#FFFFFF) a Turquoise (#00FFE5)
 */

/* Gradiente base: Purple a Turquoise (Signature Vitruve) */
.vb-gradient-text {
	background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent; /* Fallback para navegadores sin soporte */
}

/* Variante primary: Purple a Lila */
.vb-gradient-text--primary {
	background: linear-gradient(135deg, var(--color-primary), var(--color-primary-400));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

/* Variante secondary: Turquoise a Yellow */
.vb-gradient-text--secondary {
	background: linear-gradient(135deg, var(--color-secondary), #FFE500);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

/* Variante accent: Yellow a Purple */
.vb-gradient-text--accent {
	background: linear-gradient(135deg, #FFE500, var(--color-primary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

/* Variante white: White a Turquoise */
.vb-gradient-text--white {
	background: linear-gradient(135deg, var(--color-white), var(--color-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

/* Compatibilidad: Mantener las clases antiguas como aliases */
.gradient-text {
	background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

.gradient-text--primary {
	background: linear-gradient(135deg, var(--color-primary), var(--color-primary-400));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

.gradient-text--secondary {
	background: linear-gradient(135deg, var(--color-secondary), #FFE500);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

.gradient-text--accent {
	background: linear-gradient(135deg, #FFE500, var(--color-primary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

.gradient-text--white {
	background: linear-gradient(135deg, var(--color-white), var(--color-secondary));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	display: inline;
	color: transparent;
}

/* ==========================================
 * COMPONENTES REUTILIZABLES
 * ========================================== */
@import './badges.css';
@import './placeholders.css';