/* ============================================================
   DIGISOVIA Commerce — conversion (P0 a P4)
   Etoiles, garanties, coffret, relance panier, filtres, aide.

   TOUTES LES COULEURS PASSENT PAR LES JETONS DU THEME, avec un repli.
   `var(--surface, #fff)` et non `#fff` : le theme actif porte deux rampes
   (sombre par defaut, clair sur data-theme="light") et ce fichier ne doit
   connaitre aucune des deux. Le repli sert au cas ou l'extension tourne sous
   un autre theme — ce projet en a change quatre fois en un mois.

   `--white` N'EST JAMAIS UTILISE COMME SURFACE. Son propre commentaire dans
   le theme le dit : c'est l'encre la plus claire, pas un fond. L'avoir oublie
   a produit un champ de saisie blanc avec du texte presque blanc, mesure a
   1,13:1 sur /checkout/ le 2026-08-30.
   ============================================================ */

/* ---------- P0-1 Etoiles ---------- */

.dgs-rating{display:flex;align-items:center;gap:.5rem;margin:.35rem 0 .5rem;font-size:.8125rem;line-height:1}
.dgs-rating__stars{position:relative;display:inline-block;white-space:nowrap}
.dgs-rating__empty,.dgs-rating__full{display:block}
.dgs-rating__empty{color:var(--line-strong,#c9ccd6)}
.dgs-rating__full{position:absolute;inset:0;overflow:hidden;color:var(--warning,#f5a623)}
.dgs-star{width:14px;height:14px;fill:currentColor;display:inline-block;vertical-align:middle}
.dgs-rating__num{font-weight:600;color:var(--ink,#111)}
.dgs-rating__count{color:var(--ink-3,#6b7280)}
.dgs-rating__link{color:var(--ink-3,#6b7280);text-decoration:underline;text-underline-offset:3px}
.dgs-rating__link:hover{color:var(--accent,#6d7bff)}
.dgs-rating--pdp .dgs-star{width:17px;height:17px}
.dgs-rating--pdp{font-size:.9375rem;margin:.75rem 0 0}

/* ---------- P0-1 Avis : pastille verifiee et resume ---------- */

/* Le libelle natif de WooCommerce ferait doublon avec notre pastille.
   Masque en CSS plutot que supprime par un filtre gettext global — voir la
   note en tete de includes/reviews.php. */
.woocommerce-review__verified{display:none}

.dgs-verified{display:inline-flex;align-items:center;gap:.35rem;margin-left:.5rem;
  padding:.15rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;
  color:var(--success,#16a34a);background:color-mix(in srgb,var(--success,#16a34a) 12%,transparent)}
.dgs-verified svg{width:12px;height:12px}

.dgs-anchor{display:block;height:0;scroll-margin-top:6rem}

.dgs-review-summary{display:grid;gap:1.5rem;margin:0 0 2rem;padding:1.25rem;
  border:1px solid var(--line,#e5e7eb);background:var(--surface-2,#f7f8fc)}
@media (min-width:720px){.dgs-review-summary{grid-template-columns:minmax(0,14rem) 1fr;align-items:center}}
.dgs-review-summary__base{margin:.4rem 0 0;font-size:.8125rem;color:var(--ink-3,#6b7280)}
.dgs-review-spread{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.dgs-review-spread li{display:grid;grid-template-columns:4.5rem 1fr 2.5rem;align-items:center;gap:.6rem;font-size:.8125rem}
.dgs-review-spread__label{color:var(--ink-3,#6b7280);white-space:nowrap}
.dgs-review-spread__bar{height:6px;background:var(--line,#e5e7eb);border-radius:999px;overflow:hidden}
.dgs-review-spread__bar>span{display:block;height:100%;background:var(--warning,#f5a623)}
.dgs-review-spread__n{text-align:right;color:var(--ink-3,#6b7280);font-variant-numeric:tabular-nums}

/* ---------- P0-2 Les trois garanties sous le bouton ---------- */

.dgs-buy-badges{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;margin:1.25rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line,#e5e7eb)}
.dgs-buy-badges__item{min-width:0}
.dgs-buy-badges__item>a{display:block;color:inherit;text-decoration:none}
.dgs-buy-badges__item>a:hover strong{color:var(--accent,#6d7bff)}
.dgs-buy-badges__item svg{width:20px;height:20px;color:var(--accent,#6d7bff);margin-bottom:.4rem}
.dgs-buy-badges__text{display:block}
.dgs-buy-badges__text strong{display:block;font-size:.8125rem;line-height:1.25;color:var(--ink,#111)}
.dgs-buy-badges__text small{display:block;margin-top:.2rem;font-size:.6875rem;line-height:1.35;color:var(--ink-3,#6b7280)}

/* Sous 380 px, trois colonnes donnent deux mots par ligne : on empile. */
@media (max-width:380px){
  .dgs-buy-badges{grid-template-columns:1fr;gap:.6rem}
  .dgs-buy-badges__item{display:flex;gap:.6rem;align-items:flex-start}
  .dgs-buy-badges__item svg{margin:0;flex:0 0 auto}
}

/* ---------- P0-3 Stock faible ---------- */

.dgs-low-stock{margin:.35rem 0 0;font-size:.75rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--warning,#b45309)}
.dgs-low-stock--pdp{font-size:.8125rem;margin-top:.75rem}

/* ---------- P0-4 Coffret « A + B » ---------- */

.dgs-pair{padding:3rem 0;border-top:1px solid var(--line,#e5e7eb)}
.dgs-pair__title{margin:.25rem 0 1.5rem;font-size:clamp(1.25rem,3vw,1.75rem)}
.dgs-pair__row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.dgs-pair__item{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;
  padding:.6rem;border:1px solid var(--line,#e5e7eb);background:var(--surface,#fff);min-width:0;flex:1 1 14rem}
.dgs-pair__item:hover{border-color:var(--accent,#6d7bff)}
.dgs-pair__media img{width:56px;height:56px;object-fit:cover;display:block}
.dgs-pair__name{flex:1;min-width:0;font-size:.875rem;line-height:1.3}
.dgs-pair__price{font-variant-numeric:tabular-nums;font-size:.875rem;color:var(--ink-3,#6b7280)}
.dgs-pair__plus,.dgs-pair__equals{font-size:1.25rem;color:var(--ink-3,#6b7280);flex:0 0 auto}
.dgs-pair__deal{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;flex:1 1 16rem}
.dgs-pair__deal .was{text-decoration:line-through;color:var(--ink-3,#6b7280)}
.dgs-pair__deal .now{font-size:1.25rem;font-weight:600;color:var(--price,var(--ink,#111))}
.dgs-pair__deal .off{padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;
  color:var(--white,#fff);background:var(--accent,#6d7bff)}
.dgs-pair__btn{margin-left:auto}

/* ---------- P0-4 Relance au panier ---------- */

.dgs-cart-upsell{margin:1.5rem 0;padding:1rem;border:1px solid var(--line,#e5e7eb);background:var(--surface-2,#f7f8fc)}
.dgs-cart-upsell__head{margin:0 0 .75rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3,#6b7280)}
.dgs-cart-upsell__row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.dgs-cart-upsell__media img{width:52px;height:52px;object-fit:cover;display:block}
.dgs-cart-upsell__body{flex:1;min-width:10rem}
.dgs-cart-upsell__name{font-weight:600;color:var(--ink,#111);text-decoration:none}
.dgs-cart-upsell__name:hover{color:var(--accent,#6d7bff)}
.dgs-cart-upsell__deal{margin:.2rem 0 0;font-size:.75rem;color:var(--success,#16a34a)}
.dgs-cart-upsell__buy{display:flex;align-items:center;gap:.75rem}

/* ---------- P1-6 Filtres ---------- */

.dgs-facets{margin:1.5rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line,#e5e7eb)}
.dgs-facets__title{margin:0 0 1rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3,#6b7280)}
.dgs-facet{border:0;padding:0;margin:0 0 1.5rem;min-width:0}
.dgs-facet legend{padding:0;margin:0 0 .5rem;font-size:.8125rem;font-weight:600;color:var(--ink,#111)}
.dgs-facet ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.dgs-facet__opt{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer;color:var(--ink-2,#374151)}
.dgs-facet__opt input{accent-color:var(--accent,#6d7bff);width:16px;height:16px;flex:0 0 auto}
.dgs-facet__opt span:first-of-type{flex:1;min-width:0}
.dgs-facet__opt .n{font-size:.75rem;color:var(--ink-3,#6b7280);font-variant-numeric:tabular-nums}

/* Le curseur a deux poignees : deux <input type=range> superposes.
   Les pistes natives sont rendues transparentes et seule la piste dessinee
   ci-dessous est visible — c'est ce qui permet aux deux poignees de partager
   la meme ligne sans librairie. */
.dgs-range{position:relative;height:28px;margin:.25rem 0 .75rem}
.dgs-range__track{position:absolute;top:12px;left:0;right:0;height:4px;border-radius:999px;background:var(--line,#e5e7eb)}
.dgs-range__fill{position:absolute;top:0;bottom:0;left:0;right:0;border-radius:999px;background:var(--accent,#6d7bff)}
.dgs-range__handle{position:absolute;top:6px;left:0;width:100%;margin:0;height:16px;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.dgs-range__handle::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:16px;height:16px;border-radius:50%;
  background:var(--surface,#fff);border:2px solid var(--accent,#6d7bff);cursor:pointer}
.dgs-range__handle::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;
  background:var(--surface,#fff);border:2px solid var(--accent,#6d7bff);cursor:pointer}
.dgs-range__fields{display:flex;align-items:center;gap:.5rem}
.dgs-range__fields input{width:100%;min-width:0;padding:.45rem .5rem;font-size:.875rem;
  color:var(--ink,#111);background:var(--field,var(--surface,#fff));border:1px solid var(--line-strong,#d1d5db)}
.dgs-facets__actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.dgs-facets__clear{font-size:.8125rem;color:var(--ink-3,#6b7280);text-decoration:underline;text-underline-offset:3px}
.dgs-facets__clear:hover{color:var(--error,#dc2626)}

/* ---------- P3-13 Articles associes ---------- */

.dgs-journal{padding:3rem 0;border-top:1px solid var(--line,#e5e7eb)}
.dgs-journal__list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1.5rem}
@media (min-width:720px){.dgs-journal__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dgs-journal__item a{display:block;text-decoration:none;color:inherit}
.dgs-journal__item img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin-bottom:.6rem}
.dgs-journal__meta{display:block;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3,#6b7280)}
.dgs-journal__title{display:block;margin-top:.25rem;font-size:1rem;line-height:1.35;color:var(--ink,#111)}
.dgs-journal__item a:hover .dgs-journal__title{color:var(--accent,#6d7bff)}

/* ---------- P4-15 Le lanceur d'aide ---------- */

.dgs-help{position:fixed;right:1rem;bottom:1rem;z-index:60;max-width:min(20rem,calc(100vw - 2rem))}
.dgs-help__btn{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto;width:max-content;
  padding:.7rem 1rem;border-radius:999px;cursor:pointer;list-style:none;
  font-size:.875rem;font-weight:600;color:var(--white,#fff);background:var(--accent,#6d7bff);
  box-shadow:var(--shadow-md,0 12px 28px -16px rgba(0,0,0,.4))}
.dgs-help__btn::-webkit-details-marker{display:none}
.dgs-help__btn svg{width:18px;height:18px}
.dgs-help__panel{margin-top:.6rem;padding:1rem;border:1px solid var(--line,#e5e7eb);
  background:var(--surface,#fff);box-shadow:var(--shadow-lg,0 24px 48px -20px rgba(0,0,0,.35))}
.dgs-help__lede{margin:0;font-weight:600;color:var(--ink,#111)}
.dgs-help__hours{margin:.35rem 0 .75rem;font-size:.8125rem;color:var(--ink-3,#6b7280)}
.dgs-help__mail,.dgs-help__link{margin:.6rem 0 0;font-size:.875rem}
.dgs-help__chat{width:100%}

/* Le lanceur ne doit jamais recouvrir la barre d'achat collee du mobile. */
@media (max-width:900px){.dgs-help{bottom:5.5rem}}

@media print{.dgs-help{display:none}}
