.grid {
	display: grid;
	gap: var(--grid-gap);
}

.grid[data-columns="2"] {
	--grid-template-columns: 1fr 1fr;
	grid-template-columns: var(--grid-template-columns);
	grid-auto-flow: initial;
}

.grid[data-columns="responsive"] {
	--grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--grid-item-min-width)), 1fr));
	grid-template-columns: var(--grid-template-columns);
}

.grid[data-columns="scroll"] {
	grid-auto-flow: column;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.grid[data-columns="scroll"]>* {
	width: min(var(--grid-item-min-width), 60vw);
}

.grid[data-columns="scroll-snap"] {
	grid-auto-flow: column;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
}

.grid[data-columns="scroll-snap"]>* {
	width: min(var(--grid-item-min-width), 60vw);
	scroll-snap-align: var(--scroll-snap-align, center);
	scroll-snap-stop: always;
}

.flex {
	display: flex;
	gap: var(--flex-gap);
}

.flex.flex-wrap {
	flex-wrap: wrap;
}

@media screen and (min-width: 1024px) {
	.grid[data-tablet-columns="2"] {
		--grid-template-columns: 1fr 1fr;
		grid-template-columns: var(--grid-template-columns);
		grid-auto-flow: initial;
	}

	.grid[data-tablet-columns="3"] {
		--grid-template-columns: 1fr 1fr 1fr;
		grid-template-columns: var(--grid-template-columns);
		grid-auto-flow: initial;
	}

	.grid[data-tablet-columns="4"] {
		--grid-template-columns: 1fr 1fr 1fr 1fr;
		grid-template-columns: var(--grid-template-columns);
		grid-auto-flow: initial;
	}

	.grid[data-tablet-columns="even"] {
		grid-auto-flow: column;
	}

	.md-flex {
		display: flex;
		gap: var(--flex-gap);
	}
}

.grid.items-center {
	align-items: center;
}

.white-space-nowrap {
	white-space: nowrap;
}

.wrapper {
	max-width: min(100% - 1rem, var(--wrapper-width, 1100px));
	margin-inline: auto;
}

.wrapper-small {
	max-width: min(100% - 1rem, 30rem);
	margin-inline: auto;
}

.table-wrapper {
	padding: var(--size-1) 0;
	overflow: auto;
	max-height: 80vh;
}

.content-grid,
.full-bleed,
[data-full-bleed] {
	--gap: clamp(1rem, 6vw, 3rem);
	--full-width: minmax(var(--gap), 1fr);
	--content: min(var(--content-grid-width, 1100px), 100% - var(--gap) * 2);
	--breakout: minmax(0, 5rem);

	display: grid;
	grid-template-columns:
		[full-width-start] var(--full-width) [breakout-start] var(--breakout) [content-start] var(--content) [content-end] var(--breakout) [breakout-end] var(--full-width) [full-width-end];
}

.content-grid>*,
.full-bleed>*,
[data-full-bleed]>* {
	grid-column: content;
}

.content-grid>.breakout,
.content-grid>[data-breakout] {
	grid-column: breakout;
}

.content-grid>.full-width,
.content-grid>[data-full-width] {
	grid-column: full-width;
}

.content-grid>.full-bleed,
.content-grid>[data-full-bleed] {
	grid-column: full-width;
}

.text-left {
	text-align: left;
}

.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.align-top {
	vertical-align: top;
}

.justify-center {
	justify-content: center;
}

.hidden {
	display: none;
}

[data-rounded-corners] {
	border-radius: var(--rounded-corner-radius, var(--radius-3));
	overflow: hidden;
}

[data-rounded-corners-image] img {
	border-radius: var(--rounded-corner-radius-image, var(--radius-3));
	overflow: hidden;
}

[data-border] {
	--border: none;
}

[data-border-all] {
	border: var(--border, none);
}

[data-border-left] {
	border-left: var(--border, none);
}

[data-border-right] {
	border-right: var(--border, none);
}

[data-border-top] {
	border-top: var(--border, none);
}

[data-border-bottom] {
	border-bottom: var(--border, none);
}

[data-border-image] {
	--border-image: none;
}

[data-border-image-all] img {
	border: var(--border-image, none);
}

[data-border-image-left] img {
	border-left: var(--border-image, none);
}

[data-border-image-right] img {
	border-right: var(--border-image, none);
}

[data-border-image-top] img {
	border-top: var(--border-image, none);
}

[data-border-image-bottom] img {
	border-bottom: var(--border-image, none);
}

[data-padding] {
	padding: var(--padding);
}

[data-padding-image] img {
	padding: var(--padding-image);
}

[data-padding-text] .text-content {
	padding: var(--padding-text);
}

[data-text-center] {
	text-align: center;
}

[data-text-end] {
	text-align: end;
}

[data-text-justify] {
	text-align: justify;
}

[data-text-left] {
	text-align: left;
}

[data-text-right] {
	text-align: right;
}

[data-text-start] {
	text-align: start;
}

.py-1 {
	padding-block: 0.25rem;
}

.py-2 {
	padding-block: 0.5rem;
}

.pt-2 {
	padding-top: 0.5rem;
}

.pt-4 {
	padding-top: 1rem;
}

.pb-2 {
	padding-bottom: 0.5rem;
}

.px-2 {
	padding-inline: 0.5rem;
}

.p-2 {
	padding: 0.5rem;
}

.font-bold {
	font-weight: bold;
}

.font-thin {
	font-weight: 100;
}

.line-through {
	text-decoration-line: line-through;
}

.block {
	display: block !important;
}

.w-full {
	width: 100%;
}

.text-nowrap {
	text-wrap: nowrap;
}