:root {
  // Generate missing CSS Variables
  @each $color, $value in $blues {
    --#{$prefix}#{$color}: #{$value};
  }
  @each $color, $value in $golds {
    --#{$prefix}#{$color}: #{$value};
  }
  @each $color, $value in $greens {
    --#{$prefix}#{$color}: #{$value};
  }
  @each $color, $value in $reds {
    --#{$prefix}#{$color}: #{$value};
  }
  --bs-border-color: #{$border-color};
  --bs-font-heading: #{$headings-font-family};

  --bs-spacer-x: #{$spacer-x};
  @include media-breakpoint-down(md) {
    --bs-spacer-x: 1rem;
  }
  --bs-box-shadow: #{$box-shadow};
  --bs-box-shadow-sm: #{$box-shadow-sm};
  --bs-box-shadow-lg: #{$box-shadow-lg};
  // those variables are used to make custom inputs similar to bootstrap inputs
  --bs-input-padding: #{$input-padding-y} #{$input-padding-x};
  --bs-form-floating-padding-x: #{$form-floating-padding-x};
  --bs-form-floating-padding-y: #{$form-floating-padding-y};
  --bs-form-floating-input-padding-t: #{$form-floating-input-padding-t};
  --bs-form-floating-input-padding-b: #{$form-floating-input-padding-b};

  // adds other variables
  --layout-padding: 1rem;
  @include media-breakpoint-up(md) {
    --layout-padding: 1.5rem;
  }
  @include media-breakpoint-up(xl) {
    --layout-padding: 2rem;
  }
}

// Font-family helpers
.ff-normal {
  font-family: $font-family-sans-serif;
}
.ff-heading {
  font-family: $headings-font-family;
}

// Font-size helpers
.fs-normal {
  font-size: 1rem !important;
}

// fs-09-rem, fs-085-em..
.fs-05-rem {
  font-size: 0.5rem !important;
}
.fs-05-em {
  font-size: 0.5em !important;
}
.fs-055-rem {
  font-size: 0.55rem !important;
}
.fs-055-em {
  font-size: 0.55em !important;
}

.fs-06-rem {
  font-size: 0.6rem !important;
}
.fs-06-em {
  font-size: 0.6em !important;
}
.fs-065-rem {
  font-size: 0.65rem !important;
}
.fs-065-em {
  font-size: 0.65em !important;
}

.fs-07-rem {
  font-size: 0.7rem !important;
}
.fs-07-em {
  font-size: 0.7em !important;
}
.fs-075-rem {
  font-size: 0.75rem !important;
}
.fs-075-em {
  font-size: 0.75em !important;
}

.fs-08-rem {
  font-size: 0.8rem !important;
}
.fs-08-em {
  font-size: 0.8em !important;
}
.fs-085-rem {
  font-size: 0.85rem !important;
}
.fs-085-em {
  font-size: 0.85em !important;
}

.fs-09-rem {
  font-size: 0.9rem !important;
}
.fs-09-em {
  font-size: 0.9em !important;
}
.fs-095-rem {
  font-size: 0.95rem !important;
}
.fs-095-em {
  font-size: 0.95em !important;
}

// fs-11-rem, fs-125-em...
.fs-11-rem {
  font-size: 1.1rem !important;
}
.fs-11-em {
  font-size: 1.1em !important;
}
.fs-115-rem {
  font-size: 1.15rem !important;
}
.fs-115-em {
  font-size: 1.15em !important;
}

.fs-12-rem {
  font-size: 1.2rem !important;
}
.fs-12-em {
  font-size: 1.2em !important;
}
.fs-125-rem {
  font-size: 1.25rem !important;
}
.fs-125-em {
  font-size: 1.25em !important;
}

.fs-13-rem {
  font-size: 1.3rem !important;
}
.fs-13-em {
  font-size: 1.3em !important;
}
.fs-135-rem {
  font-size: 1.35rem !important;
}
.fs-135-em {
  font-size: 1.35em !important;
}

.fs-14-rem {
  font-size: 1.4rem !important;
}
.fs-14-em {
  font-size: 1.4em !important;
}
.fs-145-rem {
  font-size: 1.45rem !important;
}
.fs-145-em {
  font-size: 1.45em !important;
}

.fs-15-rem {
  font-size: 1.5rem !important;
}
.fs-15-em {
  font-size: 1.5em !important;
}
.fs-155-rem {
  font-size: 1.55rem !important;
}
.fs-155-em {
  font-size: 1.55em !important;
}

.full-width-sm {
  @include media-breakpoint-down(md) {
    margin-left: -1rem !important;
    margin-right: -1rem !important;
    width: calc(100% + 2rem) !important;
    box-shadow: none !important;
    --bs-card-border-radius: 0;
    --bs-card-inner-border-radius: 0;
  }
}

.btn-floating-sm {
  @include media-breakpoint-down(md) {
    position: fixed !important;
    bottom: 3rem !important;
    z-index: 200 !important;
    right: 1rem !important;
    box-shadow: 0 3px 1rem #21252985 !important;
  }
}

// Make this section take the whole page when printing
@media print {
  .full-page-print {
    background-color: white;
    height: 100%;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    margin: 0;
    padding: 2rem;
    z-index: 500;
  }
}
