Хитрость заключается в том, чтобы избежать применения какого-либо эффекта к главному элементу и сохранить все на псевдоэлементах, тогда вы сможете просто добавить z-index:0
к главному элементу, чтобы избежать проблемы, сделав все принадлежащие одному и тому же контексту стека.
Вот модифицированный код:
body {
text-align: center;
}
section {
background-color: aqua;
}
h6 {
display: inline-block;
font-size: 34px;
color: #8699a0;
text-shadow: 0 0 1px #758890;
margin: 120px 0;
outline: none;
padding: 14px 30px;
position: relative;
z-index:0;
text-transform: uppercase;
box-shadow:
0 0 30px 0 rgba(0, 0, 0, 0.1),
0 36px 0 -18px #b1e3e2;
}
h6:before {
content: "";
position: absolute;
z-index: -2;
top: 18px;
bottom: -18px;
left: -40px;
right:-40px;
background:
linear-gradient(to top left,transparent 49.8%,#99acb2 50%) right 40px top 100%/20px 18px no-repeat,
linear-gradient(to top right,transparent 49.8%,#99acb2 50%) 40px 100%/20px 18px no-repeat,
linear-gradient(#b1e3e2,#b1e3e2) center/calc(100% - 120px) 100% no-repeat,
linear-gradient(rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.1)) 0 8%/100% 6% no-repeat,
linear-gradient(rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.1)) 0 92%/100% 6% no-repeat,
linear-gradient(rgba(255, 255, 255, 0.75),rgba(255, 255, 255, 0)) no-repeat,
linear-gradient(45deg, transparent 40%,rgba(0, 0, 0, 0.1) 40%,
rgba(0, 0, 0, 0.1) 60%,transparent 60%) left/4px 4px,
#fff;
}
h6:after {
content:"";
position: absolute;
right:0;
left: 0;
top:0;
bottom:0;
z-index: -1;
background:
linear-gradient(rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.1)) 0 8%/100% 6% no-repeat,
linear-gradient(rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.1)) 0 92%/100% 6% no-repeat,
linear-gradient(rgba(255, 255, 255, 0.75),rgba(255, 255, 255, 0)) no-repeat,
linear-gradient(45deg, transparent 40%,rgba(0, 0, 0, 0.1) 40%,
rgba(0, 0, 0, 0.1) 60%,transparent 60%) left/4px 4px,
#fff;
}
h6, h6:before, h6:after {
box-sizing: border-box;
}
<h6>BUY ONLINE AND SAVE</h6>
<section>
<h6>BUY ONLINE AND SAVE</h6>
</section>