Добавляете перед модалкой div.overlay с прозрачностью, 100% на 100% размеры, fixed.
Модалка так же fixed.
На боди, как рекомендовали выше, оверфлоу хидден - отключит скролл. Не забудьте добавить скролл внутри модалки. Иначе на мелких экранах контент с кнопками уедет за край.
Модалке прописать поведение в стилях, как она должна размещаться на разных разрешениях (отступы, проценты занимаемой площади, поведение на мобилах, переполнение содержимым и прочие скучные штуки)
Еще вздорный заказчик может попросить при блокировании скролла страницы чтоб она не уезжала вверх - придется на js считать на сколько при вызове модалки была прокручена страница с тем, чтобы потом восстанавливать смещение.
Работы много.
p.s. блок с модалкой и оверлеем - в самый конец документа. Тогда вы гарантировано сможете поднять z-index. И ни в коем случае не вкладывать в контейнеры с контентом. Они могут всё испортить своими атрибутами relative к примеру, или заблокировать по z-index.
Возможно, было бы проще поискать готовый плагин. В котором всё учтено.