scroll-margin-top на заголовках с id сдвигает точку прокрутки при #anchor — заголовок не оказывается под фиксированным header.
Значение равно высоте шапки + отступ (например 5rem).
- [scroll-margin — MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin) — margin на scroll snap/anchor.
---
## SPA
После client navigation вызывайте element.scrollIntoView() с учётом того же offset.
