/* BhavPro BPSM - Reviews Widget (CSS Variables controlled from admin) */

.bpsm-reviews{margin:6px 0}
.bpsm-reviews-summary-wrap{text-align:center;margin:6px 0 14px;background:var(--bpsm-header-bg,transparent)}
.bpsm-reviews-summary-title{font-weight:600;color:#374151;margin-bottom:4px}
.bpsm-reviews-summary-line{display:inline-flex;gap:8px;align-items:center}
.bpsm-avg{font-size:20px}
.bpsm-out-of{opacity:.75;font-weight:400;margin-left:1px}
.bpsm-count{color:#6b7280;font-size:13px}

/* Grid */
.bpsm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--bpsm-gap,14px)}

/* Card */
.bpsm-card{
  background:var(--bpsm-card-bg,#fff);
  color:var(--bpsm-card-text,#111827);
  border:1px solid var(--bpsm-border,#e5e7eb);
  border-radius:var(--bpsm-radius,14px);
  padding:12px;
  box-shadow:var(--bpsm-shadow,0 1px 2px rgba(0,0,0,.04));
}
.bpsm-card-head{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.bpsm-avatar img,.bpsm-avatar span{width:36px;height:36px;border-radius:999px;display:inline-block;background:#f3f4f6;color:#374151;
  font-weight:600;line-height:36px;text-align:center}
.bpsm-name{font-weight:600}
.bpsm-meta{display:flex;align-items:center;gap:4px;margin-top:2px}

/* SVG stars (used only if star_mode=svg) */
.bpsm-stars svg{width:var(--bpsm-star-size,16px);height:var(--bpsm-star-size,16px);vertical-align:middle;display:inline-block;flex:0 0 auto;}
.bpsm-reviews-summary-line .bpsm-stars svg{width:var(--bpsm-star-size-lg,18px);height:var(--bpsm-star-size-lg,18px)}

/* Text star fallback (universal-safe) */
.bpsm-star-text { font-size: 0; line-height: 1; display: inline-flex; gap: 2px; }
.bpsm-star-text .bp-fill, .bpsm-star-text .bp-empty { font-size: var(--bpsm-star-size,16px); line-height: 1; }
.bpsm-reviews-summary-line .bpsm-star-text .bp-fill, .bpsm-reviews-summary-line .bpsm-star-text .bp-empty { font-size: var(--bpsm-star-size-lg,18px); }
.bpsm-star-text .bp-fill { color: var(--bpsm-star, #f59e0b); }
.bpsm-star-text .bp-empty { color: #d1d5db; }
.bpsm-star-text .bp-half { position: relative; width: var(--bpsm-star-size-lg,18px); height: var(--bpsm-star-size-lg,18px); display:inline-block; }
.bpsm-star-text .bp-half .bp-half-empty { position:absolute; left:0; top:0; color:#d1d5db; font-size:var(--bpsm-star-size-lg,18px); }
.bpsm-star-text .bp-half .bp-half-fill { position:absolute; left:0; top:0; color:var(--bpsm-star,#f59e0b); font-size:var(--bpsm-star-size-lg,18px); width:50%; overflow:hidden; display:inline-block; }

.bpsm-body{margin:6px 0 8px}
.bpsm-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#6b7280;font-size:12px}
.bpsm-badge{background:#e8f5e9;color:#2e7d32;border-radius:999px;padding:1px 6px}
.bpsm-more{margin-left:auto;border:none;background:var(--bpsm-more-bg,#f3f4f6);color:var(--bpsm-more-text,#111827);border-radius:999px;padding:4px 8px;font-size:12px;cursor:pointer}
.bpsm-more:focus{outline:2px solid #93c5fd;outline-offset:2px}

/* Clamp */
.bpsm-clamp{
  display:-webkit-box;
  -webkit-line-clamp:var(--bpsm-clamp,6);
  line-clamp:var(--bpsm-clamp,6);
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.bpsm-card.bpsm-expanded .bpsm-clamp{-webkit-line-clamp:unset;line-clamp:unset}

/* Reviews Widget Shortcode Dropdown */
.bpsm-sc-options {
    margin-top: 8px;
    padding: 10px;
    background: #fff;
    border: 1px solid #ccd0d4;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}

.bpsm-sc-options table {
    margin: 0;
    width: 100%;
}

.bpsm-sc-options th,
.bpsm-sc-options td {
    padding: 6px 8px;
}

.bpsm-copy-shortcode {
    min-width: 80px;
    text-align: center;
}

/* Avatar: photo or initials – always a perfect circle */
.bpsm-avatar{
  width:40px; height:40px; border-radius:9999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#f3f4f6; color:#2d3748; font-weight:600;
  text-transform:uppercase; font-size:16px; line-height:1;
  overflow:hidden; flex:0 0 40px;
}
.bpsm-avatar img{ width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block; }

/* Optional spacing with your card’s header */
.bpsm-card .bpsm-avatar{ margin-right:12px; }
.bpsm-author-wrap{ display:flex; flex-direction:column; }
.bpsm-author-name{ font-weight:600; }
.bpsm-avatar {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px; height:44px;
  border-radius:9999px;
  background:#f3f4f6; /* light gray background */
  color:#111827;       /* dark text for initials */
  font-weight:600;
  font-size:16px;
  line-height:1;
  overflow:hidden;
}
.bpsm-avatar__img { width:100%; height:100%; object-fit:cover; display:block; }
.bpsm-avatar--initials { text-transform:uppercase; }
/* Source badge (small logo or text pill) */
.bpsm-source{
  display:inline-flex; align-items:center; gap:6px;
  padding:2px 6px; border-radius:999px;
  background:#f3f4f6; color:#111827; font-size:12px; line-height:1;
  text-decoration:none; border:1px solid #e5e7eb;
}
.bpsm-source__img{ display:block; height:18px; width:auto }
.bpsm-source__txt{ font-weight:600; }
/* Provider badge (Google or generic) */
.bpsm-source{display:inline-flex;align-items:center;margin-left:8px}


/* === Provider badge (Google / generic) — match Verified pill height === */
.bpsm-foot { --bpsm-chip-h: 20px; } /* adjust to your Verified pill height: 18–22px */

.bpsm-badge{
  display:inline-flex;
  align-items:center;
  min-height:var(--bpsm-chip-h);
  padding:1px 6px;
  line-height:1;
  border-radius:999px;
}

/* Link “chip” that holds the logo */
.bpsm-source{
  display:inline-flex;
  align-items:center;
  min-height:var(--bpsm-chip-h);
  padding:1px 6px;                 /* same vertical padding as .bpsm-badge */
  border-radius:999px;
  background:#f3f4f6;
  color:#111827;
  font-size:12px;
  line-height:1;
  border:1px solid #e5e7eb;
  margin-left:6px;
}

/* Make the image exactly the chip’s height */
.bpsm-source__img{
  height:var(--bpsm-chip-h) !important;  /* override any earlier rules */
  width:auto;
  display:block;
}

/* ── BPSM: Software meta block (scoped) ─────────────────────────── */
.bpsm-admin-scope #bpsm-software-meta-block.postbox {
  margin-top: 20px;
}

.bpsm-admin-scope #bpsm-software-meta-block .inside {
  padding-top: 0;            /* match your upper form vertical rhythm */
}

.bpsm-admin-scope #bpsm-software-meta-block .form-table {
  margin-top: 0;
}

.bpsm-admin-scope #bpsm-software-meta-block .form-table th {
  width: 220px;              /* match the top form’s label column */
  font-weight: 600;
  padding-top: 14px;
}

.bpsm-admin-scope #bpsm-software-meta-block .form-table td {
  padding-top: 10px;
}

.bpsm-admin-scope #bpsm-software-meta-block .regular-text {
  width: 28em;               /* same input width as your main form */
  max-width: 100%;
}

.bpsm-admin-scope #bpsm-software-meta-block textarea.large-text {
  max-width: 38em;
  min-height: 100px;
}

.bpsm-admin-scope #bpsm-software-meta-block .submit {
  padding: 0 12px 12px;      /* align Save button with table edge */
}

/* Mobile: collapse to 1 column like core */
@media screen and (max-width: 782px) {
  .bpsm-admin-scope #bpsm-software-meta-block .form-table th {
    width: auto;
  }
  .bpsm-admin-scope #bpsm-software-meta-block .regular-text,
  .bpsm-admin-scope #bpsm-software-meta-block textarea {
    width: 100%;
  }
}

/* Wide screens: force columns to match per_page (data-limit) */
.bpsm-reviews[data-limit="1"] .bpsm-grid { grid-template-columns: repeat(1, minmax(260px, 1fr)); }
.bpsm-reviews[data-limit="2"] .bpsm-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
.bpsm-reviews[data-limit="3"] .bpsm-grid { grid-template-columns: repeat(3, minmax(260px, 1fr)); }
.bpsm-reviews[data-limit="4"] .bpsm-grid { grid-template-columns: repeat(4, minmax(260px, 1fr)); }
.bpsm-reviews[data-limit="5"] .bpsm-grid { grid-template-columns: repeat(5, minmax(260px, 1fr)); }

/* Downshift at smaller breakpoints (keeps rows neat on tablets/phones) */
@media (max-width: 1024px) {
  .bpsm-reviews[data-limit] .bpsm-grid { grid-template-columns: repeat(2, minmax(240px, 1fr)); }
}
@media (max-width: 640px) {
  .bpsm-reviews[data-limit] .bpsm-grid { grid-template-columns: 1fr; }
}


/* === BPSM Reviews — Centered pager with pill buttons + dots (WP-safe) === */

/* 1) Reset any previous icon/arrow experiments */
.bpsm-pg-prev::before,
.bpsm-pg-prev::after,
.bpsm-pg-next::before,
.bpsm-pg-next::after { content: none !important; background: none !important; }

/* 2) Row: centered "← Previous • dots • Next →" */
.bpsm-pager{
  display:flex;
  align-items:center;
  justify-content:center;       /* center the whole row */
  gap:16px;
  margin:14px 0 6px;
  flex-wrap:wrap;               /* keeps neat on mobile */
  /* optional tokens, tweak if you like */
  --pill-bg: #ffffff;
  --pill-text: #374151;         /* gray-700 */
  --pill-border: #cfd4dc;       /* subtle border */
  --pill-hover: #f8fafc;        /* hover bg (very light) */
  --pill-active: #e5e7eb;       /* pressed bg (light gray) */
  --pill-shadow: 0 1px 2px rgba(0,0,0,.05);
  --dot-inactive: #cfd1d5;
  --dot-active: #4b5563;
}

/* 3) Pill buttons (visible text + single arrow) */
.bpsm-pg-prev,
.bpsm-pg-next{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;                      /* space between arrow and text */
  padding:8px 14px;
  border-radius:9999px;
  border:1px solid var(--pill-border);
  background:var(--pill-bg);
  color:var(--pill-text);
  font:600 14px/1 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  box-shadow:var(--pill-shadow);
  cursor:pointer;
  transition:background .12s ease, transform .12s ease, opacity .12s ease, color .12s ease, border-color .12s ease;
}

/* exactly ONE arrow per button */
.bpsm-pg-prev::before{ content:"\2190"; font-weight:600; }  /* ← */
.bpsm-pg-next::after { content:"\2192"; font-weight:600; }  /* → */

/* don’t let the opposite side add a second arrow */
.bpsm-pg-prev::after,
.bpsm-pg-next::before{ content:none !important; }

/* states */
.bpsm-pg-prev:hover,
.bpsm-pg-next:hover{ background:var(--pill-hover); transform:translateY(-1px); }

.bpsm-pg-prev:active,
.bpsm-pg-next:active{ background:var(--pill-active); transform:none; }

.bpsm-pg-prev[disabled],
.bpsm-pg-next[disabled]{ opacity:.45; cursor:not-allowed; background:var(--pill-bg); transform:none; }

/* keyboard focus */
.bpsm-pg-prev:focus-visible,
.bpsm-pg-next:focus-visible{ outline:2px solid #93c5fd; outline-offset:3px; }

/* 4) Dots centered between pills */
.bpsm-pg-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-width:120px;              /* keeps dots centered when text length varies */
}

.bpsm-dot{
  width:10px; height:10px;
  border-radius:9999px;
  background:var(--dot-inactive);
  border:0; padding:0;
  cursor:pointer;
  transition:transform .12s ease, opacity .12s ease, background-color .12s ease;
}
.bpsm-dot:hover{ transform:scale(1.06); opacity:.9; }
.bpsm-dot.is-active{ background:var(--dot-active); }

/* 5) Keep pager under grid, centered */
.bpsm-reviews{ display:grid; grid-template-areas:"summary" "grid" "pager"; }
.bpsm-reviews-summary-wrap{ grid-area:summary; }
.bpsm-grid{ grid-area:grid; }
.bpsm-pager{ grid-area:pager; }

/* ── END BPSM Reviews • Pager (centered pill buttons + dots) ───────── */