
.table.cols3 {
	--table_n-cols: repeat(3, 1fr);
}
.table.cols2 {
	--table_n-cols: repeat(2, 1fr);
}
.table.cols4 {
	--table_n-cols: repeat(4, 1fr);
}

.table {
	display: grid;
	grid-gap: var(--table_grid-gap);

	.row {
		display: grid;
		grid-template-columns: var(--table_n-cols);
		grid-gap: var(--table_grid-gap);
	}

	.cell {
		flex-grow: 1;
		flex-basis: calc(100% / var(--table_n-cols));
		padding: 0.3em;
	}

	.row.head, .cell.head {
		font-weight: bold;
	}
}


.table.table--bd-solid {
	border-inline: 0.05rem solid var(--table-bd-color);

	.row:first-of-type .cell {
		border-top: 0.05rem solid var(--table-bd-color);
	}
	.cell {
		border-bottom: 0.05rem solid var(--table-bd-color);
	}
	.cell + .cell {
		border-left: 0.05rem solid var(--table-bd-color);
	}
}


.table.table--bgc-alt-odd-rows .row:nth-of-type(2n-1),
.table.table--bgc-alt-even-rows .row:nth-of-type(2n) {
	background-color: var(--table--bgc-alt_color);
}

.table.bd-row {
	border: 0.05rem solid black;
	.row + .row {
		border-top: 0.05rem solid black;
	}
}