.pswf-wrap { width: 100%; }

/* Toolbar */
.pswf-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 16px;
}
.pswf-toolbar__left{ flex: 0 0 auto; }
.pswf-toolbar__right{ flex: 0 0 auto; }

.pswf-filter-dropdown{
  border:1px solid #ddd;
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  min-width:190px;
}
.pswf-search{
  border:1px solid #ddd;
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  min-width:260px;
}

@media (max-width: 767px){
  .pswf-toolbar{ flex-direction:column; align-items:stretch; }
  .pswf-toolbar__left,.pswf-toolbar__right{ width:100%; }
  .pswf-filter-dropdown,.pswf-search{ width:100%; min-width:unset; }
}

/* Grid */
.pswf-grid{
  display:grid;
  gap:18px;
  align-items: stretch; /* ✅ equal height cards */
}
.pswf-wrap[data-layout="list"] .pswf-grid{ grid-template-columns: 1fr; }

.pswf-wrap[data-layout="grid"] .pswf-grid{
  grid-template-columns: repeat(var(--pswf-cols-desktop, 3), minmax(0, 1fr));
}
@media (max-width: 1024px){
  .pswf-wrap[data-layout="grid"] .pswf-grid{
    grid-template-columns: repeat(var(--pswf-cols-tablet, 2), minmax(0, 1fr));
  }
}
@media (max-width: 767px){
  .pswf-wrap[data-layout="grid"] .pswf-grid{
    grid-template-columns: repeat(var(--pswf-cols-mobile, 1), minmax(0, 1fr));
  }
}

/* Card equal height */
.pswf-card{ background: transparent; height: 100%; }
.pswf-card-inner{
  border:1px solid #eee;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  height: 100%;
  display:flex;
  flex-direction: column;
}

/* ✅ Image wrapper (Elementor controls will manage min-height, padding, bg, border, radius etc.) */
.pswf-thumb{
  width:100%;
  background:#f6f6f6;
  overflow:hidden;
}

/* ✅ Important:
   - default uses responsive full width/height behavior
   - object-fit + object-position will be controlled by Elementor settings
*/
.pswf-thumb img{
  display:block;
  width:100%;
  height:auto; /* ✅ default like Elementor Image Box */
  object-fit: cover;
  object-position: 50% 50%;
}

.pswf-noimg{
  padding:30px;
  text-align:center;
  color:#666;
}

/* Body */
.pswf-body{
  padding:12px 14px;
  flex: 1 1 auto;
  display:flex;
  flex-direction: column;
}

.pswf-title{
  margin:0 0 10px;
  font-size:16px;
  line-height:1.25;
}

/* Badges */
.pswf-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:auto; /* ✅ badges align at bottom */
}

.pswf-badge{
  font-size:12px;
  border:1px solid #ddd;
  border-radius:999px;
  padding:4px 10px;
  background:#fff;
}

/* Empty */
.pswf-empty{
  padding:18px;
  border:1px dashed #ddd;
  border-radius:12px;
}

/* Pagination */
.pswf-pagination{ margin-top: 18px; }
.pswf-pagination ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pswf-pagination li a,
.pswf-pagination li span{
  display:inline-block;
  border:1px solid #ddd;
  padding:8px 12px;
  border-radius:10px;
  text-decoration:none;
}
.pswf-pagination .current{ border-color:#111; }