flex-direction: column; - у вас элементы меню идут не слева направо, а сверху вниз. Упираются в высоту 300 и только после этого вынужденно начинают переноситься. И ширина обвертки получается 104 (ширина одного элемента + его margin).
Не понимаю пока, какое поведение элементов меню вы хотите видеть, поэтому не могу что-то советовать.