/* ═══════════════════════════════════════════════
   Avis Clients Pro — Widgets (front + aperçu admin)
   Toutes les valeurs de design passent par des variables CSS
   définies inline par widget : aucune dimension fixe imposée au thème.
   @author captainlinux.io
═══════════════════════════════════════════════ */
.prw {
  --prw-primary: #ffc107; --prw-star: #f5a623; --prw-text: #1a2332; --prw-secondary: #6b7280;
  --prw-bg: #fff; --prw-border: #e5e7eb; --prw-btn: #1a2332; --prw-btn-text: #fff;
  box-sizing: border-box;
  width: var(--prw-width, 100%);
  max-width: 100%;
  min-height: var(--prw-height, auto);
  margin: var(--prw-margin, 10px) auto;
  padding: var(--prw-padding, 20px);
  background: var(--prw-bg);
  color: var(--prw-text);
  border: var(--prw-border-width, 1px) solid var(--prw-border);
  border-radius: var(--prw-radius, 12px);
  box-shadow: var(--prw-shadow, none);
  text-align: var(--prw-align, left);
  font-size: var(--prw-text-size, 14px);
  line-height: 1.45;
}
.prw *, .prw *::before, .prw *::after { box-sizing: border-box; }
.prw-title { font-size: var(--prw-title-size, 18px); font-weight: var(--prw-weight, 700); color: var(--prw-text); margin-bottom: 4px; }
.prw-subtitle, .prw-muted, .prw-count, .prw-review-date, .prw-review-product { color: var(--prw-secondary); }
.prw-subtitle { margin-bottom: 8px; }
.prw-score { font-weight: var(--prw-weight, 700); color: var(--prw-text); }
.prw-score--big { font-size: var(--prw-rating-size, 28px); line-height: 1.1; margin: 6px 0 2px; }
.prw-text { margin: 8px 0 0; }
.prw-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: var(--prw-justify, flex-start); }
.prw-card { display: flex; flex-direction: column; align-items: center; text-align: center; }
.prw-card-rating { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 6px 0; }
.prw[style*="--prw-align:center"] .prw-line, .prw[style*="--prw-align:center"] .prw-compact, .prw[style*="--prw-align:center"] .prw-card-rating { justify-content: center; }
.prw[style*="--prw-align:right"] .prw-line, .prw[style*="--prw-align:right"] .prw-compact, .prw[style*="--prw-align:right"] .prw-card-rating { justify-content: flex-end; }
.prw-line .prw-score, .prw-card-rating .prw-score { font-size: var(--prw-rating-size, 22px); font-weight: 800; }

/* ── Étoiles ── */
.prw-stars { display: inline-flex; gap: 2px; font-size: var(--prw-star-size, 18px); line-height: 1; vertical-align: middle; }
.prw-stars--sm { font-size: calc(var(--prw-star-size, 18px) * .8); }
.prw-star { color: #d1d5db; position: relative; display: inline-block; }
.prw-star--full { color: var(--prw-star); }
.prw-star--half { background: linear-gradient(90deg, var(--prw-star) 50%, #d1d5db 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.prw-stars-outline .prw-star--empty { color: transparent; -webkit-text-stroke: 1px var(--prw-star); }
.prw-stars-rounded .prw-star { text-shadow: 0 0 1px currentColor; }

/* ── Bouton ── */
.prw-btn {
  display: inline-block; margin-top: 12px; padding: .55em 1.2em;
  background: var(--prw-btn); color: var(--prw-btn-text) !important;
  font-size: var(--prw-btn-size, 14px); font-weight: 600; text-decoration: none !important;
  border-radius: var(--prw-btn-radius, 8px);
  border: var(--prw-btn-border, 0) solid var(--prw-btn-text);
  transition: transform .15s, box-shadow .15s, opacity .15s;
}
.prw-btn-hover .prw-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.18); opacity: .92; }

/* ── Badge ── */
.prw--badge { display: inline-block; width: auto; }
.prw-badge { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: var(--prw-text-size, 14px); }
.prw-badge .prw-star { color: var(--prw-star); font-size: var(--prw-star-size, 18px); }
.prw-badge .prw-count { color: var(--prw-text); opacity: .85; }

/* ── Pilule (Badge arrondi jaune) ── */
.prw--pill { display: inline-block; width: auto; }
.prw-pill { display: inline-flex; align-items: center; gap: 8px; font-size: var(--prw-text-size, 13px); font-weight: 700; color: var(--prw-text, #1a1a1a); }
.prw-pill .prw-star { color: var(--prw-star, #1a1a1a); font-size: 15px; }
.prw-pill-score { font-weight: 800; }
.prw-pill-sep { opacity: .7; }
.prw-pill-count { color: inherit !important; text-decoration: none !important; font-weight: 600; }
.prw-pill-count:hover { text-decoration: underline !important; }

/* ── Compact ── */
.prw-compact { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.prw-compact .prw-score { font-size: var(--prw-rating-size, 16px); }
.prw-compact a.prw-count { text-decoration: underline; }

/* ── Premium ── */
.prw-premium { display: flex; gap: 20px; align-items: center; text-align: left; }
.prw-premium-score { background: var(--prw-primary); color: #1a2332; border-radius: calc(var(--prw-radius, 12px) * .8); padding: 16px 22px; text-align: center; flex-shrink: 0; }
.prw-premium-score .prw-star--full { color: #1a2332; }
.prw-premium-score .prw-count { color: #1a2332; font-size: .8em; font-weight: 600; }
.prw-premium-value { font-size: var(--prw-rating-size, 28px); font-weight: 800; line-height: 1; margin-bottom: 4px; }
.prw-premium-body { flex: 1; min-width: 0; }
.prw-trust { height: 8px; background: rgba(127,127,127,.25); border-radius: 8px; overflow: hidden; margin: 10px 0 0; }
.prw-trust span { display: block; height: 100%; background: var(--prw-primary); border-radius: 8px; }
.prw[style*="--prw-align:center"] .prw-premium { justify-content: center; }

/* ── Répartition ── */
.prw-dist { margin-top: 12px; display: flex; flex-direction: column; gap: 5px; text-align: left; }
.prw-dist-row { display: flex; align-items: center; gap: 8px; font-size: .85em; }
.prw-dist-label { width: 34px; flex-shrink: 0; color: var(--prw-secondary); }
.prw-dist-label .prw-star { font-size: .9em; }
.prw-dist-bar { flex: 1; height: 6px; background: rgba(127,127,127,.2); border-radius: 6px; overflow: hidden; }
.prw-dist-bar span { display: block; height: 100%; background: var(--prw-primary); border-radius: 6px; }
.prw-dist-pct { width: 48px; text-align: right; color: var(--prw-secondary); flex-shrink: 0; }

/* ── Liste d'avis ── */
.prw-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 14px; text-align: left; }
.prw-review { border: 1px solid var(--prw-border); border-radius: calc(var(--prw-radius, 12px) * .7); padding: 14px; background: rgba(255,255,255,.04); }
.prw-review-head { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.prw-avatar { width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; }
.prw-review-author { display: block; color: var(--prw-text); }
.prw-review-date { font-size: .8em; }
.prw-review-title { font-weight: 700; margin-top: 4px; }
.prw-review-text { margin: 4px 0 0; }
.prw-review-product { font-size: .8em; margin-top: 6px; font-style: italic; }
.prw-review-photos { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.prw-review-photos img { width: 52px; height: 52px; object-fit: cover; border-radius: 6px; }
.prw-review-response { margin-top: 8px; background: #1a1d21; color: #e5e7eb; border-radius: 8px; padding: 8px 10px; font-size: .85em; }
.prw-review-response strong { color: #ffc107; margin-right: 4px; }

/* ── Responsive (front) ── */
@media (min-width: 992px) { .prw-hide-desktop { display: none !important; } }
@media (min-width: 576px) and (max-width: 991.98px) { .prw-hide-tablet { display: none !important; } }
@media (max-width: 575.98px) {
  .prw-hide-mobile { display: none !important; }
  .prw { text-align: var(--prw-m-align, center); padding: var(--prw-m-padding, 14px); }
  .prw-premium { flex-direction: column; text-align: var(--prw-m-align, center); }
}
