Maintaining look at target between two cameras

In my shooter, I have two cameras: third and first person. Those cameras are controlled by a “camera controller” that is parented to the player. Third person camera indirectly inherits the camera controller’s rotation and positions itself behind the player using an offset, while the first person camera is a child of the head transform and will be adjusted according to the animator.

I am using the camera controller to define a lookAtTarget Vector3 straight forward from the position. This works perfectly for my first person camera, but for the third person camera with the offset, the look at target is not dead center in the camera view. I’ve tried using transform.LookAt(camController.AimTarget) but once the camera reaches the clamp values for looking up and down, it tilts making the effect undesirable.

The overall objective is to ensure the head and gun don’t have a different lookAt target per camera. Please help me. Thank you

So I have the first person camera a child of the head and to maintain a shared target in 3d space, I used the third person camera to set the look target. Once the head is set to look at the target the first person camera looks at it too.

//to get the look target
Camera tpCamera; // the third person camera

Vector3 GetLookTarget()
     return tpCamera.transform.positon + tpCamera.transform.forward * 10f; //10 can be replaced with whatever value, 10 is a good one though

Just set the head to look at that Vector3 in world space and once the third person camera moves the look target moves with it.