/* Kurt Bestor sheet-music shop filters
   Elementor Taxonomy Filter is a term LIST, not a <select>.
   This stylesheet:
   1) forces a single horizontal bar of four compact dropdowns
   2) collapses each taxonomy into a Squarespace-style select
*/

:root {
  --kb-navy: #1b3a4b;
  --kb-gold: #c4a35a;
  --kb-ink: #2c3338;
  --kb-muted: #5c6b73;
  --kb-line: #cfd6db;
  --kb-paper: #f7f4ef;
}

.kb-filter-bar,
.elementor-widget-taxonomy-filter {
  --kb-navy: #1b3a4b;
  --kb-gold: #c4a35a;
  --kb-ink: #2c3338;
  --kb-muted: #5c6b73;
  --kb-line: #cfd6db;
}

/* Four filters + search in one row when the container has this class */
.kb-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.kb-filter-bar > .elementor-element {
  flex: 1 1 180px;
  min-width: 160px;
  margin: 0 !important;
}

/* Hide Elementor's default stacked list look */
.elementor-widget-taxonomy-filter .e-filter,
.elementor-widget-taxonomy-filter .e-n-filter,
.elementor-widget-taxonomy-filter ul {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.elementor-widget-taxonomy-filter .e-filter-item,
.elementor-widget-taxonomy-filter .e-filter a,
.elementor-widget-taxonomy-filter li,
.elementor-widget-taxonomy-filter [role="listitem"] {
  display: block;
  width: 100%;
  margin: 0;
}

/* Closed state: look like a single select */
.kb-filter-dropdown {
  position: relative;
  font-family: Georgia, "Times New Roman", serif;
}

.kb-filter-dropdown__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--kb-line);
  border-radius: 2px;
  color: var(--kb-muted);
  font-size: 14px;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
}

.kb-filter-dropdown__toggle strong {
  color: var(--kb-ink);
  font-weight: 600;
  margin-right: 6px;
}

.kb-filter-dropdown__toggle::after {
  content: "";
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid var(--kb-muted);
  margin-left: 8px;
  flex: 0 0 auto;
}

.kb-filter-dropdown.is-open .kb-filter-dropdown__toggle {
  border-color: var(--kb-navy);
}

.kb-filter-dropdown.is-open .kb-filter-dropdown__toggle::after {
  transform: rotate(180deg);
}

.kb-filter-dropdown__panel {
  display: none;
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  background: #fff;
  border: 1px solid var(--kb-line);
  box-shadow: 0 8px 24px rgba(27, 58, 75, 0.12);
  max-height: 280px;
  overflow: auto;
}

.kb-filter-dropdown.is-open .kb-filter-dropdown__panel {
  display: block;
}

.kb-filter-dropdown__panel .e-filter-item,
.kb-filter-dropdown__panel a,
.kb-filter-dropdown__panel button {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 14px;
  color: var(--kb-ink);
  text-decoration: none;
  cursor: pointer;
}

.kb-filter-dropdown__panel .e-filter-item:hover,
.kb-filter-dropdown__panel a:hover {
  background: var(--kb-paper);
}

.kb-filter-dropdown__panel .e-active,
.kb-filter-dropdown__panel [aria-pressed="true"],
.kb-filter-dropdown__panel .selected {
  background: var(--kb-navy);
  color: #fff;
}

/* Fallback if JS has not wrapped yet: horizontal chips, not a tall list */
.elementor-widget-taxonomy-filter:not(.kb-dropdown-ready) .e-filter {
  flex-direction: row !important;
  flex-wrap: wrap;
  gap: 6px;
}

@media (max-width: 767px) {
  .kb-filter-bar {
    flex-direction: column;
  }
  .kb-filter-bar > .elementor-element {
    width: 100%;
    flex-basis: 100%;
  }
}
