2) внутри li у вас лежит a, нутри которой уже текст без обертки и картинка. конечно флекс для li не будет ничего центровать. потому что там только один элемент. заверните текст в спан и примените флекс к а. И я бы предложил присвоить классы елементам к которым вы обращаетесь место указания вот этого всего .dropdown .sub>div>div div:first-child ul li
3) вместе с опасити используйте визибилити и изменение размера или трансформ транслейт за пределы экрана (в этом случае проверьте что у вас с оферфлоу, чтобы не раздувало окно).