Mano basicamente é porque o teu "description" ele é filho de uma ol > li, então fazendo uns testes aqui eu percebi que quando clica no numero da lista, ele faz a função, mas quando clica no texto não, é porque na logica do teuu js ta assim

e.target.querySelector('.description').style.display = "none"

então tipo toda vez que clicar em um elemento em que ele tenha o FILHO com a classe ".description" é que ele vai aplicar o if else(inclusive corrige teu if else porque ele como atribuição o correto seria comparação como esse abaixo:). e.target.querySelector('.description').style.display == "none"

resumindo, como o teu .description não é filho de nenhuma tag 'p', 'hr' então quando clica no titulo ou no "+detalhes" ele executa o if else mas não aplica em nada entende?

Fiz um codigo que rodou usando ParentNode. O Atributo "parentNode" faz referencia a um elemento pai no DOM, no caso eu usei ele duas vezes porque ha casos em que o "Target" esta muito abaixo na camada do DOM. Acredito que essa não seja a melhor forma de resolver tal problema mas no momento resolve sua situação, faça os testes e diga se rodou por ai

Segue abaixo o código que funcionou para o seu caso:


        fetch('https://api.themoviedb.org/3/movie/popular?api_key=307f3bce2cf2642bb1caa0463410a0de&language=en-US&page=1', {
    method: 'GET'
})
    .then(response => response.json())
    .then(function (json) {
        let container = document.querySelector('.container');
        let i = 1;

        json.results.map(function (value, i) {
            container.innerHTML += `
            
            <div class="item"><ol start="${i + 1}"><li> <p class="title"> <div class="details" style="cursor:pointer;">` + value.title +  `<p class="more">+ detalhes</p>
                            </div>  <hr> <div class="description" style="display:none;" >` + value.overview +  `</div> </hr> </p> </li> </ol></div>`;
        });
        let titles = document.querySelectorAll('.item');
        for (let j = 0; j < titles.length; j++) {
            titles[j].addEventListener('click', function (e) {
                if (e.target.parentNode.parentNode.querySelector('.description').style.display == "none") {
                    e.target.parentNode.parentNode.querySelector('.description').style.display = "block";
                } else {
                    e.target.parentNode.parentNode.querySelector('.description').style.display = "none";
                }
            });
        }
    });

Muito obrigado, arrumei meu if e com o parentNode funcionou, mas vou tentar ir mais a fundo e tentar fazer funcionar sem o parentNode. Valeu mesmo!