.flex-grid {
	display: flex;
	flex-wrap: wrap;
	margin-right: -1rem;
	margin-left: -1rem;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.flex-item {
	display: flex;
	flex-wrap: wrap;
	flex: 1 0 25%;
	padding: 1rem;

	&.grow-2 {
		flex: 2 0 25%;
	}

}

.flex-content {
	position: relative;

	&.hover {
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0);
		transition: box-shadow 250ms;

		&:hover {
			box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
			text-decoration: none;
		}
	}
}

.flex-bottom {
	width: 100%;
	align-self: flex-bottom;
}
.flex-grid {
	display: flex;
	flex-wrap: wrap;
	margin-right: -1rem;
	margin-left: -1rem;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.flex-item {
	display: flex;
	flex-wrap: wrap;
	flex: 1 0 25%;
	padding: 1rem;

	&.grow-2 {
		flex: 1 0 50%;

		.fixed-width > & {
			width: 50%;
		}
	}

	&.shrink-1 {
		flex: 0 1;

		.fixed-width > & {
			width: auto;
		}
	}

	.fixed-width > & {
		flex: none;
		width: 25%;
	}

}

.flex-content {
	position: relative;

	&.hover {
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0);
		transition: box-shadow 250ms;

		&:hover {
			box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
			text-decoration: none;
		}
	}
}

.flex-bottom {
	width: 100%;
	align-self: flex-bottom;
}
Add variants to flex grid
Add variants to flex grid
