Как изменить положение у строчно-блочных элементов списка?
У инлайна по умолчанию стоит выравнивание по базовой линии текста.
Вам достаточно просто переопределить его

vertical-align: top;

Но верстка сеток на inline-block – это архаизм. Здесь вполне можно использовать flex + flex-wrap. А лучше grid, если можно по условиям тз.
</li><!-- тут символ переноса строки, вносит свою лепту как текстовая нода, имеющая небольшие, но геометрические размеры -->
      <li class="modules-card layout">
Часто такой эффект выявляется, когда используется display: inline-block.
Выход - не переносить li элементы (и не оставлять пробелы), или нивелировать размер текстовых нод с помощью css.