/* ==========================================================================
   Blog Filter Pro — Sidebar + Results Grid
   ========================================================================== */

/* -------- SIDEBAR -------- */
.bfp-filter-sidebar{
  --bfp-text:#111827;
  --bfp-muted:#6b7280;
  --bfp-border:#e5e7eb;
  --bfp-primary:#0a2540;
  --bfp-accent:#a3e635;
  --bfp-bg:#ffffff;
  font-family:inherit;
  max-width:320px;
  width:100%;
  color:var(--bfp-text);
  font-size:15px;
  line-height:1.5;
  box-sizing:border-box;
}
.bfp-filter-sidebar *,
.bfp-filter-sidebar *:before,
.bfp-filter-sidebar *:after{box-sizing:border-box;}

.bfp-filter-toggle{
  display:flex; align-items:center; gap:10px;
  background:none; border:none; padding:12px 0;
  font-size:17px; font-weight:700; color:var(--bfp-text);
  cursor:pointer; width:100%;
  border-bottom:1px solid var(--bfp-border);
  margin-bottom:20px;
  font-family:inherit;
}
.bfp-filter-toggle svg{flex-shrink:0;}
.bfp-filter-toggle:hover{color:#000;}
.bfp-toggle-text-hide{display:none;}
.bfp-filter-sidebar.collapsed .bfp-toggle-text-show{display:none;}
.bfp-filter-sidebar.collapsed .bfp-toggle-text-hide{display:inline;}
.bfp-filter-sidebar.collapsed .bfp-filter-body{display:none;}
.bfp-filter-sidebar.collapsed .bfp-filter-toggle{border-bottom:none;margin-bottom:0;}

/* Search */
.bfp-search-wrap{
  position:relative; display:flex; align-items:center;
  border:1px solid var(--bfp-border); border-radius:8px;
  padding:10px 12px; background:#fff;
  margin-bottom:26px;
}
.bfp-search-icon{color:var(--bfp-muted);flex-shrink:0;}
.bfp-search-input{
  flex:1; border:none; outline:none;
  padding:0 8px; font-size:15px; font-family:inherit;
  color:var(--bfp-text); background:transparent; min-width:0;
}
.bfp-search-input::placeholder{color:var(--bfp-muted);}
.bfp-search-clear{
  background:none; border:none; cursor:pointer; padding:2px;
  color:var(--bfp-muted); display:none;
  align-items:center; justify-content:center; flex-shrink:0;
}
.bfp-search-clear.visible{display:flex;}
.bfp-search-clear:hover{color:var(--bfp-text);}

/* Groups */
.bfp-filter-group{
  border-bottom:1px solid var(--bfp-border);
  padding:0 0 20px;
  margin-bottom:20px;
}
.bfp-filter-group:last-of-type{border-bottom:none;margin-bottom:14px;}
.bfp-group-header{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; background:none; border:none;
  padding:0 0 16px; font-size:16px; font-weight:700;
  color:var(--bfp-text); cursor:pointer;
  font-family:inherit; text-align:left;
}
.bfp-group-icon{width:14px;height:14px;position:relative;flex-shrink:0;}
.bfp-group-icon::before{
  content:""; position:absolute; top:50%; left:0; right:0;
  height:2px; background:var(--bfp-text); transform:translateY(-50%);
}
.bfp-group-icon::after{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  width:2px; background:var(--bfp-text);
  transform:translateX(-50%) scaleY(0); transition:transform .2s;
}
.bfp-filter-group:not(.open) .bfp-group-icon::after{transform:translateX(-50%) scaleY(1);}
.bfp-group-body{
  display:flex; flex-direction:column; gap:12px;
  max-height:2000px; overflow:hidden;
  transition:max-height .3s ease, opacity .2s ease;
}
.bfp-filter-group:not(.open) .bfp-group-body{max-height:0;opacity:0;}

.bfp-option{
  display:flex; align-items:center; gap:10px;
  cursor:pointer; padding:2px 0;
  font-size:15px; color:var(--bfp-text); line-height:1.4;
  user-select:none;
}
.bfp-option input{position:absolute; opacity:0; pointer-events:none;}
.bfp-label{flex:1;}
.bfp-count{font-size:12px;color:var(--bfp-muted);}

/* Radio */
.bfp-radio{
  width:18px;height:18px;
  border:2px solid #9ca3af; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:border-color .15s; position:relative;
}
.bfp-option input[type="radio"]:checked ~ .bfp-radio{border-color:var(--bfp-primary);}
.bfp-option input[type="radio"]:checked ~ .bfp-radio::after{
  content:""; width:9px; height:9px;
  background:var(--bfp-primary); border-radius:50%;
}
.bfp-option:hover .bfp-radio{border-color:var(--bfp-primary);}
.bfp-option input[type="radio"]:focus-visible ~ .bfp-radio{
  box-shadow:0 0 0 3px rgba(10,37,64,.15);
}

/* Checkbox */
.bfp-check{
  width:18px;height:18px;
  border:2px solid #9ca3af; border-radius:3px;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:all .15s; position:relative;
}
.bfp-option input[type="checkbox"]:checked ~ .bfp-check{
  background:var(--bfp-primary); border-color:var(--bfp-primary);
}
.bfp-option input[type="checkbox"]:checked ~ .bfp-check::after{
  content:""; position:absolute; top:1px; left:5px;
  width:5px; height:9px;
  border-right:2px solid #fff; border-bottom:2px solid #fff;
  transform:rotate(45deg);
}
.bfp-option:hover .bfp-check{border-color:var(--bfp-primary);}
.bfp-option input[type="checkbox"]:focus-visible ~ .bfp-check{
  box-shadow:0 0 0 3px rgba(10,37,64,.15);
}

/* Reset button */
.bfp-filter-actions{margin-top:20px;}
.bfp-btn-reset{
  background:#f3f4f6; color:var(--bfp-text);
  border:1px solid var(--bfp-border); border-radius:8px;
  padding:10px 16px; font-size:14px; font-weight:600;
  cursor:pointer; font-family:inherit; width:100%;
  transition:all .15s;
}
.bfp-btn-reset:hover{background:var(--bfp-primary);color:#fff;border-color:var(--bfp-primary);}

/* -------- RESULTS -------- */
.bfp-filter-results{width:100%;position:relative;font-family:inherit;}
.bfp-results-meta{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:20px; padding-bottom:16px;
  border-bottom:1px solid var(--bfp-border,#e5e7eb);
  font-size:14px; color:#6b7280;
}
.bfp-results-count{font-weight:600;color:#111827;}

.bfp-results-grid{display:grid; gap:24px; position:relative; min-height:200px;}
.bfp-results-grid.bfp-columns-1{grid-template-columns:1fr;}
.bfp-results-grid.bfp-columns-2{grid-template-columns:repeat(2,1fr);}
.bfp-results-grid.bfp-columns-3{grid-template-columns:repeat(3,1fr);}
.bfp-results-grid.bfp-columns-4{grid-template-columns:repeat(4,1fr);}

@media(max-width:991px){
  .bfp-results-grid.bfp-columns-3,
  .bfp-results-grid.bfp-columns-4{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:639px){
  .bfp-results-grid.bfp-columns-2,
  .bfp-results-grid.bfp-columns-3,
  .bfp-results-grid.bfp-columns-4{grid-template-columns:1fr;}
}

/* Loading + spinner */
.bfp-results-grid.is-loading{opacity:.5; pointer-events:none;}
.bfp-loading{
  grid-column:1/-1;
  display:flex; align-items:center; justify-content:center;
  padding:60px 0; min-height:200px;
}
.bfp-spinner{
  width:40px;height:40px;
  border:3px solid #e5e7eb; border-top-color:#0a2540;
  border-radius:50%; animation:bfp-spin .8s linear infinite;
}
@keyframes bfp-spin{to{transform:rotate(360deg);}}

/* No results */
.bfp-no-results{
  grid-column:1/-1; padding:60px 20px; text-align:center;
  color:#6b7280; font-size:16px;
  background:#f9fafb; border-radius:12px;
}

/* Post card */
.bfp-card{
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  display:flex; flex-direction:column;
  transition:transform .2s, box-shadow .2s;
}
.bfp-card:hover{transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.10);}
.bfp-card-media{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:16/10; background:#f3f4f6;
}
.bfp-card-media img,.bfp-card-img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .35s ease;
}
.bfp-card:hover .bfp-card-img{transform:scale(1.03);}
.bfp-card-placeholder{
  width:100%; height:100%;
  background:linear-gradient(135deg,#e5e7eb 0%,#f3f4f6 100%);
}
.bfp-card-badge{
  position:absolute; top:12px; left:12px;
  background:#f59e0b; color:#fff;
  font-size:10px; font-weight:900; letter-spacing:1px;
  padding:5px 10px; border-radius:5px;
  text-transform:uppercase;
}
.bfp-card-body{padding:20px 22px 22px; display:flex; flex-direction:column; flex:1;}
.bfp-card-meta{
  display:flex; gap:16px; margin-bottom:10px;
  font-size:12px; color:#6b7280;
}
.bfp-meta-item{display:inline-flex; align-items:center; gap:5px;}
.bfp-meta-item svg{opacity:.7;}
.bfp-card-title{
  font-size:17px; font-weight:800; color:#0d3d5f;
  line-height:1.35; letter-spacing:-.3px; margin:0 0 10px;
}
.bfp-card-title a{color:inherit; text-decoration:none;}
.bfp-card-title a:hover{color:#1d90d3;}
.bfp-card-excerpt{
  font-size:14px; color:#4b5563; line-height:1.55;
  margin:0 0 14px; flex:1;
}
.bfp-card-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color:#84cc16;
  text-decoration:none; margin-top:auto;
  align-self:flex-start;
}
.bfp-card-link:hover{color:#65a30d;}

/* Load more */
.bfp-load-more-wrap{text-align:center; margin-top:32px;}
.bfp-load-more{
  background:#a3e635; color:#0a2540;
  font-weight:900; font-size:14px; text-transform:uppercase;
  border:none; border-radius:10px;
  padding:14px 30px;
  cursor:pointer; letter-spacing:.6px; font-family:inherit;
  transition:background .2s;
}
.bfp-load-more:hover{background:#84cc16;}
.bfp-load-more:disabled{opacity:.6; cursor:wait;}

/* Skeleton loaders (optional; shown while loading) */
.bfp-card.is-skeleton .bfp-card-media,
.bfp-card.is-skeleton .bfp-card-title,
.bfp-card.is-skeleton .bfp-card-excerpt{
  background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);
  background-size:200% 100%;
  animation:bfp-shimmer 1.4s infinite;
  color:transparent;
  border-radius:8px;
}
@keyframes bfp-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
