:root {
  --bps-font-sans: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bps-font-size-page-title: 1.75rem;
  --bps-font-size-section-title: 1rem;
  --bps-font-size-body: 0.875rem;
  --bps-font-size-aux: 0.8125rem;
  --bps-font-weight-regular: 400;
  --bps-font-weight-medium: 500;
  --bps-font-weight-semibold: 600;
  --bps-line-height-tight: 1.2;
  --bps-line-height-body: 1.5;
  --bps-letter-spacing-page-title: -0.015em;
  --bs-font-sans-serif: var(--bps-font-sans);
  --bs-body-font-family: var(--bps-font-sans);
  --bs-body-font-size: var(--bps-font-size-body);
  --bs-body-font-weight: var(--bps-font-weight-regular);
  --bs-body-line-height: var(--bps-line-height-body);
}

html {
  font-size: 16px;
}

body {
  font-family: var(--bps-font-sans);
  font-size: var(--bps-font-size-body);
  font-weight: var(--bps-font-weight-regular);
  line-height: var(--bps-line-height-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body,
.table,
.dropdown-menu,
.modal,
.offcanvas,
.popover,
.tooltip,
.dataTables_wrapper {
  font-family: var(--bps-font-sans);
  font-size: var(--bps-font-size-body);
  line-height: var(--bps-line-height-body);
}

.container-fluid.flex-grow-1 > h1:first-child,
.container-fluid.flex-grow-1 > h2:first-child,
.container-fluid.flex-grow-1 > h3:first-child,
.container-fluid.flex-grow-1 > h4:first-child,
.container-xxl.flex-grow-1 > h1:first-child,
.container-xxl.flex-grow-1 > h2:first-child,
.container-xxl.flex-grow-1 > h3:first-child,
.container-xxl.flex-grow-1 > h4:first-child,
.page-title,
.maintenance-title {
  color: var(--bs-emphasis-color);
  font-size: var(--bps-font-size-page-title);
  font-weight: var(--bps-font-weight-semibold);
  line-height: var(--bps-line-height-tight);
  letter-spacing: var(--bps-letter-spacing-page-title);
}

.card-header h5,
.card-title,
.modal-title,
.offcanvas-title,
.section-title,
.navbar-brand {
  font-size: var(--bps-font-size-section-title);
  font-weight: var(--bps-font-weight-semibold);
  line-height: 1.35;
}

.table th,
.table td,
.dataTables_wrapper,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_paginate {
  font-size: var(--bps-font-size-body);
  line-height: var(--bps-line-height-body);
}

.table thead th,
.table tfoot th {
  font-weight: var(--bps-font-weight-semibold);
}

.form-label,
label,
.btn,
.dropdown-item,
.nav-link,
.menu-link,
.form-control,
.form-select,
.choices,
.choices__inner,
.choices__list--dropdown,
.modal-footer .btn {
  font-size: var(--bps-font-size-body);
}

.form-label,
label,
.btn,
.dropdown-item,
.nav-link,
.menu-link {
  font-weight: var(--bps-font-weight-medium);
}

.form-control,
.form-select,
.choices__inner,
.choices__list--dropdown {
  font-family: var(--bps-font-sans);
  line-height: var(--bps-line-height-body);
}

.text-muted,
.form-text,
.small,
small,
.dataTables_wrapper .dataTables_info,
.menu-header,
.maintenance-eyebrow {
  font-size: var(--bps-font-size-aux);
  line-height: var(--bps-line-height-body);
}

.badge {
  font-size: var(--bps-font-size-aux);
}

.btn {
  font-family: var(--bps-font-sans);
  font-weight: var(--bps-font-weight-medium);
  line-height: 1.35;
}

.btn-sm,
.form-control-sm,
.form-select-sm {
  font-size: var(--bps-font-size-body);
}

.choices__inner,
.choices__list--dropdown {
  font-size: var(--bps-font-size-body) !important;
}

.menu-link {
  letter-spacing: 0;
}
