/* =====================================================================
   DTF PRINT — Page panier (/cart/)   PHP : inc/cart.php
   Les articles sont affichés en « cartes » (grille CSS) au lieu du tableau à 5 colonnes :
   ligne 1 : visuel · nom + prix unitaire · quantité · sous-total · supprimer
   ligne 2 : liste compacte des fichiers envoyés (nom · quantité · supprimer)
   ===================================================================== */
.woocommerce-cart {
  --n: #0d0625; --r: #e14a5c; --r-d: #c93a4c; --r-s: #fdecee; --v: #7354ef; --v-s: #f1eefe;
  --ink: #1c1a2b; --mut: #6b6880; --line: #e8e6f0; --surf: #f8f7fc; --ok: #15803d;
}

/* Le panier est dans un widget « Éditeur de texte » Elementor, qui ajoute des <p> et <br> parasites */
.woocommerce-cart .woocommerce-cart-form br,
.woocommerce-cart .cart_totals br,
.woocommerce-cart .return-to-shop br { display: none; }
.woocommerce-cart .woocommerce-cart-form .quantity > p,
.woocommerce-cart .woocommerce-cart-form .cart-actions > p { display: contents; margin: 0; }
.woocommerce-cart .woocommerce-cart-form td.product-name > p:empty,
.woocommerce-cart .wd-shipping-progress-bar p:empty,
.woocommerce-cart .cart_totals p:empty { display: none; }

/* ---------- Titre ---------- */
.dtfc-head { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; }
.dtfc-head h1 {
  margin: 0;
  font-family: var(--wd-title-font);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 800;
  color: var(--n);
}
.dtfc-count { padding: 3px 10px; border-radius: 999px; background: var(--v-s); color: var(--v); font-size: 13px; font-weight: 700; }

/* ---------- Programme fidélité (WPLoyalty) ----------
   Messages « Complétez votre commande et gagnez X points » et « Vous avez gagné X points…
   Cliquez ici ». WPLoyalty écrit ses styles en ligne : d'où les !important.
   On ne touche pas à « display » quand le message est masqué par le plugin. */
.woocommerce-cart .wlr-message-info:not([style*="display: none"]):not([style*="display:none"]) {
  flex: 1 1 100%;
  width: 100%;
  margin: 0 0 14px !important;
  padding: 12px 16px !important;
  gap: 12px;
  border: 1px solid #d9d2fc !important;
  border-radius: 14px !important;
  background: linear-gradient(90deg, var(--v-s), var(--r-s)) !important;
  color: var(--ink) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4;
}
/* deux messages à la suite : un seul bloc visuel */
.woocommerce-cart .wlr-message-info + .wlr-message-info:not([style*="display: none"]) {
  margin-top: -14px !important;
  border-top: 1px dashed #d9d2fc !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
.woocommerce-cart .wlr-message-info img {
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 4px;
  flex: 0 0 auto;
  border-radius: 10px !important;
  background: #fff;
  box-shadow: 0 4px 12px -6px rgba(13, 6, 37, .35);
}
.woocommerce-cart .wlr-message-info p { margin: 0 !important; }
.woocommerce-cart .wlr-message-info p::before {
  content: "Programme fidélité";
  display: block;
  margin-bottom: 1px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--v);
}
.woocommerce-cart .wlr-message-info + .wlr-message-info p::before { content: none; }
/* lien « Cliquez ici » (choisir ses récompenses) : bouton */
.woocommerce-cart #wlr-reward-link {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 5px 12px;
  border-radius: 8px;
  background: var(--v);
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none !important;
  white-space: nowrap;
}
.woocommerce-cart #wlr-reward-link:hover { background: #5b3fe0; }
/* si WPLoyalty affiche le message de récompense comme une notice WooCommerce */
.woocommerce-cart .woocommerce-info:has(#wlr-reward-link),
.woocommerce-cart .woocommerce-message:has(#wlr-reward-link) {
  border: 1px solid #d9d2fc;
  border-radius: 14px;
  background: linear-gradient(90deg, var(--v-s), var(--r-s));
  color: var(--ink);
}

/* ---------- Barre livraison offerte ---------- */
.woocommerce-cart .wd-shipping-progress-bar {
  margin-bottom: 14px;
  padding: 14px 18px;
  border: 1px solid var(--line) !important;
  border-radius: 14px;
  background: #fff;
}
.woocommerce-cart .wd-shipping-progress-bar .wd-progress-bar { margin: 0; padding: 0 !important; border: 0 !important; }
.woocommerce-cart .wd-shipping-progress-bar .progress-msg { font-size: 14px; color: var(--ink); }
.woocommerce-cart .wd-shipping-progress-bar .progress-msg .amount { color: var(--r); font-weight: 800; }
.woocommerce-cart .wd-shipping-progress-bar .progress-area { height: 8px; margin-top: 10px; border-radius: 99px; background: #e9e6f3; overflow: hidden; }
.woocommerce-cart .wd-shipping-progress-bar .progress-area { position: relative; padding: 0 !important; }
.woocommerce-cart .wd-shipping-progress-bar .progress-bar {
  /* remplit la jauge (la mise en page d'origine la décalait hors du cadre) */
  position: absolute;
  top: 0;
  left: 0;
  height: 100% !important;
  min-width: 8px;
  margin: 0 !important;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--v), var(--r));
  transition: width .4s ease;
}

/* ---------- Articles : cartes ---------- */
.woocommerce-cart table.cart,
.woocommerce-cart table.cart tbody { display: block; width: 100%; border: 0; background: none; }
.woocommerce-cart table.cart thead { display: none; }
.woocommerce-cart table.cart tr.cart_item {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 150px 120px 32px;
  grid-template-areas:
    "thumb name  qty sub remove"
    "thumb price qty sub remove"
    "files files files files files";
  column-gap: 16px;
  row-gap: 2px;
  align-items: center;
  margin: 0 0 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.woocommerce-cart table.cart tr.cart_item > td {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
}
.woocommerce-cart table.cart tr.cart_item > td::before { display: none !important; } /* libellés « Prix : » du mode mobile Woodmart */
.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; align-self: start; width: 64px; }
.woocommerce-cart table.cart td.product-thumbnail img {
  display: block;
  width: 64px !important;
  height: 64px !important;
  max-width: none;
  border-radius: 12px;
  object-fit: cover;
  background: var(--surf);
}
.woocommerce-cart table.cart tr.cart_item > td.product-name { display: contents !important; }
.woocommerce-cart table.cart td.product-name > a {
  grid-area: name;
  align-self: end;
  font-size: 15.5px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--n);
}
.woocommerce-cart table.cart td.product-name dl.variation { grid-area: files; margin: 6px 0 0; font-size: 12.5px; color: var(--mut); }
.woocommerce-cart table.cart td.product-price { grid-area: price; align-self: start; font-size: 13px; color: var(--mut); white-space: nowrap; }
.woocommerce-cart table.cart td.product-price::after { content: " l'unité"; }
.woocommerce-cart table.cart td.product-price .amount { font-weight: 700; color: var(--ink); }
.woocommerce-cart table.cart td.product-quantity { grid-area: qty; justify-self: center; }
.woocommerce-cart table.cart td.product-subtotal { grid-area: sub; justify-self: end; text-align: right; white-space: nowrap; }
.woocommerce-cart table.cart td.product-subtotal .amount { font-size: 17px; font-weight: 800; color: var(--n); }
.woocommerce-cart table.cart td.product-remove { grid-area: remove; justify-self: end; }
.woocommerce-cart table.cart td.product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  color: var(--mut) !important;
  font-size: 18px;
  transition: background-color .15s, color .15s;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover { background: var(--r-s); color: var(--r) !important; }

/* Infos ajoutées par d'autres extensions sous le nom du produit (ex. Build A Gang Sheet : « Nom du design », Aperçu | Modifier).
   td.product-name est en display: contents : sans règle, ces blocs tombaient dans la colonne de la vignette (64 px) et le texte était écrasé.
   On les place sous le nom, sur toute la largeur restante. */
.woocommerce-cart table.cart td.product-name > a:not(:first-of-type) { grid-area: auto; }
.woocommerce-cart table.cart td.product-name > *:not(a:first-of-type):not(dl.variation):not(ul.carticyfuwc_data_list):not(br):not(.screen-reader-text) {
  grid-column: 2 / -1;
  justify-self: start;
  max-width: 100%;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--mut);
  word-break: normal;
  overflow-wrap: anywhere;
}
.woocommerce-cart table.cart td.product-name > *:not(a:first-of-type) img { max-width: 120px; height: auto; border-radius: 8px; }
.woocommerce-cart table.cart td.product-name > *:not(a:first-of-type) a { color: var(--v) !important; font-weight: 700; }
@media (max-width: 768px) {
  .woocommerce-cart table.cart td.product-name > *:not(a:first-of-type):not(dl.variation):not(ul.carticyfuwc_data_list):not(br):not(.screen-reader-text) { grid-column: 1 / -1; }
}

/* prix barré (tarif dégressif) : ancien prix discret, nouveau prix en avant */
.woocommerce-cart table.cart del,
.woocommerce-cart .cart_totals del,
.woocommerce-cart .cart_totals del .amount,
.woocommerce-cart table.cart del .amount { margin-right: 4px; font-size: 12px !important; font-weight: 500 !important; color: var(--mut) !important; opacity: .5; }
/* textes « Le prix initial était… » réservés aux lecteurs d'écran : jamais visibles */
.woocommerce-cart .cart_totals .screen-reader-text,
.woocommerce-cart table.cart .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  white-space: nowrap !important;
}
.woocommerce-cart table.cart ins,
.woocommerce-cart .cart_totals ins { text-decoration: none; }
.woocommerce-cart table.cart td.product-subtotal ins .amount { color: var(--r); }
.dtfc-ttc { margin-left: 3px; font-size: 11px; font-weight: 600; color: var(--mut); }

/* quantité */
.woocommerce-cart table.cart .quantity { display: inline-flex; align-items: center; gap: 4px; }
.woocommerce-cart table.cart .quantity input.qty { width: 46px; height: 36px; border-radius: 8px; }
.woocommerce-cart table.cart .quantity .minus,
.woocommerce-cart table.cart .quantity .plus { width: 30px; height: 30px; border-radius: 8px; }
/* ligne avec fichiers : quantité = total des fichiers, affichée en texte (inc/cart.php) */
.dtfc-qty-hidden { display: none !important; }
.dtfc-qty-fixed { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.2; font-size: 13px; color: var(--mut); }
.dtfc-qty-fixed b { font-size: 17px; font-weight: 800; color: var(--n); }
.dtfc-qty-fixed { text-align: center; }
.dtfc-qty-fixed small { display: block; font-size: 11.5px; }

/* liste des fichiers envoyés */
.woocommerce-cart table.cart ul.carticyfuwc_data_list {
  grid-area: files;
  display: block;
  margin: 14px 0 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  list-style: none;
}
.woocommerce-cart table.cart ul.carticyfuwc_data_list::before {
  content: "Vos fichiers — quantité par fichier";
  display: block;
  padding: 8px 12px;
  background: var(--surf);
  border-bottom: 1px solid var(--line);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--mut);
}
.woocommerce-cart table.cart li.carticyfuwc_data_item_wrapper {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) 70px 30px;
  align-items: center;
  gap: 10px !important;
  margin: 0 !important;
  padding: 7px 8px 7px 12px;
  border: 0;
  border-top: 1px solid var(--line);
  background: #fff;
  box-shadow: none;
}
.woocommerce-cart table.cart li.carticyfuwc_data_item_wrapper:first-child { border-top: 0; }
.woocommerce-cart table.cart li.carticyfuwc_data_item_wrapper:hover { background: var(--surf); }
.woocommerce-cart table.cart li.carticyfuwc_data_item_wrapper::before {
  /* pastille « fichier reçu » */
  content: "";
  grid-column: 1;
  grid-row: 1;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #dcfce7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315803d' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.woocommerce-cart table.cart .carticyfuwc_data_item { display: contents !important; }
.woocommerce-cart table.cart .carticyfuwc_data_name {
  grid-column: 2;
  grid-row: 1;
  overflow: hidden;
  font-size: 13.5px;
  font-weight: 600 !important;
  color: var(--ink);
  white-space: nowrap;
  text-overflow: ellipsis;
  border: 0;
  padding: 0;
  background: none;
}
.woocommerce-cart table.cart .carticyfuwc_data_qty { grid-column: 3; grid-row: 1; display: block; }
.woocommerce-cart table.cart input.carticyfuwc-data-qty {
  width: 64px !important;
  height: 34px;
  padding: 0 6px;
  border: 1px solid var(--line) !important;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}
.woocommerce-cart table.cart input.carticyfuwc-data-qty:focus { border-color: var(--v); box-shadow: 0 0 0 3px var(--v-s); }
.woocommerce-cart table.cart .carticyfuwc_data_list .carticyfuwc-uploader-delete-file {
  grid-column: 4;
  grid-row: 1;
  justify-self: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: var(--mut);
}
.woocommerce-cart table.cart .carticyfuwc_data_list .carticyfuwc-uploader-delete-file:hover { background: var(--r-s); color: var(--r); opacity: 1; }

/* sécurité prix : message + bouton de commande bloqué pendant le recalcul (js/dtfprint-cart.js) */
.dtfc-sync-notice {
  margin: 0 0 14px;
  padding: 12px 16px;
  border: 1px solid #d9d2fc;
  border-radius: 12px;
  background: var(--v-s);
  font-size: 14px;
  line-height: 1.45;
  color: var(--ink);
}
.dtfc-sync-notice.is-error { border-color: #f5b5bd; background: var(--r-s); }
/* (ancien blocage du bouton de commande retiré : sécurité faite côté serveur) */

/* ---------- Ligne d'actions (code promo, continuer, vider) ---------- */
.woocommerce-cart table.cart tr.wd-cart-action-row { display: block; }
.woocommerce-cart table.cart tr.wd-cart-action-row td {
  display: block;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.woocommerce-cart-form .cart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border: 0 !important; padding: 0 !important; }
/* Code promo : champ + bouton sur une ligne ; le message d'erreur de WooCommerce (« Impossible d'appliquer… »)
   passe dessous, sur toute la largeur (avant : il se glissait à côté et écrasait le champ). */
.woocommerce-cart-form .cart-actions .coupon { display: flex; flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px !important; flex: 0 1 420px; margin: 0; padding: 0; border: 0; }
.woocommerce-cart-form .cart-actions .coupon input.input-text { flex: 1 1 0% !important; width: auto !important; min-width: 120px; height: 44px !important; min-height: 44px; border-radius: 10px; background: #fff; }
.woocommerce-cart-form .cart-actions .coupon button { flex: 0 0 auto !important; height: 44px !important; min-height: 44px; padding: 0 18px !important; border-radius: 10px; white-space: nowrap; text-transform: none !important; }
.woocommerce-cart-form .cart-actions .coupon .coupon-error-notice { flex: 1 1 100% !important; order: 3; margin: 0 !important; padding: 8px 12px; border-radius: 8px; background: var(--r-s); color: #b42336 !important; font-size: 13px; line-height: 1.4; }
.woocommerce-cart-form .cart-actions .coupon input.has-error { border-color: var(--r) !important; }
.dtfc-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; order: 3; }
.dtfc-continue { font-size: 14px; font-weight: 700; color: var(--v) !important; white-space: nowrap; }
.dtfc-continue:hover { text-decoration: underline; }

/* bouton « Vider le panier » (details/summary, sans JS) */
.dtf-empty-cart { position: relative; margin: 0; }
.dtf-empty-cart summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--mut);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  transition: border-color .15s, color .15s, background-color .15s;
}
.dtf-empty-cart summary::-webkit-details-marker { display: none; }
.dtf-empty-cart summary::before {
  content: "";
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.dtf-empty-cart summary:hover,
.dtf-empty-cart[open] summary { border-color: var(--r); color: var(--r); background: var(--r-s); }
.dtf-empty-cart[open] summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.dtf-empty-cart__confirm {
  position: absolute;
  z-index: 20;
  top: 100%;
  right: 0;
  display: grid;
  gap: 10px;
  width: 260px;
  padding: 14px;
  border: 1.5px solid var(--r);
  border-radius: 10px 0 10px 10px;
  background: #fff;
  box-shadow: 0 18px 40px -20px rgba(13, 6, 37, .35);
  font-size: 13.5px;
  line-height: 1.4;
  color: var(--ink);
}
.dtf-empty-cart__yes {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border-radius: 8px;
  background: var(--r);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
}
.dtf-empty-cart__yes:hover { background: var(--r-d); }

/* ---------- Total panier ---------- */
/* Pas de colonne « collante » : quand le bloc total est plus haut que l'écran, le bouton
   « Valider la commande » restait hors de portée au scroll. */
.woocommerce-cart .cart_totals,
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-totals-inner { position: static !important; top: auto !important; }
.woocommerce-cart .cart_totals .cart-totals-inner {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 40px -30px rgba(13, 6, 37, .35);
}
.woocommerce-cart .cart_totals h2 {
  margin-bottom: 6px;
  font-family: var(--wd-title-font);
  font-size: 20px;
  font-weight: 800;
  text-transform: none;
  color: var(--n);
}
/* chaque ligne : libellé à gauche, montant à droite (même pour les libellés longs) */
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals table.shop_table tbody { display: block; width: 100%; }
.woocommerce-cart .cart_totals table.shop_table tr {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.woocommerce-cart .cart_totals table.shop_table tr > th,
.woocommerce-cart .cart_totals table.shop_table tr > td {
  display: block;
  width: auto;
  padding: 0;
  border: 0;
}
.woocommerce-cart .cart_totals table.shop_table tr > th { flex: 1 1 auto; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--mut); text-align: left; }
.woocommerce-cart .cart_totals table.shop_table tr > td { flex: 0 0 auto; text-align: right; white-space: nowrap; font-weight: 700; color: var(--ink); }
.woocommerce-cart .cart_totals table.shop_table tr > td::before { display: none !important; }
/* économie (Advanced Dynamic Pricing) en vert */
.woocommerce-cart .cart_totals table.shop_table tr:not(.cart-subtotal):not(.shipping):not(.order-total):not(.wd-del-overall):not(.tax-total):not(.fee) > td { color: var(--ok); }
/* livraison : libellé au-dessus, options sur toute la largeur */
.woocommerce-cart .cart_totals table.shop_table tr.shipping { display: block; }
.woocommerce-cart .cart_totals table.shop_table tr.shipping > th { margin-bottom: 10px; }
.woocommerce-cart .cart_totals table.shop_table tr.shipping > td { text-align: left; white-space: normal; font-weight: 400; }
.woocommerce-cart #shipping_method { display: grid; gap: 8px; margin: 0; padding: 0; text-align: left; list-style: none; }
.woocommerce-cart #shipping_method li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 11px 12px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  font-size: 13.5px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.woocommerce-cart #shipping_method li:has(input:checked) { border-color: var(--v); background: var(--v-s); }
.woocommerce-cart #shipping_method li input { flex: 0 0 auto; order: -1; margin: 0; accent-color: var(--v); }
.woocommerce-cart #shipping_method li label { flex: 1; margin: 0; font-weight: 600; color: var(--ink); cursor: pointer; }
.woocommerce-cart #shipping_method li label .amount { color: var(--ink); white-space: nowrap; }
.woocommerce-cart .woocommerce-shipping-destination { margin: 8px 0 4px; font-size: 12.5px; text-align: left; color: var(--mut); }
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart .shipping-calculator-button { font-size: 13px; text-align: left; }
/* total */
.woocommerce-cart .cart_totals table.shop_table tr.order-total { align-items: center; border-bottom: 0; }
.woocommerce-cart .cart_totals table.shop_table tr.order-total > th { font-size: 16px; color: var(--n); }
.woocommerce-cart .cart_totals .order-total td strong .amount { font-size: 28px; font-weight: 800; color: var(--r); }
.woocommerce-cart .cart_totals .order-total .includes_tax { display: block; font-size: 12px; font-weight: 500; color: var(--mut); }
/* « Montant économisé avec nos tarifs dégressifs » (Advanced Dynamic Pricing, classe order-total adp-discount) */
.woocommerce-cart .cart_totals table.shop_table tr.adp-discount { align-items: baseline; border-bottom: 1px solid var(--line); }
.woocommerce-cart .cart_totals table.shop_table tr.adp-discount > th { font-size: 14px; color: var(--mut); }
.woocommerce-cart .cart_totals table.shop_table tr.adp-discount > td,
.woocommerce-cart .cart_totals table.shop_table tr.adp-discount > td .amount { font-size: 14px !important; font-weight: 700; color: var(--ok) !important; }
.woocommerce-cart .cart_totals table.shop_table tr.adp-discount > td::before { content: "− " !important; display: inline !important; }

/* livraison estimée */
.woocommerce-cart .cart_totals table.shop_table tr.wd-del-overall { display: block; padding: 0 0 12px; border: 0; }
.woocommerce-cart .cart_totals table.shop_table tr.wd-del-overall > td { white-space: normal; text-align: left; font-weight: 400; }
.woocommerce-cart .wd-del-overall .wd-est-del { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--surf); font-size: 13px; }

/* bouton de commande */
.woocommerce-cart .wc-proceed-to-checkout { position: relative; z-index: 2; padding-top: 6px; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  border-radius: 12px;
  background: var(--r);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  text-transform: none;
  box-shadow: 0 12px 24px -12px rgba(225, 74, 92, .8);
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover { background: var(--r-d); }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button::after { content: " →"; margin-left: 6px; }

/* réassurance */
.dtfc-reassure {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 16px 18px;
  border-radius: 14px;
  background: var(--surf);
  list-style: none;
  font-size: 13px;
  line-height: 1.4;
  color: var(--mut);
}
.dtfc-reassure li { position: relative; padding-left: 22px; }
.dtfc-reassure li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 5px;
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--ok);
  border-bottom: 2px solid var(--ok);
  transform: rotate(-45deg);
}
.dtfc-reassure b { color: var(--ink); }

/* ---------- Panier vide ---------- */
.dtfc-head--empty { justify-content: center; }
.woocommerce-cart .wd-empty-block-text { display: none; } /* phrase redondante sous « panier vide » */
.dtfc-empty { margin: 8px auto 24px; text-align: center; }
.dtfc-empty p { margin: 0 0 12px; font-weight: 700; color: var(--n); }
.dtfc-empty ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.dtfc-empty a {
  display: inline-block;
  padding: 10px 16px;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  color: var(--n) !important;
}
.dtfc-empty a:hover { border-color: var(--v); background: var(--v-s); }

/* ---------- Tablette / mobile ---------- */
@media (max-width: 768px) {
  .woocommerce-cart table.cart tr.cart_item {
    grid-template-columns: 56px minmax(0, 1fr) 32px;
    grid-template-areas:
      "thumb name  remove"
      "thumb price remove"
      "files files files"
      "qty   sub   sub";
    row-gap: 4px;
    padding: 14px;
  }
  .woocommerce-cart table.cart td.product-thumbnail,
  .woocommerce-cart table.cart td.product-thumbnail img { width: 56px !important; height: 56px !important; }
  .woocommerce-cart table.cart td.product-quantity { justify-self: start; margin-top: 12px; }
  .woocommerce-cart table.cart td.product-subtotal { margin-top: 12px; }
  .woocommerce-cart table.cart tr.cart_item > td.product-subtotal::before {
    content: "Sous-total " !important;
    display: inline !important;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--mut);
  }
  .dtfc-qty-fixed { flex-direction: row; align-items: baseline; gap: 6px; text-align: left; white-space: nowrap; }
  .dtfc-qty-fixed small { display: inline; }
  .woocommerce-cart-form .cart-actions .coupon { flex: 1 1 100%; }
  .woocommerce-cart-form .cart-actions .coupon button { flex: 1 1 100% !important; }
  .dtfc-actions { width: 100%; margin-left: 0; justify-content: space-between; flex-wrap: wrap; }
  .dtf-empty-cart__confirm { width: 240px; }
}
@media (max-width: 480px) {
  .woocommerce-cart table.cart li.carticyfuwc_data_item_wrapper { grid-template-columns: 20px minmax(0, 1fr) 60px 28px; gap: 8px !important; }
  .woocommerce-cart table.cart input.carticyfuwc-data-qty { width: 56px; }
  .dtfc-actions { flex-direction: column; align-items: stretch; }
  .dtfc-continue { text-align: center; }
  .dtf-empty-cart summary { width: 100%; justify-content: center; }
  .dtf-empty-cart__confirm { position: static; width: auto; border-radius: 0 0 10px 10px; border-top: 0; }
}
