CANONSBURG, Pa. — The final day of campaigning in Pennsylvania’s special congressional election began around 1 p.m., at a sprawling candy and ice cream shop famous throughout the 18th District.

That is when Republican nominee Rick Saccone and Donald Trump Jr. arrived at Sarris Candies. The largest media scrum of the campaign greeted them, moving silently and laboriously through the front and back rooms of the complex.

Trump, who went to prep school and college in southeastern Pennsylvania, posed with the store’s manager in front of a towering chocolate castle. His children, he joked, would not forgive him for spending so much time around candy without them. But he and Saccone wanted to spotlight a business that had grown from 320 to 400 employees in the wake of the Tax Cuts and Jobs Act.

“I’ve seen what bad government decisions can do, in terms of taking jobs away in these Pennsylvania towns,” the president’s eldest son said. “So I get it.”

Trump and Saccone then worked their way through Sarris, marveling at both the job growth and the variety of chocolates that were being prepared for Easter. They donned hairnets — making the expected jokes about the Trump family and hair — and then focused on asking how the factory’s workers felt.

“The tax cuts are helping them expand, giving them a little boost,” said Saccone.

The chocolates grew larger and more ornate from room to room, with bigger-than-life rabbits and mock-ups of the Last Supper being boxed for the holiday.

“This is the law enforcement one,” said Trump, inspecting chocolates that were cut to look like handcuffs.

Darlene Bales, a 67-year old factory employee, pointed at Saccone. “If he doesn’t win — lock him up!” she said.

Saccone’s campaign had not scheduled a press availability before or after the tour. But after Trump and Saccone settled in the store’s ice cream parlor — “If I have two scoops, the media will call it a scandal,” Trump said — reporters crowded around to ask about the state of the race. Trump stayed on message, describing Democratic nominee Conor Lamb as a Trojan horse candidate who would go to Washington to vote against his father.

“All the victories, all the common sense, all the things that have finally been infused back into government — that can all go away quickly if we just sit on our laurels and sit on our victories and don’t get out there and do it again and again,” said Trump. “We don’t need people who are just going to follow the Manchins and the Testers and vote with Nancy Pelosi and Chuck Schumer.”

Saccone dismissed a question about a new poll from Monmouth University that found him slipping six points behind Lamb. (Republican internal polling has shown a closer race.)

“You guys have been up and down with poll numbers,” Saccone said. “We’re out meeting people every day, and everywhere I go, it’s 100 to 1 for Rick Saccone.”

And Trump criticized the media for covering national Republicans who had accused Saccone of running a weak campaign — an opinion allegedly shared by the president.

“God knows, if it’s going to make it difficult for Trump, the media’s going to be all over it,” said Trump.

Trump and Saccone did not stop taking questions until they turned to scandal. On Monday morning, the Associated Press had reported that Trump had a previously undisclosed relationship with an influential businessman who had lobbied the administration. One reporter asked whether Trump had met with special counsel Robert S. Mueller III, and whether Stormy Daniels, the porn star who has claimed an extramarital affair with the president, should be allowed to speak out.

“Thanks, guys,” Trump said, turning back to his ice cream. “That’s not what we’re talking about.”

Trump’s Secret Service detail moved half of the press corps — including the NBC News reporter who had asked about Daniels — out of the room. A smaller number of reporters were allowed to stay and lob questions at Saccone. Asked if he would support the Miners Pension Act — a reason cited by the United Mine Workers union in their endorsement of Lamb — he turned back to his own ice cream.

Voters milled around the store, buying Easter candy and taking photos of Trump and his entourage. Tammy Buckner, 43, snapped photos as her 6-year old daughter, Jasmine, posed with Trump and Saccone. She dismissed Lamb with the nickname the president had given him on Saturday night: “Lamb the Sham.”

“We’re supporting our party,” Buckner explained. “Rick’s got the right experience, he’s a veteran, and I’m with him on the issues — taxes, gun control.”

Trump and Saccone, meanwhile, kept talking, and kept meeting voters, leaving the candy shop shortly after two hours of conversation, handshaking and occasionally irksome questions.