/* =========================================================
   Bloopin Cart — final clean stable
   Scope: WooCommerce cart only
   ========================================================= */


   /* =========================================================
   Reduce vertical spacing in primary content area
   ========================================================= */

/* =========================================================
   Astra container — reduce spacing on cart page
   ========================================================= */
body.woocommerce-cart .ast-container{
  padding-top:0px !important;
  padding-bottom:12px !important;
}

body.woocommerce-cart #primary.content-area{
  margin-top:0 !important;
  padding-top:0 !important;
}

body.woocommerce-cart .site-content{
  padding-top:0 !important;
}

/* Remove WooCommerce cart td min-height */
.woocommerce-page #content table.cart td,
.woocommerce-page #content table.cart th{
  min-height:auto !important;
}

/* =========================================================
   Layout global
   ========================================================= */
   
.woocommerce-cart .woocommerce{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) 320px !important;
  gap:18px !important;
  align-items:start !important;
}

.woocommerce-cart .woocommerce-notices-wrapper{
  grid-column:1 / -1;
}

.woocommerce-cart form.woocommerce-cart-form{
  min-width:0 !important;
  width:100% !important;
  margin:0 !important;
}

.woocommerce-cart .cart-collaterals{
  float:none !important;
  grid-column:2 !important;
  width:100% !important;
  margin:0 !important;
  min-width:0 !important;
  position:sticky !important;
  top:24px !important;
  align-self:start !important;
}

/* =========================================================
   Surfaces / cards
   ========================================================= */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-cart #wps_wpr_order_notice,
.woocommerce-cart #wps_wpr_notice,
.woocommerce-cart .cart_totals,
.woocommerce-cart .bloopin-slot-picker,
.woocommerce-cart table.shop_table tbody tr.cart_item{
  border:0 !important;
  border-radius:var(--radius-panel,22px) !important;
  background:var(--card-bg) !important;
  box-shadow:var(--shadow-md,0 10px 26px rgba(0,0,0,.08)) !important;
}

/* =========================================================
   Table reset
   ========================================================= */
.woocommerce-cart table.shop_table{
  width:100% !important;
  margin:0 !important;
  border:0 !important;
  border-collapse:separate !important;
  border-spacing:0 14px !important;
  background:transparent !important;
  box-shadow:none !important;
}

.woocommerce-cart table.shop_table thead{
  display:none !important;
}

.woocommerce-cart table.shop_table tbody{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}

.woocommerce-cart table.shop_table tbody tr.cart_item{
  display:grid !important;
  grid-template-columns:40px 84px minmax(0, 1fr) 72px 96px !important;
  gap:14px !important;
  align-items:center !important;
  padding:16px !important;
}

.woocommerce-cart table.shop_table tbody td{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  vertical-align:middle !important;
}

.woocommerce-cart table.shop_table_responsive tr td::before,
.woocommerce-cart table.shop_table_responsive tr th::before{
  content:none !important;
  display:none !important;
}

/* =========================================================
   Remove
   ========================================================= */
.woocommerce-cart td.product-remove{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.woocommerce-cart td.product-remove a.remove{
  position:relative !important;
  width:36px !important;
  height:36px !important;
  min-width:36px !important;
  min-height:36px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:var(--radius-control,12px) !important;
  background:var(--action-secondary-bg) !important;
  color:var(--action-secondary-text) !important;
  font-size:0 !important;
  line-height:0 !important;
  text-decoration:none !important;
  box-shadow:var(--outline-control) !important;
  transition:transform .14s ease, background-color .14s ease, color .14s ease !important;
}

.woocommerce-cart td.product-remove a.remove:hover,
.woocommerce-cart td.product-remove a.remove:focus,
.woocommerce-cart td.product-remove a.remove:focus-visible{
  background:var(--action-secondary-hover-bg) !important;
  color:var(--action-secondary-text) !important;
  box-shadow:var(--outline-control-strong) !important;
  transform:translateY(-1px) !important;
}

.woocommerce-cart td.product-remove a.remove::before,
.woocommerce-cart td.product-remove a.remove .ahfb-svg-iconset,
.woocommerce-cart td.product-remove a.remove .ast-mobile-svg,
.woocommerce-cart td.product-remove a.remove svg{
  display:none !important;
}

.woocommerce-cart td.product-remove a.remove::after{
  content:"";
  width:18px;
  height:18px;
  display:block;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.8' stroke='white'><path stroke-linecap='round' stroke-linejoin='round' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.11 0 0 0-7.5 0'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.8' stroke='white'><path stroke-linecap='round' stroke-linejoin='round' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.11 0 0 0-7.5 0'/></svg>") center/contain no-repeat;
}

/* =========================================================
   Thumbnail
   ========================================================= */
.woocommerce-cart td.product-thumbnail a{
  display:block !important;
  width:84px !important;
  height:84px !important;
  min-width:84px !important;
  min-height:84px !important;
  border-radius:var(--radius-control,16px) !important;
  overflow:hidden !important;
  background:var(--glass-3) !important;
}

.woocommerce-cart td.product-thumbnail img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:inherit !important;
}

/* =========================================================
   Product info
   ========================================================= */
.woocommerce-cart td.product-name{
  min-width:0 !important;
}

.woocommerce-cart td.product-name > a{
  display:block !important;
  margin:0 0 8px !important;
  color:var(--text) !important;
  font-size:var(--text-card-title,15px) !important;
  font-weight:800 !important;
  line-height:1.15 !important;
  text-decoration:none !important;
}

.woocommerce-cart td.product-name > a:hover{
  color:var(--accent) !important;
}

.woocommerce-cart td.product-name .variation{
  margin:0 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px 8px !important;
  max-width:100% !important;
}

.woocommerce-cart td.product-name .variation dt{
  display:none !important;
}

.woocommerce-cart td.product-name .variation dd{
  margin:0 !important;
  padding:4px 9px !important;
  border:0;
  border-radius:999px !important;
  background:var(--glass-3) !important;
  color:var(--text-soft) !important;
  font-size:var(--text-meta,12px) !important;
  font-weight:500;
  line-height:1.2 !important;
  white-space:nowrap !important;
}

.woocommerce-cart td.product-name .variation dd p{
  margin:0 !important;
}

/* =========================================================
   Price / qty / subtotal
   ========================================================= */
.woocommerce-cart td.product-price{
  display:none !important;
}

.woocommerce-cart td.product-quantity,
.woocommerce-cart td.product-subtotal{
  text-align:center !important;
}

.woocommerce-cart td.product-subtotal{
  text-align:right !important;
}

.woocommerce-cart td.product-subtotal .woocommerce-Price-amount{
  color:var(--text,#151515) !important;
  font-size:var(--text-card-title,15px) !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}

.woocommerce-cart td.product-quantity{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
}

.woocommerce-cart td.product-quantity .quantity{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
}

.woocommerce-cart .input-text.qty,
.woocommerce-cart input.input-text.qty,
.woocommerce-cart input.qty{
  width:58px !important;
  min-width:58px !important;
  min-height:40px !important;
  padding:8px 10px !important;
  border:0 !important;
  border-radius:var(--radius-control,12px) !important;
  background:var(--input-bg) !important;
  color:var(--text) !important;
  font:inherit !important;
  font-size:var(--text-control,14px) !important;
  font-weight:600;
  text-align:center !important;
  box-shadow:var(--outline-control) !important;
}

.woocommerce-cart .input-text.qty:focus,
.woocommerce-cart input.input-text.qty:focus,
.woocommerce-cart input.qty:focus,
.woocommerce-cart #coupon_code:focus,
.woocommerce-cart #wps_cart_points:focus,
.woocommerce-cart .bloopin-slot-picker select:focus{
  outline:none !important;
  border:0 !important;
  box-shadow:
    inset 0 0 0 2px color-mix(in srgb,var(--accent) 48%,var(--border-subtle)),
    var(--focus-ring) !important;
}

/* =========================================================
   Actions / coupon / points
   ========================================================= */
.woocommerce-cart .actions{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

.woocommerce-cart .coupon{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:10px !important;
  margin-top:14px !important;
}

.woocommerce-cart #coupon_code,
.woocommerce-cart #wps_cart_points{
  width:170px !important;
  max-width:100% !important;
  min-height:42px !important;
  padding:10px 12px !important;
  border:0 !important;
  border-radius:var(--radius-control,12px) !important;
  background:var(--input-bg) !important;
  color:var(--text) !important;
  font:inherit !important;
  font-size:var(--text-control,14px) !important;
  box-shadow:var(--outline-control) !important;
}

.woocommerce-cart .coupon button,
.woocommerce-cart button[name="apply_coupon"],
.woocommerce-cart button[name="apply_points"], 
.woocommerce-cart button[name="update_cart"]{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:42px !important;
  padding:10px 16px !important;
  border:0 !important;
  border-radius:var(--radius-button) !important;
  background:var(--action-secondary-bg) !important;
  color:var(--action-secondary-text) !important;
  font-size:var(--text-control,14px) !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-align:center !important;
  box-shadow:var(--outline-control) !important;
  transition:transform .14s ease, background-color .14s ease, box-shadow .14s ease !important;
  white-space:nowrap !important;
}

.woocommerce-cart .coupon button:hover,
.woocommerce-cart button[name="apply_coupon"]:hover,
.woocommerce-cart button[name="apply_points"]:hover,
.woocommerce-cart button[name="update_cart"]:hover{
  background:var(--action-secondary-hover-bg) !important;
  color:var(--action-secondary-text) !important;
  box-shadow:var(--outline-control-strong) !important;
  transform:translateY(-1px) !important;
}

.woocommerce-cart button[name="update_cart"][disabled]{
  opacity:.55 !important;
  cursor:not-allowed !important;
}

/* points message */
.woocommerce-cart .wps_wpr_restrict_user_message,
.woocommerce-cart .wps_wpr_restrict_user,
.woocommerce-cart .wps_wpr_apply_points_message,
.woocommerce-cart .wps_wpr_cart_points_notice,
.woocommerce-cart .wps_wpr_available_user_points,
.woocommerce-cart .wps_wpr_cart_message{
  margin-top:10px !important;
  padding:12px 14px !important;
  border:0 !important;
  border-radius:var(--radius-control,14px) !important;
  background:var(--glass-3) !important;
  color:var(--text) !important;
  font-size:var(--text-body,13px) !important;
  line-height:1.35 !important;
  box-shadow:none !important;
}

/* =========================================================
   Cart totals / slot
   ========================================================= */
.woocommerce-cart .cart_totals{
  float:none !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.woocommerce-cart .bloopin-slot-picker{
  margin:0 !important;
  padding:14px 16px !important;
  border-radius:0 !important;
  background:var(--glass-3) !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:10px !important;
}

.woocommerce-cart .bloopin-slot-picker label,
.woocommerce-cart .bloopin-slot-picker span,
.woocommerce-cart .bloopin-slot-picker p{
  margin:0 !important;
  font-size:13px !important;
  line-height:1.35 !important;
}

.woocommerce-cart .bloopin-slot-picker br{
  display:none !important;
}

.woocommerce-cart .bloopin-slot-picker select{
  min-height:40px !important;
  padding:8px 10px !important;
  border:0 !important;
  border-radius:var(--radius-control,12px) !important;
  background:var(--input-bg) !important;
  color:var(--text) !important;
  font:inherit !important;
  font-size:var(--text-control,14px) !important;
  box-shadow:var(--outline-control) !important;
}

.woocommerce-cart .cart_totals h2{
  margin:0 !important;
  padding:16px 18px 12px !important;
  background:transparent !important;
  color:var(--text) !important;
  font-size:var(--text-section-title,18px) !important;
  line-height:1.1 !important;
  font-weight:800 !important;
  border:0 !important;
  border-bottom:1px solid var(--border-subtle) !important;
  box-shadow:none !important;
}

.woocommerce-cart .cart_totals table{
  width:100% !important;
  margin:0 !important;
  border:0 !important;
  border-collapse:collapse !important;
  background:transparent !important;
  box-shadow:none !important;
}

.woocommerce-cart .cart_totals table tbody{
  display:table-row-group !important;
}

.woocommerce-cart .cart_totals table tr{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  padding:14px 18px !important;
  border-bottom:1px solid rgba(0,0,0,.06) !important;
}

.woocommerce-cart .cart_totals table tr:last-child{
  border-bottom:0 !important;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td{
  display:block !important;
  width:auto !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  font-size:var(--text-card-title,15px) !important;
}

.woocommerce-cart .cart_totals table th{
  color:var(--soft,#6b7280) !important;
  font-weight:500 !important;
}

.woocommerce-cart .cart_totals table td{
  color:var(--text,#151515) !important;
  font-weight:700 !important;
  text-align:right !important;
  white-space:nowrap !important;
}

.woocommerce-cart .wc-proceed-to-checkout{
  margin:0 !important;
  padding:12px 18px 18px !important;
}

.woocommerce-cart .checkout-button.button.alt.wc-forward,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:52px !important;
  margin:0 !important;
  padding:14px 18px !important;
  border:0 !important;
  border-radius:var(--radius-button) !important;
  background:var(--action-primary-bg) !important;
  color:var(--action-primary-text) !important;
  font-size:var(--text-control,14px) !important;
  font-weight:800 !important;
  line-height:1.1 !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:var(--bp-shadow-soft, 0 10px 26px rgba(0,0,0,.08)) !important;
  transition:transform .14s ease, background-color .14s ease !important;
}

.woocommerce-cart .checkout-button{
  font-weight:600;
  letter-spacing:.3px;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
}

.woocommerce-cart .checkout-button.button.alt.wc-forward:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--action-primary-hover-bg) !important;
  color:var(--action-primary-hover-text) !important;
  transform:translateY(-1px) !important;
}


/* AJAX cart loading */
.woocommerce-cart .woocommerce{
  transition:opacity .18s ease, filter .18s ease;
}

.woocommerce-cart .woocommerce.bp-cart-is-updating{
  opacity:.72;
  filter:saturate(.96);
  pointer-events:none;
}

@keyframes bpPricePulse{
  0%{ transform:scale(1); opacity:1; }
  40%{ transform:scale(1.05); opacity:.9; }
  100%{ transform:scale(1); opacity:1; }
}

.woocommerce-cart .bp-price-pulse{
  animation:bpPricePulse .42s ease;
  display:inline-block;
}
/* =========================================================
   Coupon remove → trash icon
   ========================================================= */

a.wps_remove_virtual_coupon{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:var(--radius-control,10px);
  background:var(--action-secondary-bg);
  color:var(--action-secondary-text);
  box-shadow:var(--outline-control);
  text-decoration:none;
  font-size:0; /* cache le texte */
  transition:all .15s ease;
}

a.wps_remove_virtual_coupon:hover{
  background:var(--action-secondary-hover-bg);
  color:var(--action-secondary-text);
  box-shadow:var(--outline-control-strong);
}

/* icône */
a.wps_remove_virtual_coupon::before{
  content:"";
  width:18px;
  height:18px;
  display:block;

  background-color:currentColor;

  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white'><path stroke-linecap='round' stroke-linejoin='round' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.11 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.11 0 0 0-7.5 0'/></svg>") center / contain no-repeat;

  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white'><path stroke-linecap='round' stroke-linejoin='round' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.11 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.11 0 0 0-7.5 0'/></svg>") center / contain no-repeat;
}



/* =========================================================
   RESPONSIVE FINAL — cart
   À garder seul pour éviter les conflits
   ========================================================= */

/* ---------------------------------------------------------
   Tablet + petit desktop instable
   --------------------------------------------------------- */
@media (min-width:768px) and (max-width:1029px){

  .woocommerce-cart .woocommerce{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .woocommerce-cart .cart-collaterals{
    grid-column:1 !important;
    position:static !important;
    top:auto !important;
    width:100% !important;
  }

  /* card produit */
  .woocommerce-cart table.shop_table tbody tr.cart_item{
    display:grid !important;
    grid-template-columns:36px 72px minmax(0, 1fr) 58px 84px !important;
    gap:12px !important;
    align-items:center !important;
    padding:14px !important;
  }

  .woocommerce-cart td.product-thumbnail{
    grid-column:2 !important;
  }

  .woocommerce-cart td.product-thumbnail a{
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    border-radius:14px !important;
  }

  .woocommerce-cart td.product-name{
    grid-column:3 !important;
    min-width:0 !important;
    width:100% !important;
    justify-self:stretch !important;
    align-self:center !important;
  }

  .woocommerce-cart td.product-name > a{
    display:block !important;
    width:100% !important;
    margin:0 0 6px !important;
    text-align:left !important;
    font-size:var(--text-card-title,15px) !important;
    line-height:1.15 !important;
  }

  .woocommerce-cart td.product-name .variation{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:5px 6px !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
  }

  .woocommerce-cart td.product-name .variation dd{
    font-size:var(--text-micro,11px) !important;
    padding:4px 7px !important;
  }

  .woocommerce-cart td.product-quantity{
    grid-column:4 !important;
    justify-content:center !important;
    align-items:center !important;
  }

  .woocommerce-cart td.product-quantity .quantity{
    justify-content:center !important;
  }

  .woocommerce-cart td.product-subtotal{
    grid-column:5 !important;
    text-align:right !important;
  }

  .woocommerce-cart td.product-subtotal .woocommerce-Price-amount{
    font-size:var(--text-control,14px) !important;
  }

  .woocommerce-cart .input-text.qty,
  .woocommerce-cart input.input-text.qty,
  .woocommerce-cart input.qty{
    width:52px !important;
    min-width:52px !important;
    min-height:36px !important;
    padding:6px 8px !important;
  }

  /* zone actions */
  .woocommerce-cart td.actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-areas:
      "coupon"
      "update"
      "points" !important;
    gap:12px !important;
    padding:0 !important;
  }

  .woocommerce-cart td.actions > .coupon{
    grid-area:coupon !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    gap:10px 12px !important;
    align-items:center !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > .coupon > *{
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .coupon .coupon-error-notice{
    grid-column:1 / -1 !important;
    margin:0 !important;
    font-size:13px !important;
    line-height:1.3 !important;
  }

  .woocommerce-cart td.actions > button[name="update_cart"]{
    grid-area:update !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points{
    grid-area:points !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    gap:10px 12px !important;
    align-items:center !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points > *{
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points .wps_wpr_restrict_user_message,
  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points .wps_wpr_show_restrict_message{
    grid-column:1 / -1 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions #coupon_code,
  .woocommerce-cart td.actions #wps_cart_points{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }

  .woocommerce-cart td.actions button[name="apply_coupon"],
  .woocommerce-cart td.actions .wps_cart_points_apply,
  .woocommerce-cart td.actions button[name="wps_cart_points_apply"]{
    width:auto !important;
    min-width:190px !important;
    max-width:100% !important;
    font-size: 14px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
  }

  .woocommerce-cart .bloopin-slot-picker{
    display:grid !important;
    grid-template-columns:1fr auto !important;
    gap:8px 10px !important;
    align-items:center !important;
  }

  .woocommerce-cart .bloopin-slot-picker > *:last-child{
    grid-column:1 / -1;
  }
}

/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */
@media (max-width:767px){

  .woocommerce-cart .woocommerce{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .woocommerce-cart .cart-collaterals{
    grid-column:1 !important;
    position:static !important;
    top:auto !important;
    width:100% !important;
  }

  .woocommerce-cart table.shop_table{
    border-spacing:0 !important;
  }

  .woocommerce-cart table.shop_table tbody{
    gap:12px !important;
  }

  /* card produit */
  .woocommerce-cart table.shop_table tbody tr.cart_item{
    display:grid !important;
    grid-template-columns:72px minmax(0, 1fr) 28px !important;
    grid-template-areas:
      "thumb content remove"
      "qty   price   price";
    gap:10px 12px !important;
    align-items:start !important;
    padding:12px !important;
  }

  .woocommerce-cart td.product-thumbnail{
    grid-area:thumb !important;
    align-self:start !important;
  }

  .woocommerce-cart td.product-thumbnail a{
    width:72px !important;
    height:72px !important;
    border-radius:14px !important;
  }

  .woocommerce-cart td.product-remove{
    grid-area:remove !important;
    display:flex !important;
    justify-content:flex-end !important;
    align-items:flex-start !important;
  }

  .woocommerce-cart td.product-remove a.remove{
    width:28px !important;
    height:28px !important;
    min-width:28px !important;
    min-height:28px !important;
    border-radius:10px !important;
  }

  .woocommerce-cart td.product-name{
    grid-area:content !important;
    min-width:0 !important;
  }

  .woocommerce-cart td.product-name > a{
    display:block !important;
    margin:0 0 8px !important;
    font-size:var(--text-card-title,15px) !important;
    line-height:1.15 !important;
    text-align:left !important;
  }

  .woocommerce-cart td.product-name .variation{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:5px !important;
    margin:0 !important;
  }

  .woocommerce-cart td.product-name .variation dt{
    display:none !important;
  }

  .woocommerce-cart td.product-name .variation dd{
    margin:0 !important;
    padding:4px 8px !important;
    border-radius:999px !important;
    background:var(--glass-3) !important;
    font-size:var(--text-micro,11px) !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
  }

  /* quantité sous image */
  .woocommerce-cart td.product-quantity{
    grid-area:qty !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    padding-top:2px !important;
    margin:0 !important;
    width:auto !important;
  }

  .woocommerce-cart td.product-quantity::before{
    content:none !important;
    display:none !important;
  }

  .woocommerce-cart td.product-quantity .quantity{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    margin:0 !important;
  }

  /* prix à droite sur la même ligne */
  .woocommerce-cart td.product-subtotal{
    grid-area:price !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    margin:0 !important;
    width:100% !important;
    text-align:right !important;
  }

  .woocommerce-cart td.product-subtotal::before{
    content:none !important;
    display:none !important;
  }

  .woocommerce-cart td.product-subtotal .woocommerce-Price-amount{
    display:block !important;
    margin:0 !important;
    font-size:var(--text-card-title,15px) !important;
    font-weight:700 !important;
    color:var(--text,#151515) !important;
    white-space:nowrap !important;
  }

  .woocommerce-cart .input-text.qty,
  .woocommerce-cart input.input-text.qty,
  .woocommerce-cart input.qty{
    width:52px !important;
    min-width:52px !important;
    min-height:36px !important;
    padding:6px 8px !important;
    border-radius:10px !important;
  }

  /* actions */
  .woocommerce-cart td.actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:0 !important;
  }

  .woocommerce-cart td.actions > .coupon,
  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > button[name="update_cart"]{
    width:100% !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions .coupon-error-notice,
  .woocommerce-cart td.actions .wps_wpr_restrict_user_message,
  .woocommerce-cart td.actions .wps_wpr_show_restrict_message{
    margin:0 !important;
  }

  .woocommerce-cart td.actions #coupon_code,
  .woocommerce-cart td.actions #wps_cart_points,
  .woocommerce-cart td.actions button[name="apply_coupon"],
  .woocommerce-cart td.actions .wps_cart_points_apply,
  .woocommerce-cart td.actions button[name="update_cart"]{
    width:100% !important;
    min-width:0 !important;
  }

  .woocommerce-cart td.actions button[name="apply_coupon"],
  .woocommerce-cart td.actions .wps_cart_points_apply,
  .woocommerce-cart td.actions button[name="update_cart"]{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .woocommerce-cart .cart_totals{
    border-radius:20px !important;
  }

  .woocommerce-cart .bloopin-slot-picker{
    padding:14px !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    gap:8px !important;
  }

  .woocommerce-cart .bloopin-slot-picker > *:last-child{
    grid-column:1 / -1;
  }

  .woocommerce-cart .cart_totals h2{
    padding:16px 18px 12px !important;
    font-size:20px !important;
  }

  .woocommerce-cart .cart_totals table tr{
    padding:12px 18px !important;
  }

  .woocommerce-cart .cart_totals table th,
  .woocommerce-cart .cart_totals table td{
    font-size:var(--text-control,14px) !important;
  }

  .woocommerce-cart .wc-proceed-to-checkout{
    padding:12px 18px 18px !important;
  }

  .woocommerce-cart .checkout-button.button.alt.wc-forward,
  .woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
    min-height:52px !important;
    font-size:16px !important;
  }
}

/* =========================================================
   FINAL FIX — coupon block 768px → 922px
   ========================================================= */
@media (min-width:768px) and (max-width:922px){

  .woocommerce-cart td.actions > .coupon{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    align-items:stretch !important;
  }

  .woocommerce-cart td.actions > .coupon > *{
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .coupon #coupon_code{
    width:100% !important;
    max-width:none !important;
  }

  .woocommerce-cart td.actions > .coupon button[name="apply_coupon"]{
    width:100% !important;
    min-width:0 !important;
    justify-self:stretch !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .woocommerce-cart td.actions > .coupon .coupon-error-notice{
    grid-column:auto !important;
  }

  /* Remove WooCommerce clearfix in coupon block */
.woocommerce-cart .coupon::before,
.woocommerce-cart .coupon::after{
  display:none !important;
  content:none !important;
}
}

/* =========================================================
   Cart actions — no update button gap
   ========================================================= */

/* desktop / tablet */
@media (min-width:768px){

  .woocommerce-cart td.actions > button[name="update_cart"]{
    display:none !important;
  }
}

/* mobile */
@media (max-width:767px){
  .woocommerce-cart td.actions > button[name="update_cart"]{
    display:none !important;
  }
}

/* =========================================================
   DESKTOP FIX — actions block clean after 1030px
   ========================================================= */
@media (min-width:1030px){

  .woocommerce-cart td.actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    padding:0 !important;
  }

  /* ligne code promo */
  .woocommerce-cart td.actions > .coupon{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    gap:10px 12px !important;
    align-items:center !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > .coupon > *{
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .coupon #coupon_code{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .coupon button[name="apply_coupon"]{
    min-width:215px !important;
    width:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }

  .woocommerce-cart td.actions > .coupon .coupon-error-notice{
    grid-column:1 / -1 !important;
    margin:0 !important;
  }

  /* ligne points */
  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    gap:10px 12px !important;
    align-items:center !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points > *{
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points #wps_cart_points{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points .wps_cart_points_apply,
  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points button[name="wps_cart_points_apply"]{
    min-width:215px !important;
    width:auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }

  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points .wps_wpr_restrict_user_message,
  .woocommerce-cart td.actions > .wps_wpr_apply_custom_points .wps_wpr_show_restrict_message{
    grid-column:1 / -1 !important;
    margin:0 !important;
  }

  /* sécurité */
  .woocommerce-cart td.actions > button[name="update_cart"]{
    display:none !important;
  }
}

/* ==========================================================
   BLOOPIN — Commande à table / panier
   Style du champ numéro de table dans le panier
========================================================== */

.woocommerce-cart .bloopin-table-picker{
  align-items:flex-end !important;
}

.woocommerce-cart .bloopin-table-picker__row{
  display:grid !important;
  grid-template-columns:minmax(120px, 1fr) auto !important;
  gap:10px !important;
  align-items:center !important;
  min-width:min(100%, 360px) !important;
}

.woocommerce-cart .bloopin-table-picker input.bloopin-table-input{
  min-height:40px !important;
  width:100% !important;
  padding:8px 10px !important;
  border:0 !important;
  border-radius:var(--radius-control,12px) !important;
  background:var(--input-bg) !important;
  color:var(--text) !important;
  font:inherit !important;
  font-size:var(--text-control,14px) !important;
  font-weight:700 !important;
  box-shadow:var(--outline-control) !important;
}

.woocommerce-cart .bloopin-table-picker input.bloopin-table-input:focus{
  outline:none !important;
  border:0 !important;
  box-shadow:
    inset 0 0 0 2px color-mix(in srgb,var(--accent) 48%,var(--border-subtle)),
    var(--focus-ring) !important;
}

.woocommerce-cart .bloopin-table-save{
  min-height:40px !important;
  padding:0 14px !important;
  border:0 !important;
  border-radius:var(--radius-button) !important;
  background:var(--action-primary-bg) !important;
  color:var(--action-primary-text) !important;
  font-weight:800 !important;
}

.woocommerce-cart .bloopin-table-picker .bloopin-slot-hint{
  flex:1 1 100%;
  color:var(--soft,#667085) !important;
  font-size:var(--text-meta,12px) !important;
  font-weight:600 !important;
}

@media (max-width:640px){
  .woocommerce-cart .bloopin-table-picker{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .woocommerce-cart .bloopin-table-picker__row{
    grid-template-columns:1fr !important;
    min-width:0 !important;
  }

  .woocommerce-cart .bloopin-table-save{
    width:100% !important;
  }
}
