Ваша математика неверна. Вам нужно разложить левое / правое поле на множители шесть раз для каждой строки, что снизит ваши 30 пикселей до 20 пикселей, а затем учтет границу, которая станет 19 пикселей.
1230 - 370(3) = 120 // total remaining space
120 / 6 = 20 // left and right margin size
.container {
max-width: 1230px;
width: 100%;
margin: 0 auto;
height: 100%;
}
.cards-wrapper {
background: orange;
}
.cards {
background: blue;
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: start;
}
.card {
height: 225px;
width: 370px;
border: 1px solid red;
margin: 29px 19px;
}
<div class="container">
<div class="cards">
<div class="card">
<img src="./img/icon1.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
<div class="card">
<img src="./img/icon2.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
<div class="card">
<img src="./img/icon3.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
<div class="card">
<img src="./img/icon4.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
<div class="card">
<img src="./img/icon5.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
<div class="card">
<img src="./img/icon6.png" alt="" class="icon">
<img src="./img/line-white.png" alt="" class="line">
<p>bla</p>
</div>
</div>
</div>
Обратите внимание, что вы можете опустить граничную часть вычисления, если вы установите box-sizing
на border-box