Olá, Luciano! Como vai?
O seu código está quase lá, mas há um pequeno detalhe que pode estar causando problemas na função limpar().
Na sua função limpar(), você está declarando uma nova variável totalGeral dentro da função, o que cria uma variável local que não afeta a variável global totalGeral que você está usando para manter o total do carrinho. Para corrigir isso, basta remover a declaração let na função limpar(), assim:
function limpar() {
totalGeral = 0; // Remova o 'let' para usar a variável global
document.getElementById('lista-produtos').innerHTML = '';
document.getElementById('valor-total').textContent = 'R$ 0';
}
Com essa alteração, a função limpar() irá redefinir corretamente o valor total do carrinho para zero e limpar a lista de produtos exibida.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.