Добрый день.
Когда вы задаете элементу position: absolute, то он скажем так теряет свое положенное место на странице и может лежать где угодно, все зависит от того где вы его расположите.
Если вы ему укажите: 
.bg-block {
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
}
то он будет такого же размера как и родитель и будет там же, где и родитель.
Вы указали высоту больше, чем у родителя: 103% и сдвинули его относительно родителя, соответственно он и выходит за рамки.
left - определяет расстояние от левого края родительского элемента, не включая отступ, поле и ширину рамки, до левого края дочернего элемента.
top -  определяет расстояние от верхнего края родительского элемента до верхнего края дочернего элемента