.margin-auto {
  margin: auto;
}

.margin-xs {
  margin: var(--margin-xs);
}
.margin-sm {
  margin: var(--margin-sm);
}
.margin-md {
  margin: var(--margin-md);
}
.margin-lg {
  margin: var(--margin-lg);
}
.margin-xl {
  margin: var(--margin-xl);
}

.margin-top-xs {
  margin-top: var(--margin-xs);
}
.margin-top-sm {
  margin-top: var(--margin-sm);
}
.margin-top-md {
  margin-top: var(--margin-md);
}
.margin-top-lg {
  margin-top: var(--margin-lg);
}
.margin-top-xl {
  margin-top: var(--margin-xl);
}

.margin-bottom-xs {
  margin-bottom: var(--margin-xs);
}
.margin-bottom-sm {
  margin-bottom: var(--margin-sm);
}
.margin-bottom-md {
  margin-bottom: var(--margin-md);
}
.margin-bottom-lg {
  margin-bottom: var(--margin-lg);
}
.margin-bottom-xl {
  margin-bottom: var(--margin-xl);
}

.margin-left-xs {
  margin-left: var(--margin-xs);
}
.margin-left-sm {
  margin-left: var(--margin-sm);
}
.margin-left-md {
  margin-left: var(--margin-md);
}
.margin-left-lg {
  margin-left: var(--margin-lg);
}
.margin-left-xl {
  margin-left: var(--margin-xl);
}

.margin-right-xs {
  margin-right: var(--margin-xs);
}
.margin-right-sm {
  margin-right: var(--margin-sm);
}
.margin-right-md {
  margin-right: var(--margin-md);
}
.margin-right-lg {
  margin-right: var(--margin-lg);
}
.margin-right-xl {
  margin-right: var(--margin-xl);
}

.margin-x-xs {
  margin-left: var(--margin-xs);
  margin-right: var(--margin-xs);
}
.margin-x-sm {
  margin-left: var(--margin-sm);
  margin-right: var(--margin-sm);
}
.margin-x-md {
  margin-left: var(--margin-md);
  margin-right: var(--margin-md);
}
.margin-x-lg {
  margin-left: var(--margin-lg);
  margin-right: var(--margin-lg);
}
.margin-x-xl {
  margin-left: var(--margin-xl);
  margin-right: var(--margin-xl);
}

.margin-y-xs {
  margin-top: var(--margin-xs);
  margin-bottom: var(--margin-xs);
}
.margin-y-sm {
  margin-top: var(--margin-sm);
  margin-bottom: var(--margin-sm);
}
.margin-y-md {
  margin-top: var(--margin-md);
  margin-bottom: var(--margin-md);
}
.margin-y-lg {
  margin-top: var(--margin-lg);
  margin-bottom: var(--margin-lg);
}
.margin-y-xl {
  margin-top: var(--margin-xl);
  margin-bottom: var(--margin-xl);
}

/* Should be after all margins so it takes priority in css hierarchy */
.margin-0 {
  margin: 0;
}
.margin-top-0 {
  margin-top: 0;
}
.margin-bottom-0 {
  margin-bottom: 0;
}
.margin-left-0 {
  margin-left: 0;
}
.margin-right-0 {
  margin-right: 0;
}

.padding-xs {
  padding: var(--padding-xs);
}
.padding-sm {
  padding: var(--padding-sm);
}
.padding-md {
  padding: var(--padding-md);
}
.padding-lg {
  padding: var(--padding-lg);
}
.padding-xl {
  padding: var(--padding-xl);
}
.padding-xxl {
  padding: var(--padding-xxl);
}

.padding-top-xs {
  padding-top: var(--padding-xs);
}
.padding-top-sm {
  padding-top: var(--padding-sm);
}
.padding-top-md {
  padding-top: var(--padding-md);
}
.padding-top-lg {
  padding-top: var(--padding-lg);
}
.padding-top-xl {
  padding-top: var(--padding-xl);
}
.padding-top-xxl {
  padding-top: var(--padding-xxl);
}

.padding-bottom-xs {
  padding-bottom: var(--padding-xs);
}
.padding-bottom-sm {
  padding-bottom: var(--padding-sm);
}
.padding-bottom-md {
  padding-bottom: var(--padding-md);
}
.padding-bottom-lg {
  padding-bottom: var(--padding-lg);
}
.padding-bottom-xl {
  padding-bottom: var(--padding-xl);
}
.padding-bottom-xxl {
  padding-bottom: var(--padding-xxl);
}

.padding-left-xs {
  padding-left: var(--padding-xs);
}
.padding-left-sm {
  padding-left: var(--padding-sm);
}
.padding-left-md {
  padding-left: var(--padding-md);
}
.padding-left-lg {
  padding-left: var(--padding-lg);
}
.padding-left-xl {
  padding-left: var(--padding-xl);
}
.padding-left-xxl {
  padding-left: var(--padding-xxl);
}

.padding-right-xs {
  padding-right: var(--padding-xs);
}
.padding-right-sm {
  padding-right: var(--padding-sm);
}
.padding-right-md {
  padding-right: var(--padding-md);
}
.padding-right-lg {
  padding-right: var(--padding-lg);
}
.padding-right-xl {
  padding-right: var(--padding-xl);
}
.padding-right-xxl {
  padding-right: var(--padding-xxl);
}

.padding-x-xs {
  padding-left: var(--padding-xs);
  padding-right: var(--padding-xs);
}
.padding-x-sm {
  padding-left: var(--padding-sm);
  padding-right: var(--padding-sm);
}
.padding-x-md {
  padding-left: var(--padding-md);
  padding-right: var(--padding-md);
}
.padding-x-lg {
  padding-left: var(--padding-lg);
  padding-right: var(--padding-lg);
}
.padding-x-xl {
  padding-left: var(--padding-xl);
  padding-right: var(--padding-xl);
}
.padding-x-xxl {
  padding-left: var(--padding-xxl);
  padding-right: var(--padding-xxl);
}

.padding-y-xs {
  padding-top: var(--padding-xs);
  padding-bottom: var(--padding-xs);
}
.padding-y-sm {
  padding-top: var(--padding-sm);
  padding-bottom: var(--padding-sm);
}
.padding-y-md {
  padding-top: var(--padding-md);
  padding-bottom: var(--padding-md);
}
.padding-y-lg {
  padding-top: var(--padding-lg);
  padding-bottom: var(--padding-lg);
}
.padding-y-xl {
  padding-top: var(--padding-xl);
  padding-bottom: var(--padding-xl);
}
.padding-y-xxl {
  padding-top: var(--padding-xxl);
  padding-bottom: var(--padding-xxl);
}

/* Should be after all paddings so it takes priority in css hierarchy */
.padding-0 {
  padding: 0;
}
.padding-top-0 {
  padding-top: 0;
}
.padding-bottom-0 {
  padding-bottom: 0;
}
.padding-left-0 {
  padding-left: 0;
}
.padding-right-0 {
  padding-right: 0;
}

.spaced-content {
  > * {
    &:not(:last-child) {
      margin-right: var(--margin-xs);
    }
  }
}

.spaced-content-sm {
  > * {
    &:not(:last-child) {
      margin-right: var(--margin-sm);
    }
  }
}

.spaced-content-lg {
  > * {
    &:not(:last-child) {
      margin-right: var(--margin-lg);
    }
  }
}

.spaced-content-xl {
  > * {
    &:not(:last-child) {
      margin-right: var(--margin-xl);
    }
  }
}

.spaced-content-xxl {
  > * {
    &:not(:last-child) {
      margin-right: var(--margin-xxl);
    }
  }
}

.spaced-content-v-xs {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-xs);
    }
  }
}

.spaced-content-v-sm {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-sm);
    }
  }
}

.spaced-content-v {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-md);
    }
  }
}

.spaced-content-v-lg {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-lg);
    }
  }
}

.spaced-content-v-xl {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-xl);
    }
  }
}

.spaced-content-v-xxl {
  > * {
    &:not(:last-child) {
      margin-bottom: var(--margin-xxl);
    }
  }
}

.flex-gap-sm {
  gap: var(--margin-sm);
}
