bs-label {
  display: inline-block;
  width: 100%;
}
bs-label :where(label, legend) {
  --label-color: var(--bs-ink-base);
  color: var(--label-color);
  display: inline-block;
  font-size: var(--bs-text-sm);
  font-weight: 600;
  line-height: var(--bs-leading-base);
  width: 100%;
}
bs-label :where([data-required]) {
  color: var(--bs-ink-red);
}
bs-label :where(label[data-disabled], [data-disabled] [data-required], [data-disabled] label) {
  --label-color: var(--bs-ink-disabled);
}

.bs-boolean label,
.bs-boolean bs-label {
  font-size: var(--bs-text-base);
  font-weight: 400;
  line-height: 1.5;
  width: auto;
}

/* not using gap on .bs-boolean due to dead click zone */
.bs-boolean bs-label label {
  padding-inline-end: 0.5em;
}

.bs-boolean input + bs-label label {
  padding-inline: 0.5em 0;
}

.bs-boolean[data-size=sm] bs-label,
.bs-boolean[data-size=sm] bs-label label {
  font-size: var(--bs-text-xs);
  line-height: 100%;
}