/* ============================================
   GRAVANO — PANIER (cossu, fluide, rassurant)
   Chargé sur is_cart(). Ambiance chaude + or + relief, mais épuré :
   uniquement l'essentiel, ordre d'actions logique, zéro friction.
   ============================================ */

/* ---- Fond chaud (même « soirée qui avance » que la fiche) ---- */
body.woocommerce-cart,
body.woocommerce-cart #main-container,
body.woocommerce-cart #main{
  background:linear-gradient(180deg,
    var(--gv-ivoire) 0%, var(--gv-nude) 45%, var(--gv-nude-fonce) 78%, var(--gv-terracotta) 100%) !important;
}
body.woocommerce-cart #main{ padding-top:86px; }
/* ⚠️ La vraie classe Blocksy est .page-title dans .entry-header (comme sur le
   checkout, cf. inc/checkout.php) — .entry-title/.page-header ne matchaient
   jamais rien, le titre "Panier" restait affiché, brut et peu élégant
   (Florient 25/07). On masque le wrapper entier (ne contient que le titre)
   et on resserre le padding-top d'autant pour remonter le contenu. */
body.woocommerce-cart .entry-header,
body.woocommerce-cart .page-title{ display:none; }

/* ---- Footer Blocksy masqué (footer Gravano posé via wp_footer) ---- */
body.woocommerce-cart #footer,
body.woocommerce-cart .ct-footer{ display:none !important; }

/* ============ CADRE ARTICLES ============ */
body.woocommerce-cart .woocommerce-cart-form{
  background:var(--gv-blanc);border:1px solid var(--gv-nude-fonce);border-top:3px solid var(--gv-or);
  border-radius:16px;padding:clamp(1rem,2vw,1.8rem);
  box-shadow:0 2px 4px rgba(16,31,37,.05),0 24px 60px -22px rgba(35,79,117,.24);
}
body.woocommerce-cart table.cart{ margin:0;border:none;background:none; }
body.woocommerce-cart table.cart thead th{
  font-family:'Figtree',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:#7D8A9A;font-weight:600;border:none;padding:.4rem .6rem 1rem;
}
body.woocommerce-cart table.cart td{ border:none;border-top:1px solid var(--gv-nude);padding:1.1rem .6rem;vertical-align:middle;background:none; }
body.woocommerce-cart table.cart tr:first-child td{ border-top:none; }
body.woocommerce-cart .product-thumbnail img{
  width:82px;height:82px;object-fit:cover;border-radius:12px;border:1px solid var(--gv-nude);
  box-shadow:0 2px 6px rgba(16,31,37,.12);
}
body.woocommerce-cart td.product-name{ font-family:'Figtree',sans-serif; }
body.woocommerce-cart td.product-name a{
  font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:600;color:var(--gv-encre);text-decoration:none;line-height:1.15;
}
body.woocommerce-cart td.product-name a:hover{ color:var(--gv-grenat); }
body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal{ font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--gv-grenat);font-size:1.1rem; }
body.woocommerce-cart .product-remove a{
  color:#9AA7B7 !important;font-size:1.1rem;transition:color .2s ease;
}
body.woocommerce-cart .product-remove a:hover{ color:var(--gv-grenat) !important; }

/* ---- « Mettre à jour » : discret (secondaire). Le champ quantité reste clair. ---- */
body.woocommerce-cart button[name="update_cart"]{
  background:none !important;border:1px solid var(--gv-nude-fonce) !important;color:#7D8A9A !important;
  font-size:.72rem !important;letter-spacing:.08em;padding:.55rem 1.1rem !important;
}
body.woocommerce-cart button[name="update_cart"]:disabled{ opacity:.4;cursor:default; }

/* ============ NOTICE DE SUPPRESSION (« X supprimé. Annuler ? ») ============
   Par défaut WooCommerce l'affiche en gris/bleu, hors charte — restylée aux
   couleurs boutique + une vraie barre de compte à rebours qui se vide, pour
   marquer la sensation de perte SANS jamais empêcher l'annulation (le lien
   « Annuler ? » reste cliquable tout du long). Disparaît doucement au bout
   d'environ 4,5s (Florient 25/07) — voir le JS dans inc/panier.php. */
body.woocommerce-cart .woocommerce-message{
  position:relative;overflow:hidden;
  display:flex;align-items:center;flex-wrap:wrap;gap:.9rem;
  background:linear-gradient(135deg,var(--gv-terracotta,#7AA4D9),var(--gv-grenat,#234F75));
  border:none;color:#fff;font-family:'Figtree',sans-serif;font-size:.95rem;
  border-radius:14px;padding:1rem 1.2rem;margin:0 0 1.4rem;
  box-shadow:0 10px 24px -14px rgba(16,34,46,.55);
  animation:gv-notice-in .35s ease;
}
/* ⚠️ WooCommerce pose sa propre icône cloche via ::before en position:absolute
   + une police "woo" dédiée, pensée pour l'ancien padding-left par défaut.
   Notre ::before à nous (icône ⏳) entrait en collision avec elle → on
   supprime celle de WooCommerce plutôt que de superposer deux icônes. */
body.woocommerce-cart .woocommerce-message::before{ content:none !important; }
body.woocommerce-cart .woocommerce-message a.restore-item{
  display:inline-block;background:linear-gradient(160deg,#F0D77E,var(--gv-or,#C9A227) 55%,#A6801D);
  color:#1C2E3A !important;font-weight:700;text-decoration:none !important;
  padding:.4rem 1.1rem;border-radius:999px;box-shadow:0 3px 0 #8a6a17;
  transition:transform .15s ease;margin-left:auto;
}
body.woocommerce-cart .woocommerce-message a.restore-item:hover{ transform:translateY(-1px); }
/* Barre de compte à rebours : pleine largeur au départ, se vide vers la droite. */
body.woocommerce-cart .woocommerce-message::after{
  content:'';position:absolute;left:0;bottom:0;height:3px;width:100%;
  background:rgba(255,255,255,.8);transform-origin:left;
  animation:gv-notice-countdown 4.5s linear forwards;
}
body.woocommerce-cart .woocommerce-message.gv-notice-leaving{
  animation:gv-notice-out .45s ease forwards;
}
@keyframes gv-notice-in{ from{opacity:0;transform:translateY(-6px);} to{opacity:1;transform:translateY(0);} }
@keyframes gv-notice-out{ to{opacity:0;transform:translateY(-6px);max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;} }
@keyframes gv-notice-countdown{ from{transform:scaleX(1);} to{transform:scaleX(0);} }
@media(prefers-reduced-motion:reduce){
  body.woocommerce-cart .woocommerce-message,
  body.woocommerce-cart .woocommerce-message::after{ animation:none; }
}

/* ============ CODE PROMO — DISCRET (repliable) ============ */
body.woocommerce-cart .gv-coupon-toggle{
  display:inline-block;background:none;border:none;cursor:pointer;
  font-family:'Figtree',sans-serif;font-size:.82rem;color:#7D8A9A;text-decoration:underline;
  padding:.4rem 0;margin-top:.4rem;
}
body.woocommerce-cart .gv-coupon-toggle:hover{ color:var(--gv-grenat); }
body.woocommerce-cart .gv-coupon-toggle::before{ content:"＋ "; }
body.woocommerce-cart .gv-coupon-toggle.gv-open::before{ content:"− "; }
body.woocommerce-cart .coupon.gv-coupon-collapsed{ display:none !important; }
body.woocommerce-cart .coupon.gv-coupon-collapsed.gv-coupon-open{ display:flex !important;gap:.6rem;margin-top:.6rem;max-width:420px; }
body.woocommerce-cart .coupon input.input-text{
  border:1px solid var(--gv-nude-fonce) !important;border-radius:10px !important;background:var(--gv-ivoire) !important;
  padding:.7rem .9rem !important;font-family:'Figtree',sans-serif;
}

/* ============ RÉCAP TOTAUX — CADRE COSSU ============ */
body.woocommerce-cart .cart_totals{
  background:linear-gradient(160deg,var(--gv-blanc),var(--gv-ivoire));
  border:1px solid var(--gv-nude-fonce);border-top:3px solid var(--gv-or);border-radius:16px;
  padding:clamp(1.2rem,2vw,1.8rem);
  box-shadow:0 2px 4px rgba(16,31,37,.05),0 24px 60px -22px rgba(35,79,117,.28);
}
body.woocommerce-cart .cart_totals h2{
  font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.5rem;color:var(--gv-encre);margin:0 0 1rem;
}
body.woocommerce-cart .cart_totals table{ border:none;margin:0; }
body.woocommerce-cart .cart_totals th{
  font-family:'Figtree',sans-serif;font-weight:500;color:#626D7A;border:none;padding:.6rem 0;text-align:left;
}
body.woocommerce-cart .cart_totals td{ border:none;padding:.6rem 0;text-align:right;font-family:'Figtree',sans-serif; }
body.woocommerce-cart .cart_totals tr.cart-subtotal td{ color:var(--gv-encre); }
body.woocommerce-cart .cart_totals tr.order-total th{ font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:600;color:var(--gv-encre); }
body.woocommerce-cart .cart_totals tr.order-total td{ font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:700;color:var(--gv-grenat); }
body.woocommerce-cart .cart_totals tr{ border-top:1px solid var(--gv-nude); }
body.woocommerce-cart .cart_totals tr:first-child{ border-top:none; }
/* petite ligne livraison rassurante si Woo n'affiche rien */
body.woocommerce-cart .cart_totals tr.order-total{ border-top:2px solid var(--gv-nude-fonce); }

/* ---- CTA « Valider la commande » — or texturé, proéminent ---- */
body.woocommerce-cart .wc-proceed-to-checkout{ padding:1.2rem 0 0; }
body.woocommerce-cart a.checkout-button{
  display:block;width:100%;text-align:center;border:none !important;
  font-family:'Figtree',sans-serif !important;font-weight:600 !important;letter-spacing:.06em;text-transform:uppercase;
  font-size:.95rem !important;color:var(--gv-nuit) !important;border-radius:13px !important;padding:1.05em 1.4em !important;
  background:linear-gradient(160deg,#E9CE6B 0%,var(--gv-or) 48%,#A6801D 100%) !important;
  box-shadow:0 3px 5px rgba(16,31,37,.16),inset 0 1px 0 rgba(255,255,255,.45) !important;
}

/* ============ RÉASSURANCE (sous le récap) ============ */
body.woocommerce-cart .gv-panier-reassure{
  margin-top:1.2rem;padding:1.1rem 1.2rem;background:var(--gv-ivoire);
  border:1px solid var(--gv-nude);border-radius:12px;display:grid;gap:.6rem;
}
body.woocommerce-cart .gv-pr-line{ display:flex;align-items:center;gap:.6rem;font-family:'Figtree',sans-serif;font-size:.86rem;color:#47515A; }
body.woocommerce-cart .gv-pr-i{ flex:none;width:1.7rem;height:1.7rem;border-radius:50%;display:grid;place-items:center;color:var(--gv-or);
  background:radial-gradient(circle at 40% 35%,#fff8ea,#f2e4bf 68%,#e7d29a);border:1px solid rgba(201,162,39,.5); }
body.woocommerce-cart .gv-pr-i svg{ width:1rem;height:1rem; }
body.woocommerce-cart .gv-panier-pay{ margin-top:.6rem;display:flex;justify-content:center; }
/* .gv-pay / .gv-paiements-logos sont définis dans produit.css (non chargé ici) :
   on redonne leur taille sur le panier pour que les logos s'affichent bien. */
body.woocommerce-cart .gv-paiements-logos{ display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center; }
body.woocommerce-cart .gv-pay{ width:44px;height:27px;display:block;filter:drop-shadow(0 1px 2px rgba(16,31,37,.16)); }

/* ============ PANIER VIDE ============ */
body.woocommerce-cart .cart-empty{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.6rem;color:var(--gv-grenat);text-align:center;margin:2rem 0 1.4rem;
}
body.woocommerce-cart .return-to-shop{ text-align:center; }

/* ============ RESPONSIVE ============ */
@media (max-width:820px){
  body.woocommerce-cart #main{ padding-top:64px; }
  /* CTA collé en bas (zone du pouce) */
  body.woocommerce-cart .wc-proceed-to-checkout{
    position:sticky;bottom:0;z-index:20;margin-inline:-1px;
    padding:.7rem;background:linear-gradient(180deg,transparent,var(--gv-nuit) 60%);
    border-radius:0 0 16px 16px;
  }
  body.woocommerce-cart a.checkout-button{ box-shadow:0 6px 18px -6px rgba(0,0,0,.5) !important; }
}

/* « Vider le panier » : bouton secondaire discret, près de « Mettre à jour ». */
body.woocommerce-cart .gv-vider-panier{
  background:transparent !important;color:var(--gv-terracotta-fonce) !important;
  border:1px solid var(--gv-nude-fonce) !important;box-shadow:none !important;
  font-family:'Figtree',sans-serif !important;font-weight:600 !important;font-size:.8rem !important;
  letter-spacing:.03em !important;text-transform:none !important;padding:.55rem 1.1rem !important;border-radius:10px !important;
  transform:none !important;margin-left:.5rem;
}
body.woocommerce-cart .gv-vider-panier:hover{
  border-color:var(--gv-grenat) !important;color:var(--gv-grenat) !important;transform:translateY(-1px) !important;
}
