если в результате не найду решения, остановлюсь на правом варианте — при малом количестве блоков он ведёт себя адекватно, нужно только следить за этим количеством при рендеринге
tabsItem[i].style.display = 'block';
tabsItem[i].classList.add('modals-active');
весь код с html и css скинуть не получается, слишком много символов.
Имеет ли оно неочевидные минусы/проблемы с доступностью, по сравнению с обычным способом, когда скрывают input и стилизируют label?
потому что в них встречаются не только пары, а целые блоки картинок разных пропорций
--aW1: 4;
--aH1: 3;
--aW2: 3;
--aH2: 4;
Разве что изначально не писать эти обертки, но мы не знаем что там в адаптиве или другие причины по которым они появились.