Как поменять стили у дочерних блоков при нажатии на основной при помощи CSS?
Для того чтобы всё заработало - необходимо чтобы input стоял перед label, а не после. CSS селекторы работают только "вперёд", соответственно если хочется завязать изменение стилей на состояние checkbox - он должен располагаться в DOM раньше чем элементы к которым будут применяться стили, зависящие от состояния checkbox'а
[type=checkbox]:checked + .my_block {}
в этом вся магия