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