.typography {
  --color: var(--brand-50);
  --font-family: var(--font-family-sans-serif);
  --font-size: 1rem;
  --font-weight: 400;
  --line-height: 1.5;
  --letter-spacing: 0;
  --text-transform: none;
  --text-decoration: none;
  --text-align: inherit;
  --text-justify: auto;
  --text-wrap: wrap;

  font-family: var(--font-family);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
  text-transform: var(--text-transform);
  text-decoration: var(--text-decoration);
  text-align: var(--text-align);
  text-justify: var(--text-justify);
  text-wrap: var(--text-wrap);
  color: var(--color);

  margin: 0;
}

/* Color */
.typography[data-color='highlight'] {
  color: var(--black-40);
  background-color: var(--brand-40);
  padding: 0 var(--spacing-1);

  &::selection {
    background-color: var(--brand-50);
    color: var(--brand-40);
  }
}

/* Size */
.typography[data-variant='heading-lg'] {
  --font-family: var(--font-family-sans-serif);
  --font-size: 2.5rem;
  --font-weight: 700;
  --line-height: 1.2;
  --letter-spacing: -0.02em;
  --text-transform: none;
}

.typography[data-variant='heading-md'] {
  --font-family: var(--font-family-sans-serif);
  --font-size: 1.5rem;
  --font-weight: 700;
  --line-height: 1.2;
  --letter-spacing: -0.02em;
  --text-transform: none;
}

.typography[data-variant='heading-sm'] {
  --font-family: var(--font-family-sans-serif);
  --font-size: 1.25rem;
  --font-weight: 600;
  --line-height: 1.2;
  --letter-spacing: -0.02em;
  --text-transform: none;
}

.typography[data-variant='body-md'] {
  --font-family: var(--font-family-sans-serif);
  --font-size: 1rem;
  --font-weight: 400;
  --line-height: 1.5;
  --letter-spacing: 0;
  --text-transform: none;
  --text-decoration: none;
  --text-align: left;
  --text-justify: auto;
  --text-wrap: wrap;
}

.typography[data-variant='body-sm'] {
  --font-family: var(--font-family-sans-serif);
  --font-size: 0.875rem;
  --font-weight: 400;
  --line-height: 1.5;
  --letter-spacing: 0;
  --text-transform: none;
  --text-decoration: none;
  --text-justify: auto;
  --text-wrap: wrap;
}
