{"version":3,"sources":["../scss/_navbar.scss","../scss/variables/components/_navbar.scss","../scss/variables/_spacing.scss","../scss/vendors/_rfs.scss","../scss/mixins/_hover.scss","../scss/variables/components/_navs.scss","../scss/variables/components/_shared.scss","../scss/mixins/_border-radius.scss","../scss/mixins/_breakpoints.scss","../scss/variables/_colors.scss","../scss/_functions.scss"],"names":[],"mappings":"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","sourcesContent":["// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: $navbar-padding-y $navbar-padding-x;\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .container,\n  .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: $navbar-brand-padding-y;\n  padding-bottom: $navbar-brand-padding-y;\n  margin-right: $navbar-padding-x;\n  @include font-size($navbar-brand-font-size);\n  line-height: inherit;\n  white-space: nowrap;\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  @include ltr {\n    padding-left: 0; // reset padding because ul and ol\n  }\n  @include rtl {\n    padding-right: 0; // reset padding because ul and ol\n  }\n  margin-bottom: 0;\n  list-style: none;\n\n  .nav-link {\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  .dropdown-menu {\n    position: static;\n    float: none;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  display: inline-block;\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n  @include font-size($navbar-toggler-font-size);\n  line-height: 1;\n  background-color: transparent; // remove default button style\n  border: $border-width solid transparent; // remove default button style\n  @include border-radius($navbar-toggler-border-radius);\n\n  @include hover-focus() {\n    text-decoration: none;\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    &#{$infix} {\n      @include media-breakpoint-down($breakpoint) {\n        %container-navbar-expand-#{$breakpoint} {\n          padding-right: 0;\n          padding-left: 0;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-navbar-expand-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-navbar-expand-#{$breakpoint};\n          }\n        }\n      }\n\n      @include media-breakpoint-up($next) {\n        flex-flow: row nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: $navbar-nav-link-padding-x;\n            padding-left: $navbar-nav-link-padding-x;\n          }\n        }\n\n        // For nesting containers, have to redeclare for alignment purposes\n        %container-nesting-#{$breakpoint} {\n          flex-wrap: nowrap;\n        }\n\n        > .container,\n        > .container-fluid {\n          @extend %container-nesting-#{$breakpoint};\n        }\n\n        @each $size, $container-max-width in $container-max-widths {\n          > .container#{breakpoint-infix($size, $container-max-widths)} {\n            @extend %container-nesting-#{$breakpoint};\n          }\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n\n          // Changes flex-bases to auto because of an IE10 bug\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n      }\n    }\n  }\n}\n\n@include themes($navbar-theme-map, $create: append, $parent: \".navbar\") {\n  .navbar-brand {\n    color: themes-get-value(\"navbar-brand-color\");\n\n    @include hover-focus() {\n      color: themes-get-value(\"navbar-brand-hover-color\");\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      color: themes-get-value(\"navbar-color\");\n\n      @include hover-focus() {\n        color: themes-get-value(\"navbar-hover-color\");\n      }\n\n      &.disabled {\n        color: themes-get-value(\"navbar-disabled-color\");\n      }\n    }\n\n    .show > .nav-link,\n    .active > .nav-link,\n    .nav-link.show,\n    .nav-link.active {\n      color: themes-get-value(\"navbar-active-color\");\n    }\n  }\n\n  .navbar-toggler {\n    color: themes-get-value(\"navbar-color\");\n    border-color: themes-get-value(\"navbar-toggler-border-color\");\n  }\n\n  .navbar-toggler-icon {\n    background-image: escape-svg(themes-get-value(\"navbar-toggler-icon-bg\"));\n  }\n\n  .navbar-text {\n    color: themes-get-value(\"navbar-color\");\n    a {\n      color: themes-get-value(\"navbar-active-color\");\n\n      @include hover-focus() {\n        color: themes-get-value(\"navbar-active-color\");\n      }\n    }\n  }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n// .navbar-light {\n//   .navbar-brand {\n//     color: $navbar-light-brand-color;\n\n//     @include hover-focus() {\n//       color: $navbar-light-brand-hover-color;\n//     }\n//   }\n\n//   .navbar-nav {\n//     .nav-link {\n//       color: $navbar-light-color;\n\n//       @include hover-focus() {\n//         color: $navbar-light-hover-color;\n//       }\n\n//       &.disabled {\n//         color: $navbar-light-disabled-color;\n//       }\n//     }\n\n//     .show > .nav-link,\n//     .active > .nav-link,\n//     .nav-link.show,\n//     .nav-link.active {\n//       color: $navbar-light-active-color;\n//     }\n//   }\n\n//   .navbar-toggler {\n//     color: $navbar-light-color;\n//     border-color: $navbar-light-toggler-border-color;\n//   }\n\n//   .navbar-toggler-icon {\n//     background-image: escape-svg($navbar-light-toggler-icon-bg);\n//   }\n\n//   .navbar-text {\n//     color: $navbar-light-color;\n//     a {\n//       color: $navbar-light-active-color;\n\n//       @include hover-focus() {\n//         color: $navbar-light-active-color;\n//       }\n//     }\n//   }\n// }\n\n// // White links against a dark background\n// .navbar-dark {\n//   .navbar-brand {\n//     color: $navbar-dark-brand-color;\n\n//     @include hover-focus() {\n//       color: $navbar-dark-brand-hover-color;\n//     }\n//   }\n\n//   .navbar-nav {\n//     .nav-link {\n//       color: $navbar-dark-color;\n\n//       @include hover-focus() {\n//         color: $navbar-dark-hover-color;\n//       }\n\n//       &.disabled {\n//         color: $navbar-dark-disabled-color;\n//       }\n//     }\n\n//     .show > .nav-link,\n//     .active > .nav-link,\n//     .nav-link.show,\n//     .nav-link.active {\n//       color: $navbar-dark-active-color;\n//     }\n//   }\n\n//   .navbar-toggler {\n//     color: $navbar-dark-color;\n//     border-color: $navbar-dark-toggler-border-color;\n//   }\n\n//   .navbar-toggler-icon {\n//     background-image: escape-svg($navbar-dark-toggler-icon-bg);\n//   }\n\n//   .navbar-text {\n//     color: $navbar-dark-color;\n//     a {\n//       color: $navbar-dark-active-color;\n\n//       @include hover-focus() {\n//         color: $navbar-dark-active-color;\n//       }\n//     }\n//   }\n// }\n","\n// Navbar\n\n// scss-docs-start navbar\n$navbar-padding-y:  $spacer / 2 !default;\n$navbar-padding-x:  $spacer !default;\n\n$navbar-nav-link-padding-x:  .5rem !default;\n\n$navbar-brand-font-size:  $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:         $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:     $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:  ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y:      .25rem !default;\n$navbar-toggler-padding-x:      .75rem !default;\n$navbar-toggler-font-size:      $font-size-lg !default;\n$navbar-toggler-border-radius:  $btn-border-radius !default;\n// scss-docs-end navbar\n\n// scss-docs-start navbar-default-theme\n$navbar-dark-color:                 rgba($white, .5) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n\n$navbar-light-color:                 rgba($black, .5) !default;\n$navbar-light-hover-color:           rgba($black, .7) !default;\n$navbar-light-active-color:          rgba($black, .9) !default;\n$navbar-light-disabled-color:        rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color:  rgba($black, .1) !default;\n\n$navbar-light-brand-color:        $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:  $navbar-light-active-color !default;\n$navbar-dark-brand-color:         $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:   $navbar-dark-active-color !default;\n// scss-docs-end navbar-default-theme\n\n$navbar-variants-map: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-variants-map: map-merge(\n  (\n    dark: (\n      \"navbar-color\":                 $navbar-dark-color,\n      \"navbar-hover-color\":           $navbar-dark-hover-color,\n      \"navbar-active-color\":          $navbar-dark-active-color,\n      \"navbar-disabled-color\":        $navbar-dark-disabled-color,\n      \"navbar-toggler-icon-bg\":       $navbar-dark-toggler-icon-bg,\n      \"navbar-toggler-border-color\":  $navbar-dark-toggler-border-color,\n      \"navbar-brand-color\":           $navbar-dark-brand-color,\n      \"navbar-brand-hover-color\":     $navbar-dark-brand-hover-color\n    ),\n    light: (\n      \"navbar-color\":                 $navbar-light-color,\n      \"navbar-hover-color\":           $navbar-light-hover-color,\n      \"navbar-active-color\":          $navbar-light-active-color,\n      \"navbar-disabled-color\":        $navbar-light-disabled-color,\n      \"navbar-toggler-icon-bg\":       $navbar-light-toggler-icon-bg,\n      \"navbar-toggler-border-color\":  $navbar-light-toggler-border-color,\n      \"navbar-brand-color\":           $navbar-light-brand-color,\n      \"navbar-brand-hover-color\":     $navbar-light-brand-hover-color\n    )\n  ),\n  $navbar-variants-map\n);\n\n$navbar-default-variant: null !default;\n$navbar-variants: (\n  default:  $navbar-default-variant,\n  map:      $navbar-variants-map\n) !default;\n\n$navbar-theme-map: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$navbar-theme-map: map-merge(\n  (\n    default:  $navbar-variants\n  ),\n  $navbar-theme-map\n);\n","\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer:  1rem !default;\n$spacers:  () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n  (\n    0:  0,\n    1:  ($spacer * .25),\n    2:  ($spacer * .5),\n    3:  $spacer,\n    4:  ($spacer * 1.5),\n    5:  ($spacer * 3)\n  ),\n  $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n  (\n    25:    25%,\n    50:    50%,\n    75:    75%,\n    100:   100%,\n    auto:  auto\n  ),\n  $sizes\n);\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n  $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n  $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n  $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n  // Cache $fs unit\n  $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n  // Add !important suffix if needed\n  $rfs-suffix: if($important, \" !important\", \"\");\n\n  // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n  @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n    font-size: #{$fs}#{$rfs-suffix};\n  }\n  @else {\n    // Variables for storing static and fluid rescaling\n    $rfs-static: null;\n    $rfs-fluid: null;\n\n    // Remove px-unit from $fs for calculations\n    @if $fs-unit == \"px\" {\n      $fs: $fs / ($fs * 0 + 1);\n    }\n    @else if $fs-unit == \"rem\" {\n      $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n    }\n\n    // Set default font-size\n    @if $rfs-font-size-unit == rem {\n      $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n    }\n    @else if $rfs-font-size-unit == px {\n      $rfs-static: #{$fs}px#{$rfs-suffix};\n    }\n    @else {\n      @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n    }\n\n    // Only add media query if font-size is bigger as the minimum font-size\n    // If $rfs-factor == 1, no rescaling will take place\n    @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n      $min-width: null;\n      $variable-unit: null;\n\n      // Calculate minimum font-size for given font-size\n      $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n      // Calculate difference between given font-size and minimum font-size for given font-size\n      $fs-diff: $fs - $fs-min;\n\n      // Base font-size formatting\n      // No need to check if the unit is valid, because we did that before\n      $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n      // If two-dimensional, use smallest of screen width and height\n      $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n      // Calculate the variable width between 0 and $rfs-breakpoint\n      $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n      // Set the calculated font-size.\n      $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n    }\n\n    // Rendering\n    @if $rfs-fluid == null {\n      // Only render static font-size if no fluid font-size is available\n      font-size: $rfs-static;\n    }\n    @else {\n      $mq-value: null;\n\n      // RFS breakpoint formatting\n      @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n        $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n      }\n      @else if $rfs-breakpoint-unit == px {\n        $mq-value: #{$rfs-breakpoint}px;\n      }\n      @else {\n        @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n      }\n\n      @if $rfs-class == \"disable\" {\n        // Adding an extra class increases specificity,\n        // which prevents the media query to override the font size\n        &,\n        .disable-responsive-font-size &,\n        &.disable-responsive-font-size {\n          font-size: $rfs-static;\n        }\n      }\n      @else {\n        font-size: $rfs-static;\n      }\n\n      @if $rfs-two-dimensional {\n        @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n      @else {\n        @media (max-width: #{$mq-value}) {\n          @if $rfs-class == \"enable\" {\n            .enable-responsive-font-size &,\n            &.enable-responsive-font-size {\n              font-size: $rfs-fluid;\n            }\n          }\n          @else {\n            font-size: $rfs-fluid;\n          }\n\n          @if $rfs-safari-iframe-resize-bug-fix {\n            // stylelint-disable-next-line length-zero-no-unit\n            min-width: 0vw;\n          }\n        }\n      }\n    }\n  }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n  @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n  @media (hover: hover), (-ms-high-contrast: none) {\n    &:hover { @content; }\n  }\n}\n\n@mixin hover-focus() {\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin plain-hover-focus() {\n  &,\n  &:hover,\n  &:focus {\n    @content;\n  }\n}\n\n@mixin hover-focus-active() {\n  &:hover,\n  &:focus,\n  &:active {\n    @content;\n  }\n}\n","// Navs\n\n// scss-docs-start nav\n$nav-link-padding-y:  .5rem !default;\n$nav-link-padding-x:  1rem !default;\n\n$nav-tabs-border-width:   $border-width !default;\n$nav-tabs-border-radius:  $border-radius !default;\n\n$nav-tabs-boxed-content-padding-y:     .75rem !default;\n$nav-tabs-boxed-content-padding-x:     1.25rem !default;\n$nav-tabs-boxed-content-border-width:  $border-width !default;\n\n$nav-pills-border-radius:  $border-radius !default;\n\n$nav-divider-margin-y:  $spacer / 2 !default;\n// scss-docs-end nav\n\n// Light Theme\n// scss-docs-start nav-default-theme\n$nav-link-disabled-color:            $gray-600 !default;\n$nav-tabs-border-color:              $gray-300 !default;\n$nav-tabs-link-hover-border-color:   $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:         $gray-700 !default;\n$nav-tabs-link-active-bg:            $body-bg !default;\n$nav-tabs-link-active-border-color:  $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-tabs-boxed-link-active-bg:         $white !default;\n$nav-tabs-boxed-content-bg:             $white !default;\n$nav-tabs-boxed-content-border-color:   $border-color !default;\n$nav-tabs-boxed-content-border-radius:  $border-radius !default;\n\n$nav-tabs-boxed-left-active-border-color:   $border-color $white $border-color $border-color !default;\n$nav-tabs-boxed-right-active-border-color:  $border-color $border-color $border-color $white !default;\n\n$nav-pills-link-active-color:  $component-active-color !default;\n$nav-pills-link-active-bg:     $component-active-bg !default;\n$nav-divider-color:            $gray-200 !default;\n// scss-docs-end nav-default-theme\n\n$nav-theme-map: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$nav-theme-map: map-merge(\n  (\n    default: (\n      \"nav-link-disabled-color\":                   $nav-link-disabled-color,\n      \"nav-tabs-border-color\":                     $nav-tabs-border-color,\n      \"nav-tabs-link-hover-border-color\":          $nav-tabs-link-hover-border-color,\n      \"nav-tabs-link-active-color\":                $nav-tabs-link-active-color,\n      \"nav-tabs-link-active-bg\":                   $nav-tabs-link-active-bg,\n      \"nav-tabs-link-active-border-color\":         $nav-tabs-link-active-border-color,\n      \"nav-pills-link-active-color\":               $nav-pills-link-active-color,\n      \"nav-pills-link-active-bg\":                  $nav-pills-link-active-bg,\n      \"nav-divider-color\":                         $nav-divider-color,\n      \"nav-tabs-boxed-link-active-bg\":             $nav-tabs-boxed-link-active-bg,\n      \"nav-tabs-boxed-content-bg\":                 $nav-tabs-boxed-content-bg,\n      \"nav-tabs-boxed-content-border-color\":       $nav-tabs-boxed-content-border-color,\n      \"nav-tabs-boxed-left-active-border-color\":   $nav-tabs-boxed-left-active-border-color,\n      \"nav-tabs-boxed-right-active-border-color\":  $nav-tabs-boxed-right-active-border-color\n    )\n  ),\n  $nav-theme-map\n);\n","\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg:  1.5 !default;\n$line-height-sm:  1.5 !default;\n\n$border-width:  1px !default;\n$border-color:  $gray-200 !default;\n\n$border-theme-map: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$border-theme-map: map-merge(\n  (\n    default: (\n      \"border-color\": $border-color\n    )\n  ),\n  $border-theme-map\n);\n\n$border-radius:     .25rem !default;\n$border-radius-lg:  .3rem !default;\n$border-radius-sm:  .2rem !default;\n\n$rounded-pill:  50rem !default;\n\n$box-shadow-sm:  0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow:     0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg:  0 1rem 3rem rgba($black, .175) !default;\n\n$component-color:  $body-color !default;\n$component-bg:     $white !default;\n\n$component-active-color:  $white !default;\n$component-active-bg:     theme-color(\"primary\") !default;\n\n$caret-width:           .3em !default;\n$caret-vertical-align:  $caret-width * .85 !default;\n$caret-spacing:         $caret-width * .85 !default;\n\n$transition-base:      all .2s ease-in-out !default;\n$transition-fade:      opacity .15s linear !default;\n$transition-collapse:  height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n  (\n    (21 9),\n    (16 9),\n    (4 3),\n    (1 1),\n  ),\n  $embed-responsive-aspect-ratios\n);\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-left-radius($radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-right-radius($radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-right-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-left-radius($radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Name of the previous breakpoint, or null for the first breakpoint.\n//\n//    >> breakpoint-before(lg)\n//    md\n//    >> breakpoint-next(lg, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(lg, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-before($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n - 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name, $breakpoints) {\n      @content;\n    }\n  }\n}\n","//\n// CoreUI default colors\n//\n\n$white:  #fff !default;\n$black:  #000015 !default;\n\n$gray-base:  #3c4b64 !default;\n$gray-100:   #ebedef !default;\n$gray-200:   #d8dbe0 !default;\n$gray-300:   #c4c9d0 !default;\n$gray-400:   #b1b7c1 !default;\n$gray-500:   #9da5b1 !default;\n$gray-600:   #8a93a2 !default;\n$gray-700:   #768192 !default;\n$gray-800:   #636f83 !default;\n$gray-900:   #4f5d73 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n  (\n    \"100\":  $gray-100,\n    \"200\":  $gray-200,\n    \"300\":  $gray-300,\n    \"400\":  $gray-400,\n    \"500\":  $gray-500,\n    \"600\":  $gray-600,\n    \"700\":  $gray-700,\n    \"800\":  $gray-800,\n    \"900\":  $gray-900\n  ),\n  $grays\n);\n\n$primary-base:  #321fdb !default;\n$primary-100:   #eae9fb !default;\n$primary-200:   #d6d2fb !default;\n$primary-300:   #c1bcf4 !default;\n$primary-400:   #ada5f1 !default;\n$primary-500:   #988fed !default;\n$primary-600:   #8478ea !default;\n$primary-700:   #6f62e6 !default;\n$primary-800:   #5b4ce2 !default;\n$primary-900:   #4635df !default;\n\n$primary-dark:  #1f1498 !default;\n$primary:       #321fdb !default;\n$primary-50:    #988fed !default;\n$primary-25:    #ccc7f6 !default;\n\n\n$secondary-base:  #3c4b64 !default;\n\n$secondary-100:   #ebedef !default;\n$secondary-200:   #d8dbe0 !default;\n$secondary-300:   #c4c9d0 !default;\n$secondary-400:   #b1b7c1 !default;\n$secondary-500:   #9da5b1 !default;\n$secondary-600:   #8a93a2 !default;\n$secondary-700:   #768192 !default;\n$secondary-800:   #636f83 !default;\n$secondary-900:   #4f5d73 !default;\n\n$secondary-dark:  #212233 !default;\n$secondary:       #3c4b64 !default;\n$secondary-50:    #9da5b1 !default;\n$secondary-25:    #ced2d8 !default;\n\n\n$danger-dark:  #d93737 !default;\n$danger:       #e55353 !default;\n$danger-50:    #f2a9a9 !default;\n$danger-25:    #f9d4d4 !default;\n\n$info-dark:  #2982cc !default;\n$info:       #39f !default;\n$info-50:    #80c6ff !default;\n$info-25:    #c0e6ff !default;\n\n$success-dark:  #1b9e3e !default;\n$success:       #2eb85c !default;\n$success-50:    #96dbad !default;\n$success-25:    #cbedd6 !default;\n\n$warning-dark:  #f6960b !default;\n$warning:       #f9b115 !default;\n$warning-50:    #fcd88a !default;\n$warning-25:    #feecc5 !default;\n\n$light:  $gray-100 !default;\n$dark:   $gray-800 !default;\n\n$pink:  #e83e8c !default;\n\n// scss-docs-start theme-colors-map\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n  (\n    \"primary\":    $primary,\n    \"secondary\":  $secondary-25,\n    \"success\":    $success,\n    \"info\":       $info,\n    \"warning\":    $warning,\n    \"danger\":     $danger,\n    \"light\":      $light,\n    \"dark\":       $dark\n  ),\n  $theme-colors\n);\n// scss-docs-end theme-colors-map\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval:  8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold:  150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark:   $gray-900 !default;\n$yiq-text-light:  $white !default;\n\n$yiq-theme-map: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$yiq-theme-map: map-merge(\n  (\n    default: (\n      \"yiq-text-dark\":  $yiq-text-dark,\n      \"yiq-text-light\":  $yiq-text-light\n    )\n  ),\n  $yiq-theme-map\n);\n\n// TODO: Move to better place\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\",\"%3c\"),\n  (\">\",\"%3e\"),\n  (\"#\",\"%23\"),\n  (\"(\",\"%28\"),\n  (\")\",\"%29\"),\n) !default;\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n  $r: red($color);\n  $g: green($color);\n  $b: blue($color);\n\n  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n  @if ($yiq >= $yiq-contrasted-threshold) {\n    @return $dark;\n  } @else {\n    @return $light;\n  }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n  @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n  @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n  @return map-get($grays, $key);\n}\n\n// Request a theme color level\n// @function theme-color-level($color-name: \"primary\", $level: 0) {\n//   $color: theme-color($color-name);\n//   $color-base: if($level > 0, $black, $white);\n//   $level: abs($level);\n\n//   @return mix($color-base, $color, $level * $theme-color-interval);\n// }\n\n// scss-docs-start color-level\n@function theme-color-level($color, $level: 0) {\n  $color-base: if($level > 0, $black, $white);\n  $level: abs($level);\n\n  @return mix($color-base, $color, $level * $theme-color-interval);\n}\n// scss-docs-end color-level\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n"]}