@use "functions";
@use "mixins/border-radius";
@use "variables";
@use "vendor/rfs";

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: variables.$breadcrumb-padding-y variables.$breadcrumb-padding-x;
  margin-bottom: variables.$breadcrumb-margin-bottom;
  @include rfs.font-size(variables.$breadcrumb-font-size);
  list-style: none;
  background-color: variables.$breadcrumb-bg;
  @include border-radius.border-radius(variables.$breadcrumb-border-radius);
}

.breadcrumb-item {
  margin-bottom: 0;

  // The separator between breadcrumbs (by default, a forward-slash: "/")
  + .breadcrumb-item {
    padding-left: variables.$breadcrumb-item-padding;

    &::before {
      float: left; // Suppress inline spacings and underlining of the separator
      padding-right: variables.$breadcrumb-item-padding;
      color: variables.$breadcrumb-divider-color;
      content: functions.escape-svg(variables.$breadcrumb-divider);
    }
  }

  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
  // without `<ul>`s. The `::before` pseudo-element generates an element
  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
  //
  // To trick IE into suppressing the underline, we give the pseudo-element an
  // underline and then immediately remove it.
  + .breadcrumb-item:hover::before {
    text-decoration: underline;
  }
  // stylelint-disable-next-line no-duplicate-selectors
  + .breadcrumb-item:hover::before {
    text-decoration: none;
  }

  &.active {
    color: variables.$breadcrumb-active-color;
  }
}
