In Roger Claar's 31 years as mayor, Bolingbrook has grown from a sleepy town surrounded by farm fields to a diverse Chicago suburb nearly twice as large, with its own airport and even an IKEA. And every four years, Claar has easily won re-election, facing little if any opposition.
But then the mayor invited Donald Trump to town, hosting a September fundraiser for the future president at a city-owned golf club.
Now the 71-year-old, who was a Trump delegate to last summer's Republican National Convention, faces the fight of his career Tuesday against a union organizer and county board member who was a Bernie Sanders delegate at the Democratic National Convention.
The race has captured attention well beyond the town of 75,000, as a segment of the electorate angry over the outcome of the presidential election pushes back and Democrats look to capitalize on that energy.
Claar's rival, Jackie Traynere, is getting fundraising and other support from Illinois Sen. Dick Durbin, other top Democrats and groups such as Our Revolution, an offshoot of Sanders' campaign formed to carry on his progressive "movement."
The officially nonpartisan election also could signal whether political candidates — even those running for local offices — could encounter fallout at the ballot box for backing Trump.
Claar calls the situation "a bunch of B.S." and says Democrats "are trying to take over Bolingbrook."
Local
"They want to take out a Trump mayor," said Claar, who is backed by a super PAC led by Ron Gidwitz, a top GOP donor who served as Trump's Illinois campaign chairman. "It's payback. That's all it is."
Claar also says personal politics are no reason to cast a ballot for or against someone in a mayoral race.
"There's no such thing as a Republican or Democratic pothole," he said in a campaign video posted on Facebook.
Traynere says the mayor could have avoided the challenge if he had listened to his constituents. The town that has a large immigrant and minority population is home to two mosques and backed Hillary Clinton for president with more than 60 percent of the vote.
More than 1,000 people signed a petition that was delivered to Claar asking him not to hold the fundraiser, she said, noting Trump made derogatory statements during the campaign about Mexican immigrants, Muslims and women.
But Claar went ahead with the event, which featured Trump and one of his top campaign surrogates, former New York Mayor Rudy Giuliani. Tickets ranged from $1,000 to $250,000, and Claar said it raised "millions" for Trump's campaign.
As a group of about 150 protesters — Traynere among them — gathered across the street from the fundraiser they hatched a plan to run a serious candidate against Claar come April. Traynere was later drafted for the job.
"The mayor's inviting Trump here opened a door that wouldn't have been opened otherwise," she said. "He should have never done it."
In her talks with voters, Traynere said she's heard from Muslims fearful their children will be attacked and teachers who had children of immigrants crying in their classrooms because they were afraid their parents would be deported because Trump is in office. Knowing their mayor supported Trump has been a huge mobilizer.
"This is the person our mayor supported for president — somebody our community is afraid of," Traynere said. "He sent a real clear message. He said: 'Screw you.'"
And while the Trump visit may have provided the spark, there are plenty of other issues on voters' minds, many of them far more parochial than the presidency. Garbage cans, for example.
Bolingbrook doesn't use them, requiring residents instead to lug bags of trash to the curb for pick-up. Animals inevitably get into the bags, spreading garbage across streets and attracting coyotes.
Voter Deepti Suri says her children sometimes see coyotes as they wait for the school bus. She has tried to get the mayor and other officials to begin using the large plastic carts with wheels and lids common in other communities since her family moved to town two years ago but never got a response from anyone at the town hall.
She cast an early ballot this week for Traynere and said watching garbage collectors pick up trash by hand is a big part of the reason.
"It's so dehumanizing," she said before adding: "And he brought Trump. I can't support anyone that supported Trump."
Claar and his supporters, meanwhile, call Traynere a "jobs killer," noting she wants a graduated state income tax in which higher earners pay a higher tax rate. They argue the tax would especially harm small businesses.
Traynere fires back that 31 years in office is too long, and that the people of Bolingbrook were ready for a change well before the "perfect storm" of the 2016 election led to her candidacy.
"For the people who live here, it's just about our town," she said. "If he's so doggone good, he'll win on Tuesday."