Heater

no heat at idle

heater works fine at highway speeds

Check The coolant level.

Then the thermostat as well next if it’s a recent occurrence. Change in temp gauge from idle to HW speeds ?

Another possibility is the heater core. The core may be partially plugged. When the engine is idling, the water pump turns more slowly and doesn’t pump the coolant as fast. If the temperature gauge doesn’t drop at idle, have the core flushed.

There’s probably air trapped in the cooling system.

At idle the coolant flow slows down where any air in the system collects in the heater core and you get no heat. At highway speeds the coolant flow increases pushing the air out of the heater core and you get heat. To remove any air out of the system do the following.

Get the engine up to operating temperature. With the engine idling loosen the upper radiator hose clamp. Take a small flat bladed screwdriver and slip it between the upper radiator hose and the radiator hose neck. Allow the engine to continue to idle until all that comes out of the upper radiator hose is coolant. Remove the screwdriver and retighten the hose clamp.

Tester