DIV блочный элемент, который по факту растягивается на всю возможную ширину, а Вы ему задали еще 100%, отсюда появился и скролл. Уберите width: 100%; для div и проблема решится.
Применять конструкцию width: calc(100% - 40px) ; не логично. И почему заказчик лезет в код? Он специалист? Если нет, то это не в его компетенции. Если он верстальщик, то пусть обоснует свое решение, которое заранее не логично