/*------------------------------------*\
    FLEXBOX
\*------------------------------------*/

.flex-container {
	display: -webkit-box;
	display: -webkit-flex;
	display: -moz-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-webkit-flex-direction: row;
	   -moz-box-orient: horizontal;
	   -moz-box-direction: normal;
	    -ms-flex-direction: row;
	        flex-direction: row;
	-webkit-flex-wrap: wrap;
	    -ms-flex-wrap: wrap;
	        flex-wrap: wrap;
}
.flex-container.col {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	   -moz-box-orient: vertical;
	   -moz-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
}
.flex-container.nowrap {
	-webkit-flex-wrap: nowrap;
	    -ms-flex-wrap: nowrap;
	        flex-wrap: nowrap;
}
.flex-container.reverse {
	-webkit-flex-wrap: wrap-reverse;
	    -ms-flex-wrap: wrap-reverse;
	        flex-wrap: wrap-reverse;
}

/* ---- JUSTIFY CONTENT ---- */
/* Horizontal (in row) alignment and spacing of flex items */

.flex-container.justify-center {
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	   -moz-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
}
.flex-container.justify-start {
	-webkit-box-pack: start;
	-webkit-justify-content: flex-start;
	   -moz-box-pack: start;
	    -ms-flex-pack: start;
	        justify-content: flex-start;
}
.flex-container.justify-end {
	-webkit-box-pack: end;
	-webkit-justify-content: flex-end;
	   -moz-box-pack: end;
	    -ms-flex-pack: end;
	        justify-content: flex-end;
}
.flex-container.justify-around {
	-webkit-justify-content: space-around;
	    -ms-flex-pack: distribute;
	        justify-content: space-around;
}
.flex-container.justify-between {
	-webkit-justify-content: space-around;
	    -ms-flex-pack: distribute;
	        justify-content: space-around;
}

/* ---- ALIGN ITEMS ---- */
/* Vertical (in row) positioning of flex items */

.flex-container.items-center {
	-webkit-box-align: center;
	-webkit-align-items: center;
	   -moz-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
}
.flex-container.items-start {
	-webkit-box-align: start;
	-webkit-align-items: flex-start;
	   -moz-box-align: start;
	    -ms-flex-align: start;
	        align-items: flex-start;
}
.flex-container.items-end {
	-webkit-box-align: end;
	-webkit-align-items: flex-end;
	   -moz-box-align: end;
	    -ms-flex-align: end;
	        align-items: flex-end;
}
.flex-container.items-base {
	-webkit-box-align: baseline;
	-webkit-align-items: baseline;
	   -moz-box-align: baseline;
	    -ms-flex-align: baseline;
	        align-items: baseline;
}
.flex-container.items-stretch {
	-webkit-box-align: stretch;
	-webkit-align-items: stretch;
	   -moz-box-align: stretch;
	    -ms-flex-align: stretch;
	        align-items: stretch;
}

/* ---- ALIGN CONTENT ---- */
/* Vertical (in row) alignment and spacing of flex items */

.flex-container.content-center {
	-webkit-align-content: center;
	    -ms-flex-line-pack: center;
	        align-content: center;
}
.flex-container.content-start {
	-webkit-align-content: flex-start;
	    -ms-flex-line-pack: start;
	        align-content: flex-start;
}
.flex-container.content-end {
	-webkit-align-content: flex-end;
	    -ms-flex-line-pack: end;
	        align-content: flex-end;
}
.flex-container.content-around {
	-webkit-align-content: space-around;
	    -ms-flex-line-pack: distribute;
	        align-content: space-around;
}
.flex-container.content-between {
	-webkit-align-content: space-around;
	    -ms-flex-line-pack: distribute;
	        align-content: space-around;
}
.flex-container.content-stretch {
	-webkit-align-content: stretch;
	    -ms-flex-line-pack: stretch;
	        align-content: stretch;
}

/* ---- ALIGN SELF ---- */
/* Alignment of individual flex items */

.flex-item.center {
	-webkit-align-self: center;
	    -ms-flex-item-align: center;
	            -ms-grid-row-align: center;
	        align-self: center;
}
.flex-item.start {
	-webkit-align-self: flex-start;
	    -ms-flex-item-align: start;
	        align-self: flex-start;
}
.flex-item.end {
	-webkit-align-self: flex-end;
	    -ms-flex-item-align: end;
	        align-self: flex-end;
}
.flex-item.base {
	-webkit-align-self: baseline;
	    -ms-flex-item-align: baseline;
	        align-self: baseline;
}
.flex-item.stretch {
	-webkit-align-self: stretch;
	    -ms-flex-item-align: stretch;
	            -ms-grid-row-align: stretch;
	        align-self: stretch;
}


/* ---- FLEX ITEMS ---- */

.flex-item, .flex-container > * {
}

/* ---- ALIGN SELF ---- */
/* Alignment of individual flex items */

.flex-item.center {
	-webkit-align-self: center;
	    -ms-flex-item-align: center;
	            -ms-grid-row-align: center;
	        align-self: center;
}
.flex-item.start {
	-webkit-align-self: flex-start;
	    -ms-flex-item-align: start;
	        align-self: flex-start;
}
.flex-item.end {
	-webkit-align-self: flex-end;
	    -ms-flex-item-align: end;
	        align-self: flex-end;
}
.flex-item.base {
	-webkit-align-self: baseline;
	    -ms-flex-item-align: baseline;
	        align-self: baseline;
}
.flex-item.stretch {
	-webkit-align-self: stretch;
	    -ms-flex-item-align: stretch;
	            -ms-grid-row-align: stretch;
	        align-self: stretch;
}
