Разметка категорий в wp_query по четности или по чередованию

По имеющимся данным в интернете, собрал код создающий разметку блоков по рубрике. Сколько рубрик столько блоков, с названием рубрики и постами внутри. Данные оформлены как owl-carousel.

<?php
$categories = get_categories( array(
'taxonomy'     => 'category',
'meta_key'     => '',
'orderby'      => 'meta_value_num',
'order'        => 'ASC',
'hide_empty'   => 1,
'exclude'      => '',
'include'      => '',
) );

if( $categories ){
foreach( $categories as $cat ){

$arg_posts =  array(
'orderby'      => 'name',
'order'        => 'ASC',
'posts_per_page' => '20',
'post_type'    => 'post',
'post_status'  => 'publish',
'cat'          => $cat->cat_ID,
);
$query = new WP_Query($arg_posts);

if ( $query->have_posts()  ) {?>
<section>
 <div class="main__section-wraper">
  <h2>name; ?></h2>
 <div class="owl-carousel product">
have_posts() ) : $query->the_post(); ?>
   <div class="product__card">
	<h3></h3>
	<div class="product__wrapper">
	 <div class="image__wrapper">
	  <div></div>
	 </div>
	<div class="text__wrapper">

	  <a href="">подробнее</a>
	 </div>
	</div>
   </div>

 </div>
 </div>
</section>

<?php }
 }
} ?>

Выводиться таким образом.

Выводит

Как добиться вывода таким образом, чтобы разметка чередовалась? Пробую добавить еще один цикл он только дублирует.