html {
  box-sizing: border-box;
}

body {
  margin: 0;
}

*,
*:before,
*:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: transparent;
}

:host {
  font-family: var(--c-font-family);
}

::-ms-reveal {
  display: none;
}

:host(c-sub-navigation-item) {
  /**
   * @prop --c-sub-navigation-item-text-color: Sub navigation item text color
   * @prop --c-sub-navigation-item-background-color-hover: Sub navigation item hover background color
   * @prop --c-sub-navigation-item-text-color-active: Sub navigation item active text color
   * @prop --c-sub-navigation-item-background-color-active: Sub navigation item active background color
   */
  --_c-sub-navigation-item-text-color: var(
    --c-sub-navigation-item-text-color,
    var(--c-text-body)
  );
  --_c-sub-navigation-item-background-color: var(
    --c-sub-navigation-item-background-color,
    var(--c-transparent)
  );
  --_c-sub-navigation-item-background-color-hover: var(
    --c-sub-navigation-item-background-color-hover,
    var(--c-primary-100)
  );
  --_c-sub-navigation-item-text-color-active: var(
    --c-sub-navigation-item-text-color-active,
    var(--c-primary-600)
  );
  --_c-sub-navigation-item-background-color-active: var(
    --c-sub-navigation-item-background-color-active,
    var(--c-white)
  );
  /**
   * @prop --c-sub-navigation-item-sub-item-background-color-active: Active 3rd level item background color
   * @prop --c-sub-navigation-item-sub-item-background-color-hover: 3rd level item hover background color
   * @prop --c-sub-navigation-item-sub-item-background-color: 3rd level item background color
   * @prop --c-sub-navigation-item-sub-item-text-color-active: Active 3rd level item text color
   * @prop --c-sub-navigation-item-sub-item-text-color: 3rd level item text color
   */
  --_c-sub-navigation-item-sub-item-background-color-active: var(
    --c-sub-navigation-item-sub-item-background-color-active,
    var(--c-primary-100)
  );
  --_c-sub-navigation-item-sub-item-background-color-hover: var(
    --c-sub-navigation-item-sub-item-background-color-hover,
    var(--c-primary-100)
  );
  --_c-sub-navigation-item-sub-item-background-color: var(
    --c-sub-navigation-item-sub-item-background-color,
    var(--c-transparent)
  );
  --_c-sub-navigation-item-sub-item-text-color-active: var(
    --c-sub-navigation-item-sub-item-text-color-active,
    var(--c-primary-600)
  );
  --_c-sub-navigation-item-sub-item-text-color: var(
    --c-sub-navigation-item-sub-item-text-color,
    var(--c-text-body)
  );
}

:host(.c-sub-navigation-item--sub-level) {
  --_c-sub-navigation-item-background-color: var(
    --_c-sub-navigation-item-sub-item-background-color
  );
  --_c-sub-navigation-item-text-color: var(
    --_c-sub-navigation-item-sub-item-text-color
  );
  --_c-sub-navigation-item-background-color-hover: var(
    --_c-sub-navigation-item-sub-item-background-color-hover
  );
  --_c-sub-navigation-item-text-color-active: var(
    --_c-sub-navigation-item-sub-item-text-color-active
  );
  --_c-sub-navigation-item-background-color-active: var(
    --_c-sub-navigation-item-sub-item-background-color-active
  );
}

.c-sub-navigation-item {
  align-items: center;
  background-color: var(--_c-sub-navigation-item-background-color);
  border-radius: 4px;
  color: var(--_c-sub-navigation-item-text-color);
  cursor: pointer;
  display: flex;
  font-weight: 400;
  line-height: 46px;
  margin: 0 8px;
  overflow: hidden;
  padding-left: 34px;
  position: relative;
  transition: background-color 0.2s ease-in;
  user-select: none;
}

.c-sub-navigation-item__wrapper {
  padding: 2px 0;
}

.c-sub-navigation-item__content {
  display: flex;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.c-sub-navigation-item__content::before {
  background-color: var(--_c-sub-navigation-item-text-color-active);
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: translateZ(0) translateX(-8px);
  transition: transform 0.2s ease-in-out;
  width: 8px;
}

.c-sub-navigation-item:hover {
  background-color: var(--_c-sub-navigation-item-background-color-hover);
  color: var(--_c-sub-navigation-item-text-color-active);
}

:host(.active) .c-sub-navigation-item {
  background-color: var(--_c-sub-navigation-item-background-color-active);
}

:host(.active) .c-sub-navigation-item__content::before {
  transform: translateZ(0) translateX(0);
}

::slotted(span) {
  margin-right: 8px;
  font-size: 20px;
  line-height: 1;
}

:host(:host:focus),
:host(:host:focus) .c-sub-navigation-item {
  outline: none;
}

:host(:host:focus-visible) .c-sub-navigation-item {
  outline: 2px var(--_c-sub-navigation-item-text-color-active) solid;
  outline-offset: 2px;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.c-sub-navigation-item__slot {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.c-sub-navigation-item__slot slot {
  display: flex;
  gap: 8px;
  align-items: center;
}