<?php
// Conexão com o banco de dados
require __DIR__ . '/../config/config_db.php';

// Puxando o ID do produto da URL (captura segura)
$produto_id = filter_input(INPUT_GET, 'produto_id', FILTER_SANITIZE_NUMBER_INT) ?: 0;

// Verificando se o produto_id foi passado
if ($produto_id === 0) {
    echo "Produto não encontrado!";
    exit;
}

// Capturar afiliado da URL (parâmetro 'af' ou 'ref') - captura segura
$afiliado_id = filter_input(INPUT_GET, 'af', FILTER_SANITIZE_NUMBER_INT);
if (!$afiliado_id) {
    $afiliado_id = filter_input(INPUT_GET, 'ref', FILTER_SANITIZE_NUMBER_INT);
}
$afiliado_id = $afiliado_id ? (int)$afiliado_id : null;
if (isset($_GET['af']) && !empty($_GET['af'])) {
    $afiliado_id = intval($_GET['af']);
    
    // Validar se o afiliado existe e está ativo para este produto
    if ($afiliado_id > 0) {
        try {
            $sql_afiliado = "SELECT a.id, a.usuario_id, a.produto_id, a.status 
                            FROM afiliacoes a 
                            WHERE a.id = :afiliado_id 
                            AND a.produto_id = :produto_id 
                            AND a.status = 'ativo' 
                            LIMIT 1";
            $stmt_afiliado = $pdo->prepare($sql_afiliado);
            $stmt_afiliado->execute([':afiliado_id' => $afiliado_id, ':produto_id' => $produto_id]);
            $afiliado_valido = $stmt_afiliado->fetch(PDO::FETCH_ASSOC);
            
            if ($afiliado_valido) {
                // Salvar em cookie (válido por 30 dias)
                setcookie('affiliate_id', $afiliado_id, time() + (30 * 24 * 60 * 60), '/');
                setcookie('affiliate_produto_id', $produto_id, time() + (30 * 24 * 60 * 60), '/');
            } else {
                // Afiliado inválido, limpar cookie se existir
                $afiliado_id = null;
                setcookie('affiliate_id', '', time() - 3600, '/');
                setcookie('affiliate_produto_id', '', time() - 3600, '/');
            }
        } catch (PDOException $e) {
            error_log("Erro ao validar afiliado: " . $e->getMessage());
            // Em caso de erro, não bloqueia o fluxo, apenas não registra afiliado
            $afiliado_id = null;
        }
    }
} else {
    // Se não há parâmetro af, verificar se existe cookie
    if (isset($_COOKIE['affiliate_id']) && isset($_COOKIE['affiliate_produto_id'])) {
        $cookie_afiliado_id = intval($_COOKIE['affiliate_id']);
        $cookie_produto_id = intval($_COOKIE['affiliate_produto_id']);
        
        // Só usar cookie se for do mesmo produto
        if ($cookie_produto_id == $produto_id && $cookie_afiliado_id > 0) {
            try {
                $sql_afiliado = "SELECT a.id, a.usuario_id, a.produto_id, a.status 
                                FROM afiliacoes a 
                                WHERE a.id = :afiliado_id 
                                AND a.produto_id = :produto_id 
                                AND a.status = 'ativo' 
                                LIMIT 1";
                $stmt_afiliado = $pdo->prepare($sql_afiliado);
                $stmt_afiliado->execute([':afiliado_id' => $cookie_afiliado_id, ':produto_id' => $produto_id]);
                $afiliado_valido = $stmt_afiliado->fetch(PDO::FETCH_ASSOC);
                
                if ($afiliado_valido) {
                    $afiliado_id = $cookie_afiliado_id;
                } else {
                    // Cookie inválido, limpar
                    setcookie('affiliate_id', '', time() - 3600, '/');
                    setcookie('affiliate_produto_id', '', time() - 3600, '/');
                }
            } catch (PDOException $e) {
                error_log("Erro ao validar afiliado do cookie: " . $e->getMessage());
            }
        } else {
            // Cookie de outro produto, limpar
            setcookie('affiliate_id', '', time() - 3600, '/');
            setcookie('affiliate_produto_id', '', time() - 3600, '/');
        }
    }
}

// Consultando os dados do produto no banco de dados
try {
    $sql_produto = "SELECT * FROM produtos WHERE id = :produto_id";
    $stmt_produto = $pdo->prepare($sql_produto);
    $stmt_produto->bindParam(':produto_id', $produto_id, PDO::PARAM_INT);
    $stmt_produto->execute();
    $produto = $stmt_produto->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    error_log("Erro ao buscar produto: " . $e->getMessage());
    echo "Erro ao buscar produto. Tente novamente.";
    exit;
}

// Verifica se o produto existe
if (!$produto) {
    echo "Produto não encontrado!";
    exit;
}

// Obter configurações do checkout (com fallback se colunas não existirem)
$checkout_background_color = isset($produto['checkout_background_color']) && !empty($produto['checkout_background_color']) 
    ? $produto['checkout_background_color'] 
    : '#0f0c29';
$checkout_banner = isset($produto['checkout_banner']) && !empty($produto['checkout_banner']) 
    ? $produto['checkout_banner'] 
    : '';
$checkout_main_card_background = isset($produto['checkout_main_card_background']) && !empty($produto['checkout_main_card_background']) 
    ? $produto['checkout_main_card_background'] 
    : '#1a1a2e';
$checkout_text_color = isset($produto['checkout_text_color']) && !empty($produto['checkout_text_color']) 
    ? $produto['checkout_text_color'] 
    : '#ffffff';
$provas_sociais = isset($produto['provas_sociais']) && !empty($produto['provas_sociais']) 
    ? json_decode($produto['provas_sociais'], true) 
    : [];

// Detectar tipo de produto (digital ou físico)
$tipo_produto = isset($produto['tipo_produto']) ? $produto['tipo_produto'] : 'digital';
$is_produto_fisico = ($tipo_produto === 'fisico');

// Se for produto físico, obter configurações de frete
$frete_tipo = $is_produto_fisico ? ($produto['frete_tipo'] ?? 'gratis') : 'gratis';
$frete_valor = $is_produto_fisico ? floatval($produto['frete_valor'] ?? 0) : 0;
$frete_minimo_gratis = $is_produto_fisico ? floatval($produto['frete_minimo_gratis'] ?? 0) : 0;
$prazo_entrega_min = $is_produto_fisico ? intval($produto['prazo_entrega_min'] ?? 0) : 0;
$prazo_entrega_max = $is_produto_fisico ? intval($produto['prazo_entrega_max'] ?? 0) : 0;

// Métodos de pagamento permitidos
$metodos_pagamento = isset($produto['metodos_pagamento']) ? $produto['metodos_pagamento'] : 'todos';

// Puxando o ID do Pixel do banco de dados
$sql_pixel = "SELECT valor FROM configuracoes WHERE chave = 'facebook_pixel_id'";
$stmt_pixel = $pdo->query($sql_pixel);
$config = $stmt_pixel->fetch(PDO::FETCH_ASSOC);
$pixel_id = $config ? $config['valor'] : 'DEFAULT_PIXEL_ID';

// Log para verificar o Pixel ID
error_log("Facebook Pixel ID: " . $pixel_id);
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dados Pessoais</title>

    <script>
      !function(f,b,e,v,n,t,s)
      {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
      n.callMethod.apply(n,arguments):n.queue.push(arguments)};
      if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
      n.queue=[];t=b.createElement(e);t.async=!0;
      t.src=v;s=b.getElementsByTagName(e)[0];
      s.parentNode.insertBefore(t,s)}(window, document,'script',
      'https://connect.facebook.net/pt_BR/fbevents.js');
      fbq('init', '<?= $pixel_id; ?>'); 
      fbq('track', 'PageView');
    </script>
    <noscript>
      <img height="1" width="1" style="display:none"
      src="https://www.facebook.com/tr?id=<?= $pixel_id; ?>&ev=PageView&noscript=1" />
    </noscript>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&display=swap" rel="stylesheet">

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/css/intlTelInput.css" />

    <link rel="stylesheet" href="/fontawesome/css/all.min.css">

    <style>
        /* Reset e Base */
        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; }
        
        body {
            /* Fundo personalizado do produto - COR SÓLIDA SEM TRANSPARÊNCIA */
            background: <?= $checkout_background_color; ?>;
            color: <?= $checkout_text_color; ?>;
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
        }


        /* Container Principal com Animação de Borda */
        form#dados-pessoais-form {
            background: <?= $checkout_main_card_background; ?>; /* Cor sólida do card principal */
            border-radius: 20px;
            padding: 40px;
            width: 100%;
            max-width: 500px;
            position: relative;
            box-shadow: 0 10px 30px rgba(0,0,0,0.5);
            border: 1px solid rgba(255,255,255,0.1);
            overflow: hidden;
            color: <?= $checkout_text_color; ?>;
        }

        /* Sombra Neon Estática (sem animação) */
        form#dados-pessoais-form {
            box-shadow: 0 0 15px #009846;
        }

        /* Produto */
        #product-container { text-align: center; margin-bottom: 20px; }
        #imagem-produto { 
            width: 100px; 
            height: 100px; 
            border-radius: 15px; 
            object-fit: cover; 
            box-shadow: 0 5px 15px rgba(0,0,0,0.3); 
            border: 2px solid rgba(255,255,255,0.1); 
        }
        /* Ocultar imagem quando não houver src válido */
        #imagem-produto:not([src]),
        #imagem-produto[src=""],
        #imagem-produto[src=" "],
        #imagem-produto[src="undefined"],
        #imagem-produto[src="null"] {
            display: none !important;
            visibility: hidden !important;
            width: 0 !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
        }
        #titulo-produto { font-size: 18px; margin: 10px 0 5px; color: <?= $checkout_text_color; ?>; }
        #descricao-produto { font-size: 13px; color: <?= $checkout_text_color; ?>; opacity: 0.9; margin-bottom: 10px; }
        #product-discount { text-decoration: line-through; color: <?= $checkout_text_color; ?>; opacity: 0.7; font-size: 12px; }
        #product-price { font-size: 24px; font-weight: 700; color: #00c6ff; margin-top: 5px; }

        /* Progress Steps */
        .progress-container { display: flex; justify-content: space-between; margin-bottom: 30px; position: relative; }
        .progress-step { text-align: center; width: 33%; position: relative; z-index: 1; }
        .progress-bullet { width: 12px; height: 12px; background: #444; border-radius: 50%; margin: 0 auto 5px; transition: 0.3s; }
        .progress-bullet.active { background: #00c6ff; box-shadow: 0 0 10px #00c6ff; transform: scale(1.3); }
        .progress-label { font-size: 10px; color: #aaa; text-transform: uppercase; }

        /* Títulos */
        .title { font-size: 22px; margin-bottom: 5px; color: <?= $checkout_text_color; ?>; }
        .subtitle { font-size: 13px; color: <?= $checkout_text_color; ?>; opacity: 0.8; margin-bottom: 25px; }

        /* Inputs */
        .form-group { margin-bottom: 15px; position: relative; }
        .form-group input {
            width: 100%;
            padding: 15px;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.1);
            border-radius: 10px;
            color: <?= $checkout_text_color; ?>;
            font-size: 14px;
            transition: 0.3s;
        }
        .form-group input:focus {
            outline: none;
            border-color: #00c6ff;
            box-shadow: 0 0 10px rgba(0, 198, 255, 0.2);
            background: rgba(255,255,255,0.1);
        }
        .error-message { color: #ff4757; font-size: 12px; margin-top: 5px; display: none; }

        /* Botão */
        .btn {
            width: 100%;
            padding: 16px;
            background: linear-gradient(90deg, #00c6ff, #0072ff);
            color: #fff;
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 700;
            text-transform: uppercase;
            cursor: pointer;
            transition: 0.3s;
            margin-top: 10px;
            box-shadow: 0 5px 15px rgba(0, 114, 255, 0.4);
        }
        .btn:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 114, 255, 0.6); }

        /* Segurança e Footer */
        .security-container { text-align: center; margin-top: 20px; color: #00c6ff; font-size: 12px; display: flex; align-items: center; justify-content: center; gap: 5px; }
        .divisor { height: 1px; background: rgba(255,255,255,0.1); margin: 25px 0; }
        .-payment-list { text-align: center; opacity: 0.6; }
        .-payment-list p { font-size: 11px; margin-bottom: 10px; text-transform: uppercase; color: #aaa; }
        .-payment-list img { height: 18px; margin: 3px; filter: grayscale(100%); transition: 0.3s; }
        .-payment-list img:hover { filter: grayscale(0%); }

        /* Responsividade */
        @media (max-width: 480px) {
            body { padding: 10px; }
            form#dados-pessoais-form { padding: 25px; }
        }
    </style>
</head>
<body>
    <!-- Campos ocultos para persistência de dados da URL -->
    <input type="hidden" id="hidden_produto_id" value="<?= htmlspecialchars($produto_id, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_afiliado_id" value="<?= htmlspecialchars($afiliado_id ?? 0, ENT_QUOTES, 'UTF-8'); ?>">
    
    <!-- Campos ocultos para dados do produto físico -->
    <input type="hidden" id="hidden_tipo_produto" value="<?= htmlspecialchars($tipo_produto, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_frete_tipo" value="<?= htmlspecialchars($frete_tipo, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_frete_valor" value="<?= htmlspecialchars($frete_valor, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_frete_minimo_gratis" value="<?= htmlspecialchars($frete_minimo_gratis, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_prazo_min" value="<?= htmlspecialchars($prazo_entrega_min, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_prazo_max" value="<?= htmlspecialchars($prazo_entrega_max, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_metodos_pagamento" value="<?= htmlspecialchars($metodos_pagamento, ENT_QUOTES, 'UTF-8'); ?>">
    <input type="hidden" id="hidden_preco_produto" value="<?= htmlspecialchars($produto['preco_atual'], ENT_QUOTES, 'UTF-8'); ?>">
    
    <form id="dados-pessoais-form" novalidate>
        <?php if (!empty($checkout_banner)): ?>
        <div style="text-align: center; margin-bottom: 20px; width: 100%;">
            <img src="<?= htmlspecialchars($checkout_banner); ?>" alt="Banner" style="max-width: 100%; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); display: block;">
        </div>
        <?php endif; ?>
        
        <?php if (!empty($provas_sociais) && is_array($provas_sociais)): ?>
        <div style="margin-bottom: 20px; padding: 15px; background: rgba(255,255,255,0.05); border-radius: 10px;">
            <h3 style="font-size: 14px; color: <?= $checkout_text_color; ?>; margin-bottom: 15px; text-align: center;">
                <i class="fas fa-star"></i> O que nossos clientes dizem
            </h3>
            <?php foreach ($provas_sociais as $prova): ?>
            <div style="display: flex; gap: 10px; align-items: start; margin-bottom: 15px; padding: 10px; background: rgba(255,255,255,0.03); border-radius: 8px;">
                <?php if (!empty($prova['imagem'])): ?>
                <img src="<?= htmlspecialchars($prova['imagem']); ?>" alt="<?= htmlspecialchars($prova['nome'] ?? 'Cliente'); ?>" style="width: 50px; height: 50px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,0.2);">
                <?php endif; ?>
                <div style="flex: 1;">
                    <strong style="color: <?= $checkout_text_color; ?>; display: block; margin-bottom: 5px;"><?= htmlspecialchars($prova['nome'] ?? 'Cliente'); ?></strong>
                    <p style="color: <?= $checkout_text_color; ?>; font-size: 13px; margin: 0; opacity: 0.9;"><?= htmlspecialchars($prova['mensagem'] ?? ''); ?></p>
                </div>
            </div>
            <?php endforeach; ?>
        </div>
        <?php endif; ?>
        
        <div id="product-container">
            <?php 
            // Verificar se a imagem do produto existe (campo vazio ou apenas espaços)
            $imagem_produto = isset($produto['imagem']) ? trim($produto['imagem']) : '';
            // Só exibir imagem se não estiver vazia, não for apenas espaços e for uma URL válida
            // Se estiver vazia, NÃO exibir nada (nem imagem, nem texto)
            if (!empty($imagem_produto) && $imagem_produto !== '' && strlen($imagem_produto) > 0 && filter_var($imagem_produto, FILTER_VALIDATE_URL)): 
            ?>
            <img id="imagem-produto" src="<?= htmlspecialchars($imagem_produto); ?>" alt="" onerror="this.style.display='none'; this.alt=''; this.src='';">
            <?php endif; ?>
            <div id="product-details">
                <h2 id="titulo-produto" style="color: <?= $checkout_text_color; ?>;"><?= htmlspecialchars($produto['nome']); ?></h2>
                <p id="descricao-produto" style="color: <?= $checkout_text_color; ?>; opacity: 0.9;"><?= htmlspecialchars($produto['descricao']); ?></p>
                <p id="product-discount" style="color: <?= $checkout_text_color; ?>; opacity: 0.7;">De R$ <span id="preco-original"><?= number_format($produto['preco_original'], 2, ',', '.'); ?></span></p>
                <p id="product-price" style="color: #00c6ff;">Por R$ <?= number_format($produto['preco_atual'], 2, ',', '.'); ?></p>
            </div>
        </div>

        <div class="progress-container">
            <div class="progress-step">
                <div class="progress-bullet active"></div>
                <span class="progress-label">Dados</span>
            </div>
            <div class="progress-step">
                <div class="progress-bullet"></div>
                <span class="progress-label">Pagamento</span>
            </div>
            <div class="progress-step">
                <div class="progress-bullet"></div>
                <span class="progress-label">Acesso</span>
            </div>
        </div>

        <h2 class="title">Dados Pessoais</h2>
        <p class="subtitle">Preencha os dados essenciais para o processo de compra</p>

        <div class="form-group">
            <input type="text" id="full-name" name="full-name" placeholder="Digite seu nome completo">
            <div class="error-message" id="error-full-name"></div>
        </div>

        <div class="form-group">
            <input type="email" id="email" name="email" placeholder="Digite seu email para receber a compra">
            <div class="error-message" id="error-email"></div>
        </div>

        <div class="form-group">
            <input type="tel" id="phone" name="phone" placeholder="(11) 96123-4567">
            <div class="error-message" id="error-phone"></div>
        </div>

        <div class="form-group">
            <input type="tel" id="cpf" name="cpf" placeholder="CPF">
            <div class="error-message" id="error-cpf"></div>
        </div>


        <button type="submit" class="btn">CONTINUAR</button>

        <div class="security-container">
            <i class="fas fa-shield-alt"></i>
            <p>Pagamento 100% Seguro e Criptografado</p>
        </div>

        <div class="divisor"></div>

        <div class="-payment-list">
            <p>Formas de pagamento</p>
            <img loading="lazy" alt="boleto" src="/img/card-billet.svg">
            <img loading="lazy" alt="amex" src="/img/card-amex.svg">
            <img loading="lazy" alt="visa" src="/img/card-visa.svg">
            <img loading="lazy" alt="diners" src="/img/card-diners.svg">
            <img loading="lazy" alt="mastercard" src="/img/card-mastercard.svg">
            <img loading="lazy" alt="discover" src="/img/card-discover.svg">
            <img loading="lazy" alt="aura" src="/img/card-aura.svg">
            <img loading="lazy" alt="hipercard" src="/img/card-hipercard.svg">
            <img loading="lazy" alt="elo" src="/img/card-elo.svg">
            <img loading="lazy" alt="hiper" src="/img/card-hiper.svg">
            <img loading="lazy" alt="pix" src="/img/card-pix.svg">
        </div>
    </form>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/vanilla-masker/1.1.1/vanilla-masker.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/intlTelInput.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js"></script>
    
    <script src="/views/js/dados_pessoais.js"></script>
    
    <script>
    // Integração ViaCEP e Cálculo de Frete
    document.addEventListener('DOMContentLoaded', function() {
        const tipoProduto = document.getElementById('hidden_tipo_produto')?.value;
        if (tipoProduto !== 'fisico') return; // Só executar para produtos físicos
        
        const cepInput = document.getElementById('cep');
        const ruaInput = document.getElementById('rua');
        const bairroInput = document.getElementById('bairro');
        const cidadeInput = document.getElementById('cidade');
        const estadoInput = document.getElementById('estado');
        const numeroInput = document.getElementById('numero');
        
        // Máscara CEP
        if (cepInput) {
            cepInput.addEventListener('input', function(e) {
                let value = e.target.value.replace(/\D/g, '');
                if (value.length > 5) {
                    value = value.substring(0, 5) + '-' + value.substring(5, 8);
                }
                e.target.value = value;
                
                // Buscar endereço quando CEP completo
                if (value.length === 9) {
                    buscarCEP(value.replace(/\D/g, ''));
                    calcularFrete(); // Recalcular frete após buscar CEP
                }
            });
        }
        
        // Máscara UF (sempre maiúsculo)
        if (estadoInput) {
            estadoInput.addEventListener('input', function(e) {
                e.target.value = e.target.value.toUpperCase();
            });
        }
        
        function buscarCEP(cep) {
            if (cep.length !== 8) return;
            
            fetch(`https://viacep.com.br/ws/${cep}/json/`)
                .then(res => res.json())
                .then(data => {
                    if (!data.erro && data.cep) {
                        if (ruaInput) ruaInput.value = data.logradouro || '';
                        if (bairroInput) bairroInput.value = data.bairro || '';
                        if (cidadeInput) cidadeInput.value = data.localidade || '';
                        if (estadoInput) estadoInput.value = (data.uf || '').toUpperCase();
                        
                        // Focar no campo número após preencher endereço
                        if (numeroInput) numeroInput.focus();
                    } else {
                        alert('CEP não encontrado. Por favor, preencha manualmente.');
                    }
                })
                .catch(err => {
                    console.error('Erro ao buscar CEP:', err);
                    alert('Erro ao buscar CEP. Por favor, preencha manualmente.');
                });
        }
        
        // Calcular frete
        function calcularFrete() {
            const freteTipo = document.getElementById('hidden_frete_tipo')?.value || 'gratis';
            const freteValor = parseFloat(document.getElementById('hidden_frete_valor')?.value || 0);
            const freteMinimoGratis = parseFloat(document.getElementById('hidden_frete_minimo_gratis')?.value || 0);
            const precoProduto = parseFloat(document.getElementById('hidden_preco_produto')?.value || 0);
            const prazoMin = parseInt(document.getElementById('hidden_prazo_min')?.value || 0);
            const prazoMax = parseInt(document.getElementById('hidden_prazo_max')?.value || 0);
            
            let freteCobrado = 0;
            if (freteTipo === 'fixo') {
                freteCobrado = freteValor;
            } else if (freteTipo === 'minimo' && precoProduto < freteMinimoGratis) {
                freteCobrado = freteValor;
            }
            // Se 'gratis', freteCobrado = 0
            
            const total = precoProduto + freteCobrado;
            const freteInfo = document.getElementById('frete-info');
            const freteDisplay = document.getElementById('frete-valor-display');
            const totalDisplay = document.getElementById('total-com-frete');
            const prazoDisplay = document.getElementById('prazo-display');
            
            if (freteInfo && freteDisplay && totalDisplay) {
                freteInfo.style.display = 'block';
                freteDisplay.textContent = 'R$ ' + freteCobrado.toFixed(2).replace('.', ',');
                totalDisplay.textContent = total.toFixed(2).replace('.', ',');
                
                if (prazoDisplay && prazoMin > 0 && prazoMax > 0) {
                    prazoDisplay.textContent = prazoMin + ' a ' + prazoMax + ' dias úteis';
                } else if (prazoDisplay) {
                    prazoDisplay.textContent = 'A definir';
                }
            }
            
            // Armazenar valor do frete em campo oculto para uso no checkout.js
            let freteHidden = document.getElementById('hidden_frete_cobrado');
            if (!freteHidden) {
                freteHidden = document.createElement('input');
                freteHidden.type = 'hidden';
                freteHidden.id = 'hidden_frete_cobrado';
                document.body.appendChild(freteHidden);
            }
            freteHidden.value = freteCobrado.toFixed(2);
        }
        
        // Recalcular frete quando necessário (ao carregar e quando o preço mudar)
        calcularFrete();
        
        // Atualizar total quando o preço do produto mudar (se houver algum evento)
        const precoProdutoInput = document.getElementById('hidden_preco_produto');
        if (precoProdutoInput) {
            precoProdutoInput.addEventListener('change', calcularFrete);
        }
    });
    </script>
</body>
</html>