Tens of thousands of striking rail workers, angry public sector staff and students rallied across France on Thursday against President Emmanuel Macron in what trade unions hoped would underline resistance nationwide to his reform efforts.
Under sunny skies, thousands marched, chanted and carried anti-Macron banners in Paris as well as other cities such as Lyon and Marseille, but the scale of the protests appeared below expectations.
Around 15,000 rallied in Paris, according to a count by crowd consultancy Occurence, while police estimated the number at 11,500. The hard-left CGT (General Confederation of Labour) union, the main organiser, put the crowd at 50,000.
"We're here for public services. We're ready to continue the whole summer, even into September and October," Helene Tricre, a 25-year-old ticket inspector working for the SNCF railway, told AFP at the Paris rally.
The overwhelmingly peaceful march was marred by occasional clashes between police and far-left groups, many of them hooded and masked, who were seen smashing several shop windows.
Rail workers were also carrying out their fourth wave of stoppages this month, although the number of strikers was down sharply from the beginning of April.
Only one in three high-speed TGV trains was running, but this was higher than three weeks ago when only one in eight went ahead.
Staff at the debt-laden SNCF, a bastion of hard-left trade unionism, are striking every two days out of five against plans by Macron to remove job-for-life guarantees and pension privileges for new recruits.
"It's a critical moment for Emmanuel Macron's presidency," Stephane Zumsteeg, a public opinion expert from the Ipsos polling group, told AFP.
"Either he shows his ability to reform or he fails, and then it's difficult to know what he will able to do for the rest of his term."
The CGT union had called for various groups angered by Macron's one-year presidency -- students, public sector employees, pensioners, rail workers -- to come together to resist the 40-year-old centrist.
Some left-wingers are even hoping for a re-run of the huge May 1968 demonstrations by workers and students that shook France half a century ago.
But Macron has vowed to stand firm, claiming a solid mandate from his election last year in which he swept away the traditional parties that governed France for decades.
"I'm doing what I said I would," he told a television interviewer last week.
Opinion polls suggest France remains deeply divided about his leadership, despite a sharp fall in unemployment and a pick-up in investment thanks to his business-friendly approach since taking power.
An Elabe survey showed Friday that 52 percent of respondents felt his election has proven "a bad thing".
Another survey, released Wednesday, found 58 percent were unhappy with his presidency.
"People who generally have a good financial and professional situation support Macron, but among those who aren't so well off, it's much less," said Vincent Thibault, a researcher at Elabe.
"He's really a president facing two Frances," he said.
Leftwing critics accuse Macron of trying to break up public services, citing his pledge to cut 120,000 public sector jobs over his five-year term.
The government points to France's mounting debt, equivalent to nearly 100 percent of GDP, as well as stubborn deficits since the 1970s.
Various groups have staged strikes and demonstrations against Macron over the past year, including a series of mass protests that have drawn hundreds of thousands onto the streets.
Thursday's protests included many students who have blocked access to four of the country's 70 universities, angered by plans to make admissions more selective.
Protesters at the Nanterre University near Paris, a cradle of the May '68 protests, voted Thursday to maintain their shutdown until May 2.
Even Paris's prestigious Sciences Po College -- Macron's alma mater -- remained partially blocked after students staged a sit-in Wednesday against the president's "dictatorship".
Despite his difficulties, Macron may take heart from divisions in the labour movement as well as public opinion surveys, which do not show sentiment swinging behind the CGT and the protesters.
The more moderate CFDT (French Democratic Confederation of Labour) -- France's largest union in terms of membership -- rejected the CGT's call to join Thursday's protests as well as a combined march for the traditional Labour Day show of strength on May 1.
"I think the public doesn't understand the different demands, and there doesn't seem to be as much sympathy for the unions as we've seen in the past," said Zumsteeg.