/* =========================
   Filter bar base
========================= */

.fop-filter-bar{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0 0 18px;
}

.fop-filter-groups{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:6px 0;
}

/* Desktop rows */
.fop-filter-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.fop-filter-row:last-child{
  margin-bottom:0;
}

.fop-filter-label{
  font-size:13px;
  font-weight:600;
  opacity:.8;
  min-width:90px;
  padding-top:4px;
  white-space:nowrap;
}

.fop-filter-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  flex:1;
  min-width:240px;
  padding:2px 0 6px;
}

/* Tag pills */
.fop-tag{
  padding:6px 11px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:999px;
  background:#fafafa;
  font-size:13px;
  text-decoration:none;
  transition:.12s;
  line-height:1.1;
}

.fop-tag:hover{
  transform:translateY(-1px);
}

.fop-tag.active{
  border-color:rgba(0,0,0,.22);
  background:#f0f7ff;
  font-weight:600;
}

/* Clear button */
.fop-filter-actions{
  display:flex;
}

.fop-clear-filters{
  border-radius:10px;
  padding:8px 12px;
  font-size:13px;
  white-space:nowrap;
}

/* =========================
   Show/hide desktop vs mobile UI
========================= */

.fop-desktop-only{ display:none !important; }
.fop-mobile-only{ display:block !important; }

@media (min-width: 900px){
  .fop-desktop-only{ display:block !important; }
  .fop-mobile-only{ display:none !important; }

  .fop-filter-bar{
    flex-direction:row;
    align-items:flex-start;
    justify-content:space-between;
    gap:22px;
  }

  .fop-filter-groups{
    flex:1;
    gap:10px;
  }

  .fop-filter-actions{
    flex:0 0 auto;
    justify-content:flex-end;
    padding-top:2px;
  }
}

/* =========================
   Mobile accordions
========================= */

.fop-mobile-accordions{
  display:flex;
  flex-direction:column;
}

/* Theme-proof spacing (your theme was fighting gaps) */
@media (max-width: 899px){

  .fop-mobile-accordions .fop-acc{
    margin:0 0 12px 0 !important;
  }
  .fop-mobile-accordions .fop-acc:last-child{
    margin-bottom:0 !important;
  }

  .fop-filter-actions{
    margin-top:14px !important;
  }

  .fop-clear-filters{
    width:100% !important;
    display:inline-flex !important;
    justify-content:center !important;
  }
}

.fop-acc{
  border:1px solid rgba(0,0,0,.10);
  border-radius:12px;
  background:#fff;
  padding:0;
  overflow:hidden;
}

.fop-acc-summary{
  list-style:none;
  cursor:pointer;
  padding:12px 12px;
  font-size:13px;
  font-weight:600;
  opacity:.9;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* remove default marker */
.fop-acc-summary::-webkit-details-marker{ display:none; }
.fop-acc summary::marker{ content:""; }

/* chevron */
.fop-acc-summary:after{
  content:"▾";
  font-size:14px;
  opacity:.7;
  transform:translateY(-1px);
}

.fop-acc[open] .fop-acc-summary:after{
  content:"▴";
}

.fop-acc-body{
  padding:8px 12px 14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

/* =========================
   Music grid
========================= */

.fop-music-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:16px;
}

.fop-music-card{
  padding:16px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  background:#fff;
}
