Despite being a former minister in a Socialist government, French President Emmanuel Macron long ago burned through the goodwill he once had among left-wing voters.
"Last time, we had serious doubts about him, but we said to ourselves that at least he came from the left -- albeit the free-market left," said Zahra Nhili, a 42-year-old business consultant.
She voted for him in the final round of the 2017 election when he faced off against far-right leader Marine Le Pen -- a battle that will be repeated this Sunday.
"We've seen him now. He's clearly from the right," Nhili said.
She was speaking at a trendy artisanal brewery in the western city of Nantes in an area home to green-minded professionals like her, as well as working-class families.
In line with the rest of the city, her district heavily backed Macron's hard-left rival Jean-Luc Melenchon in the first round of presidential elections on April 10.
But while Melenchon finished top in Nantes, a modernising city home to large numbers of students and tech start-ups, the former Trotskyist came third nationwide and was eliminated.
The second round of the election on Sunday will see the top two finishers, Macron and Le Pen, go head-to-head needing more than 50 percent of ballots to win.
Voters like Nhili and her husband Marc are being repeatedly urged to help stop Le Pen.
For decades a so-called "republican front", uniting the mainstream right and left, comes together to keep the far-right out of power.
But Nhili felt like she did her duty in 2017 by voting for Macron and she's adamant she won't do it again -- unless polls show Le Pen with a lead.
"If at the end, it looks like she could get through, we'll go and vote Macron, but my body would suffer to do it," she said. "It's catastrophic what he's done.
"The poor have got poorer and the rich richer."
Left-wing voters are expected to be crucial in determining the outcome of Sunday's election.
Around 7.7 million voters backed Melenchon in the first round, with another 3.5 million turning out for the Greens, the Socialists and assorted far-left candidates.
All these votes are now up for grabs -- and the old "republican front" is crumbling.
One poll this week by Ipsos-Sopra Steria suggested around a third of Melenchon voters wanted Macron to win, but around a half had yet to make their minds up.
If higher than expected numbers abstained, or backed Le Pen, it could tip a tight race that sees Le Pen trailing Macron by 46 percent to 54 percent in an average of recent polls.
"The left-wing electorate has the outcome of the second round in its hands," said Jerome Fourquet, a political scientist and head of polling at the Ifop research group.
And AFP interviews with voters around France over the last fortnight revealed their indecision and disillusionment.
They also underscored an almost universal dislike of 44-year-old Macron, who came to power on a centrist platform five years ago promising to be "neither of the right nor the left".
"Everything in me is opposed to Emmanuel Macron," said Margot Medkour, head of the left-wing Nantes in Common movement, which operates out of a bar in the city centre. "He's not a rampart against the far right.
"He's been very authoritarian in the way he's exercised power, and he's got real contempt for people," she added. "But Marine Le Pen is not an alternative. I'll go and dirty my hands and vote for him."
Melenchon himself has not urged his followers to back Macron, but has called for "not a single vote" to go to Le Pen.
Medkour's complaints are typical of the deep well of ill-will on the left towards Macron, a former investment banker who rocketed to power after just two years as economy minister.
Perceptions of him crystallised during his first year as head of state when he cut housing benefits for the poor but slashed wealth taxes for high-earners, earning him the moniker "the president of the rich".
His early tendency to talk down to people -- once telling an unemployed gardener that he could "cross the road" and find him a job -- also stirred deep-lying class resentments in small-town and rural France.
"He was very patronising. I understand that people can't bring themselves to vote for him," said Chloe Dallidet, a 36-year-old Melenchon voter as she sipped a coffee in the old market place of Foix in southwest France.
The surrounding area of Ariege, a mountainous Pyrenean region with higher-than-average unemployment and poverty, also placed Melenchon top, with 26.07 percent.
"If you cross the street here, you won't find a job," 36-year-old salesman Gaetan said of the town where "Neither banker, nor fascist" had been graffitied on a wall in the cobbled centre ahead of Sunday's vote.
Though Macron has since lowered taxes for people of all incomes, and implemented one of the most generous Covid-19 social safety nets in the world to save companies and jobs, his reputation for elitism remains.
Lowering France's chronically high unemployment to a 14-year low, which the president sees as a huge stride against inequality, earns him few admirers on the left.
"I'm fed up with the economy always coming first in front of the environment," complained Antoine Marchand, a 21-year-old medical student at Nantes University.
Others were left outraged by the heavy-handed police tactics used to snuff out anti-government "Yellow Vest" protests in 2018-19, which brought together many Le Pen and Melenchon voters.
The issue of police brutality, like attitudes to racism, has become a crucial political marker in France -- with Macron widely seen as falling on the wrong side by his progressive critics.
Dominique Subra, a retired government official in Foix, said she'd been disgusted by images in 2018 of protesting school children in a commuter town west of Paris who being lined up against a wall by police and made to kneel with their hands on their heads.
"I'll leave my ballot blank, like in 2017, because I've lived through five years under an authoritarian government," she said.
Young people, the green-minded, public sector and unionised workers all voted heavily for Melenchon, who has been likened to a French version of America's ageing left-winger Bernie Sanders.
Multi-ethnic, low-income areas that fringe French cities also voted heavily in favour of the outspoken 70-year-old -- none more so than the northern Parisian suburb of Villetaneuse, a Communist party bastion for a century.
Melenchon won the district, which is home to a large Muslim population, by his largest margin country-wide on April 10 with 65 percent of the vote.
"Everyone here liked Melenchon's programme," said Azdine Barkaoui, a father-of-four on the minimum wage, who agreed with taxing the rich more and Melenchon's embrace of multiculturalism.
Many people were not sure they'd turn out for Macron as they did overwhelmingly in 2017, despite Le Pen's promise to ban the Muslim headscarf in public and exclude foreigners from social security.
"We know that most of the stuff on Islam she'll never be able to implement," said Barkaoui, a practising Muslim, who said he planned to vote for her as the lesser of two evils.
"It's like a dish that everyone says tastes bad but I want to try it for myself," he said of Le Pen, who he thought had been "demonised" by the media.
Le Pen has spent more than a decade trying to distance her party from its reputation for racism and she stressed her "social" programme, which promises to lower the retirement rate to 60.
Macron meanwhile wants to raise it to 65 and to oblige people on unemployment benefits to do 15-20 hours of work or training a week.
Aime Beya, a 51-year-old on long-term sick leave, mentioned Macron's rhetoric on Islam, which some found stigmatising, and multiple mosque closures during a crackdown on radical preachers.
"Le Pen says what the others think to themselves," he told AFP. "I might give her a chance."