# INT-002-02 — Footer, título e SEO leem `siteSettings`

| Campo | Valor |
|---|---|
| **status** | feita |
| **spec** | [`docs/specs/integracao/002-globais.md`](../specs/integracao/002-globais.md) §1, §4 |
| **depende de** | [INT-002-01](INT-002-01-site-settings-share.md) |
| **primo** | footer/SEO no React a partir de `siteSettings` |

## Objetivo

Uma fonte no shell: institucional, redes, sufixo de título e meta fallback vêm do CMS. Menu/canais/lojas do footer **não** mudam (`003`).

## Fazer

1. `SiteFooter`: endereço, `CNPJ: {cnpj}`, copyright; redes só se a URL não for vazia (ícone em `layoutAssets`).
2. `SiteLayout`: `documentTitle` (`{página} \| {siteName}`; Home sem `title` = só o nome); `<Head>` com canonical, og:title/url/site_name/type; description e og:image só se houver valor. `og:image` absoluto via `appUrl`.
3. Features: tirar o sufixo hardcoded ` \| Omni` do `title`. Home: `<SiteLayout>` sem `title`. 404: `{status}`. Busca: `Busca` / `Busca: {q}`. Artigo: `{título} \| Blog Omni`.
4. `app.tsx`: `title: (title) => title` (não concatenar `VITE_APP_NAME`).

## Testes

Os de Inertia da 01 bastam no PHP. Conferir no browser: Home (footer institucional, sem ícones sociais com seed vazio; `<title>` Omni) e uma landing (`Atendimento \| Omni`).

## Fora

Nav, mega, colunas, canais, lojas, logo (`003`). SEO por página. Cookies.
