:root{
  --bbl-gap: 22px;
  --bbl-radius: 16px;
  --bbl-max: 1200px;
}

/* Boxed layout */
.bbl-container{
  max-width: var(--bbl-max);
  margin: 0 auto;
  padding: 10px 18px 32px;
}

.bbl-controls{
  display:flex; gap:12px; align-items:center; margin-bottom:16px;
}
.bbl-search{ flex:1; padding:12px 14px; font-size:16px; border:1px solid #e5e5e5; border-radius:10px; background:#fff; }
.bbl-sort{ padding:12px 14px; border:1px solid #e5e5e5; border-radius:10px; background:#fff; }

/* Grid */
.bbl-grid{
  display:grid;
  grid-gap: var(--bbl-gap);
  grid-template-columns: repeat(var(--bbl-col-desktop,3), 1fr);
}
@media (max-width: 980px){
  .bbl-grid{ grid-template-columns: repeat(var(--bbl-col-tablet,2), 1fr); }
}
@media (max-width: 640px){
  .bbl-grid{ grid-template-columns: repeat(var(--bbl-col-mobile,1), 1fr); }
}

/* Cards */
.bbl-card{
  background:#fff; border:1px solid #eee; border-radius: var(--bbl-radius);
  overflow:hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  transition: transform .15s ease, box-shadow .15s ease;
  display:flex; flex-direction:column;
}
.bbl-card:hover{ transform: translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,0.10); }

/* Image cap with consistent aspect ratio */
.bbl-thumb{ aspect-ratio: 16/9; background:#f3f3f3; overflow:hidden; }
.bbl-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Body */
.bbl-card-body{ padding:12px 16px 16px; }
.bbl-meta{ color:#667085; font-size:12px; margin-bottom:6px; }
.bbl-title{ margin:0 0 8px; font-size:18px; line-height:1.35; }
.bbl-title a{ text-decoration:none; }
.bbl-excerpt{ margin:0; color:#374151; font-size:14px; }

/* Load more */
.bbl-load-more{
  margin:24px auto 0; display:none; padding:12px 18px; border-radius:10px;
  border:1px solid #ddd; background:#fafafa; cursor:pointer;
}

/* Empty state */
.bbl-empty{ color:#666; padding:16px; }
