.containerV2 {
  --side-offset-x: 1rem;
  --side-offset-y: 0rem;
  --gap-x: 1rem;
  --gap-y: 1rem;
  max-width: 1640px;
  margin: 0 auto;
  box-sizing: border-box;
  padding-left: var(--side-offset-x); padding-right: var(--side-offset-x);
  padding-top: var(--side-offset-y); padding-bottom: var(--side-offset-y);
  display: flex;
  flex-wrap: wrap;
}
/* side offsets common, v-vertical-both, h - horizontal-both */
.soh-0, .so-0 { --side-offset-x: 0rem; }   .sov-0, .so-0 { --side-offset-y: 0rem; }
.soh-1, .so-1 { --side-offset-x: 0.5rem; } .sov-1, .so-1 { --side-offset-y: 0.5rem; }
.soh-2, .so-2 { --side-offset-x: 1rem; }   .sov-2, .so-2 { --side-offset-y: 1rem; }
.soh-3, .so-3 { --side-offset-x: 1.5rem; } .sov-3, .so-3 { --side-offset-y: 1.5rem; }
.soh-4, .so-4 { --side-offset-x: 2rem; }   .sov-4, .so-4 { --side-offset-y: 2rem; }
.soh-5, .so-5 { --side-offset-x: 3rem; }   .sov-5, .so-5 { --side-offset-y: 3rem; }
.soh-6, .so-6 { --side-offset-x: 4rem; }   .sov-6, .so-6 { --side-offset-y: 4rem; }
.soh-7, .so-7 { --side-offset-x: 5rem; }   .sov-7, .so-7 { --side-offset-y: 5rem; }

/* gaps */
.g, .gv, .gh, .gt, .gb, .gl, .gr {

}

.containerV2 > .rowV2 {
  width: 100%;
  display: flex; flex-wrap: wrap;
  gap: var(--gutter-y) var(--gutter-x);
}
.containerV2 > .rowV2 > * {
  display: block;
  flex: 0 0 auto;
}
.containerV2 > .rowV2 > .col {
  flex-grow: 1;
}
.containerV2 > .rowV2.limit-3 > .col {
  min-width: calc(100%/3 - var(--gutter-x)*2);
  max-width: calc(100%/3 - var(--gutter-x)*2);
}
.containerV2 > .rowV2.limit-12 > .col {

}