body {
  font-family: var(--font-family);
  color: var(--text);
  line-height: var(--font-height);
  margin: 0;
  padding: 0;
  font-size: var(--font-size);
}

/* Text */
.Text {
  margin: 0;
  line-height: var(--font-height);
}

.Text--small {
  font-size: var(--font-size-s);
  line-height: var(--font-height-normal);
}

.Text--regular {
  font-size: var(--font-size);
  line-height: var(--font-height);
}

.Text--large {
  font-size: var(--font-size-m);
  line-height: var(--font-height-m);
}

.Text--default {
  color: var(--text);
}

.Text--subtle {
  color: var(--text-subtle);
}

.Text--disabled {
  color: var(--text-disabled);
}

.Text--destructive {
  color: var(--text-destructive);
}

.Text--white {
  color: var(--text-white);
}

.Text--success {
  color: var(--text-success);
}

.Text--link {
  color: var(--text-link);
}

.Text--medium {
  font-weight: var(--font-weight-medium);
}

.Text--strong {
  font-weight: var(--font-weight-bold);
}

/* Heading */
.Heading {
  margin: 0;
}

.Heading--s {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-m);
  line-height: var(--font-height-m);
}

.Heading--m {
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-l);
  line-height: var(--font-height-l);
}

.Heading--l {
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-xl);
  line-height: var(--font-height-xl);
}

.Heading--xl {
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-xxl);
  line-height: var(--font-height-xxl);
}

.Heading--xxl {
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-xxxl);
  line-height: var(--font-height-xxl);
}

.Heading--default {
  color: var(--text);
}

.Heading--subtle {
  color: var(--text-subtle);
}

.Heading--disabled {
  color: var(--text-disabled);
}

.Heading--white {
  color: var(--text-white);
}

/* Label */
.Label {
  display: inline-flex;
}

.Label--withInput {
  margin-bottom: var(--spacing-m);
}

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

.Label-text {
  line-height: var(--font-height-s);
  font-weight: var(--font-weight-normal);
  word-break: break-all;
  font-size: var(--font-size);
}

.Label-optionalText {
  line-height: var(--font-height-s);
  margin-left: var(--spacing-m);
}

.Label--disabled {
  color: var(--text-disabled);
}

.Label-requiredIndicator {
  height: 6px;
  width: 6px;
  border-radius: 50%;
  background: var(--alert);
  margin-left: var(--spacing-m);
  margin-bottom: 6px;
  display: inline-flex;
}

/* Caption */
.Caption {
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.Caption--withInput {
  margin-top: var(--spacing-m);
}

.Caption-icon {
  display: flex;
  align-content: center;
  margin-right: var(--spacing-m);
}

.Caption--hidden {
  display: none;
}

/* Subheading */
.Subheading {
  margin: 0;
  font-weight: var(--font-weight-bolder);
  font-size: var(--spacing-l);
  line-height: var(--font-height-m);
  letter-spacing: var(--letter-spacing);
  text-transform: uppercase;
}

.Subheading--default {
  color: var(--text);
}

.Subheading--subtle {
  color: var(--text-subtle);
}

.Subheading--disabled {
  color: var(--text-disabled);
}

.Subheading--white {
  color: var(--text-white);
}
