## MODIFIED Requirements ### Requirement: Public routes serve published content without authentication The system SHALL expose the public routes of SPEC §5.1 plus the additive package detail route: `home` (`/`), `services.index` (`/servicos`), `packages.show` (`/pacotes/{slug}`), `portfolio.index` (`/portfolio`), `portfolio.show` (`/portfolio/{slug}`), `about` (`/sobre`), `contact` (`/contato`) and `privacy` (`/privacidade`). Every public route MUST respond without authentication and MUST NOT expose unpublished content, internal fields, or internal notes (SPEC §19). #### Scenario: Guest reaches every public route - **WHEN** an unauthenticated visitor requests any public route listed above that has published content where required - **THEN** the response status MUST be 200 - **AND** no redirect to `/admin/login` MUST occur #### Scenario: Unpublished content is invisible - **GIVEN** a service, portfolio case, wedding modality, or testimonial with `published_at` null - **WHEN** a visitor loads the corresponding public listing or home section - **THEN** the record MUST NOT appear in the rendered output #### Scenario: Unpublished case detail returns 404 - **GIVEN** a portfolio case saved as draft - **WHEN** a visitor requests `/portfolio/{slug}` for that case - **THEN** the response status MUST be 404 #### Scenario: Unpublished wedding modality detail returns 404 - **GIVEN** a wedding modality saved as draft - **WHEN** a visitor requests `/pacotes/{slug}` for that modality - **THEN** the response status MUST be 404 #### Scenario: Published case detail becomes reachable - **GIVEN** a portfolio case saved as draft - **WHEN** an admin fills the required fields and publishes the case - **THEN** `/portfolio/{slug}` MUST respond 200 - **AND** the case MUST appear in the `/portfolio` listing #### Scenario: Published wedding modality detail becomes reachable - **GIVEN** a wedding modality saved as draft with required detail fields - **WHEN** an admin publishes the modality - **THEN** `/pacotes/{slug}` MUST respond 200 ## ADDED Requirements ### Requirement: Wedding modality detail uses Heritage Editorial public layout The system SHALL render `/pacotes/{slug}` with the public layout (header/footer shared), Heritage Editorial tokens, and section order: package hero (eyebrow, bipartite title, lead, outline secondary actions as designed, hero media), dark benefit strip, included-items grid, audience split (media + checklist), final conversion CTA. The page MUST be server-rendered Blade without a public Livewire dependency. Missing optional images MUST NOT break the page (omit or degrade the media slot). #### Scenario: Detail page section order - **GIVEN** a published modality with complete detail content - **WHEN** a visitor loads `/pacotes/{slug}` - **THEN** the document MUST include the hero, benefits, included items, audience and final CTA regions in that order - **AND** MUST use the public layout chrome #### Scenario: Detail page has no console errors - **WHEN** the modality detail is loaded in a real browser at desktop and mobile viewports - **THEN** the browser console MUST contain no JavaScript errors