/* Basic resets */
.sp-reviews-topbar { padding:8px 10px; display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.sp-filter-form { display:flex; gap:8px; align-items:center; }
.sp-filter-form select { padding:8px 10px; border:1px solid #ddd; border-radius:6px; background:#fff; }

/* Write button (also printed by shortcode) */
.sp-write-btn { display:inline-block; background:#0073aa; color:#fff; padding:8px 14px; border-radius:6px; text-decoration:none; font-weight:600; }

/* Grid container */
.sp-reviews-wrapper { width:100%; }
.sp-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  align-items: stretch;
}

/* Card */
.sp-card {
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:12px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.04);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition: transform .18s ease, box-shadow .18s ease;
}
.sp-card:hover { transform: translateY(-6px); box-shadow: 0 12px 28px rgba(0,0,0,0.06); }

.sp-card-media img { width:100%; height:160px; object-fit:cover; display:block; }
.sp-card-inner { padding:12px; display:flex; flex-direction:column; gap:8px; }
.sp-card-title { font-size:16px; margin:0 0 4px 0; font-weight:700; color:#111; }
.sp-card-meta { display:flex; flex-direction:column; gap:2px; font-size:13px; color:#666; }
.sp-card-body p { margin:0; color:#333; font-size:14px; line-height:1.45; }
.sp-card-footer { margin-top:auto; display:flex; justify-content:space-between; align-items:center; padding-top:8px; font-size:13px; color:#777; }

/* Stars */
.sp-stars { display:inline-block; font-size:14px; }
.sp-stars .star { margin-right:3px; color:#ccc; }
.sp-stars .star.filled { color:#FFD700; }

/* Popup */
.sp-popup-overlay {
   position:absolute; inset:0; display:none; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.45); z-index:9999; padding:20px;
}
.sp-popup-overlay[aria-hidden="false"] { display:flex; }
.sp-popup-content {
  background:#fff; width:100%; max-width:720px; border-radius:10px; padding:18px; position:relative;
}
.sp-popup-close { position:absolute; right:12px; top:8px; background:red; border:none; font-size:22px; cursor:pointer; }

/* Form */
.sp-row { margin-bottom:12px; display:flex; flex-direction:column; gap:6px; }
.sp-row label { font-weight:600; font-size:13px; color:#222; }
.sp-row input[type="text"],
.sp-row input[type="email"],
.sp-row input[type="file"],
.sp-row select,
.sp-row textarea { width:100%; padding:10px 12px; border-radius:8px; border:1px solid #ddd; font-size:14px; box-sizing:border-box; background-color: white; }

.sp-rating { display:flex; gap:6px; }
.sp-star { border:none; background:transparent; font-size:22px; cursor:pointer; color:#ccc; padding:4px 6px; border-radius:6px; }
.sp-star.active, .sp-star:hover { color:#FFD700; }

.sp-submit-row { display:flex; justify-content:flex-end; }
.sp-button { padding:10px 16px; border-radius:8px; border:none; background:#0073aa; color:#fff; cursor:pointer; font-weight:600; }

/* small screens */
@media (max-width: 991px) {
  .sp-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .sp-card-media img { height:140px; }
}

/* phones */
@media (max-width: 520px) {
  .sp-filter-form { width:100%; flex-direction:column; align-items:stretch; gap:10px; }
  .sp-cards-grid { grid-template-columns: 1fr; gap:12px; }
  .sp-popup-content { padding:14px; max-width: 94%; }
}
