Есть обычный скрипт на жс который делает плавную прокрутку к якорю
const anchors = document.querySelectorAll('a[href*="#"]')
for (let anchor of anchors) {
anchor.addEventListener('click', function (e) {
e.preventDefault()
const blockID = anchor.getAttribute('href').substr(1)
document.getElementById(blockID).scrollIntoView({
behavior: 'smooth',
block: 'start'
})
})
}
При прокрутке до блока фиксированая шапка налегает сверху на часть блока нужно чето дописать в этот скрипт чтоб сверху был какой-то отступ чтоб шапка не закрывала блок