/* ============================================================
   CBD PURPLE Reviews — affichage page produit (façon Loyoly).
   Scopé sous .cbdprv.
   ============================================================ */
.cbdprv {
  --c-magenta:#bb3ab0; --c-violet:#7c43e8; --c-purple:#9747ff; --c-teal:#2ea6b3;
  --c-yellow:#ffd633; --c-star-off:#e4dceb; --c-ink:#1a0f24; --c-text:#211726;
  --c-text-2:#6a5d72; --c-muted:#9a8fa3; --c-line:#ece7f0; --c-bg-soft:#faf7fc;
  --c-grad:linear-gradient(115deg,#bb3ab0 0%,#9747ff 55%,#7c43e8 100%);
  --c-r:24px;
  font-family:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  color:var(--c-text); max-width:1280px; margin:0 auto; padding:8px 0;
  box-sizing:border-box;
}
.cbdprv *, .cbdprv *::before, .cbdprv *::after { box-sizing:border-box; }

/* En-tête de section */
.cbdprv-head { margin:0 0 22px; }
.cbdprv-eyebrow {
  display:inline-flex; align-items:center; gap:6px;
  font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--c-magenta);
}
.cbdprv-eyebrow svg { fill:currentColor; }
.cbdprv-title { margin:8px 0 0; font-size:clamp(22px,3vw,30px); font-weight:800; line-height:1.15; color:var(--c-ink); }

/* Étoiles */
.cbdprv-stars { display:inline-flex; align-items:center; gap:1px; line-height:1; }
.cbdprv-star { display:inline-flex; }
.cbdprv-star svg { display:block; }
.cbdprv-star.is-on svg { fill:var(--c-yellow); }
.cbdprv-star.is-off svg { fill:var(--c-star-off); }

/* ---------- Récap (note globale + barres + CTA) ---------- */
.cbdprv-summary {
  display:grid; grid-template-columns:minmax(220px,260px) 1fr; gap:32px; align-items:center;
  background:var(--c-bg-soft); border:1px solid var(--c-line); border-radius:var(--c-r);
  padding:26px 28px; margin-bottom:22px;
}
.cbdprv-summary-score { display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; }
.cbdprv-score-big { font-size:52px; font-weight:800; line-height:1; color:var(--c-ink); }
.cbdprv-score-big span { font-size:20px; font-weight:700; color:var(--c-muted); }
.cbdprv-count { font-size:13px; color:var(--c-text-2); }
.cbdprv-summary-cta { margin-top:6px; }

.cbdprv-rbreak-bars { display:grid; gap:9px; }
.cbdprv-rbar { display:flex; align-items:center; gap:12px; font-size:13px; }
.cbdprv-rbar > span { display:inline-flex; align-items:center; gap:3px; width:34px; color:var(--c-text-2); }
.cbdprv-rbar > span svg { fill:var(--c-yellow); }
.cbdprv-rbar-track { flex:1; height:8px; border-radius:99px; background:#e7ddef; overflow:hidden; }
.cbdprv-rbar-track span { display:block; height:100%; border-radius:99px; background:var(--c-yellow); transition:width .6s ease; }
.cbdprv-rbar em { font-style:normal; width:38px; text-align:right; color:var(--c-text-2); }

/* ---------- Bande photos clients ---------- */
.cbdprv-gallery {
  display:flex; gap:10px; overflow-x:auto; overflow-y:hidden;
  padding:8px 2px 10px; margin-bottom:18px;
  scrollbar-width:thin; -webkit-overflow-scrolling:touch;
}
.cbdprv-gphoto {
  flex:0 0 auto; width:84px; height:84px; border-radius:14px; border:1px solid var(--c-line);
  background-size:cover; background-position:center; cursor:zoom-in;
  transition:transform .18s ease, border-color .18s ease;
}
.cbdprv-gphoto:hover { transform:scale(1.06); border-color:var(--c-purple); }

/* ---------- Grille d'avis ---------- */
.cbdprv-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }

.cbdprv-card { border:1px solid var(--c-line); border-radius:var(--c-r); padding:22px; background:#fff; transition:box-shadow .18s ease, transform .18s ease; }
.cbdprv-card:hover { box-shadow:0 10px 30px -16px rgba(124,67,232,.35); transform:translateY(-2px); }
.cbdprv-card-head { display:flex; align-items:center; gap:10px; }
.cbdprv-ava {
  width:40px; height:40px; flex:0 0 auto; border-radius:99px; background:var(--c-grad); color:#fff;
  display:grid; place-items:center; font-weight:800; font-size:15px; text-transform:uppercase; line-height:1;
}
.cbdprv-who { display:flex; flex-direction:column; line-height:1.2; min-width:0; }
.cbdprv-who b { font-size:14.5px; color:var(--c-ink); font-weight:700; }
.cbdprv-who em { font-style:normal; font-size:12.5px; color:var(--c-text-2); }
.cbdprv-verif { margin-left:auto; display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--c-teal); white-space:nowrap; }

.cbdprv-rate { display:flex; align-items:center; gap:8px; margin:12px 0 8px; flex-wrap:wrap; }
.cbdprv-date { font-size:12.5px; color:var(--c-muted); }

.cbdprv-revtitle { margin:0 0 4px; font-size:14.5px; font-weight:700; color:var(--c-ink); }
.cbdprv-text { margin:0; font-size:14.5px; line-height:1.6; color:var(--c-text); }
.cbdprv-text p { margin:0 0 8px; }
.cbdprv-text p:last-child { margin-bottom:0; }
.cbdprv-text a { color:var(--c-purple); text-decoration:underline; }
.cbdprv-text ul, .cbdprv-text ol { margin:0 0 8px; padding-left:18px; }

/* Médias dans une carte */
.cbdprv-media { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cbdprv-thumb { width:64px; height:64px; border-radius:10px; border:1px solid var(--c-line); background-size:cover; background-position:center; display:block; cursor:zoom-in; transition:transform .15s ease; }
.cbdprv-thumb:hover { transform:scale(1.04); }
.cbdprv-media--video { margin-top:8px; }
.cbdprv-video { width:140px; height:90px; border-radius:10px; border:1px solid var(--c-line); background:#000; object-fit:cover; }

/* Pied + boutons */
.cbdprv-foot { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; justify-content:center; }
.cbdprv-btn {
  appearance:none; cursor:pointer; border-radius:99px; padding:12px 22px; font-family:inherit;
  font-size:14px; font-weight:700; border:1px solid transparent; display:inline-flex; align-items:center; gap:8px;
  transition:filter .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.cbdprv-btn--ghost { background:#fff; border-color:var(--c-line); color:var(--c-ink); }
.cbdprv-btn--ghost:hover { border-color:var(--c-purple); color:var(--c-purple); }
.cbdprv-btn--primary { background:var(--c-grad); color:#fff; }
.cbdprv-btn--primary:hover { filter:brightness(1.05); }
.cbdprv-btn svg { fill:none; }
.cbdprv-btn.is-loading { opacity:.6; pointer-events:none; }

/* Moteur ets injecté (masqué) : sert uniquement au dépôt d'avis, jamais affiché */
.cbdprv-engine-host { position:absolute !important; left:-9999px !important; top:0 !important; width:1px; height:1px; overflow:hidden; }

/* État vide */
.cbdprv-empty {
  text-align:center; border:1px dashed var(--c-line); border-radius:var(--c-r);
  padding:36px 24px; background:var(--c-bg-soft);
}
.cbdprv-empty p { margin:12px 0 16px; color:var(--c-text-2); font-size:15px; }

/* Responsive */
@media (max-width: 860px) {
  .cbdprv-summary { grid-template-columns:1fr; gap:20px; padding:22px; }
}
@media (max-width: 760px) {
  .cbdprv-grid { grid-template-columns:1fr; }
  .cbdprv-card { padding:18px; }
}
