Я действительно не очень внимательно изучил код, но в этой ситуации нужно обратить внимание на отступы или поля, установленные в элементах меню div. В Safari это не учитывается в отношении ширины, поэтому они могут сделать div или содержимое div более широкими, чем вы ожидаете, и это приведет к тому, что следующий элемент будет перемещен туда, куда вы не ожидаете этого.
Не уверен, поможет ли это, но это то место, куда вы можете посмотреть, если все еще застряли.
Редактировать: После просмотра источника с помощью Web Inspector, кажется, что divs с class = 'parentHook' недостаточно широки после нажатия на них. После щелчка мышью класс меняется на parentContainer, который устанавливает margin-left: -18px; margin-top: -15px; ', и это, кажется, отбрасывает ширину этого div. В Web Inspector я изменил ширину этого div на 150px, и он работал как положено.