/* ===========================
   Barres CBD / THC + progress
   =========================== */

/* Anciennes barres CBD (si encore utilisées) */
.cbd-bar {
  width: 100%;
  height: 20px;
  border-radius: 4px;
  background-color: #444;
  margin-bottom: 6px;
  position: relative;
  overflow: hidden;
}

.cbd-bar .bar-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
  font-size: 13px;
  font-weight: bold;
  border-radius: 4px;
}

/* Couleurs dynamiques selon le % */
.cbd-bar .bar-inner.green { background-color: #7FFF00; }
.cbd-bar .bar-inner.orange { background-color: orange; }
.cbd-bar .bar-inner.red { background-color: red; }

/* Barres THC */
.thc-bar {
  width: 100%;
  height: 20px;
  border-radius: 4px;
  background-color: #ccc;
  margin-bottom: 6px;
  position: relative;
  overflow: hidden;
}

.thc-bar .bar-inner {
  height: 100%;
  background-color: #8B0000;
  text-align: center;
  color: #fff;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

/* Progress bar (version finale utilisée partout) */
.progress-bar {
  position: relative;
  height: 20px;
  background-color: #202f29;
  border-radius: 10px;
  overflow: hidden;
  margin: 5px 0 8px;
  width: 100%;
}

.progress-fill {
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 10px 0 0 10px;
  transition: width 0.5s ease-in-out;
  background-image: linear-gradient(to right, var(--bar-color) 75%, #202f29);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.progress-text {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  text-align: center;
  font-size: 12px;
  font-weight: bold;
  line-height: 20px;
  color: #ffffff;
  z-index: 2;
}

/* Espacement entre chaque attribut */
.attribut {
  margin-bottom: 12px !important;
}

/* ============ Formulaires variations (cards + shortcode) ============ */

/* Cache l’ancien lien "Choix des options" si un widget le réinjecte */
a.product_type_variable.add_to_cart_button { display:none !important; }

/* État chargement/feedback */
.loupth-card-variations.is-loading { opacity:.75; pointer-events:none; }
.loupth-card-variations.added .single_add_to_cart_button { filter:brightness(1.1); }

.loupth-sc-form .loupth-row { margin:.35rem 0; }
.loupth-sc-form .loupth-row label { 
  display:block; 
  font-size:.9rem; 
  opacity:.85; 
  margin-bottom:.2rem; 
}
.loupth-sc-form select{
  width:100%;
  height:42px;
  border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  padding:.35rem .6rem;
}

.loupth-sc-form .btn-croco.cta { width:100%; height:42px; }

/* ===== Sélecteur variations (shortcode + cards) — version compacte ===== */

/* Label "poids" plus visible */
.elementor-widget-container .loupth-sc-form .loupth-row label,
.elementor-widget-container .loupth-card-variations .label label{
  display:block;
  margin:.1rem 0 .35rem;
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:.02em;
  color:#eaeaea;
}

/* Champ select (fermé) */
.elementor-widget-container .loupth-sc-form select.loupth-attr,
.elementor-widget-container .loupth-card-variations select.loupth-attr{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  width:100%;
  height:48px;
  padding:.6rem 2.2rem .6rem .85rem;
  border:1px solid rgba(255,255,255,.28);
  border-radius:12px;
  background:#1a1a1a
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")
    no-repeat right .8rem center / 14px;
  color:#fff;
  font:700 1.05rem/1.2 inherit;
  box-shadow:none;
}

/* Options du menu déroulant */
.elementor-widget-container .loupth-sc-form select.loupth-attr option,
.elementor-widget-container .loupth-card-variations select.loupth-attr option{
  background:#0f0f0f;
  color:#fff;
}
.elementor-widget-container .loupth-sc-form select.loupth-attr option[value=""],
.elementor-widget-container .loupth-card-variations select.loupth-attr option[value=""]{
  color:rgba(255,255,255,.75);
}

/* Focus accessible */
.elementor-widget-container .loupth-sc-form select.loupth-attr:focus,
.elementor-widget-container .loupth-card-variations select.loupth-attr:focus{
  outline:2px solid #61e107;
  outline-offset:2px;
  border-color:#61e107;
}

/* Bouton même hauteur */
.elementor-widget-container .loupth-sc-form .btn-croco.cta,
.elementor-widget-container .loupth-card-variations .btn-croco.cta{
  width:100%;
  height:48px;
  font-weight:800;
  font-size:1rem;
  margin-top: .6rem !important;
  border-radius: 12px !important;
}

/* === Contrainte de largeur dans le widget Elementor === */
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-sc-form,
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-card-variations{
  box-sizing:border-box;
  display:block;
  width:88% !important;
  max-width:320px !important;
  margin:.6rem auto 0 !important;
  padding:0 !important;
}

/* Champs = largeur du form */
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-sc-form select.loupth-attr,
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-sc-form .quantity .qty,
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-card-variations select.loupth-attr,
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-card-variations .quantity .qty{
  width:100% !important;
  box-sizing:border-box;
}

/* Aligne quantité + bouton sur la même ligne (widget add-to-cart) */
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-sc-form .quantity{
  display:inline-block;
  width:88px;
  vertical-align:middle;
  float:none; position:static;
  margin:0;
}
.elementor-widget-woocommerce-product-add-to-cart .elementor-widget-container .loupth-sc-form .btn-croco.cta{
  display:inline-block;
  vertical-align:middle;
  height:48px;
  font-weight:800;
  font-size:1rem;
  width:calc(100% - 88px - .6rem);
  margin-left:.6rem;
}

/* ================= Neon Pills – grille €/g (v2.1 no-label) ================= */

:root{
  --mint:#66f1cf;
  --mint-dark:#37c9a6;
  --ink:#0a1512;
  --chip-bg:rgba(102,241,207,.08);
  --chip-br:rgba(102,241,207,.55);
  --star:#ffd54a;
}

/* Ligne “à partir de …/g” */
.products .product .price{
  display:block;
  font-weight:800;
  letter-spacing:.2px;
  text-shadow:0 0 6px rgba(102,241,207,.18);
}

/* Grille responsive */
.products .product .lth-ppg-grid{
  margin-top:10px;
  padding:8px 10px 6px;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap:8px 8px;
  align-items:start;
  justify-items:stretch;
  border-radius:14px;
  background:linear-gradient(180deg, rgba(102,241,207,.06), rgba(102,241,207,.03));
  border:1px solid rgba(102,241,207,.25);
  box-shadow: 0 6px 26px rgba(0,0,0,.25), inset 0 0 0 1px rgba(102,241,207,.08);
  position:relative;
}

/* pas de label au-dessus */
.products .product .lth-ppg-grid::before{ content:none; }

/* Pastilles "verre néon" */
.products .product .lth-ppg-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45ch;
  padding:8px 12px;
  border-radius:999px;
  background:var(--chip-bg);
  color:var(--ink);
  border:1px solid var(--chip-br);
  font-size:13px;
  line-height:1.15;
  font-variant-numeric: tabular-nums;
  letter-spacing:.1px;
  white-space:nowrap;
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 0 0 1px rgba(0,0,0,.12);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.products .product .lth-ppg-chip::before{ content:none; }

/* Hover desktop */
@media (hover:hover){
  .products .product .lth-ppg-chip:hover{
    transform:translateY(-1px);
    border-color:rgba(102,241,207,.85);
    background:linear-gradient(180deg, rgba(102,241,207,.12), rgba(102,241,207,.06));
    box-shadow:0 2px 10px rgba(102,241,207,.12), 0 1px 0 rgba(255,255,255,.06) inset;
  }
}

/* ⭐ meilleure option €/g */
.products .product .lth-ppg-chip.is-best{
  border-color:rgba(255,213,74,.9);
  box-shadow:0 0 12px rgba(255,213,74,.22),
              0 1px 0 rgba(255,255,255,.06) inset,
              0 0 0 1px rgba(0,0,0,.12);
  position:relative;
}
.products .product .lth-ppg-chip.is-best::after{
  content:"★";
  position:absolute;
  top:-8px; right:-6px;
  font-size:13px;
  color:var(--star);
  text-shadow:0 0 6px rgba(255,213,74,.65);
}

/* Bouton “+N / − Moins” */
.products .product .lth-ppg-more{
  display:inline-flex; 
  align-items:center; 
  justify-content:center;
  grid-column:1 / -1;
  margin-top:2px;
  padding:6px 10px;
  border-radius:999px;
  background:var(--chip-bg);
  color:var(--ink);
  border:1px solid var(--chip-br);
  font-size:12px; 
  line-height:1; 
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

@media (hover:hover){
  .products .product .lth-ppg-more:hover{
    transform:translateY(-1px);
    border-color:rgba(102,241,207,.85);
    box-shadow:0 0 10px rgba(102,241,207,.18);
  }
}

.products .product .lth-ppg-more.is-open{
  border-color:rgba(102,241,207,.95);
  box-shadow:0 0 14px rgba(102,241,207,.28), inset 0 0 0 1px rgba(102,241,207,.35);
}

/* Mobile */
@media (max-width:600px){
  .products .product .lth-ppg-grid{
    padding:8px;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap:6px;
  }
  .products .product .lth-ppg-chip{ font-size:12px; padding:7px 10px; }
}

/* ==========================
   Badge PROMO — pillule néon
   ========================== */

/* Contexte positionné pour l’absolu */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce ul.products li.product,
.woocommerce .elementor-widget-woocommerce-product-images { 
  position: relative; 
}

/* Badge pillule */
.woocommerce span.onsale{
  /* reset */
  min-width:0 !important;
  min-height:0 !important;
  line-height:1 !important;
  width:auto !important;
  height:auto !important;
  border-radius:999px !important;
  background:none !important;
  color:inherit !important;
  padding:0 !important;
  box-shadow:none !important;
  text-transform:uppercase;
  letter-spacing:.06em;

  /* style */
  position:absolute;
  top:12px; left:14px;
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 14px !important;
  font-weight:800; font-size:13px;
  color:var(--ink) !important;
  background:linear-gradient(180deg, var(--mint) 0%, var(--mint-dark) 100%) !important;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:
     0 10px 26px rgba(59,214,177,.22),
     0 0 0 1px rgba(0,0,0,.25) inset,
     0 1px 0 rgba(255,255,255,.12) inset;
  border-radius:999px;
  z-index:9;
  overflow:hidden;
  pointer-events:none;
}

/* Glow */
.woocommerce span.onsale::before{
  content:"";
  position:absolute; inset:-8px;
  border-radius:inherit;
  box-shadow:0 0 60px rgba(102,241,207,.28);
  z-index:-1;
}

/* Reflet animé */
.woocommerce span.onsale::after{
  content:"";
  position:absolute; top:-30%; left:-45%;
  width:80%; height:160%;
  background:linear-gradient(70deg,
            rgba(255,255,255,.00) 0%,
            rgba(255,255,255,.55) 45%,
            rgba(255,255,255,.00) 100%);
  transform:skewX(-18deg);
  filter:blur(0.5px);
  mix-blend-mode:screen;
  animation:lthPromoShine 3.25s ease-in-out infinite;
}

/* Single product */
.single-product .woocommerce span.onsale{ top:10px; left:10px; }

/* Archives/cartes */
.woocommerce ul.products li.product .onsale{
  top:10px; left:12px;
  max-width:calc(100% - 24px);
}

.woocommerce .elementor-widget-woocommerce-product-images .onsale{ 
  padding:8px 14px !important; 
}

/* Animation reflet */
@keyframes lthPromoShine{
  0%   { left:-50%; opacity:0; }
  12%  { left:-40%; opacity:.35; }
  30%  { left: 10%; opacity:.85; }
  48%  { left: 60%; opacity:.35; }
  60%  { left:105%; opacity:0; }
  100% { left:105%; opacity:0; }
}

/* Empêche le mode bandeau */
.woocommerce ul.products li.product .onsale,
.products .product .onsale {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0;
  line-height: 1;
  pointer-events: none;
}

/* Mobile pour le badge */
@media (max-width:600px){
  .single-product .elementor-widget-woocommerce-product-images span.onsale{
    top:8px !important; 
    left:8px !important; 
    padding:7px 10px !important; 
    font-size:12px !important;
  }
}

/* ======================
   CBD BORDER — Home 3764
   ====================== */

.elementor-3764 .elementor-element.elementor-element-2d8548f.has-cbd-border,
.elementor-3764 .elementor-element.elementor-element-2d8548f{
  border-style: solid !important;
  border-width: 5px !important;
  border-radius: 15px !important;
  border-color: var(--lth-cbd-color, #61e107) !important;
  box-shadow: 0 0 4px 0 var(--lth-cbd-color, #61e107) !important;

  --border-top-width: 5px;
  --border-right-width: 5px;
  --border-bottom-width: 5px;
  --border-left-width: 5px;
  --border-radius: 15px 15px 15px 15px;

  transition: none !important;
}

@media (max-width: 640px){
  .elementor-3764 .elementor-element.elementor-element-2d8548f.has-cbd-border,
  .elementor-3764 .elementor-element.elementor-element-2d8548f{
    border-radius: 12px !important;
    --border-radius: 12px 12px 12px 12px;
  }
}
@media (max-width: 420px){
  .elementor-3764 .elementor-element.elementor-element-2d8548f.has-cbd-border,
  .elementor-3764 .elementor-element.elementor-element-2d8548f{
    border-radius: 10px !important;
    --border-radius: 10px 10px 10px 10px;
  }
}

/* Fallback global has-cbd-border */
.has-cbd-border{
  border: 5px solid var(--lth-cbd-color, #61e107);
  border-radius: 15px;
  box-shadow: 3px 0 15px 0 var(--lth-cbd-color, #61e107);
  box-sizing: border-box;
  transition: none;
}
.has-cbd-border:hover{
  box-shadow: 3px 0 15px 0 var(--lth-cbd-color, #61e107);
  transform: none;
}
@media (max-width: 640px){
  .has-cbd-border{ border-radius: 12px; }
}
@media (max-width: 420px){
  .has-cbd-border{ border-radius: 10px; }
}

/* ================================
   Catégories produits (CBD border)
   ================================ */

/* Une seule couche sur li.product */
.archive.tax-product_cat ul.products li.product.has-cbd-border {
  border: 5px solid var(--lth-cbd-color, #61e107) !important;
  border-radius: 15px !important;
  box-shadow: 3px 0 15px 0 var(--lth-cbd-color, #61e107) !important;
  box-sizing: border-box;
  transition: none !important;
}

/* Couleur via buckets */
.archive.tax-product_cat ul.products li.product.lth-cbd-green  { --lth-cbd-color: #61e107; }
.archive.tax-product_cat ul.products li.product.lth-cbd-blue   { --lth-cbd-color: #419ad6; }
.archive.tax-product_cat ul.products li.product.lth-cbd-violet { --lth-cbd-color: #9041d6; }
.archive.tax-product_cat ul.products li.product.lth-cbd-red    { --lth-cbd-color: #d64141; }

/* Fallback via marker si post_class non pris */
.archive.tax-product_cat ul.products li.product:has(.lth-cbd-marker) {
  border: 5px solid var(--lth-cbd-color, #61e107) !important;
  border-radius: 15px !important;
  box-shadow: 3px 0 15px 0 var(--lth-cbd-color, #61e107) !important;
}

@media (max-width: 640px){
  .archive.tax-product_cat ul.products li.product.has-cbd-border { border-radius: 12px !important; }
}
@media (max-width: 420px){
  .archive.tax-product_cat ul.products li.product.has-cbd-border { border-radius: 10px !important; }
}

/* Related / up-sells / cross-sells / widgets */
section.related ul.products li.product.has-cbd-border,
section.up-sells ul.products li.product.has-cbd-border,
section.cross-sells ul.products li.product.has-cbd-border,
.elementor-wc-products ul.products li.product.has-cbd-border {
  border-style: solid !important;
  border-width: 5px !important;
  border-radius: 15px !important;
  border-color: var(--lth-cbd-color, #61e107) !important;
  box-shadow: 3px 0 15px 0 var(--lth-cbd-color, #61e107) !important;
}

/* =============================
   Back-to-top — Loup'thentique
   ============================= */

.lth-backtop{
  position: fixed;
  right: calc(env(safe-area-inset-right, 0px) + clamp(14px, 2vw, 22px));
  bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(14px, 2vw, 22px));
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(12,18,22,.55);
  border: 1px solid rgba(255,255,255,.12);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: 0 12px 28px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);

  z-index: 9999;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.lth-backtop img{
  max-width: 72%;
  height: auto;
  display: block;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.35));
  user-select: none;
  -webkit-user-drag: none;
}

.lth-backtop.is-visible{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.lth-backtop:hover{
  box-shadow: 0 14px 34px rgba(0,0,0,.42), 0 0 0 1px rgba(97,225,7,.35) inset;
  filter: brightness(1.05);
}

/* Focus clavier */
.lth-backtop:focus-visible{
  outline: 0;
  box-shadow:
    0 0 0 2px rgba(6,18,7,.9),
    0 0 0 4px rgba(118,229,195,.65),
    0 12px 28px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.06);
}

/* Zone de clic élargie */
.lth-backtop::after{
  content:"";
  position:absolute; inset:-6px;
  border-radius:inherit;
}

/* Mobile */
@media (max-width: 480px){
  .lth-backtop{ width: 50px; height: 50px; }
}

/* Admin bar WordPress */
body.admin-bar .lth-backtop{
  bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(14px,2vw,22px) + 46px);
}

/* reCAPTCHA v3 — décalage vertical propre */
@supports selector(body:has(.grecaptcha-badge)){
  body:has(.grecaptcha-badge) .lth-backtop{
    right: clamp(14px, 2vw, 22px);
    bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(14px, 2vw, 22px) + 88px);
  }
}

/* RTL */
html[dir="rtl"] .lth-backtop{
  left: calc(env(safe-area-inset-left, 0px) + clamp(14px, 2vw, 22px));
  right: auto;
}

/* Impression */
@media print{
  .lth-backtop{ display:none !important; }
}

/* Motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .lth-backtop{ transition: none; }
}

/* Contact page (ID 3595) — lift above reCAPTCHA */
.elementor-3595 .lth-backtop{
  right: clamp(14px, 2vw, 22px) !important;
  bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(14px, 2vw, 22px) + 88px) !important;
}
@media (max-width: 480px){
  .elementor-3595 .lth-backtop{
    bottom: calc(env(safe-area-inset-bottom, 0px) + 96px) !important;
  }
}

/* iOS/WebKit fix */
.lth-backtop{
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: transform;
  z-index: 9999;
}

/* ===========================
   Bouton / badge "Rupture"
   =========================== */

/* HTML attendu : <span class="btn-croco cta is-disabled">Rupture</span> */

.btn-croco.cta.is-disabled{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.45rem .85rem;
  border:1px solid rgba(0,255,153,.6);
  border-radius:999px;
  background:
    radial-gradient(120% 120% at 20% 20%, rgba(0,255,153,.12) 0%, rgba(0,0,0,.35) 60%),
    rgba(0,0,0,.35);
  color:#c6ffe9;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  line-height:1;
  box-shadow:
    0 0 12px rgba(0,255,153,.35),
    inset 0 0 10px rgba(0,255,153,.15);
  text-shadow: 0 0 6px rgba(0,255,153,.35);
  user-select:none;
  pointer-events:none;
}

.btn-croco.cta.is-disabled::before{
  content:'●';
  font-size:.7em;
  line-height:1;
  transform:translateY(-1px);
  color:#ff5a6b;
  text-shadow:0 0 6px rgba(255,90,107,.35);
}

.dark-mode .btn-croco.cta.is-disabled,
body:not(.light) .btn-croco.cta.is-disabled{
  box-shadow:
    0 0 16px rgba(0,255,153,.45),
    inset 0 0 12px rgba(0,255,153,.18);
}

/* Badge rupture à la place du bouton natif dans les cards */
ul.products li.product .button.btn-croco.cta.is-disabled,
.woocommerce ul.products li.product .button.btn-croco.cta.is-disabled{
  display:block;
  width:100%;
  text-align:center;
  margin-top:.5rem;
}

/* Si tu veux un jour cacher tous les boutons natifs en OOS :
.lth-oos-unpurchasable a.button,
.lth-oos-unpurchasable .add_to_cart_button,
.lth-oos-unpurchasable .product_type_variable,
.lth-oos-unpurchasable .product_type_simple {
  display: none !important;
}
*/
