[data-component="heading"] {
  [data-slot] > &:last-child * {
    margin-bottom: 0;
  }
}

[data-component="text"] {
  [data-slot] > &:last-child * {
    margin-bottom: 0;
  }
}

[data-component="rich-text"]{
  [data-slot] > &:last-child [data-rich-text="text"] > *:last-child {
    margin-bottom: 0;
  }

  &.u-mb-0 [data-rich-text="text"] > *:last-child {
    margin-bottom: 0;
  }

  & [data-text-override] {margin-block-end: unset;}
}

[data-rich-text="text"] {
  text-wrap: pretty;

  :where(h1, h2, h3, h4, h5, h6):not(:first-child) {
    margin-top: 0.5em;
  }

  blockquote {
    border-left-style: solid;
    border-left-width: 2px;
    border-left-color: inherit;
    padding: .75em 1em;
    font-size: 1.3em;
    line-height: 1.5em;
    &:not(:first-child) {
      margin-top: 1em;
    }
    &:not(:last-child) {
      margin-bottom: 1em;
    }
  }

  figure {
    border-radius: var(--image--border-radius);
    overflow: hidden;
    &:not(:first-child) {
      margin-top: 1em;
    }
    &:not(:last-child) {
      margin-bottom: 1em;
    }
  }

  img {
    border-radius: var(--image--border-radius);
    overflow: hidden;
  }

  figcaption {
    margin-top: 1em;
    margin-bottom: 1em;
    font-size: .8em;
  }

  code {
    border-radius: 4px;
    padding-left: .4em;
    padding-right: .4em;
    font-size: .9em;
    display: inline-block;
  }
}

[data-text-override="h1"], h1, .h1 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h1--bottom-margin);
  font-family: var(--h1--font);
  font-size: var(--h1--font-size);
  line-height: var(--h1--line-height);
  font-weight: var(--h1--font-weight);
  letter-spacing: var(--h1--letter-spacing);
}
[data-text-override="h2"], h2, .h2 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h2--bottom-margin);
  font-family: var(--h2--font);
  font-size: var(--h2--font-size);
  line-height: var(--h2--line-height);
  font-weight: var(--h2--font-weight);
  letter-spacing: var(--h2--letter-spacing);
}
[data-text-override="h3"], h3, .h3 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h3--bottom-margin);
  font-family: var(--h3--font);
  font-size: var(--h3--font-size);
  line-height: var(--h3--line-height);
  font-weight: var(--h3--font-weight);
  letter-spacing: var(--h3--letter-spacing);
}
[data-text-override="h4"], h4, .h4 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h4--bottom-margin);
  font-family: var(--h4--font);
  font-size: var(--h4--font-size);
  line-height: var(--h4--line-height);
  font-weight: var(--h4--font-weight);
  letter-spacing: var(--h4--letter-spacing);
}
[data-text-override="h5"], h5, .h5 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h5--bottom-margin);
  font-family: var(--h5--font);
  font-size: var(--h5--font-size);
  line-height: var(--h5--line-height);
  font-weight: var(--h5--font-weight);
  letter-spacing: var(--h5--letter-spacing);
}
[data-text-override="h6"], h6, .h6 {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--h6--bottom-margin);
  font-family: var(--h6--font);
  font-size: var(--h6--font-size);
  line-height: var(--h6--line-height);
  font-weight: var(--h6--font-weight);
  letter-spacing: var(--h6--letter-spacing);
}
[data-text-override="display"], .display {
  color: var(--heading-color, var(--_site-theme---headings));
  margin-bottom: var(--display--bottom-margin);
  font-family: var(--display--font);
  font-size: var(--display--font-size);
  line-height: var(--display--line-height);
  font-weight: var(--display--font-weight);
  letter-spacing: var(--display--letter-spacing);
}
[data-text-override="xl"], .text-xl {
  margin-bottom: var(--paragraph-xl--bottom-margin);
  font-family: var(--paragraph-xl--font);
  font-size: var(--paragraph-xl--font-size);
  line-height: var(--paragraph-xl--line-height);
  font-weight: var(--paragraph-xl--font-weight);
  letter-spacing: var(--paragraph-xl--letter-spacing);
}
[data-text-override="lg"], .text-lg {
  margin-bottom: var(--paragraph-lg--bottom-margin);
  font-family: var(--paragraph-lg--font);
  font-size: var(--paragraph-lg--font-size);
  line-height: var(--paragraph-lg--line-height);
  font-weight: var(--paragraph-lg--font-weight);
  letter-spacing: var(--paragraph-lg--letter-spacing);
}

[data-text-override="md"], body, .text-md {
  font-family: var(--paragraph-body--font);
  font-size: var(--paragraph-body--font-size);
  line-height: var(--paragraph-body--line-height);
  font-weight: var(--paragraph-body--font-weight);
  letter-spacing: var(--paragraph-body--letter-spacing);
}

[data-text-override="md"], p, .text-md {
  margin-bottom: var(--paragraph-body--bottom-margin);
}

[data-text-override="sm"], .text-sm {
  margin-bottom: var(--paragraph-sm--bottom-margin);
  font-family: var(--paragraph-sm--font);
  font-size: var(--paragraph-sm--font-size);
  line-height: var(--paragraph-sm--line-height);
  font-weight: var(--paragraph-sm--font-weight);
  letter-spacing: var(--paragraph-sm--letter-spacing);
}
[data-text-override="xs"], .text-xs {
  margin-bottom: var(--paragraph-xs--bottom-margin);
  font-family: var(--paragraph-xs--font);
  font-size: var(--paragraph-xs--font-size);
  line-height: var(--paragraph-xs--line-height);
  font-weight: var(--paragraph-xs--font-weight);
  letter-spacing: var(--paragraph-xs--letter-spacing);
}

[data-component="eyebrow"], [data-text-override="eyebrow"], .eyebrow {
    color: var(--_site-theme---eyebrow--text);
    display: inline-block;
    margin-bottom: var(--eyebrow--bottom-margin);
    font-family: var(--eyebrow--font);
    font-size: var(--eyebrow--font-size);
    line-height: var(--eyebrow--line-height);
    font-weight: var(--eyebrow--font-weight);
    letter-spacing: var(--eyebrow--letter-spacing);
    text-transform: uppercase;
}

[data-component="text"][data-text-override] > * {
  margin-bottom: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

[data-component="inline-text"] {
  &[data-bold] {font-weight: var(--special-text--bold-weight);}
  &[data-italic] {font-style: italic;}
  &[data-accent] {color: var(--_site-theme---text-accent)};
  &[data-highlight] {background-color: var(--_site-theme---text-highlight)}
}