.container_grid {
	display: grid;
	grid-template-columns: 1fr 2fr 1fr;
	grid-template-rows: repeat(11, auto);
	padding: calc(var(--density_ds) * 0.6em);
	gap: calc(var(--density_ds) * 0.6em);
	max-width: 1500px;
	margin: auto;
	
	& main,
	& aside {
		display: contents;
	}
}

.hdr_box {
	grid-column: 1;
	grid-row: 1;
}

.ftr_box {
	grid-column: 1;
	grid-row: 11;
}

.case_box {
	grid-column: 2;
}

.case_box:nth-of-type(1) { grid-row: 1; }
.case_box:nth-of-type(2) { grid-row: 2; }
.case_box:nth-of-type(3) { grid-row: 3; }
.case_box:nth-of-type(4) { grid-row: 4; }
.case_box:nth-of-type(5) { grid-row: 5; }
.case_box:nth-of-type(6) { grid-row: 6; }
.case_box:nth-of-type(7) { grid-row: 7; }
.case_box:nth-of-type(8) { grid-row: 8; }
.case_box:nth-of-type(9) { grid-row: 9; }
.case_box:nth-of-type(10) { grid-row: 10; }
.case_box:nth-of-type(11) { grid-row: 11; }

.row_exp_do {
	grid-column: 3;
}

.row_exp_do:nth-of-type(1) { grid-row: 1; }
.row_exp_do:nth-of-type(2) { grid-row: 7; }
.row_exp_do:nth-of-type(3) { grid-row: 8; }

.do_box_solo {
	grid-column: 3;
}

.do_box_solo:nth-of-type(1) { grid-row: 2; }
.do_box_solo:nth-of-type(2) { grid-row: 3; }
.do_box_solo:nth-of-type(3) { grid-row: 4; }
.do_box_solo:nth-of-type(4) { grid-row: 5; }
.do_box_solo:nth-of-type(5) { grid-row: 6; }
.do_box_solo:nth-of-type(6) { grid-row: 9; }
.do_box_solo:nth-of-type(7) { grid-row: 10; }
.do_box_solo:nth-of-type(8) { grid-row: 11; }

@media (width < 768px) {
	.container_grid {
		display: flex;
		flex-direction: column;
	}

	.row_exp_do {
		display: contents;
	}

	.hdr_box,
	.ftr_box,
	.case_box,
	.exp_box,
	.do_box,
	.do_box_solo {
		align-self: normal;
	}

	.hdr_box { order: 1; margin-bottom: calc(var(--density_ds) * 2.4em); margin-right: calc(var(--density_ds) * 1.8em); }

	.row_exp_do:nth-of-type(1) .exp_box { order: 2; margin-bottom: calc(var(--density_ds) * 1.2em); margin-left: calc(var(--density_ds) * 1.8em); }
	.case_box:nth-of-type(1) { order: 3; }
	.row_exp_do:nth-of-type(1) .do_box { order: 4; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(2) { order: 5; }
	.do_box_solo:nth-of-type(1) { order: 6; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(3) { order: 7; }
	.do_box_solo:nth-of-type(2) { order: 8; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(4) { order: 9; }
	.do_box_solo:nth-of-type(3) { order: 10; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(5) { order: 11; }
	.do_box_solo:nth-of-type(4) { order: 12; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(6) { order: 13; }
	.do_box_solo:nth-of-type(5) { order: 14; margin-bottom: calc(var(--density_ds) * 2.4em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.row_exp_do:nth-of-type(2) .exp_box { order: 15; margin-bottom: calc(var(--density_ds) * 1.2em); margin-left: calc(var(--density_ds) * 1.8em); }
	.case_box:nth-of-type(7) { order: 16; }
	.row_exp_do:nth-of-type(2) .do_box { order: 17; margin-bottom: calc(var(--density_ds) * 2.4em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.row_exp_do:nth-of-type(3) .exp_box { order: 18; margin-bottom: calc(var(--density_ds) * 1.2em); margin-left: calc(var(--density_ds) * 1.8em); }
	.case_box:nth-of-type(8) { order: 19; }
	.row_exp_do:nth-of-type(3) .do_box { order: 20; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(9) { order: 21; }
	.do_box_solo:nth-of-type(6) { order: 22; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(10) { order: 23; }
	.do_box_solo:nth-of-type(7) { order: 24; margin-bottom: calc(var(--density_ds) * 1.2em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.case_box:nth-of-type(11) { order: 25; }
	.do_box_solo:nth-of-type(8) { order: 26; margin-bottom: calc(var(--density_ds) * 2.4em); margin-right: calc(var(--density_ds) * 1.8em); margin-left: calc(var(--density_ds) * 1.8em); }

	.ftr_box { order: 27; margin-right: calc(var(--density_ds) * 1.8em); }
}