$grid-classes:
  "full" 100%,
  "half" 50%,
  "third" 33.33%,
  "third-x2" 66.66%,
  "quarter" 25%,
  "quarter-x3" 75%,
  "fifth" 20%,
  "fifth-x2" 40%,
  "fifth-x3" 60%,
  "fifth-x4" 80%;

@mixin grid-item($size) {
	@include snap-down-from('#{$size}')
	{
		padding-left: $grid-item-gutter;
		padding-right: $grid-item-gutter;
		width:100% !important;
	}
	@each $selector, $value in $grid-classes
	{
		> .rwx-split-#{$selector}
		{
			@include snap-down-from('#{$size}')
			{
				padding-top:$grid-item-gutter-vertical*0.5;
				padding-bottom:$grid-item-gutter-vertical*0.5;
				padding-left:0px;
				padding-right:0px;
				width:100% !important;
			}
		}
	}
}

.rwx-split
{
	display:flex;
	flex-wrap:wrap;

	&.no-wrap
	{
		flex-wrap:nowrap;
	}

	&.wrap-sm {
		flex-wrap:nowrap;
		@include snap-down-from('sm') {
			flex-wrap: wrap;
		}
	}

	&.wrap-lg {
		flex-wrap: nowrap;
		@include snap-down-from('lg') {
			flex-wrap: wrap;
		}
	}

	&.explicit
	{
		padding-right:$grid-item-gutter*0.5;
		padding-left:$grid-item-gutter*0.5;
		&.align
		{
			padding-left:0px !important;
			padding-right:0px !important;
			&.wrap-sm {
				@include snap-up-from('sm')
				{
					margin-left: -$grid-item-gutter*0.5;
					margin-right: -$grid-item-gutter*0.5;
				}				
			}
			@include snap-up-from('md')
			{
				margin-left: -$grid-item-gutter*0.5;
				margin-right: -$grid-item-gutter*0.5;
			}
		}

		&:not(.no-wrap):not(.wrap-sm):not(.wrap-lg) {
			@include grid-item('md');
		}

		&.wrap-sm:not(.no-wrap):not(.wrap-lg) {
			@include grid-item('sm');
		}

		&.wrap-lg:not(.no-wrap):not(.wrap-sm) {
			@include grid-item('lg');
		}

		@each $selector, $value in $grid-classes
		{
			> .rwx-split-#{$selector}
			{
				word-break:break-word;
				width: #{$value};
				position:relative;
				padding-right:$grid-item-gutter*0.5;
				padding-left:$grid-item-gutter*0.5;
			}
		}
	}

	&.vertical
	{
		flex-direction:column;
		&.center
		{
			align-items:center;
			justify-content:flex-start;
		}
		&.center-vertically
		{
			justify-content:center;
			align-items:stretch;
		}
		&.end-vertically
		{
			justify-content:flex-end;
			align-items:stretch;
		}
		&.end
		{
			justify-content:flex-start;
			align-items:flex-end;
		}
	}

	&.end-vertically
	{
		align-items: flex-end;
	}
	&.center-vertically
	{
		align-items: center;
	}
	&.end
	{
		justify-content:flex-end;
	}
	&.center
	{
		justify-content:center;
	}
	&.space-between
	{
		justify-content: space-between;
	}
	&.space-around
	{
		justify-content: space-around;
	}
	&.space-even
	{
		justify-content: space-around;
		&:before
		{
			content:"";
		}
		&:after
		{
			content: "";
		}
	}

	&.non-fluid
	{
		@include snap-up-from('md')
		{
			max-width: map-get($breakpoints, 'md');
			margin:auto;
		}
		@include snap-up-from('lg')
		{
			max-width: map-get($breakpoints, 'lg');
		}
		@include snap-up-from('xl')
		{
			max-width: map-get($breakpoints, 'xl');
		}
	}
}