:root{
  --spe-primary:#3B170D;
  --spe-secondary:#7D4B2E;
  --spe-muted:#CBA689;
  --spe-card:#FAE7CD;
  --spe-soft:#FEF9F3;
  --spe-white:#FFFFFF;
  --spe-accent:#E6692B;
  --spe-accent-hover:#C3652F;
  --spe-bronze:#D69D75;
  --spe-text:#2C1810;
  --spe-border:#E7D2BF;
}

/* =====================================================================
   PRODUCT PAGE EXTRAS — v1.5.1
   ===================================================================== */
.spe-box-product{
  width:100%!important;
  max-width:560px!important;
  margin:18px 0 22px!important;
  padding:20px!important;
  border:1px solid rgba(214,157,117,.55)!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fffdf9 0%,#FEF9F3 100%)!important;
  box-shadow:0 14px 34px rgba(59,23,13,.06)!important;
  clear:both!important;
}
.spe-kicker{
  display:inline-flex!important;
  margin-bottom:5px!important;
  color:#E6692B!important;
  font-size:11px!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  letter-spacing:.05em!important;
}
.spe-box-product .spe-head h3{
  margin:0!important;
  color:#3B170D!important;
  font-size:21px!important;
  line-height:1.12!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:-.01em!important;
}
.spe-box-product .spe-head p{
  margin:7px 0 10px!important;
  color:#7D4B2E!important;
  font-size:13px!important;
  line-height:1.4!important;
}

/* Compteur extras sélectionnés */
.spe-extras-counter{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  margin-bottom:12px!important;
  padding:5px 12px 5px 8px!important;
  border-radius:999px!important;
  background:#E6692B!important;
  color:#fff!important;
  font-size:11.5px!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
  text-transform:uppercase!important;
  transition:opacity .22s ease, transform .22s ease!important;
}
.spe-extras-counter.spe-counter-hidden{
  opacity:0!important;
  pointer-events:none!important;
  transform:translateY(-4px)!important;
}
.spe-counter-num{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:20px!important;
  height:20px!important;
  padding:0 5px!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#E6692B!important;
  font-size:12px!important;
  font-weight:950!important;
  line-height:1!important;
}

/* Grille cartes extras — carrousel horizontal, 2 cartes visibles par défaut
   (web/tablette/mobile : le glissé/scroll révèle les extras suivants). */
.spe-box-product .spe-grid{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin!important;
  padding:2px 2px 12px!important;
  margin:0 -2px!important;
}
.spe-box-product .spe-grid::-webkit-scrollbar{
  height:6px!important;
}
.spe-box-product .spe-grid::-webkit-scrollbar-track{
  background:rgba(250,231,205,.65)!important;
  border-radius:999px!important;
}
.spe-box-product .spe-grid::-webkit-scrollbar-thumb{
  background:#D69D75!important;
  border-radius:999px!important;
}
.spe-carousel-hint{
  display:block!important;
  margin:2px 2px 14px!important;
  color:#7D4B2E!important;
  font-size:11.5px!important;
  font-weight:800!important;
  opacity:.76!important;
}

.spe-no-extras-message{
  margin:0 0 14px!important;
  padding:12px 14px!important;
  border-radius:12px!important;
  background:#FEF9F3!important;
  border:1px dashed rgba(203,166,137,.5)!important;
  color:#7D4B2E!important;
  font-size:12.5px!important;
  font-weight:700!important;
  text-align:center!important;
}

/* =====================================================================
   EXTRAS GRATUITS — choix unique obligatoire (garniture) & cases décochables
   ===================================================================== */

.spe-free-choice-group,
.spe-free-extras-group{
  margin:0 0 14px!important;
  padding:12px!important;
  border-radius:14px!important;
  background:#FEF9F3!important;
  border:1px solid rgba(203,166,137,.4)!important;
}

.spe-free-choice-title,
.spe-free-extras-title{
  margin:0 0 8px!important;
  color:#7D4B2E!important;
  font-size:11px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.03em!important;
}

.spe-free-choice-options,
.spe-free-extras-options{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}

.spe-free-choice-option,
.spe-free-extra-option{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:7px 12px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1px solid rgba(203,166,137,.5)!important;
  color:#3B170D!important;
  font-size:12px!important;
  font-weight:700!important;
  cursor:pointer!important;
  transition:.15s ease!important;
}
.spe-free-choice-option:has(input:checked),
.spe-free-extra-option:has(input:checked){
  border-color:#E6692B!important;
  background:#FAE7CD!important;
}
.spe-free-choice-option input,
.spe-free-extra-option input{
  width:auto!important;
  accent-color:#E6692B!important;
}
.spe-box-product .spe-extra-card{
  position:relative!important;
  display:grid!important;
  grid-template-columns:56px 1fr!important;
  grid-template-areas:"media body" "qty qty"!important;
  gap:9px!important;
  align-items:center!important;
  flex:0 0 calc((100% - 10px)/2)!important;
  width:calc((100% - 10px)/2)!important;
  min-width:0!important;
  scroll-snap-align:start!important;
  min-height:auto!important;
  padding:10px!important;
  border:1px solid rgba(203,166,137,.45)!important;
  border-radius:15px!important;
  background:#fff!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:.18s ease!important;
  overflow:hidden!important;
}
.spe-box-product .spe-extra-card:hover,
.spe-box-product .spe-extra-card.spe-selected{
  border-color:#E6692B!important;
  box-shadow:0 10px 22px rgba(230,105,43,.1)!important;
  transform:translateY(-1px)!important;
}
.spe-box-product .spe-extra-check{
  position:absolute!important;
  top:8px!important;
  right:8px!important;
  z-index:3!important;
  width:16px!important;
  height:16px!important;
  accent-color:#E6692B!important;
}

/* Image avec fallback */
.spe-box-product .spe-extra-media{
  grid-area:media!important;
  display:block!important;
  width:56px!important;
  height:56px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:#F7F1EA!important;
  flex-shrink:0!important;
}
.spe-box-product .spe-extra-media img,
.spe-box-product .spe-extra-media .spe-image{
  width:56px!important;
  height:56px!important;
  object-fit:cover!important;
  margin:0!important;
  border-radius:12px!important;
  display:block!important;
}
.spe-extra-media-fallback{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:56px!important;
  height:56px!important;
  border-radius:12px!important;
  background:#F7F1EA!important;
}
.spe-extra-media-fallback svg{
  width:26px!important;
  height:26px!important;
  color:#CBA689!important;
  opacity:.6!important;
}

/* Body carte */
.spe-box-product .spe-extra-body{
  grid-area:body!important;
  display:block!important;
  min-width:0!important;
  padding-right:18px!important;
}
.spe-box-product .spe-extra-body strong{
  display:block!important;
  margin:0 0 5px!important;
  color:#3B170D!important;
  font-size:12px!important;
  line-height:1.18!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.spe-extra-price{
  display:inline-flex!important;
  padding:5px 8px!important;
  border-radius:999px!important;
  background:#FAE7CD!important;
  color:#7D4B2E!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1!important;
}

/* Contrôle quantité */
.spe-box-product .spe-extra-qty{
  grid-area:qty!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  height:34px!important;
  margin-top:2px!important;
  border:1px solid rgba(203,166,137,.5)!important;
  border-radius:999px!important;
  background:#FEF9F3!important;
  overflow:hidden!important;
}
.spe-box-product .spe-extra-qty button{
  width:38px!important;
  height:34px!important;
  border:0!important;
  background:transparent!important;
  color:#3B170D!important;
  font-size:18px!important;
  font-weight:900!important;
  cursor:pointer!important;
  line-height:1!important;
}
.spe-box-product .spe-extra-qty button:hover{
  background:#FAE7CD!important;
  color:#E6692B!important;
}
.spe-box-product .spe-extra-qty input{
  width:54px!important;
  height:34px!important;
  border:0!important;
  background:transparent!important;
  text-align:center!important;
  color:#3B170D!important;
  font-size:13px!important;
  font-weight:900!important;
  box-shadow:none!important;
  padding:0!important;
  -moz-appearance:textfield!important;
}
.spe-box-product .spe-extra-qty input::-webkit-outer-spin-button,
.spe-box-product .spe-extra-qty input::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  margin:0!important;
}

/* =====================================================================
   CONSTRUCTEUR DE COMBINAISONS (extras avec saveurs/options)
   ===================================================================== */

/* La carte d'un extra à saveurs sort complètement de la grille 2-colonnes
   partagée avec les cartes simples (qui change de définition à chaque point
   de rupture — mobile/tablette/desktop — et serait fragile à étendre).
   Elle devient un flex-column autonome : image+nom en haut, puis le picker,
   puis la liste des combinaisons déjà ajoutées. Stable à toutes les tailles. */
.spe-box-product .spe-extra-card-options{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:10px!important;
  cursor:default!important;
}

.spe-extra-card-top{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.spe-extra-card-options .spe-extra-media,
.spe-extra-card-options .spe-extra-body{
  grid-area:auto!important;
}
.spe-extra-card-options .spe-extra-body{
  padding-right:0!important;
}

.spe-extra-options-picker{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:10px!important;
  border-radius:14px!important;
  background:#FEF9F3!important;
  border:1px solid rgba(203,166,137,.4)!important;
}

.spe-extra-flavor-select{
  width:100%!important;
  height:38px!important;
  border:1px solid rgba(203,166,137,.6)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#3B170D!important;
  font-size:12px!important;
  font-weight:700!important;
  padding:0 12px!important;
  appearance:auto!important;
}
.spe-extra-flavor-select:focus{
  outline:none!important;
  border-color:#E6692B!important;
  box-shadow:0 0 0 2px rgba(230,105,43,.15)!important;
}

.spe-extra-options-row{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}

.spe-combo-qty{
  display:flex!important;
  align-items:center!important;
  height:36px!important;
  border:1px solid rgba(203,166,137,.6)!important;
  border-radius:999px!important;
  background:#fff!important;
  overflow:hidden!important;
  flex-shrink:0!important;
}
.spe-combo-qty button{
  width:28px!important;
  height:36px!important;
  border:0!important;
  background:transparent!important;
  color:#3B170D!important;
  font-size:15px!important;
  font-weight:900!important;
  cursor:pointer!important;
  line-height:1!important;
}
.spe-combo-qty button:hover{
  background:#FAE7CD!important;
  color:#E6692B!important;
}
.spe-combo-qty-input{
  width:30px!important;
  height:36px!important;
  border:0!important;
  background:transparent!important;
  text-align:center!important;
  color:#3B170D!important;
  font-size:12px!important;
  font-weight:900!important;
  padding:0!important;
  -moz-appearance:textfield!important;
}
.spe-combo-qty-input::-webkit-outer-spin-button,
.spe-combo-qty-input::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  margin:0!important;
}

/* Bouton "+" compact (remplace l'ancien bouton texte "Ajouter" qui débordait
   de la carte sur les écrans étroits). */
.spe-extra-add-combo{
  flex-shrink:0!important;
  width:36px!important;
  height:36px!important;
  border-radius:50%!important;
  background:#E6692B!important;
  border:none!important;
  color:#fff!important;
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  padding:0!important;
  cursor:pointer!important;
  box-shadow:0 4px 10px rgba(230,105,43,.25)!important;
  transition:.15s ease!important;
}
.spe-extra-add-combo:hover{
  background:#C3652F!important;
  transform:translateY(-1px)!important;
}

/* La liste des combinaisons par carte n'est plus affichée ici : les saveurs
   ajoutées apparaissent désormais sous forme de puces près du compteur
   "X extras sélectionnés" en haut du bloc (.spe-selected-extras-chips).
   Les lignes restent dans le DOM (elles portent les champs cachés
   spe_extra_variants[...] envoyés à l'ajout au panier), juste non visibles ici. */
.spe-extra-combo-list{ display:none!important; }

/* Champ quantité d'une ligne de combinaison déjà ajoutée — manquait en 2.2.1,
   ce qui le laissait avec le style par défaut du navigateur (gros cadre). */
.spe-combo-row-qty-input{
  width:26px!important;
  height:22px!important;
  border:0!important;
  background:transparent!important;
  text-align:center!important;
  color:#3B170D!important;
  font-size:11px!important;
  font-weight:900!important;
  padding:0!important;
  -moz-appearance:textfield!important;
}
.spe-combo-row-qty-input::-webkit-outer-spin-button,
.spe-combo-row-qty-input::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  margin:0!important;
}

/* =====================================================================
   PUCES "EXTRAS SÉLECTIONNÉS" (récapitulatif des saveurs choisies)
   ===================================================================== */

.spe-selected-extras-chips{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:10px 0 0!important;
}
.spe-selected-extras-chips:empty{ display:none!important; margin:0!important; }

.spe-selected-chip{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:6px 6px 6px 12px!important;
  border-radius:999px!important;
  background:#FAE7CD!important;
  border:1px solid rgba(203,166,137,.4)!important;
  max-width:100%!important;
}
.spe-selected-chip-label{
  color:#3B170D!important;
  font-size:11.5px!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:220px!important;
}
.spe-selected-chip-remove{
  flex-shrink:0!important;
  width:20px!important;
  height:20px!important;
  border:0!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#C3652F!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:0 1px 3px rgba(59,23,13,.12)!important;
}
.spe-selected-chip-remove:hover{ color:#8c2f17!important; }
.spe-extra-combo-row .spe-combo-row-remove{
  background:transparent!important;
  color:#C3652F!important;
  box-shadow:none!important;
  font-size:14px!important;
}
.spe-extra-combo-row .spe-combo-row-remove:hover{ color:#8c2f17!important; }

/* =====================================================================
   CART SUGGESTIONS BLOCK
   ===================================================================== */
.woocommerce-cart .spe-cart-box{
  margin:18px 0!important;
  padding:16px!important;
  border:1px solid rgba(214,157,117,.45)!important;
  border-radius:18px!important;
  background:#FEF9F3!important;
}
.woocommerce-cart .spe-cart-box h3{
  margin:0 0 5px!important;
  color:#3B170D!important;
  font-size:17px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.woocommerce-cart .spe-cart-box p{
  margin:0 0 12px!important;
  color:#7D4B2E!important;
  font-size:13px!important;
}
.woocommerce-cart .spe-cart-grid{
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
}
.woocommerce-cart .spe-cart-extra{
  display:grid!important;
  grid-template-columns:56px 1fr auto!important;
  gap:10px!important;
  align-items:center!important;
  padding:8px!important;
  border:1px solid rgba(203,166,137,.35)!important;
  border-radius:14px!important;
  background:#fff!important;
}
.woocommerce-cart .spe-cart-extra img{
  width:56px!important;
  height:56px!important;
  object-fit:cover!important;
  border-radius:12px!important;
  background:#F7F1EA!important;
}
/* Fallback image dans les suggestions panier */
.woocommerce-cart .spe-cart-extra .spe-extra-media-fallback{
  width:56px!important;
  height:56px!important;
  border-radius:12px!important;
}
.woocommerce-cart .spe-cart-extra strong{
  display:block!important;
  color:#3B170D!important;
  font-size:12px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
}
.woocommerce-cart .spe-cart-extra span{
  display:block!important;
  color:#7D4B2E!important;
  font-size:12px!important;
  font-weight:900!important;
}
.woocommerce-cart .spe-cart-extra .button{
  border-radius:999px!important;
  background:#FAE7CD!important;
  color:#3B170D!important;
  border:0!important;
  font-size:12px!important;
  font-weight:900!important;
  padding:8px 13px!important;
  white-space:nowrap!important;
}
.woocommerce-cart .spe-cart-extra .button.loading{
  opacity:.6!important;
  pointer-events:none!important;
}

/* =====================================================================
   BOUTONS ACTIONS PANIER (Continuer / Vider)
   ===================================================================== */
.spe-cart-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
  margin:18px 0 0;
}
.spe-cart-actions .button{
  border-radius:999px!important;
  padding:10px 20px!important;
  font-weight:900!important;
  font-size:13px!important;
}
.spe-clear-cart{
  background:#fff0ed!important;
  color:#8a1f1f!important;
  border:1px solid #f0b6b6!important;
}
.spe-clear-cart:hover{
  background:#fce0db!important;
}
.spe-continue-shopping{
  background:#3B170D!important;
  color:#fff!important;
  border:1px solid #3B170D!important;
}
.spe-continue-shopping:hover{
  background:#7D4B2E!important;
  border-color:#7D4B2E!important;
}

/* =====================================================================
   DRAWER
   ===================================================================== */
.spe-drawer-overlay{
  position:fixed;inset:0;
  background:rgba(59,23,13,.48);
  backdrop-filter:blur(2px);
  z-index:999998;
  opacity:0;visibility:hidden;
  transition:.22s ease;
}
.spe-drawer{
  position:fixed;top:0;right:0;
  width:min(410px,94vw);height:100vh;
  background:#FEF9F3;
  z-index:999999;
  transform:translateX(105%);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
  box-shadow:-22px 0 54px rgba(59,23,13,.22);
  padding:22px 22px 0;
  overflow:hidden;
  display:flex;flex-direction:column;
  color:#2C1810;
}
body.spe-drawer-open .spe-drawer-overlay{opacity:1;visibility:visible;}
body.spe-drawer-open .spe-drawer{transform:translateX(0);}
.spe-drawer-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;margin-bottom:16px;
}
.spe-drawer-title{
  margin:0!important;
  font-size:24px!important;
  line-height:1.08!important;
  font-weight:950!important;
  color:#3B170D!important;
  text-transform:uppercase!important;
}
.spe-drawer-close{
  position:static!important;
  flex:0 0 36px;
  width:36px!important;height:36px!important;
  border:1px solid rgba(214,157,117,.55)!important;
  border-radius:999px!important;
  background:#E6692B!important;
  color:#fff!important;
  font-size:20px!important;line-height:1!important;font-weight:900!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  cursor:pointer!important;
  box-shadow:0 8px 18px rgba(230,105,43,.2)!important;
}
.spe-drawer-close:hover{background:#C3652F!important;}
.spe-drawer-product{
  display:grid!important;
  grid-template-columns:74px 1fr!important;
  gap:12px!important;align-items:center!important;
  margin-bottom:18px!important;
  padding:11px!important;
  border:1px solid rgba(214,157,117,.48)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 10px 24px rgba(59,23,13,.06)!important;
}
.spe-drawer-product-image img{
  width:74px!important;height:74px!important;
  object-fit:cover!important;
  border-radius:14px!important;
  background:#f7f1ea!important;
}
.spe-drawer-product-info strong{
  display:block!important;margin:0 0 7px!important;
  font-size:14px!important;line-height:1.22!important;
  color:#3B170D!important;font-weight:950!important;
}
.spe-drawer-product-info span,
.spe-drawer-extra-info span{
  display:inline-flex!important;align-items:center!important;
  width:auto!important;max-width:100%!important;
  padding:5px 9px!important;border-radius:999px!important;
  background:#FAE7CD!important;border:1px solid rgba(214,157,117,.38)!important;
  color:#7D4B2E!important;font-size:12.5px!important;line-height:1!important;font-weight:950!important;
  white-space:nowrap!important;
}
.spe-drawer-subtitle{
  margin:0 0 14px!important;
  font-size:18px!important;line-height:1.2!important;
  font-weight:950!important;color:#3B170D!important;text-transform:uppercase!important;
}
.spe-drawer-subtitle:after{
  content:"";display:block;
  width:44px;height:3px;margin-top:7px;
  border-radius:99px;background:#E6692B;
}
.spe-drawer-list{
  flex:1;min-height:0;overflow:auto;
  display:flex;flex-direction:column;gap:11px;
  padding-right:4px;padding-bottom:16px;
}
.spe-drawer-extra{
  display:grid!important;
  grid-template-columns:62px 1fr auto!important;
  gap:10px!important;align-items:center!important;
  padding:10px!important;
  border:1px solid rgba(203,166,137,.42)!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(59,23,13,.055)!important;
}
.spe-drawer-extra:hover{
  border-color:rgba(230,105,43,.65)!important;
  box-shadow:0 14px 28px rgba(59,23,13,.1)!important;
}
.spe-drawer-extra-image img{
  width:62px!important;height:62px!important;
  object-fit:cover!important;border-radius:13px!important;
  background:#f7f1ea!important;
}
.spe-drawer-extra-info{min-width:0!important;}
.spe-drawer-extra-info strong{
  display:block!important;margin:0 0 7px!important;
  font-size:13.5px!important;line-height:1.18!important;
  color:#3B170D!important;font-weight:950!important;
}
.spe-drawer-add-extra{
  border:0!important;border-radius:999px!important;
  background:#E6692B!important;color:#fff!important;
  padding:9px 12px!important;font-weight:950!important;
  font-size:11.5px!important;cursor:pointer!important;
  white-space:nowrap!important;
  box-shadow:0 8px 16px rgba(230,105,43,.18)!important;
}
.spe-drawer-add-extra:hover{background:#C3652F!important;}
.spe-drawer-add-extra.spe-added{background:#16803c!important;}
.spe-drawer-cart{
  position:static!important;flex:0 0 auto!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:54px!important;margin:0 -22px!important;
  border-radius:0!important;
  background:#3B170D!important;color:#fff!important;
  text-decoration:none!important;font-weight:950!important;
  box-shadow:0 -12px 28px rgba(59,23,13,.12)!important;
}
.spe-drawer-cart:hover{background:#7D4B2E!important;}
.spe-drawer-empty,
.spe-drawer-loading{
  padding:14px!important;
  border:1px solid rgba(203,166,137,.45)!important;
  background:#fff!important;border-radius:16px!important;
  color:#7D4B2E!important;
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media(max-width:620px){
  .spe-box-product .spe-grid{grid-template-columns:1fr!important;}
  .spe-cart-actions{justify-content:stretch;flex-direction:column;}
  .spe-cart-actions .button{width:100%;text-align:center;}
  .woocommerce-cart .spe-cart-extra{grid-template-columns:48px 1fr;}
  .woocommerce-cart .spe-cart-extra .button{grid-column:1/-1;width:100%;}
}
@media(max-width:560px){
  .spe-drawer{width:100vw;padding:20px 16px 0;}
  .spe-drawer-title{font-size:21px!important;}
  .spe-drawer-product{grid-template-columns:66px 1fr!important;}
  .spe-drawer-product-image img{width:66px!important;height:66px!important;}
  .spe-drawer-extra{grid-template-columns:58px 1fr!important;}
  .spe-drawer-extra-image img{width:58px!important;height:58px!important;}
  .spe-drawer-add-extra{grid-column:1/-1!important;width:100%!important;}
  .spe-drawer-cart{margin:0 -16px!important;}
}

/* =====================================================================
   v1.5.2 — Drawer price cleanup + dual actions + partial refresh polish
   ===================================================================== */
.spe-drawer-product-info > .spe-drawer-price,
.spe-drawer-extra-info > .spe-drawer-extra-price{
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  max-width:100%!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#7D4B2E!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:950!important;
  white-space:normal!important;
}
.spe-drawer-product-info > .spe-drawer-price *,
.spe-drawer-extra-info > .spe-drawer-extra-price *{
  display:inline!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
  font-weight:inherit!important;
}
.spe-drawer-extra-info > .spe-drawer-extra-price{
  margin-top:4px!important;
  color:#3B170D!important;
}
.spe-drawer-actions{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:0!important;
  margin:0 -22px!important;
  box-shadow:0 -12px 28px rgba(59,23,13,.12)!important;
}
.spe-drawer-actions a{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:54px!important;
  margin:0!important;
  border-radius:0!important;
  text-decoration:none!important;
  font-weight:950!important;
  font-size:14px!important;
  line-height:1.1!important;
}
.spe-drawer-shop{
  background:#FAE7CD!important;
  color:#3B170D!important;
}
.spe-drawer-shop:hover{
  background:#F2D2A8!important;
  color:#3B170D!important;
}
.spe-drawer-actions .spe-drawer-cart{
  background:#3B170D!important;
  color:#fff!important;
  box-shadow:none!important;
}
.spe-drawer-actions .spe-drawer-cart:hover{
  background:#7D4B2E!important;
}

/* Page produit : rendre le bloc extras plus propre et compact, même si le thème force des styles */
.single-product .spe-box-product{
  max-width:520px!important;
  margin:18px 0 24px!important;
  padding:18px!important;
  overflow:hidden!important;
}
.single-product .spe-box-product .spe-extra-card{
  min-width:0!important;
  border-radius:16px!important;
}
.single-product .spe-box-product .spe-extra-price,
.single-product .spe-box-product .spe-extra-price *{
  border-radius:999px!important;
  box-shadow:none!important;
}
@media(max-width:560px){
  .spe-drawer-actions{margin:0 -16px!important;grid-template-columns:1fr!important;}
  .spe-drawer-actions a{min-height:50px!important;}
}


/* v1.5.3 refresh feedback */
.spe-drawer-add-extra.spe-loading,
.spe-cart-add-extra.loading{
    opacity:.72;
    pointer-events:none;
}


/* v1.5.4: visual feedback before hard refresh */
.spe-cart-add-extra.loading,
.spe-drawer-add-extra.spe-loading{
    opacity:.65!important;
    cursor:wait!important;
}


/* =====================================================================
   v1.7.0 — MOBILE FIRST / Product Extras premium responsive
   ===================================================================== */

/* Petite base : éviter que les cartes explosent hors de la colonne produit */
.spe-box-product,
.spe-box-product *{
  box-sizing:border-box!important;
}

.spe-box-product .spe-grid{
  min-width:0!important;
}

/* Tablette : deux colonnes propres, cartes plus respirantes */
@media(max-width:900px){
  .spe-box-product{
    max-width:100%!important;
    margin:18px 0 24px!important;
    padding:18px!important;
    border-radius:22px!important;
  }

  .spe-box-product .spe-grid{
    gap:12px!important;
  }

  .spe-box-product .spe-extra-card{
    min-width:0!important;
  }
}

/* Mobile first : carousel horizontal propre au lieu de 2 colonnes écrasées */
@media(max-width:640px){
  .single-product .summary .spe-box-product,
  .spe-box-product{
    width:100%!important;
    max-width:100%!important;
    margin:16px 0 22px!important;
    padding:18px 14px 16px!important;
    border-radius:24px!important;
    background:linear-gradient(180deg,#fffdf9 0%,#FEF9F3 100%)!important;
    overflow:hidden!important;
  }

  .spe-kicker{
    font-size:10.5px!important;
    letter-spacing:.06em!important;
  }

  .spe-box-product .spe-head h3{
    font-size:22px!important;
    line-height:1.08!important;
    letter-spacing:-.02em!important;
    max-width:96%!important;
  }

  .spe-box-product .spe-head p{
    font-size:13.5px!important;
    line-height:1.38!important;
    margin:8px 0 12px!important;
    max-width:96%!important;
  }

  .spe-extras-counter{
    margin:0 0 14px!important;
    padding:6px 12px 6px 8px!important;
    font-size:11px!important;
    box-shadow:0 8px 18px rgba(230,105,43,.16)!important;
  }

  .spe-box-product .spe-grid{
    display:flex!important;
    grid-template-columns:none!important;
    gap:12px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch!important;
    padding:2px 4px 14px!important;
    margin:0 -4px!important;
    scrollbar-width:thin!important;
  }

  .spe-box-product .spe-grid::-webkit-scrollbar{
    height:6px!important;
  }

  .spe-box-product .spe-grid::-webkit-scrollbar-track{
    background:rgba(250,231,205,.65)!important;
    border-radius:999px!important;
  }

  .spe-box-product .spe-grid::-webkit-scrollbar-thumb{
    background:#D69D75!important;
    border-radius:999px!important;
  }

  .spe-box-product .spe-extra-card{
    flex:0 0 min(84vw, 286px)!important;
    width:min(84vw,286px)!important;
    scroll-snap-align:start!important;
    display:grid!important;
    grid-template-columns:74px minmax(0,1fr)!important;
    grid-template-areas:"media body" "qty qty"!important;
    align-items:center!important;
    gap:12px!important;
    min-height:154px!important;
    padding:13px!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 14px 30px rgba(59,23,13,.055)!important;
  }

  .spe-box-product .spe-extra-card.spe-selected{
    box-shadow:0 14px 30px rgba(230,105,43,.14)!important;
  }

  .spe-box-product .spe-extra-check{
    top:10px!important;
    right:10px!important;
    width:20px!important;
    height:20px!important;
  }

  .spe-box-product .spe-extra-media{
    grid-area:media!important;
    width:74px!important;
    height:74px!important;
    min-width:74px!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:#F7F1EA!important;
  }

  .spe-box-product .spe-extra-media img,
  .spe-box-product .spe-extra-media .spe-image{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    border-radius:16px!important;
    display:block!important;
  }

  .spe-extra-media-fallback{
    width:100%!important;
    height:100%!important;
    border-radius:16px!important;
    color:#D69D75!important;
  }

  .spe-extra-body{
    grid-area:body!important;
    min-width:0!important;
    padding-right:18px!important;
  }

  .spe-extra-body strong{
    display:block!important;
    color:#3B170D!important;
    font-size:13px!important;
    line-height:1.14!important;
    font-weight:950!important;
    text-transform:uppercase!important;
    letter-spacing:-.01em!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    max-height:46px!important;
    overflow:hidden!important;
  }

  .spe-extra-price{
    margin-top:7px!important;
    padding:6px 10px!important;
    border-radius:999px!important;
    background:#FAE7CD!important;
    color:#7D4B2E!important;
    font-size:12px!important;
    line-height:1!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }

  .spe-box-product .spe-extra-qty{
    grid-area:qty!important;
    height:38px!important;
    margin-top:2px!important;
    border-radius:999px!important;
    background:#FFFDF9!important;
    border-color:rgba(214,157,117,.58)!important;
  }

  .spe-box-product .spe-extra-qty button{
    width:44px!important;
    height:38px!important;
    font-size:20px!important;
  }

  .spe-box-product .spe-extra-qty input{
    width:72px!important;
    height:38px!important;
    font-size:14px!important;
    font-weight:950!important;
  }
}

/* Très petits téléphones : une carte quasi pleine largeur et texte non cassé */
@media(max-width:390px){
  .spe-box-product{
    padding:16px 12px!important;
  }

  .spe-box-product .spe-head h3{
    font-size:20px!important;
  }

  .spe-box-product .spe-extra-card{
    flex-basis:88vw!important;
    width:88vw!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    padding:12px!important;
  }

  .spe-box-product .spe-extra-media{
    width:68px!important;
    height:68px!important;
    min-width:68px!important;
  }

  .spe-extra-body strong{
    font-size:12.5px!important;
  }
}


/* =====================================================================
   v1.8.0 — Extras éditables + résumé commande propre
   ===================================================================== */

/* Le plugin ne force plus le style du bloc total panier / résumé commande.
   On scope uniquement les éléments qu'il génère lui-même. */
.spe-cart-extra-editor,
.spe-cart-extra-editor *{
  box-sizing:border-box!important;
}

.spe-cart-extra-editor{
  width:100%!important;
  max-width:620px!important;
  margin:12px 0 8px!important;
  padding:12px!important;
  border:1px solid rgba(214,157,117,.42)!important;
  border-radius:16px!important;
  background:#FFFDF9!important;
  color:#3B170D!important;
}

.spe-cart-extra-editor-title{
  margin:0 0 9px!important;
  color:#3B170D!important;
  font-size:12px!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}

.spe-cart-extra-editor-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  padding:8px 0!important;
  border-bottom:1px dashed rgba(203,166,137,.45)!important;
}

.spe-cart-extra-editor-row:last-child{
  border-bottom:0!important;
}

.spe-cart-extra-editor-row-free .spe-cart-extra-editor-main span{
  color:#2e7d32!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  font-size:10.5px!important;
}

.spe-cart-extra-editor-main{
  min-width:0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px 12px!important;
  align-items:center!important;
  color:#3B170D!important;
}

.spe-cart-extra-editor-main strong{
  color:#3B170D!important;
  font-weight:900!important;
  font-size:13.5px!important;
  line-height:1.2!important;
}

.spe-cart-extra-editor-main span{
  color:#7D4B2E!important;
  font-weight:900!important;
  font-size:13px!important;
  white-space:nowrap!important;
}

.spe-cart-extra-editor-controls{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  height:36px!important;
  border:1px solid rgba(203,166,137,.55)!important;
  border-radius:999px!important;
  background:#FEF9F3!important;
  overflow:hidden!important;
}

.spe-cart-extra-editor-controls button{
  width:34px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  color:#3B170D!important;
  font-size:17px!important;
  font-weight:950!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:none!important;
}

.spe-cart-extra-editor-controls button:hover{
  background:#FAE7CD!important;
  color:#E6692B!important;
}

.spe-cart-extra-editor-controls .spe-cart-extra-remove{
  color:#8a1f1f!important;
  border-left:1px solid rgba(203,166,137,.45)!important;
}

.spe-cart-extra-input{
  width:44px!important;
  height:36px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:#fff!important;
  color:#3B170D!important;
  text-align:center!important;
  font-weight:950!important;
  font-size:13px!important;
  box-shadow:none!important;
  -moz-appearance:textfield!important;
}

.spe-cart-extra-input::-webkit-outer-spin-button,
.spe-cart-extra-input::-webkit-inner-spin-button{
  -webkit-appearance:none!important;
  margin:0!important;
}

.spe-cart-extra-editor.spe-updating{
  opacity:.68!important;
  pointer-events:none!important;
}

/* Prix produit seul dans la colonne prix */
.spe-cart-unit-base{
  display:inline-flex!important;
  align-items:center!important;
  color:#7D4B2E!important;
  font-weight:900!important;
  background:transparent!important;
}

/* Résumé commande checkout : empêcher les mots écrasés lettre par lettre */
.woocommerce-checkout-review-order-table .variation,
.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation,
.woocommerce-checkout .wc-block-components-product-metadata,
.woocommerce-checkout .wc-block-components-product-details{
  max-width:100%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.35!important;
}

.woocommerce-checkout-review-order-table .variation dt,
.woocommerce-checkout-review-order-table .variation dd{
  float:none!important;
  display:block!important;
  clear:both!important;
  width:auto!important;
  max-width:100%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.35!important;
}

.woocommerce-checkout-review-order-table .variation dd p{
  margin:0!important;
}

/* On ne colore pas le total panier / bloc de droite : ce style appartient au thème */
.cart_totals,
.cart_totals *,
.woocommerce-checkout-review-order,
.woocommerce-checkout-review-order *{
  word-break:normal!important;
}

/* Responsive de l'éditeur extras dans le panier */
@media(max-width:640px){
  .spe-cart-extra-editor{
    margin-top:12px!important;
    padding:12px!important;
    border-radius:18px!important;
  }

  .spe-cart-extra-editor-row{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  .spe-cart-extra-editor-controls{
    width:100%!important;
    justify-content:space-between!important;
  }

  .spe-cart-extra-editor-controls button{
    width:42px!important;
  }

  .spe-cart-extra-input{
    flex:1!important;
    min-width:64px!important;
  }
}


/* v1.8.1 — forcer l'affichage de l'éditeur extras même sur panier custom */
.spe-js-cart-extra-editor{
  display:block!important;
  clear:both!important;
}

.spe-cart-extras-fallback{
  display:inline-block!important;
  margin-top:6px!important;
  color:#7D4B2E!important;
  font-weight:800!important;
}

.spe-cart-extra-editor .spe-cart-extra-editor-row{
  opacity:1!important;
  visibility:visible!important;
}

.spe-cart-extra-editor input,
.spe-cart-extra-editor button{
  visibility:visible!important;
}

/* v2.2.0 : la carte d'un extra à saveurs reste un flex-column à toutes les
   tailles d'écran (cf. section "CONSTRUCTEUR DE COMBINAISONS" plus haut),
   y compris dans le carousel mobile qui redéfinit display:grid sur
   .spe-extra-card plus haut dans ce fichier — cette règle doit rester la
   dernière déclaration de display/grid-template-* pour gagner partout. */
.spe-box-product .spe-extra-card-options{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  min-height:auto!important;
}

/* =====================================================================
   POPUP D'AJOUT RAPIDE (boutons "Ajouter au panier" des boucles produits)
   ===================================================================== */

.spe-modal{
  position:fixed!important;
  inset:0!important;
  background:rgba(59,23,13,.45)!important;
  z-index:100000!important;
  display:none;
  align-items:center!important;
  justify-content:center!important;
  padding:16px!important;
}

.spe-modal-dialog{
  background:#fff!important;
  border-radius:18px!important;
  padding:22px!important;
  width:420px!important;
  max-width:100%!important;
  max-height:88vh!important;
  overflow-y:auto!important;
  box-shadow:0 16px 48px rgba(59,23,13,.3)!important;
}

/* La popup d'ajout rapide reprend le même bloc d'extras que la fiche produit
   (carrousel de cartes, picker de saveurs...) : elle a besoin de plus de place
   que la largeur par défaut d'une modale pour rester lisible. */
.spe-quick-add-dialog{
  width:640px!important;
}
@media (max-width:680px){
  .spe-quick-add-dialog{
    width:100%!important;
  }
}

.spe-quick-add-header{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin-bottom:16px!important;
  padding-bottom:16px!important;
  border-bottom:1px solid rgba(203,166,137,.4)!important;
}

.spe-quick-add-image img{
  width:64px!important;
  height:64px!important;
  border-radius:12px!important;
  object-fit:cover!important;
  display:block!important;
}

.spe-quick-add-header strong{
  display:block!important;
  color:#3B170D!important;
  font-size:14px!important;
  font-weight:900!important;
  margin-bottom:4px!important;
}

.spe-quick-add-price{
  display:inline-flex!important;
  padding:4px 10px!important;
  border-radius:999px!important;
  background:#FAE7CD!important;
  color:#E6692B!important;
  font-size:12px!important;
  font-weight:800!important;
}

.spe-quick-add-body .spe-box-product{
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}

.spe-quick-add-dialog .spe-modal-actions{
  display:flex!important;
  gap:10px!important;
  margin-top:18px!important;
}

.spe-quick-add-confirm{
  flex:1 1 auto!important;
  min-height:44px!important;
  border-radius:999px!important;
  background:#E6692B!important;
  border:none!important;
  color:#fff!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
  font-size:13px!important;
  cursor:pointer!important;
  box-shadow:0 4px 12px rgba(230,105,43,.3)!important;
}
.spe-quick-add-confirm:hover{ background:#C3652F!important; }
.spe-quick-add-confirm.loading,
.spe-quick-add-confirm:disabled{ opacity:.65!important; cursor:wait!important; }

.spe-quick-add-cancel{
  min-height:44px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  background:#FEF9F3!important;
  border:1px solid rgba(203,166,137,.5)!important;
  color:#3B170D!important;
  font-weight:700!important;
  font-size:13px!important;
  cursor:pointer!important;
}
.spe-quick-add-cancel:hover{ background:#FAE7CD!important; }

.add_to_cart_button.spe-loading{ opacity:.6!important; pointer-events:none!important; }
