Добрый день.
Кажется, у меня довольно простой вопрос, но не могу найти ответ. 
Есть grid-блок, внутри которого первые два элемента выстраиваются по правилу 2/3 (синий) + 1/3 (желтый), а все остальные (красные) должны занимать 100% ширины. При этом количество и теги красных могут быть разными. В принципе, у меня получается решить эту задачу вот так:
Сам код
.wrapper {
  max-width: 800px;
  background-color: #e9a058;
  margin: 0 auto;
  min-height: 300px;
  
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3,1fr);
}
.item {
  min-height: 30px;
}
.item-blue {
  background-color: blue;
  grid-column: 1 / span 2;
}
.item-yellow {
  background-color: yellow;
  grid-column: 3 / span 1;
}
.item-red {
  background-color: red;
  grid-column: 1 / span 3;
}
  
Ссылка на codepen
А проблема в том, что теги у красных блоков могут быть разными (и div, и img, и section), поэтому выбрать их по :nth-child не получится. Задавать им явный класс - тоже, т.к. это user-generated контент. 
Есть ли какое-то автоматическое решение для этой задачи?