Вот то, что я придумал, в итоге я переключил довольно много значений, но в основном я использовал flexbox для центрирования всего. Однако я не знаю, будет ли он работать с вашим скомпилированным CSS, поскольку вы предоставили только SCSS.
Соответствующий CSS, который я добавил, находится внизу.
Anways вот оно:
.card {
position: relative;
display: flex;
align-items: center;
float: left;
margin: (30px) 0;
@media #{$BPD} {
margin: 2.5%;
}
@media #{$MaxBPD} {
width: 100%;
}
&:before {
content: "";
width: 1px;
margin-left: -1px;
float: left;
height: 0;
@media #{$BPD} {
padding-top: 30px / 30px * 100%;
}
}
&:after {
content: "";
display: table;
clear: both;
}
}
.card--cta {
@extend .card;
display: block;
padding: 0 !important;
.card--cta-block {
display: block;
padding: 49px 0;
border-bottom: 1px solid;
&:last-child {
border-bottom: 0;
}
}
.card--image {
margin: 0;
}
}
.card.card--quote {
display: flex;
background: $brand-white;
padding: 48px 24px;
border: 3px solid black;
align-items: center;
@media #{$MaxBPB} {
padding: 50px 25px;
}
img {
z-index: -1;
}
div {
width: 100%;
text-align: center;
h2 {
margin-bottom: 49px;
line-height: 49px;
}
p {
margin: 30px 0;
line-height: 30px;
}
}
}
.card--cta {
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
}
.card--cta-block {
align-items: center;
display: flex;
flex: 1;
justify-content: center;
}
.card.card--cta {
height: 516px;
width: 516px;
align-items: stretch;
background: #fff;
position: absolute;
}
<div class="card--cta">
<div class="card card--image">
<picture>
<img src="//picsum.photos/600/600/?random" alt="" />
</picture>
</div>
<div class="card card--cta">
<div class="card--cta-block">
<h3>Block text 1</h3>
</div>
<div class="card--cta-block">
<h3>Block text 2</h3>
</div>
<div class="card--cta-block">
<h3>Block text 3</h3>
</div>
</div>
</div>