Может кто-нибудь объяснит поведение :nth-child(n)?
так у вас span - и есть первый child внутри родительского блока box, поэтому к нему и применяются стили. 
если вы хотите выделять только среди box__item то оберните их ещё в один див, или используйте nth-of-type, как верно подметили zoozag и Stimulate
Почитайте про разницу :nth-child и :nth-of-type