Based on the css code in your question, I have try code as follows and it works for me (run the code snippet), and please try by yourself :
#container div a {_x000D_
display: inline-block;_x000D_
margin-top: 10%;_x000D_
padding: 1em 2em;_x000D_
font-size: 2em;_x000D_
color: #fff;_x000D_
font-family: arial, sans-serif;_x000D_
text-decoration: none;_x000D_
border-radius: 0.3em;_x000D_
position: relative;_x000D_
background-color: #ccc;_x000D_
background-image: linear-gradient(to top, #C0357E, #EE5840);_x000D_
-webkit-backface-visibility: hidden;_x000D_
z-index: 1;_x000D_
}_x000D_
_x000D_
#container div a:after {_x000D_
position: absolute;_x000D_
content: '';_x000D_
top: 0;_x000D_
left: 0;_x000D_
width: 100%;_x000D_
height: 100%;_x000D_
border-radius: 0.3em;_x000D_
background-image: linear-gradient(to top, #6d8aa0, #343436);_x000D_
transition: opacity 0.5s ease-out;_x000D_
z-index: 2;_x000D_
opacity: 0;_x000D_
}_x000D_
_x000D_
#container div a:hover:after {_x000D_
opacity: 1;_x000D_
}_x000D_
#container div a span {_x000D_
position: relative;_x000D_
z-index: 3;_x000D_
}
_x000D_
<div id="container"><div><a href="#"><span>Press Me</span></a></div></div>
_x000D_
Based on the css code in your question, I have try code as follows and it works for me, and please try by yourself :
#container div a {
display: inline-block;
margin-top: 10%;
padding: 1em 2em;
font-size: 2em;
color: #fff;
font-family: arial, sans-serif;
text-decoration: none;
border-radius: 0.3em;
position: relative;
background-color: #ccc;
background-image: linear-gradient(to top, #C0357E, #EE5840);
-webkit-backface-visibility: hidden;
z-index: 1;
}
#container div a:after {
position: absolute;
content: '';
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.3em;
background-image: linear-gradient(to top, #6d8aa0, #343436);
transition: opacity 0.5s ease-out;
z-index: 2;
opacity: 0;
}
#container div a:hover:after {
opacity: 1;
}
#container div a span {
position: relative;
z-index: 3;
}
Does it works for you? Change the color based on your need :)