Feature: Public landing page at the root A logged-out visitor on "/" should see a real presentation of the app before being asked to sign in — but every other guarded route, and a logged-in visitor, must behave exactly as before. Scenario: A logged-out visitor lands on the presentation page Given I am not signed in When I visit "/" Then I should see the heading "Cuisinez une fois, mangez toute la semaine" And I should see the landing call to action Scenario: The landing page sends visitors to sign in Given I am not signed in And I visit "/" When I click the link "Se connecter" Then the URL should include "/login" Scenario: The landing page sends visitors to create an account Given I am not signed in And I visit "/" When I click the link "Créer un compte" Then the URL should include "/signup" Scenario: The landing page offers the Android app download, on desktop Given I am not signed in When I visit "/" Then I should see the Android download link Scenario: A mobile visitor is offered to open the app first, not just a download link Given I am not signed in When I visit "/" as an Android phone browser Then I should see the button to open the app, with sign-up demoted to secondary And the Android download link should not be shown Scenario: Another guarded route still redirects a logged-out visitor to sign in Given I am not signed in When I visit "/recettes" Then the URL should include "/login" Scenario: A signed-in visitor on "/" still gets the planning, not the landing Given I am signed in as "Alice" "Martin" And the planning request returns nothing When I visit "/" Then I should see the heading "Planning de la semaine" And I should not see "Cuisinez une fois, mangez toute la semaine"