Где я ошибаюсь при расчёта в em?
font-size стоит 125% на body,html. Настройки браузера 100%=14px, т.е. 24px. 
Не понятно откуда у вас взялось 24px, если 14px * 1.25 = 17.5px
Попробуйте сделать расчеты в rem. Весь расчет будет идти от размера шрифта в body, а не от родителя