Turret Rotation Problems

I am trying to create a turret which rotates to face a target. The base rotates left and right, while the head rotates up and down.

I have successfuly made the base only rotate around the y axis, but the problem I am having is making the head only rotate on it’s x axis - it just doesn’t work right. (Shown here)

This is the code I have for the turret:
using UnityEngine;
using System.Collections;

public class Turret : MonoBehaviour
{
    public Transform target;

    public Transform rotateTransform;
    private Vector3 initialRotation;

    public Transform pivotTransform;
    private Vector3 initialPivot;

    public float rotateSpeed = 0.25f;

    void Start()
    {
        initialRotation = rotateTransform.eulerAngles;
        initialPivot = pivotTransform.eulerAngles;
    }

    void Update()
    {
        if (target)
        {
            RotateTowards(target.position);
        }
    }

    void RotateTowards(Vector3 position)
    {
        Vector3 direction = position - transform.position;

        if (rotateTransform)
        {
            rotateTransform.rotation = Quaternion.Lerp(rotateTransform.rotation, Quaternion.LookRotation(direction), rotateSpeed);

            rotateTransform.eulerAngles = new Vector3(0, rotateTransform.eulerAngles.y, 0) + initialRotation; 
        }
**///The problem area////**
        if (pivotTransform)
        {
            pivotTransform.rotation = Quaternion.Lerp(pivotTransform.rotation, Quaternion.LookRotation(direction), rotateSpeed);

            pivotTransform.eulerAngles = new Vector3(pivotTransform.eulerAngles.x, 0, 0);
        }
    }
}

You’re zeroing out the pivot as a worldspace value.

     if (pivotTransform)
     {
         pivotTransform.rotation = Quaternion.Lerp(pivotTransform.rotation, Quaternion.LookRotation(direction), rotateSpeed);

         pivotTransform.eulerAngles = new Vector3(pivotTransform.eulerAngles.x, rotateTransform.eulerAngles.y, 0);
     }

I just took the rotateTransform Y and used it in the pivotTransform instead of zero. Works fine on my end.