p {
    color: var(--p-color);
    font-size: var(--p-font-size);
    font-family: var(--p-font-family);
    line-height: var(--p-line-height);
    letter-spacing: var(--p-letter-spacing);
    margin-bottom: var(--rem-05);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--heading-font-family);
    color: var(--heading-color);
}

h1, h2 {
    font-weight: var(--font-bold-weight);
    letter-spacing: var(--h2-letter-spacing);
    line-height: var(--h2-line-height);
}

h1 {
    font-size: var(--h1-font-size);
    letter-spacing: var(--h1-letter-spacing);
    line-height: var(--h1-line-height);
}

h1.large {
    font-size: var(--h1-xl-font-size);
}

h1.small {
    font-size: var(--h2-font-size);
}

h2 {
    font-size: var(--h2-font-size);
}

h2.small {
    font-weight: var(--font-medium-weight);
    font-size: var(--h2-font-size);
}

h2.large {
    font-size: var(--h2-xl-font-size);
}

h3 {
    font-size: var(--h3-font-size);
    font-weight: var(--font-medium-weight);
    letter-spacing: var(--h3-letter-spacing);
}

h3.large {
    font-size: var(--h3-m-font-size);
    font-weight: var(--font-medium-weight);
}

h3.small {
    font-size: var(--h3-s-font-size);
    font-weight: var(--font-bold-weight);
}

h4 {
    font-size: var(--h4-font-size);
    font-weight: var(--font-bold-weight);
}

h1 + p:not(.micro), p.subheading {
    font-size: var(--p-subheading-font-size);
}

p.micro {
    font-size: var(--p-s-font-size);
    font-weight: var(--font-light-weight);
}

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

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

.font-regular {
    font-weight: var(--font-regular-weight);
}

.font-light {
    font-weight: var(--font-light-weight);
}

a, a.link {
    text-decoration: none;
    color: var(--link-color);
    font-size: var(--p-font-size);
    font-weight: var(--font-medium-weight);
    line-height: var(--lh-1-3);
    letter-spacing: var(--link-letter-spacing);
}

a:hover, a.link:hover {
    color: var(--link-color-hover);
}