Hundreds of thousands of people took to the streets in France on Saturday in a fourth day of action against President Emmanuel Macron's pension reform, with unions warning they would ramp up strikes if the plan is not dropped.
Unlike on the three previous protest days there was no call for a day of nationwide strikes, although air traffic controllers at Paris' second airport staged a surprise walkout that left half of flights cancelled.
Macron and his government face a double battle to raise the pension age from 62 to 64, overcoming resistance on the streets as well as pushing the legislation through parliament.
The CGT union said 500,000 people protested in Paris alone, and over 2.5 million nationwide.
The interior ministry, which generally gives much lower numbers, said there were 963,000 protesters nationwide and 93,000 in Paris.
The figures were somewhat higher than on the last day of action on Feb 7 but possibly also short of the mammoth weekend turnout some had hoped for.
There were protests in other French cities up and down the country, with images on television showing police using water cannons in the western city of Rennes.
Protesters in the French capital took the traditional protest route from Republique Square to Nation Square, behind a banner saying: "No to working longer!"
There were tensions when a car and a bin were overturned and set on fire, prompting shield-wielding police and the fire brigade to intervene.
'Bring to a standstill'
The march was led by the leaders of France's eight main unions, keeping up a tight unity that the government has so far been unable to break.
The unions said in a joint statement that they would call for a national strike that would "bring France to a standstill" on March 7 if the government "remained deaf to the popular mobilisation".
Another day of protests and strikes is planned on Feb 16. The date of March 7 marks when the text of the bill is due in France's upper house, the Senate.
The leader of the hardline CGT, Philippe Martinez, said "the ball is in the court of the president and the government to determine if the movement intensifies and hardens or if they take into account the current mobilisation."
Laurent Berger, the head of the CFDT union, a more moderate group the government hoped would take a different line, said the timetable would give time for the government if it wants to react.
Air traffic controllers at Paris Orly airport meanwhile staged an unannounced strike that resulted in the cancellation of 50 percent of flights from Paris' number two hub in the afternoon.
And in a move that risks severe consequences, unions representing workers on the Paris RATP public transport system called for a rolling strike from March 7.
"Despite the rejection by a very large majority of the population, the government remains intent on its brutal, unfair and unjustified reform," they said.
Speaking in Brussels last week, Macron urged unions to show a "spirit of responsibility" and "not block the life of the rest of the country".
Macron's ruling party also faces a challenge to push the legislation through parliament where it lost its overall majority in elections last year.
It needs support from the right-wing opposition to avoid recourse to a potentially explosive constitutional measure that would allow the legislation to be rammed through without a vote.
"I have doubts about Macron, his ability to move, to listen to the people," said Alfonso Gimeno, a pensioner, who came to Paris to demonstrate with his three children aged nine, 13 and 15.