@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    %flex#{$infix}-row            { flex-direction: row !important; }
    %flex#{$infix}-column         { flex-direction: column !important; }
    %flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }
    %flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }

    %flex#{$infix}-wrap         { flex-wrap: wrap !important; }
    %flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }
    %flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
    %flex#{$infix}-fill         { flex: 1 1 auto !important; }
    %flex#{$infix}-grow-0       { flex-grow: 0 !important; }
    %flex#{$infix}-grow-1       { flex-grow: 1 !important; }
    %flex#{$infix}-shrink-0     { flex-shrink: 0 !important; }
    %flex#{$infix}-shrink-1     { flex-shrink: 1 !important; }

    %justify-content#{$infix}-start   { justify-content: flex-start !important; }
    %justify-content#{$infix}-end     { justify-content: flex-end !important; }
    %justify-content#{$infix}-center  { justify-content: center !important; }
    %justify-content#{$infix}-between { justify-content: space-between !important; }
    %justify-content#{$infix}-around  { justify-content: space-around !important; }

    %align-items#{$infix}-start    { align-items: flex-start !important; }
    %align-items#{$infix}-end      { align-items: flex-end !important; }
    %align-items#{$infix}-center   { align-items: center !important; }
    %align-items#{$infix}-baseline { align-items: baseline !important; }
    %align-items#{$infix}-stretch  { align-items: stretch !important; }

    %align-content#{$infix}-start   { align-content: flex-start !important; }
    %align-content#{$infix}-end     { align-content: flex-end !important; }
    %align-content#{$infix}-center  { align-content: center !important; }
    %align-content#{$infix}-between { align-content: space-between !important; }
    %align-content#{$infix}-around  { align-content: space-around !important; }
    %align-content#{$infix}-stretch { align-content: stretch !important; }

    %align-self#{$infix}-auto     { align-self: auto !important; }
    %align-self#{$infix}-start    { align-self: flex-start !important; }
    %align-self#{$infix}-end      { align-self: flex-end !important; }
    %align-self#{$infix}-center   { align-self: center !important; }
    %align-self#{$infix}-baseline { align-self: baseline !important; }
    %align-self#{$infix}-stretch  { align-self: stretch !important; }
  }
}


%flex-auto,
.flex-auto {
  flex: auto;
}

%flex-1,
.flex-1 {
	flex: 1;
}

%x-flex-start,
.x-flex-start {
  @extend %d-flex,
          %align-items-center,
          %justify-content-start;
}

%x-flex-end,
.x-flex-end {
  @extend %d-flex,
          %align-items-center,
          %justify-content-end;
}

%x-flex-center,
.x-flex-center {
  @extend %d-flex,
          %align-items-center,
          %justify-content-center;
}

%x-flex-a-center {
  @extend %d-flex,
          %align-items-center;
}

%x-flex-j-center {
  @extend %d-flex,
          %justify-content-center;
}


%x-flex-between-end,
.x-flex-between-end {
  @extend %d-flex,
          %align-items-end,
          %justify-content-between;
}

%x-flex-between-start,
.x-flex-between-start{
  @extend %d-flex,
          %align-items-start,
          %justify-content-between;
}

.x-highlight {
   * {
    font-weight: 500;
   }
  &:after {
    content: '';
    width: 100%;
    height: 100%;
    background-color: #333333;
    opacity: 0.04;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    z-index: 0;
  }
}

.x-border-right {
  &:after {
    content: '';
    width: 1px;
    height: 200%;
    background-color: $border-color;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
  }
}

.x-border-left {
  &:before {
    content: '';
    width: 1px;
    height: 200%;
    background-color: $border-color;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
  }
}
