/* Dynaparts 2026-09-30 — tunnel de commande (/commande), /adresses et /adresse.
   Complète css/cart-minimal.css (avril 2026) : en-tête, étapes, totaux, adresses, transporteurs,
   conditions (bouton grisé tant que non cochées), moyens de paiement homogènes, réassurance. */

/* ---------- Typo commune ---------- */
body#order h1.page-heading,
body#order #cart_title,
body#addresses .dp-addr .page-heading,
body#address h1.page-heading {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 30px;
  font-style: italic;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
body#order .heading-counter { display: block; margin: 0 0 14px; padding: 0; border: 0; background: none; color: #5d636a; font-size: 13px; font-style: normal; }
body#order #cart_summary tfoot td,
body#order #cart_summary tfoot td *,
body#order #cart_summary_total td,
body#order .cart_total_price td,
body#order #total_price,
body#order #total_price_container,
body#order .price {
  font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif !important;
}

/* ---------- En-tête du tunnel ---------- */
body#order .cart-header-minimal.dp-co-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  max-width: 1060px;
  margin: 0 auto 26px;
  padding: 14px 15px;
  border-bottom: 1px solid #e6e8eb;
  border-radius: 0;
  background: #ffffff;
}
body#order .dp-co-head .dp-co-head__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  color: #5d636a !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
body#order .dp-co-head .dp-co-head__back:hover { color: #e9271a !important; }
body#order .dp-co-head__logo img { display: block; width: auto; height: 34px; }
body#order .dp-co-head__side { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
body#order .dp-co-head__fr { display: inline-flex; align-items: center; gap: 7px; color: #282b2f; font-size: 13px; font-weight: 700; }
body#order .dp-co-head__secure { display: inline-flex; align-items: center; gap: 6px; color: #1f8a4c; font-size: 13px; font-weight: 700; }
body#order .dp-co-head__help { display: inline-flex; align-items: center; gap: 6px; color: #282b2f; font-size: 13px; font-weight: 700; text-decoration: none; }
body#order .dp-co-head__help svg { color: #e9271a; }
body#order .dp-co-head__help:hover { color: #e9271a; text-decoration: none; }

/* ---------- Étapes ---------- */
body#order ul#order_step {
  margin: 10px 0 28px !important;
  padding: 18px 8px 14px !important;
  border: 1px solid #e6e8eb !important;
  border-radius: 14px;
  background: #ffffff;
}
body#order ul#order_step li { color: #9aa0a6; font-size: 12.5px; }
body#order ul#order_step li.step_current { color: #282b2f; font-weight: 800; }
body#order ul#order_step li.step_done { color: #282b2f; }
body#order ul#order_step li.step_done span::before,
body#order ul#order_step li.step_done a::before { content: "\2713"; font-size: 15px; }
body#order ul#order_step li.step_done a:hover { color: #e9271a; }
body#order ul#order_step li.step_current span::before { box-shadow: 0 0 0 5px rgba(233, 39, 26, .16); }

/* ---------- Boutons ---------- */
body#order .cart_navigation { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 24px 0 10px; }
body#order .cart_navigation::before,
body#order .cart_navigation::after { display: none; }
body#order .cart_navigation .standard-checkout,
body#order .cart_navigation button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  float: none !important;
  min-height: 54px;
  margin: 0 0 0 auto;
  padding: 0 30px;
  border: 0 !important;
  border-radius: 12px;
  background: #e9271a;
  box-shadow: 0 10px 22px rgba(233, 39, 26, .22);
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}
body#order .cart_navigation .standard-checkout span,
body#order .cart_navigation button[type="submit"] span { padding: 0; border: 0; background: none; color: inherit; font: inherit; }
body#order .cart_navigation .standard-checkout::after,
body#order .cart_navigation button[type="submit"]::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2.5px solid currentColor;
  border-right: 2.5px solid currentColor;
  transform: rotate(45deg);
}
body#order .cart_navigation .standard-checkout:hover,
body#order .cart_navigation button[type="submit"]:hover { background: #c41f13; color: #ffffff; }
body#order .cart_navigation .dp-disabled,
body#order .cart_navigation .dp-disabled:hover {
  background: #c9cdd2 !important;
  box-shadow: none !important;
  color: #ffffff !important;
  cursor: not-allowed;
}
body#order .cart_navigation .button-exclusive {
  display: inline-flex;
  align-items: center;
  float: none !important;
  min-height: 48px;
  margin: 0;
  padding: 0 20px;
  border: 1.5px solid #dfe2e6;
  border-radius: 12px;
  background: #ffffff;
  color: #282b2f;
  font-size: 14px;
  font-weight: 700;
}
body#order .cart_navigation .button-exclusive:hover { border-color: #282b2f; color: #e9271a; }

/* ---------- Réassurance ---------- */
.dp-co-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 30px;
  padding: 16px 18px;
  border-radius: 14px;
  background: #f3f4f6;
  list-style: none;
}
.dp-co-trust li { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; color: #5d636a; font-size: 12.5px; line-height: 1.45; }
.dp-co-trust svg { flex-shrink: 0; margin-top: 1px; color: #e9271a; }
.dp-co-trust strong { display: block; color: #282b2f; font-size: 13.5px; }
.dp-co-trust a { color: #282b2f; font-weight: 700; }

/* ---------- Récapitulatif : totaux ---------- */
body#order #cart_summary_total { overflow: hidden; border: 1px solid #e6e8eb !important; border-radius: 12px; }
body#order #cart_summary_total td {
  padding: 11px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid #eef0f2 !important;
  background: #ffffff !important;
  color: #4f545a !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.35;
}
body#order #cart_summary_total td.price { color: #282b2f !important; font-weight: 700 !important; text-align: right; white-space: nowrap; }
body#order #cart_summary_total tr:last-child td { border-bottom: 0 !important; background: #f6f7f8 !important; color: #282b2f !important; font-size: 17px !important; font-weight: 800 !important; }
body#order #cart_summary_total tr:last-child td.price,
body#order #cart_summary_total #total_price { color: #e9271a !important; font-size: 22px !important; font-weight: 800 !important; }
/* totaux de l'étape paiement : même présentation que le récapitulatif */
body#order #cart_summary tfoot td {
  padding: 10px 16px !important;
  border: 0 !important;
  border-top: 1px solid #eef0f2 !important;
  background: #ffffff !important;
  color: #5d636a !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  text-transform: none !important;
}
body#order #cart_summary tfoot td * { color: inherit; font-size: inherit; font-weight: inherit; text-transform: none !important; }
body#order #cart_summary tfoot td.price,
body#order #cart_summary tfoot td[colspan="2"] { color: #282b2f !important; font-weight: 700 !important; }
body#order #cart_summary tfoot tr:last-child td { background: #f6f7f8 !important; color: #282b2f !important; font-size: 17px !important; font-weight: 800 !important; }
body#order #cart_summary tfoot tr:last-child td.price,
body#order #cart_summary tfoot tr:last-child td[colspan="2"],
body#order #cart_summary tfoot #total_price { color: #e9271a !important; font-size: 22px !important; font-weight: 800 !important; }

/* « Code panier » (panierpresta) : lien discret, bloc déplié au clic */
body#order .dp-cartcode-toggle {
  display: inline-block;
  margin: 2px 0 14px;
  padding: 0;
  border: 0;
  background: none;
  color: #5d636a;
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
body#order .dp-cartcode-toggle:hover { color: #282b2f; }
body#order #panierpresta-block.dp-collapsed { display: none !important; }
body#order #panierpresta-block[data-dp] {
  max-width: 560px;
  margin: 0 0 18px !important;
  padding: 14px 16px !important;
  border: 1px solid #e6e8eb !important;
  border-radius: 10px !important;
  background: #f6f7f8 !important;
}
body#order #panierpresta-block[data-dp] #panierpresta-code { height: 38px !important; border-radius: 8px 0 0 8px; font-size: 14px !important; }
body#order #panierpresta-block[data-dp] #panierpresta-validate { height: 38px !important; padding: 0 14px !important; border-radius: 0 8px 8px 0; background: #282b2f; color: #ffffff; font-size: 13px !important; font-weight: 700; }

/* ---------- Adresses (étape 3) ---------- */
body#order .addresses select.form-control,
body#order #id_address_delivery,
body#order #id_address_invoice {
  max-width: 420px;
  height: 46px;
  border: 1.5px solid #dfe2e6;
  border-radius: 10px;
  box-shadow: none;
  font-size: 15px;
}
body#order .addresses ul.address,
body#order ul.address {
  height: 100%;
  margin: 0;
  padding: 22px 24px !important;
  border: 1.5px solid #e6e8eb !important;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(40, 43, 47, .05);
  list-style: none;
}
body#order ul.address li { padding: 0; color: #4f545a; font-size: 14px; line-height: 1.6; }
body#order ul.address li.address_title h3,
body#order ul.address .page-subheading {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 17px;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
body#order ul.address li.address_update { margin-top: 12px; }
body#order ul.address li.address_update a,
body#order .address_add a,
body#order p.address_add a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 16px;
  border: 1.5px solid #dfe2e6;
  border-radius: 10px;
  background: #ffffff;
  color: #282b2f;
  font-size: 13px;
  font-weight: 700;
}
body#order ul.address li.address_update a:hover,
body#order .address_add a:hover { border-color: #282b2f; color: #e9271a; }
body#order .addressesAreEquals,
body#order p.checkbox.addressesAreEquals { display: flex; align-items: center; gap: 10px; margin: 16px 0; font-size: 14px; font-weight: 600; }
body#order input[type="checkbox"],
body#order input[type="radio"] { accent-color: #e9271a; }

/* ---------- Transporteurs ---------- */
body#order .carrier_title { margin: 0 0 14px; color: #282b2f; font-size: 15px; font-weight: 800; }
body#order .delivery_options .delivery_option {
  margin: 0 0 12px;
  padding: 0;
  border: 1.5px solid #dfe2e6;
  border-radius: 14px;
  background: #ffffff;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
body#order .delivery_options .delivery_option:hover { border-color: #b5bac0; }
body#order .delivery_options .delivery_option:has(input.delivery_option_radio:checked) {
  border-color: #e9271a;
  background: #fffafa;
  box-shadow: 0 0 0 3px rgba(233, 39, 26, .12);
}
body#order .delivery_option table.resume { width: 100%; margin: 0 !important; border: 0 !important; background: none !important; }
body#order .delivery_option table.resume tr {
  display: grid;
  grid-template-columns: 30px 84px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0 16px;
  padding: 16px 18px;
}
body#order .delivery_option table.resume td { padding: 0 !important; border: 0 !important; background: none !important; vertical-align: middle; }
body#order .delivery_option input.delivery_option_radio { width: 20px; height: 20px; margin: 0; }
body#order .delivery_option .delivery_option_logo img { display: block; max-width: 84px; max-height: 48px; margin: 0 auto; object-fit: contain; }
body#order .dp-carrier__name { display: block; color: #282b2f; font-size: 15px; font-weight: 800; line-height: 1.3; }
body#order .dp-carrier__delay { display: block; margin-top: 4px; color: #5d636a; font-size: 13px; line-height: 1.45; }
body#order .delivery_option .best_grade {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 8px;
  border-radius: 6px;
  background: #e7f6ed;
  color: #17663a;
  font-size: 11.5px;
  font-weight: 700;
}
body#order .delivery_option td.delivery_option_price,
body#order .delivery_option div.delivery_option_price { color: #282b2f; font-size: 16px; font-weight: 800; text-align: right; white-space: nowrap; }
body#order .delivery_option .dp-free { display: inline-block; padding: 5px 10px; border-radius: 8px; background: #e7f6ed; color: #17663a; font-size: 13px; font-weight: 800; text-transform: uppercase; }
body#order .delivery_option table.delivery_option_carrier { margin: 0; border: 0; }
body#order .delivery_option table.resume td > br { display: none; }
body#order .delivery_options .delivery_option > div { margin: 0 !important; padding: 0 !important; }
body#order .delivery_option .best_grade { display: table; }
/* Colissimo : bouton « Sélectionner un Point Retrait » aux couleurs du site */
body#order #colissimo-select-pickup-point {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin: -2px 0 14px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: #282b2f;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
}
body#order #colissimo-select-pickup-point:hover { background: #e9271a; }

/* ---------- Conditions (CGV / rétractation) ---------- */
body#order #carrier_area p.checkbox,
body#order #carrier_area div.checkbox {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 4px 12px;
  align-items: start;
  margin: 0 0 10px;
  padding: 14px 16px;
  border: 1.5px solid #dfe2e6;
  border-radius: 12px;
  background: #ffffff;
  transition: border-color .15s ease, background .15s ease;
}
body#order #carrier_area p.checkbox::before,
body#order #carrier_area p.checkbox::after { display: none; }
body#order #carrier_area .checkbox input[type="checkbox"] { grid-row: 1 / span 2; width: 22px; height: 22px; margin: 1px 0 0; cursor: pointer; }
body#order #carrier_area .checkbox label { margin: 0; padding: 0; color: #282b2f; font-size: 14px; font-weight: 600; line-height: 1.45; cursor: pointer; }
body#order #carrier_area .checkbox a.iframe { grid-column: 2; color: #e9271a; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
body#order #carrier_area .checkbox.dp-checked { border-color: #1f8a4c; background: #f3fbf6; }
body#order #carrier_area .checkbox.dp-need { border-color: #e9271a; background: #fdecea; animation: dp-shake .35s ease; }
@keyframes dp-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}

/* ---------- Paiement ---------- */
body#order .dp-co-paysecure {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 22px 0 18px;
  padding: 14px 18px;
  border: 1px solid #cfe9d8;
  border-radius: 12px;
  background: #f3fbf6;
  color: #17663a;
}
body#order .dp-co-paysecure svg { flex-shrink: 0; margin-top: 2px; }
body#order .dp-co-paysecure p { margin: 0; color: #3f6b50; font-size: 13px; line-height: 1.5; }
body#order .dp-co-paysecure strong { display: block; color: #17663a; font-size: 14.5px; }
body#order .dp-co-paytitle {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
body#order #HOOK_PAYMENT .row { margin: 0; }
body#order #HOOK_PAYMENT .row > [class*="col-"] { float: none; width: auto; padding: 0; }
body#order #HOOK_PAYMENT .payment_module { margin: 0 0 10px; padding: 0; animation: none !important; visibility: visible !important; }
body#order #HOOK_PAYMENT .payment_module > a,
body#order #HOOK_PAYMENT .payment_module > a *,
body#order #HOOK_PAYMENT .stripe-payment-form .card-payment-informations { font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif !important; }
/* Apple Pay / Google Pay : ligne masquée si le navigateur ne propose aucun portefeuille (sinon option morte) */
body#order #HOOK_PAYMENT .stripe-payment-form:has(#stripe-payment-request-button:empty) { display: none; }
body#order #HOOK_PAYMENT .payment_module > a {
  position: relative;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  min-height: 74px;
  margin: 0;
  padding: 16px 52px 16px 104px !important;
  border: 1.5px solid #dfe2e6 !important;
  border-radius: 12px !important;
  background: #ffffff none !important;
  box-shadow: none;
  color: #282b2f !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-align: left;
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
body#order #HOOK_PAYMENT .payment_module > a:hover { border-color: #282b2f !important; box-shadow: 0 8px 22px rgba(40, 43, 47, .08); }
/* chevron unique à droite (remplace ceux des modules / du thème) */
body#order #HOOK_PAYMENT .payment_module > a::after {
  content: "" !important;
  position: absolute;
  top: 50%;
  right: 22px;
  width: 9px !important;
  height: 9px !important;
  margin: -5px 0 0 !important;
  border-top: 2.5px solid #282b2f;
  border-right: 2.5px solid #282b2f;
  background: none !important;
  font-size: 0 !important;
  transform: rotate(45deg);
}
/* logos : tuile identique à gauche */
body#order #HOOK_PAYMENT .payment_module > a > img.logo,
body#order #HOOK_PAYMENT .payment_module > a > .alma-button--logo,
body#order #HOOK_PAYMENT .payment_module > a > .ps_checkout-mark,
body#order #HOOK_PAYMENT .payment_module > a.bankwire::before,
body#order #HOOK_PAYMENT .payment_module > a.cheque::before {
  position: absolute;
  top: 50%;
  left: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 46px;
  margin: -23px 0 0;
  padding: 6px;
  border: 1px solid #e6e8eb;
  border-radius: 8px;
  background: #ffffff;
  box-sizing: border-box;
  object-fit: contain;
}
body#order #HOOK_PAYMENT .payment_module > a > .alma-button--logo img,
body#order #HOOK_PAYMENT .payment_module > a > .ps_checkout-mark img { max-width: 100%; max-height: 30px; height: auto; }
body#order #HOOK_PAYMENT .payment_module > a > .ps_checkout-mark .paypal-mark { margin: 0; padding: 0; border: 0; }
body#order #HOOK_PAYMENT .payment_module > a.bankwire::before {
  content: "\f19c";
  color: #282b2f;
  font-family: FontAwesome;
  font-size: 20px;
  font-weight: 400;
}
body#order #HOOK_PAYMENT .payment_module > a.cheque::before { content: "\f09d"; color: #282b2f; font-family: FontAwesome; font-size: 20px; }
body#order #HOOK_PAYMENT .payment_module > a.bankwire span { display: block; margin-top: 2px; color: #5d636a; font-size: 12.5px; font-weight: 400; }
/* Alma */
body#order #HOOK_PAYMENT .alma-button--text { display: block; }
body#order #HOOK_PAYMENT .alma-button--title { color: #282b2f; font-size: 15px; font-weight: 700; }
body#order #HOOK_PAYMENT .alma-button--description { color: #5d636a; font-size: 12.5px; font-weight: 400; }
body#order #HOOK_PAYMENT .alma-button--fee-plans { display: block; margin-top: 2px; color: #282b2f; font-size: 13px; font-weight: 600; }
body#order #HOOK_PAYMENT .alma-button--fee-plans small { color: #5d636a; font-size: 12px; font-weight: 400; }
body#order #HOOK_PAYMENT .payment_module > a.disabled { opacity: .5; cursor: not-allowed; }
body#order #HOOK_PAYMENT .payment_module > a.disabled::after { display: none; }
/* PayPal (ps_checkout) : bouton intelligent vide sous la ligne */
body#order #HOOK_PAYMENT .payment_module.closed > a:not([class]) { min-height: 0; padding: 0 !important; border: 0 !important; }
body#order #HOOK_PAYMENT .payment_module.closed > a:not([class])::after { display: none; }
/* Stripe (Apple Pay / Google Pay) */
body#order #HOOK_PAYMENT .stripe-payment-form {
  margin: 0 0 10px;
  padding: 16px 18px;
  border: 1.5px solid #dfe2e6;
  border-radius: 12px;
  background: #ffffff;
}
body#order #HOOK_PAYMENT .stripe-payment-form .card-payment-informations {
  margin: 0 !important;
  color: #282b2f !important;
  font-size: 15px !important;
  font-weight: 700;
}
body#order #HOOK_PAYMENT .stripe-payment-form .card-payment-informations img { height: 26px !important; }

/* Moyens de paiement : « une fois » à gauche, « plusieurs fois » (Alma) à droite (titres + virement placés
   par le script de order-payment-classic.tpl ; les blocs PayPal / Stripe / Alma ne sont pas déplacés) */
body#order .dp-pay-group {
  margin: 4px 0 10px;
  color: #5d636a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  break-after: avoid;
}
body#order .dp-pay-group--multi { margin-top: 18px; }
@media (min-width: 992px) {
  body#order #HOOK_PAYMENT.dp-pay-2col { column-count: 2; column-gap: 24px; }
  body#order #HOOK_PAYMENT.dp-pay-2col > * { break-inside: avoid; }
  body#order #HOOK_PAYMENT.dp-pay-2col > .dp-pay-group--multi { margin-top: 4px; break-before: column; }
}

/* ---------- Page intermédiaire Systempay ---------- */
body#module-systempay-redirect .header-container, body#module-bankwire-payment .header-container,
body#module-systempay-redirect #header, body#module-bankwire-payment #header,
body#module-systempay-redirect #breadcrumb, body#module-bankwire-payment #breadcrumb,
body#module-systempay-redirect .breadcrumb, body#module-bankwire-payment .breadcrumb,
body#module-systempay-redirect footer#footer, body#module-bankwire-payment footer#footer,
body#module-systempay-redirect #left_column, body#module-bankwire-payment #left_column,
body#module-systempay-redirect #right_column, body#module-bankwire-payment #right_column { display: none !important; }
body#module-systempay-redirect #center_column, body#module-bankwire-payment #center_column { float: none; max-width: 640px; margin: 0 auto; padding: 0 15px; }
body#module-systempay-redirect .cart-header-minimal.dp-co-head, body#module-bankwire-payment .cart-header-minimal.dp-co-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  max-width: 1060px;
  margin: 0 auto 40px;
  padding: 14px 15px;
  border-bottom: 1px solid #e6e8eb;
  background: #ffffff;
}
body#module-systempay-redirect .dp-co-head .dp-co-head__back, body#module-bankwire-payment .dp-co-head .dp-co-head__back { display: inline-flex; align-items: center; gap: 8px; justify-self: start; color: #5d636a; font-size: 13px; font-weight: 700; }
body#module-systempay-redirect .dp-co-head__logo img, body#module-bankwire-payment .dp-co-head__logo img { display: block; width: auto; height: 34px; }
body#module-systempay-redirect .dp-co-head__side, body#module-bankwire-payment .dp-co-head__side { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
body#module-systempay-redirect .dp-co-head__fr, body#module-bankwire-payment .dp-co-head__fr { display: inline-flex; align-items: center; gap: 7px; color: #282b2f; font-size: 13px; font-weight: 700; }
body#module-systempay-redirect .dp-co-head__secure, body#module-bankwire-payment .dp-co-head__secure { display: inline-flex; align-items: center; gap: 6px; color: #1f8a4c; font-size: 13px; font-weight: 700; }
body#module-systempay-redirect .dp-co-head__help, body#module-bankwire-payment .dp-co-head__help { display: inline-flex; align-items: center; gap: 6px; color: #282b2f; font-size: 13px; font-weight: 700; }
.dp-redirect__card {
  margin: 0 0 60px;
  padding: 40px 32px 30px;
  border: 1px solid #e6e8eb;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(40, 43, 47, .06);
  text-align: center;
}
.dp-redirect__spinner {
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 auto 20px;
  border: 4px solid #fdecea;
  border-top-color: #e9271a;
  border-radius: 50%;
  animation: dp-spin .8s linear infinite;
}
@keyframes dp-spin { to { transform: rotate(360deg); } }
.dp-redirect__title {
  margin: 0 0 10px;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 24px;
  font-style: italic;
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
}
.dp-redirect__text { max-width: 460px; margin: 0 auto 22px; color: #5d636a; font-size: 14.5px; line-height: 1.55; }
.dp-redirect__note { margin: 0 0 18px; color: #4f545a; font-size: 13.5px; line-height: 1.5; text-align: left; }
.dp-redirect__btn {
  min-height: 50px;
  padding: 0 26px;
  border: 0;
  border-radius: 12px;
  background: #e9271a;
  color: #ffffff;
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.dp-redirect__btn:hover { background: #c41f13; }
.dp-redirect__hint { margin: 14px 0 0; color: #8a9097; font-size: 12.5px; }
.dp-redirect__secure { display: inline-flex; align-items: center; gap: 6px; margin: 20px 0 0; color: #1f8a4c; font-size: 13px; font-weight: 700; }

/* ---------- /adresses ---------- */
body#addresses .dp-addr { max-width: 1100px; margin: 0 auto 30px; }
body#addresses .dp-addr__head { margin: 6px 0 22px; }
body#addresses .dp-addr__kicker { margin: 0 0 6px; color: #e9271a; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
body#addresses .dp-addr__lead { max-width: 720px; margin: 10px 0 0; color: #5d636a; font-size: 15px; line-height: 1.5; }
body#addresses .dp-addr__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; padding: 0; list-style: none; }
body#addresses .dp-addr__card {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 22px 22px 18px;
  border: 1.5px solid #e6e8eb;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(40, 43, 47, .05);
}
body#addresses .dp-addr__alias {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 18px;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
body#addresses .dp-addr__alias svg { color: #e9271a; }
body#addresses .dp-addr__lines { margin: 0 0 16px; color: #4f545a; font-size: 14px; font-style: normal; line-height: 1.6; }
body#addresses .dp-addr__line { display: block; }
body#addresses .dp-addr__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
body#addresses .dp-addr__btn {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: #282b2f;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
body#addresses .dp-addr__btn:hover { background: #e9271a; color: #ffffff; text-decoration: none; }
body#addresses .dp-addr__btn--ghost { border: 1.5px solid #dfe2e6; background: #ffffff; color: #5d636a; }
body#addresses .dp-addr__btn--ghost:hover { border-color: #e9271a; background: #ffffff; color: #e9271a; }
body#addresses .dp-addr__card--add { padding: 0; border-style: dashed; box-shadow: none; }
body#addresses .dp-addr__card--add a {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 190px;
  padding: 20px;
  color: #282b2f;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
}
body#addresses .dp-addr__card--add a:hover { color: #e9271a; }
body#addresses .dp-addr__plus { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: #fdecea; color: #e9271a; font-size: 28px; font-weight: 400; line-height: 1; }
body#addresses .dp-addr__back a { color: #5d636a; font-size: 14px; font-weight: 700; }
body#addresses .dp-addr__back a:hover { color: #e9271a; }

/* ---------- /adresse (formulaire) ---------- */
body#address #center_column .box { max-width: 760px; padding: 28px 30px; border: 1px solid #e6e8eb; border-radius: 16px; background: #ffffff; box-shadow: 0 10px 30px rgba(40, 43, 47, .05); }
body#address .form-group label { color: #282b2f; font-size: 13px; font-weight: 700; }
body#address .form-control {
  max-width: none;
  height: 46px;
  padding: 0 14px;
  border: 1.5px solid #dfe2e6;
  border-radius: 10px;
  box-shadow: none;
  font-size: 15px;
}
body#address textarea.form-control { height: auto; min-height: 90px; padding: 12px 14px; }
body#address .iti { width: 100%; }
body#address .iti input.form-control { padding-left: 52px !important; }
body#address .box h1.page-subheading {
  margin: 0 0 4px;
  padding: 0;
  border: 0;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 26px;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
body#address .form-control:focus { border-color: #282b2f; box-shadow: 0 0 0 4px rgba(233, 39, 26, .14); }
body#address .form-error .form-control { border-color: #e9271a; }
body#address .form-ok .form-control { border-color: #1f8a4c; }
body#address #submitAddress {
  min-height: 52px;
  padding: 0 28px;
  border: 0;
  border-radius: 12px;
  background: #e9271a;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
}
body#address #submitAddress span { padding: 0; border: 0; background: none; color: inherit; }
body#address #submitAddress:hover { background: #c41f13; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  body#order h1.page-heading,
  body#order #cart_title,
  body#addresses .dp-addr .page-heading,
  body#address h1.page-heading { font-size: 24px; }
  body#order .cart-header-minimal.dp-co-head { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; margin-bottom: 16px; padding: 10px 12px; }
  body#order .dp-co-head .dp-co-head__back span,
  body#order .dp-co-head__fr > span,
  body#order .dp-co-head__secure span,
  body#order .dp-co-head__help span,
  body#module-systempay-redirect .dp-co-head .dp-co-head__back span, body#module-bankwire-payment .dp-co-head .dp-co-head__back span,
  body#module-systempay-redirect .dp-co-head__fr > span, body#module-bankwire-payment .dp-co-head__fr > span,
  body#module-systempay-redirect .dp-co-head__secure span, body#module-bankwire-payment .dp-co-head__secure span,
  body#module-systempay-redirect .dp-co-head__help span, body#module-bankwire-payment .dp-co-head__help span { display: none; }
  body#module-systempay-redirect .cart-header-minimal.dp-co-head, body#module-bankwire-payment .cart-header-minimal.dp-co-head { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; margin-bottom: 20px; padding: 10px 12px; }
  body#module-systempay-redirect .dp-co-head__logo, body#module-bankwire-payment .dp-co-head__logo { justify-self: center; }
  body#module-systempay-redirect .dp-co-head__logo img, body#module-bankwire-payment .dp-co-head__logo img { height: 28px; }
  body#module-systempay-redirect .dp-co-head__side, body#module-bankwire-payment .dp-co-head__side { gap: 12px; }
  body#module-systempay-redirect .dp-co-head__help, body#module-bankwire-payment .dp-co-head__help { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #fdecea; }
  .dp-redirect__card { padding: 30px 20px 24px; }
  body#order .dp-co-head__logo { justify-self: center; }
  body#order .dp-co-head__logo img { height: 28px; }
  body#order .dp-co-head__side { gap: 12px; }
  body#order .dp-co-head__help { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #fdecea; }
  body#order ul#order_step { padding: 14px 4px 10px !important; }
  body#order ul#order_step li:not(.step_current) span,
  body#order ul#order_step li:not(.step_current) a { font-size: 0; }
  body#order ul#order_step li:not(.step_current) span::before,
  body#order ul#order_step li:not(.step_current) a::before { font-size: 13px; }
  body#order .cart_navigation { flex-direction: column-reverse; align-items: stretch; }
  body#order .cart_navigation .standard-checkout,
  body#order .cart_navigation button[type="submit"],
  body#order .cart_navigation .button-exclusive { justify-content: center; width: 100%; margin: 0; }
  body#order .cart_navigation .standard-checkout,
  body#order .cart_navigation button[type="submit"] { padding: 10px 18px; font-size: 14px; letter-spacing: .02em; line-height: 1.25; text-align: center; white-space: normal; }
  body#order .delivery_option td.delivery_option_price,
  body#order .delivery_option div.delivery_option_price { text-align: left; }
  .dp-co-trust { grid-template-columns: 1fr; gap: 10px; }
  body#order .delivery_option table.resume tr { grid-template-columns: 24px 60px minmax(0, 1fr); gap: 0 12px; padding: 14px; }
  body#order .delivery_option td.delivery_option_price { grid-column: 3; margin-top: 8px; text-align: left; }
  body#order .delivery_option .delivery_option_logo img { max-width: 60px; max-height: 40px; }
  body#order #HOOK_PAYMENT .payment_module > a { padding: 14px 40px 14px 86px !important; font-size: 14px !important; }
  body#order #HOOK_PAYMENT .payment_module > a > img.logo,
  body#order #HOOK_PAYMENT .payment_module > a > .alma-button--logo,
  body#order #HOOK_PAYMENT .payment_module > a > .ps_checkout-mark,
  body#order #HOOK_PAYMENT .payment_module > a.bankwire::before { left: 12px; width: 60px; height: 40px; margin-top: -20px; }
  body#order #HOOK_PAYMENT .payment_module > a::after { right: 16px; }
  body#addresses .dp-addr__grid { grid-template-columns: 1fr; }
  body#address #center_column .box { padding: 20px 16px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  body#addresses .dp-addr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Drapeau « entreprise française » ---------- */
.dp-flag { display: inline-block; flex-shrink: 0; width: 21px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .14); vertical-align: -2px; }
@media (min-width: 768px) and (max-width: 1099px) { .dp-co-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* en-tête du tunnel : éléments sur une ligne */
body#order .dp-co-head__fr,
body#order .dp-co-head__secure,
body#order .dp-co-head__help,
body#module-systempay-redirect .dp-co-head__fr, body#module-bankwire-payment .dp-co-head__fr,
body#module-systempay-redirect .dp-co-head__secure, body#module-bankwire-payment .dp-co-head__secure,
body#module-systempay-redirect .dp-co-head__help, body#module-bankwire-payment .dp-co-head__help { white-space: nowrap; }
@media (min-width: 768px) {
  body#order .cart-header-minimal.dp-co-head,
  body#module-systempay-redirect .cart-header-minimal.dp-co-head, body#module-bankwire-payment .cart-header-minimal.dp-co-head { grid-template-columns: auto minmax(0, 1fr) auto; }
  body#order .dp-co-head__logo,
  body#module-systempay-redirect .dp-co-head__logo, body#module-bankwire-payment .dp-co-head__logo { justify-self: center; }
  body#order .dp-co-head__side,
  body#module-systempay-redirect .dp-co-head__side, body#module-bankwire-payment .dp-co-head__side { gap: 16px; }
}
@media (min-width: 768px) and (max-width: 991px) {
  body#order .dp-co-head__fr > span,
  body#module-systempay-redirect .dp-co-head__fr > span, body#module-bankwire-payment .dp-co-head__fr > span { display: none; }
}

/* ---------- Confirmation du virement (module bankwire) ---------- */
body#module-bankwire-payment #center_column { max-width: 720px; }
.dp-bw__card {
  margin: 0 0 8px;
  padding: 30px 32px 26px;
  border: 1px solid #e6e8eb;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(40, 43, 47, .06);
}
.dp-bw__kicker { margin: 0 0 6px; color: #e9271a; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.dp-bw__title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  color: #282b2f;
  font-family: 'DP Saira', Verdana, Geneva, sans-serif;
  font-size: 26px;
  font-style: italic;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.dp-bw__ico { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #fdecea; color: #e9271a; }
.dp-bw__amount {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  margin: 0 0 20px;
  padding: 16px 18px;
  border-radius: 12px;
  background: #f6f7f8;
}
.dp-bw__amount span { color: #5d636a; font-size: 14px; font-weight: 600; }
.dp-bw__amount strong { color: #e9271a; font-size: 26px; font-weight: 800; }
.dp-bw__amount small { color: #5d636a; font-size: 13px; }
.dp-bw__currency label { font-size: 13px; font-weight: 700; }
.dp-bw__steps { margin: 0 0 24px; padding: 0; list-style: none; counter-reset: none; }
.dp-bw__steps li { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 12px; padding: 0; }
.dp-bw__steps li > span {
  display: flex;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
  height: 28px;
  border-radius: 50%;
  background: #282b2f;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
}
.dp-bw__steps p { margin: 3px 0 0; color: #4f545a; font-size: 14px; line-height: 1.5; }
.dp-bw__steps strong { color: #282b2f; }
.dp-bw__actions { display: flex; flex-wrap: wrap; flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 12px; }
.dp-bw__confirm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 30px;
  border: 0;
  border-radius: 12px;
  background: #e9271a;
  box-shadow: 0 10px 22px rgba(233, 39, 26, .22);
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.dp-bw__confirm:hover { background: #c41f13; }
.dp-bw__back { color: #5d636a; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.dp-bw__back:hover { color: #e9271a; }
body#module-bankwire-payment .dp-co-trust { margin-top: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) {
  .dp-bw__card { padding: 22px 18px 20px; }
  .dp-bw__title { font-size: 21px; }
  .dp-bw__ico { width: 40px; height: 40px; }
  .dp-bw__actions { flex-direction: column; align-items: stretch; }
  .dp-bw__confirm { width: 100%; }
  .dp-bw__back { text-align: center; }
  body#module-bankwire-payment .dp-co-trust { grid-template-columns: 1fr; }
}
