/* ============================================================
   CBD PURPLE Reviews — modale « laisser un avis » (markup maison).
   Aucune dépendance au CSS d'ets : on contrôle tout.

   NOTE : la modale contient des balises sémantiques (h3, label, input,
   textarea, button) que les thèmes PrestaShop stylent globalement et
   agressivement. On neutralise ces surcharges avec des !important ciblés
   sur les propriétés à risque (typo, couleur, bordure, fond, padding,
   hauteur, box-shadow, text-transform). Les conteneurs en classes propres
   (div) n'en ont pas besoin.
   ============================================================ */
.cbdprv-modal {
  --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%);
  font-family:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  position:fixed; inset:0; z-index:200000; display:none; text-align:left;
}
.cbdprv-modal *, .cbdprv-modal *::before, .cbdprv-modal *::after { box-sizing:border-box; }
.cbdprv-modal.is-open { display:block; }
body.cbdprv-noscroll { overflow:hidden; }

.cbdprv-modal__backdrop {
  position:absolute; inset:0; background:rgba(26,15,36,.55);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  opacity:0; transition:opacity .25s ease;
}
.cbdprv-modal.is-open .cbdprv-modal__backdrop { opacity:1; }

.cbdprv-modal__dialog {
  position:relative; z-index:1; width:calc(100% - 32px); max-width:560px;
  margin:5vh auto; max-height:94vh; display:flex; flex-direction:column;
  background:#fff; border-radius:22px; overflow:hidden;
  box-shadow:0 30px 90px -20px rgba(26,15,36,.55);
  opacity:0; transform:translateY(18px) scale(.97);
  transition:opacity .3s cubic-bezier(.2,.8,.2,1), transform .3s cubic-bezier(.2,.8,.2,1);
}
.cbdprv-modal.is-open .cbdprv-modal__dialog { opacity:1; transform:none; }

/* En-tête */
.cbdprv-modal__head {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; background:var(--c-grad); color:#fff; flex:0 0 auto;
}
.cbdprv-modal__head h3 {
  margin:0 !important; padding:0 !important; font-size:19px !important; font-weight:800 !important;
  color:#fff !important; line-height:1.2 !important; text-transform:none !important; letter-spacing:normal !important;
}
.cbdprv-modal__close {
  appearance:none; cursor:pointer; display:grid; place-items:center; transition:background .15s ease;
  border:0 !important; padding:0 !important; margin:0 !important; box-shadow:none !important;
  color:#fff !important; background:rgba(255,255,255,.18) !important;
  width:34px !important; height:34px !important; min-width:0 !important; min-height:0 !important; border-radius:50% !important;
}
.cbdprv-modal__close:hover { background:rgba(255,255,255,.32) !important; }

/* Corps */
.cbdprv-modal__body { padding:22px 24px; overflow-y:auto; }
.cbdprv-field { margin-bottom:16px; }
.cbdprv-field-row { display:flex; gap:14px; }
.cbdprv-field-row .cbdprv-field { flex:1; }
.cbdprv-flabel {
  display:block !important; text-align:left !important; float:none !important;
  font-size:13.5px !important; font-weight:600 !important; color:var(--c-ink) !important;
  margin:0 0 7px !important; padding:0 !important; text-transform:none !important; letter-spacing:normal !important; line-height:1.3 !important;
}
.cbdprv-req { color:var(--c-magenta) !important; }
.cbdprv-input, .cbdprv-textarea {
  display:block !important; width:100% !important; border:1px solid var(--c-line) !important; border-radius:12px !important;
  padding:11px 14px !important; margin:0 !important; height:auto !important; min-height:0 !important;
  font-family:inherit !important; font-size:14px !important; line-height:1.5 !important; color:var(--c-text) !important;
  background:#fff !important; box-shadow:none !important; text-transform:none !important; letter-spacing:normal !important;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.cbdprv-textarea { min-height:120px !important; resize:vertical; }
.cbdprv-input:focus, .cbdprv-textarea:focus {
  outline:0 !important; border-color:var(--c-purple) !important; box-shadow:0 0 0 3px rgba(151,71,255,.15) !important;
}
.cbdprv-input.cbdprv-invalid, .cbdprv-textarea.cbdprv-invalid {
  border-color:#d6336c !important; box-shadow:0 0 0 3px rgba(214,51,108,.12) !important;
}
.cbdprv-input::placeholder, .cbdprv-textarea::placeholder { color:var(--c-muted) !important; opacity:1; }

/* Notes interactives */
.cbdprv-rate-input { display:inline-flex !important; gap:4px; }
.cbdprv-rate-star {
  appearance:none; cursor:pointer; display:inline-flex; align-items:center;
  border:0 !important; background:none !important; padding:0 !important; margin:0 !important;
  box-shadow:none !important; width:auto !important; height:auto !important; min-width:0 !important; min-height:0 !important; line-height:0 !important;
}
.cbdprv-rate-star svg { fill:var(--c-star-off); transition:fill .1s ease, transform .1s ease; }
.cbdprv-rate-star:hover svg { transform:scale(1.12); }
.cbdprv-rate-star.is-on svg { fill:var(--c-yellow); }
.cbdprv-rate-input.cbdprv-invalid .cbdprv-rate-star svg { fill:#f3b9cd; }

/* Uploads */
.cbdprv-up-grid { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.cbdprv-up-previews { display:contents; }
.cbdprv-up-item {
  position:relative; width:84px; height:84px; border-radius:14px; overflow:hidden;
  border:1px solid var(--c-line); background:#000; flex:0 0 auto;
}
.cbdprv-up-item img { width:100%; height:100%; object-fit:cover; display:block; }
.cbdprv-up-item.is-video { background:var(--c-bg-soft); display:grid; place-items:center; color:var(--c-purple); }
.cbdprv-up-item.is-video span { font-size:10px; color:var(--c-text-2); padding:0 4px; text-align:center; overflow:hidden; max-height:100%; }
.cbdprv-up-remove {
  position:absolute; top:4px; right:4px; cursor:pointer; display:grid; place-items:center; line-height:0;
  border:0 !important; padding:0 !important; margin:0 !important; box-shadow:none !important;
  width:22px !important; height:22px !important; min-width:0 !important; min-height:0 !important; border-radius:50% !important;
  background:rgba(26,15,36,.65) !important; color:#fff !important;
}
.cbdprv-up-add {
  cursor:pointer; display:grid; place-items:center; flex:0 0 auto;
  transition:border-color .15s ease, background .15s ease;
  width:84px !important; height:84px !important; min-width:0 !important; min-height:0 !important; padding:0 !important; margin:0 !important;
  border:2px dashed #d9cce8 !important; border-radius:14px !important; background:var(--c-bg-soft) !important;
  color:var(--c-purple) !important; box-shadow:none !important;
}
.cbdprv-up-add:hover { border-color:var(--c-purple) !important; background:#f6eefb !important; }

/* reCAPTCHA */
.cbdprv-recaptcha { display:flex; justify-content:center; }

/* Erreur */
.cbdprv-modal__error {
  background:#fdecf2; border:1px solid #f7c5d8; color:#b02a5b; border-radius:12px;
  padding:10px 14px; font-size:13px; margin-top:4px;
}

/* Pied */
.cbdprv-modal__foot {
  display:flex; gap:12px; justify-content:flex-end; padding:16px 24px 22px; flex:0 0 auto;
  border-top:1px solid var(--c-line);
}

/* Boutons (redéfinis ici car la modale est hors du scope .cbdprv) */
.cbdprv-modal .cbdprv-btn {
  appearance:none; cursor:pointer; display:inline-block;
  border-radius:99px !important; padding:12px 22px !important; margin:0 !important;
  font-family:inherit !important; font-size:14px !important; font-weight:700 !important; line-height:1.2 !important;
  border:1px solid transparent !important; height:auto !important; min-height:0 !important; width:auto !important;
  text-transform:none !important; letter-spacing:normal !important; box-shadow:none !important;
  transition:filter .15s ease, border-color .15s ease, color .15s ease;
}
.cbdprv-modal .cbdprv-btn--ghost { background:#fff !important; border-color:var(--c-line) !important; color:var(--c-ink) !important; }
.cbdprv-modal .cbdprv-btn--ghost:hover { border-color:var(--c-purple) !important; color:var(--c-purple) !important; }
.cbdprv-modal .cbdprv-btn--primary { background:var(--c-grad) !important; color:#fff !important; }
.cbdprv-modal .cbdprv-btn--primary:hover { filter:brightness(1.05); }
.cbdprv-modal .cbdprv-btn[disabled] { opacity:.6; pointer-events:none; }

/* Confirmation */
.cbdprv-modal__success { padding:40px 28px; text-align:center; }
.cbdprv-success-icon {
  width:64px; height:64px; margin:0 auto 16px; border-radius:50%; display:grid; place-items:center;
  background:rgba(46,166,179,.12); color:var(--c-teal);
}
.cbdprv-success-msg { font-size:16px; font-weight:600; color:var(--c-ink); margin:0 0 20px; }

@media (max-width: 560px) {
  .cbdprv-field-row { flex-direction:column; gap:0; }
  .cbdprv-modal__dialog { margin:0; width:100%; max-width:none; height:100%; max-height:100%; border-radius:0; }
}
