/*
         * =================================================================
         * STYLESHEET PARA EL MOCKUP NAVEGABLE DE AiDAM.OS
         * Etapa: mockup-y-tokens
         * Artefacto: diseno/mockup.html
         * Autor: MATERIALIZADOR
         * =================================================================
         * Este archivo es autocontenido. No realiza llamadas externas.
         * Todas las directrices visuales se basan estrictamente en
         * diseno/03-ui-spec.md.
         * =================================================================
        */

        /* -------------------------------------- */
        /* 1. TOKENS DE DISEÑO Y CONFIGURACIÓN BASE */
        /* -------------------------------------- */
        :root {
            /* 2.1 Colores (de ui-spec.md) */
            --color-background-primary: #0A0A0A;
            --color-text-primary: #F5F5F5;
            --color-text-secondary: #A0A0A0;
            --color-accent-primary: #00F0FF;
            --color-accent-secondary: #FF47A3;
            --color-interactive-default: var(--color-accent-primary);
            --color-interactive-hover: var(--color-accent-secondary);
            --color-border-subtle: #222222;
            --color-system-error: #FF4D4D;
            --color-system-success: #39E693;

            /* 2.2 Tipografía (de ui-spec.md) */
            --font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
            --font-size-xs: 0.75rem;   /* 12px */
            --font-size-sm: 0.875rem;  /* 14px */
            --font-size-base: 1rem;     /* 16px */
            --font-size-lg: 1.125rem;  /* 18px */
            --font-size-xl: 1.5rem;    /* 24px */
            --font-size-h3: 2rem;      /* 32px */
            --font-size-h2: 2.75rem;   /* 44px */
            --font-size-h1: 4.25rem;   /* 68px */
            --font-weight-regular: 400;
            --font-weight-medium: 500;
            --font-weight-bold: 700;
            --font-weight-black: 900;
            --line-height-heading: 1.2;
            --line-height-body: 1.6;

            /* 2.3 Espaciado (de ui-spec.md) */
            --spacing-unit: 8px;
            --spacing-xs: calc(0.5 * var(--spacing-unit));   /* 4px */
            --spacing-sm: var(--spacing-unit);              /* 8px */
            --spacing-md: calc(2 * var(--spacing-unit));     /* 16px */
            --spacing-lg: calc(4 * var(--spacing-unit));     /* 32px */
            --spacing-xl: calc(8 * var(--spacing-unit));     /* 64px */
            --spacing-xxl: calc(12 * var(--spacing-unit));   /* 96px */

            /* 2.4 Otros (de ui-spec.md) */
            --border-radius-sm: 4px;
            --border-radius-md: 8px;
            --transition-duration-fast: 150ms;
            --transition-timing-function: ease-in-out;
            --box-shadow-glow: 0px 0px 15px 2px rgba(0, 240, 255, 0.2);
        }

        /* -------------------------------------- */
        /* 2. RESET Y ESTILOS GLOBALES            */
        /* -------------------------------------- */
        *, *::before, *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        html {
            scroll-behavior: smooth;
            overflow-x: hidden;
            font-size: 100%; /* 16px base */
        }

        body {
            background-color: var(--color-background-primary);
            color: var(--color-text-primary);
            font-family: var(--font-family-base);
            font-size: var(--font-size-base);
            line-height: var(--line-height-body);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            overflow-x: hidden;
        }

        /* Efecto de fondo sutil */
        body::before {
            content: '';
            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            background: radial-gradient(ellipse at 70% 30%, rgba(0, 240, 255, 0.05), transparent 50%),
 radial-gradient(ellipse at 30% 70%, rgba(255, 71, 163, 0.05), transparent 50%);
            z-index: -1;
            pointer-events: none;
        }

        /* -------------------------------------- */
        /* 3. TIPOGRAFÍA Y ENLACES */
        /* -------------------------------------- */
        h1, h2, h3 {
            color: var(--color-text-primary);
            line-height: var(--line-height-heading);
            text-wrap: balance;
        }

        h1 {
            font-size: var(--font-size-h1);
            font-weight: var(--font-weight-black);
        }

        h2 {
            font-size: var(--font-size-h2);
            font-weight: var(--font-weight-black);
        }

        h3 {
            font-size: var(--font-size-h3);
            font-weight: var(--font-weight-bold);
        }

        p {
            max-width: 65ch;
            color: var(--color-text-secondary);
        }

        a {
            color: var(--color-interactive-default);
            text-decoration: none;
            transition: color var(--transition-duration-fast) var(--transition-timing-function);
        }

        a:hover {
            color: var(--color-interactive-hover);
        }

        /* -------------------------------------- */
        /* 4. LAYOUT Y COMPONENTES */
        /* -------------------------------------- */
        .container {
            width: 100%;
            max-width: 1100px;
            margin-left: auto;
            margin-right: auto;
            padding-left: var(--spacing-lg);
            padding-right: var(--spacing-lg);
        }

        section {
            padding-top: var(--spacing-xxl);
            padding-bottom: var(--spacing-xxl);
        }

        /* Botón Principal */
        .button {
            display: inline-block;
            padding: var(--spacing-md) var(--spacing-lg);
            background-color: transparent;
            border: 2px solid var(--color-interactive-default);
            color: var(--color-interactive-default);
            font-size: var(--font-size-base);
            font-weight: var(--font-weight-medium);
            border-radius: var(--border-radius-md);
            cursor: pointer;
            text-align: center;
            transition: all var(--transition-duration-fast) var(--transition-timing-function);
        }

        .button:hover {
            background-color: var(--color-interactive-default);
            color: var(--color-background-primary);
            border-color: var(--color-interactive-default);
            box-shadow: var(--box-shadow-glow);
        }

        .button:focus-visible {
            outline: 2px solid var(--color-accent-primary);
            outline-offset: 2px;
        }

        .button:active {
            transform: scale(0.98);
        }

        .button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            background-color: transparent;
            color: var(--color-interactive-default);
            box-shadow: none;
            transform: none;
        }

        /* -------------------------------------- */
        /* 5. ESTILOS DE SECCIONES ESPECÍFICAS    */
        /* -------------------------------------- */

        /* 5.1 Header */
        .site-header {
            padding: var(--spacing-lg) 0;
            position: absolute;
            width: 100%;
            z-index: 10;
        }

        .header-logo {
            font-weight: var(--font-weight-bold);
            font-size: var(--font-size-lg);
            color: var(--color-text-primary);
        }
        .header-logo:hover {
            color: var(--color-text-primary);
        }

        /* 5.2 Hero Section */
        .hero {
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            min-height: 100vh;
            padding-top: 120px; /* space for header */
            padding-bottom: 60px;
        }

        .hero-content {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: var(--spacing-lg);
        }

        .hero h1 {
            font-size: clamp(3rem, 10vw, var(--font-size-h1));
        }

        .hero .subtitle {
            font-size: var(--font-size-xl);
            font-weight: var(--font-weight-regular);
            color: var(--color-text-primary);
            max-width: 40ch;
        }

        .hero p {
            font-size: var(--font-size-lg);
            max-width: 50ch;
        }

        /* 5.3 Features Section */
        .features-section .container {
            display: grid;
            grid-template-columns: 1fr 1fr; /* Two columns for title/text and grid */
            gap: var(--spacing-xl);
            align-items: start; /* Align items to the start of their grid area */
        }

        .features-section .text-content {
            padding-right: var(--spacing-lg); /* Add some padding to separate from grid */
        }

        .features-section .text-content h2 {
            margin-bottom: var(--spacing-md);
        }

        .features-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: var(--spacing-xl);
            /* margin-top: var(--spacing-xl); REMOVED: now part of grid layout */
        }

        .feature-card {
            border: 1px solid var(--color-border-subtle);
            border-radius: var(--border-radius-md);
            padding: var(--spacing-lg);
            transition: all var(--transition-duration-fast) var(--transition-timing-function);
        }

        .feature-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--box-shadow-glow);
            border-color: var(--color-accent-primary);
        }

        .feature-card h3 {
            font-size: var(--font-size-xl);
            margin-top: var(--spacing-md);
            margin-bottom: var(--spacing-sm);
        }

        .feature-card .icon {
            width: 48px;
            height: 48px;
            stroke: var(--color-accent-primary);
        }

        /* 5.4 How It Works Section */
        #how-it-works .container {
            text-align: center;
        }

        .how-it-works-diagram {
            margin-top: var(--spacing-xl);
            max-width: 800px;
            width: 100%;
            height: auto;
            display: block;
            margin-left: auto;
            margin-right: auto;
        }

        /* 5.5 CTA Section (Lead Capture) */
        #cta .container {
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: var(--spacing-md);
        }

        .subscribe-form {
            margin-top: var(--spacing-lg);
            display: flex;
            flex-wrap: wrap;
            gap: var(--spacing-md);
            justify-content: center;
            width: 100%;
            max-width: 500px;
        }

        .form-input {
            flex-grow: 1;
            padding: var(--spacing-md);
            font-size: var(--font-size-base);
            background-color: transparent;
            border: 2px solid var(--color-border-subtle);
            border-radius: var(--border-radius-md);
            color: var(--color-text-primary);
            transition: border-color var(--transition-duration-fast) var(--transition-timing-function);
        }

        .form-input::placeholder {
            color: var(--color-text-secondary);
            opacity: 0.7;
        }

        .form-input:focus {
            outline: none;
            border-color: var(--color-accent-primary);
        }

        .form-input.error {
            border-color: var(--color-system-error);
        }

        .form-message {
            margin-top: var(--spacing-md);
            font-size: var(--font-size-sm);
            min-height: 1.5em; /* Prevent layout shift */
        }

        .form-message.success {
            color: var(--color-system-success);
        }

        .form-message.error {
            color: var(--color-system-error);
        }

        .privacy-text {
            font-size: var(--font-size-xs);
            color: var(--color-text-secondary);
            margin-top: var(--spacing-sm);
        }

        /* 5.6 Footer */
        .site-footer {
            border-top: 1px solid var(--color-border-subtle);
            padding-top: var(--spacing-xl);
            padding-bottom: var(--spacing-xl);
            font-size: var(--font-size-sm);
            color: var(--color-text-secondary);
        }

        .footer-content {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            gap: var(--spacing-lg);
        }

        .footer-logo {
            font-weight: var(--font-weight-bold);
            color: var(--color-text-secondary);
        }

        .footer-links {
            display: flex;
            gap: var(--spacing-lg);
        }

        .social-links {
            display: flex;
            gap: var(--spacing-md);
        }

        .social-links a {
            display: block;
            color: var(--color-text-secondary);
        }

        .social-links a:hover {
            color: var(--color-accent-primary);
        }

        .social-links svg {
            width: 24px;
            height: 24px;
        }

        /* -------------------------------------- */
        /* 6. ANIMACIONES Y ACCESIBILIDAD         */
        /* -------------------------------------- */
        .reveal {
            /* opacity: 0; REMOVED: visible by default */
            /* transform: translateY(20px); REMOVED: visible by default */
            transition: opacity 0.6s ease-out, transform 0.6s ease-out;
        }

        .reveal.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        @media (prefers-reduced-motion: reduce) {
            html {
 scroll-behavior: auto;
            }
            *, *::before, *::after {
 animation-duration: 0.01ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.01ms !important;
 scroll-behavior: auto !important;
            }
            .reveal {
 opacity: 1;
 transform: none;
            }
        }

        /* -------------------------------------- */
        /* 7. RESPONSIVE BREAKPOINTS              */
        /* -------------------------------------- */
        @media (max-width: 768px) {
            h1 { font-size: var(--font-size-h2); }
            h2 { font-size: 2.25rem; } /* Custom size for mobile h2 */
            h3 { font-size: var(--font-size-xl); }

            section {
 padding-top: var(--spacing-xl);
 padding-bottom: var(--spacing-xl);
            }

            .features-section .container {
                grid-template-columns: 1fr; /* Stack columns on smaller screens */
            }

            .features-section .text-content {
                padding-right: 0; /* Remove padding when stacked */
            }

            .footer-content {
 flex-direction: column;
 text-align: center;
            }
        }

        @media (max-width: 480px) {
            .subscribe-form {
 flex-direction: column;
 align-items: stretch;
            }
        }
        /* -------------------------------------- */
        /* ESTILOS DE TABLA                       */
        /* -------------------------------------- */
        .table-wrapper {
            width: 100%;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            margin-top: var(--spacing-lg);
            border-radius: var(--border-radius-md);
            border: 1px solid var(--color-border-subtle);
        }

        .comparison-table {
            width: 100%;
            min-width: 600px;
            border-collapse: collapse;
            text-align: left;
            font-size: var(--font-size-base);
        }

        .comparison-table th,
        .comparison-table td {
            padding: var(--spacing-md);
            border-bottom: 1px solid var(--color-border-subtle);
        }

        .comparison-table th {
            background-color: rgba(0, 240, 255, 0.05);
            color: var(--color-text-primary);
            font-weight: var(--font-weight-bold);
        }

        .comparison-table td {
            color: var(--color-text-secondary);
        }

        .comparison-table tbody tr:last-child th,
        .comparison-table tbody tr:last-child td {
            border-bottom: none;
        }

        .comparison-table tbody tr:hover td,
        .comparison-table tbody tr:hover th {
            background-color: rgba(255, 71, 163, 0.02);
        }

        /* Accesibilidad: visually-hidden */
        .visually-hidden {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }
