/* ============================================================
   Flux panier — redesign global "encre & papier"
   Restyle du tunnel de commande existant (scopé sur la classe
   .template_flux_panier_1 du conteneur, sans sélecteur d'id)
   SANS modifier le markup : ciblage des classes générées par
   design/includes/allseries/panier/panier/template_1/*.php
   Source unique — activée par série dans include_style_global.php.
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=DM+Mono:wght@400;500&display=swap");

.template_flux_panier_1 {
  --ink:#161513; --accent:#161513; --ink-2:#38352f;
  --muted:#807c73; --muted-2:#a8a39a;
  --line:#e7e4dd; --line-2:#efece6;
  --paper:#fff; --bg:#f4f2ee; --bg-2:#ece9e3; --field-bg:#faf9f6;
  --radius-lg:20px; --radius:14px; --radius-sm:10px; --radius-pill:999px;
  --shadow-card:0 1px 0 rgba(22,21,19,.02), 0 1px 2px rgba(22,21,19,.04);
  --ff-sans:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;
  --ff-mono:"DM Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --ease:cubic-bezier(.22,.61,.36,1);

  font-family:var(--ff-sans);
  color:var(--ink);
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:8px 0 40px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.template_flux_panier_1 *,.template_flux_panier_1 *::before,.template_flux_panier_1 *::after { box-sizing:border-box; }
.template_flux_panier_1 .mono,
.template_flux_panier_1 .unit-price,.template_flux_panier_1 .base-price,.template_flux_panier_1 .total-price,
.template_flux_panier_1 .total-product-ht,.template_flux_panier_1 .total-product-tva,
.template_flux_panier_1 .total-product-global,.template_flux_panier_1 .total-reduction,
.template_flux_panier_1 .total-carrier-ttc,.template_flux_panier_1 .total-global,
.template_flux_panier_1 .carrier_price,.template_flux_panier_1 .cart-price,.template_flux_panier_1 .cart-base-price,
.template_flux_panier_1 .input-quantity input { font-family:var(--ff-mono); }

/* Neutralise le système de grille (col sX/lX) sur les blocs restylés */
.template_flux_panier_1 .row { margin:0; }
.template_flux_panier_1 .row::before,.template_flux_panier_1 .row::after { display:none; }

/* ------------------------------------------------------------
   Stepper (Panier · Informations · Paiement)
   ------------------------------------------------------------ */
.template_flux_panier_1 .stepper-tabs.etapes { margin:8px auto 36px; max-width:680px; }
.template_flux_panier_1 .stepper-wrapper {
  display:flex; align-items:flex-start; list-style:none; margin:0; padding:0;
}
.template_flux_panier_1 .stepper-item {
  flex:1; display:flex; flex-direction:column; align-items:center;
  position:relative; background:none; padding:0;
}
.template_flux_panier_1 .stepper-item::before,.template_flux_panier_1 .stepper-item::after { content:none; }
/* L'étape 3 expose un <a.step-finish> (icône + libellé) DOUBLÉ d'un .item-sidebar
   (pastille n° + nom), contrairement aux étapes 1 & 2 où la pastille est dans le <a>.
   On masque l'ancre doublon : chaque étape n'affiche qu'une seule pastille. */
.template_flux_panier_1 .step-finish { display:none; }
.template_flux_panier_1 .stepper-item .item-sidebar {
  display:flex; flex-direction:column; align-items:center; gap:9px;
  text-decoration:none; color:var(--muted); position:relative; z-index:2; margin:0;
}
.template_flux_panier_1 .step-counter {
  width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center;
  font-family:var(--ff-mono); font-size:17px; font-weight:500;
  background:var(--paper); color:var(--muted-2);
  border:1.5px solid var(--line); transition:all .2s var(--ease);
}
.template_flux_panier_1 .stepper-item.active .step-counter,
.template_flux_panier_1 .stepper-item:has(.element-sidebar.active) .step-counter {
  background:var(--accent); color:#fff; border-color:var(--accent);
}
.template_flux_panier_1 .step-name { font-size:14px; font-weight:600; color:var(--muted); letter-spacing:-.01em; }
.template_flux_panier_1 .stepper-item.active .step-name,
.template_flux_panier_1 .stepper-item:has(.element-sidebar.active) .step-name { color:var(--ink); }
/* trait de liaison entre pastilles */
.template_flux_panier_1 .stepper-item .etapes-after {
  position:absolute; top:21px; left:50%; width:100%; height:1.5px;
  background:var(--line); z-index:1;
}
.template_flux_panier_1 .stepper-item:last-child .etapes-after { display:none; }

/* Message perso au-dessus du flux */
.template_flux_panier_1 .flux-panier-msg-perso { margin-bottom:20px; }

/* ------------------------------------------------------------
   Cartes / wells génériques
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-recap-panier__well,
.template_flux_panier_1 .block-info-commande__well,
.template_flux_panier_1 .block-info-payment__well {
  background:var(--paper) !important; border:1px solid var(--line) !important;
  border-radius:var(--radius) !important; box-shadow:var(--shadow-card);
  padding:22px; margin-bottom:0 !important;
}

/* ------------------------------------------------------------
   ÉTAPE 1 — Tableau panier
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-resume-cart {
  padding:0; overflow:hidden; border-radius:var(--radius-lg);
}
.template_flux_panier_1 .resume-cart-legend { padding:0; }
.template_flux_panier_1 .resume-cart-legend .row,
.template_flux_panier_1 .resume-cart-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) 130px 124px 110px 48px;
  align-items:center; gap:16px;
}
.template_flux_panier_1 .resume-cart-legend [class*="col"],
.template_flux_panier_1 .resume-cart-item > [class*="col"] {
  width:auto !important; float:none !important; margin:0 !important; padding:0 !important; min-height:0 !important;
}
.template_flux_panier_1 .resume-cart-legend {
  background:var(--accent); color:#fff;
  padding:16px 26px; font-size:13px; font-weight:600; letter-spacing:-.01em;
}
.template_flux_panier_1 .resume-cart-legend .col.s2,
.template_flux_panier_1 .resume-cart-legend .col.s1 { text-align:center !important; }
.template_flux_panier_1 .resume-cart-legend .fa-trash-o { opacity:.8; }

.template_flux_panier_1 .resume-cart-item {
  padding:22px 26px !important; border-top:1px solid var(--line-2);
}
.template_flux_panier_1 .resume-cart-products .resume-cart-item:first-child { border-top:0; }

.template_flux_panier_1 .resume-cart-item-produit__item { display:flex; align-items:center !important; gap:16px; margin:0; }
.template_flux_panier_1 .resume-cart-item-img { flex:none; width:86px; }
.template_flux_panier_1 .resume-cart-item-img .img-square,
.template_flux_panier_1 .resume-cart-item-img .img-square__content {
  display:block; width:86px; height:86px;
}
.template_flux_panier_1 .resume-cart-item-img img {
  width:86px !important; height:86px !important; object-fit:cover;
  border-radius:var(--radius-sm); border:1px solid var(--line);
}
.template_flux_panier_1 .resume-cart-item-title a {
  font-size:16px; font-weight:700; color:var(--ink) !important;
  letter-spacing:-.01em; line-height:1.25; text-decoration:none !important;
}
.template_flux_panier_1 .list-product-attribute { list-style:none; margin:8px 0 0 !important; padding:0; display:flex; flex-direction:column; gap:3px; }
.template_flux_panier_1 .list-product-attribute li { font-size:13px !important; color:var(--muted) !important; position:relative; padding-left:13px !important; }
.template_flux_panier_1 .list-product-attribute li::before { content:""; position:absolute; left:2px; top:8px; width:4px !important; height:4px; border-radius:50%; background:var(--muted-2) !important; }
.template_flux_panier_1 .label-group-attribute { color:var(--muted); }
.template_flux_panier_1 .label-attribute { color:var(--ink-2); font-weight:500; }

/* Prix unitaire */
.template_flux_panier_1 .resume-cart-item-pu { text-align:center; display:flex; flex-direction:column; align-items:center; gap:3px; }
.template_flux_panier_1 .resume-cart-item-pu__base .base-price { font-size:13px; color:var(--muted-2); text-decoration:line-through; }
.template_flux_panier_1 .resume-cart-item-pu__price { display:inline-flex; align-items:center; gap:8px; }
.template_flux_panier_1 .unit-price { font-size:15px; color:var(--ink-2); }
.template_flux_panier_1 .unit-price__remise {
  font-family:var(--ff-mono); font-size:11px; font-weight:500;
  background:var(--accent); color:#fff; border-radius:var(--radius-pill); padding:2px 8px;
}

/* Quantité */
.template_flux_panier_1 .resume-cart-item-quantity { display:flex; align-items:center; justify-content:center; gap:8px; }
.template_flux_panier_1 .down-quantity,.template_flux_panier_1 .up-quantity {
  width:32px !important; height:32px; border-radius:8px; flex:none;
  background:var(--accent); color:#fff; display:grid; place-items:center;
  text-decoration:none; transition:filter .16s var(--ease);
}
.template_flux_panier_1 .down-quantity:hover,.template_flux_panier_1 .up-quantity:hover { filter:brightness(1.35); }
.template_flux_panier_1 .down-quantity .picto-panier,.template_flux_panier_1 .up-quantity .picto-panier { color:#fff !important; }
.template_flux_panier_1 .input-quantity input.resume_quantity_input {
  width:46px !important; height:36px !important; text-align:center;
  border:1px solid var(--line) !important; border-radius:8px;
  font-size:15px; color:var(--ink); background:var(--paper);
}

/* Total ligne */
.template_flux_panier_1 .resume-cart-item-totalttc { text-align:center; }
.template_flux_panier_1 .resume-cart-item-totalttc .total-price { font-size:15px; font-weight:600; color:var(--ink); }

/* Supprimer */
.template_flux_panier_1 .resume-cart-item-supprimer { text-align:center; }
.template_flux_panier_1 .remove-product {
  width:38px; height:38px; border-radius:9px;
  display:inline-grid; place-items:center;
  color:var(--muted); border:1px solid transparent; transition:all .16s var(--ease);
}
.template_flux_panier_1 .remove-product:hover { background:var(--accent); color:#fff; }

/* ------------------------------------------------------------
   ÉTAPE 1 — colonne gauche (réduction + fidélité) / droite (résumé)
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-recap-panier { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.template_flux_panier_1 .block-recap-panier > .col.s12 { grid-column:1 / -1; }
.template_flux_panier_1 .block-recap-panier > .col.s6 { width:auto !important; float:none !important; padding:0 !important; margin:0 !important; }

/* Code réduction */
.template_flux_panier_1 .block-reduction-code__label { display:block; font-size:15px; font-weight:700; letter-spacing:-.01em; margin-bottom:12px; }
.template_flux_panier_1 .block-reduction-code__input .input-group {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; width:100%;
}
.template_flux_panier_1 .block-reduction-code input.form-control {
  width:100% !important; min-width:0; height:46px !important; margin:0 !important; padding:0 16px !important; float:none !important;
  border:1px solid var(--line) !important; border-radius:var(--radius-sm) !important;
  background:var(--field-bg) !important; font-size:14.5px !important; color:var(--ink) !important; box-shadow:none !important;
}
.template_flux_panier_1 .block-reduction-code input.form-control:focus { outline:none; border-color:var(--ink) !important; background:var(--paper) !important; }
.template_flux_panier_1 .input-group-btn { display:block; width:auto; white-space:nowrap; }


/* Offre de réduction disponible — alerte harmonisée (bordure/fond identiques au reste) */
.template_flux_panier_1 .block-reduc {
  margin-top:18px; padding:18px 20px;
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); color:var(--ink-2);
}
.template_flux_panier_1 .block-reduc-texte { font-family:var(--ff-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.template_flux_panier_1 .block-reduc__list { list-style:none; margin:0; padding:0; }
.template_flux_panier_1 .block-reduc__list li { display:flex !important; align-items:center; justify-content:space-between !important; gap:14px; font-size:14px !important; }
/* Boutons « Appliquer » / « Retirer » d'un code réduction.
   Le thème les cible en .block-reduction-code .add_code_reduc.button.btn (5 classes
   + bg/bordure/couleur en !important) -> on s'aligne sur cette spécificité. */
.template_flux_panier_1 .block-reduction-code .add_code_reduc.button.btn,
.template_flux_panier_1 .block-reduction-code .add_code_reduc.button {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  width:auto; min-width:96px; margin:0 0 0 auto; padding:9px 16px;
  background:var(--accent) !important; border:1px solid var(--accent) !important; color:#fff !important;
  border-radius:var(--radius-sm); font-family:var(--ff-sans); font-size:13px; font-weight:600; line-height:1.2;
  text-decoration:none; white-space:nowrap; cursor:pointer; transition:filter .16s var(--ease);
}
.template_flux_panier_1 .block-reduction-code .add_code_reduc.button.btn:hover,
.template_flux_panier_1 .block-reduction-code .add_code_reduc.button.btn:focus,
.template_flux_panier_1 .block-reduction-code .add_code_reduc.button:hover {
  background:var(--accent) !important; border-color:var(--accent) !important; color:#fff !important; filter:brightness(1.28);
}
/* « Retirer » : variante discrète (outline) */
.template_flux_panier_1 .block-reduction-code .remove_code_reduc.button.btn,
.template_flux_panier_1 .block-reduction-code .remove_code_reduc.button {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  width:auto; margin:0 0 0 auto; padding:9px 16px;
  background:var(--paper) !important; border:1px solid var(--line) !important; color:var(--ink-2) !important;
  border-radius:var(--radius-sm); font-family:var(--ff-sans); font-size:13px; font-weight:600; line-height:1.2;
  text-decoration:none; white-space:nowrap; cursor:pointer; transition:border-color .16s var(--ease), color .16s var(--ease);
}
.template_flux_panier_1 .block-reduction-code .remove_code_reduc.button.btn:hover,
.template_flux_panier_1 .block-reduction-code .remove_code_reduc.button.btn:focus,
.template_flux_panier_1 .block-reduction-code .remove_code_reduc.button:hover {
  background:var(--field-bg) !important; border-color:var(--ink) !important; color:var(--ink) !important;
}

/* Note fidélité — même cadre que les autres blocs */
.template_flux_panier_1 .order-information-fidelity-product {
  display:flex; align-items:center; gap:12px; text-align:left;
  border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); color:var(--ink-2);
  padding:16px 20px; margin-top:14px !important; font-size:13.5px;
}
.template_flux_panier_1 .order-information-fidelity-product .fa-gift { color:var(--accent); font-size:18px; }

/* ------------------------------------------------------------
   Cadeaux offerts (gift-discount avancé)
   ------------------------------------------------------------ */
.template_flux_panier_1 .gift-discount-advanced { margin-bottom:24px; }
.template_flux_panier_1 .gift-discount__container { display:flex; flex-direction:column; gap:14px; }
.template_flux_panier_1 .gift-discount__item {
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-card); padding:20px 22px;
}
.template_flux_panier_1 .gift-discount__item__title {
  display:flex; align-items:center; gap:9px;
  font-size:15px; font-weight:700; letter-spacing:-.01em; color:var(--ink);
}
.template_flux_panier_1 .gift-discount__item__title::before { content:"\f06b"; font-family:"Font Awesome 6 Free";font-weight:900;font-style:normal; color:var(--accent); font-size:15px; }
.template_flux_panier_1 .gift-discount__item__description-to-available { font-size:13.5px; color:var(--muted); margin-top:7px; line-height:1.45; }
.template_flux_panier_1 .gift-discount__item__description-to-available a { color:var(--ink) !important; font-weight:600; }
.template_flux_panier_1 .gift-discount__item__progress-bar { height:8px; border-radius:var(--radius-pill); background:var(--bg-2); overflow:hidden; margin-top:12px; }
.template_flux_panier_1 .gift-discount__item__progress-item { height:100%; background:var(--accent); border-radius:var(--radius-pill); transition:width .4s var(--ease); }

.template_flux_panier_1 .gift-discount__item__products {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(158px, 1fr)); gap:12px;
  margin:16px 0 0; /* annule les margin-left/right:-1% du thème */
}
.template_flux_panier_1 .gift-discount__item__product {
  display:flex; flex-direction:column; gap:10px; text-align:center;
  border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--field-bg); padding:14px;
  width:auto; margin:0; min-width:0; /* annule width:31.33% + margin:1% du thème */
}
.template_flux_panier_1 .gift-discount__item__product__selected { border-color:var(--accent); box-shadow:0 0 0 1.5px var(--accent); background:var(--paper); }
/* Réserve une vignette carrée stable même sans image (404 en local) */
.template_flux_panier_1 .gift-discount__item__product__image {
  position:relative; width:100%; aspect-ratio:1 / 1;
  border-radius:8px; overflow:hidden; background:var(--bg-2); border:1px solid var(--line-2);
}
.template_flux_panier_1 .gift-discount__item__product__image .img-square,
.template_flux_panier_1 .gift-discount__item__product__image .img-square__content {
  position:static; display:block; width:100%; height:100%;
  padding:0; margin:0;
}
.template_flux_panier_1 .gift-discount__item__product__image img {
  width:100% !important; height:100% !important; object-fit:cover; display:block !important; border:0; border-radius:0;
  color:transparent; font-size:0;
}
.template_flux_panier_1 .gift-discount__item__product__title { font-size:13.5px; font-weight:600; line-height:1.3; color:var(--ink); }
.template_flux_panier_1 .gift-discount__item__product__price { font-size:12px; color:var(--muted); }
.template_flux_panier_1 .gift-discount__item__product__price__value { font-family:var(--ff-mono); color:var(--ink-2); font-weight:500; margin-left:4px; }

/* Le bouton « Hop, dans mon panier ! » */
.template_flux_panier_1 .gift-discount__item__product__button { margin-top:auto; }
.template_flux_panier_1 .gift-discount__item__product__button button.button,
.template_flux_panier_1 button[name="product_gift_discount_add"] {
  display:inline-flex !important; align-items:center; justify-content:center; gap:8px;
  width:100% !important; height:42px; padding:0 14px !important; border:0 !important; cursor:pointer !important;
  background:var(--accent) !important; color:#fff !important; border-radius:var(--radius-sm);
  font-family:var(--ff-sans); font-size:13.5px !important; font-weight:600 !important; letter-spacing:-.01em;
  line-height:1.1; text-transform:none !important; white-space:normal;
  transition:filter .18s var(--ease), transform .12s var(--ease);
}
.template_flux_panier_1 .gift-discount__item__product__button button.button::before { content:"\f07a"; font-family:"Font Awesome 6 Free";font-weight:900 !important;font-style:normal; font-size:13px !important; flex:none; }
.template_flux_panier_1 .gift-discount__item__product__button button.button:hover { filter:brightness(1.3); }
.template_flux_panier_1 .gift-discount__item__product__button button.button:active { transform:translateY(1px); }
/* Cadeau déjà ajouté (pas de bouton rendu côté PHP) : confirmation visuelle */
.template_flux_panier_1 .gift-discount__item__product__selected .gift-discount__item__product__button::after {
  content:"\2713\00a0\00a0Dans le panier"; display:flex; align-items:center; justify-content:center; height:42px;
  border:1px solid var(--accent); border-radius:var(--radius-sm); color:var(--accent); font-size:13px; font-weight:600;
}

/* Swiper (quand > 6 cadeaux) : on garde la grille fluide, flèches discrètes */
.template_flux_panier_1 .gift-discount__swiper-wrapper { display:contents; }
.template_flux_panier_1 .swiper-button-prev,.template_flux_panier_1 .swiper-button-next { color:var(--ink); }

/* ------------------------------------------------------------
   Solde de points fidélité (convertir / choisir un cadeau)
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-fidelity { margin-top:14px; }
/* !important ciblés : le thème (panier.css) cible .fidelity* via
   « .template_flux_panier_1 #resume .block-reduction … » (1 id + 3 classes), plus spécifique. */
.template_flux_panier_1 .fidelity {
  display:flex; flex-direction:column; gap:14px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px !important;
}
.template_flux_panier_1 .fidelity__information {
  display:flex; align-items:flex-start; gap:11px;
  margin:0 !important; text-align:left !important;
}
.template_flux_panier_1 .fidelity__information::before {
  content:"\f005"; font-family:"Font Awesome 6 Free";font-weight:900;font-style:normal;
  color:var(--accent); font-size:15px; line-height:1.5; flex:none;
}
.template_flux_panier_1 .fidelity__information__label { font-size:14px; color:var(--ink-2); line-height:1.55; text-align:left; }
.template_flux_panier_1 .fidelity__information__label__value { font-family:var(--ff-mono); font-weight:500; color:var(--ink); }

.template_flux_panier_1 .fidelity__block-btn {
  display:flex !important; flex-direction:column; align-items:stretch;
  justify-content:flex-start !important; gap:10px; flex-wrap:nowrap;
}
.template_flux_panier_1 .fidelity__block-btn .button,
.template_flux_panier_1 .fidelity__block-btn > .button {
  display:inline-flex !important; align-items:center; justify-content:center; gap:8px;
  width:100% !important; height:auto; min-height:44px; margin:0 !important; padding:11px 18px !important;
  cursor:pointer !important; border-radius:var(--radius-sm);
  font-family:var(--ff-sans); font-size:13.5px !important; font-weight:600 !important; letter-spacing:-.01em; line-height:1.2;
  text-transform:none !important; white-space:normal;
  transition:filter .18s var(--ease), border-color .18s var(--ease), background .18s var(--ease);
}
.template_flux_panier_1 .fidelity__block-btn .button::before { font-family:"Font Awesome 6 Free";font-weight:900 !important;font-style:normal; font-size:13px !important; flex:none; }
.template_flux_panier_1 .fidelity__block-btn .convert-fidelity-points {
  background:var(--accent); color:#fff; border:0;
}
.template_flux_panier_1 .fidelity__block-btn .convert-fidelity-points::before { content:"\f0d6"; }
.template_flux_panier_1 .fidelity__block-btn .convert-fidelity-points:hover { filter:brightness(1.25); }
.template_flux_panier_1 .fidelity__block-btn .gitf-product-fidelity-points {
  background:var(--paper); color:var(--ink); border:1px solid var(--line);
}
.template_flux_panier_1 .fidelity__block-btn .gitf-product-fidelity-points::before { content:"\f06b"; }
.template_flux_panier_1 .fidelity__block-btn .gitf-product-fidelity-points:hover { border-color:var(--ink); }

/* Barre livraison gratuite */
.template_flux_panier_1 .free-shipping-progress-wrapper { padding:18px 22px; }
.template_flux_panier_1 .free-shipping-title { font-size:15px; font-weight:700; letter-spacing:-.01em; margin-bottom:12px; }
.template_flux_panier_1 .free-shipping-progress-bar { height:8px; border-radius:var(--radius-pill); background:var(--bg-2); overflow:hidden; }
.template_flux_panier_1 .free-shipping-progress-bar__progress { height:100%; background:var(--accent); border-radius:var(--radius-pill); transition:width .4s var(--ease); }
.template_flux_panier_1 .free-shipping-message { margin-top:12px; font-size:13.5px; color:var(--muted); line-height:1.45; }
.template_flux_panier_1 .free-shipping-message .free-shipping-var-amount,
.template_flux_panier_1 .free-shipping-message .free-shipping-var-carrier { color:var(--ink); font-weight:600; }

/* Blocs d'info paiement étape 1 (Oney / Alma) : arrondis encre & papier
   (le thème les met à border-radius:3px, bordure grise). */
.template_flux_panier_1 .block-information-oney,
.template_flux_panier_1 .block-information-alma-widget-order .alma-payment-plans-container,
.template_flux_panier_1 .block-information-alma-widget-order > div {
  border:1px solid var(--line); border-radius:var(--radius); background:var(--paper);
}

/* Totaux */
/* Le thème enveloppe parfois .bloc-total dans .block-with-background, une boîte
   à bordure grise carrée (border:1px #ccc; border-radius:0) -> on la fait
   disparaître pour laisser les totaux dans le well arrondi. */
.template_flux_panier_1 .block-with-background { background:none; border:0; border-radius:0; padding:0; box-shadow:none; }
.template_flux_panier_1 .bloc-total { list-style:none; margin:0 !important; padding:22px 24px !important; }
.template_flux_panier_1 .bloc-total li { display:flex !important; align-items:baseline; justify-content:space-between !important; gap:16px; padding:9px 0 !important; font-size:14.5px !important; color:var(--muted) !important; }
.template_flux_panier_1 .bloc-total li > span:last-child { color:var(--ink-2) !important; font-weight:500 !important; white-space:nowrap !important; }
.template_flux_panier_1 .bloc-total li.content-payment-global {
  margin-top:8px !important; padding-top:16px !important; border-top:1px solid var(--line) !important;
}
.template_flux_panier_1 .bloc-total li.content-payment-global > span:first-child { color:var(--ink) !important; font-weight:700 !important; letter-spacing:-.01em; }
.template_flux_panier_1 .bloc-total li.content-payment-global .total-global { font-size:1.2em; font-weight:500; color:var(--ink); letter-spacing:-.02em; }

/* ------------------------------------------------------------
   Boutons « Commander »
   ------------------------------------------------------------ */
.template_flux_panier_1 .container-order-btn { margin-top:16px; }
.template_flux_panier_1 .button {
  display:flex; align-items:center; justify-content:center; gap:9px;
  width:100%; height:54px; border:0; cursor:pointer;
 border-radius:var(--radius-sm);
 letter-spacing:-.01em; text-decoration:none; text-transform:none;
  transition:filter .18s var(--ease);
}
.template_flux_panier_1 .button.next-step:hover,
.template_flux_panier_1 .container-order-btn .button:hover,
.template_flux_panier_1 .block-info-commande__btn-next-step .button:hover { filter:brightness(1.25); }

/* ------------------------------------------------------------
   ÉTAPE 2 — Informations (formulaires)
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-info-commande .row { display:block; }
.template_flux_panier_1 .block-info-commande > .row { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:24px; align-items:start; }
.template_flux_panier_1 .block-info-commande > .row > [class*="col"] { width:auto !important; float:none !important; padding:0 !important; margin:0 !important; }
/* En-tête de section (facturation / livraison) — remplace la barre grise du thème */
.template_flux_panier_1 .infoscommande-header {
  display:flex; align-items:center; gap:11px;
  background:none; color:var(--ink);
  padding:0 0 16px; margin-bottom:20px;
  border:0; border-bottom:1px solid var(--line-2);
}
.template_flux_panier_1 .infoscommande-header::before {
  content:"\f007"; font-family:"Font Awesome 6 Free"; font-weight:900; font-style:normal;
  width:34px; height:34px; border-radius:9px; background:var(--accent); color:#fff;
  display:grid; place-items:center; font-size:15px; flex:none;
}
.template_flux_panier_1 .block_delivery_address .infoscommande-header::before { content:"\f0d1"; }
.template_flux_panier_1 .infoscommande-header h4 { font-size:16px !important; font-weight:700; letter-spacing:-.01em; margin:0 !important; color:var(--ink) !important; line-height:1.3; }
.template_flux_panier_1 .block_address .pull-right { float:none !important; font-size:13.5px !important; color:var(--muted); margin-bottom:14px !important; }
.template_flux_panier_1 .block_address .pull-right a { color:var(--ink-2) !important; font-weight:600; }

/* En-tête connexion / inscription (« Se connecter » / « Créer un compte ») —
   remplace la barre grise #eee du thème par l'en-tête à pastille icône. */
.template_flux_panier_1 .connexion-inscription-header {
  display:flex; align-items:center; gap:11px;
  background:none; border:0; border-bottom:1px solid var(--line-2);
  padding:0 0 16px; margin:0 0 18px;
}
.template_flux_panier_1 .connexion-inscription-header::before {
  content:"\f2f6"; font-family:"Font Awesome 6 Free"; font-weight:900; font-style:normal;
  width:34px; height:34px; border-radius:9px; background:var(--accent); color:#fff;
  display:grid; place-items:center; font-size:15px; flex:none;
}
/* Création de compte (.inscription) : icône user-plus ; connexion (.connexion) garde le sign-in de base */
.template_flux_panier_1 .inscription .connexion-inscription-header::before { content:"\f234"; }
.template_flux_panier_1 .connexion-inscription-header h4 {
  font-size:16px; font-weight:700; letter-spacing:-.01em; margin:0; color:var(--ink); line-height:1.3;
}
/* Lien de bascule injecté à droite de l'en-tête (JS) : « Se connecter » /
   « Créer un compte » -> n'affiche qu'un seul bloc à la fois. */
.template_flux_panier_1 .connexion-inscription-header { flex-wrap:wrap; }
.template_flux_panier_1 .flux-auth-switch {
  margin-left:auto; align-self:center;
  background:none; border:0; padding:0; cursor:pointer;
  font-family:var(--ff-sans); font-size:13px; font-weight:500; color:var(--ink-2); white-space:nowrap;
}
.template_flux_panier_1 .flux-auth-switch strong { font-weight:700; color:var(--ink); text-decoration:underline; text-underline-offset:2px; }
.template_flux_panier_1 .flux-auth-switch:hover strong { color:var(--accent); }
.template_flux_panier_1 .connexion-inscription-container { padding:0; }

.template_flux_panier_1 .form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.template_flux_panier_1 .form-group > label { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.template_flux_panier_1 .form-group input[type="text"],
.template_flux_panier_1 .form-group input:not([type]),
.template_flux_panier_1 .form-group select,
.template_flux_panier_1 .form-group textarea,
.template_flux_panier_1 select.change_address {
  width:100% !important; box-sizing:border-box; height:46px !important; border:1px solid var(--line) !important; background:var(--field-bg);
  border-radius:var(--radius-sm); padding:0 13px !important; font-size:15px; color:var(--ink);
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease);
}
.template_flux_panier_1 .form-group input:focus,
.template_flux_panier_1 .form-group select:focus,
.template_flux_panier_1 .form-group textarea:focus,
.template_flux_panier_1 select.change_address:focus {
  outline:none; border-color:var(--ink) !important; background:var(--paper); box-shadow:0 0 0 3px rgba(22,21,19,.08);
}
.template_flux_panier_1 .form-group textarea { height:auto; min-height:90px !important; padding:11px 13px !important; resize:vertical !important; }
.template_flux_panier_1 .help-block { font-size:13px; color:var(--muted); margin:2px 0 0; }

/* ------------------------------------------------------------
   Bloc profil connexion / inscription (.row.profile, étape 2)
   Deux cartes (.inscription = créer un compte / .connexion = déjà inscrit),
   le thème leur applique une ombre grise carrée -> cartes encre & papier.
   ------------------------------------------------------------ */
.template_flux_panier_1 .row.profile {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:20px; margin:0;
}
.template_flux_panier_1 .row.profile > [class*="col"] { width:auto; float:none; padding:0; margin:0; }
.template_flux_panier_1 .row.profile > .col.s12 { grid-column:1 / -1; }
.template_flux_panier_1 .inscription,
.template_flux_panier_1 .connexion {
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-card); padding:24px; height:100%; overflow:visible;
}
.template_flux_panier_1 .connexion-inscription-container > p { font-size:13.5px; color:var(--muted); margin:0 0 16px; line-height:1.5; }

/* Grille interne du formulaire (Nom / Prénom / Email / Mot de passe) */
.template_flux_panier_1 .connexion-inscription-container .row {
  display:grid; grid-template-columns:1fr 1fr; gap:0 16px; margin:0;
}
.template_flux_panier_1 .connexion-inscription-container .row > [class*="col"] { width:auto; float:none; padding:0; margin:0; }
.template_flux_panier_1 .connexion-inscription-container .row > .col.s12 { grid-column:1 / -1; }

/* Champs : le label enveloppe l'input -> on empile (libellé au-dessus) */
.template_flux_panier_1 .connexion-inscription-container .form-group > label { display:flex; flex-direction:column; gap:6px; }
.template_flux_panier_1 .connexion-inscription-container input[type="text"],
.template_flux_panier_1 .connexion-inscription-container input[type="email"],
.template_flux_panier_1 .connexion-inscription-container input[type="password"],
.template_flux_panier_1 .connexion-inscription-container input.form-control {
  width:100%; box-sizing:border-box; height:46px; margin:0;
  border:1px solid var(--line); background:var(--field-bg); border-radius:var(--radius-sm);
  padding:0 13px; font-family:var(--ff-sans); font-size:15px; color:var(--ink);
  text-transform:none; letter-spacing:normal; box-shadow:none;
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease);
}
.template_flux_panier_1 .connexion-inscription-container input:focus {
  outline:none; border-color:var(--ink); background:var(--paper); box-shadow:0 0 0 3px rgba(22,21,19,.08);
}

/* Champ mot de passe avec œil */
.template_flux_panier_1 .input-group-password { position:relative; }
.template_flux_panier_1 .input-group-password input { padding-right:44px; }
.template_flux_panier_1 .input-group-password-btn { position:absolute; top:0; right:0; height:100%; display:flex; align-items:center; padding:0 10px; }
.template_flux_panier_1 .btn-show-password { background:none; border:0; color:var(--muted); cursor:pointer; padding:4px; font-size:15px; line-height:1; display:flex; }
.template_flux_panier_1 .btn-show-password:hover { color:var(--ink); }

/* Cases à cocher (custom checkbox du thème recoloré) */
.template_flux_panier_1 .groupe-checkbox { display:flex; align-items:flex-start; gap:9px; }
.template_flux_panier_1 .groupe-checkbox label { font-family:var(--ff-sans); font-size:13px; text-transform:none; letter-spacing:normal; color:var(--ink-2) !important; line-height:1.45; }
.template_flux_panier_1 .groupe-checkbox label:before { border-color:var(--line); background:var(--paper); }
.template_flux_panier_1 .groupe-checkbox label:after { background:var(--accent); border-color:var(--accent); }

/* Boutons d'action (créer un compte / se connecter) + lien mot de passe oublié */
.template_flux_panier_1 .inscription-connexion-btn { display:flex; flex-direction:column; gap:10px; }
.template_flux_panier_1 .inscription-connexion-btn a { align-self:flex-end; font-size:13px; color:var(--ink-2); text-decoration:underline; }
.template_flux_panier_1 .button.button-secondary { background:var(--accent); }

/* Connexion via Facebook */
.template_flux_panier_1 .facebook-row { margin-top:6px; }
.template_flux_panier_1 .fb-login-button {
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:12px 18px; border:1px solid var(--line); border-radius:var(--radius-sm);
  background:var(--paper); color:var(--ink); font-size:14px; font-weight:600; cursor:pointer;
  transition:border-color .16s var(--ease);
}
.template_flux_panier_1 .fb-login-button:hover { border-color:var(--ink); }
.template_flux_panier_1 .fb-login-button .fa-facebook-official { color:#1877f2; font-size:17px; }

/* Mentions légales / RGPD */
.template_flux_panier_1 .law-computer-and-freedoms .help-block p { font-size:11.5px; color:var(--muted); line-height:1.5; margin:0; }
.template_flux_panier_1 .law-computer-and-freedoms a { color:var(--ink-2); text-decoration:underline; }

/* multi-colonnes du formulaire : rétablit un flux en grille fluide */
.template_flux_panier_1 .billing_address .row,
.template_flux_panier_1 .delivery_address .row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 20px; }
.template_flux_panier_1 .billing_address .row .col.s12,
.template_flux_panier_1 .delivery_address .row .col.s12 { grid-column:1 / -1; }
.template_flux_panier_1 .billing_address .row .col.s8,
.template_flux_panier_1 .delivery_address .row .col.s8 { grid-column:span 2; }
.template_flux_panier_1 .billing_address .row > [class*="col"],
.template_flux_panier_1 .delivery_address .row > [class*="col"] { width:auto !important; float:none !important; padding:0 !important; }

/* Choix d'adresse de livraison */
.template_flux_panier_1 .use_shipping { margin-top:6px; padding-top:14px; border-top:1px solid var(--line-2); }
.template_flux_panier_1 .use_shipping > div { margin-left:0 !important; }
.template_flux_panier_1 .use_shipping label { display:inline-flex !important; align-items:center !important; gap:10px; padding:8px 0 !important; font-size:14.5px; color:var(--ink-2) !important; cursor:pointer !important; }
.template_flux_panier_1 .use_shipping input[type="radio"] { accent-color:var(--accent); width:18px !important; height:18px !important; }

/* Résumé sticky droite (étapes 2 & 3) */
.template_flux_panier_1 .container-info-commande__sticky,
.template_flux_panier_1 .container-info-payment__sticky { display:flex; flex-direction:column; gap:14px; }
.template_flux_panier_1 .block-info-commande__btn-next-step { margin-top:4px !important; }

/* ------------------------------------------------------------
   ÉTAPE 3 — Paiement
   ------------------------------------------------------------ */
.template_flux_panier_1 .block-info-payment.row { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:24px; align-items:start; }
.template_flux_panier_1 .block-info-payment > [class*="col"] { width:auto !important; float:none !important; padding:0 !important; margin:0 !important; }
/* En-têtes de section étape 3 (récap, livraison, paiement, infos) — même style que l'étape 2.
   Remplace les barres grises/sombres du thème (#finish h5{background:#eee/#444 !important}). */
.template_flux_panier_1 .block-info-payment__well h5 {
  display:flex; align-items:center; gap:11px;
  background:none !important; color:var(--ink) !important; padding:0 0 16px !important; margin:0 0 18px !important;
  border:0 !important; border-bottom:1px solid var(--line-2) !important;
  font-size:16px !important; font-weight:700; letter-spacing:-.01em; line-height:1.3;
}
.template_flux_panier_1 .block-info-payment__well h5::before {
  content:"\f075"; font-family:"Font Awesome 6 Free"; font-weight:900; font-style:normal;
  width:34px; height:34px; border-radius:9px; background:var(--accent) !important; color:#fff !important;
  display:grid; place-items:center; font-size:15px !important; flex:none;
}
.template_flux_panier_1 .block-info-payment__well:has(.block-payment-cart) h5::before { content:"\f543"; } /* récapitulatif : reçu */
.template_flux_panier_1 .block-info-payment_carriers h5::before { content:"\f0d1"; } /* livraison : camion */
.template_flux_panier_1 .block-payment-mode h5::before { content:"\f09d"; } /* paiement : carte */

/* Récapitulatif produits */
.template_flux_panier_1 .block-payment-cart__item { padding:14px 0; border-bottom:1px solid var(--line-2); }
.template_flux_panier_1 .block-payment-cart__item:last-child { border-bottom:0; }
.template_flux_panier_1 .block-payment-cart__item > .row { display:grid; grid-template-columns:minmax(0,1fr) 70px 110px; gap:14px; align-items:center; }
.template_flux_panier_1 .block-payment-cart__item > .row > [class*="col"] { width:auto !important; float:none !important; padding:0 !important; }
/* Ligne "impact sur le total" (option/forfait) ajoutée dans la même .row (col s8/s2/s2
   précédée d'un .clearfix). En grid le clearfix n'a aucun effet : on le force pleine
   largeur pour renvoyer l'info/quantité/prix sur une nouvelle rangée alignée sur les
   3 colonnes, au lieu de les écraser dans les cellules restantes. */
.template_flux_panier_1 .block-payment-cart__item > .row > .clearfix { grid-column:1 / -1; height:0; margin:-7px 0; padding:0; }
.template_flux_panier_1 .block-payment-cart__item-produit .row { display:flex; align-items:center; gap:14px; }
.template_flux_panier_1 .block-payment-cart__item-image img { width:56px !important; height:56px !important; object-fit:cover; border-radius:9px; border:1px solid var(--line); }
.template_flux_panier_1 .block-payment-cart__item .cart-title { font-size:14px; font-weight:600 !important; line-height:1.3; }
.template_flux_panier_1 .block-payment-cart__item .cart-option-label { font-size:13px; }
.template_flux_panier_1 .block-payment-cart__item-quantity .cart-quantity { font-family:var(--ff-mono); font-size:13px; color:var(--muted); }
.template_flux_panier_1 .block-payment-cart__item-pu { text-align:right; }
.template_flux_panier_1 .block-payment-cart__item-pu .cart-base-price { font-size:11.5px; color:var(--muted-2); text-decoration:line-through; }
.template_flux_panier_1 .block-payment-cart__item-pu .cart-price { font-size:14px; font-weight:500; color:var(--ink); }

/* Transporteurs */
.template_flux_panier_1 .content-carriers ul { list-style:none; margin:0 !important; padding:0 !important; display:flex; flex-direction:column; gap:10px; }
/* Le thème impose border-radius:5px + bordure grise + display:flex + overflow:hidden
   sur ces labels (sélecteurs à id) : on force le rendu arrondi encre/papier. */
.template_flux_panier_1 .line_carrier label {
  position:relative !important; overflow:visible !important;
  display:grid !important; grid-template-columns:auto minmax(0,1fr) auto; align-items:center !important; gap:14px;
  border:1px solid var(--line) !important; border-radius:var(--radius) !important; background:var(--paper) !important;
  padding:14px 16px 0 52px !important; width:100% !important;
  cursor:pointer !important; transition:border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease) !important;
}
.template_flux_panier_1 .line_carrier label:hover { border-color:var(--ink) !important; background:var(--paper) !important; }
.template_flux_panier_1 .line_carrier:has(input:checked) label,
.template_flux_panier_1 .content-carriers ul > li.selected > label {
  border-color:var(--accent) !important; background:var(--paper) !important; box-shadow:0 0 0 1.5px var(--accent);
}
/* Radio natif masqué : le thème dessine le radio via label::before/::after. */
.template_flux_panier_1 .line_carrier .radio_carrier { display:none; }
/* Le thème fixe la puce à top:11px (non centrée sur les lignes multi-lignes).
   On la centre verticalement et on la recolore (encre/papier). */
.template_flux_panier_1 .content-carriers ul > li > label::before {
  top:50% !important; transform:translateY(-50%); left:16px !important;
  width:22px !important; height:22px !important; border:1.5px solid var(--line) !important; background:var(--paper) !important;
}
.template_flux_panier_1 .content-carriers ul > li > label::after {
  top:50% !important; transform:translateY(-50%); left:22px !important;
  width:10px !important; height:10px !important;
}
.template_flux_panier_1 .content-carriers ul > li:has(input:checked) > label::before,
.template_flux_panier_1 .content-carriers ul > li.selected > label::before {
  background:var(--accent) !important; border-color:var(--accent) !important;
}
.template_flux_panier_1 .content-carriers ul > li:has(input:checked) > label::after {
  content:"" !important; background:#fff !important; border-radius:50% !important;
}
.template_flux_panier_1 .line_carrier [class*="col"] { width:auto !important; float:none !important; padding:0 !important; margin:0 !important; }
.template_flux_panier_1 .logo-carrier { width:44px !important; height:44px !important; border-radius:9px; border:1px solid var(--line); background-size:cover !important; background-position:center !important; flex:none; }
/* Le thème met le logo en width:100% / margin:0 auto 10px (mise en page colonne) :
   on le force en vignette carrée, sans marge, pour le centrer en hauteur. */
.template_flux_panier_1 .logo-carrier-none {
  width:44px !important; min-width:44px; max-width:44px !important; height:44px !important;
  margin:0 !important; float:none !important; padding:0;
  border-radius:10px; border:1px solid var(--line); background:var(--field-bg);
  display:grid; place-items:center; color:var(--ink-2); text-align:center !important;
}
.template_flux_panier_1 .logo-carrier-none i { font-size:18px !important; padding:0 !important; line-height:1; margin:0; }
.template_flux_panier_1 .carrier_name span { font-size:14.5px; font-weight:600 !important; color:var(--ink) !important; }
.template_flux_panier_1 .carrier_name__description { display:block !important; font-size:13px !important; font-weight:400 !important; color:var(--muted); margin-top:2px; }
.template_flux_panier_1 .carrier_price span { font-family:var(--ff-mono); font-size:14px; font-weight:500 !important; color:var(--ink) !important; white-space:nowrap !important; }
.template_flux_panier_1 .transporteur-message,.template_flux_panier_1 .information-relay { font-size:13px; color:var(--muted) !important; }
/* Lignes message/relais vides : ne pas générer de rangée grid (évite un gap superflu) */
.template_flux_panier_1 .line_carrier label > .transporteur-message:empty,
.template_flux_panier_1 .line_carrier label > .information-relay:empty { display:none; }
.template_flux_panier_1 .line_carrier label > br { display:none; }
.template_flux_panier_1 .line_carrier label > .col.s12 { grid-column:1 / -1; }

/* Modes de paiement */
.template_flux_panier_1 .item-payment-mode ul { list-style:none; margin:0 !important; padding:0 !important; display:flex; flex-direction:column; gap:10px; }
.template_flux_panier_1 .payment_item {
  display:flex !important; align-items:center !important; gap:14px;
  border:1px solid var(--line); border-radius:var(--radius); padding:15px 16px !important; cursor:pointer;
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.template_flux_panier_1 .payment_item:hover { border-color:var(--ink); }
.template_flux_panier_1 .line_payment:has(input:checked) .payment_item { border-color:var(--accent); box-shadow:0 0 0 1.5px var(--accent); }
.template_flux_panier_1 .payment_item__label { flex:1 !important; font-size:14.5px; }
.template_flux_panier_1 .payment_item__label strong { font-weight:600 !important; color:var(--ink) !important; }
.template_flux_panier_1 .payment_item__img { width:auto; }

/* Notifications / alertes neutres */
.template_flux_panier_1 .alert { border-radius:var(--radius-sm); font-size:14px; }

/* État vide du panier */
.template_flux_panier_1 .panier-empty {
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px;
  max-width:460px; margin:24px auto; padding:48px 28px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
}
.template_flux_panier_1 .panier-empty__icon {
  width:80px; height:80px; border-radius:50%; display:grid; place-items:center;
  background:var(--field-bg); border:1px solid var(--line-2); color:var(--muted-2); font-size:32px;
}
.template_flux_panier_1 .panier-empty__text { margin:0; font-size:17px; font-weight:600; color:var(--ink); }
.template_flux_panier_1 .panier-empty__btn {
  display:inline-block; margin:0; padding:13px 26px;
  background:var(--accent) !important; color:#fff !important; border:1px solid var(--accent) !important;
  border-radius:var(--radius-pill); font-weight:600; text-decoration:none !important;
  transition:opacity .16s var(--ease);
}
.template_flux_panier_1 .panier-empty__btn:hover { opacity:.88; }

/* ------------------------------------------------------------
   Responsive
   ------------------------------------------------------------ */
@media (max-width:920px) {
  .template_flux_panier_1 .block-recap-panier > .col.s6,
  .template_flux_panier_1 .block-info-commande > .row,
  .template_flux_panier_1 .block-info-payment.row { grid-template-columns:1fr; }
  .template_flux_panier_1 .block-recap-panier > .col.s6:first-of-type,
  .template_flux_panier_1 .block-recap-panier > .col.s6:last-of-type { padding:0 !important; margin-bottom:14px !important; }
  .template_flux_panier_1 .container-info-commande__sticky,
  .template_flux_panier_1 .container-info-payment__sticky { position:static; }
}
@media (max-width:720px) {
  .template_flux_panier_1 .resume-cart-legend { display:none; }
  .template_flux_panier_1 .resume-cart-item {
    grid-template-columns:1fr auto;
    grid-template-areas:"prod del" "unit qty" "tot tot";
    gap:14px 16px; padding:20px 18px !important;
  }
  .template_flux_panier_1 .resume-cart-item > .resume-cart-item-produit,
  .template_flux_panier_1 .resume-cart-item > [data-type="Produits"] { grid-area:prod; }
  .template_flux_panier_1 .resume-cart-item > [data-type="Supprimer"] { grid-area:del; justify-self:end; }
  .template_flux_panier_1 .resume-cart-item > [data-type^="Prix"] { grid-area:unit; }
  .template_flux_panier_1 .resume-cart-item-pu { align-items:flex-start; }
  .template_flux_panier_1 .resume-cart-item > [data-type="Quantité"] { grid-area:qty; justify-self:end; }
  .template_flux_panier_1 .resume-cart-item > [data-type^="Total"] { grid-area:tot; text-align:right; padding-top:12px; border-top:1px dashed var(--line); }
  .template_flux_panier_1 .billing_address .row,
  .template_flux_panier_1 .delivery_address .row { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .template_flux_panier_1 * { transition-duration:.001ms; }
}

/* ============================================================
   Surcharge de spécificité (étape 3 surtout)
   Le thème cible via « .template_flux_panier_1 #finish/#resume … .bloc »
   (id + 2 classes) → plus spécifique que « .template_flux_panier_1 .bloc ».
   On réimpose le design (arrondis, bordures claires, fonds) avec !important.
   ============================================================ */
.template_flux_panier_1 .block-recap-panier__well,
.template_flux_panier_1 .block-info-commande__well,
.template_flux_panier_1 .block-info-payment__well {
  background:var(--paper) !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  margin-bottom:18px !important;
}

/* Récapitulatif produits : lignes propres, sans les pseudo-libellés "responsive" du thème */
.template_flux_panier_1 .block-payment-cart__item {
  background:none; border:0;
  border-bottom:1px solid var(--line-2);
  margin:0; padding:14px 0;
}
.template_flux_panier_1 .block-payment-cart__item:last-child { border-bottom:0; }
.template_flux_panier_1 .block-payment-cart__item > .row {
  display:grid; grid-template-columns:minmax(0,1fr) 60px 120px; gap:14px; align-items:center;
}
.template_flux_panier_1 .block-payment-cart__item [data-type] {
  display:block; width:auto; border:0; padding:0; flex:none;
}
.template_flux_panier_1 .block-payment-cart__item [data-type]::before { content:none; border:0; padding:0; }
.template_flux_panier_1 .block-payment-cart__item [data-type] > [class^="block-payment-cart__item-"] { width:auto; padding:0; display:block; }
.template_flux_panier_1 .block-payment-cart__item-produit .row { display:flex; align-items:center; gap:14px; }
.template_flux_panier_1 .cart-sku { font-size:11.5px; color:var(--muted); margin-top:5px; line-height:1.45; }
.template_flux_panier_1 .block-payment-cart__item-quantity { text-align:center; }
.template_flux_panier_1 .block-payment-cart__item-pu { text-align:right; }

/* Modes de paiement : cartes cliquables, sans puce radio.
   On GARDE l'input natif masqué (comme le thème) : la sélection est indiquée
   par la bordure accent de la carte (voir .line_payment:has(input:checked)). */
.template_flux_panier_1 .payment_item {
  display:flex !important; flex-direction:row !important; align-items:center !important;
  justify-content:flex-start !important; gap:14px;
  padding:14px 16px !important; border:1px solid var(--line) !important; border-radius:var(--radius) !important; ;
}
.template_flux_panier_1 .payment_item > input[type="radio"] { display:none !important; }
.template_flux_panier_1 .payment_item__label { flex:1 1 auto !important; min-height:0 !important; }
/* Le thème met les logos de paiement en width:100% (mise en page colonne) ->
   en ligne, ça recouvre le libellé. On les contraint à une vignette à droite. */
.template_flux_panier_1 .payment_item__img {
  flex:0 0 auto !important; width:60px; min-width:60px; max-width:60px;
  height:30px; margin:0 0 0 auto !important;
  background-size:contain; background-repeat:no-repeat; background-position:right center;
}
/* Puce radio des modes de paiement : même taille/style que les transporteurs
   (.line_carrier label::before/::after : rond 22px, point 10px, à gauche 16/22px). */
.template_flux_panier_1 .payment_item { position:relative; padding-left:52px !important; }
.template_flux_panier_1 .payment_item::before {
  content:""; position:absolute !important; left:16px !important; top:50% !important; transform:translateY(-50%) !important;
  width:22px !important; height:22px !important; border:1.5px solid var(--line) !important; border-radius:50% !important; background:var(--paper) !important;
  transition:border-color .16s var(--ease), background .16s var(--ease) !important;
}
.template_flux_panier_1 .line_payment:has(input:checked) .payment_item::before {
  background:var(--accent); border-color:var(--accent);
}
.template_flux_panier_1 .line_payment:has(input:checked) .payment_item::after {
  content:""; position:absolute !important; left:22px !important; top:50% !important; transform:translateY(-50%) !important;
  width:10px !important; height:10px !important; border-radius:50% !important; background:#fff;
}

/* Bloc CGV */
.template_flux_panier_1 .block-cgv {
  border-top:1px solid var(--line-2) !important; padding:16px 2px 0 !important; margin:16px 0 0 !important;
  font-size:13.5px; color:var(--ink-2);
}
.template_flux_panier_1 .block-cgv label { display:flex !important; align-items:flex-start !important; gap:9px; cursor:pointer !important; }
.template_flux_panier_1 .block-cgv input[type="checkbox"] { accent-color:var(--accent); width:17px !important; height:17px !important; margin-top:1px !important; flex:none; }
.template_flux_panier_1 .block-cgv a { color:var(--ink) !important; font-weight:600; text-decoration:underline !important; }

/* ============================================================
   Modales (paniercommande) — conversion de points, cadeau
   fidélité, alerte points, information Oney.
   Modales Bootstrap rendues HORS de .template_flux_panier_1 : on cible donc
   les CLASSES Bootstrap (.modal …) plutôt que les id des modales.
   La feuille n'étant chargée que sur paniercommande.php, la portée
   reste cette page. Le sur les propriétés clés suffit à
   repasser devant les règles à id du thème (ex. Oney, non).
   ============================================================ */
.modal {
  --ink:#161513; --ink-2:#38352f; --muted:#807c73; --line:#e7e4dd; --line-2:#efece6;
  --paper:#fff; --field-bg:#faf9f6; --accent:#161513; --radius:14px; --radius-sm:10px;
  --ff-sans:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
.modal .modal-dialog { max-width:480px; width:calc(100% - 32px); margin:42px auto; }
.modal .modal-dialog.modal-lg { max-width:760px; }
.modal .modal-content {
  background:var(--paper) !important; border:1px solid var(--line) !important; border-radius:var(--radius);
  box-shadow:0 28px 64px -22px rgba(22,21,19,.38), 0 8px 24px -14px rgba(22,21,19,.20);
  overflow:hidden; color:var(--ink) !important; font-family:var(--ff-sans);
}
.modal .modal-header {
  position:relative; border:0 !important; border-bottom:1px solid var(--line-2) !important;
  padding:20px 56px 18px 24px; margin:0; background:none; color:var(--ink) !important;
}
.modal .modal-title,
.modal .modal-information-oney__title {
  font-family:var(--ff-sans); font-size:18px !important; font-weight:600; line-height:1.3;
  letter-spacing:-.01em; color:var(--ink); margin:0; text-align:left !important;
}
.modal .modal-header .close {
  position:absolute; top:13px; right:14px; width:34px; height:34px; margin:0; padding:0; float:none; opacity:1;
  display:flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid var(--line);
  background:var(--paper); color:var(--muted) !important; font-size:20px; font-weight:400; line-height:1; text-shadow:none;
  transition:color .16s var(--ease), border-color .16s var(--ease), background .16s var(--ease); cursor:pointer;
}
.modal .modal-header .close:hover { color:var(--ink) !important; border-color:var(--ink); background:var(--field-bg); }
.modal .modal-body {
  padding:22px 24px 24px; font-size:14.5px; color:var(--ink-2); line-height:1.55; min-height:0 !important;
}
/* Contenus spécifiques fidélité */
.modal .modal__convert-points__information,
.modal .modal__gift-product-points__information { font-size:15px; color:var(--ink-2); }
.modal .modal__convert-points__information__success,
.modal .modal__gift-product-points__information__success { font-size:15px; color:var(--ink); text-align:center; }
.modal .modal__convert-points__btn,
.modal .modal__gift-product-points__btn { margin-top:20px !important; display:flex; }
/* Boutons d'action dans les modales -> style encre & papier */
.modal .modal-body .button {
  display:inline-flex !important; align-items:center; justify-content:center; gap:9px; width:100% !important;
  background:var(--accent) !important; color:#fff !important; border:1px solid var(--accent) !important; border-radius:var(--radius-sm);
  font-family:var(--ff-sans); font-size:14.5px !important; font-weight:600 !important; letter-spacing:.01em;
  padding:13px 18px !important; margin:0 !important; cursor:pointer !important; text-transform:none !important; box-shadow:none !important;
  transition:filter .16s var(--ease), transform .02s var(--ease);
}
.modal .modal-body .button:hover { filter:brightness(1.28); }
.modal .modal-body .button:active { transform:translateY(1px); }
/* Voile : légèrement plus doux */
.modal-backdrop.in { opacity:.45; }
