@layer utilities {
	/* 
	REGION UTILITY
	Consistent block padding for page sections
	*/

	.region {
		padding-block: var(--region-space, var(--space-m));
		position: relative;
	}

	.list-style-none {
		padding: 0;

		li {
			padding: 0;
		}
	}

	/* 
VISUALLY HIDDEN / OVERFLOW HIDDEN UTILITY
Info: https://piccalil.li/quick-tip/visually-hidden/ 
*/

	.visually-hidden {
		border: 0;
		clip: rect(0 0 0 0);
		height: 0;
		margin: 0;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
		white-space: nowrap;
	}

	.overflow-hidden {
		overflow: hidden;
	}

	.overflow-clip {
		overflow: clip;
	}

	.fixed {
		position: fixed;
	}

	.absolute {
		position: absolute;
	}

	.mx-auto {
		margin-left: auto;
		margin-right: auto;
	}

	.mb-auto {
		margin-bottom: auto;
	}

	/*** padding utilities ***/

	.p-block-3xs {
		padding-block: var(--space-3xs);
	}

	.p-block-3xs-2xs {
		padding-block: var(--space-3xs-2xs);
	}

	.p-block-2xs {
		padding-block: var(--space-2xs);
	}

	.p-block-2xs-xs {
		padding-block: var(--space-2xs-xs);
	}

	.p-block-xs {
		padding-block: var(--space-xs);
	}

	.p-block-xs-s {
		padding-block: var(--space-xs-s);
	}
	.p-block-s {
		padding-block: var(--space-s);
	}

	.p-block-s-m {
		padding-block: var(--space-s-m);
	}

	.p-block-m {
		padding-block: var(--space-m);
	}

	.p-block-m-l {
		padding-block: var(--space-m-l);
	}

	.p-block-l {
		padding-block: var(--space-l);
	}

	.p-block-l-xl {
		padding-block: var(--space-l-xl);
	}

	.p-block-xl {
		padding-block: var(--space-xl);
	}

	.p-block-xl-2xl {
		padding-block: var(--space-xl-2xl);
	}

	.p-block-2xl {
		padding-block: var(--space-2xl);
	}

	.p-block-2xl-3xl {
		padding-block: var(--space-2xl-3xl);
	}

	.p-block-3xl {
		padding-block: var(--space-3xl);
	}

	.pb-0 {
		-webkit-padding-after: 0;
		padding-block-end: 0;
	}

	.pb-xs {
		-webkit-padding-after: var(--space-xs);
		padding-block-end: var(--space-xs);
	}

	.pb-s {
		-webkit-padding-after: var(--space-s);
		padding-block-end: var(--space-s);
	}

	.pb-m {
		-webkit-padding-after: var(--space-m);
		padding-block-end: var(--space-m);
	}

	.pb-gutter {
		-webkit-padding-after: var(--gutter);
		padding-block-end: var(--gutter);
	}

	.pb-l {
		-webkit-padding-after: var(--space-l);
		padding-block-end: var(--space-l);
	}

	.pb-xl {
		-webkit-padding-after: var(--space-xl);
		padding-block-end: var(--space-xl);
	}

	.pb-2xl {
		-webkit-padding-after: var(--space-2xl);
		padding-block-end: var(--space-2xl);
	}

	.pb-3xl {
		-webkit-padding-after: var(--space-3xl);
		padding-block-end: var(--space-3xl);
	}

	.block {
		display: block;
	}

	.inline {
		display: inline;
	}

	.flex {
		display: flex;
	}

	.table {
		display: table;
	}

	.grid {
		display: grid;
	}

	.contents {
		display: contents;
	}

	.hidden {
		display: none;
	}

	.max-w-38ch {
		max-width: 38ch;
	}

	.max-w-45ch {
		max-width: 45ch;
	}

	.transform {
		transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate))
			skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
	}

	/* Flexbox Utilities */
	.flex-row {
		flex-direction: row;
	}

	.flex-row-reverse {
		flex-direction: row-reverse;
	}

	.flex-col {
		flex-direction: column;
	}

	.flex-col-reverse {
		flex-direction: column-reverse;
	}

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

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

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

	.flex-1 {
		flex: 1 1 0%;
	}

	.flex-auto {
		flex: 1 1 auto;
	}

	.flex-initial {
		flex: 0 1 auto;
	}

	.flex-none {
		flex: none;
	}

	.flex-grow {
		flex-grow: 1;
	}

	.flex-grow-0 {
		flex-grow: 0;
	}

	.flex-shrink {
		flex-shrink: 1;
	}

	.flex-shrink-0 {
		flex-shrink: 0;
	}

	/* Justify Content */
	.justify-start {
		justify-content: flex-start;
	}

	.justify-end {
		justify-content: flex-end;
	}

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

	.justify-between {
		justify-content: space-between;
	}

	.justify-around {
		justify-content: space-around;
	}

	.justify-evenly {
		justify-content: space-evenly;
	}

	/* Align Items */
	.items-start {
		align-items: flex-start;
	}

	.items-end {
		align-items: flex-end;
	}

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

	.items-baseline {
		align-items: baseline;
	}

	.items-stretch {
		align-items: stretch;
	}

	/* Align Content */
	.content-start {
		align-content: flex-start;
	}

	.content-end {
		align-content: flex-end;
	}

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

	.content-between {
		align-content: space-between;
	}

	.content-around {
		align-content: space-around;
	}

	.content-evenly {
		align-content: space-evenly;
	}

	/* Align Self */
	.self-auto {
		align-self: auto;
	}

	.self-start {
		align-self: flex-start;
	}

	.self-end {
		align-self: flex-end;
	}

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

	.self-stretch {
		align-self: stretch;
	}

	.self-baseline {
		align-self: baseline;
	}

	/* Position Utilities */

	.relative {
		position: relative;
	}

	.absolute {
		position: absolute;
	}

	.fixed {
		position: fixed;
	}

	.sticky {
		position: -webkit-sticky;
		position: sticky;
	}

	/* Gap Utilities */
	.gap-0 {
		gap: 0;
	}

	.gap-3xs {
		gap: var(--space-3xs);
	}

	.gap-3xs-2xs {
		gap: var(--space-3xs-2xs);
	}

	.gap-2xs {
		gap: var(--space-2xs);
	}

	.gap-2xs-xs {
		gap: var(--space-2xs-xs);
	}

	.gap-xs {
		gap: var(--space-xs);
	}

	.gap-xs-s {
		gap: var(--space-xs-s);
	}

	.gap-s {
		gap: var(--space-s);
	}

	.gap-s-m {
		gap: var(--space-s-m);
	}

	.gap-m {
		gap: var(--space-m);
	}

	.gap-m-l {
		gap: var(--space-m-l);
	}

	.gap-l {
		gap: var(--space-l);
	}

	.gap-l-xl {
		gap: var(--space-l-xl);
	}

	.gap-xl {
		gap: var(--space-xl);
	}

	.gap-xl-2xl {
		gap: var(--space-xl-2xl);
	}

	.gap-2xl {
		gap: var(--space-2xl);
	}

	.gap-2xl-3xl {
		gap: var(--space-2xl-3xl);
	}

	.gap-3xl {
		gap: var(--space-3xl);
	}

	.gap-x-3xs {
		-moz-column-gap: var(--space-3xs);
		column-gap: var(--space-3xs);
	}

	.gap-x-3xs-2xs {
		-moz-column-gap: var(--space-3xs-2xs);
		column-gap: var(--space-3xs-2xs);
	}

	.gap-x-2xs {
		-moz-column-gap: var(--space-2xs);
		column-gap: var(--space-2xs);
	}

	.gap-x-2xs-xs {
		-moz-column-gap: var(--space-2xs-xs);
		column-gap: var(--space-2xs-xs);
	}

	.gap-x-xs {
		-moz-column-gap: var(--space-xs);
		column-gap: var(--space-xs);
	}

	.gap-x-xs-s {
		-moz-column-gap: var(--space-xs-s);
		column-gap: var(--space-xs-s);
	}

	.gap-x-s {
		-moz-column-gap: var(--space-s);
		column-gap: var(--space-s);
	}

	.gap-x-s-m {
		-moz-column-gap: var(--space-s-m);
		column-gap: var(--space-s-m);
	}

	.gap-x-m {
		-moz-column-gap: var(--space-m);
		column-gap: var(--space-m);
	}

	.gap-x-m-l {
		-moz-column-gap: var(--space-m-l);
		column-gap: var(--space-m-l);
	}

	.gap-x-l {
		-moz-column-gap: var(--space-l);
		column-gap: var(--space-l);
	}

	.gap-x-l-xl {
		-moz-column-gap: var(--space-l-xl);
		column-gap: var(--space-l-xl);
	}

	.gap-x-xl {
		-moz-column-gap: var(--space-xl);
		column-gap: var(--space-xl);
	}

	.gap-x-xl-2xl {
		-moz-column-gap: var(--space-xl-2xl);
		column-gap: var(--space-xl-2xl);
	}

	.gap-x-2xl {
		-moz-column-gap: var(--space-2xl);
		column-gap: var(--space-2xl);
	}

	.gap-x-2xl-3xl {
		-moz-column-gap: var(--space-2xl-3xl);
		column-gap: var(--space-2xl-3xl);
	}

	.gap-x-3xl {
		-moz-column-gap: var(--space-3xl);
		column-gap: var(--space-3xl);
	}

	.gap-y-3xs {
		row-gap: var(--space-3xs);
	}

	.gap-y-3xs-2xs {
		row-gap: var(--space-3xs-2xs);
	}

	.gap-y-2xs {
		row-gap: var(--space-2xs);
	}

	.gap-y-2xs-xs {
		row-gap: var(--space-2xs-xs);
	}

	.gap-y-xs {
		row-gap: var(--space-xs);
	}

	.gap-y-xs-s {
		row-gap: var(--space-xs-s);
	}

	.gap-y-s {
		row-gap: var(--space-s);
	}

	.gap-y-s-m {
		row-gap: var(--space-s-m);
	}

	.gap-y-m {
		row-gap: var(--space-m);
	}

	.gap-y-m-l {
		row-gap: var(--space-m-l);
	}

	.gap-y-l {
		row-gap: var(--space-l);
	}

	.gap-y-l-xl {
		row-gap: var(--space-l-xl);
	}

	.gap-y-xl {
		row-gap: var(--space-xl);
	}

	.gap-y-xl-2xl {
		row-gap: var(--space-xl-2xl);
	}

	.gap-y-2xl {
		row-gap: var(--space-2xl);
	}

	.gap-y-2xl-3xl {
		row-gap: var(--space-2xl-3xl);
	}

	.gap-y-3xl {
		row-gap: var(--space-3xl);
	}

	.bg-dark {
		background-color: var(--color-dark);
	}

	.bg-dark-glare {
		background-color: var(--color-dark-glare);
	}

	.bg-primary {
		background-color: var(--color-primary);
	}

	.p-\[3px\] {
		padding: 3px;
	}

	.p-m {
		padding: clamp(1.3125rem, 1.25rem + 0.29vw, 1.5rem);
	}

	.py-m {
		padding-top: clamp(1.3125rem, 1.25rem + 0.29vw, 1.5rem);
		padding-bottom: clamp(1.3125rem, 1.25rem + 0.29vw, 1.5rem);
	}

	.pt-2xl {
		padding-top: clamp(3.5rem, 3.34rem + 0.78vw, 4rem);
	}

	.text-step--3 {
		font-size: var(--step--3);
	}

	.text-step--2 {
		font-size: var(--step--2);
	}

	.text-step--1 {
		font-size: var(--step--1);
	}

	.text-step-0 {
		font-size: var(--step-0);
	}

	.text-step-1 {
		font-size: var(--step-1);
	}

	.text-step-2 {
		font-size: var(--step-2);
	}

	.text-step-3 {
		font-size: var(--step-3);
	}

	.text-step-4 {
		font-size: var(--step-4);
	}

	.text-step-5 {
		font-size: var(--step-5);
	}

	.text-step-6 {
		font-size: var(--step-6);
	}

	.text-step-7 {
		font-size: var(--step-7);
	}

	.text-step-8 {
		font-size: var(--step-8);
	}

	.text-step-9 {
		font-size: var(--step-9);
	}

	.text-step-10 {
		font-size: var(--step-10);
	}

	.leading-\[0\.75\] {
		line-height: 0.75;
	}

	.leading-\[1\] {
		line-height: 1;
	}

	.font-italic {
		font-style: italic;
	}

	/* Text Alignment */
	.text-left {
		text-align: left;
	}

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

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

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

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

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

	/* Vertical Alignment */
	.align-baseline {
		vertical-align: baseline;
	}

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

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

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

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

	.align-text-bottom {
		vertical-align: text-bottom;
	}

	/* Text Transform */
	.uppercase {
		text-transform: uppercase;
	}

	.lowercase {
		text-transform: lowercase;
	}

	.capitalize {
		text-transform: capitalize;
	}

	.normal-case {
		text-transform: none;
	}

	/* Text Decoration */
	.underline {
		-webkit-text-decoration-line: underline;
		text-decoration-line: underline;
	}

	.overline {
		-webkit-text-decoration-line: overline;
		text-decoration-line: overline;
	}

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

	.no-underline {
		-webkit-text-decoration-line: none;
		text-decoration-line: none;
	}

	/* Font Weight */
	.font-100 {
		font-weight: 100;
	}

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

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

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

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

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

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

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

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

	.font-base {
		font-family: var(--font-base);
	}

	.text-dark {
		color: #171406;
	}

	.text-light {
		color: var(--color-light);
	}

	.text-primary {
		color: var(--color-primary);
	}

	.filter {
		-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
			var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
		filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate)
			var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
	}

	.indent-color-dark-glare {
		--indent-color: #2d2816;
	}

	.indent-color-primary {
		--indent-color: #fccd26;
	}

	.jumbo-text {
		font-size: var(--step-10);
		line-height: var(--leading-micro);
		font-weight: var(--font-black);
		letter-spacing: var(--letterspacing-tight);
	}

	.min-w-full {
		min-width: 100%;
	}

	.w-full {
		width: 100%;
	}

	.min-h-full {
		min-height: 100%;
	}

	.min-h-full {
		min-height: 100%;
	}

	.cursor-auto {
		cursor: auto;
	}
}
