@layer trappist {
	@layer grid {
		.row {
			display: flex;
			flex-wrap: wrap;
			gap: var(--_gap, var(--gap));
		}

		.row.no-gutters {
			--_gap: 0rem;
		}

		.row.half-gutters {
			----_gap: calc(var(--gap) / 2);
		}

		.row > * {
			flex: var(
				--override-flex,
				0 1 calc(var(--num) / 12 * (100% - (12 / var(--num) - 1) * var(----_gap, var(--gap))))
			);
			inline-size: var(
				--override-size,
				calc(var(--num) / 12 * (100% - (12 / var(--num) - 1) * var(----_gap, var(--gap))))
			);
		}

		@layer col {
			.col {
				--override-size: initial;
				--override-flex: 1;
			}

			[class*="row-cols-"] > * {
				flex: revert;
			}

			.col-1 {
				--num: 1;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-2 {
				--num: 2;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-3 {
				--num: 3;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-4 {
				--num: 4;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-5 {
				--num: 5;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-6 {
				--num: 6;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-7 {
				--num: 7;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-8 {
				--num: 8;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-9 {
				--num: 9;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-10 {
				--num: 10;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-11 {
				--num: 11;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-12 {
				--num: 12;
				--override-size: initial;
				--override-flex: initial;
			}

			.col-fit {
				--override-size: auto;
				--override-flex: 0 0 auto;
			}

			.col-fill {
				--override-size: initial;
				--override-flex: 1;
			}

			:where(.col-none, .col-empty) {
				display: none;
			}

			.col:not(.col-none) {
				display: revert;
			}

			@media (min-width: 540px) {
				[class*="row-cols--sm"] > * {
					flex: revert;
				}

				.col-sm-1 {
					--num: 1;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-2 {
					--num: 2;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-3 {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-4 {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-5 {
					--num: 5;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-6 {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-7 {
					--num: 7;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-8 {
					--num: 8;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-9 {
					--num: 9;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-10 {
					--num: 10;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-11 {
					--num: 11;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-12 {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-sm-fit {
					--override-size: auto;
					--override-flex: 0 0 auto;
				}

				.col-sm-fill {
					--override-size: initial;
					--override-flex: 1;
				}

				:where(.col-sm-none, .col-sm-empty) {
					display: none;
				}

				.col-sm:not(.col-sm-none) {
					display: revert;
				}
			}

			@media (min-width: 744px) {
				[class*="row-cols--md"] > * {
					flex: revert;
				}

				.col-md-1 {
					--num: 1;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-2 {
					--num: 2;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-3 {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-4 {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-5 {
					--num: 5;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-6 {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-7 {
					--num: 7;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-8 {
					--num: 8;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-9 {
					--num: 9;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-10 {
					--num: 10;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-11 {
					--num: 11;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-12 {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-md-fit {
					--override-size: auto;
					--override-flex: 0 0 auto;
				}

				.col-md-fill {
					--override-size: initial;
					--override-flex: 1;
				}

				:where(.col-md-none, .col-md-empty) {
					display: none;
				}

				.col-md:not(.col-md-none) {
					display: revert;
				}
			}

			@media (min-width: 960px) {
				[class*="row-cols--lg"] > * {
					flex: revert;
				}

				.col-lg-1 {
					--num: 1;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-2 {
					--num: 2;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-3 {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-4 {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-5 {
					--num: 5;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-6 {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-7 {
					--num: 7;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-8 {
					--num: 8;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-9 {
					--num: 9;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-10 {
					--num: 10;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-11 {
					--num: 11;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-12 {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-lg-fit {
					--override-size: auto;
					--override-flex: 0 0 auto;
				}

				.col-lg-fill {
					--override-size: initial;
					--override-flex: 1;
				}

				:where(.col-lg-none, .col-lg-empty) {
					display: none;
				}

				.col-lg:not(.col-lg-none) {
					display: revert;
				}
			}

			@media (min-width: 1260px) {
				[class*="row-cols--xl"] > * {
					flex: revert;
				}

				.col-xl-1 {
					--num: 1;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-2 {
					--num: 2;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-3 {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-4 {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-5 {
					--num: 5;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-6 {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-7 {
					--num: 7;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-8 {
					--num: 8;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-9 {
					--num: 9;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-10 {
					--num: 10;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-11 {
					--num: 11;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-12 {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xl-fit {
					--override-size: auto;
					--override-flex: 0 0 auto;
				}

				.col-xl-fill {
					--override-size: initial;
					--override-flex: 1;
				}

				:where(.col-xl-none, .col-xl-empty) {
					display: none;
				}

				.col-xl:not(.col-xl-none) {
					display: revert;
				}
			}

			@media (min-width: 1620px) {
				[class*="row-cols--xxl"] > * {
					flex: revert;
				}

				.col-xxl-1 {
					--num: 1;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-2 {
					--num: 2;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-3 {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-4 {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-5 {
					--num: 5;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-6 {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-7 {
					--num: 7;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-8 {
					--num: 8;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-9 {
					--num: 9;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-10 {
					--num: 10;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-11 {
					--num: 11;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-12 {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
				}

				.col-xxl-fit {
					--override-size: auto;
					--override-flex: 0 0 auto;
				}

				.col-xxl-fill {
					--override-size: initial;
					--override-flex: 1;
				}

				:where(.col-xxl-none, .col-xxl-empty) {
					display: none;
				}

				.col-xxl:not(.col-xxl-none) {
					display: revert;
				}
			}
		}

		@layer row {
			.row-cols-1 > * {
				--num: 12;
				--override-size: initial;
				--override-flex: initial;
				display: revert;
			}

			.row-cols-2 > * {
				--num: 6;
				--override-size: initial;
				--override-flex: initial;
				display: revert;
			}

			.row-cols-3 > * {
				--num: 4;
				--override-size: initial;
				--override-flex: initial;
				display: revert;
			}

			.row-cols-4 > * {
				--num: 3;
				--override-size: initial;
				--override-flex: initial;
				display: revert;
			}

			@media (min-width: 540px) {
				.row-cols-sm-1 > * {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-sm-2 > * {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-sm-3 > * {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-sm-4 > * {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}
			}

			@media (min-width: 744px) {
				.row-cols-md-1 > * {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-md-2 > * {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-md-3 > * {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-md-4 > * {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}
			}

			@media (min-width: 960px) {
				.row-cols-lg-1 > * {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-lg-2 > * {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-lg-3 > * {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-lg-4 > * {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}
			}

			@media (min-width: 1260px) {
				.row-cols-xl-1 > * {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xl-2 > * {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xl-3 > * {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xl-4 > * {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}
			}

			@media (min-width: 1620px) {
				.row-cols-xxl-1 > * {
					--num: 12;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xxl-2 > * {
					--num: 6;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xxl-3 > * {
					--num: 4;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}

				.row-cols-xxl-4 > * {
					--num: 3;
					--override-size: initial;
					--override-flex: initial;
					display: revert;
				}
			}
		}
	}
}
