## 1. Tokens, fonts and brand assets - [x] 1.1 Write failing feature/CSS contract tests (or extend existing token/layout assertions) for Heritage Editorial palette, EB Garamond family, radius 0 and container `1120px` - [x] 1.2 Rewrite `resources/css/tokens.css` + `@theme` mapping in `app.css` to Heritage Editorial; remove card-shadow hierarchy for public content - [x] 1.3 Swap Vite font from Instrument Sans to self-hosted EB Garamond (400/500/600) and update `components/fonts.blade.php` consumption - [x] 1.4 Add optimized logo assets under `public/brand/` (light/dark variants) from the provided lockup without redrawing geometry; add `` with accessible alt - [x] 1.5 Run focused feature/static checks covering tokens/fonts and `npm run build` ## 2. Site settings and CMS editorial fields - [x] 2.1 Add failing feature tests for new typed `site_settings` fields (logo, hero secondary CTA/note, manifesto, method steps, principles) and São Paulo seed city - [x] 2.2 Create migration + model fillable/casts for the new typed columns (JSONB for method steps/principles preferred) - [x] 2.3 Update Filament `ManageSiteSettings` with pt-BR editorial sections and logo alt validation - [x] 2.4 Update `ContentSeeder` / factory defaults with editorial copy and São Paulo; keep optional fields nullable with safe view defaults - [x] 2.5 Run `composer test:feature` for site-settings coverage ## 3. Real testimonials - [x] 3.1 Add failing tests for multi-paragraph quote rendering and seeder expectations for the five couples from `depoimentos.md` - [x] 3.2 Replace fictional testimonials in content/visual seeders with the real quotes, author names and context/dates - [x] 3.3 Update testimonials Blade to render paragraph breaks; keep unpublished-by-default path documented for production authorization - [x] 3.4 Run testimonials feature tests ## 4. Public layout and navigation - [x] 4.1 Add/extend failing tests for brand mark in header, landmarks, skip link, and mobile menu `aria-expanded` behavior - [x] 4.2 Redesign `layouts/public.blade.php` header/footer for Heritage Editorial (logo, route nav, contact CTA, footer groups) - [x] 4.3 Implement minimal mobile menu toggle in `resources/js/app.js` with reduced-motion safety - [x] 4.4 Run layout/accessibility structure feature tests ## 5. Home editorial reconstruction - [x] 5.1 Update failing `HomePageContentTest` (and related) for new section order: hero → manifesto → services → portfolio → method → testimonials → positioning → final CTA; empty catalog sections omitted; CTA → contact; preserve `data-testid="home-primary-cta"` - [x] 5.2 Rebuild home components/pages to match editorial composition (merge proof+cases into one portfolio block; add manifesto + positioning; four method steps) - [x] 5.3 Wire settings-driven copy and demo-image disclosure note; keep single `h1` - [x] 5.4 Run home feature tests ## 6. Internal public pages as chapters - [x] 6.1 Extend/adjust public page feature tests for services, portfolio index/show, about, contact (presentation-only), privacy and branded errors under the new layout - [x] 6.2 Restyle `pages/services`, `pages/portfolio/*`, `pages/about`, `pages/contact`, `pages/privacy`, `errors/404`, `errors/500` to Heritage Editorial without changing route contracts or inventing proof - [x] 6.3 Confirm contact page shows settings channels and creates no leads - [x] 6.4 Run `PublicPagesTest` and related SEO/N+1 tests ## 7. Accessibility, browser and visual gates - [x] 7.1 Update browser accessibility tests for brand mark name, keyboard path to primary CTA, mobile menu operability, axe on covered routes, reduced motion and clean console - [x] 7.2 Update `VisualContentSeeder` for deterministic Heritage Editorial content (SP + real testimonial subset + fixtures) - [x] 7.3 Run browser a11y/smoke suites; fix regressions - [x] 7.4 Run `composer visual:update` and review desktop `1440×1000` / mobile `390×844` diffs for home, services, portfolio, portfolio detail before committing baselines ## 8. Quality closeout - [x] 8.1 Run `composer pint` and `composer phpstan` on touched PHP - [x] 8.2 Run `composer test:feature` and `composer test:browser` - [x] 8.3 Run `composer quality` (or equivalent full gate) and fix remaining failures - [x] 8.4 Update surface brief / note remaining unresolved items (official contacts, final testimonial authorization, authorized photography) without inventing facts