/* === Margin === */
.m-1 {
  margin: var(--spacing-2xs);
}
.m-2 {
  margin: var(--spacing-xs);
}
.m-3 {
  margin: var(--spacing-sm);
}
.m-4 {
  margin: var(--spacing-md);
}
.m-5 {
  margin: var(--spacing-lg);
}
.m-6 {
  margin: var(--spacing-xl);
}
.m-7 {
  margin: var(--spacing-2xl);
}
.m-8 {
  margin: var(--spacing-3xl);
}
.m-9 {
  margin: var(--spacing-4x);
}
.m-10 {
  margin: var(--spacing-6x);
}

/* === Margin Top === */
.mt-1 {
  margin-top: var(--spacing-2xs);
}
.mt-2 {
  margin-top: var(--spacing-xs);
}
.mt-3 {
  margin-top: var(--spacing-sm);
}
.mt-4 {
  margin-top: var(--spacing-md);
}
.mt-5 {
  margin-top: var(--spacing-lg);
}
.mt-6 {
  margin-top: var(--spacing-xl);
}
.mt-7 {
  margin-top: var(--spacing-2xl);
}
.mt-8 {
  margin-top: var(--spacing-3xl);
}
.mt-9 {
  margin-top: var(--spacing-4x);
}
.mt-10 {
  margin-top: var(--spacing-6x);
}

/* === Margin Bottom === */

.mb-1 {
  margin-bottom: var(--spacing-2xs);
}
.mb-2 {
  margin-bottom: var(--spacing-xs);
}
.mb-3 {
  margin-bottom: var(--spacing-sm);
}
.mb-4 {
  margin-bottom: var(--spacing-md);
}
.mb-5 {
  margin-bottom: var(--spacing-lg);
}
.mb-6 {
  margin-bottom: var(--spacing-xl);
}
.mb-7 {
  margin-bottom: var(--spacing-2xl);
}
.mb-8 {
  margin-bottom: var(--spacing-3xl);
}
.mb-9 {
  margin-bottom: var(--spacing-4x);
}
.mb-10 {
  margin-bottom: var(--spacing-6x);
}

/* === Margin Left === */

.ml-1 {
  margin-left: var(--spacing-2xs);
}
.ml-2 {
  margin-left: var(--spacing-xs);
}
.ml-3 {
  margin-left: var(--spacing-sm);
}
.ml-4 {
  margin-left: var(--spacing-md);
}
.ml-5 {
  margin-left: var(--spacing-lg);
}
.ml-6 {
  margin-left: var(--spacing-xl);
}
.ml-7 {
  margin-left: var(--spacing-2xl);
}
.ml-8 {
  margin-left: var(--spacing-3xl);
}
.ml-9 {
  margin-left: var(--spacing-4x);
}
.ml-10 {
  margin-left: var(--spacing-6x);
}

/* === Margin Right === */

.mr-1 {
  margin-right: var(--spacing-2xs);
}
.mr-2 {
  margin-right: var(--spacing-xs);
}
.mr-3 {
  margin-right: var(--spacing-md);
}
.mr-4 {
  margin-right: var(--spacing-xl);
}
.mr-5 {
  margin-right: var(--spacing-2xl);
}

/* === Padding === */
.p-1 {
  padding: var(--spacing-2xs);
}
.p-2 {
  padding: var(--spacing-xs);
}
.p-3 {
  padding: var(--spacing-sm);
}
.p-4 {
  padding: var(--spacing-md);
}
.p-5 {
  padding: var(--spacing-lg);
}
.p-6 {
  padding: var(--spacing-xl);
}
.p-7 {
  padding: var(--spacing-2xl);
}
.p-8 {
  padding: var(--spacing-3xl);
}
.p-9 {
  padding: var(--spacing-4x);
}
.p-10 {
  padding: var(--spacing-6x);
}

/* === Padding Top === */

.pt-1 {
  padding-top: var(--spacing-2xs);
}
.pt-2 {
  padding-top: var(--spacing-xs);
}
.pt-3 {
  padding-top: var(--spacing-sm);
}
.pt-4 {
  padding-top: var(--spacing-md);
}
.pt-5 {
  padding-top: var(--spacing-lg);
}
.pt-6 {
  padding-top: var(--spacing-xl);
}
.pt-7 {
  padding-top: var(--spacing-2xl);
}
.pt-8 {
  padding-top: var(--spacing-3xl);
}
.pt-9 {
  padding-top: var(--spacing-4x);
}
.pt-10 {
  padding-top: var(--spacing-6x);
}

/* === Padding Bottom === */
.pb-1 {
  padding-bottom: var(--spacing-2xs);
}
.pb-2 {
  padding-bottom: var(--spacing-xs);
}
.pb-3 {
  padding-bottom: var(--spacing-sm);
}
.pb-4 {
  padding-bottom: var(--spacing-md);
}
.pb-5 {
  padding-bottom: var(--spacing-lg);
}
.pb-6 {
  padding-bottom: var(--spacing-xl);
}
.pb-7 {
  padding-bottom: var(--spacing-2xl);
}
.pb-8 {
  padding-bottom: var(--spacing-3xl);
}
.pb-9 {
  padding-bottom: var(--spacing-4x);
}
.pb-10 {
  padding-bottom: var(--spacing-6x);
}

/* === Padding Left === */

.pl-1 {
  padding-left: var(--spacing-2xs);
}
.pl-2 {
  padding-left: var(--spacing-xs);
}
.pl-3 {
  padding-left: var(--spacing-sm);
}
.pl-4 {
  padding-left: var(--spacing-md);
}
.pl-5 {
  padding-left: var(--spacing-lg);
}
.pl-6 {
  padding-left: var(--spacing-xl);
}
.pl-7 {
  padding-left: var(--spacing-2xl);
}
.pl-8 {
  padding-left: var(--spacing-3xl);
}
.pl-9 {
  padding-left: var(--spacing-4x);
}
.pl-10 {
  padding-left: var(--spacing-6x);
}

/* === Padding Right === */

.pr-1 {
  padding-right: var(--spacing-2xs);
}
.pr-2 {
  padding-right: var(--spacing-xs);
}
.pr-3 {
  padding-right: var(--spacing-sm);
}
.pr-4 {
  padding-right: var(--spacing-md);
}
.pr-5 {
  padding-right: var(--spacing-lg);
}
.pr-6 {
  padding-right: var(--spacing-xl);
}
.pr-7 {
  padding-right: var(--spacing-2xl);
}
.pr-8 {
  padding-right: var(--spacing-3xl);
}
.pr-9 {
  padding-right: var(--spacing-4x);
}
.pr-10 {
  padding-right: var(--spacing-6x);
}

/* === Gap === */
.gap-1 {
  gap: var(--spacing-2xs);
}
.gap-2 {
  gap: var(--spacing-xs);
}
.gap-3 {
  gap: var(--spacing-sm);
}
.gap-4 {
  gap: var(--spacing-md);
}
.gap-5 {
  gap: var(--spacing-lg);
}
.gap-6 {
  gap: var(--spacing-xl);
}
.gap-7 {
  gap: var(--spacing-2xl);
}
.gap-8 {
  gap: var(--spacing-3xl);
}
.gap-9 {
  gap: var(--spacing-4x);
}
.gap-10 {
  gap: var(--spacing-6x);
}

/* === Displays === */

.d-block {
  display: block;
}
.d-inline {
  display: inline;
}
.d-inline-block {
  display: inline-block;
}
.d-flex {
  display: flex;
}
.d-inline-flex {
  display: inline-flex;
}
.d-grid {
  display: grid;
}
.d-inline-grid {
  display: inline-grid;
}
.d-none {
  display: none;
}

.position-relative {
  position: relative;
}

.position-absolute {
  position: absolute;
}

/* === Alignment === */

.justify-center {
  justify-content: center;
}

.align-center {
  align-items: center;
}

.align-start {
  align-items: start;
}

.justify-start {
  justify-content: flex-start;
}

.justify-end {
  justify-content: flex-end;
}

.justify-between {
  justify-content: space-between;
}

.justify-around {
  justify-content: space-around;
}

.align-flex-start {
  align-items: flex-start;
}

.align-end {
  align-items: flex-end;
}

/* === Widths === */

.w-0 {
  width: 0%;
}
.w-25 {
  width: 25%;
}
.w-33 {
  width: 33.3333%;
}
.w-50 {
  width: 50%;
}
.w-66 {
  width: 66.6667%;
}
.w-75 {
  width: 75%;
}
.w-100 {
  width: 100%;
}

.w-auto {
  width: auto;
}

.max-w-1440 {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}

.h-50 {
  height: 50vh;
}

.h-70 {
  height: 70vh;
}
.h-100 {
  height: 100vh;
}

/* === Textual  === */

h1 {
  font-size: var(--spacing-6x); /* 96px */
}

h2 {
  font-size: var(--spacing-4x); /* 64px */
}

h3 {
  font-size: var(--spacing-3xl); /* 48px */
}

h4 {
  font-size: var(--spacing-2xl); /* 32px */
}

h5 {
  font-size: var(--spacing-xl); /* 24px */
}

h6 {
  font-size: var(--spacing-md); /* 20px */
}

.bold {
  font-weight: bold;
}

.text-align-center {
  text-align: center;
}

/* Default columns */
.grid-cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
.grid-cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.grid-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
