Оптимизация css - это последнее что нужно оптимизировать, если страница тормозит. Особенно селекторы. Если уж хотите заниматься оптимизацией производительности в css, то изучите, например, свойство will-change
PS. Всеми любимый бутстрап, и другие фреймворки (например Materialize) используют подобный селектор для border-box и не парятся.
Укажите, что изображению нельзя сжиматься - flex-shrink: 0;
В контексте флексбоксов любой элемент ведет себя как флекс блок. Ширина такого блока рассчитывается исходя из содержимого и параметров flex-grow, flex-shrink, flex-basis.
Можно еще использовать для ограничений max-width, min-width, но я считаю, в данном контексте это костыль.
Причепите css transition на бэкграунд. Кривыми Безье в тайминг-функции подберите оптимальный эффект вспышки.
Переключайте из скрипта присвоением/удалением класса.
Минифицированный файл для увеличения скорости загрузки страницы. Именно он должен использоваться на боевом сайте. Не минифицированный файл подключается на dev-сервере в процессе разработки. Это касается минифицированных файлов в целом. Файлы собираются системой сборки (gulp/grunt/webpack). После окончания разработки дается команда создать сжатый файл и он создается.
В случае бутстрапа используйте минифицированный, если вы не планируете вносить в него изменения и не минифицированный в противном случае.
Не нужно плодить классы (select2, b-price-item-2 и т.п.). Манипулируйте блоком как единым компонентом, и тогда вы сможете создавать их любое количество не трогая больше css- и js-код