.grid {
  display: grid;
  column-gap: 2rem;
}.col-2{
  grid-template-columns: repeat(2, 1fr);
}


.flex{
  display: flex;
  flex-direction: row;  
  column-gap: 2rem;
  align-items: start;
}.flex > *{
  flex-grow: 1;
}.flex.vc{ /* vertically centered */
  align-items: center;
}.flex.bottom{ /* vertically centered */
  align-items: end;
}.flex.bottom div:last-child{
  margin-bottom: 1.25rem;
}.flex.spread > *{ /*flex spread, left side left aligned, right side right aligned */
  text-align: center;
}.flex.spread > *:last-child{
  justify-content: flex-end;
  text-align: right;
}.flex.spread > *:first-child{
  text-align: left;
}.flex.stack{
  flex-direction: column;  
}.flex .fit{
  flex-grow: 0;
}