Labour strikes have upended travel in France as unions hold their first mass demonstrations since President Emmanuel Macron inflamed public anger by forcing a higher retirement age through parliament without a vote.
Protesters blockaded train stations, Charles de Gaulle Airport in Paris and refineries.
High-speed and regional trains, the Paris metro and public transportation systems in other major cities were disrupted.
About 30% of flights at Paris Orly Airport were cancelled.
Thursday’s events are the ninth round of nationwide protests and strikes called by France’s eight main unions since January.
Violence has intensified in recent days at scattered protests against the pension reform and Mr Macron’s leadership.
The French leader is stubbornly resisting the discontent on the streets and said on Wednesday the government’s Bill to raise the retirement age from 62 to 64 must be implemented by the end of the year.
Critics attacked Mr Macron for the statement, describing him as “self-satisfied”, “out of touch” and “offensive”.
Despite the previous violence, Thursday’s mass demonstrations started off in an orderly way.
Protesters staged road blockades on major motorways and junctions to slow traffic around cities including Lille, Toulouse and Lyon.
Trains were suspended in Marseille because protesters were stationed near tracks.
In the northern suburbs of Paris, several dozen union members blocked a bus depot in Pantin, preventing about 200 vehicles from getting out during rush hour.
Nadia Belhoum, a 48-year-old bus driver participating in the action, criticised Mr Macron’s decision to force the higher retirement age through.
“The president of the Republic is supposed to … take into consideration the desires and needs of his people. He is not a king and he should listen to his people.”
Up to 50% of teachers in primary schools were expected to be on strike, according to their main union.
The French government invoked a constitutional provision last week to get the pension Bill adopted without the approval of politicians.
The Bill must now pass a review by France’s Constitutional Council before becoming law.
Mr Macron’s government won two confidence votes in the lower chamber of parliament on Monday.
The 45-year-old centrist president, who is in his second and final term, repeatedly said he is convinced France’s retirement system needs to be modified to keep it financed.
Opponents proposed other solutions, including higher taxes on the wealthy or companies, which Mr Macron says would hurt the economy.