画像に乗せる文字が中央に位置しないです。HTMLでBootstrapを使ってカルーセルを作りました。

<main>
            <div id="carousel-container">
                <div id="myCarousel" class="carousel slide" data-ride="carousel">
                    <ol class="carousel-indicators">
                        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
                        <li data-target="#myCarousel" data-slide-to="1"></li>
                    </ol>
                    <div class="carousel-inner">
                        <div class="item active">
                            <img class="img-responsive" src="test1.jpg" alt="Arch">
                            <p>Test1</p>
                        </div>

                        <div class="item contain">
                            <img class="img-responsive" src="test2.jpg" alt="Nature">
                            <p>Test2</p>
                        </div>
                    </div>
                </div>
            </div>

        </main>

とhtmlに書いて、CSSには

.item p{
    position: absolute;
    color: black;
    font-weight: bold;
    font-size: 2em;
    top: 50%;
   left: 50%;
    -ms-transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
    margin:0;
    padding:0;
}
}

と書きました。HTMLを表示すると、Test1とTest2の文字が画像の左側に表示されています。親要素(ここではitemクラス)の上下左右の中央に配置するように書いたはずなのですが...。htmlは他にも要素が書いてあり、それらの配置はgrid-systemを使いCSSで配置しています。なぜこのように表示されてしまうのでしょうか?https://saruwakakun.com/html-css/reference/image-text の記事を参考にして作りました。