Rotate CFrame on only one axis

Hello. I am trying to rotate a CFrame utilizing CFrame.Angles(0, math.rad(-40), 0). However, whenever I attempt to rotate a part using this CFrame, it rotates more than one axis.

Here is an example:

part.CFrame *= CFrame.Angles(0, math.rad(-40), 0)
Initial Orientation = -20.138, -50.778, 1.838
Expected Result = -20.138, -90.778, 1.838
Actual Result = -14.146, -92.272, 14.598

How am I able to rotate a part using CFrame for only a single axis, without it affecting any other?

Use the CFrame constructor fromAxisAngle docs here:

CFrame | Documentation - Roblox Creator Hub

You can do

part.CFrame = (CFrame.Angles(0, math.rad(-40), 0) * part.CFrame ).Rotation + part.Position