<?php
// pages/landing.php
// Página de aterrisagem (PA) - Primeira página do funil
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Configurações iniciais
if (!defined('BASE_PATH')) {
    define('BASE_PATH', dirname(dirname(__FILE__)));
}

require_once BASE_PATH . '/includes/config.php';
require_once BASE_PATH . '/includes/db.php';
require_once BASE_PATH . '/includes/functions.php';

// Arquivo opcional de anúncios
if (file_exists(BASE_PATH . '/includes/ads-functions.php')) {
    require_once BASE_PATH . '/includes/ads-functions.php';
}

// Carrega helpers do WhatsApp de forma segura
$whatsappDynamicAvailable = false;
try {
    if (file_exists(BASE_PATH . '/includes/whatsapp-helper.php') && 
        file_exists(BASE_PATH . '/includes/whatsapp-dynamic.php')) {
        
        require_once BASE_PATH . '/includes/whatsapp-helper.php';
        require_once BASE_PATH . '/includes/whatsapp-dynamic.php';
        $whatsappDynamicAvailable = true;
    }
} catch (Exception $e) {
    error_log("Erro ao carregar WhatsApp helpers: " . $e->getMessage());
}

// Adicione após carregar os dados da página
if (file_exists(BASE_PATH . '/includes/unique-visits-tracker.php')) {
    require_once BASE_PATH . '/includes/unique-visits-tracker.php';
}

// Inclui sistema de tracking UTM
if (file_exists(BASE_PATH . '/includes/utm-tracking.php')) {
    require_once BASE_PATH . '/includes/utm-tracking.php';
    
    // Apenas inicializa tracking
    try {
        initUtmTracking();
    } catch (Exception $e) {
        if (function_exists('logError')) {
            logError("Erro na inicialização do tracking UTM: " . $e->getMessage());
        }
    }
} else {
    // Fallback se arquivo não existir
    if (function_exists('logError')) {
        logError("Arquivo utm-tracking.php não encontrado");
    }
}

/**
 * Função para inserir o botão principal (CTA) no conteúdo após o 6º parágrafo
 */
function insertMainButtonInContent($content, $ctaLink, $ctaText, $pageId) {
    if (empty($ctaLink) || empty($ctaText)) {
        return $content;
    }
    
    // HTML do botão principal (mesmo estilo do hero)
    $mainButtonHtml = '
    <div class="main-cta-container" style="text-align: center; margin: 2.5rem 0; padding: 2rem; background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%); border-radius: 1rem; border: 2px solid #0ea5e9;">
        <h3 style="color: #0f172a; font-size: 1.4rem; margin-bottom: 1rem; font-weight: 600;">¿Listo para comenzar tu transformación?</h3>
        <p style="color: #475569; margin-bottom: 1.5rem; font-size: 1rem;">Da el siguiente paso y descubre todo lo que este curso tiene para ofrecerte</p>
        <a href="' . htmlspecialchars($ctaLink) . '" class="cta-button main-cta" onclick="registrarRedirecionamiento(\'cta_content\', ' . $pageId . ')" style="display: inline-block; background: linear-gradient(90deg, #facc15, #fbbf24); color: #000 !important; font-weight: 600; padding: 1.2rem 2.5rem; border-radius: 0.5rem; text-decoration: none !important; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(250, 204, 21, 0.4); font-size: 1.1rem;">
            <i class="fas fa-rocket" style="margin-right: 0.5rem;"></i>
            ' . htmlspecialchars($ctaText) . '
            <i class="fas fa-arrow-right" style="margin-left: 0.5rem;"></i>
        </a>
    </div>';
    
    // Dividir o conteúdo em parágrafos
    $pattern = '/<p[^>]*>(.*?)<\/p>/s';
    preg_match_all($pattern, $content, $matches, PREG_OFFSET_CAPTURE);
    
    if (count($matches[0]) < 6) {
        // Se houver menos de 6 parágrafos, adiciona no final
        return $content . $mainButtonHtml;
    }
    
    // Encontra a posição após o 6º parágrafo
    $sixthParagraph = $matches[0][2]; // índice 5 = 6º parágrafo
    $insertPosition = $sixthParagraph[1] + strlen($sixthParagraph[0]);
    
    // Insere o botão após o 6º parágrafo
    $newContent = substr_replace($content, $mainButtonHtml, $insertPosition, 0);
    
    return $newContent;
}

/**
 * Função para inserir o botão de curso alternativo no final do conteúdo
 */
function insertAlternativeButtonAtEnd($content, $alternativeUrl, $alternativeText, $pageId) {
    if (empty($alternativeUrl) || empty($alternativeText)) {
        return $content;
    }
    
    // HTML do botão alternativo (apenas no final)
    $alternativeButtonHtml = '
    <div class="alternative-course-container" style="text-align: center; margin: 2.5rem 0; padding: 2rem; background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); border-radius: 1rem; border: 2px dashed #94a3b8;">
        <h3 style="color: #475569; font-size: 1.4rem; margin-bottom: 1rem; font-weight: 600;">¿No es exactamente lo que buscas?</h3>
        <p style="color: #64748b; margin-bottom: 1.5rem; font-size: 1rem;">Explora otros cursos disponibles que podrían interesarte más</p>
        <a href="' . htmlspecialchars($alternativeUrl) . '" class="cta-button secondary-cta" onclick="registrarRedirecionamiento(\'cta_alternative_content\', ' . $pageId . ')" style="display: inline-block; background: linear-gradient(90deg, #6366f1, #8b5cf6); color: white !important; font-weight: 600; padding: 1rem 2rem; border-radius: 0.5rem; text-decoration: none !important; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(99, 102, 241, 0.4); font-size: 1rem;">
            <i class="fas fa-search" style="margin-right: 0.5rem;"></i>
            ' . htmlspecialchars($alternativeText) . '
            <i class="fas fa-arrow-right" style="margin-left: 0.5rem;"></i>
        </a>
    </div>';
    
    // Adiciona no final do conteúdo
    return $content . $alternativeButtonHtml;
}

// Inicializa tracking da página
$pageType = 'landing';
$pageId = isset($_GET['id']) ? intval($_GET['id']) : null;
$slug = isset($_GET['slug']) ? sanitizeInput($_GET['slug']) : null;

// Busca a página no banco de dados
try {
    if ($pageId) {
        // Busca por ID
        $db->query("SELECT * FROM pages WHERE id = :id AND type = :type AND published = 1");
        $db->bind(':id', $pageId);
        $db->bind(':type', $pageType);
    } else if ($slug) {
        // Busca por slug
        $db->query("SELECT * FROM pages WHERE slug = :slug AND type = :type AND published = 1");
        $db->bind(':slug', $slug);
        $db->bind(':type', $pageType);
    } else {
        // Busca a primeira página ativa do tipo landing
        $db->query("SELECT * FROM pages WHERE type = :type AND published = 1 ORDER BY sequence ASC LIMIT 1");
        $db->bind(':type', $pageType);
    }
    
    $page = $db->single();
    
    if (!$page) {
        // Define valores padrão para evitar erro
        $pageTitle = 'Página não encontrada';
        $metaDescription = 'A página solicitada não foi encontrada.';
        $currentPage = 'landing';
        $showHeader = false;
        
        require_once BASE_PATH . '/includes/header.php';
        echo '<div class="container mt-5"><div class="alert alert-warning text-center"><h4>Página não encontrada</h4><p>A página que você está procurando não existe ou foi removida.</p><a href="/" class="btn btn-primary">Voltar ao início</a></div></div>';
        require_once BASE_PATH . '/includes/footer.php';
        exit;
    }
    
    // Buscar curso alternativo
    $alternativeCourseUrl = '';
    $alternativeCourseText = 'Ver Otros Cursos Disponibles';
    
    try {
        $db->query("SELECT slug, title FROM pages WHERE type = 'landing' AND published = 1 AND id != :current_id ORDER BY RAND() LIMIT 1");
        $db->bind(':current_id', $page['id']);
        $alternativeCourse = $db->single();
        
        if ($alternativeCourse) {
            $alternativeCourseUrl = '/pages/' . $alternativeCourse['slug'];
            $alternativeCourseText = '' . $alternativeCourse['title'];
        }
    } catch (Exception $e) {
        if (function_exists('logError')) {
            logError("Erro ao buscar curso alternativo: " . $e->getMessage());
        }
        // Fallback para página de cursos
        $alternativeCourseUrl = '/cursos';
        $alternativeCourseText = 'Ver Otros Cursos Disponibles';
    }
    
    // DEFINIR VARIÁVEIS PARA O HEADER (ANTES DE INCLUIR)
    $pageTitle = $page['title'];
    $metaDescription = $page['meta_description'] ?: 'Curso gratuito que transformará sua carreira profissional';
    $metaKeywords = 'curso gratuito, educação online, transformação profissional, aprendizagem';
    $currentPage = 'landing';
    $showHeader = false; // Usaremos hero customizado
    $pageDescription = $page['excerpt'] ?: '';
    
    // Breadcrumbs
    $breadcrumbs = [
        '/cursos.php' => 'Cursos',
        '' => $page['title']
    ];
    
    // Estilos customizados para esta página
    $customStyles = '
        .step-indicator {
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 2rem 0;
            max-width: 500px;
            margin-left: auto;
            margin-right: auto;
        }
        
        .step {
            width: 55px;
            height: 55px;
            border-radius: 50%;
            background: #e0e0e0;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            position: relative;
            z-index: 2;
            text-decoration: none;
            color: #666;
            cursor: pointer;
            transition: all 0.3s ease;
            flex-shrink: 0;
        }
        
        .step-active {
            background: var(--gradient);
            color: white;
            animation: pulse 2s infinite;
        }
        
        .step-complete {
            background: #10B981;
            color: white;
        }
        
        .step-line {
            flex-grow: 1;
            height: 4px;
            background: #e0e0e0;
            margin: 0 15px;
            max-width: 120px;
            position: relative;
            flex-shrink: 0;
        }
        
        .step-line-active {
            background: var(--gradient);
        }
        
        .step-line-complete {
            background: #10B981;
        }
        
        .step:hover {
            transform: translateY(-3px);
            box-shadow: 0 5px 15px rgba(79, 70, 229, 0.3);
        }
        
        @keyframes pulse {
            0% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.4); }
            70% { box-shadow: 0 0 0 10px rgba(79, 70, 229, 0); }
            100% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0); }
        }

        .step:not(.step-active):not(.step-complete) {
            opacity: 0.7;
        }

        .step:not(.step-active):not(.step-complete):hover {
            opacity: 1;
        }
        
        .step-label {
            display: block;
            text-align: center;
            margin-top: 0.7rem;
            font-size: 0.9rem;
            font-weight: 500;
            color: #666;
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            white-space: nowrap;
        }
        
        .step-active .step-label {
            color: var(--primary-color);
            font-weight: 600;
        }
        
        .step-complete .step-label {
            color: #10B981;
        }
        
        .hero-section {
            background: var(--gradient);
            color: white;
            padding: 4rem 0;
            border-radius: 0 0 2rem 2rem;
            position: relative;
            overflow: hidden;
        }
        
        .hero-section::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 100\" fill=\"rgba(255,255,255,0.1)\"><polygon points=\"1000,100 1000,0 0,100\"/></svg>") no-repeat bottom;
            background-size: cover;
        }
        
        .hero-content {
            max-width: 800px;
            margin: 0 auto;
            position: relative;
            z-index: 1;
        }
        
        .hero-title {
            font-size: 2.0rem;
            font-weight: 700;
            margin-bottom: 1.5rem;
            text-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        
        .hero-subtitle {
            font-size: 1.3rem;
            margin-bottom: 2.5rem;
            opacity: 0.95;
            text-shadow: 0 1px 2px rgba(0,0,0,0.1);
        }
        
        .main-content {
            padding: 3rem 0;
            background: white;
            border-radius: 1rem;
            margin-top: -2rem;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            position: relative;
            z-index: 2;
        }
        
        .content-block {
            max-width: 800px;
            margin: 0 auto;
            padding: 0 1.5rem;
        }
        
        .cta-button {
            display: inline-block;
            background: linear-gradient(90deg, #facc15, #fbbf24);
            color: #000 !important;
            font-weight: 600;
            padding: 1.2rem 2.5rem;
            border-radius: 0.5rem;
            text-decoration: none !important;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(250, 204, 21, 0.4);
            font-size: 1.1rem;
        }

        .cta-button:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 25px rgba(250, 204, 21, 0.6);
            color: #000 !important;
            background: linear-gradient(90deg, #fbbf24, #f59e0b);
        }

           .secondary-cta {
    background: linear-gradient(90deg, #f97316, #ea580c) !important;
    color: white !important;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.4) !important;
}

.secondary-cta:hover {
    background: linear-gradient(90deg, #ea580c, #c2410c) !important;
    color: white !important;
    box-shadow: 0 8px 25px rgba(249, 115, 22, 0.6) !important;
}
        .main-cta-container {
            animation: fadeInUp 0.6s ease-out;
        }
        
        .alternative-course-container {
            animation: fadeInUp 0.6s ease-out 0.3s both;
        }
        
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .main-cta-container:hover,
        .alternative-course-container:hover {
            transform: translateY(-5px);
            transition: transform 0.3s ease;
        }
        
        .whatsapp-cta-container {
            text-align: center;
            margin: 30px 0;
            padding: 25px;
            background-color: rgba(37, 211, 102, 0.1);
            border-radius: 12px;
            border: 1px solid rgba(37, 211, 102, 0.2);
        }

        .whatsapp-title {
            color: #075E54;
            font-size: 1.25rem;
            font-weight: 600;
            margin-bottom: 20px;
            text-align: center;
        }

        .whatsapp-cta-button {
            display: inline-block;
            background-color: #25D366;
            color: white !important;
            font-weight: 600;
            font-size: 16px;
            padding: 15px 25px;
            border-radius: 8px;
            text-decoration: none !important;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
            border: none;
        }

        .whatsapp-cta-button:hover {
            background-color: #20bf5b;
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(37, 211, 102, 0.5);
            color: white !important;
        }

        .whatsapp-cta-button i {
            margin-right: 10px;
            font-size: 20px;
        }

        .adsense-container {
            margin: 2rem 0;
            padding: 1rem;
            background-color: rgba(79, 70, 229, 0.05);
            border-radius: 0.75rem;
            border: 1px solid rgba(79, 70, 229, 0.2);
            text-align: center;
        }    

        .benefit-card {
            padding: 1.5rem;
            border-radius: 1rem;
            background: white;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
            margin-bottom: 1.5rem;
            transition: all 0.3s ease;
            border-left: 4px solid var(--primary-color);
        }
        
        .benefit-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
        }
        
        .benefit-icon {
            background: var(--gradient);
            width: 50px;
            height: 50px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 1rem;
            color: white;
        }
        
        .progress-bar-container {
            width: 100%;
            background-color: #e0e0e0;
            border-radius: 1rem;
            margin: 1rem 0;
            height: 8px;
            overflow: hidden;
        }
        
        .progress-bar {
            height: 100%;
            background: var(--gradient);
            width: 33.33%;
            border-radius: 1rem;
            transition: width 0.3s ease;
        }

        .author-info {
            margin-top: 3rem;
            padding: 1.5rem;
            background: linear-gradient(to right, rgba(79, 70, 229, 0.05), rgba(124, 58, 237, 0.05));
            border-radius: 12px;
            position: relative;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.03);
            transition: all 0.3s ease;
        }

        .author-info:hover {
            box-shadow: 0 5px 15px rgba(79, 70, 229, 0.1);
            transform: translateY(-2px);
        }

        .author-info:before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 4px;
            background: var(--gradient);
            border-radius: 12px 0 0 12px;
        }

        .post-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 1.5rem;
            align-items: center;
            margin: 0;
            font-size: 0.95rem;
            color: var(--dark-color);
        }

        .post-meta .author, 
        .post-meta .date {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.5rem 0.8rem;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
            transition: all 0.3s ease;
        }

        .post-meta .author:hover, 
        .post-meta .date:hover {
            background-color: rgba(255, 255, 255, 0.9);
            box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
            transform: translateY(-1px);
        }

        .post-meta i {
            color: var(--primary-color);
            font-size: 1rem;
        }

        .post-meta .author i {
            color: #7C3AED;
        }

        .post-meta .date i {
            color: #4F46E5;
        }

        .post-meta-title {
            font-weight: 600;
            margin-bottom: 1rem;
            color: var(--dark-color);
            font-size: 1rem;
            opacity: 0.7;
        }
        
        .cta-section {
            background: var(--light-color);
            padding: 3rem 0;
            margin: 3rem 0;
            border-radius: 1rem;
            text-align: center;
        }

        .floating-cta {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 1000;
            animation: float 3s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }
        
        @media (max-width: 768px) {
            .hero-title {
                font-size: 1.5rem;
            }
            
            .hero-subtitle {
                font-size: 1.1rem;
            }
            
            .hero-section {
                padding: 3rem 0;
            }
            
            .step-indicator {
                max-width: 350px;
            }
            
            .step {
                width: 45px;
                height: 45px;
                font-size: 14px;
            }
            
            .step-line {
                margin: 0 10px;
                max-width: 80px;
            }
            
            .step-label {
                font-size: 0.8rem;
            }
            
            .cta-button {
                padding: 1rem 2rem;
                font-size: 1rem;
                width: 100%;
                max-width: 300px;
            }

            .author-info {
                padding: 1rem;
                margin-top: 2rem;
            }
            
            .post-meta {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.8rem;
            }
            
            .post-meta .author, 
            .post-meta .date {
                width: 100%;
            }

            .floating-cta {
                bottom: 10px;
                right: 10px;
            }

            .main-cta-container,
            .alternative-course-container {
                margin: 2rem 0 !important;
                padding: 1.5rem !important;
            }

            .main-cta-container h3,
            .alternative-course-container h3 {
                font-size: 1.2rem !important;
            }
        }
    ';
    
    // Processar o conteúdo para inserir anúncios
    if (function_exists('insertAdsInContent')) {
        $page['content'] = insertAdsInContent($page['content'], $pageType);
    }
    
    // Registra visualização da página
    $db->query("INSERT INTO page_views (page_id, visitor_ip, user_agent) 
               VALUES (:page_id, :visitor_ip, :user_agent)");
    $db->bind(':page_id', $page['id']);
    $db->bind(':visitor_ip', $_SERVER['REMOTE_ADDR']);
    $db->bind(':user_agent', $_SERVER['HTTP_USER_AGENT'] ?? '');
    $db->execute();
    
    // Tracking único de visitas
    if (isset($page) && $page && isset($uniqueVisitsTracker)) {
        $uniqueVisitsTracker->trackUniqueVisit($page['id'], null, $page['title']);
    }
    
    // ==========================================
    // TRACKING UTM COM DADOS DA PÁGINA CARREGADOS
    // ==========================================
    
    // Registra page view com UTMs (agora que temos os dados da página)
    if (function_exists('registerConversion')) {
        try {
            registerConversion($page['id'], 'page_view', [
                'page_type' => 'landing',
                'page_title' => $page['title'] ?? '',
                'landing_page_id' => $page['landing_page_id'] ?? null
            ]);
        } catch (Exception $e) {
            if (function_exists('logError')) {
                logError("Erro no registro de conversão: " . $e->getMessage());
            }
        }
    }
    
    // Registra acesso com pixel se a página estiver associada a uma landing
    if (isset($page) && !empty($page['landing_page_id'])) {
        try {
            if (isset($pixelIntegraOn) && is_object($pixelIntegraOn)) {
                $pixelIntegraOn->registerAccess($page['id'], $_SESSION['utm_params'] ?? []);
            }
        } catch (Exception $e) {
            if (function_exists('logError')) {
                logError("Erro no registro do pixel: " . $e->getMessage());
            }
        }
    }
    
    // Identifica a landing page e suas páginas vinculadas
    $landingId = $page['id']; // Esta página é a landing
    
    // Busca todas as páginas vinculadas a esta landing
    $db->query("SELECT * FROM pages WHERE landing_page_id = :landing_id AND published = 1 ORDER BY type, sequence ASC");
    $db->bind(':landing_id', $landingId);
    $linkedPages = $db->resultSet();
    
    // Organiza as páginas vinculadas por tipo (pega a primeira de cada tipo)
    $pagesByType = [
        'step1' => null,
        'step2' => null,
        'step3' => null,
        'registration' => null
    ];
    
    foreach ($linkedPages as $linkedPage) {
        if (!$pagesByType[$linkedPage['type']]) {
            $pagesByType[$linkedPage['type']] = $linkedPage;
        }
    }
    
    // Define URLs usando slugs para a barra de progresso (sempre 3 etapas)
    $step1Url = null;
    $registrationUrl = null;
    
    // Se existe step1, usa ele como conteúdo, senão usa step2, senão step3
    if ($pagesByType['step1']) {
        $step1Url = '/pages/step1/' . $pagesByType['step1']['slug'];
    } elseif ($pagesByType['step2']) {
        $step1Url = '/pages/step2/' . $pagesByType['step2']['slug'];
    } elseif ($pagesByType['step3']) {
        $step1Url = '/pages/step3/' . $pagesByType['step3']['slug'];
    }
    
    // URL de registro
    if ($pagesByType['registration']) {
        $registrationUrl = '/pages/registration/' . $pagesByType['registration']['slug'];
    }
    
    // URLs da barra de progresso (sempre 3 etapas fixas)
    $landingUrl = '/pages/landing/' . $page['slug'];
    $contenidoUrl = $step1Url; // Primeira página de conteúdo disponível
    $registroUrl = $registrationUrl;
    
    // Define a próxima etapa no fluxo
    $nextPageUrl = $contenidoUrl ?: $registroUrl;
    
    // Define o link do CTA (usa o configurado da página ou a próxima etapa)
    $ctaLink = !empty($page['cta_link']) ? $page['cta_link'] : $nextPageUrl;
    
    // Define o texto do CTA
    $ctaText = !empty($page['cta_text']) ? $page['cta_text'] : 'Comenzar Ahora';
    
    // INSERIR O BOTÃO PRINCIPAL NO CONTEÚDO (após o 6º parágrafo)
    $page['content'] = insertMainButtonInContent(
        $page['content'], 
        $ctaLink, 
        $ctaText, 
        $page['id']
    );
    
   // INSERIR O BOTÃO ALTERNATIVO NO FINAL DO CONTEÚDO
// $page['content'] = insertAlternativeButtonAtEnd(
//     $page['content'], 
//     $alternativeCourseUrl, 
//     $alternativeCourseText, 
//     $page['id']
// );
    
} catch (Exception $e) {
    if (function_exists('logError')) {
        logError("Erro ao carregar página landing: " . $e->getMessage());
    }
    
    // Define valores padrão em caso de erro
    $pageTitle = 'Erro ao carregar página';
    $metaDescription = 'Ocorreu um erro ao carregar a página solicitada.';
    $currentPage = 'landing';
    $showHeader = false;
    
    require_once BASE_PATH . '/includes/header.php';
    echo '<div class="container mt-5"><div class="alert alert-danger text-center"><h4>Erro</h4><p>Ocorreu um erro ao carregar a página. Por favor, tente novamente mais tarde.</p><a href="/" class="btn btn-primary">Voltar ao início</a></div></div>';
    require_once BASE_PATH . '/includes/footer.php';
    exit;
}

// INCLUIR O HEADER (APÓS DEFINIR TODAS AS VARIÁVEIS)
require_once BASE_PATH . '/includes/header.php';
?>

    <!-- Hero Section Customizado -->
    <header class="hero-section">
        <div class="container">
            <div class="hero-content text-center">
                <h1 class="hero-title">¿Qué curso gratuito te gustaría realizar?</h1>
                <?php if (!empty($page['excerpt'])): ?>
                <?php else: ?>
                    <p class="hero-subtitle">¿Quieres descubrir cómo este curso puede transformar tu vida profesional?</p>
                <?php endif; ?>
                
                 <!-- Botão CTA Principal no Hero -->
                <?php if ($ctaLink): ?>
<a href="<?php echo htmlspecialchars($ctaLink); ?>" class="cta-button" onclick="registrarRedirecionamiento('cta_hero', <?php echo $page['id']; ?>)">
    <i class="fas fa-rocket me-2"></i>
     <?php echo htmlspecialchars($page['title']); ?>
    <i class="fas fa-arrow-right ms-2"></i>
</a>
<?php endif; ?>
                
                <br><p></p>
                <p class="hero-subtitle">¿No es el curso que buscas? ¿O te interesa el próximo?</p>

                <!-- Botão CTA para curso alternativo -->
                <?php if (!empty($alternativeCourseUrl)): ?>
                <a href="<?php echo htmlspecialchars($alternativeCourseUrl); ?>" class="cta-button secondary-cta" onclick="registrarRedirecionamiento('cta_alternative', <?php echo $page['id']; ?>)">
                    <i class="fas fa-search me-2"></i>
                    <?php echo htmlspecialchars($alternativeCourseText); ?>
                    <i class="fas fa-arrow-right ms-2"></i>
                </a>
                <?php endif; ?>
            </div>
        </div>
    </header>

    <div class="container">
        <!-- Barra de Progresso - Sempre 3 etapas fixas (apenas visual) -->
        <div class="step-indicator">
            <!-- Etapa 1 (Landing) - Ativa -->
            <div class="step step-active" title="Página Inicial">
                <i class="fas fa-home"></i>
            </div>
            
            <div class="step-line"></div>
            
            <!-- Etapa 2 (Contenido) -->
            <div class="step" title="Conteúdo do Curso">
                <i class="fas fa-book"></i>
            </div>
            
            <div class="step-line"></div>
            
            <!-- Etapa 3 (Registro) -->
            <div class="step" title="Registro Final">
                <i class="fas fa-graduation-cap"></i>
            </div>
        </div>
        
        <div class="progress-bar-container" title="Progresso: 33% completo">
            <div class="progress-bar"></div>
        </div>
        
        <div class="main-content">
            <div class="content-block">
                <?php 
                try {
                    if ($whatsappDynamicAvailable && isset($whatsappDynamic) && is_object($whatsappDynamic)) {
                        // Usa o sistema dinâmico se estiver disponível
                        echo $whatsappDynamic->processContent($page['content']);
                    } else {
                        // Fallback: exibe o conteúdo original (já com os botões inseridos)
                        echo $page['content'];
                    }
                } catch (Exception $e) {
                    // Em caso de erro, sempre exibe o conteúdo original
                    error_log("Erro no processamento do WhatsApp dinâmico: " . $e->getMessage());
                    echo $page['content'];
                }
                ?>
                
                <!-- Autor e data de publicação -->
                <div class="author-info">
                    <?php
                    try {
                        $publishDate = new DateTime($page['created_at'] ?? 'now');
                        $formattedDate = $publishDate->format('d/m/Y');
                        
                        // Nome do autor
                        $authorName = "Sebastian Álvarez";
                        if (!empty($page['author_id'])) {
                            $db->query("SELECT username FROM admins WHERE id = :author_id");
                            $db->bind(':author_id', $page['author_id']);
                            $author = $db->single();
                            if ($author && isset($author['username'])) {
                                $authorName = htmlspecialchars($author['username']);
                            }
                        }
                    } catch (Exception $e) {
                        error_log("Erro ao buscar info do autor: " . $e->getMessage());
                        $authorName = "Sebastian Álvarez";
                        $formattedDate = date('d/m/Y');
                    }
                    ?>
                    <p class="post-meta">
                        <span class="author">
                            <i class="fas fa-user-edit"></i> 
                            <?php echo $authorName; ?>
                        </span>
                        <span class="date">
                            <i class="fas fa-calendar-alt"></i> 
                            <?php echo $formattedDate; ?>
                        </span>
                        <span class="date">
                            <i class="fas fa-folder"></i> 
                            Cursos Gratuitos
                        </span>
                    </p>
                </div>
            </div>
        </div>
    </div>

    <!-- CTA Flutuante (apenas mobile) -->
    <?php if ($ctaLink): ?>
    <div class="floating-cta d-md-none">
        <a href="<?php echo htmlspecialchars($ctaLink); ?>" class="cta-button" onclick="registrarRedirecionamiento('cta_floating', <?php echo $page['id']; ?>)">
            <i class="fas fa-rocket"></i>
        </a>
    </div>
    <?php endif; ?>

    <!-- Scripts específicos da página -->
    <script>
    // ==========================================
    // FUNÇÃO CORRIGIDA PARA TRACKING COM UTMs
    // ==========================================
    function registrarRedirecionamiento(tipo, pageId) {
        // Coleta UTMs do localStorage se disponível
        const utmData = {};
        const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
        
        // Tenta coletar UTMs da URL atual
        const urlParams = new URLSearchParams(window.location.search);
        utmParams.forEach(param => {
            if (urlParams.has(param)) {
                utmData[param] = urlParams.get(param);
            }
        });
        
        // Dados para envio
        const trackingData = {
            action: 'redirect',
            tipo: tipo,
            page_id: pageId,
            utm_data: utmData,
            referrer: document.referrer,
            timestamp: Date.now()
        };
        
        if (typeof fetch !== 'undefined') {
            fetch('/includes/track.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify(trackingData)
            })
            .then(response => response.json())
            .then(data => {
                console.log('Tracking successful:', data);
                
                // Envia para pixels se disponíveis
                sendToPixels(tipo, utmData);
            })
            .catch(error => {
                console.error('Tracking error:', error);
            });
        }
    }

    // Função para enviar dados aos pixels
    function sendToPixels(eventType, utmData) {
        // Facebook Pixel
        if (typeof fbq !== 'undefined') {
            fbq('track', 'CustomEvent', {
                event_type: eventType,
                utm_source: utmData.utm_source || '',
                utm_campaign: utmData.utm_campaign || ''
            });
        }
        
        // Google Analytics
        if (typeof gtag !== 'undefined') {
            gtag('event', eventType, {
                custom_map: utmData
            });
        }
        
        // JoinAds
        if (typeof window.joinads !== 'undefined') {
            window.joinads.track(eventType, utmData);
        }
    }
    
    // Auto-captura UTMs na primeira carga
    document.addEventListener('DOMContentLoaded', function() {
        const urlParams = new URLSearchParams(window.location.search);
        const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
        const hasUtms = utmParams.some(param => urlParams.has(param));
        
        if (hasUtms) {
            console.log('UTMs detectados na URL:', Object.fromEntries(urlParams));
            
            // Registra page view automaticamente se há UTMs
            registrarRedirecionamiento('auto_page_view', <?php echo $page['id'] ?? 0; ?>);
        }
        
        // Debug para verificar as URLs geradas
        console.log('URLs geradas:', {
            landing: '<?php echo $landingUrl ?? ""; ?>',
            contenido: '<?php echo $contenidoUrl ?? ""; ?>',
            registro: '<?php echo $registroUrl ?? ""; ?>',
            nextPage: '<?php echo $nextPageUrl ?? ""; ?>',
            ctaLink: '<?php echo $ctaLink ?? ""; ?>'
        });
        
        console.log('Páginas vinculadas:', <?php echo json_encode($pagesByType ?? []); ?>);

        // Adiciona listeners para rastrear cliques nos anúncios
        document.querySelectorAll('.adsense-container').forEach(function(container) {
            container.addEventListener('click', function() {
                const adId = this.getAttribute('data-ad-id');
                if (adId) {
                    fetch('/track-ad-click.php?id=' + adId, {
                        method: 'GET',
                        credentials: 'same-origin'
                    });
                }
            });
        });

        // Smooth scroll para links internos
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
                e.preventDefault();
                const target = document.querySelector(this.getAttribute('href'));
                if (target) {
                    target.scrollIntoView({
                        behavior: 'smooth',
                        block: 'start'
                    });
                }
            });
        });

        // Adiciona efeito de loading aos botões CTA
        document.querySelectorAll('.cta-button').forEach(button => {
            button.addEventListener('click', function() {
                if (!this.classList.contains('loading')) {
                    this.classList.add('loading');
                    const originalText = this.innerHTML;
                    this.innerHTML = '<i class="fas fa-spinner fa-spin me-2"></i>Carregando...';
                    
                    // Remove o loading após 2 segundos
                    setTimeout(() => {
                        this.classList.remove('loading');
                        this.innerHTML = originalText;
                    }, 2000);
                }
            });
        });

        // Animação da barra de progresso
        const progressBar = document.querySelector('.progress-bar');
        if (progressBar) {
            setTimeout(() => {
                progressBar.style.width = '33.33%';
            }, 500);
        }

        // Intersection Observer para animações
        const observerOptions = {
            threshold: 0.1,
            rootMargin: '0px 0px -50px 0px'
        };

        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.style.opacity = '1';
                    entry.target.style.transform = 'translateY(0)';
                }
            });
        }, observerOptions);

        // Observa elementos para animação
        document.querySelectorAll('.benefit-card, .author-info, .cta-section, .main-cta-container, .alternative-course-container').forEach(el => {
            el.style.opacity = '0';
            el.style.transform = 'translateY(20px)';
            el.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
            observer.observe(el);
        });
        
        // Debug UTMs (apenas se debug=1 na URL)
        if (urlParams.has('debug') && urlParams.get('debug') === '1') {
            console.log('=== DEBUG UTM ===');
            console.log('UTMs na URL:', Object.fromEntries(urlParams));
            console.log('UTMs no sessionStorage:', {
                utm_source: sessionStorage.getItem('utm_source'),
                utm_medium: sessionStorage.getItem('utm_medium'),
                utm_campaign: sessionStorage.getItem('utm_campaign')
            });
        }
    });

    // Adiciona CSS para estado de loading
    const style = document.createElement('style');
    style.textContent = `
        .cta-button.loading {
            opacity: 0.7;
            pointer-events: none;
        }
        
        .cta-button.loading:hover {
            transform: none;
        }
    `;
    document.head.appendChild(style);
    </script>

    <!-- UTM Tracking Scripts -->
    <script>
    // Preserva UTMs durante navegação
    (function() {
        // Captura UTMs da URL atual
        const urlParams = new URLSearchParams(window.location.search);
        const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
        const currentUtms = {};
        
        utmParams.forEach(param => {
            if (urlParams.has(param)) {
                currentUtms[param] = urlParams.get(param);
                // Preserva no sessionStorage
                sessionStorage.setItem(param, urlParams.get(param));
            }
        });
        
        // Adiciona UTMs preservados aos links internos
        document.addEventListener('DOMContentLoaded', function() {
            const internalLinks = document.querySelectorAll('a[href^="/"], a[href^="./"], a[href^="../"]');
            
            internalLinks.forEach(link => {
                link.addEventListener('click', function() {
                    const href = this.getAttribute('href');
                    const hasQuery = href.includes('?');
                    const separator = hasQuery ? '&' : '?';
                    
                    // Adiciona UTMs preservados ao link
                    const utmString = utmParams
                        .filter(param => sessionStorage.getItem(param))
                        .map(param => `${param}=${encodeURIComponent(sessionStorage.getItem(param))}`)
                        .join('&');
                        
                    if (utmString) {
                        this.setAttribute('href', href + separator + utmString);
                    }
                });
            });
        });
    })();
    </script>

    <!-- Script final para envio de UTMs aos pixels -->
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        // Envia UTMs para todos os pixels configurados
        <?php
        if (function_exists('sendUtmsToPixels')) {
            sendUtmsToPixels();
        }
        ?>
    });
    </script>
<script>
function registrarConversao(tipo, pageId, valor = null) {
    // Dados adicionais da conversão
    const conversionData = {
        page_url: window.location.pathname,
        page_title: document.title,
        timestamp: Date.now(),
        user_agent: navigator.userAgent
    };
    
    // Envia via AJAX
    fetch('/includes/track-conversion.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            page_id: pageId,
            conversion_type: tipo,
            conversion_value: valor,
            conversion_data: conversionData
        })
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            console.log('Conversão registrada:', tipo);
        }
    })
    .catch(error => {
        console.error('Erro ao registrar conversão:', error);
    });
}

// Exemplo de uso nos botões
document.addEventListener('DOMContentLoaded', function() {
    // CTAs principais
    document.querySelectorAll('.cta-button').forEach(button => {
        button.addEventListener('click', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('cta_click', pageId, this.textContent);
        });
    });
    
    // Links do WhatsApp
    document.querySelectorAll('.whatsapp-cta-button').forEach(button => {
        button.addEventListener('click', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('whatsapp_click', pageId, this.href);
        });
    });
    
    // Formulários
    document.querySelectorAll('form').forEach(form => {
        form.addEventListener('submit', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('form_submit', pageId, this.action);
        });
    });
});
</script>
<?php
// Incluir o footer
require_once BASE_PATH . '/includes/footer.php';
?>