/* ==========================================================================
   ACADEMIE PORTEURS DE VISION
   WooCommerce - Panier + Checkout
   Version propre et complete
   ========================================================================== */

:root{
  --apv-gold:#f5ae25;
  --apv-gold-hover:#d99512;
  --apv-gold-soft:#fff5df;
  --apv-cream:#fff9ee;
  --apv-white:#ffffff;
  --apv-dark:#222222;
  --apv-text:#555555;
  --apv-muted:#858585;
  --apv-border:#eadfcd;
  --apv-border-light:#f2ece3;
  --apv-danger:#c94b4b;
  --apv-radius:14px;
  --apv-shadow:0 6px 22px rgba(45,30,10,.05);
}

/* ==========================================================================
   BASE
   ========================================================================== */

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce{
  width:100%;
}

.woocommerce-cart a,
.woocommerce-checkout a{
  transition:color .2s ease,background-color .2s ease,border-color .2s ease;
}

.woocommerce-cart h1,
.woocommerce-cart h2,
.woocommerce-cart h3,
.woocommerce-checkout h1,
.woocommerce-checkout h2,
.woocommerce-checkout h3{
  color:var(--apv-dark);
}

.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title{
  color:var(--apv-gold)!important;
}

/* ==========================================================================
   MESSAGES
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  margin:0 auto 24px!important;
  padding:17px 20px 17px 48px!important;
  border:1px solid var(--apv-border)!important;
  border-top:3px solid var(--apv-gold)!important;
  border-radius:var(--apv-radius)!important;
  background:var(--apv-white)!important;
  color:var(--apv-text)!important;
  box-shadow:var(--apv-shadow)!important;
}

.woocommerce-message:before,
.woocommerce-info:before{
  color:var(--apv-gold)!important;
}

.woocommerce-error{
  border-color:#ead2d2!important;
  border-top-color:var(--apv-danger)!important;
  background:#fffafa!important;
  color:#7c2f2f!important;
}

.woocommerce-error:before{
  color:var(--apv-danger)!important;
}

/* ==========================================================================
   BOUTONS WOOCOMMERCE
   ========================================================================== */

.woocommerce-cart a.button,
.woocommerce-cart button.button,
.woocommerce-cart input.button,
.woocommerce-cart a.button.alt,
.woocommerce-cart button.button.alt,
.woocommerce-cart input.button.alt,
.woocommerce-checkout a.button,
.woocommerce-checkout button.button,
.woocommerce-checkout input.button,
.woocommerce-checkout a.button.alt,
.woocommerce-checkout button.button.alt,
.woocommerce-checkout input.button.alt{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:48px;
  padding:0 24px!important;
  border:2px solid var(--apv-gold)!important;
  border-radius:999px!important;
  background:var(--apv-gold)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-align:center!important;
  text-decoration:none!important;
  box-shadow:none!important;
}

.woocommerce-cart a.button:hover,
.woocommerce-cart button.button:hover,
.woocommerce-cart input.button:hover,
.woocommerce-cart a.button.alt:hover,
.woocommerce-cart button.button.alt:hover,
.woocommerce-cart input.button.alt:hover,
.woocommerce-checkout a.button:hover,
.woocommerce-checkout button.button:hover,
.woocommerce-checkout input.button:hover,
.woocommerce-checkout a.button.alt:hover,
.woocommerce-checkout button.button.alt:hover,
.woocommerce-checkout input.button.alt:hover{
  border-color:var(--apv-gold-hover)!important;
  background:var(--apv-gold-hover)!important;
  color:#fff!important;
}

.woocommerce-cart button.button:disabled,
.woocommerce-cart button.button:disabled[disabled],
.woocommerce-cart input.button:disabled,
.woocommerce-cart input.button:disabled[disabled]{
  border-color:#efd39d!important;
  background:#f8dda8!important;
  color:#ad9871!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

/* ==========================================================================
   PANIER - TABLEAU
   ========================================================================== */

.woocommerce-cart table.shop_table{
  width:100%;
  margin:0;
  border:1px solid var(--apv-border)!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  border-radius:16px!important;
  background:var(--apv-white)!important;
  overflow:hidden;
  box-shadow:var(--apv-shadow);
}

.woocommerce-cart table.shop_table thead,
.woocommerce-cart table.shop_table thead th{
  background:var(--apv-white)!important;
}

.woocommerce-cart table.shop_table thead th{
  padding:20px!important;
  border:0!important;
  border-bottom:1px solid var(--apv-border)!important;
  color:var(--apv-dark)!important;
  font-size:15px!important;
  font-weight:700!important;
}

.woocommerce-cart table.shop_table td{
  padding:22px 20px!important;
  border:0!important;
  border-bottom:1px solid var(--apv-border-light)!important;
  background:var(--apv-white)!important;
  color:var(--apv-text)!important;
  vertical-align:middle!important;
}

.woocommerce-cart table.shop_table tr.cart_item:last-of-type td{
  border-bottom:0!important;
}

.woocommerce-cart table.shop_table .product-thumbnail{
  width:110px;
  text-align:center;
}

.woocommerce-cart table.shop_table .product-thumbnail img{
  display:block!important;
  width:70px!important;
  height:90px!important;
  margin:0 auto!important;
  border-radius:8px!important;
  object-fit:cover!important;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
}

.woocommerce-cart table.shop_table .product-name a{
  color:var(--apv-dark)!important;
  font-size:16px!important;
  font-weight:700!important;
  line-height:1.4!important;
  text-decoration:none!important;
}

.woocommerce-cart table.shop_table .product-name a:hover{
  color:var(--apv-gold)!important;
}

.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal{
  color:var(--apv-dark)!important;
  font-weight:600!important;
  white-space:nowrap;
}

.woocommerce-cart table.shop_table .quantity .qty{
  width:70px!important;
  height:48px!important;
  padding:0 10px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--apv-dark)!important;
  text-align:center!important;
  box-shadow:none!important;
}

.woocommerce-cart table.shop_table .quantity .qty:focus{
  border-color:var(--apv-gold)!important;
  outline:0!important;
  box-shadow:0 0 0 3px rgba(245,174,37,.15)!important;
}

.woocommerce-cart table.shop_table .product-remove{
  width:60px;
  text-align:center;
}

.woocommerce-cart table.shop_table .product-remove a.remove{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:36px!important;
  height:36px!important;
  margin:0 auto!important;
  border-radius:50%!important;
  background:var(--apv-gold-soft)!important;
  color:var(--apv-gold)!important;
  font-size:26px!important;
  line-height:1!important;
}

.woocommerce-cart table.shop_table .product-remove a.remove:hover{
  background:var(--apv-gold)!important;
  color:#fff!important;
}

/* Actions panier */

.woocommerce-cart table.shop_table td.actions{
  padding:18px!important;
  border-top:1px solid var(--apv-border)!important;
  background:#fff!important;
}

.woocommerce-cart table.shop_table td.actions .coupon{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}

.woocommerce-cart table.shop_table td.actions .coupon .input-text{
  width:180px!important;
  height:48px!important;
  margin:0!important;
  padding:0 16px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:999px!important;
  background:#fff!important;
  box-shadow:none!important;
}

.woocommerce-cart table.shop_table td.actions .coupon .input-text:focus{
  border-color:var(--apv-gold)!important;
  outline:0!important;
  box-shadow:0 0 0 3px rgba(245,174,37,.15)!important;
}

/* Produits suggérés + total */

.woocommerce-cart .cart-collaterals{
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr)!important;
  align-items:start!important;
  gap:40px!important;
  width:100%!important;
  margin-top:35px!important;
}

.woocommerce-cart .cross-sells,
.woocommerce-cart .cart_totals{
  float:none!important;
  width:100%!important;
  margin:0!important;
}

.woocommerce-cart .cross-sells h2,
.woocommerce-cart .cart_totals h2{
  margin:0 0 22px!important;
  color:var(--apv-dark)!important;
  font-size:30px!important;
  line-height:1.15!important;
}

.woocommerce-cart .cross-sells ul.products{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

.woocommerce-cart .cross-sells ul.products:before,
.woocommerce-cart .cross-sells ul.products:after{
  display:none!important;
  content:none!important;
}

.woocommerce-cart .cross-sells ul.products li.product{
  display:flex!important;
  flex-direction:column!important;
  float:none!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0 0 18px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:14px!important;
  background:#fff!important;
  overflow:hidden!important;
  box-shadow:var(--apv-shadow);
}

.woocommerce-cart .cross-sells li.product a.woocommerce-LoopProduct-link{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
}

.woocommerce-cart .cross-sells li.product a.woocommerce-LoopProduct-link>img{
  display:block!important;
  width:100%!important;
  height:260px!important;
  margin:0 0 16px!important;
  object-fit:contain!important;
  background:#fffdf8!important;
}

.woocommerce-cart .cross-sells .woocommerce-loop-product__title{
  min-height:66px;
  margin:0!important;
  padding:0 16px!important;
  color:var(--apv-dark)!important;
  font-size:17px!important;
  font-weight:700!important;
  line-height:1.3!important;
}

.woocommerce-cart .cross-sells .price{
  display:block!important;
  min-height:28px;
  margin:10px 0 16px!important;
  padding:0 16px!important;
  color:var(--apv-dark)!important;
  font-size:16px!important;
}

.woocommerce-cart .cross-sells .price del{
  color:var(--apv-muted)!important;
  opacity:1!important;
}

.woocommerce-cart .cross-sells .price ins{
  color:var(--apv-gold-hover)!important;
  font-weight:700!important;
  text-decoration:none!important;
}

.woocommerce-cart .cross-sells li.product>a.button,
.woocommerce-cart .cross-sells .add_to_cart_button{
  width:calc(100% - 32px)!important;
  min-height:48px!important;
  margin:auto 16px 0!important;
  padding:8px 16px!important;
  border:2px solid var(--apv-gold)!important;
  background:transparent!important;
  color:var(--apv-gold)!important;
}

.woocommerce-cart .cross-sells li.product>a.button:hover,
.woocommerce-cart .cross-sells .add_to_cart_button:hover{
  background:var(--apv-gold)!important;
  color:#fff!important;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  padding:20px!important;
  background:#fff!important;
  border-bottom:1px solid var(--apv-border-light)!important;
}

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

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  width:100%!important;
  min-height:58px!important;
  margin:0!important;
  background:var(--apv-gold)!important;
  border-color:var(--apv-gold)!important;
  color:#fff!important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:active{
  background:var(--apv-gold-hover)!important;
  border-color:var(--apv-gold-hover)!important;
  color:#fff!important;
}

/* ==========================================================================
   CHECKOUT - STRUCTURE
   ========================================================================== */

.woocommerce-checkout form.checkout{
  width:100%!important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle{
  margin-bottom:20px!important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  margin:0!important;
}

.woocommerce-checkout .woocommerce-form-coupon-toggle a{
  color:var(--apv-gold-hover)!important;
  font-weight:600!important;
}

.woocommerce-checkout form.checkout_coupon{
  margin:14px 0 24px!important;
  padding:18px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:var(--apv-shadow);
}

.woocommerce-checkout form.checkout_coupon .input-text{
  height:48px!important;
  padding:0 16px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:999px!important;
  box-shadow:none!important;
}

/* Ne pas casser les boutons express Stripe */
.woocommerce-checkout #wc-stripe-express-checkout-element,
.woocommerce-checkout .wc-stripe-express-checkout-element{
  display:block!important;
  width:100%!important;
  margin:0 0 24px!important;
}

/* Deux colonnes équilibrées sur desktop */
.woocommerce-checkout #customer_details{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:start!important;
  gap:36px!important;
  width:100%!important;
  margin:30px 0 38px!important;
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  float:none!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  width:100%!important;
}

.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading{
  margin:0 0 20px!important;
  color:var(--apv-dark)!important;
  font-size:28px!important;
  line-height:1.2!important;
}

/* Champs checkout */
.woocommerce-checkout .form-row{
  margin-bottom:15px!important;
}

.woocommerce-checkout .form-row label{
  margin-bottom:7px!important;
  color:var(--apv-text)!important;
  font-size:14px!important;
  font-weight:600!important;
}

.woocommerce-checkout .form-row .required{
  color:var(--apv-gold-hover)!important;
}

.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-container--default .select2-selection--single{
  width:100%!important;
  min-height:50px!important;
  padding:0 15px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--apv-dark)!important;
  box-shadow:none!important;
}

.woocommerce-checkout textarea{
  min-height:120px!important;
  padding:14px 15px!important;
  resize:vertical;
}

.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single{
  border-color:var(--apv-gold)!important;
  outline:0!important;
  box-shadow:0 0 0 3px rgba(245,174,37,.14)!important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:48px!important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:48px!important;
}

.woocommerce-checkout #ship-to-different-address{
  margin:0 0 22px!important;
}

.woocommerce-checkout #ship-to-different-address label{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  color:var(--apv-dark)!important;
  font-size:20px!important;
  font-weight:700!important;
}

.woocommerce-checkout input[type=checkbox],
.woocommerce-checkout input[type=radio]{
  accent-color:var(--apv-gold);
  width: 20px!important;
}

/* Commande */
.woocommerce-checkout #order_review_heading{
  clear:both!important;
  width:100%!important;
  margin-top:10px!important;
}

.woocommerce-checkout #order_review{
  float:none!important;
  width:100%!important;
  max-width:none!important;
}

.woocommerce-checkout #order_review table.shop_table{
  width:100%!important;
  margin:0 0 24px!important;
  border:1px solid var(--apv-border)!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  border-radius:14px!important;
  background:#fff!important;
  overflow:hidden!important;
  box-shadow:var(--apv-shadow);
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{
  padding:17px 18px!important;
  border:0!important;
  border-bottom:1px solid var(--apv-border-light)!important;
  background:#fff!important;
  color:var(--apv-text)!important;
}

.woocommerce-checkout #order_review table.shop_table tr:last-child th,
.woocommerce-checkout #order_review table.shop_table tr:last-child td{
  border-bottom:0!important;
}

.woocommerce-checkout #order_review table.shop_table thead th,
.woocommerce-checkout #order_review table.shop_table .order-total th,
.woocommerce-checkout #order_review table.shop_table .order-total td{
  color:var(--apv-dark)!important;
  font-weight:700!important;
}

/* ==========================================================================
   PAIEMENT - NE MASQUER AUCUNE METHODE
   ========================================================================== */

.woocommerce-checkout #payment{
  width:100%!important;
  padding:22px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:var(--apv-shadow)!important;
}

.woocommerce-checkout #payment ul.payment_methods{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  list-style:none!important;
}

.woocommerce-checkout #payment ul.payment_methods>li,
.woocommerce-checkout #payment li.wc_payment_method{
  display:block!important;
  width:100%!important;
  margin:0 0 12px!important;
  padding:14px!important;
  border:1px solid var(--apv-border-light)!important;
  border-radius:12px!important;
  background:#fff!important;
  visibility:visible!important;
  opacity:1!important;
}

.woocommerce-checkout #payment ul.payment_methods>li:last-child{
  margin-bottom:0!important;
}

.woocommerce-checkout #payment ul.payment_methods li>label{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  color:var(--apv-dark)!important;
  font-weight:700!important;
}

.woocommerce-checkout #payment div.payment_box{
  display:block;
  width:100%!important;
  margin:12px 0 0!important;
  padding:14px!important;
  border:1px solid var(--apv-border-light)!important;
  border-radius:10px!important;
  background:#fffdf8!important;
  color:var(--apv-text)!important;
  box-sizing:border-box!important;
}

.woocommerce-checkout #payment div.payment_box:before{
  display:none!important;
}

/* Stripe : préserver les conteneurs et toutes les méthodes */
.woocommerce-checkout #payment .payment_method_stripe,
.woocommerce-checkout #payment .payment_method_woocommerce_payments,
.woocommerce-checkout #payment .payment_method_ppcp-gateway,
.woocommerce-checkout #payment .payment_method_bacs,
.woocommerce-checkout #payment .payment_method_cheque,
.woocommerce-checkout #payment .payment_method_cod{
  display:block!important;
}

.woocommerce-checkout .wc-stripe-elements-field,
.woocommerce-checkout .wc-stripe-iban-element-field{
  display:block!important;
  width:100%!important;
  min-height:48px!important;
  padding:13px!important;
  border:1px solid var(--apv-border)!important;
  border-radius:9px!important;
  background:#fff!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}

.woocommerce-checkout .wc-stripe-elements-field.focused,
.woocommerce-checkout .wc-stripe-iban-element-field.focused{
  border-color:var(--apv-gold)!important;
  box-shadow:0 0 0 3px rgba(245,174,37,.14)!important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text{
  margin:18px 0!important;
  color:var(--apv-text)!important;
  font-size:14px!important;
  line-height:1.6!important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a{
  color:var(--apv-gold-hover)!important;
}

.woocommerce-checkout #place_order{
  width:100%!important;
  min-height:58px!important;
  margin:18px 0 0!important;
  background:var(--apv-gold)!important;
  border-color:var(--apv-gold)!important;
  color:#fff!important;
}

.woocommerce-checkout #place_order:hover,
.woocommerce-checkout #place_order:focus,
.woocommerce-checkout #place_order:active{
  background:var(--apv-gold-hover)!important;
  border-color:var(--apv-gold-hover)!important;
  color:#fff!important;
}

/* ==========================================================================
   TABLETTE
   ========================================================================== */

@media(max-width:1024px){
  .woocommerce-cart .cart-collaterals{
    grid-template-columns:1fr 1fr!important;
    gap:28px!important;
  }

  .woocommerce-cart .cross-sells ul.products{
    grid-template-columns:1fr!important;
  }

  .woocommerce-checkout #customer_details{
    gap:24px!important;
  }
}

/* ==========================================================================
   MOBILE
   ========================================================================== */

@media(max-width:768px){

  /* Panier */
  .woocommerce-cart table.shop_table_responsive{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

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

  .woocommerce-cart table.shop_table_responsive tr.cart_item{
    display:grid!important;
    grid-template-columns:82px minmax(0,1fr)!important;
    gap:16px!important;
    position:relative!important;
    width:100%!important;
    margin:0 0 20px!important;
    padding:18px!important;
    border:1px solid var(--apv-border)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:var(--apv-shadow)!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-remove{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    display:block!important;
    width:36px!important;
    padding:0!important;
    border:0!important;
    z-index:5!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-remove:before,
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail:before,
  .woocommerce-cart table.shop_table_responsive td.product-name:before{
    display:none!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-thumbnail{
    display:block!important;
    grid-column:1!important;
    grid-row:1!important;
    width:82px!important;
    padding:0!important;
    border:0!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-thumbnail img{
    display:block!important;
    width:82px!important;
    height:108px!important;
    margin:0!important;
    object-fit:cover!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-name{
    display:flex!important;
    align-items:center!important;
    grid-column:2!important;
    grid-row:1!important;
    min-height:108px!important;
    padding:0 40px 0 0!important;
    border:0!important;
    text-align:left!important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-price,
  .woocommerce-cart table.shop_table_responsive td.product-quantity,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    grid-column:1/-1!important;
    width:100%!important;
    padding:15px 0!important;
    border:0!important;
    border-top:1px solid var(--apv-border-light)!important;
    text-align:right!important;
  }

  .woocommerce-cart table.shop_table td.actions{
    display:block!important;
    padding:18px 0 0!important;
    border:0!important;
    background:transparent!important;
  }

  .woocommerce-cart table.shop_table td.actions .coupon{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    gap:10px!important;
  }

  .woocommerce-cart table.shop_table td.actions .coupon .input-text,
  .woocommerce-cart table.shop_table td.actions .coupon button.button,
  .woocommerce-cart table.shop_table td.actions>button.button{
    width:100%!important;
    margin:0!important;
  }

  .woocommerce-cart table.shop_table td.actions>button.button{
    margin-top:10px!important;
  }

  .woocommerce-cart .cart-collaterals{
    display:block!important;
    margin-top:35px!important;
  }

  .woocommerce-cart .cross-sells,
  .woocommerce-cart .cart_totals{
    width:100%!important;
  }

  .woocommerce-cart .cross-sells{
    margin-bottom:48px!important;
  }

  .woocommerce-cart .cross-sells h2,
  .woocommerce-cart .cart_totals h2{
    font-size:28px!important;
  }

  .woocommerce-cart .cross-sells ul.products{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .woocommerce-cart .cross-sells li.product a.woocommerce-LoopProduct-link>img{
    height:330px!important;
  }

  /* Checkout */
  .woocommerce-checkout #customer_details{
    display:block!important;
    width:100%!important;
    margin:28px 0 34px!important;
  }

  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2{
    width:100%!important;
    margin:0 0 30px!important;
  }

  .woocommerce-checkout #customer_details h3,
  .woocommerce-checkout #order_review_heading{
    font-size:24px!important;
  }

  .woocommerce-checkout form.checkout_coupon{
    padding:15px!important;
  }

  .woocommerce-checkout form.checkout_coupon .form-row{
    float:none!important;
    width:100%!important;
    margin:0 0 10px!important;
  }

  .woocommerce-checkout form.checkout_coupon .input-text,
  .woocommerce-checkout form.checkout_coupon button.button{
    width:100%!important;
  }

  .woocommerce-checkout #ship-to-different-address label{
    font-size:18px!important;
    line-height:1.3!important;
  }

  .woocommerce-checkout #order_review table.shop_table th,
  .woocommerce-checkout #order_review table.shop_table td{
    padding:14px 10px!important;
    font-size:13px!important;
  }

  .woocommerce-checkout #payment{
    padding:10px!important;
  }

  .woocommerce-checkout #payment ul.payment_methods>li,
  .woocommerce-checkout #payment li.wc_payment_method{
    padding:10px!important;
  }

  .woocommerce-checkout #payment div.payment_box{
    padding:10px!important;
  }

  .woocommerce-checkout .wc-stripe-elements-field,
  .woocommerce-checkout .wc-stripe-iban-element-field{
    min-width:0!important;
    width:100%!important;
    padding:10px!important;
  }

  .woocommerce-checkout #place_order{
    min-height:56px!important;
    font-size:17px!important;
  }
}
/* ===========================================================
   CHECKOUT FIX V2
=========================================================== */

/* Colonnes */
@media (min-width: 992px){

    .woocommerce-checkout #customer_details{
        display:flex!important;
        gap:60px!important;
        align-items:flex-start!important;
    }

    .woocommerce-checkout #customer_details>.col-1{
        flex:1 1 58%!important;
        max-width:58%!important;
    }

    .woocommerce-checkout #customer_details>.col-2{
        flex:1 1 42%!important;
        max-width:42%!important;
    }

}

/* Les champs prennent toujours toute la largeur */

.woocommerce-checkout .form-row,
.woocommerce-checkout .woocommerce-input-wrapper{
    width:100%!important;
}

.woocommerce-checkout input,
.woocommerce-checkout textarea,
.woocommerce-checkout select{
    width:100%!important;
    box-sizing:border-box!important;
}

/* Stripe : on retire les cartes que j'avais ajoutées */

.woocommerce-checkout #payment{
    background:#fff!important;
    border:1px solid #eadfcd!important;
    border-radius:14px!important;
    padding:22px!important;
}

.woocommerce-checkout #payment ul.payment_methods{
    border:0!important;
    margin:0!important;
    padding:0!important;
}

/* IMPORTANT : on enlève le style "carte" des méthodes */

.woocommerce-checkout #payment ul.payment_methods>li{
    border:none!important;
    background:transparent!important;
    padding:0!important;
    margin:0 0 18px!important;
    border-radius:0!important;
}

/* Stripe conserve son propre design */

.woocommerce-checkout #payment .payment_box{
    border:none!important;
    background:transparent!important;
    padding:12px 0 0!important;
    margin:8px 0 0!important;
    box-shadow:none!important;
}

/* On ne touche plus aux iframes Stripe */

.woocommerce-checkout iframe{
    max-width:100%!important;
}

/* Tableau commande */

.woocommerce-checkout #order_review table{
    width:100%!important;
    border:1px solid #eadfcd!important;
    border-radius:14px!important;
    overflow:hidden!important;
}

.woocommerce-checkout #order_review th,
.woocommerce-checkout #order_review td{
    padding:18px!important;
    background:#fff!important;
}

/* Bouton */

.woocommerce-checkout #place_order{
    width:100%!important;
    height:58px!important;
    border-radius:30px!important;
}

/* Mobile */

@media(max-width:991px){

    .woocommerce-checkout #customer_details{
        display:block!important;
    }

    .woocommerce-checkout #customer_details>.col-1,
    .woocommerce-checkout #customer_details>.col-2{
        max-width:100%!important;
        width:100%!important;
    }

}

/* =========================================================
   CHECKOUT DESKTOP
   Coordonnées à gauche / Commande et paiement à droite
   ========================================================= */

@media (min-width: 992px) {

  /* Colonne gauche : facturation, livraison et notes */
  body.woocommerce-checkout form.checkout #customer_details {
    display: block !important;
    float: left !important;
    width: 55% !important;
    max-width: 55% !important;
    margin: 30px 0 40px !important;
    padding-right: 35px !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout form.checkout #customer_details .col-1,
  body.woocommerce-checkout form.checkout #customer_details .col-2 {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.woocommerce-checkout form.checkout #customer_details .col-2 {
    margin-top: 26px !important;
  }

  /* Colonne droite : titre, récapitulatif et paiement */
  body.woocommerce-checkout form.checkout #order_review_heading {
    display: block !important;
    float: right !important;
    clear: none !important;
    width: 45% !important;
    max-width: 45% !important;
    margin: 30px 0 20px !important;
    padding-left: 15px !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout form.checkout #order_review {
    display: block !important;
    float: right !important;
    clear: right !important;
    width: 45% !important;
    max-width: 45% !important;
    margin: 0 0 40px !important;
    padding-left: 15px !important;
    box-sizing: border-box !important;
  }

  /* Conserver le récapitulatif et Stripe à la bonne largeur */
  body.woocommerce-checkout #order_review table.shop_table,
  body.woocommerce-checkout #order_review #payment {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Nettoyage après les colonnes */
  body.woocommerce-checkout form.checkout::after {
    display: table !important;
    clear: both !important;
    content: "" !important;
  }
}

/* =========================================================
   TABLETTE ET MOBILE
   Retour à l’empilement actuel
   ========================================================= */

@media (max-width: 991px) {

  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review {
    display: block !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* Supprime la bordure externe autour du formulaire Stripe */
#payment .wc-stripe-elements-field,
#payment .wc-stripe-elements-fieldset,
#payment .payment_box,
#payment .stripe-card-group {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}
#payment fieldset{
    border:none !important;
    box-shadow:none !important;
}
/* =========================================================
   STRIPE - CHAMPS PLUS LARGES ET MOBILE OPTIMISE
   ========================================================= */

/* Conteneur principal Stripe */
.woocommerce-checkout #payment .payment_box,
.woocommerce-checkout #payment .stripe-card-group,
.woocommerce-checkout #payment .wc-stripe-card-icons-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Champs Stripe */
.woocommerce-checkout .wc-stripe-elements-field,
.woocommerce-checkout .wc-stripe-iban-element-field {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    padding: 15px 16px !important;
    border: 1px solid var(--apv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

/* Zone carte bancaire */
.woocommerce-checkout .payment_method_stripe .form-row,
.woocommerce-checkout .payment_method_woocommerce_payments .form-row {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Desktop : numéro large, date et CVC côte à côte */
@media (min-width: 769px) {

    .woocommerce-checkout .payment_method_stripe .form-row-first,
    .woocommerce-checkout .payment_method_stripe .form-row-last,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row-first,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row-last {
        float: left !important;
        width: calc(50% - 8px) !important;
    }

    .woocommerce-checkout .payment_method_stripe .form-row-first,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row-first {
        margin-right: 16px !important;
    }
}

/* Mobile : tout sur une colonne */
@media (max-width: 768px) {

    .woocommerce-checkout #payment {
        padding: 14px !important;
    }

    .woocommerce-checkout #payment .payment_box {
        padding: 14px !important;
    }

    .woocommerce-checkout .payment_method_stripe .form-row,
    .woocommerce-checkout .payment_method_stripe .form-row-first,
    .woocommerce-checkout .payment_method_stripe .form-row-last,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row-first,
    .woocommerce-checkout .payment_method_woocommerce_payments .form-row-last {
        display: block !important;
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px !important;
    }

    .woocommerce-checkout .wc-stripe-elements-field,
    .woocommerce-checkout .wc-stripe-iban-element-field {
        min-height: 54px !important;
        padding: 16px !important;
        font-size: 16px !important;
    }

    /* Évite le zoom automatique d’iOS */
    .woocommerce-checkout input,
    .woocommerce-checkout select,
    .woocommerce-checkout textarea {
        font-size: 16px !important;
    }

    /* Carte Stripe moins étroite */
    .woocommerce-checkout #payment ul.payment_methods > li,
    .woocommerce-checkout #payment li.wc_payment_method {
        padding: 12px !important;
    }

    .woocommerce-checkout #payment div.payment_box {
        margin-top: 10px !important;
    }
}
#packlink-drop-off-picker{
    display:none !important;
}
/* =========================================================
   PAGE COMMANDE RECUE - MOBILE UNIQUEMENT
   ========================================================= */

@media (max-width: 768px) {

    body.woocommerce-order-received .woocommerce-order {
        width: 100%;
    }

    body.woocommerce-order-received .woocommerce-thankyou-order-received {
        margin: 0 0 22px;
        color: #555;
        font-size: 16px;
        line-height: 1.5;
    }

    body.woocommerce-order-received ul.woocommerce-order-overview {
        display: block !important;
        width: 100% !important;
        margin: 0 0 28px !important;
        padding: 18px !important;
        border: 1px solid #eadfcd !important;
        border-radius: 14px !important;
        background: #fff !important;
        box-shadow: 0 6px 22px rgba(45, 30, 10, 0.05) !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-order-received ul.woocommerce-order-overview li {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 18px !important;
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 14px 0 !important;
        border: none !important;
        border-bottom: 1px solid #f2ece3 !important;
        color: #777 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        text-transform: uppercase !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-order-received ul.woocommerce-order-overview li:last-child {
        border-bottom: none !important;
    }

    body.woocommerce-order-received ul.woocommerce-order-overview li strong {
        display: block !important;
        max-width: 62% !important;
        color: #222 !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        text-align: right !important;
        text-transform: none !important;
        overflow-wrap: anywhere !important;
    }

    body.woocommerce-order-received ul.woocommerce-order-overview li.woocommerce-order-overview__email strong {
        font-size: 14px !important;
    }

    body.woocommerce-order-received .woocommerce-order-details,
    body.woocommerce-order-received .woocommerce-customer-details {
        margin-top: 28px !important;
    }

    body.woocommerce-order-received .woocommerce-order-details h2,
    body.woocommerce-order-received .woocommerce-customer-details h2 {
        margin-bottom: 16px !important;
        color: #222 !important;
        font-size: 24px !important;
        line-height: 1.2 !important;
    }
}
/* =========================================================
   CORRECTION PRODUITS SIMILAIRES + TOTAL PANIER
   ========================================================= */

/* DESKTOP */
@media (min-width: 992px) {

    .woocommerce-cart .cart-collaterals {
        display: grid !important;
        grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr) !important;
        grid-template-areas: "cross totals" !important;
        align-items: start !important;
        gap: 40px !important;
        width: 100% !important;
        margin-top: 35px !important;
    }

    .woocommerce-cart .cross-sells {
        grid-area: cross !important;
        float: none !important;
        clear: none !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    .woocommerce-cart .cart_totals {
        grid-area: totals !important;
        float: none !important;
        clear: none !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    .woocommerce-cart .cross-sells ul.products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .woocommerce-cart .cross-sells ul.products::before,
    .woocommerce-cart .cross-sells ul.products::after {
        display: none !important;
        content: none !important;
    }

    .woocommerce-cart .cross-sells ul.products li.product {
        display: flex !important;
        flex-direction: column !important;
        float: none !important;
        clear: none !important;
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        margin: 0 !important;
    }

    .woocommerce-cart .cross-sells li.product
    a.woocommerce-LoopProduct-link {
        display: flex !important;
        flex: 1 1 auto !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .woocommerce-cart .cross-sells li.product
    a.woocommerce-LoopProduct-link > img {
        width: 100% !important;
        height: 260px !important;
        object-fit: contain !important;
    }

    .woocommerce-cart .cross-sells .woocommerce-loop-product__title {
        min-height: 66px !important;
    }

    .woocommerce-cart .cross-sells li.product > a.button,
    .woocommerce-cart .cross-sells .add_to_cart_button {
        margin-top: auto !important;
    }
}

/* MOBILE ET TABLETTE */
@media (max-width: 991px) {

    .woocommerce-cart .cart-collaterals {
        display: block !important;
        width: 100% !important;
        margin-top: 35px !important;
    }

    .woocommerce-cart .cross-sells,
    .woocommerce-cart .cart_totals {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .woocommerce-cart .cross-sells {
        margin-bottom: 45px !important;
    }

    .woocommerce-cart .cross-sells ul.products {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 22px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .woocommerce-cart .cross-sells ul.products li.product {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .woocommerce-cart .cross-sells li.product
    a.woocommerce-LoopProduct-link > img {
        width: 100% !important;
        height: 330px !important;
        object-fit: contain !important;
    }

    .woocommerce-cart .cross-sells .woocommerce-loop-product__title {
        min-height: auto !important;
    }
}