Site Root Layout
Every theme must render <SiteRoot /> as its outermost root element in pages/layout.jsx. Import and use SiteRoot only in that theme layout.jsx file. Place the shared header, page slot, footer, and other layout content inside SiteRoot. Pages, parts, and other theme components must not import or render SiteRoot, and must not replace the theme layout root with a plain element or another component.
Philosophy
Each theme has one root owned by its layout, so shared site behavior is applied consistently to every page.
Fix
Move SiteRoot to pages/layout.jsx and make it the outermost rendered element. Keep page and part content inside the layout through its slot, and remove SiteRoot imports and wrappers from all other theme files.