.h1 {
  font-size: 3.125rem;
  font-weight: bold;
  line-height: 4rem;
}

@media (max-width: 768px) {
  .h1 {
    font-size: 2.5rem;
    line-height: 3.25rem;
  }
}

.h2 {
  font-size: 2.5rem;
  font-weight: bold;
  line-height: 3.25rem;
}

@media (max-width: 768px) {
  .h2 {
    font-size: 1.875rem;
    line-height: 2.375rem;
  }
}

.h3 {
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1.875rem;
}

@media (max-width: 768px) {
  .h3 {
    font-size: 1.375rem;
    line-height: 1.75rem;
  }
}

.h4 {
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.625rem;
}

.h5 {
  font-size: 1.125rem;
  font-weight: bold;
  line-height: 1.5rem;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

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

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

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

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

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

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

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

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

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

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

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

.stretched-link::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}

.p-0 { padding: 0; }
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-2\.5 { padding: 0.625rem; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-7 { padding: 1.75rem; }
.p-8 { padding: 2rem; }
.p-9 { padding: 2.25rem; }
.p-10 { padding: 2.5rem; }

.py-0 { padding-block: 0; }
.py-1 { padding-block: 0.25rem; }
.py-2 { padding-block: 0.5rem; }
.py-2\.5 { padding-block: 0.625rem; }
.py-3 { padding-block: 0.75rem; }
.py-4 { padding-block: 1rem; }
.py-5 { padding-block: 1.25rem; }
.py-6 { padding-block: 1.5rem; }
.py-7 { padding-block: 1.75rem; }
.py-8 { padding-block: 2rem; }
.py-9 { padding-block: 2.25rem; }
.py-10 { padding-block: 2.5rem; }

.px-0 { padding-inline: 0; }
.px-1 { padding-inline: 0.25rem; }
.px-2 { padding-inline: 0.5rem; }
.px-2\.5 { padding-inline: 0.625rem; }
.px-3 { padding-inline: 0.75rem; }
.px-4 { padding-inline: 1rem; }
.px-5 { padding-inline: 1.25rem; }
.px-6 { padding-inline: 1.5rem; }
.px-7 { padding-inline: 1.75rem; }
.px-8 { padding-inline: 2rem; }
.px-9 { padding-inline: 2.25rem; }
.px-10 { padding-inline: 2.5rem; }

.pt-0 { padding-block-start: 0; }
.pt-1 { padding-block-start: 0.25rem; }
.pt-2 { padding-block-start: 0.5rem; }
.pt-2\.5 { padding-block-start: 0.625rem; }
.pt-3 { padding-block-start: 0.75rem; }
.pt-4 { padding-block-start: 1rem; }
.pt-5 { padding-block-start: 1.25rem; }
.pt-6 { padding-block-start: 1.5rem; }
.pt-7 { padding-block-start: 1.75rem; }
.pt-8 { padding-block-start: 2rem; }
.pt-9 { padding-block-start: 2.25rem; }
.pt-10 { padding-block-start: 2.5rem; }

.pb-0 { padding-block-end: 0; }
.pb-1 { padding-block-end: 0.25rem; }
.pb-2 { padding-block-end: 0.5rem; }
.pb-2\.5 { padding-block-end: 0.625rem; }
.pb-3 { padding-block-end: 0.75rem; }
.pb-4 { padding-block-end: 1rem; }
.pb-5 { padding-block-end: 1.25rem; }
.pb-6 { padding-block-end: 1.5rem; }
.pb-7 { padding-block-end: 1.75rem; }
.pb-8 { padding-block-end: 2rem; }
.pb-9 { padding-block-end: 2.25rem; }
.pb-10 { padding-block-end: 2.5rem; }

.ps-0 { padding-inline-start: 0; }
.ps-1 { padding-inline-start: 0.25rem; }
.ps-2 { padding-inline-start: 0.5rem; }
.ps-2\.5 { padding-inline-start: 0.625rem; }
.ps-3 { padding-inline-start: 0.75rem; }
.ps-4 { padding-inline-start: 1rem; }
.ps-5 { padding-inline-start: 1.25rem; }
.ps-6 { padding-inline-start: 1.5rem; }
.ps-7 { padding-inline-start: 1.75rem; }
.ps-8 { padding-inline-start: 2rem; }
.ps-9 { padding-inline-start: 2.25rem; }
.ps-10 { padding-inline-start: 2.5rem; }

.pe-0 { padding-inline-end: 0; }
.pe-1 { padding-inline-end: 0.25rem; }
.pe-2 { padding-inline-end: 0.5rem; }
.pe-2\.5 { padding-inline-end: 0.625rem; }
.pe-3 { padding-inline-end: 0.75rem; }
.pe-4 { padding-inline-end: 1rem; }
.pe-5 { padding-inline-end: 1.25rem; }
.pe-6 { padding-inline-end: 1.5rem; }
.pe-7 { padding-inline-end: 1.75rem; }
.pe-8 { padding-inline-end: 2rem; }
.pe-9 { padding-inline-end: 2.25rem; }
.pe-10 { padding-inline-end: 2.5rem; }

.m-0 { margin: 0; }
.m-1 { margin: 0.25rem; }
.m-2 { margin: 0.5rem; }
.m-2\.5 { margin: 0.625rem; }
.m-3 { margin: 0.75rem; }
.m-4 { margin: 1rem; }
.m-5 { margin: 1.25rem; }
.m-6 { margin: 1.5rem; }
.m-7 { margin: 1.75rem; }
.m-8 { margin: 2rem; }
.m-9 { margin: 2.25rem; }
.m-10 { margin: 2.5rem; }
.m-auto { margin: auto; }

.my-0 { margin-block: 0; }
.my-1 { margin-block: 0.25rem; }
.my-2 { margin-block: 0.5rem; }
.my-2\.5 { margin-block: 0.625rem; }
.my-3 { margin-block: 0.75rem; }
.my-4 { margin-block: 1rem; }
.my-5 { margin-block: 1.25rem; }
.my-6 { margin-block: 1.5rem; }
.my-7 { margin-block: 1.75rem; }
.my-8 { margin-block: 2rem; }
.my-9 { margin-block: 2.25rem; }
.my-10 { margin-block: 2.5rem; }
.my-auto { margin-block: auto; }

.mx-0 { margin-inline: 0; }
.mx-1 { margin-inline: 0.25rem; }
.mx-2 { margin-inline: 0.5rem; }
.mx-2\.5 { margin-inline: 0.625rem; }
.mx-3 { margin-inline: 0.75rem; }
.mx-4 { margin-inline: 1rem; }
.mx-5 { margin-inline: 1.25rem; }
.mx-6 { margin-inline: 1.5rem; }
.mx-7 { margin-inline: 1.75rem; }
.mx-8 { margin-inline: 2rem; }
.mx-9 { margin-inline: 2.25rem; }
.mx-10 { margin-inline: 2.5rem; }
.mx-auto { margin-inline: auto; }

.mt-0 { margin-block-start: 0; }
.mt-1 { margin-block-start: 0.25rem; }
.mt-2 { margin-block-start: 0.5rem; }
.mt-2\.5 { margin-block-start: 0.625rem; }
.mt-3 { margin-block-start: 0.75rem; }
.mt-4 { margin-block-start: 1rem; }
.mt-5 { margin-block-start: 1.25rem; }
.mt-6 { margin-block-start: 1.5rem; }
.mt-7 { margin-block-start: 1.75rem; }
.mt-8 { margin-block-start: 2rem; }
.mt-9 { margin-block-start: 2.25rem; }
.mt-10 { margin-block-start: 2.5rem; }
.mt-auto { margin-block-start: auto; }

.mb-0 { margin-block-end: 0; }
.mb-1 { margin-block-end: 0.25rem; }
.mb-2 { margin-block-end: 0.5rem; }
.mb-2\.5 { margin-block-end: 0.625rem; }
.mb-3 { margin-block-end: 0.75rem; }
.mb-4 { margin-block-end: 1rem; }
.mb-5 { margin-block-end: 1.25rem; }
.mb-6 { margin-block-end: 1.5rem; }
.mb-7 { margin-block-end: 1.75rem; }
.mb-8 { margin-block-end: 2rem; }
.mb-9 { margin-block-end: 2.25rem; }
.mb-10 { margin-block-end: 2.5rem; }
.mb-auto { margin-block-end: auto; }

.ms-0 { margin-inline-start: 0; }
.ms-1 { margin-inline-start: 0.25rem; }
.ms-2 { margin-inline-start: 0.5rem; }
.ms-2\.5 { margin-inline-start: 0.625rem; }
.ms-3 { margin-inline-start: 0.75rem; }
.ms-4 { margin-inline-start: 1rem; }
.ms-5 { margin-inline-start: 1.25rem; }
.ms-6 { margin-inline-start: 1.5rem; }
.ms-7 { margin-inline-start: 1.75rem; }
.ms-8 { margin-inline-start: 2rem; }
.ms-9 { margin-inline-start: 2.25rem; }
.ms-10 { margin-inline-start: 2.5rem; }
.ms-auto { margin-inline-start: auto; }

.me-0 { margin-inline-end: 0; }
.me-1 { margin-inline-end: 0.25rem; }
.me-2 { margin-inline-end: 0.5rem; }
.me-2\.5 { margin-inline-end: 0.625rem; }
.me-3 { margin-inline-end: 0.75rem; }
.me-4 { margin-inline-end: 1rem; }
.me-5 { margin-inline-end: 1.25rem; }
.me-6 { margin-inline-end: 1.5rem; }
.me-7 { margin-inline-end: 1.75rem; }
.me-8 { margin-inline-end: 2rem; }
.me-9 { margin-inline-end: 2.25rem; }
.me-10 { margin-inline-end: 2.5rem; }
.me-auto { margin-inline-end: auto; }

.mt-50px { margin-block-start: 3.125rem; }
.mt-70px { margin-block-start: 4.375rem; }
.mt-120px { margin-block-start: 7.5rem; }
.mb-50px { margin-block-end: 3.125rem; }
.mb-70px { margin-block-end: 4.375rem; }
.mb-120px { margin-block-end: 7.5rem; }

.gap-0 { gap: 0; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-7 { gap: 1.75rem; }
.gap-8 { gap: 2rem; }
.gap-12 { gap: 3rem; }

.gap-y-0 { row-gap: 0; }
.gap-y-2 { row-gap: 0.5rem; }
.gap-y-3 { row-gap: 0.75rem; }
.gap-y-4 { row-gap: 1rem; }
.gap-y-5 { row-gap: 1.25rem; }
.gap-y-6 { row-gap: 1.5rem; }
.gap-y-7 { row-gap: 1.75rem; }
.gap-y-8 { row-gap: 2rem; }
.gap-y-12 { row-gap: 3rem; }

.gap-x-0 { column-gap: 0; }
.gap-x-2 { column-gap: 0.5rem; }
.gap-x-3 { column-gap: 0.75rem; }
.gap-x-4 { column-gap: 1rem; }
.gap-x-5 { column-gap: 1.25rem; }
.gap-x-6 { column-gap: 1.5rem; }
.gap-x-7 { column-gap: 1.75rem; }
.gap-x-8 { column-gap: 2rem; }
.gap-x-12 { column-gap: 3rem; }

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

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

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

.min-h-screen { min-height: 100vh; }

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