/* -------------------------------- 

File#: _1_filter-navigation
Title: Filter Navigation
Descr: Filter navigation template
Usage: codyhouse.co/license

-------------------------------- */
/* --expanded version */
.filter-nav--expanded {
  /* --v1 */
  /* --v2 */
  /* --v3 */
}
.filter-nav--expanded .filter-nav__nav {
  display: flex;
  overflow: auto;
}
.filter-nav--expanded .filter-nav__list {
  display: inline-flex;
  position: relative;
}
.filter-nav--expanded .filter-nav__item {
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.filter-nav--expanded .filter-nav__btn { /* <button> element inside each list item */
  cursor: pointer;
}
.filter-nav--expanded .filter-nav__marker { /* animated marker */
  position: absolute;
  width: 0;
  pointer-events: none;
  transition: transform 0.3s, width 0.3s;
  transition-timing-function: var(--ease-in-out);
  will-change: width, transform;
}
.filter-nav--expanded.filter-nav--v1 .filter-nav__nav {
  padding: var(--space-xs) 0;
}
.filter-nav--expanded.filter-nav--v1 .filter-nav__btn {
  margin: 0 var(--space-3xs);
  padding: var(--space-3xs) var(--space-xs);
  color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.5);
  transition: color 0.2s;
}
.filter-nav--expanded.filter-nav--v1 .filter-nav__btn:hover {
  color: var(--color-contrast-higher);
}
.filter-nav--expanded.filter-nav--v1 .filter-nav__btn[aria-current=true] {
  color: var(--color-primary);
}
.filter-nav--expanded.filter-nav--v1 .filter-nav__marker { /* animated marker */
  top: 0;
  left: 0;
  height: 100%;
  background-color: var(--color-accent);
  box-shadow: var(--inner-glow), var(--shadow-sm);
  border-radius: var(--radius-md);
}
.filter-nav--expanded.filter-nav--v2 .filter-nav__list {
  background-color: var(--color-bg-darker);
  padding: var(--space-3xs);
  border-radius: 50em;
}
.filter-nav--expanded.filter-nav--v2 .filter-nav__btn {
  padding: var(--space-3xs) var(--space-sm);
  color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.5);
  transition: color 0.2s;
}
.filter-nav--expanded.filter-nav--v2 .filter-nav__btn:hover {
  color: var(--color-contrast-higher);
}
.filter-nav--expanded.filter-nav--v2 .filter-nav__btn[aria-current=true] {
  color: var(--color-primary);
}
.filter-nav--expanded.filter-nav--v2 .filter-nav__marker { /* animated marker */
  top: var(--space-3xs);
  left: 0;
  height: calc(100% - var(--space-3xs) * 2);
  background-color: var(--color-bg-light);
  box-shadow: var(--inner-glow), var(--shadow-sm);
  border-radius: 50em;
}
.filter-nav--expanded.filter-nav--v3 .filter-nav__btn {
  padding: var(--space-3xs) var(--space-sm);
  color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.5);
  transition: color 0.2s;
}
.filter-nav--expanded.filter-nav--v3 .filter-nav__btn:hover {
  color: var(--color-contrast-higher);
}
.filter-nav--expanded.filter-nav--v3 .filter-nav__btn[aria-current=true] {
  color: var(--color-primary);
}
.filter-nav--expanded.filter-nav--v3 .filter-nav__marker { /* animated marker */
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: var(--color-primary);
}

/* --collapsed version - available horizontal space not enough to contain all list items */
.filter-nav--collapsed .filter-nav__wrapper {
  position: fixed;
  z-index: var(--z-index-overlay, 15);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: hsla(var(--color-black-h), var(--color-black-s), var(--color-black-l), 0.9);
  visibility: hidden;
  opacity: 0;
}
.filter-nav--collapsed .filter-nav__wrapper--is-visible {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s;
}
.filter-nav--collapsed .filter-nav__wrapper--is-visible .filter-nav__nav {
  transform: translateY(0);
  transition: transform 0.3s;
}
.filter-nav--collapsed .filter-nav__nav {
  display: flex;
  justify-content: flex-start;
  flex-direction: column;
  background-color: var(--color-bg);
  box-shadow: var(--shadow-md);
  max-height: 100%;
  transform: translateY(-1em);
}
.filter-nav--collapsed .filter-nav__list {
  order: 2;
  flex-direction: column;
  overflow: auto;
  padding: 0 0 var(--space-md);
}
.filter-nav--collapsed .filter-nav__list::before { /* top shadow - visible if menu height triggers vertical scrolling */
  content: "";
  display: block;
  width: 100%;
  height: 10px;
  background: linear-gradient(hsla(var(--color-bg-h), var(--color-bg-s), var(--color-bg-l), 1), hsla(var(--color-bg-h), var(--color-bg-s), var(--color-bg-l), 0));
  position: sticky;
  top: 0;
  left: 0;
  z-index: 1;
}
.filter-nav--collapsed .filter-nav__btn {
  display: block; /* fallback */
  display: flex;
  align-items: center;
  width: 100%;
  text-align: left;
  font-size: var(--text-md);
  padding: var(--space-xs) var(--space-sm);
  color: hsla(var(--color-contrast-higher-h), var(--color-contrast-higher-s), var(--color-contrast-higher-l), 0.5);
  cursor: pointer;
}
.filter-nav--collapsed .filter-nav__btn:hover {
  color: var(--color-contrast-higher);
}
.filter-nav--collapsed .filter-nav__btn[aria-current=true] {
  color: var(--color-primary);
}
.filter-nav--collapsed .filter-nav__btn::before { /* check icon next to the selected button */
  content: "";
  display: block;
  height: 16px;
  width: 16px;
  margin-right: var(--space-3xs);
  background-color: transparent;
}
.filter-nav--collapsed .filter-nav__btn[aria-current=true]::before {
  background-color: var(--color-primary); /* icon color */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline stroke-width='2' stroke='%23000000' fill='none' stroke-linecap='round' stroke-linejoin='round' points='1,9 5,13 15,3 '/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline stroke-width='2' stroke='%23000000' fill='none' stroke-linecap='round' stroke-linejoin='round' points='1,9 5,13 15,3 '/%3E%3C/svg%3E");
}
.filter-nav--collapsed .filter-nav__marker { /* hide animated marker */
  display: none !important;
}
.filter-nav--collapsed .filter-nav__close-btn { /* X button */
  --size: 32px;
  width: var(--size);
  height: var(--size);
  display: flex;
  order: 1;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  margin: var(--space-xs) var(--space-xs) 0 auto;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background-color: var(--color-bg-light);
  box-shadow: var(--inner-glow), var(--shadow-sm);
  transition: 0.2s;
}
.filter-nav--collapsed .filter-nav__close-btn:hover {
  background-color: var(--color-bg-lighter);
  box-shadow: var(--inner-glow), var(--shadow-md);
}
.filter-nav--collapsed .filter-nav__close-btn .icon {
  display: block;
  color: var(--color-contrast-high);
}