/* =========================================================
   WPZ — Woo Cart (Premium+++)
   File: /woocommerce/assets/css/cart.css
   Dépend: variables.css + styles.css
   Scope: .woocommerce-cart .wpz-cart
   ========================================================= */

/* =========================================================
   0) Vars locales (hauteurs & offsets)
   ========================================================= */
:root{
  --wpz-cartbar-h: 56px;     /* hauteur bannière fixe */
  --wpz-adminbar-h: 32px;    /* WP admin bar desktop */
  --wpz-cartbar-z: 9999;
}

/* Admin bar WP mobile */
@media (max-width: 782px){
  :root{ --wpz-adminbar-h: 46px; }
}

/* =========================================================
   1) Base page
   ========================================================= */
.woocommerce-cart .wpz-cart{ background: var(--bg); }

/* IMPORTANT:
   - On supprime le padding-top du container car la barre fixe gère déjà l'offset
   - Sinon sur mobile tu as "trop loin" (double padding)
*/
.wpz-cart .il-container{
  padding-top: 1rem;
  padding-bottom: 56px;
}

/* Décalage global sous la barre fixe */

/* Sécurité anti scroll-x */
.woocommerce-cart .wpz-cart,
.woocommerce-cart .wpz-cart *{
  box-sizing: border-box;
}
.woocommerce-cart .wpz-cart{
  overflow-x: clip;
}
@supports not (overflow: clip){
  .woocommerce-cart .wpz-cart{ overflow-x: hidden; }
}

/* ======================================================
   2) NOTICES — Override total
   ====================================================== */
.woocommerce-cart .woocommerce-notices-wrapper,
.wpz-cart .woocommerce-notices-wrapper{
  margin: 12px 0 14px;
  display: grid;
  gap: 10px;
}

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error{
  border: 1px solid var(--line) !important;
  border-left: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.92) !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 12px 14px !important;
  margin: 0 !important;
  list-style: none !important;
  font-weight: 800 !important;
  color: var(--text) !important;
}

.woocommerce-cart .woocommerce-message{
  border-color: rgba(23,160,81,.22) !important;
  background: rgba(23,160,81,.08) !important;
}
.woocommerce-cart .woocommerce-info{
  border-color: rgba(47,128,237,.22) !important;
  background: rgba(47,128,237,.08) !important;
}
.woocommerce-cart .woocommerce-error{
  border-color: rgba(235,87,87,.28) !important;
  background: rgba(235,87,87,.10) !important;
}
.woocommerce-cart .woocommerce-error li{
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-error::before{
  display: none !important;
}

.woocommerce-cart .woocommerce-message a,
.woocommerce-cart .woocommerce-info a,
.woocommerce-cart .woocommerce-error a{
  color: inherit !important;
  text-decoration: underline !important;
  font-weight: 950 !important;
}

/* ======================================================
   3) FALLBACK empty cart (Woo natif)
   ====================================================== */
.woocommerce-cart .cart-empty,
.woocommerce-cart .woocommerce-info.cart-empty{
  border-radius: 16px !important;
  box-shadow: var(--shadow-sm) !important;
}

.woocommerce-cart .return-to-shop{
  margin: 10px 0 0 !important;
}

.woocommerce-cart .return-to-shop a.button{
  height: 54px !important;
  border-radius: 16px !important;
  background: var(--brand-green) !important;
  color: #fff !important;
  font-family: var(--font-head) !important;
  font-weight: 950 !important;
  border: 1px solid transparent !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 18px !important;
  text-decoration: none !important;
}

/* ======================================================
   4) HERO + layout
   ====================================================== */
.wpz-cart__hero{
  border: 1px solid var(--line);
  border-radius: var(--r-20);
  background:
    radial-gradient(980px 520px at 14% 20%, var(--alpha-brand-14), transparent 62%),
    radial-gradient(980px 520px at 86% 26%, rgba(47,128,237,.10), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,1));
  box-shadow: var(--shadow-sm);
  padding: 16px;
  margin-bottom: 14px;
}

.wpz-cart__hero-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  min-width: 0;
}

@media (max-width: 680px){
  .wpz-cart__hero-inner{ flex-direction: column; align-items: stretch; }
}

.wpz-cart__h1{
  margin: 0;
  font-size: clamp(26px, 4.2vw, 44px);
  letter-spacing: -0.02em;
}

.wpz-cart__sub{
  margin: 6px 0 0;
  color: var(--muted);
  font-weight: 800;
}

/* Grid */
.wpz-cart__grid{
  display:grid;
  grid-template-columns: 1.55fr .85fr;
  gap: 14px;
  align-items:start;
}
@media (max-width: 980px){
  .wpz-cart__grid{ grid-template-columns: 1fr; }
}

/* Cards */
.wpz-cart__card,
.wpz-cart__side-card{
  border: 1px solid var(--line);
  border-radius: var(--r-20);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.wpz-cart__card{ padding: 12px; }
.wpz-cart__side-card{ padding: 14px; }

.wpz-cart__list{ display:grid; gap: 12px; }

/* Rows */
.wpz-cart__row{
  display:grid;
  grid-template-columns: 1fr 270px;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-16);
  background: rgba(255,255,255,.92);
  min-width: 0;
}
@media (max-width: 680px){
  .wpz-cart__row{ grid-template-columns: 1fr; }
}

/* Product cell */
.wpz-cart__prod{
  display:grid;
  grid-template-columns: 78px 1fr;
  gap: 12px;
  align-items:center;
  min-width: 0;
}

.wpz-cart__thumb img{
  width: 78px;
  height: 78px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  display:block;
}

.wpz-cart__name{
  font-family: var(--font-head);
  font-weight: 950;
  font-size: 18px;
  line-height: 1.15;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.wpz-cart__name a{
  color: var(--text);
  text-decoration: none;
}
@media (hover:hover){
  .wpz-cart__name a:hover{ color: var(--brand-green); }
}

.wpz-cart__data{
  color: var(--muted);
  font-size: 13px;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.wpz-cart__data dl,
.wpz-cart__data p{ margin: 0; }

/* Remove */
.wpz-cart__remove{ margin-top: 10px; }

.wpz-cart__remove-link{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(16,19,35,.02);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: 22px;
  line-height: 1;
  color: var(--text);
  text-decoration:none;
  transition: transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

@media (hover:hover){
  .wpz-cart__remove-link:hover{
    transform: translateY(-1px);
    border-color: rgba(23,160,81,.22);
    background: rgba(23,160,81,.08);
    color: var(--brand-green);
    box-shadow: var(--shadow-sm);
  }
}

/* Stats */
.wpz-cart__stats{
  display:grid;
  gap: 10px;
  align-content:start;
  min-width: 0;
}

@media (max-width: 680px){
  .wpz-cart__stats{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  .wpz-cart__stats .wpz-cart__stat:last-child{ grid-column: 1 / -1; }
}

.wpz-cart__stat{
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: rgba(16,19,35,.02);
  min-width: 0;
}

.wpz-cart__stat .k{
  font-size: 12px;
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.wpz-cart__stat .v{
  margin-top: 4px;
  font-family: var(--font-head);
  font-weight: 950;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Qty input */
.wpz-cart .quantity{ display:flex; align-items:center; }

.wpz-cart .quantity input.qty{
  width: 86px;
  height: 46px;
  border-radius: var(--r-12);
  border: 1px solid var(--line-2);
  background: #fff;
  font-weight: 900;
  text-align: center;
  outline: none;
}

.wpz-cart .quantity input.qty:focus{
  border-color: rgba(23,160,81,.35);
  box-shadow: var(--focus);
}

/* Actions */
.wpz-cart__actions{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
}

/* Coupon */
.wpz-cart__coupon{
  margin-top: 14px;
  padding: 16px;
}

.wpz-cart__coupon-title{
  font-family: var(--font-head);
  font-weight: 950;
  font-size: 18px;
}

.wpz-cart__coupon-sub{
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.wpz-cart__coupon-row{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
}

.wpz-cart__coupon-input{
  height: 46px;
  border-radius: var(--r-12);
  border: 1px solid var(--line-2);
  background: #fff;
  padding: 0 12px;
  min-width: 240px;
  outline: none;
  max-width: 100%;
}

@media (max-width: 520px){
  .wpz-cart__coupon-input{ min-width: 0; width: 100%; }
}

.wpz-cart__coupon-input:focus{
  border-color: rgba(23,160,81,.35);
  box-shadow: var(--focus);
}

/* Sidebar totals */
.wpz-cart__side .cart_totals > h2{
  margin: 0 0 12px;
  font-family: var(--font-head);
  font-weight: 950;
  letter-spacing: -0.01em;
}

.wpz-cart__side .cart_totals table{
  margin: 0 0 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  background: rgba(16,19,35,.02);
  max-width: 100%;
}

.wpz-cart__side .wc-proceed-to-checkout a.checkout-button,
.wpz-cart__side a.checkout-button,
.woocommerce-cart a.checkout-button{
  height: 56px !important;
  border-radius: 18px !important;
  background: var(--brand-green) !important;
  color: #fff !important;
  font-family: var(--font-head) !important;
  font-weight: 950 !important;
  border: 1px solid transparent !important;
  box-shadow: 0 14px 30px rgba(23,160,81,.22) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration: none !important;
}

/* Empty */
.wpz-cart__empty{ padding: 8px 0; }

.wpz-cart__empty-card{
  border: 1px solid var(--line);
  border-radius: var(--r-20);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  padding: 18px;
  text-align: center;
}

.wpz-cart__empty-title{
  margin: 0 0 6px;
  font-family: var(--font-head);
  font-weight: 900;
}

.wpz-cart__empty-sub{
  margin: 0 0 14px;
  color: var(--muted);
}

/* Sticky side */
@media (min-width: 981px){
  .wpz-cart__side{
    position: sticky;
    top: 16px;
    align-self: start;
  }
}

@media (max-width: 520px){
  .wpz-cart__card{ padding: 10px; }
  .wpz-cart__row{ padding: 12px; }
  .wpz-cart__thumb img{ width: 72px; height: 72px; }
}

/* ======================================================
   5) TRUST BLOCKS — Premium (1 seule icône, celle du HTML)
   ====================================================== */

.wpz-cart__trust{
  margin-top: 16px;
  display: grid;
  gap: 12px;
}

/* Card */
.wpz-cart__trust-item{
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92));
  box-shadow: var(--shadow-sm);

  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: start;
}

/* IMPORTANT: on tue l'ancienne icône pseudo */
.wpz-cart__trust-item::before{ display:none !important; content:none !important; }

/* Icône (la vraie, celle du HTML) */
.wpz-cart__trust-ico{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(23,160,81,.14);
  background: rgba(23,160,81,.10);
  color: var(--brand-green);

  display: grid;
  place-items: center;

  font-size: 20px;
  line-height: 1;
}

/* Texte */
.wpz-cart__trust-txt strong{
  display: block;
  font-family: var(--font-head);
  font-weight: 950;
  font-size: 15px;
  margin: 0 0 4px;
  letter-spacing: -0.01em;
}
.wpz-cart__trust-txt span{
  display: block;
  font-size: 13px;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.35;
}



/* =========================================================
   8) MOBILE — CTA "Valider la commande" fixed bottom
   (scopé dans .wpz-cart__side pour éviter de casser ailleurs)
   ========================================================= */

@media (max-width: 980px){

  /* On réserve de la place en bas pour le bouton fixed */
  .wpz-standalone-main{
    padding-bottom: 92px;
  }

  /* Barre fixe bottom */
  .wpz-cart__side .wc-proceed-to-checkout{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9998;
    padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 26px rgba(16,19,35,.08);
  }

  /* Le bouton prend toute la largeur */
  .wpz-cart__side .wc-proceed-to-checkout a.checkout-button{
    width: 100% !important;
    margin: 0 !important;
  }
}

/* =========================================================
   6) HEADER FIXE "Retour" — Premium + admin-bar aware
   ========================================================= */
.wpz-cart-bar{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--wpz-cartbar-z);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 26px rgba(16,19,35,.06);
  height: var(--wpz-cartbar-h);
  display: flex;
  align-items: center;
}

.admin-bar .wpz-cart-bar{
  top: var(--wpz-adminbar-h);
}

.wpz-cart-bar__inner{
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;

  /* Plus compact que ton ancienne version */
  padding: 0 var(--gutter);
}

/* Back / Shop */
.wpz-cart-bar__back,
.wpz-cart-bar__shop{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;

  font-family: var(--font-head);
  font-weight: 950;
  color: var(--text);
  white-space: nowrap;

  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(16,19,35,.02);

  transition: transform var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease),
              background var(--t-fast) var(--ease),
              box-shadow var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease);
}

@media (hover:hover){
  .wpz-cart-bar__back:hover,
  .wpz-cart-bar__shop:hover{
    transform: translateY(-1px);
    border-color: rgba(23,160,81,.22);
    background: rgba(23,160,81,.08);
    color: var(--brand-green);
    box-shadow: var(--shadow-sm);
  }
}

.wpz-cart-bar__title{
  text-align: center;
  line-height: 1.05;
  min-width: 0;
}

.wpz-cart-bar__title strong{
  display:block;
  font-family: var(--font-head);
  font-weight: 950;
  letter-spacing: -0.01em;
}

.wpz-cart-bar__title span{
  display:block;
  font-size: 12px;
  color: var(--muted);
  font-weight: 800;
}

/* Mobile: bouton retour compact */
@media (max-width: 520px){
  .wpz-cart-bar__back span{ display:none; }
  .wpz-cart-bar__back,
  .wpz-cart-bar__shop{
    height: 38px;
    padding: 0 10px;
  }
}

/* =========================================================
   7) SAFETY — éviter tout overflow Woo natif
   ========================================================= */
.wpz-cart a,
.wpz-cart p,
.wpz-cart td,
.wpz-cart th,
.wpz-cart .amount{
  overflow-wrap: anywhere;
  word-break: break-word;
}

.wpz-cart table{
  max-width: 100%;
}

.wpz-cart input,
.wpz-cart select,
.wpz-cart textarea{
  max-width: 100%;
}



@media (max-width: 680px){
  .wpz-cart__hero{ display:none; }
}


