А можно ли вопрос темы реализовать точно таким же образом но уже через GRID?
.closest('.card')
. Если вам нужен .card-main, то, самоочевидно, достаточно такого кода JS: .closest('.card > .back, .card > .front').querySelector('.card-main')
или JQ: .closest('.card > .back, .card > .front').find('.card-main:first')
.
Конкретный код, без изменений - работает.
Применяем капельку элементарной логики и приходим к выводу: проблема не в коде, а в чём-то ещё.
Возможно в сервере, возможно в других местах кода, которые вы нам не показали.